To handle general purpose vectors. More...
#include <Vect.h>
Inherits vector< T_ >.
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 nx, size_t ny, size_t nz, size_t nt)  
Constructor of a 4D 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 (Grid &g)  
Constructor with a Grid instance. More...  
Vect (Mesh &m, DOFSupport dof_type=NODE_DOF, int nb_dof=0)  
Constructor with a mesh instance. More...  
Vect (Mesh &m, DOFSupport dof_type, string name, int nb_dof=0, real_t t=0.0)  
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 ()  
Destructor.  
void  set (const T_ *v, size_t n) 
Initialize vector with a carray. More...  
void  select (const Vect< T_ > &v, size_t n) 
Select one component from a given multicomponent vector. More...  
Vect< T_ >  select (size_t n) 
Return vector with selected one component from a given multicomponent vector. 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, DOFSupport dof_type=NODE_DOF, size_t nb_dof=0) 
Define mesh class to size vector. More...  
void  setGrid (Grid &g) 
Define grid class to size vector. More...  
size_t  size () const 
Return vector (global) size.  
void  setSize (size_t nx, size_t ny=1, size_t nz=1, size_t nt=1) 
Set vector size (for 1D, 2D or 3D cases and 3D + time) 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 (DOFSupport dof_type) 
Set DOF type of vector. More...  
void  setDG (int degree=1) 
Set Discontinuous Galerkin type vector. More...  
bool  isGrid () const 
Say if vector is constructed for a grid. 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...  
DOFSupport  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  Norm (NormType t) const 
Compute a norm of vector. More...  
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.  
size_t  getNt () const 
Return number of grid points in the t direction if grid indexing is set.  
void  setIJK (const string &exp) 
Assign a given function (given by an interpretable algebraic expression) of indices components of vector. More...  
void  setIJKL (const string &exp) 
Assign a given function (given by an interpretable algebraic expression) of indices components of vector. More...  
void  setNodeBC (Mesh &m, int code, T_ val, size_t dof) 
Assign a given value to components of vector with given code. More...  
void  setNodeBC (Mesh &m, int code, T_ val) 
Assign a given value to components of vector with given code. More...  
void  setSideBC (Mesh &m, int code, T_ val, size_t dof) 
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) 
Assign a given function (given by an interpretable algebraic expression) to components of vector with given code. More...  
void  setNodeBC (Mesh &m, int code, const string &exp) 
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) 
Assign a given function (given by an interpretable algebraic expression) to components of vector corresponding to sides with given code. More...  
void  setSideBC (Mesh &m, int code, const string &exp) 
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) 
Assign a given value to components of vector with given code. More...  
void  setNodeBC (int code, T_ val) 
Assign a given value to components of vector with given code. More...  
void  setNodeBC (int code, const string &exp, size_t dof) 
Assign a given function (given by an interpretable algebraic expression) to components of vector with given code. More...  
void  setNodeBC (int code, const string &exp) 
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) 
Assign a given function (given by an interpre<table algebraic expression) to components of vector with given code. More...  
void  setSideBC (int code, const string &exp) 
Assign a given function (given by an interpre<table algebraic expression) to components of vector with given code. More...  
void  setSideBC (int code, T_ val, size_t dof) 
Assign a given value to components of vector with given code. More...  
void  setSideBC (int code, T_ val) 
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, const 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...  
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, 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...  
T_ &  operator() (size_t i, size_t j, size_t k, size_t l) 
Operator () with 4D indexing (Non constant version). More...  
T_  operator() (size_t i, size_t j, size_t k, size_t l) const 
Operator () with 4D indexing (Constant version). More...  
Vect< T_ > &  operator= (const Vect< T_ > &v) 
Operator = between vectors.  
void  operator= (string s) 
Operator = More...  
void  setUniform (T_ vmin, T_ vmax, size_t n) 
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...  
Vect< complex_t >  getFFT () 
Compute FFT transform of vector. More...  
Vect< complex_t >  getInvFFT () 
Compute Inverse FFT transform of vector. More...  
Detailed Description
class OFELI::Vect< T_ >
To handle general purpose vectors.
 Copyright
 GNU Lesser Public License
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() [1/14]
Vect  (  size_t  n  ) 
Constructor setting vector size.
 Parameters

