Advanced Multi-Physics (AMP)
On-Line Documentation
ManufacturedDiffusionTransportModel.h
Go to the documentation of this file.
1#ifndef included_AMP_ManufacturedDiffusionTransportModel
2#define included_AMP_ManufacturedDiffusionTransportModel
3
4#include "AMP/discretization/DOF_Manager.h"
5#include "AMP/mesh/Mesh.h"
6#include "AMP/operators/ElementPhysicsModel.h"
7#include "AMP/operators/diffusion/DiffusionTransportModel.h"
8
9#include <map>
10#include <memory>
11#include <string>
12#include <vector>
13
14
15namespace AMP::Operator {
16
18{
19public:
21 std::shared_ptr<const DiffusionTransportModelParameters> params )
22 : DiffusionTransportModel( params )
23 {
24 }
25
27
28
29 void getTransport( std::vector<double> &result,
30 std::map<std::string, std::shared_ptr<std::vector<double>>> &args,
31 const std::vector<libMesh::Point> &Coordinates ) override
32 {
33 AMP_ASSERT( ( Coordinates.size() == result.size() ) );
34 auto it = args.find( "temperature" );
35 AMP_ASSERT( it != args.end() );
36 const auto &T = *( it->second );
37 AMP_ASSERT( T.size() == result.size() );
38 for ( unsigned int qp = 0; qp < Coordinates.size(); qp++ ) {
39 double x = Coordinates[qp]( 0 );
40 double y = Coordinates[qp]( 1 );
41 double z = Coordinates[qp]( 2 );
42 double r = std::sqrt( x * x + y * y + z * z );
43 double temp = exp( -r * T[qp] );
44 result[qp] = temp;
45 }
46 }
47
48protected:
49private:
50};
51} // namespace AMP::Operator
52
53#endif
void getTransport(std::vector< double > &result, std::map< std::string, std::shared_ptr< std::vector< double > > > &args, const std::vector< libMesh::Point > &Coordinates) override
ManufacturedDiffusionTransportModel(std::shared_ptr< const DiffusionTransportModelParameters > params)
#define AMP_ASSERT(EXP)
Assert error.



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