Advanced Multi-Physics (AMP)
On-Line Documentation
RobinPhysicsModel.h
Go to the documentation of this file.
1#ifndef included_AMP_RobinPhysicsModel
2#define included_AMP_RobinPhysicsModel
3
4#include <string>
5#include <vector>
6
7#include "AMP/operators/ElementPhysicsModel.h"
8#include "AMP/utils/UtilityMacros.h"
9#include <memory>
10
11
12namespace AMP::Operator {
13
15
17{
18public:
19 explicit RobinPhysicsModel( std::shared_ptr<const RobinPhysicsModelParameters> params )
21 {
22 reset( params );
23 }
24
25 virtual ~RobinPhysicsModel() {}
26
27 virtual void reset( std::shared_ptr<const RobinPhysicsModelParameters> params )
28 {
29 if ( params->d_db->keyExists( "Number_Active_Variables" ) ) {
30 d_numActiveVariables = params->d_db->getScalar<int>( "Number_Active_Variables" );
31 }
32 std::shared_ptr<AMP::Database> activeDb;
33 if ( params->d_db->keyExists( "ActiveInputVariables" ) ) {
34 activeDb = params->d_db->getDatabase( "ActiveInputVariables" );
35 unsigned int numactive = activeDb->getAllKeys().size();
36 if ( params->d_db->keyExists( "Number_Active_Variables" ) ) {
37 AMP_INSIST( numactive == d_numActiveVariables,
38 "Number of active variables disagrees with Number_Active_Variables." );
39 }
40 d_numActiveVariables = numactive;
41 }
42
44 for ( unsigned int var = 0; var < d_numActiveVariables; var++ ) {
45 char key[100];
46 snprintf( key, sizeof( key ), "ActiveVariable_%u", var );
47 auto varName = activeDb->getString( key );
48 d_activeVariableNames[var] = varName;
49 }
50 }
51
52 virtual void getConductance( std::vector<double> &beta,
53 std::vector<double> &gamma,
54 const std::vector<std::vector<double>> &arguments ) = 0;
55
56 const auto &getVariableName() { return d_activeVariableNames; }
57
58protected:
59 unsigned int d_numActiveVariables; // Number of Active Variables
60 std::vector<std::string> d_activeVariableNames; // Active Variable names
61
62private:
63};
64} // namespace AMP::Operator
65
66#endif
std::vector< std::string > d_activeVariableNames
RobinPhysicsModel(std::shared_ptr< const RobinPhysicsModelParameters > params)
virtual void reset(std::shared_ptr< const RobinPhysicsModelParameters > params)
virtual void getConductance(std::vector< double > &beta, std::vector< double > &gamma, const std::vector< std::vector< double > > &arguments)=0
#define AMP_INSIST(EXP, MSG)
Insist error.
ElementPhysicsModelParameters RobinPhysicsModelParameters



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