Responsible to build the T columns belonging to inner degrees of freedom in a H1 conforming space with shape functions in tensor product structure. More...
#include <buildH1TColumns.hh>


Public Types | |
| typedef concepts::SpaceHelper < F, SpacePreBuilder > | SpaceHelper |
Public Member Functions | |
| BuildH1InnerTColumns () | |
| Default constructor. | |
| BuildH1InnerTColumns (SpaceHelper &spc) | |
| Constructor. | |
| virtual BuildH1InnerTColumns< F > * | clone (SpaceHelper *spc=0) const |
| virtual BuildTColumnsBase< F, SpacePreBuilder > * | clone (SpaceHelper< F, SpacePreBuilder > *spc=0) const =0 |
| Virtual copy constructor with a twist. | |
| virtual void | operator() (const concepts::Connector2 &cntr, concepts::TColumn< F > *&T1) const |
| Builds the degrees of freedom. | |
| SpacePreBuilder & | prebuild () const |
| Returns the space pre builder. | |
| SpaceHelper< F, SpacePreBuilder > & | spc () const |
| Returns pointer to space helper class. | |
| virtual bool | trunk (uint p, uint q, const ushort P[2]) const |
| Trunk space indicator function. | |
| virtual | ~BuildH1InnerTColumns () |
Protected Member Functions | |
| virtual std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
Protected Attributes | |
| SpaceHelper< F, SpacePreBuilder > * | spc_ |
| Space to build the degrees of freedom from. | |
Responsible to build the T columns belonging to inner degrees of freedom in a H1 conforming space with shape functions in tensor product structure.
A call to the application operator builds the T columns for a given 'member of space' quad. The appropiate polynomial degree are given by a space pre builder class, which is part of a space helper class.
If you want to change the way this is done, derive from this class and overwrite the application operator.
| Space | Degrees of Freedom | Relative Energy Error |
| Full tensor product | 4955 | 1.76e-6 |
| Linear trunk | 2570 | 1.77e-6 |
| Hyperbolic trunk | 1841 | 1.79e-6 |
Definition at line 150 of file buildH1TColumns.hh.
| typedef concepts::SpaceHelper<F, SpacePreBuilder> hp2D::BuildH1InnerTColumns< F >::SpaceHelper |
Reimplemented from hp2D::BuildTColumnsBase< F >.
Reimplemented in hp2D::BuildH1InnerTColumnsLinTrunk< F >, and hp2D::BuildH1InnerTColumnsHypTrunk< F >.
Definition at line 152 of file buildH1TColumns.hh.
| hp2D::BuildH1InnerTColumns< F >::BuildH1InnerTColumns | ( | ) | [inline] |
Default constructor.
Definition at line 154 of file buildH1TColumns.hh.
| hp2D::BuildH1InnerTColumns< F >::BuildH1InnerTColumns | ( | SpaceHelper & | spc | ) | [inline] |
Constructor.
| spc | Space Helper with Space Pre Builder (mesh and distribution of degrees of freedom), boundary condition and the running index |
Definition at line 161 of file buildH1TColumns.hh.
| virtual hp2D::BuildH1InnerTColumns< F >::~BuildH1InnerTColumns | ( | ) | [inline, virtual] |
Definition at line 163 of file buildH1TColumns.hh.
| virtual BuildH1InnerTColumns<F>* hp2D::BuildH1InnerTColumns< F >::clone | ( | SpaceHelper * | spc = 0 | ) | const [virtual] |
Implements hp2D::BuildTColumnsBase< F >.
Reimplemented in hp2D::BuildH1InnerTColumnsLinTrunk< F >, and hp2D::BuildH1InnerTColumnsHypTrunk< F >.
| virtual BuildTColumnsBase<F,SpacePreBuilder >* concepts::BuildTColumnsBase< F, SpacePreBuilder >::clone | ( | SpaceHelper< F, SpacePreBuilder > * | spc = 0 | ) | const [pure virtual, inherited] |
Virtual copy constructor with a twist.
If a copy of a space helper is created, the strategies to build the degrees of freedom of the copy should also reference the copy and not the initial space helper. This is done by giving the argument spc to clone.
| spc | Space helper class to work on for the return value. If set to 0, spc_ is used. |
| virtual std::ostream& hp2D::BuildH1InnerTColumns< F >::info | ( | std::ostream & | os | ) | const [protected, virtual] |
Returns information in an output stream.
Reimplemented from concepts::BuildTColumnsBase< F, SpacePreBuilder >.
Reimplemented in hp2D::BuildH1InnerTColumnsLinTrunk< F >, and hp2D::BuildH1InnerTColumnsHypTrunk< F >.
| virtual void hp2D::BuildH1InnerTColumns< F >::operator() | ( | const concepts::Connector2 & | cntr, |
| concepts::TColumn< F > *& | T1 | ||
| ) | const [virtual] |
Builds the degrees of freedom.
| cntr | Quad which dofs should be considered |
| T1 | New T columns created for the degrees of freedom |
Implements hp2D::BuildTColumnsBase< F >.
| SpacePreBuilder & concepts::BuildTColumnsBase< F, SpacePreBuilder >::prebuild | ( | ) | const [inline, inherited] |
Returns the space pre builder.
| SpaceHelper<F,SpacePreBuilder >& concepts::BuildTColumnsBase< F, SpacePreBuilder >::spc | ( | ) | const [inline, inherited] |
Returns pointer to space helper class.
| virtual bool hp2D::BuildH1InnerTColumns< F >::trunk | ( | uint | p, |
| uint | q, | ||
| const ushort | P[2] | ||
| ) | const [virtual] |
Trunk space indicator function.
For each degree of freedom, this function is called to find out if it should be built or not. If the return value is true, the degree of freedom is built, otherwise it is not.
The default behaviour of this function is to return true. Overwrite it if you want to have a trunk space (e.g. as in BuildInnerDofsLinTrunk).
| p | Polynomial degree in first direction of current degree of freedom |
| q | Polynomial degree in second direction of current degree of freedom |
| P | Maximal polynomial degree in the interior |
Reimplemented in hp2D::BuildH1InnerTColumnsLinTrunk< F >, and hp2D::BuildH1InnerTColumnsHypTrunk< F >.
SpaceHelper<F,SpacePreBuilder >* concepts::BuildTColumnsBase< F, SpacePreBuilder >::spc_ [protected, inherited] |
Space to build the degrees of freedom from.
Definition at line 266 of file spacePreBuilder.hh.