MFEM  v4.6.0
Finite element discretization library
Public Member Functions | Protected Attributes | List of all members
mfem::Coefficient Class Referenceabstract

Base class Coefficients that optionally depend on space and time. These are used by the BilinearFormIntegrator, LinearFormIntegrator, and NonlinearFormIntegrator classes to represent the physical coefficients in the PDEs that are being discretized. This class can also be used in a more general way to represent functions that don't necessarily belong to a FE space, e.g., to project onto GridFunctions to use as initial conditions, exact solutions, etc. See, e.g., ex4 or ex22 for these uses. More...

#include <coefficient.hpp>

Inheritance diagram for mfem::Coefficient:
[legend]

Public Member Functions

 Coefficient ()
 
virtual void SetTime (double t)
 Set the time for time dependent coefficients. More...
 
double GetTime ()
 Get the time for time dependent coefficients. More...
 
virtual double Eval (ElementTransformation &T, const IntegrationPoint &ip)=0
 Evaluate the coefficient in the element described by T at the point ip. More...
 
double Eval (ElementTransformation &T, const IntegrationPoint &ip, double t)
 Evaluate the coefficient in the element described by T at the point ip at time t. More...
 
virtual void Project (QuadratureFunction &qf)
 Fill the QuadratureFunction qf by evaluating the coefficient at the quadrature points. More...
 
virtual ~Coefficient ()
 

Protected Attributes

double time
 

Detailed Description

Base class Coefficients that optionally depend on space and time. These are used by the BilinearFormIntegrator, LinearFormIntegrator, and NonlinearFormIntegrator classes to represent the physical coefficients in the PDEs that are being discretized. This class can also be used in a more general way to represent functions that don't necessarily belong to a FE space, e.g., to project onto GridFunctions to use as initial conditions, exact solutions, etc. See, e.g., ex4 or ex22 for these uses.

Definition at line 41 of file coefficient.hpp.

Constructor & Destructor Documentation

◆ Coefficient()

mfem::Coefficient::Coefficient ( )
inline

Definition at line 47 of file coefficient.hpp.

◆ ~Coefficient()

virtual mfem::Coefficient::~Coefficient ( )
inlinevirtual

Definition at line 79 of file coefficient.hpp.

Member Function Documentation

◆ Eval() [1/2]

virtual double mfem::Coefficient::Eval ( ElementTransformation T,
const IntegrationPoint ip 
)
pure virtual

Evaluate the coefficient in the element described by T at the point ip.

Note
When this method is called, the caller must make sure that the IntegrationPoint associated with T is the same as ip. This can be achieved by calling T.SetIntPoint(&ip).

Implemented in mfem::QuadratureFunctionCoefficient, mfem::DeterminantCoefficient, mfem::VectorRotProductCoefficient, mfem::InnerProductCoefficient, mfem::PowerCoefficient, mfem::RatioCoefficient, mfem::ProductCoefficient, mfem::SumCoefficient, mfem::DivergenceGridFunctionCoefficient, mfem::ExtrudeCoefficient, mfem::RestrictedCoefficient, mfem::DeltaCoefficient, mfem::TransformedCoefficient, mfem::GridFunctionCoefficient, mfem::SphericalPolarCoefficient, mfem::SphericalAzimuthalCoefficient, mfem::SphericalRadialCoefficient, mfem::CylindricalAzimuthalCoefficient, mfem::CylindricalRadialCoefficient, mfem::CartesianCoefficient, mfem::FunctionCoefficient, mfem::electromagnetics::JouleHeatingCoefficient, mfem::PWCoefficient, Combo_Level_Set_Coefficient, mfem::NormalGradComponentCoeff, mfem::common::PProductCoefficient, Dist_Level_Set_Coefficient, mfem::StrainEnergyDensityCoefficient, mfem::NormalGradCoeff, mfem::PWConstCoefficient, mfem::GradComponentCoeff, mfem::SIMPInterpolationCoefficient, mfem::ConstantCoefficient, mfem::DiffMappedGridFunctionCoefficient, mfem::PmlCoefficient, mfem::electromagnetics::ScaledGFCoefficient, mfem::electromagnetics::MeshDependentCoefficient, mfem::MappedGridFunctionCoefficient, and mfem::ShiftedFunctionCoefficient.

◆ Eval() [2/2]

double mfem::Coefficient::Eval ( ElementTransformation T,
const IntegrationPoint ip,
double  t 
)
inline

Evaluate the coefficient in the element described by T at the point ip at time t.

Note
When this method is called, the caller must make sure that the IntegrationPoint associated with T is the same as ip. This can be achieved by calling T.SetIntPoint(&ip).

Definition at line 68 of file coefficient.hpp.

◆ GetTime()

double mfem::Coefficient::GetTime ( )
inline

Get the time for time dependent coefficients.

Definition at line 53 of file coefficient.hpp.

◆ Project()

void mfem::Coefficient::Project ( QuadratureFunction qf)
virtual

Fill the QuadratureFunction qf by evaluating the coefficient at the quadrature points.

Reimplemented in mfem::QuadratureFunctionCoefficient, mfem::GridFunctionCoefficient, and mfem::ConstantCoefficient.

Definition at line 51 of file coefficient.cpp.

◆ SetTime()

virtual void mfem::Coefficient::SetTime ( double  t)
inlinevirtual

Member Data Documentation

◆ time

double mfem::Coefficient::time
protected

Definition at line 44 of file coefficient.hpp.


The documentation for this class was generated from the following files: