Advanced Multi-Physics (AMP)
On-Line Documentation
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
AMP::Operator::Manufactured_RadDifModel Class Referencefinal

#include <RadiationDiffusionModel.h>

Inheritance diagram for AMP::Operator::Manufactured_RadDifModel:
Inheritance graph
[legend]

Public Member Functions

double exactSolution (size_t component, const AMP::Mesh::Point &point) const override
 Exact solution of PDE for given component at the given point.
 
bool exactSolutionAvailable () const
 Does the derived class implement an exact solution?
 
double getBoundaryFunctionValueE (size_t boundaryID, const AMP::Mesh::Point &point) const
 
double getBoundaryFunctionValueT (size_t boundaryID, const AMP::Mesh::Point &point) const
 
double getCurrentTime () const
 Get current time of class (e.g., as may be used in sourceTerm)
 
std::shared_ptr< AMP::DatabasegetRadiationDiffusionFD_input_db () const
 Get database suitable for creating an instance of a RadDifOp.
 
double initialCondition (size_t component, const AMP::Mesh::Point &point) const override
 Initial condition of PDE at the given point.
 
 Manufactured_RadDifModel (std::shared_ptr< AMP::Database > basic_db_, std::shared_ptr< AMP::Database > specific_db_)
 
void setCurrentTime (double currentTime_)
 Set current time of class.
 
double sourceTerm (size_t component, const AMP::Mesh::Point &point) const override
 Solution-independent source term in PDE at the given point.
 
virtual ~Manufactured_RadDifModel ()
 

Static Public Attributes

static constexpr bool IsNonlinear = AMP::Operator::RadDifCoefficients::IsNonlinear
 

Protected Member Functions

double diffusionCoefficientE (double T, double zatom) const
 Energy diffusion coefficient D_E given temperature T.
 
void setMemberPDEConstants ()
 

Protected Attributes

std::array< double, 6 > d_ak { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }
 
std::shared_ptr< AMP::Databased_basic_db
 Basic parameter database (with model-agnostic parameters)
 
std::array< double, 6 > d_bk { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }
 
double d_currentTime = 0.0
 The current time of the solution.
 
size_t d_dim = (size_t) -1
 Shorthand for spatial dimension.
 
bool d_exactSolutionAvailable = false
 Does the derived class implement an exact solution?
 
double d_k11 = 0
 Constant scaling factors in the PDE.
 
double d_k12 = 0
 
double d_k21 = 0
 
double d_k22 = 0
 
std::shared_ptr< AMP::Databased_mspecific_db
 Parameters specific to a model.
 
std::shared_ptr< AMP::Databased_RadiationDiffusionFD_input_db = nullptr
 Database of parameters required to create an instance of a RadiationDiffusionFD.
 
bool d_RadiationDiffusionFD_input_db_completed = false
 Flag derived classes must overwrite indicating they have constructed the above database.
 
double d_zatom = 1.0
 Atomic number; assumed constant.
 

Private Member Functions

double exactSolution1D (size_t component, double x) const
 
double exactSolution2D (size_t component, double x, double y) const
 
double exactSolution3D (size_t component, double x, double y, double z) const
 
double exactSolutionGradient (size_t component, const AMP::Mesh::Point &point, size_t gradComponent) const
 Dimension-agnostic wrapper around exactSolutionGradient_ functions.
 
double exactSolutionGradient1D (size_t component, double x) const
 
double exactSolutionGradient2D (size_t component, double x, double y, size_t gradComponent) const
 
double exactSolutionGradient3D (size_t component, double x, double y, double z, size_t gradComponent) const
 
void finalizeGeneralPDEModel_db () override
 
void getNormalVector (size_t boundaryID, size_t &normalComponent, double &normalSign) const
 Get component and sign of normal vector given the boundaryID.
 
double sourceTerm1D (size_t component, double x) const
 
double sourceTerm2D (size_t component, double x, double y) const
 
double sourceTerm3D (size_t component, double x, double y, double z) const
 

Private Attributes

bool d_settingInitialCondition = false
 

