baseQuadGraphics.hh

Go to the documentation of this file.
1 
6 #ifndef baseQuadGraphics_hh
7 #define baseQuadGraphics_hh
8 
9 #include "basics/typedefs.hh"
10 #include "graphics/basis.hh"
12 #include "graphics/matrixBasis.hh"
13 #include "space/function.hh"
15 
16 namespace hp2D {
17 
18  using concepts::Real;
19  using concepts::Cmplx;
20 
21  // Forward declaration
22  template<class F>
23  class BaseQuad;
24 
25  // ****************************************************** BaseQuadGraphics **
26 
31  template<class F>
33  public:
35 
39 
40  virtual void operator()(const concepts::Element<F>& elm,
42  concepts::CellPostprocess<F>& post) const;
43 
47  protected:
48  virtual std::ostream& info(std::ostream& os) const;
49  private:
51  void writeGnuplot_(const BaseQuad<F>& quad,
52  concepts::CellPostprocess<F>& post) const;
54  void writeMatlab_(const BaseQuad<F>& quad,
55  concepts::CellPostprocess<F>& post) const;
57  template<typename G>
58  bool writeMatlab_(const BaseQuad<F>& quad,
59  graphics::BaseDataCell<G, F>* stream) const;
61  template<typename G>
62  bool writeMatlab_(const BaseQuad<F>& quad,
65  void writeTecplot_(const BaseQuad<F>& quad,
66  concepts::CellPostprocess<F>& post) const;
68  template<typename G>
69  bool writeTecplot_(const BaseQuad<F>& quad,
70  graphics::BaseDataCell<G, F>* stream) const;
72  template<typename G>
73  bool writeTecplot_(const BaseQuad<F>& quad,
75 
79  bool handleDenseMatrix_(const BaseQuad<F>& quad,
80  concepts::CellPostprocess<F>& post) const;
81 
85  bool writeDenseMatrix_(const BaseQuad<F>& quad,
87 
91  template<class G>
92  bool writeDenseMatrix_(const BaseQuad<F>& quad,
94 
98  template<class G>
99  bool writeDenseMatrix_(const BaseQuad<F>& quad,
101 
103  bool countDenseMatrix_(const BaseQuad<F>& quad,
104  graphics::MatrixCounterCell* bdc) const;
105 
113 
118  };
119 
120 } // namespace hp2D
121 
122 #endif // baseQuadGraphics_hh
bool writeTecplot_(const BaseQuad< F > &quad, graphics::BaseDataCell< G, F > *stream) const
Tecplot output of FEM solution.
Handles graphics output (to a file) of a specific element.
Definition: element.hh:16
bool writeMatlab_(const BaseQuad< F > &quad, graphics::BaseDataCell< G, F > *stream) const
Matlab output of FEM solution.
Class for writing the values of the solution of a PDE on the quadrature points of the space in a Dens...
Definition: matrixBasis.hh:331
An abstract class for an element of a space.
Definition: exceptions.hh:15
void value_(const concepts::ElementFunction< Cmplx, F > *&fun) const
bool writeMatlab_(const BaseQuad< F > &quad, graphics::BaseElementFormulaCell< G, F > *stream) const
Matlab output of an element formula.
bool handleDenseMatrix_(const BaseQuad< F > &quad, concepts::CellPostprocess< F > &post) const
Handle and casts different CellPostProcesses to Cell post processes that store quad informations in m...
Class that collects information about the mesh/space it iterates over, that are used for MatrixBasisO...
Definition: matrixBasis.hh:33
virtual std::ostream & info(std::ostream &os) const
2D hp-FEM for H1-conforming elements.
virtual void operator()(const concepts::Element< F > &elm, enum concepts::ElementGraphicsBase::graphicsType type, concepts::CellPostprocess< F > &post) const
Class for writing the graphical output of a FE solution represented by a coefficient vector (and poss...
Definition: basis.hh:140
bool writeDenseMatrix_(const BaseQuad< F > &quad, graphics::MatrixSolutionEvaluationCell< G, F > *bdc) const
Writes values from a FEM Solution on the quadrature points of the quad into an ElementMatrix.
bool countDenseMatrix_(const BaseQuad< F > &quad, graphics::MatrixCounterCell *bdc) const
Count the number of nodes, edges and quads in the mesh.
Class that collects graphical informations about a given space in a set of ElementMatrices.
Definition: matrixBasis.hh:160
bool writeDenseMatrix_(const BaseQuad< F > &quad, graphics::MatrixBaseElementFormulaCell< G, F > *bdc) const
Writes values from an ElementFormula on the quadrature points of the quad into an ElementMatrix.
const concepts::ElementFunction< Cmplx, F > * valueC_
Complex element function of the value itself.
Writes element formula for a cell to the given streams.
Definition: basis.hh:186
void writeTecplot_(const BaseQuad< F > &quad, concepts::CellPostprocess< F > &post) const
Tecplot output, calls the right method dependent from cell post process.
void writeGnuplot_(const BaseQuad< F > &quad, concepts::CellPostprocess< F > &post) const
Gnuplot output of data.
std::complex< Real > Cmplx
Type for a complex number. It also depends on the setting of Real.
Definition: typedefs.hh:39
bool writeDenseMatrix_(const BaseQuad< F > &quad, graphics::MatrixSpaceOutputCell< F > *bdc) const
Writes geometric informations, attributes and quadrature weights of the quad into an ElementMatrix.
const concepts::ElementFunction< Real, F > * valueR_
Real element function of the value itself.
void setValue(const concepts::ElementFunction< Cmplx, F > *value)
BaseQuadGraphics()
Constructor.
A base of a 2D quad FEM element for different basis functions.
Class for writing the graphical output of an element formula to ElementMatrices.
Definition: matrixBasis.hh:259
void setValue(const concepts::ElementFunction< Real, F > *value)
Gives the appropiate element function.
concepts::Real2d p_
Local coordinates in [0,1]^2 (intermediate data)
void writeMatlab_(const BaseQuad< F > &quad, concepts::CellPostprocess< F > &post) const
Matlab output, calls the right method dependent from cell post process.
void value_(const concepts::ElementFunction< Real, F > *&fun) const
Returns a pointer to the appropiate element function of the value.
Base class for handling graphics for 2D hp quadrilateral FEM elements.
Abstract class for per cell postprocessing.
Definition: postProcess.hh:38
concepts::Real2d x_
Actual coordinates (intermediate data)
double Real
Type normally used for a floating point number.
Definition: typedefs.hh:36
bool writeTecplot_(const BaseQuad< F > &quad, graphics::BaseElementFormulaCell< G, F > *stream) const
Tecplot output of an element formula.
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich