Advanced Multi-Physics (AMP)
On-Line Documentation
DiffusionNonlinearElement.h
Go to the documentation of this file.
1#ifndef included_AMP_DiffusionNonlinearElement
2#define included_AMP_DiffusionNonlinearElement
3
4#include "AMP/operators/diffusion/DiffusionElement.h"
5
6#include <memory>
7#include <vector>
8
9
10namespace AMP::Operator {
11
13{
14public:
15 explicit DiffusionNonlinearElement( std::shared_ptr<const ElementOperationParameters> params )
16 : DiffusionElement( params ),
17 d_elementOutputVector( nullptr ),
19 {
20 d_JxW = &( d_fe->get_JxW() );
21
22 d_dphi = &( d_fe->get_dphi() );
23
24 d_transportAtGauss = params->d_db->getWithDefault<bool>( "TransportAtGaussPoints", true );
25 }
26
28
29 void setElementInputVector( std::map<std::string, std::vector<double>> elementInputVectors )
30 {
31 d_elementInputVectors = std::move( elementInputVectors );
32 }
33
34 void setElementVectors( std::map<std::string, std::vector<double>> elementInputVectors,
35 std::vector<double> &elementOutputVector )
36 {
37 d_elementInputVectors = std::move( elementInputVectors );
38 d_elementOutputVector = &elementOutputVector;
39 }
40
41 void setElementTransport( std::map<std::string, std::vector<double>> elementInputVectors,
42 std::vector<double> &elementOutputVector )
43 {
44 d_elementInputVectors = std::move( elementInputVectors );
45 d_transportOutputVector = &elementOutputVector;
46 }
47
48 void apply() override;
49
51
52 void setPrincipalVariable( const std::string &var ) { d_PrincipalVariable = var; }
53
55
56protected:
59
60protected:
61 std::map<std::string, std::vector<double>> d_elementInputVectors;
62
63 std::vector<double> *d_elementOutputVector;
64
65 std::vector<double> *d_transportOutputVector;
66
67 std::vector<std::vector<double>> d_elementOtherVectors;
68
70
72
73private:
74};
75} // namespace AMP::Operator
76
77#endif
const std::vector< std::vector< libMesh::RealGradient > > * d_dphi
std::shared_ptr< libMesh::FEBase > d_fe
const std::vector< libMesh::Real > * d_JxW
DiffusionNonlinearElement(std::shared_ptr< const ElementOperationParameters > params)
void setElementInputVector(std::map< std::string, std::vector< double > > elementInputVectors)
std::map< std::string, std::vector< double > > d_elementInputVectors
void setElementVectors(std::map< std::string, std::vector< double > > elementInputVectors, std::vector< double > &elementOutputVector)
void setElementTransport(std::map< std::string, std::vector< double > > elementInputVectors, std::vector< double > &elementOutputVector)
std::vector< std::vector< double > > d_elementOtherVectors



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