Static Private Attributes

static constexpr double kE0 = 2.0
 
static constexpr double kT = 1.7
 
static constexpr double kX = 1.5
 
static constexpr double kXPhi = 0.245
 
static constexpr double kY = 3.5
 
static constexpr double kYPhi = 0.784
 
static constexpr double kZ = 2.5
 
static constexpr double kZPhi = 0.154
 

Detailed Description

In particular:

  1. An initial condition is provided
  2. An exact solution is provided
  3. A corresponding source term is provided
  4. Function handles for the corresponding E Robin values rk, and the T pseudo Neumann values nk are provided which accept the boundary id and spatial location on the boundary. (The manufactured solution is not constant along along any boundary)

Definition at line 190 of file RadiationDiffusionModel.h.

Constructor & Destructor Documentation

◆ Manufactured_RadDifModel()

AMP::Operator::Manufactured_RadDifModel::Manufactured_RadDifModel ( std::shared_ptr< AMP::Database basic_db_,
std::shared_ptr< AMP::Database specific_db_ 
)

◆ ~Manufactured_RadDifModel()

virtual AMP::Operator::Manufactured_RadDifModel::~Manufactured_RadDifModel ( )
inlinevirtual

Definition at line 209 of file RadiationDiffusionModel.h.

Member Function Documentation

◆ diffusionCoefficientE()

double AMP::Operator::RadDifModel::diffusionCoefficientE ( double  T,
double  zatom 
) const
protectedinherited

Energy diffusion coefficient D_E given temperature T.

◆ exactSolution()

double AMP::Operator::Manufactured_RadDifModel::exactSolution ( size_t  component,
const AMP::Mesh::Point point 
) const
overridevirtual

Exact solution of PDE for given component at the given point.

Reimplemented from AMP::Operator::RadDifModel.

◆ exactSolution1D()

double AMP::Operator::Manufactured_RadDifModel::exactSolution1D ( size_t  component,
double  x 
) const
private

◆ exactSolution2D()

double AMP::Operator::Manufactured_RadDifModel::exactSolution2D ( size_t  component,
double  x,
double  y 
) const
private

◆ exactSolution3D()

double AMP::Operator::Manufactured_RadDifModel::exactSolution3D ( size_t  component,
double  x,
double  y,
double  z 
) const
private

◆ exactSolutionAvailable()

bool AMP::Operator::RadDifModel::exactSolutionAvailable ( ) const
inherited

Does the derived class implement an exact solution?

◆ exactSolutionGradient()

double AMP::Operator::Manufactured_RadDifModel::exactSolutionGradient ( size_t  component,
const AMP::Mesh::Point point,
size_t  gradComponent 
) const
private

Dimension-agnostic wrapper around exactSolutionGradient_ functions.

◆ exactSolutionGradient1D()

double AMP::Operator::Manufactured_RadDifModel::exactSolutionGradient1D ( size_t  component,
double  x 
) const
private

◆ exactSolutionGradient2D()

double AMP::Operator::Manufactured_RadDifModel::exactSolutionGradient2D ( size_t  component,
double  x,
double  y,
size_t  gradComponent 
) const
private

◆ exactSolutionGradient3D()

double AMP::Operator::Manufactured_RadDifModel::exactSolutionGradient3D ( size_t  component,
double  x,
double  y,
double  z,
size_t  gradComponent 
) const
private

◆ finalizeGeneralPDEModel_db()

void AMP::Operator::Manufactured_RadDifModel::finalizeGeneralPDEModel_db ( )
overrideprivatevirtual

◆ getBoundaryFunctionValueE()

double AMP::Operator::Manufactured_RadDifModel::getBoundaryFunctionValueE ( size_t  boundaryID,
const AMP::Mesh::Point point 
) const

Return the value of the LHS of the Robin boundary equation on E. That is, ak*E + bk*k11*D_E * hat{nk}*grad(E)

Parameters
[in]boundaryIDID of the boundary
[in]pointpoint on the boundary where the expression is to be evaluated.
Note
there is no redundancy here despite the boundaryID being specified because this class does not know where a given boundary is located in space.

