AbstractOneDimFE
AbstractOneDimFE_ is an abstract data type that provides a base for one-dimensional finite elements.
AbstractOneDimFE_Class is a module that defines the abstract base class for one-dimensional finite elements in the EASIFEM library. It provides the foundation for implementing various types of one-dimensional elements with different basis functions, interpolation schemes, and continuity requirements.
The module contains:
- The abstract
AbstractOneDimFE_class - A pointer wrapper type
AbstractOneDimFEPointer_ - Various interfaces for element construction, manipulation, and analysis
Key Features
- Supports various basis function types (Lagrange, Hierarchical, Orthogonal, etc.)
- Handles different interpolation schemes
- Provides quadrature rules for numerical integration
- Supports various continuity requirements (H1, HDiv, HCurl, DG)
- Manages local and global element shape functions
Structure
AbstractOneDimFE_ is an abstract class that serves as the foundation for all one-dimensional finite element implementations in the EASIFEM library. It defines common attributes and methods that all specific one-dimensional elements must implement or inherit.
A finite element is defined by
- Reference element
- Polynomials space
- Degree of freedoms
TYPE, ABSTRACT :: AbstractOneDimFE_
PRIVATE
LOGICAL(LGT) :: isInitiated = .FALSE.
!! It is set to true at the time of constructor
TYPE(OneDimBasisOpt_) :: opt
REAL(DFP), ALLOCATABLE :: coeff(:, :)
!! coefficient necessary for lagrange interpolation
REAL(DFP), ALLOCATABLE :: xij(:, :)
!! interpolation points for lagrange polynomial
!! coeff, and xij are needed internally for
!! constructing the lagrange polynomial
end type AbstractOneDimFE_
isInitiated- Initialization status flagopt- Options for one-dimensional basis functionscoeff- Coefficients necessary for Lagrange interpolationxij- Interpolation points for Lagrange polynomial
Summary of methods
Constructor Methods
Initiate(param)- Initialize from parameter listInitiate(baseContinuity, baseInterpolation, ...)- Initialize from individual parametersCopy(obj2)- Initialize by copying from another instanceCheckEssentialParam(param)- Check for essential parameters in parameter listDEALLOCATE()- Free resources used by the object
I/O Methods
Display(msg, unitno, notFull)- Display the content of the objectMdEncode()- Return a markdown representation of the objectReactEncode()- Return a React component representation of the object
Set Methods
SetParam(order, fetype, ipType, ...)- Set various parameters of the elementSetOrder(order)- Change the order of an already initialized element
Get Methods
GetPrefix()- Abstract method that returns a prefix string for the element typeGetLocalElemShapeData(elemsd, quad)- Get local element shape functions and derivativesGetGlobalElemShapeData(elemsd, xij, geoelemsd)- Get global element shape functionsGetParam(order, fetype, ...)- Get various parameters from the element
Quadrature Methods
GetQuadraturePoints(quad, quadratureType, ...)- Generate quadrature points for integration
All methods
📄️ Structure
AbstractOneDimFE_ is an abstract class that serves as the foundation for all one-dimensional finite element implementations in the EASIFEM library. It defines common attributes and methods that all specific one-dimensional elements must implement or inherit.
📄️ AbstractOneDimFECheckEssentialParam
Checks if all required parameters are present in the parameter list before element initialization.
📄️ Copy
Initiates an instance of the finite element by copying from another instance.
📄️ Deallocate
Deallocates memory associated with an AbstractOneDimFE_ object.
📄️ Display
Displays the content of an AbstractOneDimFE_ object.
📄️ GetGlobalElemShapeData
Computes global element shape functions and their derivatives using the geometry of the physical element.
📄️ GetLocalElemShapeData
Computes local element shape functions and their derivatives at quadrature points.
📄️ GetParam
Retrieves various parameters from an AbstractOneDimFE_ object.
📄️ GetQuadraturePoints
Generates quadrature points and weights for numerical integration on the one-dimensional element.
📄️ Initiate
Initiates an instance of the finite element either from a parameter list or from direct parameters.
📄️ SetAbstractFEParam
Set the parameters necessary for initiating an AbstractOneDimFE_ or any of its children.
📄️ SetAbstractOneDimFEParam
Sets the parameters for initiating abstract finite element.
📄️ SetOrder
Changes the order of an already initialized AbstractOneDimFE_ object and reallocates internal data as needed.
📄️ SetParam
Sets various parameters of an AbstractOneDimFE_ object.