37#ifndef ABSTRACTASSEMBLERSOLVERHYBRID_HPP_
38#define ABSTRACTASSEMBLERSOLVERHYBRID_HPP_
40#include "AbstractFeVolumeIntegralAssembler.hpp"
41#include "AbstractLinearPdeSolver.hpp"
42#include "NaturalNeumannSurfaceTermAssembler.hpp"
54template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM,
unsigned PROBLEM_DIM, InterpolationLevel INTERPOLATION_LEVEL>
85 assert(pBoundaryConditions);
110template<
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);
void SetupGivenLinearSystem(Vec currentSolution, bool computeMatrix, LinearSystem *pLinearSystem)
virtual ~AbstractAssemblerSolverHybrid()
AbstractAssemblerSolverHybrid(AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > *pBoundaryConditions)
BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > * mpBoundaryConditions
NaturalNeumannSurfaceTermAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM > mNaturalNeumannSurfaceTermAssembler
void SwitchWriteModeLhsMatrix()