To handle general purpose vectors. More...
Inherits vector< T_ >.
Public Member Functions | |
Vect () | |
Default Constructor. Initialize a zero-length vector. | |
Vect (size_t n) | |
Constructor setting vector size. More... | |
Vect (size_t nx, size_t ny) | |
Constructor of a 2-D index vector. More... | |
Vect (size_t nx, size_t ny, size_t nz) | |
Constructor of a 3-D index vector. More... | |
Vect (size_t nx, size_t ny, size_t nz, size_t nt) | |
Constructor of a 4-D 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 3-component 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 c-array. 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 1-D, 2-D or 3-D cases and 3-D + 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... | |
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. | |
Grid & | getGrid () const |
Return Grid instance. | |
bool | WithMesh () const |
Return true if vector contains a Mesh pointer, false if not. More... | |
bool | WithGrid () const |
Return true if vector contains a Grid 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 (const 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 1-norm of vector. More... | |
real_t | getNorm2 () const |
Calculate 2-norm (Euclidean norm) of vector. More... | |
real_t | getNormMax () const |
Calculate Max-norm (Infinite norm) of vector. More... | |
real_t | getWNorm1 () const |
Calculate weighted 1-norm of vector The wighted 1-norm is the 1-Norm of the vector divided by its size. | |
real_t | getWNorm2 () const |
Calculate weighted 2-norm 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 C-array) 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 C-array) 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 2-D 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 1-D vector. More... | |
void | set (size_t i, size_t j, T_ val) |
Assign a value to an entry for a 2-D vector. More... | |
void | set (size_t i, size_t j, size_t k, T_ val) |
Assign a value to an entry for a 3-D vector. More... | |
void | add (size_t i, T_ val) |
Add a value to an entry for a 1-index vector. More... | |
void | add (size_t i, size_t j, T_ val) |
Add a value to an entry for a 2-index vector. More... | |
void | add (size_t i, size_t j, size_t k, T_ val) |
Assign a value to an entry for a 3-index 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 2-D indexing (Non constant version, case of a grid vector). More... | |
T_ | operator() (size_t i, size_t j) const |
Operator () with 2-D indexing (Constant version). More... | |
T_ & | operator() (size_t i, size_t j, size_t k) |
Operator () with 3-D indexing (Non constant version). More... | |
T_ | operator() (size_t i, size_t j, size_t k) const |
Operator () with 3-D indexing (Constant version). More... | |
T_ & | operator() (size_t i, size_t j, size_t k, size_t l) |
Operator () with 4-D indexing (Non constant version). More... | |
T_ | operator() (size_t i, size_t j, size_t k, size_t l) const |
Operator () with 4-D 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... | |
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(i)
, a(i,j)
or a(i,j,k)
. This feature is useful, for instance, in the case of a structured grid 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.
T_ | Data type (real_t, float, complex<real_t>, ...) |
Vect | ( | size_t | n | ) |
Constructor setting vector size.
[in] | n | Size of vector |
Vect | ( | size_t | nx, |
size_t | ny | ||
) |
Constructor of a 2-D index vector.
This constructor can be used for instance for a 2-D grid vector
[in] | nx | Size for the first index |
[in] | ny | Size for the second index |
Vect | ( | size_t | nx, |
size_t | ny, | ||
size_t | nz | ||
) |
Constructor of a 3-D index vector.
This constructor can be used for instance for a 3-D grid vector
[in] | nx | Size for the first index |
[in] | ny | Size for the second index |
[in] | nz | Size for the third index |
Vect | ( | size_t | nx, |
size_t | ny, | ||
size_t | nz, | ||
size_t | nt | ||
) |
Constructor of a 4-D index vector.
This constructor can be used for instance for a 4-D grid vector
[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 |
Vect | ( | size_t | n, |
T_ * | x | ||
) |
Create an instance of class Vect as an image of a C/C++ array.
[in] | n | Dimension of vector to construct |
[in] | x | C-array to copy |
Vect | ( | Mesh & | m, |
DOFSupport | dof_type = NODE_DOF , |
||
int | nb_dof = 0 |
||
) |
Constructor with a mesh instance.
[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 or EDGE_DOF (Default: NODE_DOF ) |
[in] | nb_dof | Number of degrees of freedom per node, element or side If nb_dof is set to 0 (default value) the constructor picks this number from the Mesh instance |
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.
[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 or EDGE_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 to 0 the constructor picks this number from the Mesh instance |
[in] | t | Time value for the vector [Default 0.0 ] |
Constructor of an element vector.
The constructed vector has local numbering of nodes
[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
[in] | sd | Pointer to Side to localize |
[in] | v | Global vector to localize |
Constructor to select some components of a given vector.
[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 and nb_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 3-component vector.
[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.
[in] | d | Integer number giving the list of degrees of freedom. This number is made of n digits where n is the number of degrees of freedom. Let us give an example: Assume that the instance v has 3 DOF by entity (node, element or side). The choice d=201 means that the constructed instance has 2 DOF where the first DOF is the third one of v , and the second DOF is the first one of f v . Consequently, no digit can be larger than the number of DOF the constructed instance. In this example, a choice d=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 " "). |
d
. The number is in this case interpreted as octal !! void add | ( | size_t | i, |
T_ | val | ||
) |
Add a value to an entry for a 1-index vector.
[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 2-index vector.
[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 3-index vector.
[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 Assembly | ( | const Element & | el, |
const T_ * | b | ||
) |
void Assembly | ( | const Side & | sd, |
const T_ * | b | ||
) |
void Axpy | ( | T_ | a, |
const Vect< T_ > & | x | ||
) |
Add to vector the product of a vector by a scalar.
[in] | a | Scalar to premultiply |
[in] | x | Vect instance by which a is multiplied. The result is added to current instance |
Return average value of vector in a given element.
[in] | el | Element instance |
[in] | type | Type of element. This is to be chosen among enumerated values: LINE2 , TRIANG3 , QUAD4 TETRA4 , HEXA8 , PENTA6 |
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 P1 approximation. The curl is then a constant vector for each element.
[in] | v | Vect instance that contains the curl, where v(n,1) , v(n,2) and v(n,3) are respectively the x and y and z curl components at element n . |
Evaluate the discrete curl vector of the current vector.
The resulting curl is stored in a Vect instance. This function handles node vectors assuming P1 approximation. The curl is then a constant vector for each element.
[in] | v | Vect instance that contains the curl, where v(n,1).x , v(n,2).y and v(n,3).z are respectively the x and y and z curl components at element n . |
void getDivergence | ( | Vect< T_ > & | v | ) |
DOFSupport getDOFType | ( | ) | const |
Return DOF type of vector
NODE_DOF
, ELEMENT_DOF
, SIDE_DOF
or EDGE_DOF
Compute FFT transform of vector.
This member function computes the FFT (Fast Fourier Transform) of the vector contained in the instance and returns it
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 P1 approximation. The gradient is then a constant vector for each element.
[in] | v | Vect instance that contains the gradient, where v(n,1) , v(n,2) and v(n,3) are respectively the x and y and z derivatives at element n . |
Evaluate the discrete Gradient vector of the current vector.
The resulting gradient is stored in an Vect instance. This function handles node vectors assuming P1 approximation. The gradient is then a constant vector for each element.
[in] | v | Vect instance that contains the gradient, where v(n,1).x , v(n,2).y and v(n,3).z are respectively the x and y and z derivatives at element n . |
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
real_t getNorm1 | ( | ) | const |
Calculate 1-norm of vector.
double
or complex<double>
real_t getNorm2 | ( | ) | const |
Calculate 2-norm (Euclidean norm) of vector.
double
or complex<double>
real_t getNormMax | ( | ) | const |
Calculate Max-norm (Infinite norm) of vector.
double
or complex<double>
void getSCurl | ( | Vect< T_ > & | v | ) |
real_t getWNorm2 | ( | ) | const |
Calculate weighted 2-norm of vector.
The weighted 2-norm is the 2-Norm of the vector divided by the square root of its size
Insert boundary conditions.
[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 vector v which has only one degree of freedom by node or side |
Insert boundary conditions.
DOF with imposed boundary conditions are set to zero.
[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 vector v which has only one degree of freedom by node or side |
Insert boundary conditions.
[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 vector v 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.
[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 vector v which has only one degree of freedom by node or side |
Multiply by a constant then add to a vector.
[in] | x | Vect instance to add |
[in] | a | Constant to multiply before adding |
Compute a norm of vector.
[in] | t | Norm type to compute: To choose among enumerate values: NORM1: 1-norm WNORM1: Weighted 1-norm (Discrete L1-norm) NORM2: 2-norm WNORM2: Weighted 2-norm (Discrete L2-norm) NORM_MAX: max norm (Infinity norm) |
T_& operator() | ( | size_t | i | ) |
Operator ()
(Non constant version)
[in] | i | Rank index in vector (starts at 1 )
|
T_ operator() | ( | size_t | i | ) | const |
Operator ()
(Constant version)
[in] | i | Rank index in vector (starts at 1 )
|
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 3-D indexing (Non constant version).
T_ operator() | ( | size_t | i, |
size_t | j, | ||
size_t | k | ||
) | const |
Operator ()
with 3-D indexing (Constant version).
T_& operator() | ( | size_t | i, |
size_t | j, | ||
size_t | k, | ||
size_t | l | ||
) |
Operator ()
with 4-D indexing (Non constant version).
[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 at v(1,1,1,1) to v(getNx(),getNy(),getNz(),getNt()) |
T_ operator() | ( | size_t | i, |
size_t | j, | ||
size_t | k, | ||
size_t | l | ||
) | const |
Operator ()
with 4-D indexing (Constant version).
[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 at v(1,1,1,1) to v(getNx(),getNy(),getNz(),getNt()) |
Vect<T_>& operator*= | ( | const T_ & | a | ) |
Operator *=
[in] | a | Value to multiply by |
Operator +=
Add vector x
to current vector instance.
[in] | v | Vect instance to add to instance |
Vect<T_>& operator+= | ( | const T_ & | a | ) |
Operator +=
Add a constant to current vector entries.
[in] | a | Value to add to vector entries |
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>
[in] | v | Vect instance by which the current instance is multiplied |
Operator -=
[in] | v | Vect instance to subtract from |
Vect<T_>& operator-= | ( | const T_ & | a | ) |
Operator -=
Subtract constant from vector entries.
[in] | a | Value to subtract from |
Vect<T_>& operator/= | ( | const T_ & | a | ) |
Operator /=
[in] | a | Value to divide by |
void operator= | ( | string | s | ) |
Operator =
Assign an algebraic expression to vector entries. This operator has the same effect as the member function set(s)
[in] | s | String defining the algebraic expression as a function of coordinates and time |
Vect<T_>& operator= | ( | const T_ & | a | ) |
Operator =
Assign a constant to vector entries
[in] | a | Value to set |
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
[in] | v | Entry value to add |
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.
[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 vector v which has only one degree of freedom. |
void resize | ( | size_t | n | ) |
Set vector size.
This function allocates memory for the vector but does not initialize its components
[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
[in] | n | Size of vector |
[in] | v | Value to assign to vector entries |
void select | ( | const Vect< T_ > & | v, |
size_t | n | ||
) |
Select one component from a given multicomponent vector.
[in] | v | Vect instance to extract from |
[in] | n | Component to extract (must be > 1 and < 4 or). |
Vect<T_> select | ( | size_t | n | ) |
Return vector with selected one component from a given multicomponent vector.
[in] | n | Component to extract (must be > 1 and < 4 or). |
void select | ( | const Vect< T_ > & | v, |
size_t | nb_dof = 0 , |
||
size_t | first_dof = 1 |
||
) |
Initialize vector with another Vect instance.
[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 and nb_dof=1 means that the second DOF of each node is copied in the vector |
void set | ( | const T_ * | v, |
size_t | n | ||
) |
Initialize vector with a c-array.
[in] | v | c-array (pointer) to initialize Vect |
[in] | n | size of array |
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
[in] | exp | Regular algebraic expression that defines a function of x , y , z which are coordinates of nodes and t which is the time value. |
[in] | dof | Degree of freedom to which the value is assigned [Default: 1] |
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 1-D
[in] | exp | Regular algebraic expression that defines a function of x which are values of vector. This expression must use the variable x as coordinate of vector. |
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. [in] | x | Vector that defines coordinates |
void set | ( | Mesh & | ms, |
const string & | exp, | ||
size_t | dof = 1 |
||
) |
Initialize vector with an algebraic expression with providing mesh data.
[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.
[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); |
void set | ( | size_t | i, |
T_ | val | ||
) |
Assign a value to an entry for a 1-D vector.
[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 2-D vector.
[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 3-D vector.
[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 setDG | ( | int | degree = 1 | ) |
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
[in] | dof_type | Type of degrees of freedom. Value to be chosen among the enumerated values: NODE_DOF , ELEMENT_DOF , SIDE_DOF or EDGE_DOF |
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
[in] | exp | Regular algebraic expression to assign. It must involve the variables i , j and/or k . |
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
[in] | exp | Regular algebraic expression to assign. It must involve the variables i , j , k and/or l . |
void setMesh | ( | Mesh & | m, |
DOFSupport | dof_type = NODE_DOF , |
||
size_t | nb_dof = 0 |
||
) |
Define mesh class to size vector.
[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 to 0 the constructor picks this number from the Mesh instance [Default: 0 ] |
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
[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 |
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
[in] | m | Mesh instance |
[in] | code | The value is assigned if the node has this code |
[in] | val | Value to assign |
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
[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 |
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 1-DOF problem
[in] | m | Instance of mesh |
[in] | code | Code for which nodes will be assigned prescribed value |
[in] | exp | Regular algebraic expression to prescribe |
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
[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, |
T_ | val | ||
) |
Assign a given value to components of vector with given code.
Vector components are assumed nodewise. Concerns 1-DOF problems
[in] | code | Code for which nodes will be assigned prescribed value |
[in] | val | Value to prescribe |
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
[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, |
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 1-DOF problems
[in] | code | Code for which nodes will be assigned prescribed value |
[in] | exp | Regular algebraic expression to prescribe |
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
[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, | ||
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
[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 |
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 1-DOF problem
[in] | m | Instance of mesh |
[in] | code | Code for which nodes will be assigned prescribed value |
[in] | exp | Regular algebraic expression to prescribe |
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
[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 |
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 1-DOF problem
[in] | code | Code for which nodes will be assigned prescribed value |
[in] | exp | Regular algebraic expression to prescribe |
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
[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 |
void setSideBC | ( | int | code, |
T_ | val | ||
) |
Assign a given value to components of vector with given code.
Vector components are assumed nodewise. Concerns 1-DOF problems
[in] | code | Code for which nodes will be assigned prescribed value |
[in] | val | Value to prescribe |
void setSize | ( | size_t | nx, |
size_t | ny = 1 , |
||
size_t | nz = 1 , |
||
size_t | nt = 1 |
||
) |
Set vector size (for 1-D, 2-D or 3-D cases and 3-D + time)
This function allocates memory for the vector but does not initialize its components
[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 ] |
void setUniform | ( | T_ | vmin, |
T_ | vmax, | ||
size_t | n | ||
) |
Initialize vector entries by setting extremal values and interval.
[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) |
n
. It is sized in this function void transferBC | ( | const Vect< T_ > & | bc, |
int | dof = 0 |
||
) |
Transfer boundary conditions to the vector.
[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 vector v which has only one degree of freedom. |
bool WithGrid | ( | ) | const |