3 #ifndef DUNE_PDELAB_GRIDOPERATOR_ONESTEP_JACOBIANAPPLYENGINE_HH
4 #define DUNE_PDELAB_GRIDOPERATOR_ONESTEP_JACOBIANAPPLYENGINE_HH
19 template<
typename OSLA>
22 typename OSLA::LocalAssemblerDT0::LocalJacobianApplyAssemblerEngine,
23 typename OSLA::LocalAssemblerDT1::LocalJacobianApplyAssemblerEngine
27 typename OSLA::LocalAssemblerDT0::LocalJacobianApplyAssemblerEngine,
28 typename OSLA::LocalAssemblerDT1::LocalJacobianApplyAssemblerEngine
48 typedef typename OSLA::Traits::Range
Range;
51 typedef typename OSLA::Traits::Domain
Domain;
54 typedef typename OSLA::Real
Real;
62 :
BaseT(local_assembler_)
63 , invalid_result(nullptr)
64 , invalid_solution(nullptr)
65 , invalid_update(nullptr)
66 , result(invalid_result)
67 , solution(invalid_solution)
68 , update(invalid_update)
75 solution = &solution_;
92 assert(update != invalid_update);
93 setLocalAssemblerEngineDT0
94 (la.la0.localJacobianApplyAssemblerEngine(*solution,*update,*result));
95 setLocalAssemblerEngineDT1
96 (la.la1.localJacobianApplyAssemblerEngine(*solution,*update,*result));
104 la.la0.setWeight(b_rr * la.dt_factor0);
105 la.la1.setWeight(la.dt_factor1);
116 b_rr = la.osp_method->b(la.stage,la.stage);
117 d_r = la.osp_method->d(la.stage);
121 implicit = abs(b_rr) > 1
e-6;
124 la.la0.setTime(la.time + d_r * la.dt);
125 la.la1.setTime(la.time + d_r * la.dt);
130 template<
typename GFSU,
typename GFSV>
133 lae0->postAssembly(gfsu,gfsv);
134 lae1->postAssembly(gfsu,gfsv);
141 Range *
const invalid_result;
144 Domain *
const invalid_solution;
147 Domain *
const invalid_update;
const Entity & e
Definition: localfunctionspace.hh:121
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
The local assembler engine for UDG sub triangulations which assembles the residual vector.
Definition: enginebase.hh:16
const LocalAssembler & la
Definition: enginebase.hh:459
void setLocalAssemblerEngineDT0(LocalAssemblerEngineDT0 &lae0_)
Definition: enginebase.hh:119
LocalAssemblerEngineDT1 * lae1
Definition: enginebase.hh:462
void setLocalAssemblerEngineDT1(LocalAssemblerEngineDT1 &lae1_)
Definition: enginebase.hh:124
LocalAssemblerEngineDT0 * lae0
Definition: enginebase.hh:461
bool implicit
Definition: enginebase.hh:464
The local assembler engine for one-step methods which applies the jacobian without explicitly assembl...
Definition: onestep/jacobianapplyengine.hh:25
void postAssembly(const GFSU &gfsu, const GFSV &gfsv)
Definition: onestep/jacobianapplyengine.hh:131
void preAssembly()
Definition: onestep/jacobianapplyengine.hh:110
OSLA::Traits::Domain Domain
The type of the solution vector.
Definition: onestep/jacobianapplyengine.hh:51
void setSolution(const Domain &solution_)
Definition: onestep/jacobianapplyengine.hh:73
OSLA::Real Real
The type for real numbers.
Definition: onestep/jacobianapplyengine.hh:54
OSLA::LocalAssemblerDT1 LocalAssemblerDT1
Definition: onestep/jacobianapplyengine.hh:42
void setUpdate(const Domain &update_)
Definition: onestep/jacobianapplyengine.hh:80
LocalAssemblerDT1::LocalJacobianApplyAssemblerEngine JacobianEngineDT1
Definition: onestep/jacobianapplyengine.hh:45
void setWeights()
Definition: onestep/jacobianapplyengine.hh:102
OneStepLocalJacobianApplyAssemblerEngine(LocalAssembler &local_assembler_)
Constructor.
Definition: onestep/jacobianapplyengine.hh:61
LocalAssemblerDT0::LocalJacobianApplyAssemblerEngine JacobianEngineDT0
Definition: onestep/jacobianapplyengine.hh:44
OSLA::LocalAssemblerDT0 LocalAssemblerDT0
Definition: onestep/jacobianapplyengine.hh:41
OSLA::Traits::Range Range
The type of the result vector.
Definition: onestep/jacobianapplyengine.hh:48
void setResult(Range &result_)
Definition: onestep/jacobianapplyengine.hh:87
OSLA LocalAssembler
The type of the wrapping local assembler.
Definition: onestep/jacobianapplyengine.hh:39