1 #ifndef DUNE_PDELAB_GRIDOPERATOR_ONESTEP_RESIDUALENGINE_HH 2 #define DUNE_PDELAB_GRIDOPERATOR_ONESTEP_RESIDUALENGINE_HH 18 template<
typename OSLA>
21 typename OSLA::LocalAssemblerDT0::LocalResidualAssemblerEngine,
22 typename OSLA::LocalAssemblerDT1::LocalResidualAssemblerEngine
27 typename OSLA::LocalAssemblerDT0::LocalResidualAssemblerEngine,
28 typename OSLA::LocalAssemblerDT1::LocalResidualAssemblerEngine
52 typedef typename OSLA::Traits::Residual
Residual;
55 typedef typename OSLA::Traits::Solution
Solution;
58 typedef typename OSLA::Real
Real;
69 : BaseT(local_assembler_),
70 invalid_residual(static_cast<Residual*>(0)),
71 invalid_solution(static_cast<Solution*>(0)),
72 residual_0(invalid_residual),
73 residual_1(invalid_residual),
74 const_residual_0(invalid_residual),
75 const_residual_1(invalid_residual),
76 solution(invalid_solution)
82 solution = &solution_;
88 const_residual_0 = &const_residual_;
89 const_residual_1 = &const_residual_;
95 residual_0 = &residual_;
96 residual_1 = &residual_;
99 assert(solution != invalid_solution);
109 const_residual_0 = &const_residual_0_;
110 const_residual_1 = &const_residual_1_;
118 residual_0 = &residual_0_;
119 residual_1 = &residual_1_;
122 assert(solution != invalid_solution);
131 la.la0.setWeight(b_rr *
la.dt_factor0);
132 la.la1.setWeight(
la.dt_factor1);
143 b_rr =
la.osp_method->b(
la.stage,
la.stage);
144 d_r =
la.osp_method->d(
la.stage);
148 la.la0.setTime(
la.time + d_r *
la.dt);
149 la.la1.setTime(
la.time + d_r *
la.dt);
154 template<
typename GFSU,
typename GFSV>
158 assert(const_residual_0 != invalid_residual);
159 assert(const_residual_1 != invalid_residual);
160 *residual_0 += *const_residual_0;
161 if(residual_0 != residual_1){
162 assert(const_residual_0 != const_residual_1);
163 *residual_1 += *const_residual_1;
166 lae0->postAssembly(gfsu,gfsv);
167 lae1->postAssembly(gfsu,gfsv);
175 Residual *
const invalid_residual;
178 Solution *
const invalid_solution;
184 Residual * residual_0;
185 Residual * residual_1;
192 const Residual * const_residual_0;
193 const Residual * const_residual_1;
197 const Solution * solution;
207 #endif // DUNE_PDELAB_GRIDOPERATOR_ONESTEP_RESIDUALENGINE_HH void setResiduals(Residual &residual_0_, Residual &residual_1_)
Definition: onestep/residualengine.hh:117
OSLA LocalAssembler
Definition: onestep/residualengine.hh:60
OSLA::LocalAssemblerDT1 LocalAssemblerDT1
Definition: onestep/residualengine.hh:45
OSLA::Traits::Residual Residual
The type of the residual vector.
Definition: onestep/residualengine.hh:52
void setSolution(const Solution &solution_)
Definition: onestep/residualengine.hh:81
For backward compatibility – Do not use this!
Definition: adaptivity.hh:27
void setConstResiduals(const Residual &const_residual_0_, const Residual &const_residual_1_)
Definition: onestep/residualengine.hh:108
LocalAssemblerDT1::LocalResidualAssemblerEngine ResidualEngineDT1
Definition: onestep/residualengine.hh:48
The local assembler engine for UDG sub triangulations which assembles the residual vector...
Definition: enginebase.hh:15
The local assembler engine for one step methods which assembles the residual vector.
Definition: onestep/residualengine.hh:19
void setLocalAssemblerEngineDT1(LocalAssemblerEngineDT1 &lae1_)
Definition: enginebase.hh:121
OSLA::Traits::Solution Solution
The type of the solution vector.
Definition: onestep/residualengine.hh:55
const Entity & e
Definition: localfunctionspace.hh:111
OSLA::LocalAssemblerDT0 LocalAssemblerDT0
Definition: onestep/residualengine.hh:44
void setConstResidual(const Residual &const_residual_)
Definition: onestep/residualengine.hh:87
bool implicit
Definition: enginebase.hh:442
void setLocalAssemblerEngineDT0(LocalAssemblerEngineDT0 &lae0_)
Definition: enginebase.hh:116
void setResidual(Residual &residual_)
Definition: onestep/residualengine.hh:94
OneStepLocalResidualAssemblerEngine(const LocalAssembler &local_assembler_)
Constructor.
Definition: onestep/residualengine.hh:68
const LocalAssembler & la
Definition: enginebase.hh:437
LocalAssemblerEngineDT1 * lae1
Definition: enginebase.hh:440
LocalAssemblerEngineDT0 * lae0
Definition: enginebase.hh:439
void preAssembly()
Definition: onestep/residualengine.hh:137
void postAssembly(const GFSU &gfsu, const GFSV &gfsv)
Definition: onestep/residualengine.hh:155
OSLA OneStepLocalAssembler
The type of the wrapping local assembler.
Definition: onestep/residualengine.hh:40
void setWeights()
Definition: onestep/residualengine.hh:130
LocalAssemblerDT0::LocalResidualAssemblerEngine ResidualEngineDT0
Definition: onestep/residualengine.hh:47
OSLA::Real Real
The type for real numbers.
Definition: onestep/residualengine.hh:58