1 #ifndef __DEALII_SOLVER_ROL_VECTOR_H__     2 #define __DEALII_SOLVER_ROL_VECTOR_H__     4 #include "ROL_Types.hpp"     5 #include "ROL_Vector_SimOpt.hpp"     8 #include "optimization/rol_to_dealii_vector.hpp"    14 template<
typename Real = 
double>
    23     void print(
const ROL::Vector<Real> &rol_vector)
 const    25         const ROL::Vector_SimOpt<Real> *vec_split12 = 
dynamic_cast<const ROL::Vector_SimOpt<Real> *
>(&rol_vector);
    26         if (vec_split12 == NULL) {
    29             const auto vec_1 = vec_split12->get_1();
    31             const auto vec_2 = vec_split12->get_2();
    46     : rol_vector_ptr(input_vector)
    65                  const bool leave_elements_uninitialized = 
false)
    67         rol_vector_ptr = model_vector.
getVector()->clone();
    68         if (!leave_elements_uninitialized) {
    75         return rol_vector_ptr->dot( *(v.
getVector()) );
    81         rol_vector_ptr->setScalar(a);
    88         rol_vector_ptr = (x.
getVector())->clone();
    95         rol_vector_ptr->scale(a);
   109         rol_vector_ptr->axpy(a, *(x.
getVector()) );
   142         return std::sqrt( (*
this) * (*
this) );
   146     Teuchos::RCP<dealiiSolverVectorWrappingROL> 
basis(
int i)
 const   148         ROL::Ptr<ROL::Vector<Real>> rol_basis = rol_vector_ptr->basis(i);
   158         return rol_vector_ptr->dimension();
   164         print(*rol_vector_ptr);
   183         const auto &vec_split12 = 
dynamic_cast<const ROL::Vector_SimOpt<Real>&
>(*rol_vector_ptr);
   184         const auto des = vec_split12.get_1();
   185         const auto &des_split = 
dynamic_cast<const ROL::Vector_SimOpt<Real>&
>(*des);
   187         const auto sim_des = des_split.get_1();
   188         const auto ctl_des = des_split.get_2();
   189         const auto con = vec_split12.get_2();
   191         const auto n1 = sim_des->dimension();
   192         const auto n2 = ctl_des->dimension() + n1;
 Real value_type
Value type of the entries. 
void print() const
Print the underlying deal.II Vector. 
ROL::Ptr< const ROL::Vector< Real > > getVector() const
Const accessor. 
Real l2_norm() const
Return the l2 norm of the vector. 
void sadd(const Real a, const Real b, const dealiiSolverVectorWrappingROL &x)
Scaled addition of vectors. 
void reinit(const dealiiSolverVectorWrappingROL &model_vector, const bool leave_elements_uninitialized=false)
Wrap the ROL vector into a vector that can be used by deal.II's solver. 
dealiiSolverVectorWrappingROL & operator=(const dealiiSolverVectorWrappingROL &x)
Copy assignment. 
dealiiSolverVectorWrappingROL & operator*=(const Real a)
Scale the elements of the current object by a fixed value. 
void equ(const Real a, const dealiiSolverVectorWrappingROL &x)
Scaled assignment of a vector. 
void add(const Real a, const dealiiSolverVectorWrappingROL &x)
Scaled addition of vectors. 
dealiiSolverVectorWrappingROL()=default
Constructor. 
ROL::Ptr< ROL::Vector< Real > > getVector()
Accessor. 
void add(const dealiiSolverVectorWrappingROL &x)
Addition of vectors. 
Real operator*(const dealiiSolverVectorWrappingROL &v) const
Inner product between the current object and the argument. 
Real add_and_dot(const Real a, const dealiiSolverVectorWrappingROL &x, const dealiiSolverVectorWrappingROL &v)
dealiiSolverVectorWrappingROL(ROL::Ptr< ROL::Vector< Real >> input_vector)
Constructor where data is given. 
dealiiSolverVectorWrappingROL & operator=(const Real a)
Assignment of a scalar. 
ROL::Ptr< ROL::Vector< Real > > rol_vector_ptr
Pointer to ROL::Vector<Real> where data is actually stored. 
void print(const ROL::Vector< Real > &rol_vector) const
Prints out the vector to std::cout. 
const dealii::LinearAlgebra::distributed::Vector< double > & ROL_vector_to_dealii_vector_reference(const ROL::Vector< double > &x)
Access the read-write deali.II Vector stored within the ROL::Vector. 
int size() const
Obtain vector size. 
Teuchos::RCP< dealiiSolverVectorWrappingROL > basis(int i) const
Returns a vector of the same size with zero entries except for the ith entry being one...
Real operator[](int i) const
Access this ith value of the vector.