To handle general purpose vectors. More...
Public Types  
typedef Eigen::Matrix< T_, Eigen::Dynamic, 1 >  VectorX 
This type is the vector type in the Eigen library. More...  
Public Member Functions  
Vect ()  
Default Constructor. Initialize a zerolength vector.  
Vect (size_t n)  
Constructor setting vector size. More...  
Vect (size_t nx, size_t ny)  
Constructor of a 2D index vector. More...  
Vect (size_t nx, size_t ny, size_t nz)  
Constructor of a 3D index vector. More...  
Vect (size_t n, T_ *x)  
Create an instance of class Vect as an image of a C/C++ array. More...  
Vect (Mesh &m, int nb_dof=0, int dof_type=NODE_FIELD)  
Constructor with a mesh instance. More...  
Vect (Mesh &m, string name, real_t t=0.0, int nb_dof=0, int dof_type=NODE_FIELD)  
Constructor with a mesh instance giving name and time for vector. More...  
Vect (const Element *el, const Vect< T_ > &v)  
Constructor of an element vector. More...  
Vect (const Side *sd, const Vect< T_ > &v)  
Constructor of a side vector. More...  
Vect (const Vect< T_ > &v, const Vect< T_ > &bc)  
Constructor using boundary conditions. More...  
Vect (const Vect< T_ > &v, size_t nb_dof, size_t first_dof)  
Constructor to select some components of a given vector. More...  
Vect (const Vect< T_ > &v)  
Copy constructor.  
Vect (const Vect< T_ > &v, size_t n)  
Constructor to select one component from a given 2 or 3component vector. More...  
Vect (size_t d, const Vect< T_ > &v, const string &name=" ")  
Constructor that extracts some degrees of freedom (components) from given instance of Vect. More...  
Vect (const VectorX &v)  
Constructor that copies the vector from a Eigen Vector instance. More...  
~Vect ()  
Destructor.  
void  set (const T_ *v, size_t n) 
Initialize vector with a carray. More...  
void  select (const Vect< T_ > &v, size_t nb_dof=0, size_t first_dof=1) 
Initialize vector with another Vect instance. More...  
void  set (const string &exp, size_t dof=1) 
Initialize vector with an algebraic expression. More...  
void  set (const string &exp, const Vect< real_t > &x) 
Initialize vector with an algebraic expression. More...  
void  set (Mesh &ms, const string &exp, size_t dof=1) 
Initialize vector with an algebraic expression with providing mesh data. More...  
void  set (const Vect< real_t > &x, const string &exp) 
Initialize vector with an algebraic expression. More...  
void  setMesh (Mesh &m, size_t nb_dof=0, size_t dof_type=NODE_FIELD) 
Define mesh class to size vector. More...  
size_t  size () const 
Return vector (global) size. More...  
void  setSize (size_t nx, size_t ny=1, size_t nz=1) 
Set vector size (for 1D, 2D or 3D cases) More...  
void  resize (size_t n) 
Set vector size. More...  
void  resize (size_t n, T_ v) 
Set vector size and initialize to a constant value. More...  
void  setDOFType (int dof_type) 
Set DOF type of vector. More...  
void  setDG (int degree=1) 
Set Discontinuous Galerkin type vector. More...  
size_t  getNbDOF () const 
Return vector number of degrees of freedom.  
size_t  getNb () const 
Return vector number of entities (nodes, elements or sides)  
Mesh &  getMesh () const 
Return Mesh instance.  
bool  WithMesh () const 
Return true if vector contains a Mesh pointer, false if not. More...  
int  getDOFType () const 
void  setTime (real_t t) 
Set time value for vector.  
real_t  getTime () const 
Get time value for vector.  
void  setName (string name) 
Set name of vector.  
string  getName () const 
Get name of vector.  
real_t  getNorm1 () const 
Calculate 1norm of vector. More...  
real_t  getNorm2 () const 
Calculate 2norm (Euclidean norm) of vector. More...  
real_t  getNormMax () const 
Calculate Maxnorm (Infinite norm) of vector. More...  
real_t  getWNorm1 () const 
Calculate weighted 1norm of vector The wighted 1norm is the 1Norm of the vector divided by its size.  
real_t  getWNorm2 () const 
Calculate weighted 2norm of vector. More...  
T_  getMin () const 
Calculate Min value of vector entries.  
T_  getMax () const 
Calculate Max value of vector entries.  
size_t  getNx () const 
Return number of grid points in the x direction if grid indexing is set.  
size_t  getNy () const 
Return number of grid points in the y direction if grid indexing is set.  
size_t  getNz () const 
Return number of grid points in the z direction if grid indexing is set.  
void  setNodeBC (Mesh &m, int code, T_ val, size_t dof=1) 
Assign a given value to components of vector with given code. More...  
void  setSideBC (Mesh &m, int code, T_ val, size_t dof=1) 
Assign a given value to components of vector corresponding to sides with given code. More...  
void  setNodeBC (Mesh &m, int code, const string &exp, size_t dof=1) 
Assign a given function (given by an interpretable algebraic expression) to components of vector with given code. More...  
void  setSideBC (Mesh &m, int code, const string &exp, size_t dof=1) 
Assign a given function (given by an interpretable algebraic expression) to components of vector corresponding to sides with given code. More...  
void  setNodeBC (int code, T_ val, size_t dof=1) 
Assign a given value to components of vector with given code. More...  
void  setNodeBC (int code, const string &exp, size_t dof=1) 
Assign a given function (given by an interpretable algebraic expression) to components of vector with given code. More...  
void  setSideBC (int code, const string &exp, size_t dof=1) 
Assign a given function (given by an interpretable algebraic expression) to components of vector with given code. More...  
void  setSideBC (int code, T_ val, size_t dof=1) 
Assign a given value to components of vector with given code. More...  
void  removeBC (const Mesh &ms, const Vect< T_ > &v, int dof=0) 
Remove boundary conditions. More...  
void  removeBC (const Vect< T_ > &v, int dof=0) 
Remove boundary conditions. More...  
void  transferBC (const Vect< T_ > &bc, int dof=0) 
Transfer boundary conditions to the vector. More...  
void  insertBC (Mesh &m, const Vect< T_ > &v, const Vect< T_ > &bc, int dof=0) 
Insert boundary conditions. More...  
void  insertBC (Mesh &m, const Vect< T_ > &v, int dof=0) 
Insert boundary conditions. More...  
void  insertBC (const Vect< T_ > &v, const Vect< T_ > &bc, int dof=0) 
Insert boundary conditions. More...  
void  insertBC (const Vect< T_ > &v, int dof=0) 
Insert boundary conditions. More...  
void  Assembly (const Element &el, const Vect< T_ > &b) 
Assembly of element vector into current instance. More...  
void  Assembly (const Element &el, const T_ *b) 
Assembly of element vector (as Carray) into Vect instance. More...  
void  Assembly (const Side &sd, const Vect< T_ > &b) 
Assembly of side vector into Vect instance. More...  
void  Assembly (const Side &sd, T_ *b) 
Assembly of side vector (as Carray) into Vect instance. More...  
void  getGradient (class Vect< T_ > &v) 
Evaluate the discrete Gradient vector of the current vector. More...  
void  getGradient (Vect< Point< T_ > > &v) 
Evaluate the discrete Gradient vector of the current vector. More...  
void  getCurl (Vect< T_ > &v) 
Evaluate the discrete curl vector of the current vector. More...  
void  getCurl (Vect< Point< T_ > > &v) 
Evaluate the discrete curl vector of the current vector. More...  
void  getSCurl (Vect< T_ > &v) 
Evaluate the discrete scalar curl in 2D of the current vector. More...  
void  getDivergence (Vect< T_ > &v) 
Evaluate the discrete Divergence of the current vector. More...  
real_t  getAverage (const Element &el, int type) const 
Return average value of vector in a given element. More...  
void  save (string file, int opt=GMSH) 
Save vector in a file according to a given format. More...  
Vect< T_ > &  MultAdd (const Vect< T_ > &x, const T_ &a) 
Multiply by a constant then add to a vector. More...  
void  Axpy (T_ a, const Vect< T_ > &x) 
Add to vector the product of a vector by a scalar. More...  
void  set (size_t i, T_ val) 
Assign a value to an entry for a 1D vector. More...  
void  set (size_t i, size_t j, T_ val) 
Assign a value to an entry for a 2D vector. More...  
void  set (size_t i, size_t j, size_t k, T_ val) 
Assign a value to an entry for a 3D vector. More...  
void  add (size_t i, T_ val) 
Add a value to an entry for a 1index vector. More...  
void  add (size_t i, size_t j, T_ val) 
Add a value to an entry for a 2index vector. More...  
void  add (size_t i, size_t j, size_t k, T_ val) 
Assign a value to an entry for a 3index vector. More...  
void  clear () 
Clear vector: Set all its elements to zero.  
T_ &  operator[] (size_t i) 
Operator [] (Non constant version) More...  
T_  operator[] (size_t i) const 
Operator [] (Constant version) More...  
T_ &  operator() (size_t i) 
Operator () (Non constant version) More...  
T_  operator() (size_t i) const 
Operator () (Constant version) More...  
T_ &  operator() (size_t i, size_t j) 
Operator () with 2D indexing (Non constant version, case of a grid vector). More...  
T_  operator() (size_t i, size_t j) const 
Operator () with 2D indexing (Constant version). More...  
T_ &  operator() (size_t i, size_t j, size_t k) 
Operator () with 3D indexing (Non constant version). More...  
T_  operator() (size_t i, size_t j, size_t k) const 
Operator () with 3D indexing (Constant version). More...  
Vect< T_ > &  operator= (const Vect< T_ > &v) 
Operator = between vectors.  
Vect< T_ > &  operator= (const VectorX &v) 
Operator = for an instance of VectorX More...  
void  operator= (string s) 
Operator = More...  
void  setUniform (T_ vmin, T_ delta, T_ vmax) 
Initialize vector entries by setting extremal values and interval. More...  
Vect< T_ > &  operator= (const T_ &a) 
Operator = More...  
Vect< T_ > &  operator+= (const Vect< T_ > &v) 
Operator += More...  
Vect< T_ > &  operator+= (const T_ &a) 
Operator += More...  
Vect< T_ > &  operator= (const Vect< T_ > &v) 
Operator = More...  
Vect< T_ > &  operator= (const T_ &a) 
Operator = More...  
Vect< T_ > &  operator*= (const T_ &a) 
Operator *= More...  
Vect< T_ > &  operator/= (const T_ &a) 
Operator /= More...  
void  push_back (const T_ &v) 
Add an entry to the vector. More...  
const Mesh &  getMeshPtr () const 
Return reference to Mesh instance.  
T_  operator, (const Vect< T_ > &v) const 
Return Dot (scalar) product of two vectors. More...  
operator VectorX () const  
Casting operator. More...  
Detailed Description
template<class T_>
class OFELI::Vect< T_ >
To handle general purpose vectors.
This template class enables defining and manipulating vectors of various data types. It inherits from the class std::vector An instance of class Vect can be:
 A simple vector of given size

