Go to the documentation of this file.
3 #ifndef DUNE_PDELAB_GRIDOPERATOR_FASTDG_LOCALASSEMBLER_HH
4 #define DUNE_PDELAB_GRIDOPERATOR_FASTDG_LOCALASSEMBLER_HH
8 #include <dune/common/shared_ptr.hh>
10 #include <dune/typetree/typetree.hh>
37 template<
typename GO,
typename LOP,
bool nonoverlapping_mode = false>
40 typename GO::Traits::TrialGridFunctionSpaceConstraints,
41 typename GO::Traits::TestGridFunctionSpaceConstraints>
49 typedef typename Traits::Residual::ElementType
RangeField;
90 : lop(stackobject_to_shared_ptr(lop_)),
92 doPreProcessing_(true),
93 doPostProcessing_(true),
94 pattern_engine(*this,border_dof_exchanger), residual_engine(*this), jacobian_engine(*this), jacobian_apply_engine(*this), nonlinear_jacobian_apply_engine(*this)
100 shared_ptr<typename GO::BorderDOFExchanger> border_dof_exchanger)
102 lop(stackobject_to_shared_ptr(lop_)),
104 doPreProcessing_(true),
105 doPostProcessing_(true),
106 pattern_engine(*this,border_dof_exchanger), residual_engine(*this), jacobian_engine(*this), jacobian_apply_engine(*this), nonlinear_jacobian_apply_engine(*this)
140 void preStep (
Real time_,
Real dt_, std::size_t stages_){ lop->preStep(time_,dt_,stages_); }
148 return _reconstruct_border_entries;
160 return pattern_engine;
170 return residual_engine;
180 return jacobian_engine;
190 return jacobian_apply_engine;
200 nonlinear_jacobian_apply_engine.
setUpdate(z);
201 return nonlinear_jacobian_apply_engine;
237 doPreProcessing_ = v;
252 doPostProcessing_ = v;
255 template<
typename GFSV,
typename GC,
typename C>
258 typedef typename C::const_iterator global_row_iterator;
259 for (global_row_iterator cit = c.begin(); cit != c.end(); ++cit)
260 globalcontainer.clear_row_block(cit->first,1);
263 template<
typename GFSV,
typename GC>
268 template<
typename GFSV,
typename GC>
271 globalcontainer.flush();
273 globalcontainer.finalize();
279 std::shared_ptr<LOP> lop;
286 bool doPreProcessing_;
290 bool doPostProcessing_;
301 bool _reconstruct_border_entries;
LOP & localOperator()
get a reference to the local operator
Definition: fastdg/localassembler.hh:111
LFSIndexCache< LFSU, CU, true > LFSUCache
Definition: fastdg/localassembler.hh:71
void setResidual(Residual &residual_)
Definition: fastdg/nonlinearjacobianapplyengine.hh:104
static bool doSkeletonTwoSided()
Definition: fastdg/localassembler.hh:218
bool doPostProcessing() const
Query whether to do postprocessing in the engines.
Definition: fastdg/localassembler.hh:244
void postStage()
Definition: fastdg/localassembler.hh:142
Dune::PDELab::LocalAssemblerTraits< GO > Traits
The traits class.
Definition: fastdg/localassembler.hh:46
static bool doPatternVolume()
Definition: fastdg/localassembler.hh:219
LOP LocalOperator
The local operator.
Definition: fastdg/localassembler.hh:62
The local assembler for DUNE grids.
Definition: fastdg/localassembler.hh:38
Base class for local assembler.
Definition: assemblerutilities.hh:182
LocalPatternAssemblerEngine & localPatternAssemblerEngine(typename Traits::MatrixPattern &p)
Definition: fastdg/localassembler.hh:157
void setSolution(const Solution &solution_)
Definition: fastdg/jacobianengine.hh:142
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: fastdg/localassembler.hh:59
static bool doAlphaVolume()
Query methods for the assembler engines. Theses methods do not belong to the assembler interface,...
Definition: fastdg/localassembler.hh:210
LocalJacobianAssemblerEngine & localJacobianAssemblerEngine(typename Traits::Jacobian &a, const typename Traits::Solution &x)
Definition: fastdg/localassembler.hh:176
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
void set_trivial_rows(const GFSV &gfsv, GC &globalcontainer, const EmptyTransformation &c) const
Definition: fastdg/localassembler.hh:264
bool doPreProcessing() const
Query whether to do preprocessing in the engines.
Definition: fastdg/localassembler.hh:229
const GO::Traits::TestGridFunctionSpaceConstraints * pconstraintsv
Definition: assemblerutilities.hh:654
Traits::TrialGridFunctionSpace GFSU
Definition: fastdg/localassembler.hh:52
static bool doAlphaBoundary()
Definition: fastdg/localassembler.hh:214
void postProcessing(bool v)
Definition: fastdg/localassembler.hh:250
void postStep()
Definition: fastdg/localassembler.hh:141
Traits::TestGridFunctionSpace GFSV
Definition: fastdg/localassembler.hh:53
void setWeight(RangeField weight)
Notifies the assembler about the current weight of assembling.
Definition: fastdg/localassembler.hh:133
Definition: assemblerutilities.hh:22
RangeField weight() const
Obtain the weight that was set last.
Definition: fastdg/localassembler.hh:130
Dune::PDELab::LocalFunctionSpace< GFSV, Dune::PDELab::TestSpaceTag > LFSV
Definition: fastdg/localassembler.hh:70
void handle_dirichlet_constraints(const GFSV &gfsv, GC &globalcontainer) const
Definition: fastdg/localassembler.hh:269
static bool doPatternSkeleton()
Definition: fastdg/localassembler.hh:220
bool reconstructBorderEntries() const
Definition: fastdg/localassembler.hh:146
GO::Traits::TrialGridFunctionSpaceConstraints TrialGridFunctionSpaceConstraints
The type of the trial grid function space constraints.
Definition: assemblerutilities.hh:33
Dune::PDELab::LocalFunctionSpace< GFSU, Dune::PDELab::TrialSpaceTag > LFSU
Definition: fastdg/localassembler.hh:69
Traits::Residual::ElementType RangeField
The local operators type for real numbers e.g. time.
Definition: fastdg/localassembler.hh:49
static bool doLambdaBoundary()
Definition: fastdg/localassembler.hh:215
void setSolution(const Solution &solution_)
Definition: fastdg/residualengine.hh:148
GO::Traits::TrialGridFunctionSpace TrialGridFunctionSpace
The trial grid function space.
Definition: assemblerutilities.hh:26
void preProcessing(bool v)
Definition: fastdg/localassembler.hh:235
static bool doLambdaSkeleton()
Definition: fastdg/localassembler.hh:213
FastDGLocalResidualAssemblerEngine< FastDGLocalAssembler > LocalResidualAssemblerEngine
Definition: fastdg/localassembler.hh:79
FastDGLocalAssembler(LOP &lop_, const CU &cu_, const CV &cv_, shared_ptr< typename GO::BorderDOFExchanger > border_dof_exchanger)
Constructor for non trivial constraints.
Definition: fastdg/localassembler.hh:99
Definition: constraintstransformation.hh:111
void setUpdate(const Solution &update_)
Definition: fastdg/nonlinearjacobianapplyengine.hh:120
MatrixBackend::template Pattern< Jacobian, TestGridFunctionSpace, TrialGridFunctionSpace > MatrixPattern
The matrix pattern.
Definition: assemblerutilities.hh:68
GO::Traits::Range Residual
The type of the range (residual).
Definition: assemblerutilities.hh:54
void setSolution(const Solution &solution_)
Definition: fastdg/nonlinearjacobianapplyengine.hh:112
static bool doAlphaVolumePostSkeleton()
Definition: fastdg/localassembler.hh:216
Real suggestTimestep(Real dt) const
Definition: fastdg/localassembler.hh:143
GO::Traits::TestGridFunctionSpaceConstraints TestGridFunctionSpaceConstraints
The type of the test grid function space constraints.
Definition: assemblerutilities.hh:36
LocalJacobianApplyAssemblerEngine & localJacobianApplyAssemblerEngine(typename Traits::Residual &r, const typename Traits::Solution &x)
Definition: fastdg/localassembler.hh:186
LocalResidualAssemblerEngine & localResidualAssemblerEngine(typename Traits::Residual &r, const typename Traits::Solution &x)
Definition: fastdg/localassembler.hh:166
void setPattern(Pattern &pattern_)
Definition: fastdg/patternengine.hh:92
GO::Traits::TestGridFunctionSpace TestGridFunctionSpace
The test grid function space.
Definition: assemblerutilities.hh:29
const LOP & localOperator() const
get a reference to the local operator
Definition: fastdg/localassembler.hh:116
static const bool isNonOverlapping
Definition: fastdg/localassembler.hh:64
static bool doAlphaSkeleton()
Definition: fastdg/localassembler.hh:212
LocalNonlinearJacobianApplyAssemblerEngine & localNonlinearJacobianApplyAssemblerEngine(typename Traits::Residual &r, const typename Traits::Solution &x, const typename Traits::Solution &z)
Definition: fastdg/localassembler.hh:196
Traits::TrialGridFunctionSpaceConstraints CU
Definition: fastdg/localassembler.hh:55
FastDGLocalPatternAssemblerEngine< FastDGLocalAssembler > LocalPatternAssemblerEngine
Definition: fastdg/localassembler.hh:78
void preStep(Real time_, Real dt_, std::size_t stages_)
Definition: fastdg/localassembler.hh:140
LFSIndexCache< LFSV, CV, true > LFSVCache
Definition: fastdg/localassembler.hh:72
void preStage(Real time_, int r_)
Definition: fastdg/localassembler.hh:139
void setResidual(Residual &residual_)
Definition: fastdg/jacobianapplyengine.hh:101
Create a local function space from a global function space.
Definition: localfunctionspace.hh:698
void setSolution(const Solution &solution_)
Definition: fastdg/jacobianapplyengine.hh:109
void setJacobian(Jacobian &jacobian_)
Definition: fastdg/jacobianengine.hh:132
RangeField Real
Definition: fastdg/localassembler.hh:50
static bool doPatternVolumePostSkeleton()
Definition: fastdg/localassembler.hh:222
FastDGLocalAssembler(LOP &lop_, shared_ptr< typename GO::BorderDOFExchanger > border_dof_exchanger)
Constructor with empty constraints.
Definition: fastdg/localassembler.hh:89
static bool doLambdaVolume()
Definition: fastdg/localassembler.hh:211
FastDGLocalNonlinearJacobianApplyAssemblerEngine< FastDGLocalAssembler > LocalNonlinearJacobianApplyAssemblerEngine
Definition: fastdg/localassembler.hh:82
Traits::TestGridFunctionSpaceConstraints CV
Definition: fastdg/localassembler.hh:56
void set_trivial_rows(const GFSV &gfsv, GC &globalcontainer, const C &c) const
Definition: fastdg/localassembler.hh:256
void setResidual(Residual &residual_)
Definition: fastdg/residualengine.hh:140
FastDGLocalJacobianAssemblerEngine< FastDGLocalAssembler > LocalJacobianAssemblerEngine
Definition: fastdg/localassembler.hh:80
FastDGLocalJacobianApplyAssemblerEngine< FastDGLocalAssembler > LocalJacobianApplyAssemblerEngine
Definition: fastdg/localassembler.hh:81
GO::Traits::Jacobian Jacobian
The type of the jacobian.
Definition: assemblerutilities.hh:61
static bool doPatternBoundary()
Definition: fastdg/localassembler.hh:221
static bool doLambdaVolumePostSkeleton()
Definition: fastdg/localassembler.hh:217
void setTime(Real time_)
Definition: fastdg/localassembler.hh:124
const P & p
Definition: constraints.hh:147
Definition: lfsindexcache.hh:977