#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 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.
| 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.
| 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 AbstractLinearEllipticPde< ELEM_DIM, SPACE_DIM >::ComputeDiffusionTerm(), AbstractLinearEllipticPde< ELEM_DIM, SPACE_DIM >::ComputeLinearInUCoeffInSourceTerm(), and SimpleLinearEllipticAssembler< ELEMENT_DIM, SPACE_DIM, CONCRETE >::mpEllipticPde.
| 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 AbstractLinearEllipticPde< ELEM_DIM, SPACE_DIM >::ComputeConstantInUSourceTerm(), and 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 BoundaryConditionsContainer< ELEM_DIM, SPACE_DIM, PROBLEM_DIM >::GetNeumannBCValue(), and AbstractAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpBoundaryConditions.
| 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.
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.
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.
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().
1.5.5