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

#include <DiffusionCylindricalTransportModel.h>

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

Public Member Functions

 DiffusionCylindricalTransportModel (std::shared_ptr< const DiffusionTransportTensorModelParameters > params)
 
std::shared_ptr< AMP::Materials::MaterialgetMaterial ()
 
std::shared_ptr< AMP::Materials::PropertygetProperty ()
 
virtual void getTensorTransport (AMP::Array< std::shared_ptr< std::vector< double > > > &result, std::map< std::string, std::shared_ptr< std::vector< double > > > &args, const std::vector< libMesh::Point > &Coordinates=d_DummyCoords) override
 transport model returning a vector of tensors for cylindrical symmetry
 
virtual void getTransport (std::vector< double > &result, std::map< std::string, std::shared_ptr< std::vector< double > > > &args, const std::vector< libMesh::Point > &Coordinates=d_DummyCoords)
 
virtual void globalReset ()
 
bool isaTensor ()
 
virtual void nonlinearInitGaussPointOperation ()
 
virtual void nonlinearJacobianGaussPointOperation (const double *)
 
virtual void nonlinearResetGaussPointOperation (const double *)
 
virtual void postLinearAssembly ()
 
virtual void postLinearElementOperation ()
 
virtual void postLinearGaussPointOperation ()
 
virtual void postNonlinearAssembly ()
 
virtual void postNonlinearAssemblyElementOperation ()
 
virtual void postNonlinearAssemblyGaussPointOperation ()
 
virtual void postNonlinearInitElementOperation ()
 
virtual void postNonlinearJacobian ()
 
virtual void postNonlinearJacobianElementOperation ()
 
virtual void postNonlinearJacobianGaussPointOperation ()
 
virtual void postNonlinearReset ()
 
virtual void postNonlinearResetElementOperation ()
 
virtual void postNonlinearResetGaussPointOperation ()
 
virtual void preLinearAssembly ()
 
virtual void preLinearElementOperation ()
 
virtual void preLinearGaussPointOperation ()
 
virtual void preNonlinearAssembly ()
 
virtual void preNonlinearAssemblyElementOperation ()
 
virtual void preNonlinearAssemblyGaussPointOperation ()
 
virtual void preNonlinearInitElementOperation ()
 
virtual void preNonlinearJacobian ()
 
virtual void preNonlinearJacobianElementOperation ()
 
virtual void preNonlinearJacobianGaussPointOperation ()
 
virtual void preNonlinearReset ()
 
virtual void preNonlinearResetElementOperation ()
 
virtual void preNonlinearResetGaussPointOperation ()
 
virtual void setDebugPrintInfoLevel (int print_level)
 

Static Public Member Functions

static void bilogScale (std::vector< double > &u, const double a, const double b)
 
static std::shared_ptr< std::vector< double > > bilogTransform (const std::vector< double > &u, const double a, const double b)
 

Protected Attributes

double d_BilogEpsilonRangeLimit
 
std::array< double, 2 > d_BilogRange
 
bool d_BilogScaleCoefficient
 scale the output coefficient as well as the variable.
 
std::string d_BilogVariable
 the material argument to which the bilogarithmic transformation applies
 
int d_iDebugPrintInfoLevel
 
bool d_IsTensor
 
std::shared_ptr< AMP::Materials::Materiald_material
 
std::shared_ptr< AMP::Materials::Propertyd_property
 
bool d_UseBilogScaling
 Use a bilogarithmic scaling of material arguments.
 

Static Protected Attributes

static const std::vector< libMesh::Point > d_DummyCoords
 

Private Attributes

std::string d_RadiusArgument
 

Detailed Description

Definition at line 12 of file DiffusionCylindricalTransportModel.h.

Constructor & Destructor Documentation

◆ DiffusionCylindricalTransportModel()

AMP::Operator::DiffusionCylindricalTransportModel::DiffusionCylindricalTransportModel ( std::shared_ptr< const DiffusionTransportTensorModelParameters params)
explicit

Member Function Documentation

◆ bilogScale()

static void AMP::Operator::DiffusionTransportModel::bilogScale ( std::vector< double > &  u,
const double  a,
const double  b 
)
staticinherited

◆ bilogTransform()

static std::shared_ptr< std::vector< double > > AMP::Operator::DiffusionTransportModel::bilogTransform ( const std::vector< double > &  u,
const double  a,
const double  b 
)
staticinherited

◆ getMaterial()

