Chaste
Release::2018.1
|
#include <NaturalNeumannSurfaceTermAssembler.hpp>
Protected Member Functions | |
virtual c_vector< double, PROBLEM_DIM *ELEMENT_DIM > | ComputeVectorSurfaceTerm (const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > &rSurfaceElement, c_vector< double, ELEMENT_DIM > &rPhi, ChastePoint< SPACE_DIM > &rX) |
Protected Member Functions inherited from AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > | |
virtual void | AssembleOnSurfaceElement (const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > &rSurfaceElement, c_vector< double, PROBLEM_DIM *ELEMENT_DIM > &rBSurfElem) |
void | DoAssemble () |
Protected Member Functions inherited from AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, true, false, NORMAL > | |
virtual double | GetCurrentSolutionOrGuessValue (unsigned nodeIndex, unsigned indexOfUnknown) |
virtual void | ResetInterpolatedQuantities () |
virtual void | IncrementInterpolatedQuantities (double phiI, const Node< SPACE_DIM > *pNode) |
virtual void | IncrementInterpolatedGradientQuantities (const c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, unsigned phiIndex, const Node< SPACE_DIM > *pNode) |
Protected Attributes | |
double | mScaleFactor |
Protected Attributes inherited from AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > | |
AbstractTetrahedralMesh < ELEMENT_DIM, SPACE_DIM > * | mpMesh |
BoundaryConditionsContainer < ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > * | mpBoundaryConditions |
GaussianQuadratureRule < ELEMENT_DIM-1 > * | mpSurfaceQuadRule |
Protected Attributes inherited from AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, true, false, NORMAL > | |
ReplicatableVector | mCurrentSolutionOrGuessReplicated |
Protected Attributes inherited from AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX > | |
Vec | mVectorToAssemble |
Mat | mMatrixToAssemble |
bool | mAssembleMatrix |
bool | mAssembleVector |
bool | mZeroMatrixBeforeAssembly |
bool | mZeroVectorBeforeAssembly |
PetscInt | mOwnershipRangeLo |
PetscInt | mOwnershipRangeHi |
Additional Inherited Members | |
Protected Types inherited from AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > | |
typedef LinearBasisFunction < ELEMENT_DIM-1 > | SurfaceBasisFunction |
An assembler for assembling surface element contributions to a vector coming from Neumann boundary conditions, assuming the prescribed BCs are NATURAL boundary conditions.
Examples of natural BCs: u_t = u_{xx} +f —> natural BCs are specification of (u_x . n) = g u_t = Laplacian(u) +f —> natural BCs are specification of (grad(u) . n) = g u_t = Div (D grad(u)) —> natural BCs are specification of ( (D grad(u)) . n) = g 0 = Div (D grad(u)) —> natural BCs are specification of ( (D grad(u)) . n) = g 0 = Div (D1 grad(u1)) + Div (D2 grad(u2)) (one equation of a 2-unknown problem) —> natural BCs are specification of ( (D1 grad(u1)) . n + (D2 grad(u2)) . n) = g1
In all cases, when in weak form, the surface integral is integral(gv dS), where v is the test function (or integral_over_Gamma(g1*v1+g2*v2 dS) in the 2-unknown case).
The contribution of the finite element vector is therefore always: the STRIPED version of the following BLOCK vector: [c1 c2 .. cP], where P = PROBLEM_DIM, each c_i is of dimension N (number of nodes/bases), and c1 has entries `integral_over_Gamma (g1*phi_i dS)`, etc.
Definition at line 62 of file NaturalNeumannSurfaceTermAssembler.hpp.
|
inline |
Constructor
pMesh | The mesh |
pBoundaryConditions | The boundary conditions container |
Definition at line 95 of file NaturalNeumannSurfaceTermAssembler.hpp.
|
protectedvirtual |
Returns the integrand corresponding to natural Neumann BCs being specified.
rSurfaceElement | the element which is being considered. |
rPhi | The basis functions, rPhi(i) = phi_i, i=1..numBases |
rX | The point in space |
Reimplemented from AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >.
Definition at line 113 of file NaturalNeumannSurfaceTermAssembler.hpp.
References AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mpBoundaryConditions, and NaturalNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::mScaleFactor.
|
inline |
Set a scale factor to multiply the contribution to the vector that is assembled by this class
scaleFactor |
Definition at line 106 of file NaturalNeumannSurfaceTermAssembler.hpp.
|
protected |
Scale factor to multiply the integrals
Definition at line 66 of file NaturalNeumannSurfaceTermAssembler.hpp.
Referenced by NaturalNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ComputeVectorSurfaceTerm(), and NaturalNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM, 2 >::SetScaleFactor().