linearFEM::Linear1d Class Referenceabstract
Space for linear FEM in 1D. More...
#include <space1D.hh>
Public Types | |
typedef concepts::Scan< Line > | Scan |
typedef Scan< Element< Real > > | Scanner |
typedef void(* | SMap) (const concepts::TColumn< Real > &, concepts::TColumn< Real > &) |
typedef Element< Real > | type |
Public Member Functions | |
virtual uint | dim () const |
virtual uint | dim () const=0 |
Returns the dimension of the space. More... | |
virtual uint | getOutputDimension () const |
Returns the default output dimension, when we consider plotting a real-valued operator on this space. More... | |
Linear1d (concepts::Mesh1 &msh, uint level, concepts::BoundaryConditions *bc=0) | |
Constructor. More... | |
virtual uint | nelm () const |
virtual uint | nelm () const=0 |
Returns the number of elements in the space. More... | |
virtual Scan * | scan () const |
virtual Scanner * | scan () const=0 |
Returns a scanner to iterate over the elements of the space. More... | |
virtual | ~Linear1d () |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Private Member Functions | |
void | constructor_ (concepts::Cell1 &cell, uint level, concepts::DynArray< uint > &dofMap, const concepts::DynArray< uint > &bcMap) |
Assigns the degrees of freedom and creates elements. More... | |
void | enforceBC_ (concepts::Cell1 &cell, uint level, concepts::DynArray< uint > &bcMap) |
Notes where Dirichlet boundary conditions have to be enforced. More... | |
Private Attributes | |
concepts::BoundaryConditions * | bc_ |
Boundary conditions. More... | |
uint | dim_ |
Number of degrees of freedom. More... | |
concepts::Joiner< Line *, 1 > * | elm_ |
List of elements. More... | |
concepts::Mesh1 & | msh_ |
Mesh which this space is based on. More... | |
uint | nelm_ |
Number of elements. More... | |
Detailed Description
Space for linear FEM in 1D.
- Examples
- linearFEM1d-simple.cc, and linearFEM1d.cc.
Definition at line 39 of file space1D.hh.
Member Typedef Documentation
◆ Scan
typedef concepts::Scan<Line> linearFEM::Linear1d::Scan |
Definition at line 41 of file space1D.hh.
◆ Scanner
|
inherited |
◆ SMap
typedef void(* linearFEM::Linear1d::SMap) (const concepts::TColumn< Real > &, concepts::TColumn< Real > &) |
Definition at line 42 of file space1D.hh.
◆ type
|
inherited |
Constructor & Destructor Documentation
◆ Linear1d()
linearFEM::Linear1d::Linear1d | ( | concepts::Mesh1 & | msh, |
uint | level, | ||
concepts::BoundaryConditions * | bc = 0 |
||
) |
Constructor.
Recursively calls enforceBC_
and constructor_
- Parameters
-
msh Mesh level Number levels for initial refinement bc Boundary conditions
◆ ~Linear1d()
|
virtual |
Member Function Documentation
◆ constructor_()
|
private |
Assigns the degrees of freedom and creates elements.
The numbers of the degrees of freedom is stored in dofMap
.
constructor_
is called recursively until level
is 0. On this level, the degrees of freedom are assigned and the elements are created and stored in elm_
.
- Parameters
-
cell Current cell level Number of levels left to desired level dofMap Stores assigned dof for the vertices bcMap Stores boundary condition flag for each vertex
◆ dim() [1/2]
|
inlinevirtual |
Definition at line 52 of file space1D.hh.
◆ dim() [2/2]
|
pure virtualinherited |
Returns the dimension of the space.
Implemented in concepts::SpaceOnCells< Real >, concepts::DummySpace< Real >, hp2D::hpAdaptiveSpace< Real >, hp3D::Space, hp2Dedge::Space, hp2D::Space, hp2D::hpAdaptiveSpace< Real >, and hp1D::Space.
◆ enforceBC_()
|
private |
Notes where Dirichlet boundary conditions have to be enforced.
This information is stored in bcMap
.
enforceBC_
is called recursively until level
is 0. On this level, the boundary conditions are checked.
- Parameters
-
cell Current cell level Number of levels left to desired level bcMap Stores boundary condition flag for each vertex
◆ getOutputDimension()
|
inlinevirtualinherited |
◆ info()
|
protectedvirtual |
Reimplemented from concepts::Space< Real >.
◆ nelm() [1/2]
|
inlinevirtual |
Definition at line 53 of file space1D.hh.
◆ nelm() [2/2]
|
pure virtualinherited |
Returns the number of elements in the space.
Implemented in concepts::SpaceOnCells< Real >, concepts::DummySpace< Real >, hp2D::hpAdaptiveSpace< Real >, hp3D::Space, hp2Dedge::Space, hp2D::Space, hp2D::hpAdaptiveSpace< Real >, and hp1D::Space.
◆ scan() [1/2]
|
inlinevirtual |
Definition at line 54 of file space1D.hh.
◆ scan() [2/2]
|
pure virtualinherited |
Returns a scanner to iterate over the elements of the space.
Implemented in concepts::SpaceOnCells< Real >, concepts::DummySpace< Real >, hp2D::hpAdaptiveSpace< Real >, hp3D::Space, hp2Dedge::Space, hp2D::Space, hp2D::hpAdaptiveSpace< Real >, and hp1D::Space.
Member Data Documentation
◆ bc_
|
private |
Boundary conditions.
Definition at line 65 of file space1D.hh.
◆ dim_
|
private |
Number of degrees of freedom.
Definition at line 59 of file space1D.hh.
◆ elm_
|
private |
List of elements.
Definition at line 67 of file space1D.hh.
◆ msh_
|
private |
Mesh which this space is based on.
Definition at line 63 of file space1D.hh.
◆ nelm_
|
private |
Number of elements.
Definition at line 61 of file space1D.hh.
The documentation for this class was generated from the following file:
- linearFEM/space1D.hh