◆ getBoundaryFunctionValueT()

double AMP::Operator::Manufactured_RadDifModel::getBoundaryFunctionValueT ( size_t  boundaryID,
const AMP::Mesh::Point point 
) const

Return the value of the LHS of the pseudo Neumann boundary equation on T. That is, hat{nk}*grad(T)

Parameters
[in]boundaryIDID of the boundary
[in]pointpoint on the boundary where the expression is to be evaluated.
Note
there is no redundancy here despite the boundaryID being specified because this class does not know where a given boundary is located in space.

◆ getCurrentTime()

double AMP::Operator::RadDifModel::getCurrentTime ( ) const
inherited

Get current time of class (e.g., as may be used in sourceTerm)

◆ getNormalVector()

void AMP::Operator::Manufactured_RadDifModel::getNormalVector ( size_t  boundaryID,
size_t &  normalComponent,
double &  normalSign 
) const
private

Get component and sign of normal vector given the boundaryID.

◆ getRadiationDiffusionFD_input_db()

std::shared_ptr< AMP::Database > AMP::Operator::RadDifModel::getRadiationDiffusionFD_input_db ( ) const
inherited

Get database suitable for creating an instance of a RadDifOp.

◆ initialCondition()

double AMP::Operator::Manufactured_RadDifModel::initialCondition ( size_t  component,
const AMP::Mesh::Point point 
) const
overridevirtual

Initial condition of PDE at the given point.

Implements AMP::Operator::RadDifModel.

◆ setCurrentTime()

void AMP::Operator::RadDifModel::setCurrentTime ( double  currentTime_)
inherited

Set current time of class.

◆ setMemberPDEConstants()

void AMP::Operator::RadDifModel::setMemberPDEConstants ( )
protectedinherited

Set PDE constants in base class based on those in the finalized db d_RadiationDiffusionFD_input_db

◆ sourceTerm()

double AMP::Operator::Manufactured_RadDifModel::sourceTerm ( size_t  component,
const AMP::Mesh::Point point 
) const
overridevirtual

Solution-independent source term in PDE at the given point.

Implements AMP::Operator::RadDifModel.

◆ sourceTerm1D()

double AMP::Operator::Manufactured_RadDifModel::sourceTerm1D ( size_t  component,
double  x 
) const
private

◆ sourceTerm2D()

double AMP::Operator::Manufactured_RadDifModel::sourceTerm2D ( size_t  component,
double  x,
double  y 
) const
private

◆ sourceTerm3D()

double AMP::Operator::Manufactured_RadDifModel::sourceTerm3D ( size_t  component,
double  x,
double  y,
double  z 
) const
private

Member Data Documentation

◆ d_ak

std::array<double, 6> AMP::Operator::RadDifModel::d_ak { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }
protectedinherited

Constants in boundary conditions from incoming db. The constant for a given boundaryID is in index boundaryID-1

Definition at line 79 of file RadiationDiffusionModel.h.

◆ d_basic_db

std::shared_ptr<AMP::Database> AMP::Operator::RadDifModel::d_basic_db
protectedinherited

Basic parameter database (with model-agnostic parameters)

Definition at line 92 of file RadiationDiffusionModel.h.

◆ d_bk

std::array<double, 6> AMP::Operator::RadDifModel::d_bk { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }
protectedinherited

Definition at line 80 of file RadiationDiffusionModel.h.

◆ d_currentTime

double AMP::Operator::RadDifModel::d_currentTime = 0.0
protectedinherited

The current time of the solution.

Definition at line 86 of file RadiationDiffusionModel.h.

◆ d_dim

size_t AMP::Operator::RadDifModel::d_dim = (size_t) -1
protectedinherited

Shorthand for spatial dimension.

Definition at line 89 of file RadiationDiffusionModel.h.

◆ d_exactSolutionAvailable

bool AMP::Operator::RadDifModel::d_exactSolutionAvailable = false
protectedinherited

Does the derived class implement an exact solution?