A vector with up to three indices, i.e., an entry of the vector can be
a(i)
,a(i,j)
ora(i,j,k)
. This feature is useful, for instance, in the case of a structured grid 
A vector associate to a finite element mesh. In this case, a constructor uses a reference to the Mesh instance. The size of the vector is by default equal to the number of nodes
x
the number of degrees of freedom by node. If the degrees of freedom are supported by elements or sides, then the vector is sized accordingly
Operators =, [] and () are overloaded so that one can write for instance:
Vect<real_t> u(10), v(10); v = 1.0; u = v; u(3) = 2.0;
to set vector v entries to 1, copy vector v into vector u and assign third entry of v to 2. Note that entries of v are here v(1), v(2), ..., v(10), i.e. vector entries start at index 1.
 Template Parameters

T_ Data type (real_t, float, complex<real_t>, ...)
Constructor & Destructor Documentation
Vect  (  size_t  n  ) 
Constructor setting vector size.
 Parameters

[in] n Size of vector
Vect  (  size_t  nx, 
size_t  ny  
) 
Constructor of a 2D index vector.
This constructor can be used for instance for a 2D grid vector
 Parameters

[in] nx Size for the first index [in] ny Size for the second index
 Remarks
 The size of resulting vector is nx*ny
Vect  (  size_t  nx, 
size_t  ny,  
size_t  nz  
) 
Constructor of a 3D index vector.
This constructor can be used for instance for a 3D grid vector
 Parameters

