Skip to main content

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 flag
  • opt - Options for one-dimensional basis functions
  • coeff - Coefficients necessary for Lagrange interpolation
  • xij - Interpolation points for Lagrange polynomial

Summary of methods

Constructor Methods

  • Initiate(param) - Initialize from parameter list
  • Initiate(baseContinuity, baseInterpolation, ...) - Initialize from individual parameters
  • Copy(obj2) - Initialize by copying from another instance
  • CheckEssentialParam(param) - Check for essential parameters in parameter list
  • DEALLOCATE() - Free resources used by the object

I/O Methods

  • Display(msg, unitno, notFull) - Display the content of the object
  • MdEncode() - Return a markdown representation of the object
  • ReactEncode() - Return a React component representation of the object

Set Methods

  • SetParam(order, fetype, ipType, ...) - Set various parameters of the element
  • SetOrder(order) - Change the order of an already initialized element

Get Methods

  • GetPrefix() - Abstract method that returns a prefix string for the element type
  • GetLocalElemShapeData(elemsd, quad) - Get local element shape functions and derivatives
  • GetGlobalElemShapeData(elemsd, xij, geoelemsd) - Get global element shape functions
  • GetParam(order, fetype, ...) - Get various parameters from the element

Quadrature Methods

  • GetQuadraturePoints(quad, quadratureType, ...) - Generate quadrature points for integration

All methods