DOpE
ts_base.h
Go to the documentation of this file.
1 
24 #ifndef TSBase_H_
25 #define TSBase_H_
26 
27 #include "lac/vector.h"
28 
29 namespace DOpE
30 {
46  template<typename OPTPROBLEM, typename SPARSITYPATTERN, typename VECTOR,
47  int dopedim, int dealdim,
48  template <int, int> class FE = dealii::FESystem,
49  template <int, int> class DH = dealii::DoFHandler>
50  class TSBase
51  {
52  public:
53  TSBase(OPTPROBLEM& OP) :
54  OP_(OP)
55  {
56  }
57  ;
59  {
60  }
61  ;
62 
63  /******************************************************/
70  void
71  SetStepPart(std::string s)
72  {
73  part_ = s;
74  }
75 
76  /******************************************************/
77 
87  void
88  SetTime(double time, const TimeIterator& interval, bool initial = false)
89  {
90  OP_.SetTime(time, interval,initial);
91  }
92 
93  /******************************************************/
94 
99  template<typename DATACONTAINER>
100  double
101  ElementFunctional(const DATACONTAINER& dc)
102  {
103  return OP_.ElementFunctional(dc);
104  }
105 
106  /******************************************************/
107 
113  double
115  const std::map<std::string, const dealii::Vector<double>*> &param_values,
116  const std::map<std::string, const VECTOR*> &domain_values)
117  {
118  return OP_.PointFunctional(param_values, domain_values);
119  }
120 
121  /******************************************************/
122 
127  template<typename FACEDATACONTAINER>
128  double
129  BoundaryFunctional(const FACEDATACONTAINER& fdc)
130  {
131  return OP_.BoundaryFunctional(fdc);
132  }
133 
134  /******************************************************/
135 
140  template<typename FACEDATACONTAINER>
141  double
142  FaceFunctional(const FACEDATACONTAINER& fdc)
143  {
144  return OP_.FaceFunctional(fdc);
145  }
146 
147  /******************************************************/
148 
154  const dealii::SmartPointer<const dealii::FESystem<dealdim> >
155  GetFESystem() const
156  {
157  return OP_.GetFESystem();
158  }
159 
160  /******************************************************/
161 
168  bool
169  HasFaces() const
170  {
171  return OP_.HasFaces();
172  }
173 
174  /******************************************************/
178  bool
179  HasPoints() const
180  {
181  return OP_.HasPoints();
182  }
183 
184  /******************************************************/
191  bool
193  {
194  return OP_.HasInterfaces();
195  }
196 
197  /******************************************************/
198 
207  dealii::UpdateFlags
209  {
210  return OP_.GetUpdateFlags();
211  }
212 
213  /******************************************************/
214 
224  dealii::UpdateFlags
226  {
227  return OP_.GetFaceUpdateFlags();
228  }
229 
230  /******************************************************/
231 
237  const std::vector<unsigned int>&
239  {
240  return OP_.GetDirichletColors();
241  }
242 
243  /******************************************************/
244 
251  const std::vector<bool>&
252  GetDirichletCompMask(unsigned int color) const
253  {
254  return OP_.GetDirichletCompMask(color);
255  }
256 
257  /******************************************************/
258 
265  const dealii::Function<dealdim>&
266  GetDirichletValues(unsigned int color,
267  const std::map<std::string, const dealii::Vector<double>*> &param_values,
268  const std::map<std::string, const VECTOR*> &domain_values) const
269  {
270  return OP_.GetDirichletValues(color, param_values, domain_values);
271  }
272 
273  /******************************************************/
274 
281  const dealii::Function<dealdim>&
283  {
284  return OP_.GetInitialValues();
285  }
286 
287  /******************************************************/
288 
294  const std::vector<unsigned int>&
296  {
297  return OP_.GetBoundaryEquationColors();
298  }
299 
300  /******************************************************/
301 
307  const std::vector<unsigned int>&
309  {
310  return OP_.GetBoundaryFunctionalColors();
311  }
312 
313  /******************************************************/
314 
320  unsigned int
322  {
323  return OP_.GetNFunctionals();
324  }
325 
326  /******************************************************/
327 
333  unsigned int
334  GetNBlocks() const
335  {
336  return OP_.GetNBlocks();
337  }
338 
339  /******************************************************/
340 
346  unsigned int
347  GetDoFsPerBlock(unsigned int b) const
348  {
349  return OP_.GetDoFsPerBlock(b);
350  }
351 
352  /******************************************************/
353 
359  const std::vector<unsigned int>&
361  {
362  return OP_.GetDoFsPerBlock();
363  }
364 
365  /******************************************************/
366 
372  const dealii::ConstraintMatrix&
374  {
375  return OP_.GetDoFConstraints();
376  }
377 
378  std::string
379  GetType() const
380  {
381  return OP_.GetType();
382  }
383  std::string
384  GetDoFType() const
385  {
386  return OP_.GetDoFType();
387  }
388 
389  /******************************************************/
390 
402  std::string
404  {
405  return OP_.GetFunctionalType();
406  }
407 
408  /******************************************************/
409 
415  std::string
417  {
418  return OP_.GetFunctionalName();
419  }
420 
421  /******************************************************/
422 
430  {
431  return OP_.GetOutputHandler();
432  }
433 
434  /******************************************************/
435 
441  const SpaceTimeHandler<FE, DH, SPARSITYPATTERN, VECTOR, dopedim,
442  dealdim>*
444  {
445  return OP_.GetBaseProblem().GetSpaceTimeHandler();
446  }
447  SpaceTimeHandler<FE, DH, SPARSITYPATTERN, VECTOR, dopedim,
448  dealdim>*
450  {
451  return OP_.GetBaseProblem().GetSpaceTimeHandler();
452  }
453 
454  /******************************************************/
455 
456  void
457  ComputeSparsityPattern(SPARSITYPATTERN & sparsity) const
458  {
459  OP_.ComputeSparsityPattern(sparsity);
460  }
461  protected:
462  /******************************************************/
466  OPTPROBLEM&
468  {
469  return OP_;
470  }
471  /******************************************************/
472 
479  std::string
480  GetPart() const
481  {
482  return part_;
483  }
484 
485  private:
486  OPTPROBLEM& OP_;
487  std::string part_;
488  };
489 }
490 #endif
dealii::UpdateFlags GetUpdateFlags() const
Definition: ts_base.h:208
void SetStepPart(std::string s)
Definition: ts_base.h:71
DOpEOutputHandler< VECTOR > * GetOutputHandler()
Definition: ts_base.h:429
unsigned int GetNBlocks() const
Definition: ts_base.h:334
const dealii::ConstraintMatrix & GetDoFConstraints() const
Definition: ts_base.h:373
const dealii::Function< dealdim > & GetDirichletValues(unsigned int color, const std::map< std::string, const dealii::Vector< double > * > &param_values, const std::map< std::string, const VECTOR * > &domain_values) const
Definition: ts_base.h:266
const std::vector< unsigned int > & GetBoundaryFunctionalColors() const
Definition: ts_base.h:308
dealii::UpdateFlags GetFaceUpdateFlags() const
Definition: ts_base.h:225
Definition: dopetypes.h:106
~TSBase()
Definition: ts_base.h:58
TSBase(OPTPROBLEM &OP)
Definition: ts_base.h:53
Definition: ts_base.h:50
Definition: optproblemcontainer.h:70
double BoundaryFunctional(const FACEDATACONTAINER &fdc)
Definition: ts_base.h:129
bool HasPoints() const
Definition: ts_base.h:179
std::string GetDoFType() const
Definition: ts_base.h:384
const dealii::Function< dealdim > & GetInitialValues() const
Definition: ts_base.h:282
Definition: timeiterator.h:63
bool HasFaces() const
Definition: ts_base.h:169
std::string GetFunctionalType() const
Definition: ts_base.h:403
unsigned int GetDoFsPerBlock(unsigned int b) const
Definition: ts_base.h:347
const dealii::SmartPointer< const dealii::FESystem< dealdim > > GetFESystem() const
Definition: ts_base.h:155
double ElementFunctional(const DATACONTAINER &dc)
Definition: ts_base.h:101
bool HasInterfaces() const
Definition: ts_base.h:192
double PointFunctional(const std::map< std::string, const dealii::Vector< double > * > &param_values, const std::map< std::string, const VECTOR * > &domain_values)
Definition: ts_base.h:114
const std::vector< bool > & GetDirichletCompMask(unsigned int color) const
Definition: ts_base.h:252
const std::vector< unsigned int > & GetBoundaryEquationColors() const
Definition: ts_base.h:295
unsigned int GetNFunctionals() const
Definition: ts_base.h:321
const SpaceTimeHandler< FE, DH, SPARSITYPATTERN, VECTOR, dopedim, dealdim > * GetSpaceTimeHandler() const
Definition: ts_base.h:443
Definition: spacetimehandler.h:71
OPTPROBLEM & GetProblem()
Definition: ts_base.h:467
void SetTime(double time, const TimeIterator &interval, bool initial=false)
Definition: ts_base.h:88
std::string GetPart() const
Definition: ts_base.h:480
SpaceTimeHandler< FE, DH, SPARSITYPATTERN, VECTOR, dopedim, dealdim > * GetSpaceTimeHandler()
Definition: ts_base.h:449
const std::vector< unsigned int > & GetDoFsPerBlock() const
Definition: ts_base.h:360
const std::vector< unsigned int > & GetDirichletColors() const
Definition: ts_base.h:238
std::string GetType() const
Definition: ts_base.h:379
void ComputeSparsityPattern(SPARSITYPATTERN &sparsity) const
Definition: ts_base.h:457
double FaceFunctional(const FACEDATACONTAINER &fdc)
Definition: ts_base.h:142
std::string GetFunctionalName() const
Definition: ts_base.h:416