[in] nx Size for the first index [in] ny Size for the second index [in] nz Size for the third index
 Remarks
 The size of resulting vector is nx*ny*nz
Vect  (  size_t  n, 
T_ *  x  
) 
Create an instance of class Vect as an image of a C/C++ array.
 Parameters

[in] n Dimension of vector to construct [in] x Carray to copy
Constructor with a mesh instance.
 Parameters

[in] m Mesh instance [in] nb_dof Number of degrees of freedom per node, element or side If nb_dof
is set to0
(default value) the constructor picks this number from the Mesh instance[in] dof_type Type of degrees of freedom. To be given among the enumerated values: NODE_FIELD
,ELEMENT_FIELD
,SIDE_FIELD
orEDGE_FIELD
(Default:NODE_FIELD
)
Constructor with a mesh instance giving name and time for vector.
 Parameters

[in] m Mesh instance [in] name Name of the vector [in] t Time value for the vector [in] nb_dof Number of degrees of freedom per node, element or side If nb_dof
is set to0
the constructor picks this number from the Mesh instance[in] dof_type Type of degrees of freedom. To be given among the enumerated values: NODE_FIELD
,ELEMENT_FIELD
,SIDE_FIELD
orEDGE_FIELD
(Default:NODE_FIELD
)
Constructor of an element vector.
The constructed vector has local numbering of nodes
 Parameters

