1 #ifndef DUNE_PDELAB_GRIDOPERATOR_DEFAULT_LOCALASSEMBLER_HH 2 #define DUNE_PDELAB_GRIDOPERATOR_DEFAULT_LOCALASSEMBLER_HH 4 #include <dune/typetree/typetree.hh> 31 template<
typename GO,
typename LOP,
bool nonoverlapping_mode = false>
34 typename GO::Traits::TrialGridFunctionSpaceConstraints,
35 typename GO::Traits::TestGridFunctionSpaceConstraints>
43 typedef typename Traits::Residual::ElementType
RangeField;
85 : lop_(lop), weight_(1.0), doPreProcessing_(true), doPostProcessing_(true),
86 pattern_engine(*this,border_dof_exchanger), residual_engine(*this), jacobian_engine(*this)
87 , jacobian_apply_engine(*this)
88 , nonlinear_jacobian_apply_engine(*this)
89 , _reconstruct_border_entries(isNonOverlapping)
94 shared_ptr<typename GO::BorderDOFExchanger> border_dof_exchanger)
96 lop_(lop), weight_(1.0), doPreProcessing_(true), doPostProcessing_(true),
97 pattern_engine(*this,border_dof_exchanger), residual_engine(*this), jacobian_engine(*this)
98 , jacobian_apply_engine(*this)
99 , nonlinear_jacobian_apply_engine(*this)
100 , _reconstruct_border_entries(isNonOverlapping)
136 void preStage (Real time_,
int r_) { lop_.preStage(time_,r_); }
137 void preStep (Real time_, Real dt_, std::size_t stages_){ lop_.preStep(time_,dt_,stages_); }
145 return _reconstruct_border_entries;
157 return pattern_engine;
167 return residual_engine;
177 return jacobian_engine;
187 return jacobian_apply_engine;
197 nonlinear_jacobian_apply_engine.
setUpdate(z);
198 return nonlinear_jacobian_apply_engine;
234 doPreProcessing_ = v;
249 doPostProcessing_ = v;
262 bool doPreProcessing_;
266 bool doPostProcessing_;
270 LocalPatternAssemblerEngine pattern_engine;
271 LocalResidualAssemblerEngine residual_engine;
272 LocalJacobianAssemblerEngine jacobian_engine;
273 LocalJacobianApplyAssemblerEngine jacobian_apply_engine;
274 LocalNonlinearJacobianApplyAssemblerEngine nonlinear_jacobian_apply_engine;
277 bool _reconstruct_border_entries;
283 #endif // DUNE_PDELAB_GRIDOPERATOR_DEFAULT_LOCALASSEMBLER_HH void setSolution(const Solution &solution_)
Definition: default/jacobianengine.hh:120
void setSolution(const Solution &solution_)
Definition: jacobianapplyengine.hh:114
void setUpdate(const Solution &update_)
Definition: nonlinearjacobianapplyengine.hh:121
void setResidual(Residual &residual_)
Definition: jacobianapplyengine.hh:106
Base class for local assembler.
Definition: assemblerutilities.hh:182
void preStage(Real time_, int r_)
Definition: default/localassembler.hh:136
static bool doPatternVolume()
Definition: default/localassembler.hh:216
GO::Traits::Jacobian Jacobian
The type of the jacobian.
Definition: assemblerutilities.hh:61
void postStep()
Definition: default/localassembler.hh:138
const LOP & localOperator() const
get a reference to the local operator
Definition: default/localassembler.hh:110
MatrixBackend::template Pattern< Jacobian, TestGridFunctionSpace, TrialGridFunctionSpace > MatrixPattern
The matrix pattern.
Definition: assemblerutilities.hh:68
Traits::TrialGridFunctionSpace GFSU
Definition: default/localassembler.hh:46
static bool doAlphaVolumePostSkeleton()
Definition: default/localassembler.hh:213
Traits::Residual::ElementType RangeField
The local operators type for real numbers e.g. time.
Definition: default/localassembler.hh:43
RangeField weight() const
Obtain the weight that was set last.
Definition: default/localassembler.hh:124
GO::Traits::TrialGridFunctionSpaceConstraints TrialGridFunctionSpaceConstraints
The type of the trial grid function space constraints.
Definition: assemblerutilities.hh:33
bool doPreProcessing() const
Query whether to do preprocessing in the engines.
Definition: default/localassembler.hh:226
void setJacobian(Jacobian &jacobian_)
Definition: default/jacobianengine.hh:110
static bool doSkeletonTwoSided()
Definition: default/localassembler.hh:215
LOP LocalOperator
The local operator.
Definition: default/localassembler.hh:56
static bool doLambdaVolume()
Definition: default/localassembler.hh:208
Dune::PDELab::LocalFunctionSpace< GFSU, Dune::PDELab::TrialSpaceTag > LFSU
Definition: default/localassembler.hh:63
GO::Traits::TestGridFunctionSpace TestGridFunctionSpace
The test grid function space.
Definition: assemblerutilities.hh:29
GO::Traits::TrialGridFunctionSpace TrialGridFunctionSpace
The trial grid function space.
Definition: assemblerutilities.hh:26
Dune::PDELab::LocalAssemblerTraits< GO > Traits
The traits class.
Definition: default/localassembler.hh:40
Traits::TestGridFunctionSpace GFSV
Definition: default/localassembler.hh:47
GO::Traits::Range Residual
The type of the range (residual).
Definition: assemblerutilities.hh:54
DefaultLocalJacobianApplyAssemblerEngine< DefaultLocalAssembler > LocalJacobianApplyAssemblerEngine
Definition: default/localassembler.hh:75
Traits::TestGridFunctionSpaceConstraints CV
Definition: default/localassembler.hh:50
static bool doAlphaBoundary()
Definition: default/localassembler.hh:211
bool reconstructBorderEntries() const
Definition: default/localassembler.hh:143
void setResidual(Residual &residual_)
Definition: nonlinearjacobianapplyengine.hh:105
static bool doAlphaSkeleton()
Definition: default/localassembler.hh:209
LocalJacobianApplyAssemblerEngine & localJacobianApplyAssemblerEngine(typename Traits::Residual &r, const typename Traits::Solution &x)
Definition: default/localassembler.hh:183
For backward compatibility – Do not use this!
Definition: adaptivity.hh:27
RangeField Real
Definition: default/localassembler.hh:44
static const bool isNonOverlapping
Definition: default/localassembler.hh:58
LOP & localOperator()
get a reference to the local operator
Definition: default/localassembler.hh:104
static bool doLambdaVolumePostSkeleton()
Definition: default/localassembler.hh:214
Dune::PDELab::LocalFunctionSpace< GFSV, Dune::PDELab::TestSpaceTag > LFSV
Definition: default/localassembler.hh:64
static bool doLambdaSkeleton()
Definition: default/localassembler.hh:210
const P & p
Definition: constraints.hh:147
LFSIndexCache< LFSU, CU > LFSUCache
Definition: default/localassembler.hh:65
Definition: assemblerutilities.hh:22
static bool doPatternVolumePostSkeleton()
Definition: default/localassembler.hh:219
LFSIndexCache< LFSV, CV > LFSVCache
Definition: default/localassembler.hh:66
void setSolution(const Solution &solution_)
Definition: nonlinearjacobianapplyengine.hh:113
void setTime(Real time_)
Definition: default/localassembler.hh:118
void setResidual(Residual &residual_)
Definition: default/residualengine.hh:114
LocalResidualAssemblerEngine & localResidualAssemblerEngine(typename Traits::Residual &r, const typename Traits::Solution &x)
Definition: default/localassembler.hh:163
DefaultLocalNonlinearJacobianApplyAssemblerEngine< DefaultLocalAssembler > LocalNonlinearJacobianApplyAssemblerEngine
Definition: default/localassembler.hh:76
DefaultLocalAssembler(LOP &lop, const CU &cu, const CV &cv, shared_ptr< typename GO::BorderDOFExchanger > border_dof_exchanger)
Constructor for non trivial constraints.
Definition: default/localassembler.hh:93
Definition: lfsindexcache.hh:948
void postProcessing(bool v)
Definition: default/localassembler.hh:247
void setWeight(RangeField weight)
Notifies the assembler about the current weight of assembling.
Definition: default/localassembler.hh:130
static bool doLambdaBoundary()
Definition: default/localassembler.hh:212
DefaultLocalPatternAssemblerEngine< DefaultLocalAssembler > LocalPatternAssemblerEngine
Definition: default/localassembler.hh:72
void setPattern(Pattern &pattern_)
Definition: default/patternengine.hh:92
static bool doPatternBoundary()
Definition: default/localassembler.hh:218
GO::Traits::TestGridFunctionSpaceConstraints TestGridFunctionSpaceConstraints
The type of the test grid function space constraints.
Definition: assemblerutilities.hh:36
void preProcessing(bool v)
Definition: default/localassembler.hh:232
bool doPostProcessing() const
Query whether to do postprocessing in the engines.
Definition: default/localassembler.hh:241
DefaultLocalJacobianAssemblerEngine< DefaultLocalAssembler > LocalJacobianAssemblerEngine
Definition: default/localassembler.hh:74
static bool doPatternSkeleton()
Definition: default/localassembler.hh:217
void setSolution(const Solution &solution_)
Definition: default/residualengine.hh:122
DefaultLocalResidualAssemblerEngine< DefaultLocalAssembler > LocalResidualAssemblerEngine
Definition: default/localassembler.hh:73
DefaultLocalAssembler(LOP &lop, shared_ptr< typename GO::BorderDOFExchanger > border_dof_exchanger)
Constructor with empty constraints.
Definition: default/localassembler.hh:84
GO::Traits::Domain Solution
The type of the domain (solution).
Definition: assemblerutilities.hh:47
Dune::PDELab::LocalAssemblerBase< typename Traits::MatrixBackend, CU, CV > Base
The base class of this local assembler.
Definition: default/localassembler.hh:53
static bool doAlphaVolume()
Query methods for the assembler engines. Theses methods do not belong to the assembler interface...
Definition: default/localassembler.hh:207
void postStage()
Definition: default/localassembler.hh:139
LocalJacobianAssemblerEngine & localJacobianAssemblerEngine(typename Traits::Jacobian &a, const typename Traits::Solution &x)
Definition: default/localassembler.hh:173
The local assembler for DUNE grids.
Definition: default/localassembler.hh:32
LocalPatternAssemblerEngine & localPatternAssemblerEngine(typename Traits::MatrixPattern &p)
Definition: default/localassembler.hh:154
Create a local function space from a global function space.
Definition: localfunctionspace.hh:670
LocalNonlinearJacobianApplyAssemblerEngine & localNonlinearJacobianApplyAssemblerEngine(typename Traits::Residual &r, const typename Traits::Solution &x, const typename Traits::Solution &z)
Definition: default/localassembler.hh:193
Real suggestTimestep(Real dt) const
Definition: default/localassembler.hh:140
Traits::TrialGridFunctionSpaceConstraints CU
Definition: default/localassembler.hh:49
void preStep(Real time_, Real dt_, std::size_t stages_)
Definition: default/localassembler.hh:137