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 
86  void
87  SetTime(double time, const TimeIterator& interval)
88  {
89  _OP.SetTime(time, interval);
90  }
91 
92  /******************************************************/
93 
98  template<typename DATACONTAINER>
99  double
100  ElementFunctional(const DATACONTAINER& dc)
101  {
102  return _OP.ElementFunctional(dc);
103  }
104 
105  /******************************************************/
106 
112  double
114  const std::map<std::string, const dealii::Vector<double>*> &param_values,
115  const std::map<std::string, const VECTOR*> &domain_values)
116  {
117  return _OP.PointFunctional(param_values, domain_values);
118  }
119 
120  /******************************************************/
121 
126  template<typename FACEDATACONTAINER>
127  double
128  BoundaryFunctional(const FACEDATACONTAINER& fdc)
129  {
130  return _OP.BoundaryFunctional(fdc);
131  }
132 
133  /******************************************************/
134 
139  template<typename FACEDATACONTAINER>
140  double
141  FaceFunctional(const FACEDATACONTAINER& fdc)
142  {
143  return _OP.FaceFunctional(fdc);
144  }
145 
146  /******************************************************/
147 
153  const dealii::SmartPointer<const dealii::FESystem<dealdim> >
154  GetFESystem() const
155  {
156  return _OP.GetFESystem();
157  }
158 
159  /******************************************************/
160 
167  bool
168  HasFaces() const
169  {
170  return _OP.HasFaces();
171  }
172 
173  /******************************************************/
177  bool
178  HasPoints() const
179  {
180  return _OP.HasPoints();
181  }
182 
183  /******************************************************/
190  bool
192  {
193  return _OP.HasInterfaces();
194  }
195 
196  /******************************************************/
197 
206  dealii::UpdateFlags
208  {
209  return _OP.GetUpdateFlags();
210  }
211 
212  /******************************************************/
213 
223  dealii::UpdateFlags
225  {
226  return _OP.GetFaceUpdateFlags();
227  }
228 
229  /******************************************************/
230 
236  const std::vector<unsigned int>&
238  {
239  return _OP.GetDirichletColors();
240  }
241 
242  /******************************************************/
243 
250  const std::vector<bool>&
251  GetDirichletCompMask(unsigned int color) const
252  {
253  return _OP.GetDirichletCompMask(color);
254  }
255 
256  /******************************************************/
257 
264  const dealii::Function<dealdim>&
265  GetDirichletValues(unsigned int color,
266  const std::map<std::string, const dealii::Vector<double>*> &param_values,
267  const std::map<std::string, const VECTOR*> &domain_values) const
268  {
269  return _OP.GetDirichletValues(color, param_values, domain_values);
270  }
271 
272  /******************************************************/
273 
280  const dealii::Function<dealdim>&
282  {
283  return _OP.GetInitialValues();
284  }
285 
286  /******************************************************/
287 
293  const std::vector<unsigned int>&
295  {
296  return _OP.GetBoundaryEquationColors();
297  }
298 
299  /******************************************************/
300 
306  const std::vector<unsigned int>&
308  {
309  return _OP.GetBoundaryFunctionalColors();
310  }
311 
312  /******************************************************/
313 
319  unsigned int
321  {
322  return _OP.GetNFunctionals();
323  }
324 
325  /******************************************************/
326 
332  unsigned int
333  GetNBlocks() const
334  {
335  return _OP.GetNBlocks();
336  }
337 
338  /******************************************************/
339 
345  unsigned int
346  GetDoFsPerBlock(unsigned int b) const
347  {
348  return _OP.GetDoFsPerBlock(b);
349  }
350 
351  /******************************************************/
352 
358  const std::vector<unsigned int>&
360  {
361  return _OP.GetDoFsPerBlock();
362  }
363 
364  /******************************************************/
365 
371  const dealii::ConstraintMatrix&
373  {
374  return _OP.GetDoFConstraints();
375  }
376 
377  std::string
378  GetType() const
379  {
380  return _OP.GetType();
381  }
382  std::string
383  GetDoFType() const
384  {
385  return _OP.GetDoFType();
386  }
387 
388  /******************************************************/
389 
401  std::string
403  {
404  return _OP.GetFunctionalType();
405  }
406 
407  /******************************************************/
408 
414  std::string
416  {
417  return _OP.GetFunctionalName();
418  }
419 
420  /******************************************************/
421 
429  {
430  return _OP.GetOutputHandler();
431  }
432 
433  /******************************************************/
434 
440  const SpaceTimeHandler<FE, DH, SPARSITYPATTERN, VECTOR, dopedim,
441  dealdim>*
443  {
444  return _OP.GetBaseProblem().GetSpaceTimeHandler();
445  }
446  SpaceTimeHandler<FE, DH, SPARSITYPATTERN, VECTOR, dopedim,
447  dealdim>*
449  {
450  return _OP.GetBaseProblem().GetSpaceTimeHandler();
451  }
452 
453  /******************************************************/
454 
455  void
456  ComputeSparsityPattern(SPARSITYPATTERN & sparsity) const
457  {
458  _OP.ComputeSparsityPattern(sparsity);
459  }
460  protected:
461  /******************************************************/
465  OPTPROBLEM&
467  {
468  return _OP;
469  }
470  /******************************************************/
471 
478  std::string
479  GetPart() const
480  {
481  return _part;
482  }
483 
484  private:
485  OPTPROBLEM& _OP;
486  std::string _part;
487  };
488 }
489 #endif
dealii::UpdateFlags GetUpdateFlags() const
Definition: ts_base.h:207
void SetStepPart(std::string s)
Definition: ts_base.h:71
DOpEOutputHandler< VECTOR > * GetOutputHandler()
Definition: ts_base.h:428
unsigned int GetNBlocks() const
Definition: ts_base.h:333
const dealii::ConstraintMatrix & GetDoFConstraints() const
Definition: ts_base.h:372
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:265
const std::vector< unsigned int > & GetBoundaryFunctionalColors() const
Definition: ts_base.h:307
dealii::UpdateFlags GetFaceUpdateFlags() const
Definition: ts_base.h:224
~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:128
bool HasPoints() const
Definition: ts_base.h:178
std::string GetDoFType() const
Definition: ts_base.h:383
const dealii::Function< dealdim > & GetInitialValues() const
Definition: ts_base.h:281
void SetTime(double time, const TimeIterator &interval)
Definition: ts_base.h:87
Definition: timeiterator.h:63
bool HasFaces() const
Definition: ts_base.h:168
std::string GetFunctionalType() const
Definition: ts_base.h:402
unsigned int GetDoFsPerBlock(unsigned int b) const
Definition: ts_base.h:346
const dealii::SmartPointer< const dealii::FESystem< dealdim > > GetFESystem() const
Definition: ts_base.h:154
double ElementFunctional(const DATACONTAINER &dc)
Definition: ts_base.h:100
bool HasInterfaces() const
Definition: ts_base.h:191
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:113
const std::vector< bool > & GetDirichletCompMask(unsigned int color) const
Definition: ts_base.h:251
const std::vector< unsigned int > & GetBoundaryEquationColors() const
Definition: ts_base.h:294
unsigned int GetNFunctionals() const
Definition: ts_base.h:320
const SpaceTimeHandler< FE, DH, SPARSITYPATTERN, VECTOR, dopedim, dealdim > * GetSpaceTimeHandler() const
Definition: ts_base.h:442
Definition: spacetimehandler.h:71
OPTPROBLEM & GetProblem()
Definition: ts_base.h:466
std::string GetPart() const
Definition: ts_base.h:479
SpaceTimeHandler< FE, DH, SPARSITYPATTERN, VECTOR, dopedim, dealdim > * GetSpaceTimeHandler()
Definition: ts_base.h:448
const std::vector< unsigned int > & GetDoFsPerBlock() const
Definition: ts_base.h:359
const std::vector< unsigned int > & GetDirichletColors() const
Definition: ts_base.h:237
std::string GetType() const
Definition: ts_base.h:378
void ComputeSparsityPattern(SPARSITYPATTERN &sparsity) const
Definition: ts_base.h:456
double FaceFunctional(const FACEDATACONTAINER &fdc)
Definition: ts_base.h:141
std::string GetFunctionalName() const
Definition: ts_base.h:415