[in] el Pointer to Element to localize [in] v Global vector to localize
Constructor of a side vector.
The constructed vector has local numbering of nodes
 Parameters

[in] sd Pointer to Side to localize [in] v Global vector to localize
Constructor to select some components of a given vector.
 Parameters

[in] v Vect instance to extract from [in] nb_dof Number of DOF to extract [in] first_dof First DOF to extract For instance, a choice first_dof=2
andnb_dof=1
means that the second DOF of each node is copied in the vector
Constructor to select one component from a given 2 or 3component vector.
 Parameters

[in] v Vect instance to extract from [in] n Component to extract (must be > 1 and < 4 or).
Constructor that extracts some degrees of freedom (components) from given instance of Vect.
This constructor enables constructing a subvector of a given Vect instance. It selects a given list of degrees of freedom and put it according to a given order in the instance to construct.
 Parameters

[in] d Integer number giving the list of degrees of freedom. This number is made of n
digits wheren
is the number of degrees of freedom. Let us give an example: Assume that the instancev
has 3 DOF by entity (node, element or side). The choiced=201
means that the constructed instance has 2 DOF where the first DOF is the third one ofv
, and the second DOF is the first one of fv
. Consequently, no digit can be larger than the number of DOF the constructed instance. In this example, a choiced=103
would produce an error message.[in] v Vect instance from which extraction is performed. [in] name Name to assign to vector instance (Default value is " ").
 Warning
 Don't give zeros as first digits for the argument
d
. The number is in this case interpreted as octal !!
Constructor that copies the vector from a Eigen Vector instance.
 Parameters

[in] v VectorX instance from which extraction is performed
 Warning
 This constructor is available only if the library
eigen
is used in conjunction with OFELI
 Remarks
 : This constructor is available only if the Eigen library was installed in conjunction with OFELI
Member Function Documentation
void set  (  const T_ *  v, 
size_t  n  
) 
Initialize vector with a carray.
 Parameters

[in] v carray (pointer) to initialize Vect [in] n size of array
void select  (  const Vect< T_ > &  v, 
size_t  nb_dof = 0 , 

size_t  first_dof = 1 

) 
Initialize vector with another Vect instance.
 Parameters

[in] v Vect instance to extract from [in] nb_dof Number of DOF per node, element or side (By default, 0: Number of degrees of freedom extracted from the Mesh instance) [in] first_dof First DOF to extract (Default: 1) For instance, a choice first_dof=2
andnb_dof=1
means that the second DOF of each node is copied in the vector
void set  (  const string &  exp, 
size_t  dof = 1 

) 
Initialize vector with an algebraic expression.
This function is to be used is a Mesh instance is associated to the vector
 Parameters

[in] exp Regular algebraic expression that defines a function of x
,y
,z
which are coordinates of nodes andt
which is the time value.[in] dof Degree of freedom to which the value is assigned [Default: 1]
 Warning
 If the time variable
t
is involved in the expression, the time value associated to the vector instance must be defined (Default value is 0) either by using the appropriate constructor or by the member function setTime.
Initialize vector with an algebraic expression.
This function can be used for instance in 1D
 Parameters

