Finite Element Tools

DofNumbering

class DofNumbering

Public Functions

DofNumbering()
CBasicIndexType GetSize() const
bool GetFromConnectivity() const
void SetFromConnectivity(const bool &val)
void ComputeNumberingFromConnectivity(UnstructuredMesh &mesh)
void ComputeNumberingGeneral(UnstructuredMesh &mesh, const Space &space, ElementFilterBase &elementFilter)
bool HasNumberingFor(const std::string &elemtype) const
void InitNumberingFor(const std::string &elemtype, const CBasicIndexType &nbOfElement, const CBasicIndexType &nbOfShapeFuntions)
MatrixIDD &GetNumberingFor(const std::string &elemtype)
CBasicIndexType GetDofOfkey(const DofKey &key)
CBasicIndexType GetDofOfPoint(const CBasicIndexType &pid)
CBasicIndexType GetSizeOfDofToPoint()
MatrixID1 &GetdoftopointLeft()
MatrixID1 &GetdoftopointRight()
void computeDofToPoint()
void computeDofToCell(UnstructuredMesh &mesh)
CBasicIndexType GetSizeOfDofToCell()
MatrixID1 &GetdoftocellLeft()
MatrixID1 &GetdoftocellRight()
template<typename S>
inline DofKey GetKeyFor(const std::string &elemtype, const CBasicIndexType &elid, const int &sf, const ElementsContainer &data, const DofAttachment &da, const S &elcoon) const
std::string ToStr()

Integration Rules

class IntegrationRule

Public Functions

inline CBasicIndexType GetNumberOfPoints() const

Public Members

MatrixDDD p
MatrixDDD w
class SpaceIntegrationRule

Public Functions

inline const IntegrationRule &GetIR(const std::string &key) const

Public Members

std::map<std::string, IntegrationRule> storage
std::map<std::string, SpaceIntegrationRule> BasicTools::IntegrationRulesAlmanac

Warning

doxygenfunction: Cannot find function “BasicTools::GetPythonDefinedIntegrationRules” in doxygen xml output for project “BasicToolsCpp” from directory: ./xml/

Finite Element Spaces

Warning

doxygenfunction: Cannot find function “BasicTools::GetSpaceFor” in doxygen xml output for project “BasicToolsCpp” from directory: ./xml/

Warning

doxygenfunction: Cannot find function “BasicTools::GetAvailableSpaces” in doxygen xml output for project “BasicToolsCpp” from directory: ./xml/

Integration

Warning

doxygenfunction: Cannot find function “BasicTools::solve” in doxygen xml output for project “BasicToolsCpp” from directory: ./xml/

Warning

doxygenfunction: Cannot find function “BasicTools::solve” in doxygen xml output for project “BasicToolsCpp” from directory: ./xml/

struct LocalSpace

Public Functions

inline void Init(const int &dim, const int &NumberOfShapeFunctions, const int &numberOfIntegrationPoints)
inline void resize(int &s)
inline void SetvalNI(const int &integrationPoint, CBasicFloatType *pd)
inline void RelseaseData()
inline LocalSpace()
inline ~LocalSpace()
inline void SetvaldphidxiI(const int &integrationPoint, CBasicFloatType *pd)
inline MapMatrixDDD &GetNxNyNz()
inline MatrixDDD &GetBxByBz()
template<typename T>
inline void SetActiveIntegrationPoint(const int &ip, T &Jinv)

Public Members

int dimensionality
int numberOfShapeFunctions
int numberOfIntegrationPoints
int activeIntegrationPoint
std::vector<MapMatrixDDD*> valN
std::vector<MapMatrixDDD*> valdphidxi
MatrixDDD BxByBz
struct MonoElementsIntegralCpp

Public Functions

MonoElementsIntegralCpp()
~MonoElementsIntegralCpp()
inline void SetLocalOffsets(const int &maxSizeUDof, const std::vector<int> &ludof, const std::vector<int> &luNumberingindex, const int &maxSizeTDof, const std::vector<int> &ltdof, const std::vector<int> &ltNumberingindex)
inline void Reset()
inline void SetGeoSpace(const int &i)
inline void SetNumberOfSpaces(const int &i)
inline void InitSpaceS(const int &s, const int &dim, const int &NumberOfShapeFunctions, const int &numberOfIntegrationPoints)
inline void SetSpaceSvalNI(const int &spaceNumber, const int &integrationPoint, CBasicFloatType *pd)
inline void SetSpaceSvaldphidxiI(const int &spaceNumber, const int &integrationPoint, CBasicFloatType *pd)
inline void SetNumberOfNumberings(int i)
inline void SetNumberingI(int i, int n, int m, CBasicIndexType *ip)
void SetNumberOfValues(int i)
void SetValueI(int i, int n, int m, CBasicFloatType *dp)
void SetNumberOfIPValues(int i)
void SetIPValueI(int i, int n, int m, CBasicFloatType *dp)
void SetNumberOfUnkownFields(const int &n)
void SetUnkownOffset(const int &n, const int &s)
void SetTotalUnkownDofs(const int &n)
void SetNumberOfTestFields(const int &n)
void SetTotalTestDofs(const int &n)
void SetTestOffset(const int &n, const int &s)
void SetNumberOfConstants(const CBasicIndexType &n)
void SetConstants(const int &n, const CBasicFloatType &val)
void AllocateWorkingElementVIJ(int size)
void SetComputeNormal(const bool &val)
void SetNumberOfIntegrationPoints(const int &n)
void SetIntegrationPointI(const int &n, const CBasicFloatType &w, const CBasicFloatType &p0, const CBasicFloatType &p1, const CBasicFloatType &p2)
void SetPoints(CBasicFloatType *pd, const int &rows, const int &columns)
void SetConnectivity(const CBasicIndexType *pd, const int &rows, const int &columns)
void ProcessWeakForm(WeakForm *wform)
void Integrate(WeakForm *wform, const CBasicIndexType &size, const CBasicIndexType *pidstotreat)
template<unsigned int SpaceDim, unsigned int ElementDim>
void IntegrateSpaceDimElementDim(WeakForm *wform, const CBasicIndexType &idstotreat_s, const CBasicIndexType *pidstotreat)

Public Members

int totalUnkownDofs
MatrixID1 unkownDofsOffset
MatrixID1 unkownDofsNumbering
MatrixID1 localUnkownDofsOffset
int maxsizelocalUnkownDofs
int totalTestDofs
MatrixID1 testDofsOffset
MatrixID1 testDofsNumbering
MatrixID1 localTestDofsOffset
int maxsizelocalTestDofs
MatrixDD1 constants
MatrixDD1 iw
MatrixDD3 ip
int totalvijcpt
CBasicFloatType *vK
CBasicIndexType *iK
CBasicIndexType *jK
CBasicFloatType *F
bool hasnormal
bool onlyEvaluation
bool onlyUpper
MapMatrixDDD *nodes
MapConstMatrixIDD *connectivity
int geoSpaceNumber
std::vector<LocalSpace> lspaces
std::vector<MapMatrixIDD*> lnumbering
std::vector<MapMatrixDD1*> values
std::vector<MapMatrixDDD*> ipvalues

Weak form classes

struct WeakTerm

Public Members

std::string fieldName = {"None"}
std::string derCoordName = {"None"}
int derDegree = {0}
bool constant = {false}
bool normal = {false}
int spaceIndex_
int derCoordIndex_
int numberingIndex_
int valuesIndex_
int modeIndex_
int internalType
struct WeakMonom

Public Members

double prefactor = {1.0}
std::vector<WeakTerm> prod
struct WeakForm

Public Functions

inline CBasicIndexType GetNumberOfTerms() const

Public Members

std::vector<WeakMonom> form

Spaces

struct ElementSpace

Public Functions

inline ElementSpace()
inline int GetDimensionality() const
CBasicIndexType GetNumberOfShapeFunctions() const
const DofAttachment &GetDofAttachment(const int &dofNumber) const
void AppendDofAttachment(const char &entity, const int &entityNumber, const int &extraKey)
const MatrixDDD GetValOfShapeFunctionsAt(const double phi, const double xi, const double eta) const
const MatrixDDD GetValOfShapeFunctionsAt(const MatrixDDD &phiXiEta) const
const MatrixDDD GetValOfShapeFunctionsDerAt(const double phi, const double xi, const double eta) const
const MatrixDDD GetValOfShapeFunctionsDerAt(const MatrixDDD &phiXiEta) const

Public Members

std::string elementType
GeoSupport geoSupport
std::vector<DofAttachment> storage
MatrixDDD posN
int dimensionality
MatrixDDD (*SFV)(const double, const double, const double)
MatrixDDD (*SFDV)(const double, const double, const double)
class Space

Public Functions

CBasicIndexType GetNumberOfShapeFunctionsFor(const std::string &elementType) const
void AddDofTo(const std::string &elementType, const char &entity, const int &entityNumber, const int &extraKey)
const ElementSpace &GetSpaceFor(const std::string &elementType) const
void Print()
std::string ToStr()

Public Members

std::string name
std::map<std::string, ElementSpace> storage
class SpaceAtIP

Public Members

std::vector<MatrixDDD> SFV
std::vector<MatrixDDD> SFDV
std::map<std::string, SpaceAtIP> BasicTools::EvaluateSpaceAt(const Space &sp, const SpaceIntegrationRule &sir)
SpaceAtIP BasicTools::EvaluateSpaceAt(const ElementSpace &es, const IntegrationRule &ir)