|
NGSolve
4.9
|
Base class for finite element space. More...
#include <fespace.hpp>
Public Member Functions | |
| FESpace (const MeshAccess &ama, const Flags &flags, bool checkflags=false) | |
| Constructor. | |
| virtual void | Update (LocalHeap &lh) |
| update dof-tables, old style | |
| virtual void | FinalizeUpdate (LocalHeap &lh) |
| update element coloring | |
| int | GetLevelUpdated () const |
| highest level where update/finalize was called | |
| const Table< int > & | ElementColoring () const |
| virtual void | PrintReport (ostream &ost) |
| print report to stream | |
| int | GetOrder () const |
| order of finite elements | |
| int | GetDimension () const |
| how many components | |
| bool | IsComplex () const |
| complex space ? | |
| virtual int | GetNDof () const =0 |
| number of dofs of process | |
| virtual int | GetNDofLevel (int level) const |
| number of dofs on the level | |
| const FiniteElement & | GetFE (int elnr, bool boundary, LocalHeap &lh) const |
| returns finite element. | |
| virtual const FiniteElement & | GetFE (int elnr, LocalHeap &lh) const |
| returns finite element. | |
| virtual void | GetDofNrs (int elnr, Array< int > &dnums) const =0 |
| get dof-nrs of the element | |
| void | GetDofNrs (int elnr, bool boundary, Array< int > &dnums) const |
| get dof-nrs of domain or boundary element elnr | |
| virtual void | GetDofCouplingTypes (int elnr, Array< COUPLING_TYPE > &dnums) const |
| get coupling types of dofs | |
| virtual COUPLING_TYPE | GetDofCouplingType (int dof) const |
| get coupling types of dof | |
| void | GetDofNrs (int elnr, Array< int > &dnums, COUPLING_TYPE ctype) const |
| get dof-nrs of the element of certain coupling type | |
| virtual void | GetNodeDofNrs (NODE_TYPE nt, int nr, Array< int > &dnums) const |
| get dofs on nr'th node of type nt. | |
| virtual void | GetVertexDofNrs (int vnr, Array< int > &dnums) const |
| get number of low-order dofs for node of type nt | |
| virtual void | GetEdgeDofNrs (int ednr, Array< int > &dnums) const |
| get dofs on edge enr | |
| virtual void | GetFaceDofNrs (int fanr, Array< int > &dnums) const |
| get dofs on face fnr | |
| virtual void | GetInnerDofNrs (int elnr, Array< int > &dnums) const |
| get dofs on element (=cell) elnr | |
| virtual bool | UsesDGCoupling () const |
| virtual const FiniteElement & | GetSFE (int selnr, LocalHeap &lh) const |
| returns surface element for boundary interals | |
| virtual void | GetSDofNrs (int selnr, Array< int > &dnums) const =0 |
| returns dofs of sourface element | |
| bool | DefinedOn (int domnr) const |
| is the FESpace defined for this sub-domain nr ? | |
| bool | DefinedOnBoundary (int bnr) const |
| is the FESpace defined for this boundary nr ? | |
| void | SetDefinedOn (const BitArray &defon) |
| void | SetDefinedOnBoundary (const BitArray &defon) |
| void | SetDirichletBoundaries (const BitArray &dirbnds) |
| const FiniteElement & | GetFE (ELEMENT_TYPE type) const |
| Get reference element for tet, prism, trig, etc .. | |
| FESpace & | LowOrderFESpace () |
| according low-order FESpace (if available) | |
| const FESpace & | LowOrderFESpace () const |
| according low-order FESpace (if available) | |
| void | SetLowOrderSpace (bool los) |
| bool | IsLowOrderSpace () const |
| virtual const BitArray * | GetFreeDofs (bool external=false) const |
| non Dirichlet dofs | |
| bool | IsDirichletDof (int i) const |
| bool | IsDirichletBoundary (int i) const |
| bool | IsDirichletVertex (int i) const |
| is vertex on Dirichlet boundary ? | |
| bool | IsDirichletEdge (int i) const |
| is edge on Dirichlet boundary ? | |
| bool | IsDirichletFace (int i) const |
| is face on Dirichlet boundary ? | |
| void | GetFilteredDofs (COUPLING_TYPE doffilter, BitArray &output, bool freedofsonly=true) const |
| virtual Table< int > * | CreateSmoothingBlocks (const Flags &flags) const |
| virtual Array< int > * | CreateDirectSolverClusters (const Flags &flags) const |
| for anisotropic plane smoothing: | |
| virtual void | AddDirectSolverClusterDof (int dn) const |
| virtual Array< int > & | DirectVertexClusters (void) |
| virtual Array< int > & | DirectEdgeClusters (void) |
| virtual Array< int > & | DirectFaceClusters (void) |
| virtual Array< int > & | DirectElementClusters (void) |
| void | TransformMat (int elnr, bool boundary, const SliceMatrix< double > &mat, TRANSFORM_TYPE type) const |
| void | TransformMat (int elnr, bool boundary, const SliceMatrix< Complex > &mat, TRANSFORM_TYPE type) const |
| void | TransformVec (int elnr, bool boundary, const FlatVector< double > &vec, TRANSFORM_TYPE type) const |
| void | TransformVec (int elnr, bool boundary, const FlatVector< Complex > &vec, TRANSFORM_TYPE type) const |
| template<int S, class T > | |
| void | TransformVec (int elnr, bool boundary, const FlatVector< Vec< S, T > > &vec, TRANSFORM_TYPE type) const |
| virtual void | VTransformMR (int elnr, bool boundary, const SliceMatrix< double > &mat, TRANSFORM_TYPE type) const |
| virtual void | VTransformMC (int elnr, bool boundary, const SliceMatrix< Complex > &mat, TRANSFORM_TYPE type) const |
| virtual void | VTransformVR (int elnr, bool boundary, const FlatVector< double > &vec, TRANSFORM_TYPE type) const |
| virtual void | VTransformVC (int elnr, bool boundary, const FlatVector< Complex > &vec, TRANSFORM_TYPE type) const |
| virtual const ngmg::Prolongation * | GetProlongation () const |
| Returns multigrid-prolongation. | |
| const DifferentialOperator * | GetEvaluator (bool boundary=false) const |
| Set multigrid prolongation. | |
| const BilinearFormIntegrator * | GetIntegrator (bool boundary=false) const |
| returns function-evaluator | |
| const DifferentialOperator * | GetBoundaryEvaluator () const |
| returns function-evaluator for boundary values | |
| const BilinearFormIntegrator * | GetBoundaryIntegrator () const |
| void | AppendSpecialElement (SpecialElement *spel) |
| const Array< SpecialElement * > & | GetSpecialElements () const |
| ParallelDofs & | GetParallelDofs () const |
| virtual void | UpdateParallelDofs () |
| bool | IsParallel () const |
| int | GetNDofGlobal () const |
| ndof over all mpi-partitions | |
| virtual int | GetRelOrder () const |
| virtual bool | VarOrder () const |
| void | Timing () const |
Public Attributes | |
| Array< SpecialElement * > | specialelements |
| special elements for hacks (used for contact, periodic-boundary-penalty-constraints, ... | |
| bool | timing |
Protected Attributes | |
| int | order |
| order of finite elements | |
| int | dimension |
| how many components | |
| bool | iscomplex |
| complex space | |
| bool | dgjumps |
| couple (all) neighbouring degrees of freedom (like for jump terms of dg-methods)? | |
| bool | |
| debug output to testout | |
| ngmg::Prolongation * | prol |
| prolongation operators between multigrid levels | |
| int | level_updated |
| highest multigrid-level for which Update was called (memory allocation) | |
| Array< int > | definedon |
| on which subdomains is the space defined ? | |
| Array< int > | definedonbound |
| on which boundaries is the space defined ? | |
| BitArray | dirichlet_boundaries |
| prototype: what are the Dirichlet boundaries ? | |
| BitArray | dirichlet_dofs |
| dofs on Dirichlet boundary | |
| BitArray | free_dofs |
| BitArray | external_free_dofs |
| Array< bool > | dirichlet_vertex |
| Array< bool > | dirichlet_edge |
| Array< bool > | dirichlet_face |
| FiniteElement * | tet |
| Reference - element (low order only) | |
| FiniteElement * | prism |
| Reference - element (low order only) | |
| FiniteElement * | pyramid |
| Reference - element (low order only) | |
| FiniteElement * | hex |
| Reference - element (low order only) | |
| FiniteElement * | trig |
| Reference - element (low order only) | |
| FiniteElement * | quad |
| Reference - element (low order only) | |
| FiniteElement * | segm |
| Reference - element (low order only) | |
| FiniteElement * | point |
| Reference - element (low order only) | |
| DifferentialOperator * | evaluator |
| Evaluator for visualization (future style) | |
| DifferentialOperator * | boundary_evaluator |
| Evaluator for visualization of boundary data. | |
| BilinearFormIntegrator * | integrator |
| Evaluator for visualization (old style) | |
| BilinearFormIntegrator * | boundary_integrator |
| Evaluator for visualization of boundary data. | |
| FESpace * | low_order_space |
| if non-zero, pointer to low order space | |
| bool | is_low_order_space |
| Array< bool > | directsolverclustered |
| if directsolverclustered[i] is true, then the unknowns of domain i are clustered | |
| Array< string > | directsolvermaterials |
| Array< int > | adddirectsolverdofs |
| Array< int > | directvertexclusters |
| Array< int > | directedgeclusters |
| Array< int > | directfaceclusters |
| Array< int > | directelementclusters |
| Table< int > * | element_coloring |
| Array< COUPLING_TYPE > | ctofdof |
| ParallelDofs * | paralleldofs |
Base class for finite element space.
Provides finite elements, global degrees of freedom, and transformations of element-matrices and element-vectors
| ngcomp::FESpace::FESpace | ( | const MeshAccess & | ama, |
| const Flags & | flags, | ||
| bool | checkflags = false |
||
| ) |
Constructor.
Used flags are: \ -order=<int>: finite element order \ -dim=<int>: number of components \ -complex: complex space \ -dirichlet=<int-list>: dirichlet boundaries, 1-based \
| const DifferentialOperator* ngcomp::FESpace::GetEvaluator | ( | bool | boundary = false | ) | const [inline] |
Set multigrid prolongation.
returns function-evaluator
| virtual void ngcomp::FESpace::GetVertexDofNrs | ( | int | vnr, |
| Array< int > & | dnums | ||
| ) | const [virtual] |
get number of low-order dofs for node of type nt
get dofs on vertex vnr
Reimplemented in ngcomp::CompoundFESpace, ngcomp::ElementFESpace, ngcomp::NodalFESpace, ngcomp::NedelecFESpace2, ngcomp::L2SurfaceHighOrderFESpace, ngcomp::NedelecFESpace, ngcomp::HCurlHighOrderFESpace, ngcomp::FacetFESpace, ngcomp::HDivHighOrderFESpace, ngcomp::VectorFacetFESpace, ngcomp::H1HighOrderFESpace, and ngcomp::L2HighOrderFESpace.
| virtual void ngcomp::FESpace::Update | ( | LocalHeap & | lh | ) | [virtual] |
update dof-tables, old style
update dof-table
Reimplemented in ngcomp::CompoundFESpace, ngcomp::SurfaceElementFESpace, ngcomp::ElementFESpace, ngcomp::NonconformingFESpace, ngcomp::NodalFESpace, ngcomp::NedelecFESpace2, ngcomp::L2SurfaceHighOrderFESpace, ngcomp::HCurlHighOrderFESpace, ngcomp::HDivHighOrderFESpace, ngcomp::H1HighOrderFESpace, ngcomp::FacetFESpace, ngcomp::VectorFacetFESpace, ngcomp::L2HighOrderFESpace, ngcomp::NedelecFESpace, and ngcomp::RaviartThomasFESpace.
1.7.6.1