LifeV
FastAssembler Class Reference

#include <FastAssembler.hpp>

+ Collaboration diagram for FastAssembler:

Public Types

typedef RegionMesh< LinearTetramesh_Type
 
typedef boost::shared_ptr< mesh_TypemeshPtr_Type
 
typedef VectorEpetra vector_Type
 
typedef boost::shared_ptr< vector_TypevectorPtr_Type
 
typedef MatrixEpetra< Realmatrix_Type
 
typedef boost::shared_ptr< matrix_TypematrixPtr_Type
 
typedef Epetra_Comm comm_Type
 
typedef boost::shared_ptr< comm_TypecommPtr_Type
 
typedef QuadratureRule qr_Type
 
typedef boost::shared_ptr< qr_TypeqrPtr_Type
 
typedef FESpace< mesh_Type, MapEpetrafespace_Type
 
typedef boost::shared_ptr< fespace_TypefespacePtr_Type
 

Public Member Functions

 FastAssembler (const meshPtr_Type &mesh, const commPtr_Type &comm, const ReferenceFE *refFE, const qr_Type *qr)
 Constructor. More...
 
 ~FastAssembler ()
 Destructor. More...
 

Private Attributes

meshPtr_Type M_mesh
 
commPtr_Type M_comm
 
int M_numElements
 
int M_numScalarDofs
 
int M_numElementsMerked
 
doubleM_detJacobian
 
double *** M_invJacobian
 
double ** M_phi
 
double *** M_dphi
 
double **** M_d2phi
 
double ** M_elements
 
const qr_TypeM_qr
 
const ReferenceFEM_referenceFE
 
double *** M_vals
 
double ***** M_vals_supg
 
int ** M_rows
 
int ** M_cols
 
int ** M_rows_tmp
 
int ** M_cols_tmp
 
bool M_useSUPG
 
double *** M_G
 
double ** M_g
 
double ** M_Tau_M
 
double ** M_Tau_C
 
double M_density
 
double M_viscosity
 
double M_timestep
 
double M_orderBDF
 
double M_C_I
 

Methods

void allocateSpace (const int &numElements, CurrentFE *fe, const fespacePtr_Type &fespace)
 Allocate space for members before the assembly. More...
 
void allocateSpace (const int &numElements, CurrentFE *fe, const fespacePtr_Type &fespace, const UInt *meshSub_elements)
 Allocate space for members before the assembly. More...
 
void allocateSpace_SUPG (CurrentFE *fe)
 Allocate space for supg before the assembly. More...
 
void assembleGradGrad_scalar (matrixPtr_Type &matrix)
 FE Assembly of scalar grad-grad. More...
 
void assembleGradGrad_vectorial (matrixPtr_Type &matrix)
 FE Assembly of vectorial grad-grad. More...
 
void assembleMass_vectorial (matrixPtr_Type &matrix)
 FE Assembly of vectorial mass matrix. More...
 
void assembleMass_scalar (matrixPtr_Type &matrix)
 FE Assembly of scalar mass matrix. More...
 
void assembleLaplacianPhiILaplacianPhiJ_vectorial (matrixPtr_Type &matrix)
 FE Assembly of laplacian PhiI laplacian PhiJ. More...
 
void NS_constant_terms_00 (matrixPtr_Type &matrix)
 FE Assembly of NS constant terms (no scaling by coefficients like density or bdf) More...
 
void assembleConvective (matrix_Type &matrix, const vector_Type &u_h)
 FE Assembly of NS constant terms (no scaling by coefficients like viscosity) More...
 
void assembleConvective (matrixPtr_Type &matrix, const vector_Type &u_h)
 FE Assembly of NS constant terms (no scaling by coefficients like viscosity) More...
 
void assemble_SUPG_block00 (matrixPtr_Type &matrix, const vector_Type &u_h)
 FE Assembly of SUPG terms - block (0,0) More...
 
void assemble_SUPG_block11 (matrixPtr_Type &matrix, const vector_Type &u_h)
 FE Assembly of SUPG terms - block (1,1) More...
 
void setConstants_NavierStokes (const Real &density, const Real &viscosity, const Real &timestep, const Real &orderBDF, const Real &C_I)
 Set physical parameters for NS. More...
 

Detailed Description

Definition at line 54 of file FastAssembler.hpp.

Member Typedef Documentation

◆ mesh_Type

Definition at line 58 of file FastAssembler.hpp.

◆ meshPtr_Type

typedef boost::shared_ptr<mesh_Type> meshPtr_Type

Definition at line 59 of file FastAssembler.hpp.

◆ vector_Type

Definition at line 61 of file FastAssembler.hpp.