[in] exp Regular algebraic expression that defines a function of x
which are coordinates of nodes[in] x Vector
void set  (  Mesh &  ms, 
const string &  exp,  
size_t  dof = 1 

) 
Initialize vector with an algebraic expression with providing mesh data.
 Parameters

[in] ms Mesh instance [in] exp Regular algebraic expression that defines a function of x, y and z which are coordinates of nodes. [in] dof Degree of freedom to which the value is assigned [Default: 1]
Initialize vector with an algebraic expression.
 Parameters

[in] x Vect instance that contains coordinates of points [in] exp Regular algebraic expression that defines a function of x and i which are coordinates of nodes and indices starting from 1
.
void setMesh  (  Mesh &  m, 
size_t  nb_dof = 0 , 

size_t  dof_type = NODE_FIELD 

) 
Define mesh class to size vector.
 Parameters

[in] m Mesh instance [in] nb_dof Number of degrees of freedom per node, element or side If nb_dof
is set to0
the constructor picks this number from the Mesh instance[in] dof_type Parameter to precise the type of degrees of freedom. To be chosen among the enumerated values: NODE_FIELD
,ELEMENT_FIELD
,SIDE_FIELD
,EDGE_FIELD
[Default:NODE_FIELD
]
size_t size  (  )  const 
Return vector (global) size.
 Warning
 This constructor is available only if the library
eigen
is used in conjunction with OFELI
void setSize  (  size_t  nx, 
size_t  ny = 1 , 

size_t  nz = 1 

) 
Set vector size (for 1D, 2D or 3D cases)
This function allocates memory for the vector but does not initialize its components
 Parameters

[in] nx Number of grid points in x
direction[in] ny Number of grid points in y
direction [Default:1
][in] nz Number of grid points in z
direction [Default:1
]
void resize  (  size_t  n  ) 
Set vector size.
This function allocates memory for the vector but does not initialize its components
 Parameters

[in] n Size of vector
void resize  (  size_t  n, 
T_  v  
) 
Set vector size and initialize to a constant value.
This function allocates memory for the vector
 Parameters

[in] n Size of vector [in] v Value to assign to vector entries
void setDOFType  (  int  dof_type  ) 
Set DOF type of vector.
The DOF type combined with number of DOF per component enable determining the size of vector
 Parameters

[in] dof_type Type of degrees of freedom. Value to be chosen among the enumerated values: NODE_FIELD
,ELEMENT_FIELD
,SIDE_FIELD
orEDGE_FIELD
void setDG  (  int  degree = 1  ) 
bool WithMesh  (  )  const 
int getDOFType  (  )  const 
Return DOF type of vector
 Returns
 dof_type Type of degrees of freedom. Value among the enumerated values:
NODE_FIELD
,ELEMENT_FIELD
,SIDE_FIELD
orEDGE_FIELD
real_t getNorm1  (  )  const 
Calculate 1norm of vector.
 Remarks
 This function is available only if the template parameter is
double
orcomplex<double>
real_t getNorm2  (  )  const 
Calculate 2norm (Euclidean norm) of vector.
 Remarks
 This function is available only if the template parameter is
double
orcomplex<double>
real_t getNormMax  (  )  const 
Calculate Maxnorm (Infinite norm) of vector.
 Remarks
 This function is available only if the template parameter is
double
orcomplex<double>
real_t getWNorm2  (  )  const 
Calculate weighted 2norm of vector.
The weighted 2norm is the 2Norm of the vector divided by the square root of its size
void setNodeBC  (  Mesh &  m, 
int  code,  
T_  val,  
size_t  dof = 1 

) 
Assign a given value to components of vector with given code.
Vector components are assumed nodewise
 Parameters

[in] m Instance of mesh [in] code Code for which nodes will be assigned prescribed value [in] val Value to prescribe [in] dof Degree of Freedom for which the value is assigned [default: 1
]
void setSideBC  (  Mesh &  m, 
int  code,  
T_  val,  
size_t  dof = 1 

) 
Assign a given value to components of vector corresponding to sides with given code.
Vector components are assumed nodewise
 Parameters

