DOpE
stateproblem.h
Go to the documentation of this file.
1 
24 #ifndef _STATE_PROBLEM_H_
25 #define _STATE_PROBLEM_H_
26 
27 #include "spacetimehandler.h"
28 
29 using namespace dealii;
30 
31 namespace DOpE
32 {
46  template<typename OPTPROBLEM, typename PDE, typename DD,
47  typename SPARSITYPATTERN, typename VECTOR, int dim>
49  {
50  public:
51  StateProblem(OPTPROBLEM& OP, PDE& pde) :
52  _pde(pde), _opt_problem(OP)
53  {
54  _dirichlet_colors = _opt_problem._dirichlet_colors;
55  _dirichlet_comps = _opt_problem._dirichlet_comps;
56  _primal_dirichlet_values = _opt_problem._primal_dirichlet_values;
57  _state_boundary_equation_colors
58  = _opt_problem._state_boundary_equation_colors;
59  }
60 
61  std::string
62  GetName() const
63  {
64  return "StateProblem";
65  }
66  std::string
67  GetType() const
68  {
69  return "state";
70  }
71 
72  /******************************************************/
73  /****For the initial values ***************/
78  template<typename EDC>
79  void Init_ElementEquation(const EDC& edc,
80  dealii::Vector<double> &local_vector, double scale,
81  double scale_ico)
82  {
83  _pde.Init_ElementEquation(edc, local_vector, scale, scale_ico);
84  }
85 
90  template<typename EDC>
91  void
92  Init_ElementRhs(const EDC& edc,
93  dealii::Vector<double> &local_vector, double scale)
94  {
95  _pde.Init_ElementRhs(& GetInitialValues(), edc, local_vector, scale);
96  }
97 
102  void
104  const std::map<std::string, const dealii::Vector<double>*> &/*param_values*/,
105  const std::map<std::string, const VECTOR*> &/*domain_values*/,
106  VECTOR& /*rhs_vector*/, double /*scale=1.*/)
107  {
108  //Note if this is implemented one needs to update Init_PointRhs in the
109  // OptProblem container in the tangent case.
110  }
111 
116  template<typename EDC>
117  void Init_ElementMatrix(const EDC& edc,
118  dealii::FullMatrix<double> &local_entry_matrix, double scale,
119  double scale_ico)
120  {
121  _pde.Init_ElementMatrix(edc, local_entry_matrix, scale, scale_ico);
122  }
123 
124  /******************************************************/
125  /* Functions as in OptProblem */
130  template<typename EDC>
131  inline void
132  ElementEquation(const EDC& edc,
133  dealii::Vector<double> &local_vector, double scale,
134  double scale_ico);
135 
140  template<typename EDC>
141  inline void
142  ElementTimeEquation(const EDC& edc,
143  dealii::Vector<double> &local_vector, double scale = 1.);
144 
149  template<typename EDC>
150  inline void
151  ElementTimeEquationExplicit(const EDC& edc,
152  dealii::Vector<double> &local_vector, double scale = 1.);
153 
158  template<typename EDC>
159  inline void
160  ElementRhs(const EDC& edc,
161  dealii::Vector<double> &local_vector, double scale = 1.);
162 
167  void
168  PointRhs(
169  const std::map<std::string, const dealii::Vector<double>*> &param_values,
170  const std::map<std::string, const VECTOR*> &domain_values,
171  VECTOR& rhs_vector, double scale);
172 
177  template<typename EDC>
178  inline void
179  ElementMatrix(const EDC& edc,
180  dealii::FullMatrix<double> &local_entry_matrix, double scale = 1.,
181  double scale_ico = 1.);
182 
187  template<typename EDC>
188  inline void
189  ElementTimeMatrix(const EDC& edc,
190  dealii::FullMatrix<double> &local_entry_matrix);
191 
196  template<typename EDC>
197  inline void
198  ElementTimeMatrixExplicit(const EDC& edc,
199  dealii::FullMatrix<double> &local_entry_matrix);
200 
205  template<typename FDC>
206  inline void
207  FaceEquation(const FDC& fdc,
208  dealii::Vector<double> &local_vector, double scale = 1., double scale_ico = 1.);
209 
214  template<typename FDC>
215  inline void
216  InterfaceEquation(const FDC& fdc,
217  dealii::Vector<double> &local_vector, double scale = 1., double scale_ico = 1.);
218 
223  template<typename FDC>
224  inline void
225  FaceRhs(const FDC& fdc,
226  dealii::Vector<double> &local_vector, double scale = 1.);
227 
232  template<typename FDC>
233  inline void
234  FaceMatrix(const FDC& fdc,
235  dealii::FullMatrix<double> &local_entry_matrix, double scale = 1.,double scale_ico = 1.);
236 
237  template<typename FDC>
238  inline void
239  InterfaceMatrix(const FDC& fdc,
240  dealii::FullMatrix<double> &local_entry_matrix, double scale = 1.,double scale_ico = 1.);
241 
246  template<typename FDC>
247  inline void
248  BoundaryEquation(const FDC& fdc,
249  dealii::Vector<double> &local_vector, double scale = 1., double scale_ico = 1.);
250 
255  template<typename FDC>
256  inline void
257  BoundaryRhs(const FDC& fdc,
258  dealii::Vector<double> &local_vector, double scale = 1.);
259 
264  template<typename FDC>
265  inline void
266  BoundaryMatrix(const FDC& fdc,
267  dealii::FullMatrix<double> &local_matrix, double scale = 1., double scale_ico = 1.);
268 
273  inline const dealii::SmartPointer<const dealii::FESystem<dim> >
274  GetFESystem() const;
275 
280  inline const dealii::SmartPointer<
281  const dealii::hp::FECollection<dim> >
282  GetFECollection() const;
283 
288  inline std::string
289  GetDoFType() const;
290 
295  inline bool
296  HasFaces() const;
301  inline bool
302  HasPoints() const;
307  inline bool
308  HasInterfaces() const;
309 
314  inline dealii::UpdateFlags
315  GetUpdateFlags() const;
316 
321  inline dealii::UpdateFlags
322  GetFaceUpdateFlags() const;
323 
324  /******************************************************/
329  inline void
330  SetTime(double time, const TimeIterator& interval);
331 
336  inline void
337  ComputeSparsityPattern(SPARSITYPATTERN & sparsity) const;
341  inline void
342  ComputeMGSparsityPattern(dealii::MGLevelObject<dealii::BlockSparsityPattern> & mg_sparsity_patterns,
343  unsigned int n_levels) const;
344 
345  inline void
346  ComputeMGSparsityPattern(dealii::MGLevelObject<dealii::SparsityPattern> & mg_sparsity_patterns,
347  unsigned int n_levels) const;
348 
353  inline const std::vector<unsigned int>&
354  GetDirichletColors() const;
359  inline const std::vector<bool>&
360  GetDirichletCompMask(unsigned int color) const;
365  inline const Function<dim>
366  &
367  GetDirichletValues(
368  unsigned int color,
369  const std::map<std::string, const dealii::Vector<double>*> &param_values,
370  const std::map<std::string, const VECTOR*> &domain_values) const;
375  inline const std::vector<unsigned int>&
376  GetBoundaryEquationColors() const;
381  inline const dealii::ConstraintMatrix&
382  GetDoFConstraints() const;
387  const dealii::Function<dim>&
388  GetInitialValues() const;
389  /******************************************************/
392  {
393  return _opt_problem.GetOutputHandler();
394  }
395  OPTPROBLEM&
397  {
398  return _opt_problem;
399  }
400  protected:
401 
402  private:
403  PDE& _pde;
404  OPTPROBLEM& _opt_problem;
405 
406  std::vector<unsigned int> _dirichlet_colors;
407  std::vector<std::vector<bool> > _dirichlet_comps;
408  std::vector<PrimalDirichletData<DD, VECTOR, dim>*>
409  _primal_dirichlet_values;
410  std::vector<unsigned int> _state_boundary_equation_colors;
411 
412  };
413 
414  /*****************************************************************************************/
415  /********************************IMPLEMENTATION*******************************************/
416  /*****************************************************************************************/
417 
418  template<typename OPTPROBLEM, typename PDE, typename DD,
419  typename SPARSITYPATTERN, typename VECTOR, int dim>
420  template<typename EDC>
421  void
422  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
423  dim>::ElementEquation(const EDC& edc,
424  dealii::Vector<double> &local_vector, double scale,
425  double scale_ico)
426  {
427  _pde.ElementEquation(edc, local_vector, scale, scale_ico);
428  }
429 
430  /******************************************************/
431 
432  template<typename OPTPROBLEM, typename PDE, typename DD,
433  typename SPARSITYPATTERN, typename VECTOR, int dim>
434  template<typename EDC>
435  void
436  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
437  dim>::ElementTimeEquation(const EDC& edc,
438  dealii::Vector<double> &local_vector, double scale)
439  {
440  _pde.ElementTimeEquation(edc, local_vector, scale);
441  }
442 
443  /******************************************************/
444 
445  template<typename OPTPROBLEM, typename PDE, typename DD,
446  typename SPARSITYPATTERN, typename VECTOR, int dim>
447  template<typename EDC>
448  void
449  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
450  dim>::ElementTimeEquationExplicit(const EDC& edc,
451  dealii::Vector<double> &local_vector, double scale)
452  {
453  _pde.ElementTimeEquationExplicit(edc, local_vector, scale);
454  }
455 
456  /******************************************************/
457 
458  template<typename OPTPROBLEM, typename PDE, typename DD,
459  typename SPARSITYPATTERN, typename VECTOR, int dim>
460  template<typename FDC>
461  void
462  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
463  dim>::FaceEquation(const FDC& fdc,
464  dealii::Vector<double> &local_vector, double scale, double scale_ico)
465  {
466  _pde.FaceEquation(fdc, local_vector, scale, scale_ico);
467  }
468 
469  /******************************************************/
470 
471  template<typename OPTPROBLEM, typename PDE, typename DD,
472  typename SPARSITYPATTERN, typename VECTOR, int dim>
473  template<typename FDC>
474  void
475  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
476  dim>::InterfaceEquation(const FDC& fdc,
477  dealii::Vector<double> &local_vector, double scale, double scale_ico)
478  {
479  _pde.InterfaceEquation(fdc, local_vector, scale, scale_ico);
480  }
481  /******************************************************/
482 
483  template<typename OPTPROBLEM, typename PDE, typename DD,
484  typename SPARSITYPATTERN, typename VECTOR, int dim>
485  template<typename FDC>
486  void
487  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
488  dim>::BoundaryEquation(const FDC& fdc,
489  dealii::Vector<double> &local_vector, double scale, double scale_ico)
490  {
491  _pde.BoundaryEquation(fdc, local_vector, scale, scale_ico);
492  }
493 
494  /******************************************************/
495 
496  template<typename OPTPROBLEM, typename PDE, typename DD,
497  typename SPARSITYPATTERN, typename VECTOR, int dim>
498  template<typename EDC>
499  void
500  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
501  dim>::ElementRhs(const EDC& edc,
502  dealii::Vector<double> &local_vector, double scale)
503  {
504  _pde.ElementRightHandSide(edc, local_vector, scale);
505  }
506 
507  /******************************************************/
508 
509  template<typename OPTPROBLEM, typename PDE, typename DD,
510  typename SPARSITYPATTERN, typename VECTOR, int dim>
511  void
513  const std::map<std::string, const dealii::Vector<double>*> &/*param_values*/,
514  const std::map<std::string, const VECTOR*> &/*domain_values*/,
515  VECTOR& /*rhs_vector*/, double /*scale*/)
516  {
517 
518  }
519 
520  /******************************************************/
521 
522  template<typename OPTPROBLEM, typename PDE, typename DD,
523  typename SPARSITYPATTERN, typename VECTOR, int dim>
524  template<typename FDC>
525  void
526  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
527  dim>::FaceRhs(const FDC& fdc,
528  dealii::Vector<double> &local_vector, double scale)
529  {
530  _pde.FaceRightHandSide(fdc, local_vector, scale);
531  }
532 
533  /******************************************************/
534 
535  template<typename OPTPROBLEM, typename PDE, typename DD,
536  typename SPARSITYPATTERN, typename VECTOR, int dim>
537  template<typename FDC>
538  void
539  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
540  dim>::BoundaryRhs(const FDC& fdc,
541  dealii::Vector<double> &local_vector, double scale)
542  {
543  _pde.BoundaryRightHandSide(fdc, local_vector, scale);
544  }
545 
546  /******************************************************/
547 
548  template<typename OPTPROBLEM, typename PDE, typename DD,
549  typename SPARSITYPATTERN, typename VECTOR, int dim>
550  template<typename EDC>
551  void
552  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
553  dim>::ElementMatrix(const EDC& edc,
554  dealii::FullMatrix<double> &local_entry_matrix, double scale,
555  double scale_ico)
556  {
557  _pde.ElementMatrix(edc, local_entry_matrix, scale, scale_ico);
558  }
559 
560  /******************************************************/
561 
562  template<typename OPTPROBLEM, typename PDE, typename DD,
563  typename SPARSITYPATTERN, typename VECTOR, int dim>
564  template<typename EDC>
565  void
566  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
567  dim>::ElementTimeMatrix(const EDC& edc,
568  FullMatrix<double> &local_entry_matrix)
569  {
570  _pde.ElementTimeMatrix(edc, local_entry_matrix);
571  }
572 
573  /******************************************************/
574 
575  template<typename OPTPROBLEM, typename PDE, typename DD,
576  typename SPARSITYPATTERN, typename VECTOR, int dim>
577  template<typename EDC>
578  void
579  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
580  dim>::ElementTimeMatrixExplicit(const EDC& edc,
581  dealii::FullMatrix<double> &local_entry_matrix)
582  {
583  _pde.ElementTimeMatrixExplicit(edc, local_entry_matrix);
584  }
585 
586  /******************************************************/
587 
588  template<typename OPTPROBLEM, typename PDE, typename DD,
589  typename SPARSITYPATTERN, typename VECTOR, int dim>
590  template<typename FDC>
591  void
592  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
593  dim>::FaceMatrix(const FDC& fdc,
594  FullMatrix<double> &local_entry_matrix, double scale,
595  double scale_ico)
596  {
597  _pde.FaceMatrix(fdc, local_entry_matrix, scale, scale_ico);
598  }
599 
600  /******************************************************/
601 
602  template<typename OPTPROBLEM, typename PDE, typename DD,
603  typename SPARSITYPATTERN, typename VECTOR, int dim>
604  template<typename FDC>
605  void
606  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
607  dim>::InterfaceMatrix(const FDC& fdc,
608  FullMatrix<double> &local_entry_matrix, double scale,
609  double scale_ico)
610  {
611  _pde.InterfaceMatrix(fdc, local_entry_matrix, scale, scale_ico);
612  }
613 
614  /******************************************************/
615 
616  template<typename OPTPROBLEM, typename PDE, typename DD,
617  typename SPARSITYPATTERN, typename VECTOR, int dim>
618  template<typename FDC>
619  void
620  StateProblem<OPTPROBLEM, PDE, DD, SPARSITYPATTERN, VECTOR,
621  dim>::BoundaryMatrix(const FDC& fdc,
622  FullMatrix<double> &local_matrix, double scale,
623  double scale_ico)
624  {
625  _pde.BoundaryMatrix(fdc, local_matrix, scale, scale_ico);
626  }
627 
628  /******************************************************/
629 
630  template<typename OPTPROBLEM, typename PDE, typename DD,
631  typename SPARSITYPATTERN, typename VECTOR, int dim>
632  std::string
634  {
635  return "state";
636  }
637 
638  /******************************************************/
639 
640  template<typename OPTPROBLEM, typename PDE, typename DD,
641  typename SPARSITYPATTERN, typename VECTOR, int dim>
642  const SmartPointer<const dealii::FESystem<dim> >
644  {
645  return _opt_problem.GetSpaceTimeHandler()->GetFESystem("state");
646  }
647 
648  /******************************************************/
649  template<typename OPTPROBLEM, typename PDE, typename DD,
650  typename SPARSITYPATTERN, typename VECTOR, int dim>
651  const SmartPointer<const dealii::hp::FECollection<dim> >
653  {
654  return _opt_problem.GetSpaceTimeHandler()->GetFECollection("state");
655  }
656 
657  /******************************************************/
658 
659  template<typename OPTPROBLEM, typename PDE, typename DD,
660  typename SPARSITYPATTERN, typename VECTOR, int dim>
661  UpdateFlags
663  {
664  UpdateFlags r;
665  r = _pde.GetUpdateFlags();
666  return r | update_JxW_values;
667  }
668 
669  /******************************************************/
670 
671  template<typename OPTPROBLEM, typename PDE, typename DD,
672  typename SPARSITYPATTERN, typename VECTOR, int dim>
673  UpdateFlags
675  {
676  UpdateFlags r;
677  r = _pde.GetFaceUpdateFlags();
678  return r | update_JxW_values;
679  }
680 
681  /******************************************************/
682 
683  template<typename OPTPROBLEM, typename PDE, typename DD,
684  typename SPARSITYPATTERN, typename VECTOR, int dim>
685  void
687  double time, const TimeIterator& interval)
688  {
689  _opt_problem.SetTime(time, interval);
690  }
691 
692  /******************************************************/
693 
694  template<typename OPTPROBLEM, typename PDE, typename DD,
695  typename SPARSITYPATTERN, typename VECTOR, int dim>
696  void
698  SPARSITYPATTERN & sparsity) const
699  {
700  _opt_problem.GetSpaceTimeHandler()->ComputeStateSparsityPattern(sparsity);
701  }
702 
703  /******************************************************/
704 
705  template<typename OPTPROBLEM, typename PDE, typename DD,
706  typename SPARSITYPATTERN, typename VECTOR, int dim>
707  void
709  dealii::MGLevelObject<dealii::BlockSparsityPattern> & mg_sparsity_patterns,
710  unsigned int n_levels) const
711  {
712  _opt_problem.GetSpaceTimeHandler()->ComputeMGStateSparsityPattern(mg_sparsity_patterns, n_levels);
713  }
714 
715 /******************************************************/
716 
717  template<typename OPTPROBLEM, typename PDE, typename DD,
718  typename SPARSITYPATTERN, typename VECTOR, int dim>
719  void
721  dealii::MGLevelObject<dealii::SparsityPattern> & mg_sparsity_patterns,
722  unsigned int n_levels) const
723  {
724  _opt_problem.GetSpaceTimeHandler()->ComputeMGStateSparsityPattern(mg_sparsity_patterns, n_levels);
725  }
726 
727 
728 
729  /******************************************************/
730 
731  template<typename OPTPROBLEM, typename PDE, typename DD,
732  typename SPARSITYPATTERN, typename VECTOR, int dim>
733  bool
735  {
736  return _pde.HasFaces();
737  }
738 
739  /******************************************************/
740 
741  template<typename OPTPROBLEM, typename PDE, typename DD,
742  typename SPARSITYPATTERN, typename VECTOR, int dim>
743  bool
745  {
746  return false;//We have no PointRhs in normal stateproblems at the moment.
747  }
748 
749 
750  /******************************************************/
751 
752  template<typename OPTPROBLEM, typename PDE, typename DD,
753  typename SPARSITYPATTERN, typename VECTOR, int dim>
754  bool
756  {
757  return _pde.HasInterfaces();
758  }
759 
760  /******************************************************/
761 
762  template<typename OPTPROBLEM, typename PDE, typename DD,
763  typename SPARSITYPATTERN, typename VECTOR, int dim>
764  const std::vector<unsigned int>&
766  {
767  return _dirichlet_colors;
768  }
769 
770  /******************************************************/
771 
772  template<typename OPTPROBLEM, typename PDE, typename DD,
773  typename SPARSITYPATTERN, typename VECTOR, int dim>
774  const std::vector<bool>&
776  unsigned int color) const
777  {
778  unsigned int comp = _dirichlet_colors.size();
779  for (unsigned int i = 0; i < _dirichlet_colors.size(); ++i)
780  {
781  if (_dirichlet_colors[i] == color)
782  {
783  comp = i;
784  break;
785  }
786  }
787  if (comp == _dirichlet_colors.size())
788  {
789  std::stringstream s;
790  s << "DirichletColor" << color << " has not been found !";
791  throw DOpEException(s.str(), "OptProblem::GetDirichletCompMask");
792  }
793  return _dirichlet_comps[comp];
794  }
795 
796  /******************************************************/
797 
798  template<typename OPTPROBLEM, typename PDE, typename DD,
799  typename SPARSITYPATTERN, typename VECTOR, int dim>
800  const Function<dim>&
802  unsigned int color,
803  const std::map<std::string, const dealii::Vector<double>*> &param_values,
804  const std::map<std::string, const VECTOR*> &domain_values) const
805  {
806  unsigned int col = _dirichlet_colors.size();
807  for (unsigned int i = 0; i < _dirichlet_colors.size(); ++i)
808  {
809  if (_dirichlet_colors[i] == color)
810  {
811  col = i;
812  break;
813  }
814  }
815  if (col == _dirichlet_colors.size())
816  {
817  std::stringstream s;
818  s << "DirichletColor" << color << " has not been found !";
819  throw DOpEException(s.str(), "OptProblem::GetDirichletValues");
820  }
821  _primal_dirichlet_values[col]->ReInit(param_values, domain_values, color);
822  return *(_primal_dirichlet_values[col]);
823  }
824 
825  /******************************************************/
826 
827  template<typename OPTPROBLEM, typename PDE, typename DD,
828  typename SPARSITYPATTERN, typename VECTOR, int dim>
829  const std::vector<unsigned int>&
831  {
832  return _state_boundary_equation_colors;
833  }
834 
835  /******************************************************/
836 
837  template<typename OPTPROBLEM, typename PDE, typename DD,
838  typename SPARSITYPATTERN, typename VECTOR, int dim>
839  const dealii::ConstraintMatrix&
841  {
842  return _opt_problem.GetSpaceTimeHandler()->GetStateDoFConstraints();
843  }
844  template<typename OPTPROBLEM, typename PDE, typename DD,
845  typename SPARSITYPATTERN, typename VECTOR, int dim> const dealii::Function<dim>&
847  {
848  return _opt_problem.GetInitialValues();
849  }
851 }
852 #endif
Definition: stateproblem.h:48
void FaceMatrix(const FDC &fdc, dealii::FullMatrix< double > &local_entry_matrix, double scale=1., double scale_ico=1.)
void InterfaceEquation(const FDC &fdc, dealii::Vector< double > &local_vector, double scale=1., double scale_ico=1.)
Definition: stateproblem.h:476
dealii::UpdateFlags GetFaceUpdateFlags() const
Definition: stateproblem.h:674
void Init_ElementEquation(const EDC &edc, dealii::Vector< double > &local_vector, double scale, double scale_ico)
Definition: stateproblem.h:79
OPTPROBLEM & GetBaseProblem()
Definition: stateproblem.h:396
void ElementTimeEquationExplicit(const EDC &edc, dealii::Vector< double > &local_vector, double scale=1.)
Definition: stateproblem.h:450
void BoundaryEquation(const FDC &fdc, dealii::Vector< double > &local_vector, double scale=1., double scale_ico=1.)
Definition: stateproblem.h:488
StateProblem(OPTPROBLEM &OP, PDE &pde)
Definition: stateproblem.h:51
const dealii::SmartPointer< const dealii::FESystem< dim > > GetFESystem() const
Definition: stateproblem.h:643
Definition: optproblemcontainer.h:70
void Init_PointRhs(const std::map< std::string, const dealii::Vector< double > * > &, const std::map< std::string, const VECTOR * > &, VECTOR &, double)
Definition: stateproblem.h:103
std::string GetName() const
Definition: stateproblem.h:62
const dealii::SmartPointer< const dealii::hp::FECollection< dim > > GetFECollection() const
Definition: stateproblem.h:652
void FaceEquation(const FDC &fdc, dealii::Vector< double > &local_vector, double scale=1., double scale_ico=1.)
Definition: stateproblem.h:463
DOpEOutputHandler< VECTOR > * GetOutputHandler()
Definition: stateproblem.h:391
Definition: timeiterator.h:63
void ElementMatrix(const EDC &edc, dealii::FullMatrix< double > &local_entry_matrix, double scale=1., double scale_ico=1.)
Definition: stateproblem.h:553
void SetTime(double time, const TimeIterator &interval)
Definition: stateproblem.h:686
bool HasInterfaces() const
Definition: stateproblem.h:755
void ElementTimeEquation(const EDC &edc, dealii::Vector< double > &local_vector, double scale=1.)
Definition: stateproblem.h:437
dealii::UpdateFlags GetUpdateFlags() const
Definition: stateproblem.h:662
void Init_ElementRhs(const EDC &edc, dealii::Vector< double > &local_vector, double scale)
Definition: stateproblem.h:92
bool HasFaces() const
Definition: stateproblem.h:734
void InterfaceMatrix(const FDC &fdc, dealii::FullMatrix< double > &local_entry_matrix, double scale=1., double scale_ico=1.)
void BoundaryMatrix(const FDC &fdc, dealii::FullMatrix< double > &local_matrix, double scale=1., double scale_ico=1.)
std::string GetType() const
Definition: stateproblem.h:67
void ElementTimeMatrixExplicit(const EDC &edc, dealii::FullMatrix< double > &local_entry_matrix)
Definition: stateproblem.h:580
void Init_ElementMatrix(const EDC &edc, dealii::FullMatrix< double > &local_entry_matrix, double scale, double scale_ico)
Definition: stateproblem.h:117
void ElementTimeMatrix(const EDC &edc, dealii::FullMatrix< double > &local_entry_matrix)
const dealii::Function< dim > & GetInitialValues() const
Definition: stateproblem.h:846
Definition: dopeexception.h:35