◆ vectorPtr_Type

typedef boost::shared_ptr<vector_Type> vectorPtr_Type

Definition at line 62 of file FastAssembler.hpp.

◆ matrix_Type

Definition at line 64 of file FastAssembler.hpp.

◆ matrixPtr_Type

typedef boost::shared_ptr<matrix_Type> matrixPtr_Type

Definition at line 65 of file FastAssembler.hpp.

◆ comm_Type

typedef Epetra_Comm comm_Type

Definition at line 67 of file FastAssembler.hpp.

◆ commPtr_Type

typedef boost::shared_ptr< comm_Type > commPtr_Type

Definition at line 68 of file FastAssembler.hpp.

◆ qr_Type

Definition at line 70 of file FastAssembler.hpp.

◆ qrPtr_Type

typedef boost::shared_ptr< qr_Type > qrPtr_Type

Definition at line 71 of file FastAssembler.hpp.

◆ fespace_Type

Definition at line 73 of file FastAssembler.hpp.

◆ fespacePtr_Type

typedef boost::shared_ptr<fespace_Type> fespacePtr_Type

Definition at line 74 of file FastAssembler.hpp.

Constructor & Destructor Documentation

◆ FastAssembler()

FastAssembler ( const meshPtr_Type mesh,
const commPtr_Type comm,
const ReferenceFE refFE,
const qr_Type qr 
)

Constructor.

Parameters
mesh- input mesh
comm- communicator
refFE- reference FE space of test functions
qr- quadrature rule to be used for the integration

Definition at line 16 of file FastAssembler.cpp.

+ Here is the caller graph for this function:

◆ ~FastAssembler()

Destructor.

Definition at line 26 of file FastAssembler.cpp.

Member Function Documentation

◆ allocateSpace() [1/2]

void allocateSpace ( const int &  numElements,
CurrentFE fe,
const fespacePtr_Type fespace 
)

Allocate space for members before the assembly.

Parameters
numElements- data file
fe- current FE
fespace- FE space

Definition at line 162 of file FastAssembler.cpp.

◆ allocateSpace() [2/2]

void allocateSpace ( const int &  numElements,
CurrentFE fe,
const fespacePtr_Type fespace,
const UInt meshSub_elements 
)

Allocate space for members before the assembly.

Parameters
numElements- data file
fe- current FE
fespace- FE space
meshSub_elements- list of indices if one wants to allocate space only for a portion of the elements of the mesh

Definition at line 410 of file FastAssembler.cpp.

◆ allocateSpace_SUPG()

void allocateSpace_SUPG ( CurrentFE fe)

Allocate space for supg before the assembly.

Parameters
fe- current FE

Definition at line 320 of file FastAssembler.cpp.

◆ assembleGradGrad_scalar()

void assembleGradGrad_scalar ( matrixPtr_Type matrix)

FE Assembly of scalar grad-grad.

Parameters
matrix- global matrix

Definition at line 509 of file FastAssembler.cpp.

◆ assembleGradGrad_vectorial()

void assembleGradGrad_vectorial ( matrixPtr_Type matrix)

FE Assembly of vectorial grad-grad.

Parameters
matrix- global matrix

Definition at line 587 of file FastAssembler.cpp.

◆ assembleMass_vectorial()

void assembleMass_vectorial ( matrixPtr_Type matrix)

FE Assembly of vectorial mass matrix.

Parameters
matrix- global matrix

Definition at line 678 of file FastAssembler.cpp.

◆ assembleMass_scalar()

void assembleMass_scalar ( matrixPtr_Type matrix)

FE Assembly of scalar mass matrix.

Parameters
matrix- global matrix

Definition at line 744 of file FastAssembler.cpp.

◆ assembleLaplacianPhiILaplacianPhiJ_vectorial()

void assembleLaplacianPhiILaplacianPhiJ_vectorial ( matrixPtr_Type matrix)

FE Assembly of laplacian PhiI laplacian PhiJ.

Parameters
matrix- global matrix

Definition at line 1273 of file FastAssembler.cpp.

◆ NS_constant_terms_00()

void NS_constant_terms_00 ( matrixPtr_Type matrix)

FE Assembly of NS constant terms (no scaling by coefficients like density or bdf)

Parameters
matrix- global matrix

Definition at line 912 of file FastAssembler.cpp.

◆ assembleConvective() [1/2]

void assembleConvective ( matrix_Type matrix,
const vector_Type u_h 
)

FE Assembly of NS constant terms (no scaling by coefficients like viscosity)

Parameters
matrix- global matrix
u_h- velocity vector

Definition at line 804 of file FastAssembler.cpp.

