Advanced Multi-Physics (AMP)
On-Line Documentation
DiffusionTransportModel.h
Go to the documentation of this file.
1#ifndef included_AMP_DiffusionTransportModel
2#define included_AMP_DiffusionTransportModel
3
4#include "AMP/materials/Material.h"
5#include "AMP/materials/Property.h"
6#include "AMP/operators/ElementPhysicsModel.h"
7
8#include <map>
9#include <memory>
10#include <string>
11#include <vector>
12
13// Libmesh headers
15#include "libmesh/point.h"
17
18
19namespace AMP::Operator {
20
22
24{
25public:
27 std::shared_ptr<const DiffusionTransportModelParameters> params );
28
30
31 // For LinearOperator's Reset/Init
32
33 virtual void preLinearAssembly() {}
34
35 virtual void postLinearAssembly() {}
36
37 virtual void preLinearElementOperation() {}
38
40
42
44
45 // For NonlinearOperator's Init
46
48
50
52
53 // For NonlinearOperator's Apply
54
55 virtual void preNonlinearAssembly() {}
56
57 virtual void postNonlinearAssembly() {}
58
60
62
64
66
67 // For NonlinearOperator's Reset
68
69 virtual void globalReset() {}
70
71 virtual void preNonlinearReset() {}
72
73 virtual void postNonlinearReset() {}
74
76
78
80
82
83 virtual void nonlinearResetGaussPointOperation( const double * ) {}
84
85 // For NonlinearOperator's GetJacobianParameters
86
87 virtual void preNonlinearJacobian() {}
88
89 virtual void postNonlinearJacobian() {}
90
92
94
96
98
99 virtual void nonlinearJacobianGaussPointOperation( const double * ) {}
100
101 static std::shared_ptr<std::vector<double>>
102 bilogTransform( const std::vector<double> &u, const double a, const double b );
103
104 static void bilogScale( std::vector<double> &u, const double a, const double b );
105
106 virtual void getTransport( std::vector<double> &result,
107 std::map<std::string, std::shared_ptr<std::vector<double>>> &args,
108 const std::vector<libMesh::Point> &Coordinates = d_DummyCoords );
109
110 std::shared_ptr<AMP::Materials::Material> getMaterial() { return d_material; }
111 std::shared_ptr<AMP::Materials::Property> getProperty() { return d_property; }
112
113 bool isaTensor() { return d_IsTensor; }
114
115protected:
116 std::shared_ptr<AMP::Materials::Material> d_material;
117
118 std::shared_ptr<AMP::Materials::Property> d_property;
119
157
166 std::string d_BilogVariable;
167
172
173protected: // used to be private
174 std::array<double, 2> d_BilogRange;
176
177 static const std::vector<libMesh::Point> d_DummyCoords;
178
180};
181} // namespace AMP::Operator
182
183#endif
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)
std::shared_ptr< AMP::Materials::Material > d_material
std::shared_ptr< AMP::Materials::Material > getMaterial()
std::shared_ptr< AMP::Materials::Property > getProperty()
virtual void nonlinearJacobianGaussPointOperation(const double *)
bool d_UseBilogScaling
Use a bilogarithmic scaling of material arguments.
virtual void nonlinearResetGaussPointOperation(const double *)
std::shared_ptr< AMP::Materials::Property > d_property
static const std::vector< libMesh::Point > d_DummyCoords
static std::shared_ptr< std::vector< double > > bilogTransform(const std::vector< double > &u, const double a, const double b)
DiffusionTransportModel(std::shared_ptr< const DiffusionTransportModelParameters > params)
static void bilogScale(std::vector< double > &u, const double a, const double b)
std::string d_BilogVariable
the material argument to which the bilogarithmic transformation applies
bool d_BilogScaleCoefficient
scale the output coefficient as well as the variable.
#define DISABLE_WARNINGS
Re-enable warnings.
#define ENABLE_WARNINGS
Suppress all warnings.
ElementPhysicsModelParameters DiffusionTransportModelParameters



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:41.
Comments on this page