Builds finite element arrays for transient incompressible fluid flow using Navier-Stokes equations in 2-D domains. Numerical approximation uses stabilized 3-node triangle finite elements for velocity and pressure. 2nd-order projection scheme is used for time integration. More...

#include <TINS2DT3S.h>

Inheritance diagram for TINS2DT3S:
Equa_Fluid< 3, 6, 2, 4 > Equation< NEN_, NEE_, NSN_, NSE_ > Equa

Public Member Functions

 TINS2DT3S ()
 Default Constructor.
 
 TINS2DT3S (Mesh &mesh)
 Constructor using mesh.
 
 TINS2DT3S (Mesh &mesh, Vect< real_t > &u)
 Constructor using mesh and velocity.
 
 ~TINS2DT3S ()
 Destructor.
 
void setInput (EType opt, Vect< real_t > &u)
 Set equation input data.
 
int runOneTimeStep ()
 Run one time step.
 
int run ()
 Run (in the case of one step run)
 
- Public Member Functions inherited from Equa_Fluid< 3, 6, 2, 4 >
 Equa_Fluid ()
 Default constructor.
 
virtual ~Equa_Fluid ()
 Destructor.
 
void Reynolds (const real_t &Re)
 Set Reynolds number.
 
void Viscosity (const real_t &visc)
 Set (constant) Viscosity.
 
void Viscosity (const string &exp)
 Set viscosity given by an algebraic expression.
 
void Density (const real_t &dens)
 Set (constant) Viscosity.
 
void Density (const string &exp)
 Set Density given by an algebraic expression.
 
void ThermalExpansion (const real_t *e)
 Set (constant) thermal expansion coefficient.
 
void ThermalExpansion (const string &exp)
 Set thermal expansion coefficient given by an algebraic expression.
 
void setMaterial ()
 Set material properties.
 
- Public Member Functions inherited from Equation< NEN_, NEE_, NSN_, NSE_ >
 Equation ()
 
 Equation (Mesh &mesh)
 Constructor with mesh instance.
 
 Equation (Mesh &mesh, Vect< real_t > &u)
 Constructor with mesh instance and solution vector.
 
 Equation (Mesh &mesh, Vect< real_t > &u, real_t &init_time, real_t &final_time, real_t &time_step)
 Constructor with mesh instance, matrix and right-hand side.
 
 ~Equation ()
 Destructor.
 
void updateBC (const Element &el, const Vect< real_t > &bc)
 Update Right-Hand side by taking into account essential boundary conditions.
 
void DiagBC (DOFSupport dof_type=NODE_DOF, int dof=0)
 Update element matrix to impose bc by diagonalization technique.
 
void LocalNodeVector (Vect< real_t > &b)
 Localize element vector from a Vect instance.
 
void ElementNodeVector (const Vect< real_t > &b, LocalVect< real_t, NEE_ > &be)
 Localize element vector from a Vect instance.
 
void SideNodeVector (const Vect< real_t > &b, LocalVect< real_t, NSE_ > &bs)
 Localize side vector from a Vect instance.
 
void SideSideVector (const Vect< real_t > &b, vector< real_t > &bs)
 Localize side vector from a Vect instance.
 
void ElementNodeVectorSingleDOF (const Vect< real_t > &b, LocalVect< real_t, NEN_ > &be)
 Localize Element Vector from a Vect instance.
 
void ElementNodeVector (const Vect< real_t > &b, LocalVect< real_t, NEN_ > &be, int dof)
 Localize Element Vector from a Vect instance.
 
void ElementSideVector (const Vect< real_t > &b, LocalVect< real_t, NSE_ > &be)
 Localize Element Vector from a Vect instance.
 
void ElementVector (const Vect< real_t > &b, DOFSupport dof_type=NODE_DOF, int flag=0)
 Localize element vector.
 
void SideVector (const Vect< real_t > &b, vector< real_t > &sb)
 Localize side vector.
 
void ElementNodeCoordinates ()
 Localize coordinates of element nodes.
 
void SideNodeCoordinates ()
 Localize coordinates of side nodes.
 
void ElementAssembly (Matrix< real_t > *A)
 Assemble element matrix into global one.
 
void ElementAssembly (BMatrix< real_t > &A)
 Assemble element matrix into global one.
 
void ElementAssembly (SkSMatrix< real_t > &A)
 Assemble element matrix into global one.
 
void ElementAssembly (SkMatrix< real_t > &A)
 Assemble element matrix into global one.
 
