AbstractAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, INTERPOLATION_LEVEL > Class Template Reference

#include <AbstractAssemblerSolverHybrid.hpp>

Inherits AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, true, true, INTERPOLATION_LEVEL >.

Collaboration diagram for AbstractAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, INTERPOLATION_LEVEL >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 AbstractAssemblerSolverHybrid (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > *pBoundaryConditions, unsigned numQuadPoints=2)
virtual ~AbstractAssemblerSolverHybrid ()
void SetupGivenLinearSystem (Vec currentSolution, bool computeMatrix, LinearSystem *pLinearSystem)

Protected Attributes

NaturalNeumannSurfaceTermAssembler
< ELEMENT_DIM, SPACE_DIM,
PROBLEM_DIM > 
mNaturalNeumannSurfaceTermAssembler
BoundaryConditionsContainer
< ELEMENT_DIM, SPACE_DIM,
PROBLEM_DIM > * 
mpBoundaryConditions

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, InterpolationLevel INTERPOLATION_LEVEL>
class AbstractAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, INTERPOLATION_LEVEL >

A class which inherits from AbstractFeVolumeIntegralAssembler and implements a method SetupGivenLinearSystem(), which sets up the given linear system using the assembler part of this class, which can be called by SetUpLinearSystem() on a concrete solver.

It assumes natural Neumann boundary conditions are needed and uses a NaturalNeumannSurfaceTermAssembler for this part of the vector.

See SimpleLinearEllipticSolver for an example of a concrete class

Definition at line 48 of file AbstractAssemblerSolverHybrid.hpp.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, InterpolationLevel INTERPOLATION_LEVEL>
AbstractAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, INTERPOLATION_LEVEL >::AbstractAssemblerSolverHybrid ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *  pMesh,
BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > *  pBoundaryConditions,
unsigned  numQuadPoints = 2 
) [inline]

Constructor.

Parameters:
pMesh pointer to the mesh
pBoundaryConditions pointer to the boundary conditions.
numQuadPoints number of quadrature points in each dimension to use per element (defaults to 2)

Definition at line 58 of file AbstractAssemblerSolverHybrid.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, InterpolationLevel INTERPOLATION_LEVEL>
virtual AbstractAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, INTERPOLATION_LEVEL >::~AbstractAssemblerSolverHybrid (  )  [inline, virtual]

Destructor.

Definition at line 72 of file AbstractAssemblerSolverHybrid.hpp.


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, InterpolationLevel INTERPOLATION_LEVEL>
void AbstractAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, INTERPOLATION_LEVEL >::SetupGivenLinearSystem ( Vec  currentSolution,
bool  computeMatrix,
LinearSystem pLinearSystem 
) [inline]

Implementation of AbstractLinearPdeSolver::SetupLinearSystem, using the assembler that this class also inherits from. Concrete classes inheriting from both this class and AbstractLinearPdeSolver can then have a one-line implementation of AbstractLinearPdeSolver::SetupLinearSystem which calls this method.

Parameters:
currentSolution The current solution which can be used in setting up the linear system if needed (NULL if there isn't a current solution)
computeMatrix Whether to compute the LHS matrix of the linear system (mainly for dynamic solves)
pLinearSystem The linear system to set up.

Definition at line 106 of file AbstractAssemblerSolverHybrid.hpp.

References AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::Assemble(), AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::AssembleVector(), LinearSystem::FinaliseLhsMatrix(), LinearSystem::FinaliseRhsVector(), AbstractAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, INTERPOLATION_LEVEL >::mNaturalNeumannSurfaceTermAssembler, AbstractAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, INTERPOLATION_LEVEL >::mpBoundaryConditions, LinearSystem::rGetLhsMatrix(), LinearSystem::rGetRhsVector(), AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetCurrentSolution(), AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::SetMatrixToAssemble(), AbstractFeAssemblerInterface< CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::SetVectorToAssemble(), and LinearSystem::SwitchWriteModeLhsMatrix().


Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, InterpolationLevel INTERPOLATION_LEVEL>
NaturalNeumannSurfaceTermAssembler<ELEMENT_DIM,SPACE_DIM,PROBLEM_DIM> AbstractAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, INTERPOLATION_LEVEL >::mNaturalNeumannSurfaceTermAssembler [protected]

An assembler for Neumann surface integrals, which are assumed to arise from natural Neumann boundary conditions, ie such that this surface integral is (for a 1-unknown problem) integral(g phi_i dS), where g is the Neumann boundary condition function

Definition at line 43 of file AbstractAssemblerSolverHybrid.hpp.

Referenced by AbstractAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, INTERPOLATION_LEVEL >::SetupGivenLinearSystem().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM, unsigned PROBLEM_DIM, InterpolationLevel INTERPOLATION_LEVEL>
BoundaryConditionsContainer<ELEMENT_DIM,SPACE_DIM,PROBLEM_DIM>* AbstractAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, INTERPOLATION_LEVEL >::mpBoundaryConditions [protected]

The documentation for this class was generated from the following file:
Generated on Thu Dec 22 13:00:24 2011 for Chaste by  doxygen 1.6.3