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

#include <RadiationDiffusionModel.h>

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

Public Member Functions

virtual double exactSolution (size_t component, const AMP::Mesh::Point &point) const
 Exact solution of PDE for given component at the given point.
 
bool exactSolutionAvailable () const
 Does the derived class implement an exact solution?
 
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.
 
virtual double initialCondition (size_t component, const AMP::Mesh::Point &point) const =0
 Initial condition of PDE at the given point.
 
 RadDifModel (std::shared_ptr< AMP::Database > basic_db_, std::shared_ptr< AMP::Database > mspecific_db_)
 Constructor.
 
void setCurrentTime (double currentTime_)
 Set current time of class.
 
virtual double sourceTerm (size_t component, const AMP::Mesh::Point &point) const =0
 Solution-independent source term in PDE at the given point.
 
virtual ~RadDifModel ()
 Destructor.
 

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.
 
virtual void finalizeGeneralPDEModel_db ()=0
 
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.
 

Detailed Description

-----------------------------------------------------— *

— Class representing a Radiation diffusion equation — *

Abstract base class representing the radiation-diffusion equation that's spatially discretized by the class RadiationDiffusionFD.

The class should be initialized with two databases:

  1. A basic PDE database, basic_db. This includes: "dim", "print_info_level".
  2. A model-specific database, mspecific_db. This should include any and all parameters that when combined with basic_db provides sufficient context for the derived class to create a RadiationDiffusionFD_input_db, which is a database suitable for creating an instance of a RadiationDiffusionFD.

The RadiationDiffusionFD_input_db database is obtained via getRadiationDiffusionFD_input_db()

Derived classes can provide additional functionality such as providing exact solutions to the PDE.

Definition at line 33 of file RadiationDiffusionModel.h.

Constructor & Destructor Documentation

◆ RadDifModel()

AMP::Operator::RadDifModel::RadDifModel ( std::shared_ptr< AMP::Database basic_db_,
std::shared_ptr< AMP::Database mspecific_db_ 
)

Constructor.

◆ ~RadDifModel()

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

Destructor.

Definition at line 46 of file RadiationDiffusionModel.h.

Member Function Documentation

◆ diffusionCoefficientE()

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

Energy diffusion coefficient D_E given temperature T.

◆ exactSolution()

virtual double AMP::Operator::RadDifModel::exactSolution ( size_t  component,
const AMP::Mesh::Point point 
) const
virtual

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

Reimplemented in AMP::Operator::Manufactured_RadDifModel.

◆ exactSolutionAvailable()

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

Does the derived class implement an exact solution?

◆ finalizeGeneralPDEModel_db()

virtual void AMP::Operator::RadDifModel::finalizeGeneralPDEModel_db ( )
protectedpure virtual

◆ getCurrentTime()

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

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

◆ getRadiationDiffusionFD_input_db()

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

Get database suitable for creating an instance of a RadDifOp.

◆ initialCondition()

virtual double AMP::Operator::RadDifModel::initialCondition ( size_t  component,
const AMP::Mesh::Point point 
) const
pure virtual

Initial condition of PDE at the given point.

Implemented in AMP::Operator::Mousseau_etal_2000_RadDifModel, and AMP::Operator::Manufactured_RadDifModel.

◆ setCurrentTime()

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

Set current time of class.

◆ setMemberPDEConstants()

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

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

◆ sourceTerm()

virtual double AMP::Operator::RadDifModel::sourceTerm ( size_t  component,
const AMP::Mesh::Point point 
) const
pure virtual

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

Implemented in AMP::Operator::Mousseau_etal_2000_RadDifModel, and AMP::Operator::Manufactured_RadDifModel.

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 }
protected

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
protected

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 }
protected

Definition at line 80 of file RadiationDiffusionModel.h.

◆ d_currentTime

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

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
protected

Shorthand for spatial dimension.

Definition at line 89 of file RadiationDiffusionModel.h.

◆ d_exactSolutionAvailable

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

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
protected

Constant scaling factors in the PDE.

Definition at line 72 of file RadiationDiffusionModel.h.

◆ d_k12

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

Definition at line 73 of file RadiationDiffusionModel.h.

◆ d_k21

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

Definition at line 74 of file RadiationDiffusionModel.h.

◆ d_k22

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

Definition at line 75 of file RadiationDiffusionModel.h.

◆ d_mspecific_db

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

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
protected

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
protected

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

Definition at line 101 of file RadiationDiffusionModel.h.

◆ d_zatom

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

Atomic number; assumed constant.

Definition at line 83 of file RadiationDiffusionModel.h.

◆ IsNonlinear

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

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.


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