void ElementAssembly (SpMatrix< real_t > &A)
 Assemble element matrix into global one.
 
void ElementAssembly (TrMatrix< real_t > &A)
 Assemble element matrix into global one.
 
void DGElementAssembly (Matrix< real_t > *A)
 Assemble element matrix into global one for the Discontinuous Galerkin approximation.
 
void DGElementAssembly (SkSMatrix< real_t > &A)
 Assemble element matrix into global one for the Discontinuous Galerkin approximation.
 
void DGElementAssembly (SkMatrix< real_t > &A)
 Assemble element matrix into global one for the Discontinuous Galerkin approximation.
 
void DGElementAssembly (SpMatrix< real_t > &A)
 Assemble element matrix into global one for the Discontinuous Galerkin approximation.
 
void DGElementAssembly (TrMatrix< real_t > &A)
 Assemble element matrix into global one for the Discontinuous Galerkin approximation.
 
void SideAssembly (Matrix< real_t > *A)
 Assemble side (edge or face) matrix into global one.
 
void SideAssembly (SkSMatrix< real_t > &A)
 Assemble side (edge or face) matrix into global one.
 
void SideAssembly (SkMatrix< real_t > &A)
 Assemble side (edge or face) matrix into global one.
 
void SideAssembly (SpMatrix< real_t > &A)
 Assemble side (edge or face) matrix into global one.
 
void ElementAssembly (Vect< real_t > &v)
 Assemble element vector into global one.
 
void SideAssembly (Vect< real_t > &v)
 Assemble side (edge or face) vector into global one.
 
void AxbAssembly (const Element &el, const Vect< real_t > &x, Vect< real_t > &b)
 Assemble product of element matrix by element vector into global vector.
 
void AxbAssembly (const Side &sd, const Vect< real_t > &x, Vect< real_t > &b)
 Assemble product of side matrix by side vector into global vector.
 
size_t getNbNodes () const
 Return number of element nodes.
 
size_t getNbEq () const
 Return number of element equations.
 
real_t setMaterialProperty (const string &exp, const string &prop)
 Define a material property by an algebraic expression.
 
- Public Member Functions inherited from Equa
 Equa ()
 Default constructor.
 
virtual ~Equa ()
 Destructor.
 
void setMesh (Mesh &m)
 Define mesh and renumber DOFs after removing imposed ones.
 
MeshgetMesh () const
 Return reference to Mesh instance.
 
LinearSolvergetLinearSolver ()
 Return reference to linear solver instance.
 
Matrix< real_t > * getMatrix () const
 Return pointer to matrix.
 
void setSolver (Iteration ls, Preconditioner pc=IDENT_PREC)
 Choose solver for the linear system.
 
void setMatrixType (int t)
 Choose type of matrix.
 
int solveLinearSystem (Matrix< real_t > *A, Vect< real_t > &b, Vect< real_t > &x)
 Solve the linear system with given matrix and right-hand side.
 
int solveLinearSystem (Vect< real_t > &b, Vect< real_t > &x)
 Solve the linear system with given right-hand side.
 
void LinearSystemInfo ()
 Print info on linear system solver.
 

Detailed Description

Builds finite element arrays for transient incompressible fluid flow using Navier-Stokes equations in 2-D domains. Numerical approximation uses stabilized 3-node triangle finite elements for velocity and pressure. 2nd-order projection scheme is used for time integration.

Author
Rachid Touzani

Constructor & Destructor Documentation

◆ TINS2DT3S() [1/2]

TINS2DT3S ( Mesh mesh)

Constructor using mesh.

Parameters
[in]meshMesh instance

◆ TINS2DT3S() [2/2]

TINS2DT3S ( Mesh mesh,
Vect< real_t > &  u 
)

Constructor using mesh and velocity.

Parameters
[in]meshMesh instance
[in,out]uVect instance containing initial velocity. This vector is updated during computations and will therefore contain velocity at each time step

Member Function Documentation

◆ setInput()

void setInput ( EType  opt,
Vect< real_t > &  u 
)

Set equation input data.

Parameters
[in]optParameter to select type of input (enumerated values)
  • INITIAL: Initial temperature
  • BOUNDARY_CONDITION: Boundary condition (Dirichlet)
  • SOURCE: Body force applied to fluid
  • TRACTION: Heat flux (Neumann boundary condition)
  • VELOCITY: Velocity vector (for the convection term)
[in]uVector containing input data (Vect instance)