std::shared_ptr< AMP::Materials::Material > AMP::Operator::DiffusionTransportModel::getMaterial ( )
inlineinherited

◆ getProperty()

std::shared_ptr< AMP::Materials::Property > AMP::Operator::DiffusionTransportModel::getProperty ( )
inlineinherited

◆ getTensorTransport()

virtual void AMP::Operator::DiffusionCylindricalTransportModel::getTensorTransport ( AMP::Array< std::shared_ptr< std::vector< double > > > &  result,
std::map< std::string, std::shared_ptr< std::vector< double > > > &  args,
const std::vector< libMesh::Point > &  Coordinates = d_DummyCoords 
)
overridevirtual

transport model returning a vector of tensors for cylindrical symmetry

Parameters
resultresult[i] is a tensor of diffusion coefficients.
argsargs[j][i] is j-th material evalv argument
Coordinatesvector of points that define the spatial location

Reimplemented from AMP::Operator::DiffusionTransportTensorModel.

◆ getTransport()

virtual void AMP::Operator::DiffusionTransportModel::getTransport ( std::vector< double > &  result,
std::map< std::string, std::shared_ptr< std::vector< double > > > &  args,
const std::vector< libMesh::Point > &  Coordinates = d_DummyCoords 
)
virtualinherited

◆ globalReset()

virtual void AMP::Operator::DiffusionTransportModel::globalReset ( )
inlinevirtualinherited

Definition at line 69 of file DiffusionTransportModel.h.

◆ isaTensor()

bool AMP::Operator::DiffusionTransportModel::isaTensor ( )
inlineinherited

◆ nonlinearInitGaussPointOperation()

virtual void AMP::Operator::DiffusionTransportModel::nonlinearInitGaussPointOperation ( )
inlinevirtualinherited

Definition at line 51 of file DiffusionTransportModel.h.

◆ nonlinearJacobianGaussPointOperation()

virtual void AMP::Operator::DiffusionTransportModel::nonlinearJacobianGaussPointOperation ( const double *  )
inlinevirtualinherited

Definition at line 99 of file DiffusionTransportModel.h.

◆ nonlinearResetGaussPointOperation()

virtual void AMP::Operator::DiffusionTransportModel::nonlinearResetGaussPointOperation ( const double *  )
inlinevirtualinherited

Definition at line 83 of file DiffusionTransportModel.h.

◆ postLinearAssembly()

virtual void AMP::Operator::DiffusionTransportModel::postLinearAssembly ( )
inlinevirtualinherited

Definition at line 35 of file DiffusionTransportModel.h.

◆ postLinearElementOperation()

virtual void AMP::Operator::DiffusionTransportModel::postLinearElementOperation ( )
inlinevirtualinherited

Definition at line 39 of file DiffusionTransportModel.h.

◆ postLinearGaussPointOperation()

virtual void AMP::Operator::DiffusionTransportModel::postLinearGaussPointOperation ( )
inlinevirtualinherited

Definition at line 43 of file DiffusionTransportModel.h.

◆ postNonlinearAssembly()

virtual void AMP::Operator::DiffusionTransportModel::postNonlinearAssembly ( )
inlinevirtualinherited

Definition at line 57 of file DiffusionTransportModel.h.

◆ postNonlinearAssemblyElementOperation()

virtual void AMP::Operator::DiffusionTransportModel::postNonlinearAssemblyElementOperation ( )
inlinevirtualinherited

Definition at line 61 of file DiffusionTransportModel.h.

◆ postNonlinearAssemblyGaussPointOperation()

virtual void AMP::Operator::DiffusionTransportModel::postNonlinearAssemblyGaussPointOperation ( )
inlinevirtualinherited

Definition at line 65 of file DiffusionTransportModel.h.

◆ postNonlinearInitElementOperation()

virtual void AMP::Operator::DiffusionTransportModel::postNonlinearInitElementOperation ( )
inlinevirtualinherited

Definition at line 49 of file DiffusionTransportModel.h.

◆ postNonlinearJacobian()

virtual void AMP::Operator::DiffusionTransportModel::postNonlinearJacobian ( )
inlinevirtualinherited

Definition at line 89 of file DiffusionTransportModel.h.

◆ postNonlinearJacobianElementOperation()

virtual void AMP::Operator::DiffusionTransportModel::postNonlinearJacobianElementOperation ( )
inlinevirtualinherited