◆ assembleConvective() [2/2]

void assembleConvective ( matrixPtr_Type matrix,
const vector_Type u_h 
)

FE Assembly of NS constant terms (no scaling by coefficients like viscosity)

Parameters
matrix- global matrix
u_h- velocity vector

Definition at line 798 of file FastAssembler.cpp.

◆ assemble_SUPG_block00()

void assemble_SUPG_block00 ( matrixPtr_Type matrix,
const vector_Type u_h 
)

FE Assembly of SUPG terms - block (0,0)

Parameters
matrix- global matrix
u_h- vector extrapolapolated velocity

Definition at line 1003 of file FastAssembler.cpp.

◆ assemble_SUPG_block11()

void assemble_SUPG_block11 ( matrixPtr_Type matrix,
const vector_Type u_h 
)

FE Assembly of SUPG terms - block (1,1)

Parameters
matrix- global matrix
u_h- vector extrapolapolated velocity

Definition at line 1153 of file FastAssembler.cpp.

◆ setConstants_NavierStokes()

void setConstants_NavierStokes ( const Real density,
const Real viscosity,
const Real timestep,
const Real orderBDF,
const Real C_I 
)

Set physical parameters for NS.

Parameters
density- density of the fluid
viscosity- viscosity of the fluid
timestep- timestep for the simulation
orderBDF- order time integrator BDF
C_I- is 30 for P1 and 60 for P2

Definition at line 1263 of file FastAssembler.cpp.

Field Documentation

◆ M_mesh

meshPtr_Type M_mesh
private

Definition at line 193 of file FastAssembler.hpp.

◆ M_comm

commPtr_Type M_comm
private

Definition at line 194 of file FastAssembler.hpp.

◆ M_numElements

int M_numElements
private

Definition at line 196 of file FastAssembler.hpp.

◆ M_numScalarDofs

int M_numScalarDofs
private

Definition at line 197 of file FastAssembler.hpp.

◆ M_numElementsMerked

int M_numElementsMerked
private

Definition at line 198 of file FastAssembler.hpp.

◆ M_detJacobian

double* M_detJacobian
private

Definition at line 200 of file FastAssembler.hpp.

◆ M_invJacobian

double*** M_invJacobian
private

Definition at line 201 of file FastAssembler.hpp.

◆ M_phi

double** M_phi
private

Definition at line 203 of file FastAssembler.hpp.

◆ M_dphi

double*** M_dphi
private

Definition at line 204 of file FastAssembler.hpp.

◆ M_d2phi

double**** M_d2phi
private

Definition at line 205 of file FastAssembler.hpp.

◆ M_elements

double** M_elements
private

Definition at line 206 of file FastAssembler.hpp.

◆ M_qr

const qr_Type* M_qr
private

Definition at line 208 of file FastAssembler.hpp.

◆ M_referenceFE

const ReferenceFE* M_referenceFE
private

Definition at line 209 of file FastAssembler.hpp.

◆ M_vals

double*** M_vals
private

Definition at line 211 of file FastAssembler.hpp.

◆ M_vals_supg

double***** M_vals_supg
private

Definition at line 212 of file FastAssembler.hpp.

◆ M_rows

int** M_rows
private

Definition at line 213 of file FastAssembler.hpp.

◆ M_cols

int** M_cols
private

Definition at line 214 of file FastAssembler.hpp.

◆ M_rows_tmp

int** M_rows_tmp
private

Definition at line 215 of file FastAssembler.hpp.

◆ M_cols_tmp

int** M_cols_tmp
private

Definition at line 216 of file FastAssembler.hpp.

◆ M_useSUPG

bool M_useSUPG
private

Definition at line 218 of file FastAssembler.hpp.

◆ M_G

double*** M_G
private

Definition at line 219 of file FastAssembler.hpp.

◆ M_g

double** M_g
private

Definition at line 220 of file FastAssembler.hpp.

◆ M_Tau_M

double** M_Tau_M
private

Definition at line 221 of file FastAssembler.hpp.

◆ M_Tau_C

double** M_Tau_C
private

Definition at line 222 of file FastAssembler.hpp.

◆ M_density

double M_density
private

Definition at line 224 of file FastAssembler.hpp.

◆ M_viscosity

double M_viscosity
private

Definition at line 225 of file FastAssembler.hpp.

◆ M_timestep

double M_timestep
private

Definition at line 226 of file FastAssembler.hpp.

◆ M_orderBDF

double M_orderBDF
private

Definition at line 227 of file FastAssembler.hpp.

◆ M_C_I

double M_C_I
private

Definition at line 228 of file FastAssembler.hpp.


The documentation for this class was generated from the following files: