Finite Element Tools¶
DofNumbering¶
-
class DofNumbering¶
Public Functions
-
DofNumbering()¶
-
CMuscatIndex GetSize() const¶
-
bool GetFromConnectivity() const¶
-
void SetFromConnectivity(const bool &val)¶
Compute the numbering for all the shape function for discontinues (not shared shape functions)
- Parameters:
mesh – the mesh to work on
space – the space
elementFilter – the element selection to work on
-
void ComputeNumberingGeneral(Mesh &mesh, const Space &space, ElementFilterBase &elementFilter)¶
-
bool HasNumberingFor(const ElementType elemtype) const¶
-
void InitNumberingFor(const ElementType elemtype, const CMuscatIndex &nbOfElement, const CMuscatIndex &nbOfShapeFuntions)¶
-
MapMatrixIDD &GetNumberingFor(const ElementType elemtype)¶
-
CMuscatIndex GetDofOfkey(const DofKey &key)¶
-
CMuscatIndex GetDofOfPoint(const CMuscatIndex &pid)¶
-
CMuscatIndex GetSizeOfDofToPoint()¶
-
MatrixID1 &GetdoftopointLeft()¶
-
MatrixID1 &GetdoftopointRight()¶
-
void computeDofToPoint()¶
-
CMuscatIndex GetSizeOfDofToCell()¶
-
MatrixID1 &GetdoftocellLeft()¶
-
MatrixID1 &GetdoftocellRight()¶
-
template<typename S>
inline DofKey GetKeyFor(const ElementType elemtype, const CMuscatIndex &elid, const int &sf, const ElementsContainer &data, const DofAttachment &da, const S &elcoon) const¶
-
std::string ToStr() const¶
-
DofNumbering()¶
Integration Rules¶
-
class SpaceIntegrationRule¶
Public Functions
-
inline const IntegrationRule &GetIR(const ElementType &key) const¶
Public Members
-
std::map<ElementType, IntegrationRule> storage¶
-
inline const IntegrationRule &GetIR(const ElementType &key) const¶
-
std::map<std::string, SpaceIntegrationRule> Muscat::IntegrationRulesAlmanac¶
Warning
doxygenfunction: Cannot find function “Muscat::GetPythonDefinedIntegrationRules” in doxygen xml output for project “MuscatCpp” from directory: /home/docs/checkouts/readthedocs.org/user_builds/muscat/checkouts/latest/cmakeBuild/docs/xml/
Finite Element Spaces¶
Warning
doxygenfunction: Cannot find function “Muscat::GetFESpaceFor” in doxygen xml output for project “MuscatCpp” from directory: /home/docs/checkouts/readthedocs.org/user_builds/muscat/checkouts/latest/cmakeBuild/docs/xml/
Warning
doxygenfunction: Cannot find function “Muscat::GetAvailableSpaces” in doxygen xml output for project “MuscatCpp” from directory: /home/docs/checkouts/readthedocs.org/user_builds/muscat/checkouts/latest/cmakeBuild/docs/xml/
Integration¶
-
struct LocalSpace¶
Public Functions
-
DEFINE_SETGET_VECTOR_SHARED_MAP_MatrixDDD(ShapeDerVal, valdphidxi)¶
-
inline void Init(const int &dim, const int &NumberOfShapeFunctions, const int &numberOfIntegrationPoints)¶
-
inline void resize(const int s)¶
-
inline LocalSpace()¶
-
inline MapMatrixDD1 &GetNxNyNz()¶
-
inline MatrixDDD &GetBxByBz()¶
-
DEFINE_SETGET_VECTOR_SHARED_MAP_MatrixDDD(ShapeDerVal, valdphidxi)¶
-
struct MonoElementsIntegralCpp¶
Public Functions
-
DEFINE_SETGET_SHARED_MAP_MatrixIDD(Connectivity, connectivity)¶
-
DEFINE_SETGET_VECTOR_SHARED_MAP_MatrixIDD(LocalNumberings, lnumbering)¶
-
inline void SetLocalOffsets(const int &maxSizeUDof, const std::vector<int> &ludof, const std::vector<int> &luNumberingindex, const int &maxSizeTDof, const std::vector<int> <dof, const std::vector<int> <Numberingindex)¶
-
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)¶
-
template<typename T>
inline void SetSpaceShapeVal(const int spaceNumber, const int integrationPoint, T &pd)¶
-
template<typename T>
inline void SetSpaceShapeDerVal(const int spaceNumber, const int integrationPoint, T &pd)¶
-
inline void SetNumberOfNumberings(int i)¶
-
void SetNumberOfValues(int i)¶
-
void SetNumberOfIPValues(int i)¶
-
void SetNumberOfUnknownFields(const int &n)¶
-
void SetUnknownOffset(const int &n, const int &s)¶
-
void SetTotalUnknownDofs(const int &n)¶
-
void SetNumberOfTestFields(const int &n)¶
-
void SetTotalTestDofs(const int &n)¶
-
void SetTestOffset(const int &n, const int &s)¶
-
void SetNumberOfConstants(const CMuscatIndex &n)¶
-
void SetConstants(const int &n, const CMuscatFloat &val)¶
-
void AllocateWorkingElementVIJ(int size)¶
-
void SetComputeNormal(const bool &val)¶
-
void SetNumberOfIntegrationPoints(const int &n)¶
-
void SetIntegrationPointI(const int &n, const CMuscatFloat &w, const CMuscatFloat &p0, const CMuscatFloat &p1, const CMuscatFloat &p2)¶
Public Members
-
int totalUnknownDofs = {0}¶
-
MatrixID1 unknownDofsOffset¶
-
MatrixID1 unknownDofsNumbering¶
-
MatrixID1 localUnknownDofsOffset¶
-
int maxsizelocalUnknownDofs¶
-
int totalTestDofs = {0}¶
-
MatrixID1 testDofsOffset¶
-
MatrixID1 testDofsNumbering¶
-
MatrixID1 localTestDofsOffset¶
-
int maxsizelocalTestDofs¶
-
MatrixDD1 constants¶
-
MatrixDD1 iw¶
-
MatrixDD3 ip¶
-
int totalvijcpt = {0}¶
-
CMuscatFloat *vK¶
-
CMuscatIndex *iK¶
-
CMuscatIndex *jK¶
-
CMuscatFloat *F¶
-
bool hasnormal = {false}¶
-
bool onlyEvaluation¶
-
bool onlyUpper = {false}¶
-
std::shared_ptr<MapMatrixDDD> nodes¶
-
std::shared_ptr<MapMatrixIDD> connectivity¶
-
int geoSpaceNumber¶
-
std::vector<LocalSpace> lspaces¶
-
std::vector<std::shared_ptr<MapMatrixIDD>> lnumbering¶
-
std::vector<std::shared_ptr<MapMatrixDD1>> values¶
-
std::vector<std::shared_ptr<MapMatrixDDD>> ipvalues¶
-
DEFINE_SETGET_SHARED_MAP_MatrixIDD(Connectivity, connectivity)¶
Weak form classes¶
-
struct WeakTerm¶
Public Functions
-
inline WeakTerm()¶
Public Members
-
std::string fieldName¶
Name (used only to communicate with the user)
-
std::string derCoordName¶
name of the derivative coordinate (only used for print)
-
int derDegree¶
this can be 0 or 1 (1 for first derivative) (if internalType is normal then derDegree determine the normal component to use Normal[0] for example)
-
bool constant¶
True if this weakterm is a constant
-
bool normal¶
True if this is a normal field (in this case derDegree contains the normal component)
-
int spaceIndex_¶
the space used by this variable
-
int derCoordIndex_¶
derivative coordinate if derDegree is 1 (not used here)
-
int numberingIndex_¶
which numbering this variable uses
-
int valuesIndex_¶
<-— for EnumTestField and EnumUnknownField this is the index to the offsets ^-— for EnumConstant the index to the constants vector ^— for EnumExtraField the index to values ^— for EnumExtraIPField the index to the ipvalues */
-
int modeIndex_¶
this is a reserve variable for model reduction integrators
-
int internalType¶
the type of variable
-
inline WeakTerm()¶
Spaces¶
-
struct ElementSpace¶
Finite Element Space for one element.
Public Functions
-
inline ElementSpace()¶
-
inline int GetDimensionality() const¶
-
CMuscatIndex GetNumberOfShapeFunctions() const¶
-
const DofAttachment &GetDofAttachment(const int &dofNumber) const¶
-
void AppendDofAttachment(const char &entity, const int &entityNumber, const int &extraKey)¶
-
const MatrixDD1 GetValOfShapeFunctionsAt(const double phi, const double xi, const double eta) const¶
-
const MatrixDD1 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¶
-
const MatrixDDD GetValOfShapeFunctionsDerDerAt(const CMuscatIndex i, const MatrixDDD &phiXiEta) const¶
-
const MatrixDDD GetValOfShapeFunctionsDerDerAt(const CMuscatIndex i, const double phi, const double xi, const double eta) const¶
Public Members
-
ElementType elementType¶
-
GeoSupport geoSupport¶
-
std::vector<DofAttachment> storage¶
-
MatrixDDD posN¶
-
int dimensionality¶
-
MatrixDD1 (*SFV)(const double, const double, const double)¶
-
MatrixDDD (*SFDV)(const double, const double, const double)¶
-
MatrixDDD (*SFDDV)(const CMuscatIndex i, const double, const double, const double)¶
-
inline ElementSpace()¶
-
class Space¶
Public Functions
-
CMuscatIndex GetNumberOfShapeFunctionsFor(const ElementType elementType) const¶
-
void AddDofTo(const ElementType elementType, const char &entity, const int &entityNumber, const int &extraKey)¶
-
const ElementSpace &GetSpaceFor(const ElementType elementType) const¶
-
void Print()¶
-
std::string ToStr()¶
-
CMuscatIndex GetNumberOfShapeFunctionsFor(const ElementType elementType) const¶
-
class SpaceAtIP¶
-
std::map<ElementType, SpaceAtIP> Muscat::EvaluateSpaceAt(const Space &sp, const SpaceIntegrationRule &sir)¶
-
SpaceAtIP Muscat::EvaluateSpaceAt(const ElementSpace &es, const IntegrationRule &ir)¶