Definition at line 93 of file DiffusionTransportModel.h.

◆ postNonlinearJacobianGaussPointOperation()

virtual void AMP::Operator::DiffusionTransportModel::postNonlinearJacobianGaussPointOperation ( )
inlinevirtualinherited

Definition at line 97 of file DiffusionTransportModel.h.

◆ postNonlinearReset()

virtual void AMP::Operator::DiffusionTransportModel::postNonlinearReset ( )
inlinevirtualinherited

Definition at line 73 of file DiffusionTransportModel.h.

◆ postNonlinearResetElementOperation()

virtual void AMP::Operator::DiffusionTransportModel::postNonlinearResetElementOperation ( )
inlinevirtualinherited

Definition at line 77 of file DiffusionTransportModel.h.

◆ postNonlinearResetGaussPointOperation()

virtual void AMP::Operator::DiffusionTransportModel::postNonlinearResetGaussPointOperation ( )
inlinevirtualinherited

Definition at line 81 of file DiffusionTransportModel.h.

◆ preLinearAssembly()

virtual void AMP::Operator::DiffusionTransportModel::preLinearAssembly ( )
inlinevirtualinherited

Definition at line 33 of file DiffusionTransportModel.h.

◆ preLinearElementOperation()

virtual void AMP::Operator::DiffusionTransportModel::preLinearElementOperation ( )
inlinevirtualinherited

Definition at line 37 of file DiffusionTransportModel.h.

◆ preLinearGaussPointOperation()

virtual void AMP::Operator::DiffusionTransportModel::preLinearGaussPointOperation ( )
inlinevirtualinherited

Definition at line 41 of file DiffusionTransportModel.h.

◆ preNonlinearAssembly()

virtual void AMP::Operator::DiffusionTransportModel::preNonlinearAssembly ( )
inlinevirtualinherited

Definition at line 55 of file DiffusionTransportModel.h.

◆ preNonlinearAssemblyElementOperation()

virtual void AMP::Operator::DiffusionTransportModel::preNonlinearAssemblyElementOperation ( )
inlinevirtualinherited

Definition at line 59 of file DiffusionTransportModel.h.

◆ preNonlinearAssemblyGaussPointOperation()

virtual void AMP::Operator::DiffusionTransportModel::preNonlinearAssemblyGaussPointOperation ( )
inlinevirtualinherited

Definition at line 63 of file DiffusionTransportModel.h.

◆ preNonlinearInitElementOperation()

virtual void AMP::Operator::DiffusionTransportModel::preNonlinearInitElementOperation ( )
inlinevirtualinherited

Definition at line 47 of file DiffusionTransportModel.h.

◆ preNonlinearJacobian()

virtual void AMP::Operator::DiffusionTransportModel::preNonlinearJacobian ( )
inlinevirtualinherited

Definition at line 87 of file DiffusionTransportModel.h.

◆ preNonlinearJacobianElementOperation()

virtual void AMP::Operator::DiffusionTransportModel::preNonlinearJacobianElementOperation ( )
inlinevirtualinherited

Definition at line 91 of file DiffusionTransportModel.h.

◆ preNonlinearJacobianGaussPointOperation()

virtual void AMP::Operator::DiffusionTransportModel::preNonlinearJacobianGaussPointOperation ( )
inlinevirtualinherited

Definition at line 95 of file DiffusionTransportModel.h.

◆ preNonlinearReset()

virtual void AMP::Operator::DiffusionTransportModel::preNonlinearReset ( )
inlinevirtualinherited

Definition at line 71 of file DiffusionTransportModel.h.

◆ preNonlinearResetElementOperation()

virtual void AMP::Operator::DiffusionTransportModel::preNonlinearResetElementOperation ( )
inlinevirtualinherited

Definition at line 75 of file DiffusionTransportModel.h.

◆ preNonlinearResetGaussPointOperation()

virtual void AMP::Operator::DiffusionTransportModel::preNonlinearResetGaussPointOperation ( )
inlinevirtualinherited

Definition at line 79 of file DiffusionTransportModel.h.

◆ setDebugPrintInfoLevel()

virtual void AMP::Operator::ElementPhysicsModel::setDebugPrintInfoLevel ( int  print_level)
inlinevirtualinherited

Specify level of diagnostic information printed during iterations.

Parameters
[in]print_levelzero prints none or minimal information, higher numbers provide increasingly verbose debugging information.

Definition at line 36 of file ElementPhysicsModel.h.