[in] m Instance of mesh [in] code Code for which nodes will be assigned prescribed value [in] val Value to prescribe [in] dof Degree of Freedom for which the value is assigned [default: 1
]
void setNodeBC  (  Mesh &  m, 
int  code,  
const string &  exp,  
size_t  dof = 1 

) 
Assign a given function (given by an interpretable algebraic expression) to components of vector with given code.
Vector components are assumed nodewise
 Parameters

[in] m Instance of mesh [in] code Code for which nodes will be assigned prescribed value [in] exp Regular algebraic expression to prescribe [in] dof Degree of Freedom for which the value is assigned [default: 1
]
void setSideBC  (  Mesh &  m, 
int  code,  
const string &  exp,  
size_t  dof = 1 

) 
Assign a given function (given by an interpretable algebraic expression) to components of vector corresponding to sides with given code.
Vector components are assumed nodewise
 Parameters

[in] m Instance of mesh [in] code Code for which nodes will be assigned prescribed value [in] exp Regular algebraic expression to prescribe [in] dof Degree of Freedom for which the value is assigned [default: 1
]
void setNodeBC  (  int  code, 
T_  val,  
size_t  dof = 1 

) 
Assign a given value to components of vector with given code.
Vector components are assumed nodewise
 Parameters

[in] code Code for which nodes will be assigned prescribed value [in] val Value to prescribe [in] dof Degree of Freedom for which the value is assigned [default: 1
]
void setNodeBC  (  int  code, 
const string &  exp,  
size_t  dof = 1 

) 
Assign a given function (given by an interpretable algebraic expression) to components of vector with given code.
Vector components are assumed nodewise
 Parameters

[in] code Code for which nodes will be assigned prescribed value [in] exp Regular algebraic expression to prescribe [in] dof Degree of Freedom for which the value is assigned [default: 1
]
 Warning
 This member function is to be used in the case where a constructor with a Mesh has been used
void setSideBC  (  int  code, 
const string &  exp,  
size_t  dof = 1 

) 
Assign a given function (given by an interpretable algebraic expression) to components of vector with given code.
Vector components are assumed nodewise
 Parameters

[in] code Code for which nodes will be assigned prescribed value [in] exp Regular algebraic expression to prescribe [in] dof Degree of Freedom for which the value is assigned [default: 1
]
 Warning
 This member function is to be used in the case where a constructor with a Mesh has been used
void setSideBC  (  int  code, 
T_  val,  
size_t  dof = 1 

) 
Assign a given value to components of vector with given code.
Vector components are assumed nodewise
 Parameters

[in] code Code for which nodes will be assigned prescribed value [in] val Value to prescribe [in] dof Degree of Freedom for which the value is assigned [default: 1
]
 Warning
 This member function is to be used in the case where a constructor with a Mesh has been used
Remove boundary conditions.
This member function copies to current vector a vector where only non imposed DOF are retained.
void removeBC  (  const Vect< T_ > &  v, 
int  dof = 0 

) 
Remove boundary conditions.
This member function copies to current vector a vector where only non imposed DOF are retained.
 Parameters

[in] v Vector (Vect instance to copy from) [in] dof Parameter to say if all degrees of freedom are concerned [Default: 0
] or if only one degree of freedom (dof
) is inserted into vectorv
which has only one degree of freedom.
 Warning
 This member function is to be used in the case where a constructor with a Mesh has been used
void transferBC  (  const Vect< T_ > &  bc, 
int  dof = 0 

) 
Transfer boundary conditions to the vector.
 Parameters

[in] bc Vect instance from which imposed degrees of freedom are copied to current instance [in] dof Parameter to say if all degrees of freedom are concerned (=0, Default) or if only one degree of freedom ( dof
) is inserted into vectorv
which has only one degree of freedom.
Insert boundary conditions.
 Parameters

[in] m Mesh instance. [in] v Vect instance from which free degrees of freedom are copied to current instance. [in] bc Vect instance from which imposed degrees of freedom are copied to current instance. [in] dof Parameter to say if all degrees of freedom are concerned (=0, Default) or if only one degree of freedom ( dof
) is inserted into vectorv
which has only one degree of freedom by node or side
Insert boundary conditions.
DOF with imposed boundary conditions are set to zero.
 Parameters

