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

#include <RadiationDiffusionModel.h>

Inheritance diagram for AMP::Operator::Mousseau_etal_2000_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.
 
double initialCondition (size_t component, const AMP::Mesh::Point &point) const override
 Initial condition of PDE at the given point.
 
 Mousseau_etal_2000_RadDifModel (std::shared_ptr< AMP::Database > basic_db_, std::shared_ptr< AMP::Database > mspecific_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 ~Mousseau_etal_2000_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

void finalizeGeneralPDEModel_db () override
 

Detailed Description

In particular:

  1. The source term is zero
  2. There is a specific initial condition
  3. There are specific boundary conditions (see below)

The boundary conditions are below, along with the calculations showing how they fit into the general RadDifModel considered above.

For the 1D problem:

(58) at x=0: 1/4*E - 1/6*sigma * dE/dx = 1 -> a1 = 0.25, b1 = 0.5, r1 = 1 (59) at x=1: 1/4*E + 1/6*sigma * dE/dx = 0 -> a2 = 0.25, b2 = 0.5, r2 = 0 at x=0: dT/dx = 0: -> n1 = 0 at x=1: dT/dx = 0: -> n2 = 0

For the 2D problem:

(61) == (58) at x=0: -> a1 = 0.25, b1 = 0.5, r1 = 1 (62) == (59) at x=1: -> a2 = 0.25, b2 = 0.5, r2 = 0 (63.1) at y = 0: dE/dy = 0 -> a3 = 0, b3 = anything nonzero, r3 = 0 (63.2) at y = 1: dE/dy = 0 -> a4 = 0, b4 = anything nonzero, r4 = 0

(64) at y=0: dT/dy = 0: -> n3 = 0 at y=1: dT/dy = 0: -> n4 = 0 (65) at x=0: dT/dx = 0: -> n1 = 0 at x=1: dT/dx = 0: -> n2 = 0

In working out the above constants, note that the energy diffusion flux is D_E = 1/3*sigma, so that 1/6*sigma = 0.5*D_E The incoming mspecific_db should have the two parameters: z – atomic number k – coefficient in the temperature diffusion flux

See: Physics-Based Preconditioning and the Newton–Krylov Method for Non-equilibrium Radiation Diffusion, V. A. Mousseau, D. A. Knoll, and W. J. Rider, Journal of Computational Physics 160, 743–765 (2000)

Definition at line 159 of file RadiationDiffusionModel.h.

Constructor & Destructor Documentation

◆ Mousseau_etal_2000_RadDifModel()

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

◆ ~Mousseau_etal_2000_RadDifModel()

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

Definition at line 167 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()

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

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

Reimplemented in AMP::Operator::Manufactured_RadDifModel.

◆ exactSolutionAvailable()

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

Does the derived class implement an exact solution?

◆ finalizeGeneralPDEModel_db()

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

◆ getCurrentTime()

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

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
inherited

Get database suitable for creating an instance of a RadDifOp.

◆ initialCondition()

double AMP::Operator::Mousseau_etal_2000_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::Mousseau_etal_2000_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.

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_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.


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