References AMP::Operator::ElementPhysicsModel::d_iDebugPrintInfoLevel.

Member Data Documentation

◆ d_BilogEpsilonRangeLimit

double AMP::Operator::DiffusionTransportModel::d_BilogEpsilonRangeLimit
protectedinherited

Definition at line 175 of file DiffusionTransportModel.h.

◆ d_BilogRange

std::array<double, 2> AMP::Operator::DiffusionTransportModel::d_BilogRange
protectedinherited

Definition at line 174 of file DiffusionTransportModel.h.

◆ d_BilogScaleCoefficient

bool AMP::Operator::DiffusionTransportModel::d_BilogScaleCoefficient
protectedinherited

scale the output coefficient as well as the variable.

Definition at line 171 of file DiffusionTransportModel.h.

◆ d_BilogVariable

std::string AMP::Operator::DiffusionTransportModel::d_BilogVariable
protectedinherited

the material argument to which the bilogarithmic transformation applies

This must be one of the values returned by AMP::Materials::Material::get_arg_names(). The material argument bounds reported by AMP::Materials::Material::get_arg_range() will be used for \( a\) and \(b\).

Definition at line 166 of file DiffusionTransportModel.h.

◆ d_DummyCoords

const std::vector<libMesh::Point> AMP::Operator::DiffusionTransportModel::d_DummyCoords
staticprotectedinherited

Definition at line 177 of file DiffusionTransportModel.h.

◆ d_iDebugPrintInfoLevel

int AMP::Operator::ElementPhysicsModel::d_iDebugPrintInfoLevel
protectedinherited

Variable that controls the amount of diagnostic information that gets printed within this material model.

Definition at line 39 of file ElementPhysicsModel.h.

Referenced by AMP::Operator::ElementPhysicsModel::ElementPhysicsModel(), and AMP::Operator::ElementPhysicsModel::setDebugPrintInfoLevel().

◆ d_IsTensor

bool AMP::Operator::DiffusionTransportModel::d_IsTensor
protectedinherited

◆ d_material

std::shared_ptr<AMP::Materials::Material> AMP::Operator::DiffusionTransportModel::d_material
protectedinherited

◆ d_property

std::shared_ptr<AMP::Materials::Property> AMP::Operator::DiffusionTransportModel::d_property
protectedinherited

◆ d_RadiusArgument

std::string AMP::Operator::DiffusionCylindricalTransportModel::d_RadiusArgument
private

Definition at line 30 of file DiffusionCylindricalTransportModel.h.

◆ d_UseBilogScaling

bool AMP::Operator::DiffusionTransportModel::d_UseBilogScaling
protectedinherited

Use a bilogarithmic scaling of material arguments.

The chemical diffusion equation is

\[ \partial_t u = \nabla \cdot (K \nabla u). \]

Sometimes the variable \(u\) is physically restricted to be within a certain range, such as \( u \in [0,.2] \) for hyper non-stoichiometry. These bounds can wreak havoc with the convergence of nonlinear solvers. We can employ the transformation \( U=\log( (u-a)/(b-u) ) \) or \( u = (a+ b \exp(U)/(1+\exp(U)) \) to change to a variable \(U\) that ranges from \((-\infty, \infty)\). For any value of \( U \) it is rigorously true that \( a<u<b \), alleviating the problem of solver iterations sending the solution into forbidden territory. The equation for \(U\) is

\[ f(U) \partial_t U = \nabla \cdot (f(U) K \nabla U), \]

where \( f(U) = (b-a) \exp(U) / (1+\exp(U))^2 \). This adds a well-behaved mass matrix to the chemical diffusion equation and modifies the diffusion coefficient by the same factor. When using this transformation be sure to transform initial and boundary conditions as well in the input files. You have to specify this transformation in the mass operator for the chemical equation. The transformation must be specified within all operators using materials that depend on the transformed variable. When such an operator acts on a variable other than BilogVariable, you must specify "BilogScaleCoefficient=FALSE". Be sure to also to transform the default variables specified for this DiffusionTransportModel.

The thermal diffusion equation is

\[ \rho C_P \partial_t T = \nabla \cdot (D \nabla T) \]

The bilogarthmic transform may also be used with this equation to give

\[ \rho C_P f(T) \partial_t T = \nabla \cdot (f(T) D \nabla T), \]

with similar considerations as for the chemical equation.

Definition at line 156 of file DiffusionTransportModel.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