Builds finite element arrays for thermal diffusion and convection in 2-D domains using 3-Node triangles. More...
Inheritance diagram for TINS2DT3B:
Public Member Functions | |
| TINS2DT3B () | |
| Default Constructor. | |
| TINS2DT3B (Mesh &mesh, Vect< double > &u, Vect< double > &p, double &ts, double Re=0.) | |
| Constructor using mesh. | |
| ~TINS2DT3B () | |
| Destructor. | |
| void | setInput (EqDataType opt, Vect< double > &u) |
| Set equation input data. | |
| int | runOneTimeStep () |
| Run one time step. | |
| int | run () |
| Run (in the case of one step run) | |
| void | updateBC (const Vect< T_ > &bc) |
| Update Right-Hand side by taking into account essential boundary conditions. | |
| void | DiagBC (int dof_type=NODE_DOF, int dof=0) |
| Update element matrix to impose bc by diagonalization technique. | |
| void | LocalNodeVector (Vect< T_ > &b) |
| Localize Element Vector from a Vect instance. | |
| void | ElementVector (const Vect< T_ > &b, int dof_type=NODE_FIELD, int flag=0) |
| Localize Element Vector. | |
| void | SideVector (const Vect< T_ > &b) |
| Localize Side Vector. | |
| void | ElementNodeCoordinates () |
| Localize coordinates of element nodes. | |
| void | SideNodeCoordinates () |
| Localize coordinates of side nodes. | |
| void | ElementAssembly (Matrix< T_ > *A) |
| Assemble element matrix into global one. | |
| void | ElementAssembly (SkSMatrix< T_ > &A) |
| Assemble element matrix into global one. | |
| void | ElementAssembly (SkMatrix< T_ > &A) |
| Assemble element matrix into global one. | |
| void | ElementAssembly (SpMatrix< T_ > &A) |
| Assemble element matrix into global one. | |
| void | ElementAssembly (TrMatrix< T_ > &A) |
| Assemble element matrix into global one. | |
| void | ElementAssembly (Vect< T_ > &v) |
| Assemble element vector into global one. | |
| void | SideAssembly (Matrix< T_ > *A) |
| Assemble side (edge or face) matrix into global one. | |
| void | SideAssembly (SkSMatrix< T_ > &A) |
| Assemble side (edge or face) matrix into global one. | |
| void | SideAssembly (SkMatrix< T_ > &A) |
| Assemble side (edge or face) matrix into global one. | |
| void | SideAssembly (SpMatrix< T_ > &A) |
| Assemble side (edge or face) matrix into global one. | |
| void | SideAssembly (Vect< T_ > &v) |
| Assemble side (edge or face) vector into global one. | |
| size_t | getNbNodes () const |
| Return number of element nodes. | |
| size_t | getNbEq () const |
| Return number of element equations. | |
| T_ * | A () |
| Return element matrix as a C-array. | |
| T_ * | sA () |
| Return side matrix as a C-array. | |
| T_ * | b () |
| Return element right-hand side as a C-array. | |
| T_ * | sb () |
| Return side right-hand side as a C-array. | |
| T_ * | Prev () |
| Return element matrix as a C-array. | |
| LocalMatrix< T_, NEE_, NEE_ > & | EA () |
| Return element matrix as a LocalMatrix instance. | |
| LocalMatrix< T_, NSE_, NSE_ > & | SA () |
| Return side matrix as a LocalMatrix instance. | |
| LocalVect< T_, NEE_ > & | Eb () |
| Return element right-hand side as a LocalVect instance. | |
| LocalVect< T_, NEE_ > & | Ep () |
| Return element matrix as a C-array. | |
| void | setInitialSolution (const Vect< T_ > &u) |
| Set initial solution (previous time step) | |
| double | setMaterialProperty (const string &exp, const string &prop) |
| Define a material property by an algebraic expression. | |
| void | setMesh (class Mesh &m) |
| Define mesh and renumber DOFs after removing imposed ones. | |
| Mesh & | getMesh () const |
| Return reference to Mesh instance. | |
| LinearSolver< T_ > & | getLinearSolver () |
| Return reference to linear solver instance. | |
| void | setSolver (int ls, int pc=IDENT_PREC) |
| Choose solver for the linear system. | |
| int | solveEigenProblem (int nb_eigv, bool g=false) |
| Compute eigenvalues and eigenvectors. | |
| double | getEigenValue (int n) const |
| Return the n-th eigenvalue. | |
| void | getEigenVector (int n, Vect< double > &v) const |
| Store the eigenvector corresponding to a given eigenvalue. | |
| class Eigen & | getEigenSolver () |
| Return reference to eigenproblem solver. | |
Protected Member Functions | |
| void | Viscosity (const double &visc) |
| Set (constant) Viscosity. | |
| void | Viscosity (const char *exp) |
| Set viscosity given by an algebraic expression. | |
| void | Density (const double &dens) |
| Set (constant) Viscosity. | |
| void | Density (const char *exp) |
| Set Density given by an algebraic expression. | |
| void | ThermalExpansion (const double *e) |
| Set (constant) thermal expansion coefficient. | |
| void | ThermalExpansion (const char *exp) |
| Set thermal expansion coefficient given by an algebraic expression. | |
| void | setMaterial () |
| Set material properties. | |
| void | Init (const Element *el) |
| Set element arrays to zero. | |
| void | Init (const Side *sd) |
| Set side arrays to zero. | |
Detailed Description
Builds finite element arrays for thermal diffusion and convection in 2-D domains using 3-Node triangles.
Note that members calculating element arrays have as an argument a double coef that will be multiplied by the contribution of the current element. This makes possible testing different algorithms.
Constructor & Destructor Documentation
Constructor using mesh.
- Parameters:
-
[in] mesh Mesh instance [in,out] u NodeVect instance containing initial velocity. This vector is updated during computations and will therefore contain velocity at each time step [out] p NodeVect instance that will contain pressure at nodes. This vector is updated during computations and will therefore contain pressure at each time step [in] ts Time step [in] Re Reynolds number. The default value (0) means that no Reynolds number is given and problem data are supplied by material properties. If Re has any other value, then nondimensional form of the equations is assumed and material properties are ignored.
Member Function Documentation
Set equation input data.
- Parameters:
-
[in] opt Parameter to select type of input (enumerated values) -
INITIAL_FIELD: Initial temperature -
BOUNDARY_CONDITION_DATA: Boundary condition (Dirichlet) -
SOURCE_DATA: Heat source -
FLUX_DATA: Heat flux (Neumann boundary condition) -
VELOCITY_FIELD: Velocity vector (for the convection term)
[in] u Vector containing input data (NodeVect instance) -
Update Right-Hand side by taking into account essential boundary conditions.
- Parameters:
-
[in] bc Vector that contains imposed values at all DOFs
| void DiagBC | ( | int | dof_type = NODE_DOF, |
| int | dof = 0 |
||
| ) | [inherited] |
Update element matrix to impose bc by diagonalization technique.
- Parameters:
-
[in] dof_type DOF type option. To choose among the enumerated values: - = NODE_FIELD, DOFs are supported by nodes [ default ]
- = ELEMENT_FIELD, DOFs are supported by elements
- = SIDE_FIELD, DOFs are supported by sides
[in] dof DOF setting: - = 0, All DOFs are taken into account [ default ]
- != 0, Only DOF No. dof is handled in the sustem
| void LocalNodeVector | ( | Vect< T_ > & | b | ) | [inherited] |
| void ElementVector | ( | const Vect< T_ > & | b, |
| int | dof_type = NODE_FIELD, |
||
| int | flag = 0 |
||
| ) | [inherited] |
Localize Element Vector.
- Parameters:
-
[in] b Global vector to be localized [in] dof_type DOF type option. To choose among the enumerated values: - = NODE_FIELD, DOFs are supported by nodes [ default ]
- = ELEMENT_FIELD, DOFs are supported by elements
- = SIDE_FIELD, DOFs are supported by sides
[in] flag Option to set: - = 0, All DOFs are taken into account [ default ]
- != 0, Only DOF No. dof is handled in the system The resulting local vector can be accessed by attribute
ePrev.
| void SideVector | ( | const Vect< T_ > & | b | ) | [inherited] |
Localize Side Vector.
- Parameters:
-
[in] b Global vector to be localized - = NODE_FIELD, DOFs are supported by nodes [ default ]
- = ELEMENT_FIELD, DOFs are supported by elements
- = SIDE_FIELD, DOFs are supported by sides The resulting local vector can be accessed by attribute ePrev.
| void ElementNodeCoordinates | ( | ) | [inherited] |
Localize coordinates of element nodes.
Coordinates are stored in array _x[0], _x[1], ... which are instances of class Point<double>
- Remarks:
- This member function uses the Side pointer
_theSide
| void SideNodeCoordinates | ( | ) | [inherited] |
Localize coordinates of side nodes.
Coordinates are stored in array _x[0], _x[1], ... which are instances of class Point<double>
- Remarks:
- This member function uses the Element pointer
_theElement
| void ElementAssembly | ( | Matrix< T_ > * | A | ) | [inherited] |
| void ElementAssembly | ( | SkSMatrix< T_ > & | A | ) | [inherited] |
Assemble element matrix into global one.
- Parameters:
-
A Global matrix stored as an SkSMatrix instance
- Warning:
- The element pointer is given by the global variable theElement
| void ElementAssembly | ( | SkMatrix< T_ > & | A | ) | [inherited] |
Assemble element matrix into global one.
- Parameters:
-
[in] A Global matrix stored as an SkMatrix instance
- Warning:
- The element pointer is given by the global variable theElement
| void ElementAssembly | ( | SpMatrix< T_ > & | A | ) | [inherited] |
Assemble element matrix into global one.
- Parameters:
-
[in] A Global matrix stored as an SpMatrix instance
- Warning:
- The element pointer is given by the global variable theElement
| void ElementAssembly | ( | TrMatrix< T_ > & | A | ) | [inherited] |
Assemble element matrix into global one.
- Parameters:
-
[in] A Global matrix stored as an TrMatrix instance
- Warning:
- The element pointer is given by the global variable theElement
| void ElementAssembly | ( | Vect< T_ > & | v | ) | [inherited] |
Assemble element vector into global one.
- Parameters:
-
[in] v Global vector (Vect instance)
- Warning:
- The element pointer is given by the global variable theElement
| void SideAssembly | ( | Matrix< T_ > * | A | ) | [inherited] |
| void SideAssembly | ( | SkSMatrix< T_ > & | A | ) | [inherited] |
Assemble side (edge or face) matrix into global one.
- Parameters:
-
[in] A Global matrix stored as an SkSMatrix instance
- Warning:
- The side pointer is given by the global variable theSide
| void SideAssembly | ( | SkMatrix< T_ > & | A | ) | [inherited] |
Assemble side (edge or face) matrix into global one.
- Parameters:
-
[in] A Global matrix stored as an SkMatrix instance
- Warning:
- The side pointer is given by the global variable theSide
| void SideAssembly | ( | SpMatrix< T_ > & | A | ) | [inherited] |
Assemble side (edge or face) matrix into global one.
- Parameters:
-
[in] A Global matrix stored as an SpMatrix instance
- Warning:
- The side pointer is given by the global variable theSide
| void SideAssembly | ( | Vect< T_ > & | v | ) | [inherited] |
Assemble side (edge or face) vector into global one.
- Parameters:
-
[in] v Global vector (Vect instance)
- Warning:
- The side pointer is given by the global variable theSide
| double setMaterialProperty | ( | const string & | exp, |
| const string & | prop | ||
| ) | [inherited] |
Define a material property by an algebraic expression.
- Parameters:
-
[in] exp Algebraic expression [in] prop Property name
- Returns:
- Return value in expression evaluation:
- =0, Normal evaluation
- !=0, An error message is displayed.
| void setSolver | ( | int | ls, |
| int | pc = IDENT_PREC |
||
| ) | [inherited] |
Choose solver for the linear system.
- Parameters:
-
[in] ls Solver of the linear system. To choose among the enumerated values: DIRECT_SOLVER, CG_SOLVER, GMRES_SOLVER - = DIRECT_SOLVER, Use a facorization solver [default]
- = CG_SOLVER, Conjugate Gradient iterative solver
- = CGS_SOLVER, Squared Conjugate Gradient iterative solver
- = BICG_SOLVER, BiConjugate Gradient iterative solver
- = BICG_STAB_SOLVER, BiConjugate Gradient Stabilized iterative solver
- = GMRES_SOLVER, GMRES iterative solver
- = QMR_SOLVER, QMR iterative solver
[in] pc Preconditioner to associate to the iterative solver. if the direct solver was chosen for the first argument this argument is not used. Otherwise choose among the enumerated values: - = IDENT_PREC, Identity preconditioner (no preconditioning [ default ]
- = DIAG_PREC, Diagonal preconditioner
- = ILU_PREC, Incomplete LU factorization preconditioner
| int solveEigenProblem | ( | int | nb_eigv, |
| bool | g = false |
||
| ) | [inherited] |
Compute eigenvalues and eigenvectors.
Eigenvalues and vectors are computed using the Bathe's subspace iteration method.
- Parameters:
-
[in] nb_eigv Number of eigenvalues to compute [in] g Option to choose whether to solve a generalized eigenvalue problem (true) or a standard one (false). The generalized eigenvalue problem corresponds to the case where a consistent mass matrix (rather than a lumped one) is computed. Default value is false.
| double getEigenValue | ( | int | n | ) | const [inherited] |
Return the n-th eigenvalue.
This functions works only if the member function getEigen was called with an argument nb_eigv greater or equal to n. Otherwise it returns 0.
| void getEigenVector | ( | int | n, |
| Vect< double > & | v | ||
| ) | const [inherited] |
Store the eigenvector corresponding to a given eigenvalue.
- Parameters:
-
[in] n Label of the eigenvalue [out] v Vect instance containing the corresponding eigenvector. This vector is resized.
- OFELI
- TINS2DT3B