#include <SimpleLinearEllipticAssembler.hpp>
Public Types | |
typedef SimpleLinearEllipticAssembler < ELEMENT_DIM, SPACE_DIM, CONCRETE > | SelfType |
typedef AbstractLinearAssembler < ELEMENT_DIM, SPACE_DIM, 1, true, SelfType > | BaseClassType |
Public Member Functions | |
SimpleLinearEllipticAssembler (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, AbstractLinearEllipticPde< ELEMENT_DIM, SPACE_DIM > *pPde, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 1 > *pBoundaryConditions, unsigned numQuadPoints=2) | |
void | PrepareForSolve () |
Static Public Attributes | |
static const unsigned | E_DIM = ELEMENT_DIM |
static const unsigned | S_DIM = SPACE_DIM |
static const unsigned | P_DIM = 1u |
Protected Member Functions | |
virtual c_matrix< double, 1 *(ELEMENT_DIM+1), 1 *(ELEMENT_DIM+1)> | ComputeMatrixTerm (c_vector< double, ELEMENT_DIM+1 > &rPhi, c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, 1 > &rU, c_matrix< double, 1, SPACE_DIM > &rGradU, Element< ELEMENT_DIM, SPACE_DIM > *pElement) |
virtual c_vector< double, 1 *(ELEMENT_DIM+1)> | ComputeVectorTerm (c_vector< double, ELEMENT_DIM+1 > &rPhi, c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, 1 > &rU, c_matrix< double, 1, SPACE_DIM > &rGradU, Element< ELEMENT_DIM, SPACE_DIM > *pElement) |
virtual c_vector< double, ELEMENT_DIM > | ComputeVectorSurfaceTerm (const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > &rSurfaceElement, c_vector< double, ELEMENT_DIM > &rPhi, ChastePoint< SPACE_DIM > &rX) |
Protected Attributes | |
AbstractLinearEllipticPde < ELEMENT_DIM, SPACE_DIM > * | mpEllipticPde |
Friends | |
class | TestSimpleLinearEllipticAssembler |
class | AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, 1, true, SelfType > |
Assembler for solving AbstractLinearEllipticPdes
Definition at line 50 of file SimpleLinearEllipticAssembler.hpp.
typedef AbstractLinearAssembler<ELEMENT_DIM, SPACE_DIM, 1, true, SelfType> SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::BaseClassType |
Base class type (to save typing).
Definition at line 60 of file SimpleLinearEllipticAssembler.hpp.
typedef SimpleLinearEllipticAssembler<ELEMENT_DIM, SPACE_DIM, CONCRETE> SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::SelfType |
This type (to save typing).
Definition at line 59 of file SimpleLinearEllipticAssembler.hpp.
SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::SimpleLinearEllipticAssembler | ( | AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * | pMesh, | |
AbstractLinearEllipticPde< ELEMENT_DIM, SPACE_DIM > * | pPde, | |||
BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 1 > * | pBoundaryConditions, | |||
unsigned | numQuadPoints = 2 | |||
) | [inline] |
Constructor stores the mesh, pde and boundary conditons, and calls base constructor.
pMesh | pointer to the mesh | |
pPde | pointer to the PDE | |
pBoundaryConditions | pointer to the boundary conditions | |
numQuadPoints | number of quadrature points (defaults to 2) |
Definition at line 155 of file SimpleLinearEllipticAssembler.hpp.
References SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::mpEllipticPde, AbstractAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetBoundaryConditionsContainer(), and AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, NON_HEART, SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE > >::SetMesh().
virtual c_matrix<double, 1*(ELEMENT_DIM+1), 1*(ELEMENT_DIM+1)> SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::ComputeMatrixTerm | ( | c_vector< double, ELEMENT_DIM+1 > & | rPhi, | |
c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > & | rGradPhi, | |||
ChastePoint< SPACE_DIM > & | rX, | |||
c_vector< double, 1 > & | rU, | |||
c_matrix< double, 1, SPACE_DIM > & | rGradU, | |||
Element< ELEMENT_DIM, SPACE_DIM > * | pElement | |||
) | [inline, protected, virtual] |
The term to be added to the element stiffness matrix:
grad_phi[row] . ( pde_diffusion_term * grad_phi[col])
rPhi | The basis functions, rPhi(i) = phi_i, i=1..numBases | |
rGradPhi | Basis gradients, rGradPhi(i,j) = d(phi_j)/d(X_i) | |
rX | The point in space | |
rU | The unknown as a vector, u(i) = u_i | |
rGradU | The gradient of the unknown as a matrix, rGradU(i,j) = d(u_i)/d(X_j) | |
pElement | Pointer to the element |
Definition at line 81 of file SimpleLinearEllipticAssembler.hpp.
References SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::mpEllipticPde.
virtual c_vector<double, ELEMENT_DIM> SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::ComputeVectorSurfaceTerm | ( | const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > & | rSurfaceElement, | |
c_vector< double, ELEMENT_DIM > & | rPhi, | |||
ChastePoint< SPACE_DIM > & | rX | |||
) | [inline, protected, virtual] |
This method returns the vector to be added to element stiffness vector for a given gauss point in BoundaryElement. The arguments are the bases, x and current solution computed at the Gauss point. The returned vector will be multiplied by the gauss weight and jacobian determinent and added to the element stiffness matrix (see AssembleOnElement()).
rSurfaceElement | the element which is being considered. | |
rPhi | The basis functions, rPhi(i) = phi_i, i=1..numBases | |
rX | The point in space |
Implements AbstractAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >.
Definition at line 136 of file SimpleLinearEllipticAssembler.hpp.
References AbstractAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpBoundaryConditions.
virtual c_vector<double,1*(ELEMENT_DIM+1)> SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::ComputeVectorTerm | ( | c_vector< double, ELEMENT_DIM+1 > & | rPhi, | |
c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > & | rGradPhi, | |||
ChastePoint< SPACE_DIM > & | rX, | |||
c_vector< double, 1 > & | rU, | |||
c_matrix< double, 1, SPACE_DIM > & | rGradU, | |||
Element< ELEMENT_DIM, SPACE_DIM > * | pElement | |||
) | [inline, protected, virtual] |
The term arising from boundary conditions to be added to the element stiffness vector.
rPhi | The basis functions, rPhi(i) = phi_i, i=1..numBases | |
rGradPhi | Basis gradients, rGradPhi(i,j) = d(phi_j)/d(X_i) | |
rX | The point in space | |
rU | The unknown as a vector, u(i) = u_i | |
rGradU | The gradient of the unknown as a matrix, rGradU(i,j) = d(u_i)/d(X_j) | |
pElement | Pointer to the element |
Definition at line 114 of file SimpleLinearEllipticAssembler.hpp.
References SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::mpEllipticPde.
void SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::PrepareForSolve | ( | ) | [inline, virtual] |
This method is called at the beginning of Solve() in AbstractLinearStaticProblemAssembler.
Reimplemented from AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, NON_HEART, SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE > >.
Definition at line 172 of file SimpleLinearEllipticAssembler.hpp.
References SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::mpEllipticPde, and AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, NON_HEART, CONCRETE >::PrepareForSolve().
friend class AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, 1, true, SelfType > [friend] |
Allow the AbstractStaticAssembler to call our private/protected methods using static polymorphism.
Definition at line 62 of file SimpleLinearEllipticAssembler.hpp.
const unsigned SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::E_DIM = ELEMENT_DIM [static] |
The element dimension (to save typing).
Definition at line 53 of file SimpleLinearEllipticAssembler.hpp.
AbstractLinearEllipticPde<ELEMENT_DIM,SPACE_DIM>* SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::mpEllipticPde [protected] |
The PDE to be solved.
Definition at line 67 of file SimpleLinearEllipticAssembler.hpp.
Referenced by SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::ComputeMatrixTerm(), SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::ComputeVectorTerm(), SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::PrepareForSolve(), and SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::SimpleLinearEllipticAssembler().
const unsigned SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::P_DIM = 1u [static] |
The problem dimension (to save typing).
Definition at line 55 of file SimpleLinearEllipticAssembler.hpp.
const unsigned SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::S_DIM = SPACE_DIM [static] |
The space dimension (to save typing).
Definition at line 54 of file SimpleLinearEllipticAssembler.hpp.