Definition at line 104 of file RadiationDiffusionModel.h.

◆ d_k11

double AMP::Operator::RadDifModel::d_k11 = 0
protectedinherited

Constant scaling factors in the PDE.

Definition at line 72 of file RadiationDiffusionModel.h.

◆ d_k12

double AMP::Operator::RadDifModel::d_k12 = 0
protectedinherited

Definition at line 73 of file RadiationDiffusionModel.h.

◆ d_k21

double AMP::Operator::RadDifModel::d_k21 = 0
protectedinherited

Definition at line 74 of file RadiationDiffusionModel.h.

◆ d_k22

double AMP::Operator::RadDifModel::d_k22 = 0
protectedinherited

Definition at line 75 of file RadiationDiffusionModel.h.

◆ d_mspecific_db

std::shared_ptr<AMP::Database> AMP::Operator::RadDifModel::d_mspecific_db
protectedinherited

Parameters specific to a model.

Definition at line 95 of file RadiationDiffusionModel.h.

◆ d_RadiationDiffusionFD_input_db

std::shared_ptr<AMP::Database> AMP::Operator::RadDifModel::d_RadiationDiffusionFD_input_db = nullptr
protectedinherited

Database of parameters required to create an instance of a RadiationDiffusionFD.

Definition at line 98 of file RadiationDiffusionModel.h.

◆ d_RadiationDiffusionFD_input_db_completed

bool AMP::Operator::RadDifModel::d_RadiationDiffusionFD_input_db_completed = false
protectedinherited

Flag derived classes must overwrite indicating they have constructed the above database.

Definition at line 101 of file RadiationDiffusionModel.h.

◆ d_settingInitialCondition

bool AMP::Operator::Manufactured_RadDifModel::d_settingInitialCondition = false
mutableprivate

Definition at line 240 of file RadiationDiffusionModel.h.

◆ d_zatom

double AMP::Operator::RadDifModel::d_zatom = 1.0
protectedinherited

Atomic number; assumed constant.

Definition at line 83 of file RadiationDiffusionModel.h.

◆ IsNonlinear

constexpr bool AMP::Operator::RadDifModel::IsNonlinear = AMP::Operator::RadDifCoefficients::IsNonlinear
staticconstexprinherited

Flag indicating whether nonlinear or linear PDE coefficients are used. This value of this constant is inherited from the RadDifCoefficients class

Definition at line 39 of file RadiationDiffusionModel.h.

◆ kE0

constexpr double AMP::Operator::Manufactured_RadDifModel::kE0 = 2.0
staticconstexprprivate

Definition at line 195 of file RadiationDiffusionModel.h.

◆ kT

constexpr double AMP::Operator::Manufactured_RadDifModel::kT = 1.7
staticconstexprprivate

Definition at line 196 of file RadiationDiffusionModel.h.

◆ kX

constexpr double AMP::Operator::Manufactured_RadDifModel::kX = 1.5
staticconstexprprivate

Definition at line 197 of file RadiationDiffusionModel.h.

◆ kXPhi

constexpr double AMP::Operator::Manufactured_RadDifModel::kXPhi = 0.245
staticconstexprprivate

Definition at line 198 of file RadiationDiffusionModel.h.

◆ kY

constexpr double AMP::Operator::Manufactured_RadDifModel::kY = 3.5
staticconstexprprivate

Definition at line 199 of file RadiationDiffusionModel.h.

◆ kYPhi

constexpr double AMP::Operator::Manufactured_RadDifModel::kYPhi = 0.784
staticconstexprprivate

Definition at line 200 of file RadiationDiffusionModel.h.

◆ kZ

constexpr double AMP::Operator::Manufactured_RadDifModel::kZ = 2.5
staticconstexprprivate

Definition at line 201 of file RadiationDiffusionModel.h.

◆ kZPhi

constexpr double AMP::Operator::Manufactured_RadDifModel::kZPhi = 0.154
staticconstexprprivate

Definition at line 202 of file RadiationDiffusionModel.h.


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



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:44.
Comments on this page