[in] n Size of vector
◆ Vect() [2/14]
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() [3/14]
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() [4/14]
Vect  (  size_t  nx, 
size_t  ny,  
size_t  nz,  
size_t  nt  
) 
Constructor of a 4D index vector.
This constructor can be used for instance for a 4D grid vector
 Parameters

[in] nx Size for the first index [in] ny Size for the second index [in] nz Size for the third index [in] nt Size for the fourth index
 Remarks
 The size of resulting vector is nx*ny*nz*nt
◆ Vect() [5/14]
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
◆ Vect() [6/14]
◆ Vect() [7/14]
Vect  (  Mesh &  m, 
DOFSupport  dof_type = NODE_DOF , 

int  nb_dof = 0 

) 
Constructor with a mesh instance.
 Parameters

[in] m Mesh instance [in] dof_type Type of degrees of freedom. To be given among the enumerated values: NODE_DOF
,ELEMENT_DOF
,SIDE_DOF
orEDGE_DOF
(Default:NODE_DOF
)[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
◆ Vect() [8/14]
Vect  (  Mesh &  m, 
DOFSupport  dof_type,  
string  name,  
int  nb_dof = 0 , 

real_t  t = 0.0 

) 
Constructor with a mesh instance giving name and time for vector.
 Parameters

[in] m Mesh instance [in] dof_type Type of degrees of freedom. To be given among the enumerated values: NODE_DOF
,ELEMENT_DOF
,SIDE_DOF
orEDGE_DOF
[in] name Name of 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] t Time value for the vector [Default 0.0
]
◆ Vect() [9/14]
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
◆ Vect() [10/14]
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
◆ Vect() [11/14]
◆ Vect() [12/14]
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
◆ Vect() [13/14]
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).
◆ Vect() [14/14]
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 !!
Member Function Documentation
◆ add() [1/3]
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
◆ add() [2/3]
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
◆ add() [3/3]
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
◆ Assembly() [1/4]
void Assembly  (  const Element &  el, 
const T_ *  b  
) 
◆ Assembly() [2/4]
◆ Assembly() [3/4]
void Assembly  (  const Side &  sd, 
const T_ *  b  
) 
◆ Assembly() [4/4]
◆ Axpy()
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
◆ getAverage()
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
◆ getCurl() [1/2]
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
.
◆ getCurl() [2/2]
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
.
◆ getDivergence()
void getDivergence  (  Vect< T_ > &  v  ) 
◆ getDOFType()
DOFSupport getDOFType  (  )  const 
Return DOF type of vector
 Returns
 dof_type Type of degrees of freedom. Value among the enumerated values:
NODE_DOF
,ELEMENT_DOF
,SIDE_DOF
orEDGE_DOF
◆ getFFT()
Compute FFT transform of vector.
This member function computes the FFT (Fast Fourier Transform) of the vector contained in the instance and returns it
 Returns
 Vect<complex<double> > instance containing the FFT
◆ getGradient() [1/2]
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
.
◆ getGradient() [2/2]
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
.
◆ getInvFFT()
Compute Inverse FFT transform of vector.
This member function computes the inverse FFT (Fast Fourier Transform) of the vector contained in the instance and returns it
 Returns
 Vect<complex<double> > instance containing the FFT
◆ getNorm1()
real_t getNorm1  (  )  const 
Calculate 1norm of vector.
 Remarks
 This function is available only if the template parameter is
double
orcomplex<double>
◆ getNorm2()
real_t getNorm2  (  )  const 
Calculate 2norm (Euclidean norm) of vector.
 Remarks
 This function is available only if the template parameter is
double
orcomplex<double>
◆ getNormMax()
real_t getNormMax  (  )  const 
Calculate Maxnorm (Infinite norm) of vector.
 Remarks
 This function is available only if the template parameter is
double
orcomplex<double>
◆ getSCurl()
void getSCurl  (  Vect< T_ > &  v  ) 
◆ getWNorm2()
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
◆ insertBC() [1/4]
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
◆ insertBC() [2/4]
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
◆ insertBC() [3/4]
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
◆ insertBC() [4/4]
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
◆ isGrid()
bool isGrid  (  )  const 
◆ MultAdd()
Multiply by a constant then add to a vector.
 Parameters

[in] x Vect instance to add [in] a Constant to multiply before adding
◆ Norm()
Compute a norm of vector.
 Parameters

[in] t Norm type to compute: To choose among enumerate values: NORM1: 1norm WNORM1: Weighted 1norm (Discrete L1norm) NORM2: 2norm WNORM2: Weighted 2norm (Discrete L2norm) NORM_MAX: max norm (Infinity norm)
 Returns
 Value of norm
 Warning
 This function is available for real valued vectors only
◆ operator()() [1/8]
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]

◆ operator()() [2/8]
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]

◆ operator()() [3/8]
T_ & operator()  (  size_t  i, 
size_t  j  
) 
◆ operator()() [4/8]
T_ operator()  (  size_t  i, 
size_t  j  
)  const 
◆ operator()() [5/8]
T_ & operator()  (  size_t  i, 
size_t  j,  
size_t  k  
) 
Operator ()
with 3D indexing (Non constant version).
◆ operator()() [6/8]
T_ operator()  (  size_t  i, 
size_t  j,  
size_t  k  
)  const 
Operator ()
with 3D indexing (Constant version).
◆ operator()() [7/8]
T_ & operator()  (  size_t  i, 
size_t  j,  
size_t  k,  
size_t  l  
) 
Operator ()
with 4D indexing (Non constant version).
 Parameters

[in] i first index in vector (Number of vector components in the x
grid)[in] j second index in vector (Number of vector components in the y
grid)[in] k third index in vector (Number of vector components in the z
grid)[in] l fourth index in vector (Number of vector components in the t
grid)v(i,j,k,l)
starts atv(1,1,1,1)
tov(getNx(),getNy(),getNz(),getNt())
◆ operator()() [8/8]
T_ operator()  (  size_t  i, 
size_t  j,  
size_t  k,  
size_t  l  
)  const 
Operator ()
with 4D indexing (Constant version).
 Parameters

[in] i first index in vector (Number of vector components in the x
grid)[in] j second index in vector (Number of vector components in the y
grid)[in] k third index in vector (Number of vector components in the z
grid)[in] l third index in vector (Number of vector components in the t
grid)v(i,j,k,l)
starts atv(1,1,1,1)
tov(getNx(),getNy(),getNz(),getNt())
◆ operator*=()
Vect< T_ > & operator*=  (  const T_ &  a  ) 
Operator *=
 Parameters

[in] a Value to multiply by
◆ operator+=() [1/2]
Vect< T_ > & operator+=  (  const T_ &  a  ) 
Operator +=
Add a constant to current vector entries.
 Parameters

[in] a Value to add to vector entries
◆ operator+=() [2/2]
Operator +=
Add vector x
to current vector instance.
 Parameters

[in] v Vect instance to add to instance
◆ operator,()
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
◆ operator=() [1/2]
Vect< T_ > & operator=  (  const T_ &  a  ) 
Operator =
Subtract constant from vector entries.
 Parameters

[in] a Value to subtract from
◆ operator=() [2/2]
Operator =
 Parameters

[in] v Vect instance to subtract from
◆ operator/=()
Vect< T_ > & operator/=  (  const T_ &  a  ) 
Operator /=
 Parameters