[in] m Mesh instance. [in] v Vect instance from which free degrees of freedom are copied to current instance. [in] dof Parameter to say if all degrees of freedom are concerned ( =0
, Default) or if only one degree of freedom (dof
) is inserted into vectorv
which has only one degree of freedom by node or side
Insert boundary conditions.
 Parameters

[in] v Vect instance from which free degrees of freedom are copied to current instance. [in] bc Vect instance from which imposed degrees of freedom are copied to current instance. [in] dof Parameter to say if all degrees of freedom are concerned (=0, Default) or if only one degree of freedom ( dof
) is inserted into vectorv
which has only one degree of freedom by node or side
void insertBC  (  const Vect< T_ > &  v, 
int  dof = 0 

) 
Insert boundary conditions.
DOF with imposed boundary conditions are set to zero.
 Parameters

[in] v Vect instance from which free degrees of freedom are copied to current instance. [in] dof Parameter to say if all degrees of freedom are concerned (=0, Default) or if only one degree of freedom ( dof
) is inserted into vectorv
which has only one degree of freedom by node or side
 Warning
 This member function is to be used in the case where a constructor with a Mesh has been used
void Assembly  (  const Element &  el, 
const T_ *  b  
) 
void Assembly  (  const Side &  sd, 
T_ *  b  
) 
void getGradient  (  class Vect< T_ > &  v  ) 
Evaluate the discrete Gradient vector of the current vector.
The resulting gradient is stored in a Vect instance. This function handles node vectors assuming P_{1} approximation. The gradient is then a constant vector for each element.
 Parameters

[in] v Vect instance that contains the gradient, where v(n,1)
,v(n,2)
andv(n,3)
are respectively thex
andy
andz
derivatives at elementn
.
Evaluate the discrete Gradient vector of the current vector.
The resulting gradient is stored in an Vect instance. This function handles node vectors assuming P_{1} approximation. The gradient is then a constant vector for each element.
 Parameters

[in] v Vect instance that contains the gradient, where v(n,1).x
,v(n,2).y
andv(n,3).z
are respectively thex
andy
andz
derivatives at elementn
.
void getCurl  (  Vect< T_ > &  v  ) 
Evaluate the discrete curl vector of the current vector.
The resulting curl is stored in a Vect instance. This function handles node vectors assuming P_{1} approximation. The curl is then a constant vector for each element.
 Parameters

[in] v Vect instance that contains the curl, where v(n,1)
,v(n,2)
andv(n,3)
are respectively thex
andy
andz
curl
components at elementn
.
Evaluate the discrete curl vector of the current vector.
The resulting curl is stored in a Vect instance. This function handles node vectors assuming P_{1} approximation. The curl is then a constant vector for each element.
 Parameters

[in] v Vect instance that contains the curl, where v(n,1).x
,v(n,2).y
andv(n,3).z
are respectively thex
andy
andz
curl
components at elementn
.
void getSCurl  (  Vect< T_ > &  v  ) 
void getDivergence  (  Vect< T_ > &  v  ) 
Return average value of vector in a given element.
 Parameters

[in] el Element instance [in] type Type of element. This is to be chosen among enumerated values: LINE2
,TRIANG3
,QUAD4
TETRA4
,HEXA8
,PENTA6
void save  (  string  file, 
int  opt = GMSH 

) 
Save vector in a file according to a given format.
 Parameters

[in] file Output file where to save the vector [in] opt Option to choose file format to save. This is to be chosen among enumerated values: GMSH
,GNUPLOT
,MATLAB
,TECPLOT
andVTK
(Default:GMSH
)
Multiply by a constant then add to a vector.
 Parameters

[in] x Vect instance to add [in] a Constant to multiply before adding
void Axpy  (  T_  a, 
const Vect< T_ > &  x  
) 
Add to vector the product of a vector by a scalar.
 Parameters

[in] a Scalar to premultiply [in] x Vect instance by which a
is multiplied. The result is added to current instance
void set  (  size_t  i, 
T_  val  
) 
Assign a value to an entry for a 1D vector.
 Parameters

[in] i Rank index in vector (starts at 1
)[in] val Value to assign
void set  (  size_t  i, 
size_t  j,  
T_  val  
) 
Assign a value to an entry for a 2D vector.
 Parameters

