37 #ifndef ABSTRACTASSEMBLERSOLVERHYBRID_HPP_
38 #define ABSTRACTASSEMBLERSOLVERHYBRID_HPP_
40 #include "AbstractFeVolumeIntegralAssembler.hpp"
41 #include "AbstractLinearPdeSolver.hpp"
42 #include "NaturalNeumannSurfaceTermAssembler.hpp"
54 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM,
unsigned PROBLEM_DIM, InterpolationLevel INTERPOLATION_LEVEL>
85 assert(pBoundaryConditions);
110 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM,
unsigned PROBLEM_DIM, InterpolationLevel INTERPOLATION_LEVEL>
120 this->SetVectorToAssemble(pLinearSystem->
rGetRhsVector(),
true);
122 if (currentSolution !=
nullptr)
124 this->SetCurrentSolution(currentSolution);
133 this->AssembleVector();
138 mNaturalNeumannSurfaceTermAssembler.SetVectorToAssemble(pLinearSystem->
rGetRhsVector(),
false);
139 mNaturalNeumannSurfaceTermAssembler.Assemble();
145 mpBoundaryConditions->ApplyDirichletToLinearProblem(*pLinearSystem,
true);
NaturalNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > mNaturalNeumannSurfaceTermAssembler
AbstractAssemblerSolverHybrid(AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > *pBoundaryConditions)
BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > * mpBoundaryConditions
void SetupGivenLinearSystem(Vec currentSolution, bool computeMatrix, LinearSystem *pLinearSystem)
void SwitchWriteModeLhsMatrix()
virtual ~AbstractAssemblerSolverHybrid()