2 #include <assemblerutilties.hh> 22 template<
class LocalAssemblerEngine>
37 const LocalAssembler & localAssembler();
46 bool requireSkeleton()
const;
47 bool requireSkeletonTwoSided()
const;
48 bool requireUVVolume()
const;
49 bool requireVVolume()
const;
50 bool requireUVSkeleton()
const;
51 bool requireVSkeleton()
const;
52 bool requireUVBoundary()
const;
53 bool requireVBoundary()
const;
54 bool requireUVProcessor()
const;
55 bool requireVProcessor()
const;
56 bool requireUVEnrichedCoupling()
const;
57 bool requireVEnrichedCoupling()
const;
58 bool requireUVVolumePostSkeleton()
const;
59 bool requireVVolumePostSkeleton()
const;
82 bool assembleCell(
const EG & eg);
87 template<
typename EG,
typename LFSU,
typename LFSV>
88 void assembleUVVolume(
const EG & eg,
const LFSU & lfsu,
const LFSV & lfsv);
93 template<
typename EG,
typename LFSV>
94 void assembleVVolume(
const EG & eg,
const LFSV & lfsv);
99 template<
typename IG,
typename LFSU_S,
typename LFSV_S,
typename LFSU_N,
typename LFSV_N>
100 void assembleUVSkeleton(
const IG &
ig,
const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s,
101 const LFSU_N & lfsu_n,
const LFSV_N & lfsv_n);
106 template<
typename IG,
typename LFSV_S,
typename LFSV_N>
107 void assembleVSkeleton(
const IG &
ig,
const LFSV_S & lfsv_s,
const LFSV_N & lfsv_n);
112 template<
typename IG,
typename LFSU_S,
typename LFSV_S>
113 void assembleUVBoundary(
const IG &
ig,
const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s);
118 template<
typename IG,
typename LFSV_S>
119 void assembleVBoundary(
const IG &
ig,
const LFSV_S & lfsv_s);
126 template<
typename IG,
typename LFSU_S,
typename LFSV_S>
127 void assembleUVProcessor(
const IG &
ig,
const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s);
134 template<
typename IG,
typename LFSV_S>
135 void assembleVProcessor(
const IG &
ig,
const LFSV_S & lfsv_s);
137 template<
typename IG,
typename LFSU_S,
typename LFSV_S,
typename LFSU_N,
typename LFSV_N,
138 typename LFSU_C,
typename LFSV_C>
139 void assembleUVEnrichedCoupling(
const IG &
ig,
140 const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s,
141 const LFSU_N & lfsu_n,
const LFSV_N & lfsv_n,
142 const LFSU_C & lfsu_c,
const LFSV_C & lfsv_c);
144 template<
typename IG,
typename LFSV_S,
typename LFSV_N,
typename LFSV_C>
145 void assembleVEnrichedCoupling(
const IG &
ig,
146 const LFSV_S & lfsv_s,
147 const LFSV_N & lfsv_n,
148 const LFSV_C & lfsv_c);
154 template<
typename EG,
typename LFSU,
typename LFSV>
155 void assembleUVVolumePostSkeleton(
const EG & eg,
const LFSU & lfsu,
const LFSV & lfsv);
161 template<
typename EG,
typename LFSV>
162 void assembleVVolumePostSkeleton(
const EG & eg,
const LFSV & lfsv);
182 void onBindLFSUV(
const EG & eg,
183 const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s);
184 void onBindLFSV(
const EG & eg,
185 const LFSV_S & lfsv_s);
186 void onBindLFSUVInside(
const IG &
ig,
187 const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s);
188 void onBindLFSVInside(
const IG &
ig,
189 const LFSV_S & lfsv_s);
190 void onBindLFSUVOutside(
const IG &
ig,
191 const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s,
192 const LFSU_N & lfsu_n,
const LFSV_N & lfsv_n);
193 void onBindLFSVOutside(
const IG &
ig,
194 const LFSV_S & lfsv_s,
195 const LFSV_N & lfsv_n);
196 void onBindLFSUVCoupling(
const IG &
ig,
197 const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s,
198 const LFSU_N & lfsu_n,
const LFSV_N & lfsv_n
199 const LFSU_Coupling & lfsu_coupling,
const LFSV_Coupling & lfsv_coupling);
200 void onBindLFSVCoupling(
const IG &
ig,
201 const LFSV_S & lfsv_s,
202 const LFSV_N & lfsv_n,
203 const LFSV_Coupling & lfsv_coupling);
205 void onUnbindLFSUV(
const EG & eg,
206 const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s);
207 void onUnbindLFSV(
const EG & eg,
208 const LFSV_S & lfsv_s);
209 void onUnbindLFSUVInside(
const IG &
ig,
210 const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s);
211 void onUnbindLFSVInside(
const IG &
ig,
212 const LFSV_S & lfsv_s);
213 void onUnbindLFSUVOutside(
const IG &
ig,
214 const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s,
215 const LFSU_N & lfsu_n,
const LFSV_N & lfsv_n);
216 void onUnbindLFSVOutside(
const IG &
ig,
217 const LFSV_S & lfsv_s,
218 const LFSV_N & lfsv_n);
219 void onUnbindLFSUVCoupling(
const IG &
ig,
220 const LFSU_S & lfsu_s,
const LFSV_S & lfsv_s,
221 const LFSU_N & lfsu_n,
const LFSV_N & lfsv_n,
222 const LFSU_Coupling & lfsu_coupling,
const LFSV_Coupling & lfsv_coupling);
223 void onUnbindLFSVCoupling(
const IG &
ig,
224 const LFSV_S & lfsv_s,
225 const LFSV_N & lfsv_n,
226 const LFSV_Coupling & lfsv_coupling);
238 void loadCoefficientsLFSUInside(
const LFSU_S & lfsu_s);
239 void loadCoefficientsLFSUOutside(
const LFSU_N & lfsu_n);
240 void loadCoefficientsLFSUCoupling(
const LFSU_Coupling & lfsu_coupling);
253 void setSolution(
const X& x);
254 void setPattern(
const P&
p);
255 void setJacobian(
const J & j);
256 void setResidual(
const R& r);
272 template<
typename B,
typename CU,
typename CV>
283 void setTime(TT time);
286 template<
typename TT>
287 void preStep (TT time, TT dt, std::size_t stages);
293 template<
typename TT>
294 void preStage (TT time, std::size_t stage);
300 template<
typename TT>
301 TT suggestTimestep (TT dt)
const;
307 void setWeight(RF weight);
342 template<
typename GFSU,
typename GFSV,
343 typename MB,
typename DF,
typename RF,
typename JF>
353 void fill_pattern (P& globalpattern)
const;
357 template<
typename X,
typename R>
358 void residual (
const X& x, R& r)
const;
362 template<
typename X,
typename A>
363 void jacobian (
const X& x, A& a)
const;
367 Assembler & assembler();
373 const GFSU& trialGridFunctionSpace()
const;
374 const GFSV& testGridFunctionSpace()
const;
375 typename GFSU::Traits::SizeType globalSizeU ()
const;
376 typename GFSV::Traits::SizeType globalSizeV ()
const;
410 template<
typename Gr
idOperatorTuple>
411 static void setupGridOperators(GridOperatorTuple& tuple);
Traits class for the grid operator.
Definition: gridoperatorutilities.hh:33
void assemble(LocalAssemblerEngine &local_assembler_engine)
Definition: common/assembler.hh:323
const IG & ig
Definition: constraints.hh:148
The grid operator represents an operator mapping which corresponds to the (possibly nonlinear) algebr...
Definition: common/assembler.hh:344
void interpolate(const F &f, const GFS &gfs, XG &xg)
interpolation from a given grid function
Definition: interpolate.hh:191
Definition: common/assembler.hh:324
Definition: adaptivity.hh:27
Base class for local assembler.
Definition: assemblerutilities.hh:182
The local assembler which provides the engines that drive the global assembler.
Definition: common/assembler.hh:273
Definition: common/assembler.hh:322
Dune::PDELab::Backend::Vector< GFSU, DF > Domain
The type of the domain (solution).
Definition: gridoperatorutilities.hh:58
The global assembler which performs the traversing of the integration parts.
Definition: common/assembler.hh:20
GridOperatorTraits< GFSU, GFSV, MB, DF, RF, JF, CU, CV, AssemblerInterface, LocalAssemblerInterface > Traits
The traits class.
Definition: common/assembler.hh:349
LocalAssemblerInterface LocalAssembler
The type of the local assembler.
Definition: common/assembler.hh:34
const P & p
Definition: constraints.hh:147
Definition: common/assembler.hh:321
The local assembler engine which handles the integration parts as provided by the global assemblers...
Definition: common/assembler.hh:31