[in] a Value to divide by
◆ operator=() [1/2]
Vect< T_ > & operator=  (  const T_ &  a  ) 
Operator =
Assign a constant to vector entries
 Parameters

[in] a Value to set
◆ operator=() [2/2]
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)
◆ push_back()
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
◆ removeBC() [1/2]
Remove boundary conditions.
This member function copies to current vector a vector where only non imposed DOF are retained.
◆ removeBC() [2/2]
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
◆ resize() [1/2]
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
◆ resize() [2/2]
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
◆ select() [1/3]
void select  (  const Vect< T_ > &  v, 
size_t  n  
) 
Select one component from a given multicomponent vector.
 Parameters

[in] v Vect instance to extract from [in] n Component to extract (must be > 1 and < 4 or).
◆ select() [2/3]
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
◆ select() [3/3]
Vect< T_ > select  (  size_t  n  ) 
Return vector with selected one component from a given multicomponent vector.
 Parameters

[in] n Component to extract (must be > 1 and < 4 or).
 Returns
 Vector with selected component
◆ set() [1/8]
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 values of vector. This expression must use the variablex
as coordinate of vector.
 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.
 Parameters

[in] x Vector that defines coordinates
◆ set() [2/8]
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.
◆ set() [3/8]
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
◆ set() [4/8]
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. Consider for instance that we want to initialize the Vect instance with the values v[i] = exp(1+x[i]); then, we use this member function as follows v.set("exp("1+x",x);
◆ set() [5/8]
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]
◆ set() [6/8]
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
◆ set() [7/8]
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
◆ set() [8/8]
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
◆ setDG()
void setDG  (  int  degree = 1  ) 
◆ setDOFType()
void setDOFType  (  DOFSupport  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_DOF
,ELEMENT_DOF
,SIDE_DOF
orEDGE_DOF
◆ setGrid()
◆ setIJK()
void setIJK  (  const string &  exp  ) 
Assign a given function (given by an interpretable algebraic expression) of indices components of vector.
This function enable assigning a value to vector entries as function of indices
 Parameters

[in] exp Regular algebraic expression to assign. It must involve the variables i
,j
and/ork
.
◆ setIJKL()
void setIJKL  (  const string &  exp  ) 
Assign a given function (given by an interpretable algebraic expression) of indices components of vector.
This function enable assigning a value to vector entries as function of indices
 Parameters

[in] exp Regular algebraic expression to assign. It must involve the variables i
,j
,k
and/orl
.
◆ setMesh()
void setMesh  (  Mesh &  m, 
DOFSupport  dof_type = NODE_DOF , 

size_t  nb_dof = 0 

) 
Define mesh class to size vector.
 Parameters

[in] m Mesh instance [in] dof_type Parameter to precise the type of degrees of freedom. To be chosen among the enumerated values: NODE_DOF
,ELEMENT_DOF
,SIDE_DOF
,EDGE_DOF
[Default:NODE_DOF
][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 [Default:0
]
◆ setNodeBC() [1/8]
void setNodeBC  (  int  code, 
const string &  exp  
) 
Assign a given function (given by an interpretable algebraic expression) to components of vector with given code.
Vector components are assumed nodewise. Concerns 1DOF problems
 Parameters

[in] code Code for which nodes will be assigned prescribed value [in] exp Regular algebraic expression to prescribe
 Warning
 This member function is to be used in the case where a constructor with a Mesh has been used
◆ setNodeBC() [2/8]
void setNodeBC  (  int  code, 
const string &  exp,  
size_t  dof  
) 
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
◆ setNodeBC() [3/8]
void setNodeBC  (  int  code, 
T_  val  
) 
Assign a given value to components of vector with given code.
Vector components are assumed nodewise. Concerns 1DOF problems
 Parameters

[in] code Code for which nodes will be assigned prescribed value [in] val Value to prescribe
◆ setNodeBC() [4/8]
void setNodeBC  (  int  code, 
T_  val,  
size_t  dof  
) 
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
]
◆ setNodeBC() [5/8]
void setNodeBC  (  Mesh &  m, 
int  code,  
const string &  exp  
) 
Assign a given function (given by an interpretable algebraic expression) to components of vector with given code.
Vector components are assumed nodewise. Case of 1DOF problem
 Parameters

[in] m Instance of mesh [in] code Code for which nodes will be assigned prescribed value [in] exp Regular algebraic expression to prescribe
◆ setNodeBC() [6/8]
void setNodeBC  (  Mesh &  m, 
int  code,  
const string &  exp,  
size_t  dof  
) 
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
◆ setNodeBC() [7/8]
void setNodeBC  (  Mesh &  m, 
int  code,  
T_  val  
) 
Assign a given value to components of vector with given code.
Vector components are assumed nodewise. Here all dofs of nodes with given code will be assigned
 Parameters

[in] m Mesh instance [in] code The value is assigned if the node has this code [in] val Value to assign
◆ setNodeBC() [8/8]
void setNodeBC  (  Mesh &  m, 
int  code,  
T_  val,  
size_t  dof  
) 
Assign a given value to components of vector with given code.
Vector components are assumed nodewise
 Parameters

[in] m Mesh instance [in] code The value is assigned if the node has this code [in] val Value to assign [in] dof Degree of freedom to assign
◆ setSideBC() [1/7]
void setSideBC  (  int  code, 
const string &  exp  
) 
Assign a given function (given by an interpre<table algebraic expression) to components of vector with given code.
Vector components are assumed nodewise. Case of 1DOF problem
 Parameters

[in] code Code for which nodes will be assigned prescribed value [in] exp Regular algebraic expression to prescribe
 Warning
 This member function is to be used in the case where a constructor with a Mesh has been used
◆ setSideBC() [2/7]
void setSideBC  (  int  code, 
const string &  exp,  
size_t  dof  
) 
Assign a given function (given by an interpre<table 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
 Warning
 This member function is to be used in the case where a constructor with a Mesh has been used
◆ setSideBC() [3/7]
void setSideBC  (  int  code, 
T_  val  
) 
Assign a given value to components of vector with given code.
Vector components are assumed nodewise. Concerns 1DOF problems
 Parameters

[in] code Code for which nodes will be assigned prescribed value [in] val Value to prescribe
 Warning
 This member function is to be used in the case where a constructor with a Mesh has been used
◆ setSideBC() [4/7]
void setSideBC  (  int  code, 
T_  val,  
size_t  dof  
) 
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
 Warning
 This member function is to be used in the case where a constructor with a Mesh has been used
◆ setSideBC() [5/7]
void setSideBC  (  Mesh &  m, 
int  code,  
const string &  exp  
) 
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. Case of 1DOF problem
 Parameters

[in] m Instance of mesh [in] code Code for which nodes will be assigned prescribed value [in] exp Regular algebraic expression to prescribe
◆ setSideBC() [6/7]
void setSideBC  (  Mesh &  m, 
int  code,  
const string &  exp,  
size_t  dof  
) 
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
◆ setSideBC() [7/7]
void setSideBC  (  Mesh &  m, 
int  code,  
T_  val,  
size_t  dof  
) 
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
]
◆ setSize()
void setSize  (  size_t  nx, 
size_t  ny = 1 , 

size_t  nz = 1 , 

size_t  nt = 1 

) 
Set vector size (for 1D, 2D or 3D cases and 3D + time)
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
][in] nt Number of grid points in t
direction [Default:1
]
◆ setUniform()
void setUniform  (  T_  vmin, 
T_  vmax,  
size_t  n  
) 
Initialize vector entries by setting extremal values and interval.
 Parameters

[in] vmin Minimal value to assign to the first entry [in] vmax Maximal value to assign to the lase entry [in] n Number of points (including extremities)
 Remarks
 The vector has a size of
n
. It is sized in this function
◆ transferBC()
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.