#include <RadiationDiffusionFDDiscretization.h>

Public Types | |
| typedef std::shared_ptr< AMP::Operator::Operator > | shared_ptr |
Static Public Member Functions | |
| static std::unique_ptr< AMP::Operator::Operator > | create (std::shared_ptr< AMP::Operator::OperatorParameters > params) |
| Used by OperatorFactory to create a RadDifOpPJac. | |
Public Attributes | |
| std::shared_ptr< RadDifOpPJacData > | d_data = nullptr |
| Representation of this operator as a block 2x2 matrix. | |
| std::shared_ptr< AMP::Database > | d_db = nullptr |
| AMP::LinearAlgebra::Vector::shared_ptr | d_frozenVec = nullptr |
| The vector the above operator is linearized about. | |
Protected Member Functions | |
| void | getBackendFromInput (std::shared_ptr< AMP::Database > db) |
| virtual std::shared_ptr< OperatorParameters > | getJacobianParameters (std::shared_ptr< const AMP::LinearAlgebra::Vector >) |
| void | setMemoryAndBackendParameters (std::shared_ptr< AMP::Database > db) |
Protected Attributes | |
| AMP::Utilities::Backend | d_backend = AMP::Utilities::Backend::Serial |
| int | d_iDebugPrintInfoLevel = 0 |
| std::shared_ptr< AMP::LinearAlgebra::Variable > | d_inputVariable |
| int | d_iObject_id |
| std::shared_ptr< AMP::LinearAlgebra::Matrix > | d_matrix |
| AMP::Utilities::MemoryType | d_memory_location = AMP::Utilities::MemoryType::none |
| std::shared_ptr< AMP::Mesh::Mesh > | d_Mesh |
| std::shared_ptr< AMP::LinearAlgebra::Variable > | d_outputVariable |
Static Protected Attributes | |
| static int | d_iInstance_id |
Private Attributes | |
| AMP::Mesh::GeomType | CellCenteredGeom |
| Placeholder for geometry that results in cell-centered data. | |
| std::array< double, 6 > | d_ak |
| bool | d_applyWithOverwrittenDataIsValid = false |
| std::array< double, 6 > | d_bk |
| std::shared_ptr< AMP::Mesh::BoxMesh > | d_BoxMesh |
| Mesh; keep a pointer to save having to downcast repeatedly. | |
| size_t | d_dim = (size_t) -1 |
| Problem dimension. | |
| std::array< size_t, 3 > | d_dofsLoc3 |
| Placeholder array for dofs we connect to in 3-point stencil. | |
| std::array< double, 3 > | d_ELoc3 |
| Placeholder arrays for values used in 3-point stencils. | |
| std::shared_ptr< AMP::Mesh::BoxMesh::Box > | d_globalBox = nullptr |
| Global grid index box w/ zero ghosts. | |
| std::vector< double > | d_h |
| Mesh sizes, hx, hy, hz. We compute these based on the incoming mesh. | |
| std::array< size_t, 5 > | d_ijk |
| Placeholder for grid indices. Size 5 is because ArraySize deals with 5 grid indcies. | |
| const double | d_k11 |
| Constant scaling factors in the PDE. | |
| const double | d_k12 |
| const double | d_k21 |
| const double | d_k22 |
| std::shared_ptr< AMP::ArraySize > | d_localArraySize = nullptr |
| Local array size. | |
| std::shared_ptr< AMP::Mesh::BoxMesh::Box > | d_localBox = nullptr |
| Local grid index box w/ zero ghosts. | |
| std::shared_ptr< FDMeshGlobalIndexingOps > | d_meshIndexingOps = nullptr |
| Mesh indexing functions. | |
| std::shared_ptr< AMP::Discretization::multiDOFManager > | d_multiDOFMan |
| Mesh-related data. | |
| std::array< double, 6 > | d_nk |
| std::function< double(size_t boundaryID, const AMP::Mesh::Point &boundaryPoint)> | d_pseudoNeumannFunctionT |
| std::vector< double > | d_rh2 |
| Reciprocal squares of mesh sizes. | |
| std::array< double, 6 > | d_rk |
| std::function< double(size_t boundaryID, const AMP::Mesh::Point &boundaryPoint)> | d_robinFunctionE |
| std::shared_ptr< AMP::Discretization::DOFManager > | d_scalarDOFMan |
| DOFManager for E and T individually. | |
| std::array< double, 3 > | d_TLoc3 |
Static Private Attributes | |
| static constexpr size_t | EAST = 2 |
| static constexpr size_t | ORIGIN = 1 |
| static constexpr size_t | WEST = 0 |
| Indices used for referencing WEST, ORIGIN, and EAST entries in Loc3 data structures. | |
Picard linearization of a RadDifOp. Specifically, the spatial operators in the radiation-diffusion equation can be written as L(u) = -D(u) -R(u) <==> hat{L}(u)*u = -hat{D}(u)*u -hat{R}(u)*u where hat{L}(u), hat{D}(u) and hat{R}(u) are block 2x2 matrices dependent upon the state u. This class implements the LinearOperator hat{L}(u), which is a Picard linearization of L(u).
Definition at line 550 of file RadiationDiffusionFDDiscretization.h.
|
inherited |
Definition at line 29 of file Operator.h.
| AMP::Operator::RadDifOpPJac::RadDifOpPJac | ( | std::shared_ptr< const AMP::Operator::OperatorParameters > | params_ | ) |
Constructor.
|
inlinevirtual |
Destructor.
Definition at line 565 of file RadiationDiffusionFDDiscretization.h.
|
overridevirtualinherited |
The apply function for this operator, A, performs the following operation: f = A(u) Here, A(u) is simply a Matrix-Vector multiplication.
| [in] | u | input vector. |
| [out] | f | residual/output vector. |
Reimplemented in AMP::Operator::IdentityOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::TrilinosMatrixShellOperator, and AMP::Operator::BDFRadDifOpPJac.
|
overridevirtual |
Compute LET = L(ET)
Implements AMP::Operator::Operator.
|
private |
Apply action of the operator utilizing its representation in d_data.
|
inline |
Allows an apply from Jacobian data that's been modified by an outside class (this is an acknowledgement that the caller of the apply deeply understands what they're doing)
Definition at line 593 of file RadiationDiffusionFDDiscretization.h.
References d_applyWithOverwrittenDataIsValid.
|
inlinestatic |
Used by OperatorFactory to create a RadDifOpPJac.
Definition at line 572 of file RadiationDiffusionFDDiscretization.h.
|
overridevirtual |
Create a multiVector of E and T over the mesh.
Reimplemented from AMP::Operator::LinearOperator.
|
overridevirtualinherited |
Get an output vector ( For \(\mathbf{y=A(x)}\), \(\mathbf{y}\) is an output vector )
Reimplemented from AMP::Operator::Operator.
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator.
|
private |
Fill the given input diffusion matrix with CSR data
| [in] | matrix |
|
protectedinherited |
|
private |
Get CSR data for a row of the Picard-linearized diffusion matrix dE or dT.
| [in] | E_vec | E component of the frozen vector d_frozenVec |
| [in] | T_vec | T component of the frozen vector d_frozenVec |
| [in] | E_rawData | local raw data array for E |
| [in] | T_rawData | local raw data array for T |
| [in] | row | the row to retrieve (a scalar index) |
| [out] | cols | the column indices for the non-zeros in the given row, with the diagonal entry first |
| [out] | data | the data for the non-zeros in the given row |
|
private |
Get cols and data for given row, when the row lives on a process boundary.
|
private |
Get cols and data for given row, when the row lives on the interior of a process
|
inlineoverridevirtualinherited |
Return the input variable.
Reimplemented from AMP::Operator::Operator.
Reimplemented in AMP::Operator::MassLinearFEOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::TrilinosMatrixShellOperator, and AMP::TimeIntegrator::LinearTimeOperator.
Definition at line 63 of file LinearOperator.h.
References AMP::Operator::LinearOperator::d_inputVariable.
|
inlineprotectedvirtualinherited |
This function returns a OperatorParameters object constructed by the operator which contains parameters from which new Jacobian operators can be created. Returning a parameter object instead of an Operator itself is meant to give users more flexibility.
Definition at line 180 of file Operator.h.
|
virtualinherited |
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator.
|
inlineinherited |
Definition at line 89 of file Operator.h.
References AMP::Operator::Operator::d_memory_location.
|
inlineinherited |
Return the mesh.
Definition at line 149 of file Operator.h.
References AMP::Operator::Operator::d_Mesh.
|
inlineinherited |
Return the mesh.
Definition at line 152 of file Operator.h.
References AMP::Operator::Operator::d_Mesh.
|
private |
Closely related to RadDifOp::getNNDataBoundary, except there are two additional outputs:
| [in] | E_vec | |
| [in] | T_vec | |
| [in] | ijk | |
| [in] | dim | |
| [in] | ELoc3 | |
| [in] | TLoc3 | |
| [out] | dofsLoc3 | indices of the dofs in the 3-point stencil |
| [out] | boundaryIntersection | flag indicating if the stencil touches a physical boundary (and which one if it does) |
|
inlineoverridevirtualinherited |
Return the output variable.
Reimplemented from AMP::Operator::Operator.
Reimplemented in AMP::Operator::MassLinearFEOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::TrilinosMatrixShellOperator, and AMP::TimeIntegrator::LinearTimeOperator.
Definition at line 67 of file LinearOperator.h.
References AMP::Operator::LinearOperator::d_outputVariable.
|
virtualinherited |
This function returns a OperatorParameters object constructed by the operator which contains parameters from which new operators can be created. Returning a parameter object instead of an Operator itself is meant to give users more flexibility. Examples of how this functionality might be used would be the construction of Jacobian, frozen Jacobian, preconditioner approximations to the Jacobian, adjoint operators etc
| type | std:string specifying type of return operator parameters being requested. Currently the valid option is Jacobian |
| u | const pointer to current solution vector |
| params | pointer to additional parameters that might be required to construct the return parameters |
Reimplemented in AMP::Operator::IdentityOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
|
private |
This is a wrapper around FDBoundaryUtils::ghostValuesSolve to pass our specific constants and boundary-function evaluations.
| [in] | boundaryID | ID of the boundary |
| [in] | boundaryPoint | the point in space where the function is to be evaluated (this will be a point on the corresponding boundary) |
| [in] | Eint | |
| [in] | Tint | |
| [out] | Eg | value of E at the ghost point |
| [out] | Tg | value of T at the ghost point |
|
inlinevirtualinherited |
given a vector return whether it is valid or not
Reimplemented in AMP::Operator::BDFRadDifOp, AMP::Operator::RadDifOp, AMP::Operator::ColumnOperator, AMP::Operator::CoupledOperator, AMP::TimeIntegrator::TimeOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
Definition at line 146 of file Operator.h.
|
virtualinherited |
virtual interface used to make a vector consistent in an operator defined way. An example of where an operator is required to make a vector consistent is in the context of AMR where ghost values on coarse-fine interfaces are filled in an operator dependent way. The default implementation is to simply call the vector makeConsistent(SET)
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, and AMP::TimeIntegrator::TimeOperator.
|
private |
We have ghost values that satisfy Eg = alpha_E*Eint + beta_E Tg = alpha_T*Tint + beta_T Here we return the coefficient alpha_
| [in] | component | 0 (for energy), or 1 (for temperature) |
| [in] | boundaryID | the boundary |
| [in] | ck | = +k11*D_E(T), but is ignored if component == 1. |
|
inlinevirtualinherited |
re-initialize a vector, e.g. after a regrid operation has happened. This is useful for example when numerical overshoots or undershoots have happened due to interpolation for example The default is a null op
Reimplemented in AMP::TimeIntegrator::TimeOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
Definition at line 167 of file Operator.h.
|
override |
Reset the operator based on the incoming parameters. Primarily, this updates frozen value of current solution, d_frozenSolution. It also resets the associated linearized data. Note that it does not update any mesh-related data since neither does the base classes reset(). It also doesn't update any boundary-related data
|
virtualinherited |
This function is useful for re-initializing/updating an operator
| params | parameter object containing parameters to change |
Reimplemented in AMP::TimeIntegrator::ColumnTimeOperator, AMP::TimeIntegrator::LinearTimeOperator, AMP::TimeIntegrator::TimeOperator, AMP::Operator::PowerShape, AMP::Operator::NeutronicsRhs, AMP::Operator::WeldOperator, AMP::Operator::ColumnBoundaryOperator, AMP::Operator::DirichletVectorCorrection, AMP::Operator::NeumannVectorCorrection, AMP::Operator::RobinMatrixCorrection, AMP::Operator::RobinVectorCorrection, AMP::Operator::ColumnOperator, AMP::Operator::FickSoretNonlinearFEOperator, AMP::Operator::IdentityOperator, AMP::Operator::GradientOperator, AMP::Operator::PelletStackOperator, AMP::Operator::MapOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::Operator::MoveMeshOperator, AMP::Operator::NonlinearBVPOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::CoupledFlowFrapconOperator, AMP::Operator::FlowFrapconJacobian, AMP::Operator::FlowFrapconOperator, AMP::Operator::SubchannelFourEqLinearOperator, AMP::Operator::SubchannelFourEqNonlinearOperator, AMP::Operator::SubchannelTwoEqLinearOperator, AMP::Operator::SubchannelTwoEqNonlinearOperator, AMP::Operator::TrilinosMatrixShellOperator, AMP::Operator::DirichletMatrixCorrection, AMP::Operator::MassMatrixCorrection, AMP::Operator::DiffusionNonlinearFEOperator, AMP::Operator::LinearFEOperator, AMP::Operator::VolumeIntegralOperator, AMP::Operator::LinearBVPOperator, AMP::Operator::Map1Dto3D, AMP::Operator::Map3Dto1D, and AMP::Operator::MechanicsNonlinearFEOperator.
Referenced by AMP::Operator::FirstOperator::FirstOperator(), and AMP::Operator::SecondOperator::SecondOperator().
|
virtualinherited |
Default base class implementation of the residual: f-L(u)
| f | shared pointer to const vector rhs |
| u | shared pointer to const vector u |
| r | shared pointer to vector residual |
Reimplemented in AMP::Solver::AMG::HasDeferConsistency< AMP::Operator::LinearOperator >, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::TimeIntegrator::IDATimeOperator, and AMP::TimeIntegrator::TimeOperator.
|
virtualinherited |
Return the selector for input vectors.
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::Operator::FlowFrapconJacobian, AMP::Operator::FlowFrapconOperator, AMP::Operator::SubchannelFourEqLinearOperator, and AMP::Operator::SubchannelFourEqNonlinearOperator.
|
virtualinherited |
Return the selector for output vectors.
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::Operator::FlowFrapconJacobian, AMP::Operator::FlowFrapconOperator, AMP::Operator::SubchannelFourEqLinearOperator, and AMP::Operator::SubchannelFourEqNonlinearOperator.
|
private |
Set our d_data member.
|
private |
Sets the reaction-related vectors in our d_data member. This code is based on stripping out the reaction component of the apply of the nonlinear operator.
| [in] | T_vec | T component of the frozen vector d_frozenVec |
Specify level of diagnostic information printed during iterations.
| level | zero prints none or minimal information, higher numbers provide increasingly verbose debugging information. |
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
Definition at line 97 of file Operator.h.
References AMP::Operator::Operator::d_iDebugPrintInfoLevel.
|
virtualinherited |
Copies the shared pointer for the matrix representation of this linear operator.
| [in] | in_mat | The matrix representation of this linear operator. |
Reimplemented in AMP::Operator::IdentityOperator.
Referenced by AMP::Solver::AMG::coarse_operator< Config >::coarse_operator(), and AMP::Operator::EpetraMatrixOperator::EpetraMatrixOperator().
|
protectedinherited |
|
inlinevirtualinherited |
Definition at line 56 of file LinearOperator.h.
References AMP::Operator::LinearOperator::d_inputVariable, and AMP::Operator::LinearOperator::d_outputVariable.
Referenced by AMP::Solver::AMG::coarse_operator< Config >::coarse_operator().
|
inherited |
Subset input vector.
|
inherited |
Subset input vector.
|
inherited |
Subset output vector.
|
inherited |
Subset output vector.
|
inlineoverridevirtual |
Return the name of the operator.
Reimplemented from AMP::Operator::LinearOperator.
Definition at line 584 of file RadiationDiffusionFDDiscretization.h.
|
private |
Placeholder for geometry that results in cell-centered data.
Definition at line 631 of file RadiationDiffusionFDDiscretization.h.
|
private |
Constants in boundary conditions from incoming db. The constant for a given boundaryID is in index boundaryID-1
Definition at line 606 of file RadiationDiffusionFDDiscretization.h.
Flag indicating whether apply with overwritten Jacobian data is valid. This is reset to false at the end of every apply call, and can be set t true by the public member function
Definition at line 613 of file RadiationDiffusionFDDiscretization.h.
Referenced by applyWithOverwrittenDataIsValid().
|
protectedinherited |
Definition at line 197 of file Operator.h.
|
private |
Definition at line 607 of file RadiationDiffusionFDDiscretization.h.
|
private |
Mesh; keep a pointer to save having to downcast repeatedly.
Definition at line 623 of file RadiationDiffusionFDDiscretization.h.
| std::shared_ptr<RadDifOpPJacData> AMP::Operator::RadDifOpPJac::d_data = nullptr |
Representation of this operator as a block 2x2 matrix.
Definition at line 557 of file RadiationDiffusionFDDiscretization.h.
| std::shared_ptr<AMP::Database> AMP::Operator::RadDifOpPJac::d_db = nullptr |
Definition at line 555 of file RadiationDiffusionFDDiscretization.h.
Problem dimension.
Definition at line 633 of file RadiationDiffusionFDDiscretization.h.
|
private |
Placeholder array for dofs we connect to in 3-point stencil.
Definition at line 645 of file RadiationDiffusionFDDiscretization.h.
|
private |
Placeholder arrays for values used in 3-point stencils.
Definition at line 642 of file RadiationDiffusionFDDiscretization.h.
| AMP::LinearAlgebra::Vector::shared_ptr AMP::Operator::RadDifOpPJac::d_frozenVec = nullptr |
The vector the above operator is linearized about.
Definition at line 559 of file RadiationDiffusionFDDiscretization.h.
|
private |
Global grid index box w/ zero ghosts.
Definition at line 625 of file RadiationDiffusionFDDiscretization.h.
|
private |
Mesh sizes, hx, hy, hz. We compute these based on the incoming mesh.
Definition at line 635 of file RadiationDiffusionFDDiscretization.h.
|
protectedinherited |
Definition at line 187 of file Operator.h.
Referenced by AMP::Operator::Operator::setDebugPrintInfoLevel().
|
staticprotectedinherited |
Definition at line 191 of file Operator.h.
|
private |
Placeholder for grid indices. Size 5 is because ArraySize deals with 5 grid indcies.
Definition at line 640 of file RadiationDiffusionFDDiscretization.h.
|
protectedinherited |
Definition at line 88 of file LinearOperator.h.
Referenced by AMP::Operator::LinearOperator::getInputVariable(), AMP::Operator::IdentityOperator::setInputVariable(), and AMP::Operator::LinearOperator::setVariables().
|
protectedinherited |
Definition at line 189 of file Operator.h.
Constant scaling factors in the PDE.
Definition at line 599 of file RadiationDiffusionFDDiscretization.h.
Definition at line 600 of file RadiationDiffusionFDDiscretization.h.
Definition at line 601 of file RadiationDiffusionFDDiscretization.h.
Definition at line 602 of file RadiationDiffusionFDDiscretization.h.
|
private |
Local array size.
Definition at line 629 of file RadiationDiffusionFDDiscretization.h.
|
private |
Local grid index box w/ zero ghosts.
Definition at line 627 of file RadiationDiffusionFDDiscretization.h.
|
protectedinherited |
Definition at line 92 of file LinearOperator.h.
|
protectedinherited |
Definition at line 195 of file Operator.h.
Referenced by AMP::Operator::Operator::getMemoryLocation().
|
protectedinherited |
Definition at line 193 of file Operator.h.
Referenced by AMP::Operator::Operator::getMesh(), AMP::Operator::Operator::getMesh(), and AMP::Operator::ContactResidualCorrection::setMasterMesh().
|
private |
Mesh indexing functions.
Definition at line 653 of file RadiationDiffusionFDDiscretization.h.
|
private |
Mesh-related data.
MultiDOFManager for managing [E,T] multivectors
Definition at line 619 of file RadiationDiffusionFDDiscretization.h.
|
private |
Definition at line 609 of file RadiationDiffusionFDDiscretization.h.
|
protectedinherited |
Definition at line 90 of file LinearOperator.h.
Referenced by AMP::Operator::LinearOperator::getOutputVariable(), AMP::Operator::IdentityOperator::setOutputVariable(), and AMP::Operator::LinearOperator::setVariables().
|
private |
Prototype of function returning value of pseudo-Neumann BC of T on given boundary at given node. The user can specify any function with this signature via 'setBoundaryFunctionT'
| [in] | boundaryID | ID of the boundary |
| [in] | boundaryPoint | the point in space where the function is to be evaluated (this will be a point on the corresponding boundary) |
Definition at line 790 of file RadiationDiffusionFDDiscretization.h.
|
private |
Reciprocal squares of mesh sizes.
Definition at line 637 of file RadiationDiffusionFDDiscretization.h.
|
private |
Definition at line 608 of file RadiationDiffusionFDDiscretization.h.
|
private |
Prototype of function returning value of Robin BC of E on given boundary at given node. The user can specify any function with this signature via 'setBoundaryFunctionE'
| [in] | boundaryID | ID of the boundary |
| [in] | boundaryPoint | the point in space where the function is to be evaluated (this will be a point on the corresponding boundary) |
Definition at line 781 of file RadiationDiffusionFDDiscretization.h.
|
private |
DOFManager for E and T individually.
Definition at line 621 of file RadiationDiffusionFDDiscretization.h.
|
private |
Definition at line 643 of file RadiationDiffusionFDDiscretization.h.
Definition at line 650 of file RadiationDiffusionFDDiscretization.h.
Definition at line 649 of file RadiationDiffusionFDDiscretization.h.
Indices used for referencing WEST, ORIGIN, and EAST entries in Loc3 data structures.
Definition at line 648 of file RadiationDiffusionFDDiscretization.h.
|
Advanced Multi-Physics (AMP) Oak Ridge National Laboratory Idaho National Laboratory Los Alamos National Laboratory |
This page automatically produced from the source code by Last updated: Tue Mar 10 2026 13:06:44. Comments on this page |