[in] i First index in vector (starts at 1
)[in] j Second index in vector (starts at 1
)[in] val Value to assign
void set  (  size_t  i, 
size_t  j,  
size_t  k,  
T_  val  
) 
Assign a value to an entry for a 3D vector.
 Parameters

[in] i First index in vector (starts at 1
)[in] j Second index in vector (starts at 1
)[in] k Third index in vector (starts at 1
)[in] val Value to assign
void add  (  size_t  i, 
T_  val  
) 
Add a value to an entry for a 1index vector.
 Parameters

[in] i Rank index in vector (starts at 1
)[in] val Value to assign
void add  (  size_t  i, 
size_t  j,  
T_  val  
) 
Add a value to an entry for a 2index vector.
 Parameters

[in] i First index in vector (starts at 1
)[in] j Second index in vector (starts at 1
)[in] val Value to assign
void add  (  size_t  i, 
size_t  j,  
size_t  k,  
T_  val  
) 
Assign a value to an entry for a 3index vector.
 Parameters

[in] i First index in vector (starts at 1
)[in] j Second index in vector (starts at 1
)[in] k Third index in vector (starts at 1
)[in] val Value to assign
T_& operator[]  (  size_t  i  ) 
Operator []
(Non constant version)
 Parameters

[in] i Rank index in vector (starts at 0
)
T_ operator[]  (  size_t  i  )  const 
Operator []
(Constant version)
 Parameters

[in] i Rank index in vector (starts at 0
)
T_& operator()  (  size_t  i  ) 
Operator ()
(Non constant version)
 Parameters

[in] i Rank index in vector (starts at 1
)
v(i)
starts atv(1)
tov(size())

v(i)
is the same element asv[i1]

T_ operator()  (  size_t  i  )  const 
Operator ()
(Constant version)
 Parameters

[in] i Rank index in vector (starts at 1
)
v(i)
starts atv(1)
tov(size())

v(i)
is the same element asv[i1]

T_& operator()  (  size_t  i, 
size_t  j  
) 
T_ operator()  (  size_t  i, 
size_t  j  
)  const 
T_& operator()  (  size_t  i, 
size_t  j,  
size_t  k  
) 
Operator ()
with 3D indexing (Non constant version).
T_ operator()  (  size_t  i, 
size_t  j,  
size_t  k  
)  const 
Operator ()
with 3D indexing (Constant version).
void operator=  (  string  s  ) 
Operator =
Assign an algebraic expression to vector entries. This operator has the same effect as the member function set(s)
 Parameters

[in] s String defining the algebraic expression as a function of coordinates and time
 Warning
 A Mesh instance must has been introduced before (e.g. by a constructor)
void setUniform  (  T_  vmin, 
T_  delta,  
T_  vmax  
) 
Initialize vector entries by setting extremal values and interval.
 Parameters

[in] vmin Minimal value to assign to the first entry [in] delta Interval [in] vmax Maximal value to assign to the lase entry
 Remarks
 Vector's size is deduced from the arguments. The vector does not need to be sized before using this function
Vect<T_>& operator=  (  const T_ &  a  ) 
Operator =
Assign a constant to vector entries
 Parameters

[in] a Value to set
Operator +=
Add vector x
to current vector instance.
 Parameters

[in] v Vect instance to add to instance
Vect<T_>& operator+=  (  const T_ &  a  ) 
Operator +=
Add a constant to current vector entries.
 Parameters

[in] a Value to add to vector entries
Operator =
 Parameters

[in] v Vect instance to subtract from
Vect<T_>& operator=  (  const T_ &  a  ) 
Operator =
Subtract constant from vector entries.
 Parameters

[in] a Value to subtract from
Vect<T_>& operator*=  (  const T_ &  a  ) 
Operator *=
 Parameters

[in] a Value to multiply by
Vect<T_>& operator/=  (  const T_ &  a  ) 
Operator /=
 Parameters

[in] a Value to divide by
void push_back  (  const T_ &  v  ) 
Add an entry to the vector.
This function is an overload of the member function push_back of the parent class vector. It adjusts in addition some vector parameters
 Parameters

[in] v Entry value to add
T_ operator,  (  const Vect< T_ > &  v  )  const 
Return Dot (scalar) product of two vectors.
A typical use of this operator is double a = (v,w)
where v
and w
are 2 instances of Vect<double>
 Parameters

[in] v Vect instance by which the current instance is multiplied