#include <DirichletVectorCorrection.h>

Public Types | |
| typedef std::shared_ptr< AMP::Operator::Operator > | shared_ptr |
Protected Member Functions | |
| void | getBackendFromInput (std::shared_ptr< AMP::Database > db) |
| std::shared_ptr< OperatorParameters > | getJacobianParameters (AMP::LinearAlgebra::Vector::const_shared_ptr) override |
| virtual std::shared_ptr< OperatorParameters > | getJacobianParameters (std::shared_ptr< const AMP::LinearAlgebra::Vector >) |
| AMP::LinearAlgebra::Vector::const_shared_ptr | mySubsetVector (AMP::LinearAlgebra::Vector::const_shared_ptr vec, std::shared_ptr< AMP::LinearAlgebra::Variable > var) |
| AMP::LinearAlgebra::Vector::shared_ptr | mySubsetVector (AMP::LinearAlgebra::Vector::shared_ptr vec, std::shared_ptr< AMP::LinearAlgebra::Variable > var) |
| void | setMemoryAndBackendParameters (std::shared_ptr< AMP::Database > db) |
Protected Attributes | |
| AMP::Utilities::Backend | d_backend = AMP::Utilities::Backend::Serial |
| std::vector< short int > | d_boundaryIds |
| std::vector< std::vector< double > > | d_dirichletValues1 |
| AMP::LinearAlgebra::Vector::shared_ptr | d_dirichletValues2 |
| std::vector< std::vector< size_t > > | d_dofIds |
| int | d_iDebugPrintInfoLevel = 0 |
| int | d_iObject_id |
| bool | d_isAttachedToVolumeOperator = false |
| AMP::Utilities::MemoryType | d_memory_location = AMP::Utilities::MemoryType::none |
| std::shared_ptr< AMP::Mesh::Mesh > | d_Mesh |
| double | d_scalingFactor = 0 |
| bool | d_setResidual = false |
| bool | d_skipParams = false |
| int | d_valuesType = 0 |
| std::shared_ptr< AMP::LinearAlgebra::Variable > | d_variable |
Static Protected Attributes | |
| static int | d_iInstance_id |
A class used to impose Dirichlet boundary conditions for a nonlinear operator. This involves the following steps: 1) Make the initial guess vector for the nonlinear problem satisfy the specified Dirichlet boundary conditions. 2) Make the entries corresponding to Dirichlet boundary conditions in the residual vector always be equal to zero. 3) Make the entries corresponding to Dirichlet boundary conditions in the vector containing updates to the solution always be equal to zero. (1) and (3) together ensure that the solution always satisfies the specified Dirichlet boundary conditions. This can also be used to easily form a RHS vector corresponding to point forces (Dirac delta functions).
Definition at line 20 of file DirichletVectorCorrection.h.
|
inherited |
Definition at line 29 of file Operator.h.
|
explicit |
Constructor
|
inlinevirtual |
Destructor
Definition at line 31 of file DirichletVectorCorrection.h.
|
inlinevirtualinherited |
Reimplemented in AMP::Operator::DirichletMatrixCorrection, AMP::Operator::NeumannVectorCorrection, AMP::Operator::PressureBoundaryOperator, AMP::Operator::RobinMatrixCorrection, AMP::Operator::TractionBoundaryOperator, and AMP::Operator::ColumnBoundaryOperator.
Definition at line 21 of file BoundaryOperator.h.
|
override |
Sets Dirichlet values into the appropriate locations of the output vector (r). This does not affect the remaining values in that vector. u is not used.
|
pure virtualinherited |
This base class can not give a meaningful definition of apply. See the derived classes for how they define apply. Each operator is free to define apply in a way that is appropriate for that operator.
| u | shared pointer to const input vector u |
| f | shared pointer to output vector storing result of applying this operator |
Implemented in AMP::Operator::RadDifOp, AMP::Operator::RadDifOpPJac, AMP::Operator::FunctionOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
| void AMP::Operator::DirichletVectorCorrection::applyNonZeroValues | ( | AMP::LinearAlgebra::Vector::shared_ptr | r | ) |
Referenced by modifyInitialSolutionVector().
| void AMP::Operator::DirichletVectorCorrection::applyResidual | ( | AMP::LinearAlgebra::Vector::const_shared_ptr | u, |
| AMP::LinearAlgebra::Vector::shared_ptr | r | ||
| ) |
| void AMP::Operator::DirichletVectorCorrection::applyZeroValues | ( | AMP::LinearAlgebra::Vector::shared_ptr | r | ) |
Referenced by setRHScorrection().
|
virtualinherited |
Get a input vector ( For \(\mathbf{A(x)}\), \(\mathbf{x}\) is a input vector )
Reimplemented in AMP::Operator::IdentityOperator, AMP::Operator::LinearOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::Operator::BDFRadDifOpPJac, AMP::Operator::RadDifOp, and AMP::Operator::RadDifOpPJac.
|
virtualinherited |
Get a left vector ( For \(\mathbf{y=A(x)}\), \(\mathbf{y}\) is an output vector )
Reimplemented in AMP::Operator::IdentityOperator, AMP::Operator::LinearOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
|
protectedinherited |
Definition at line 84 of file DirichletVectorCorrection.h.
References d_boundaryIds.
Definition at line 86 of file DirichletVectorCorrection.h.
References d_dofIds.
|
inlinevirtualinherited |
Return the input variable.
Reimplemented in AMP::Operator::DirichletMatrixCorrection, AMP::Operator::NeumannVectorCorrection, AMP::Operator::ColumnOperator, AMP::Operator::ConstraintsEliminationOperator, AMP::Operator::ContactResidualCorrection, AMP::Operator::DiffusionNonlinearFEOperator, AMP::Operator::FickSoretNonlinearFEOperator, AMP::Operator::GradientOperator, AMP::Operator::MassLinearFEOperator, AMP::Operator::NodeToGaussPointOperator, AMP::Operator::VolumeIntegralOperator, AMP::Operator::LinearBVPOperator, AMP::Operator::LinearOperator, AMP::Operator::AsyncMapOperator, AMP::Operator::Map1Dto3D, AMP::Operator::Map3Dto1D, AMP::Operator::MapSurface, AMP::Operator::MechanicsNonlinearFEOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::Operator::MoveMeshOperator, AMP::Operator::FirstOperator, AMP::Operator::SecondOperator, AMP::Operator::NonlinearBVPOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::CoupledChannelToCladMapOperator, AMP::Operator::CoupledFlowFrapconOperator, AMP::Operator::FlowFrapconJacobian, AMP::Operator::FlowFrapconOperator, AMP::Operator::SubchannelFourEqNonlinearOperator, AMP::Operator::SubchannelToPointMap, AMP::Operator::SubchannelTwoEqNonlinearOperator, AMP::Operator::TrilinosMatrixShellOperator, AMP::Operator::VectorCopyOperator, and AMP::TimeIntegrator::LinearTimeOperator.
Definition at line 106 of file Operator.h.
|
overrideprotected |
This function returns a parameter object that can be used to reset the corresponding DirichletMatrixCorrection operator.
|
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.
|
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.
|
inlinevirtualinherited |
Return the output variable.
Reimplemented in AMP::Operator::DirichletMatrixCorrection, AMP::Operator::NeumannVectorCorrection, AMP::Operator::ColumnOperator, AMP::Operator::ConstraintsEliminationOperator, AMP::Operator::ContactResidualCorrection, AMP::Operator::CoupledOperator, AMP::Operator::DiffusionNonlinearFEOperator, AMP::Operator::FickSoretNonlinearFEOperator, AMP::Operator::GradientOperator, AMP::Operator::MassLinearFEOperator, AMP::Operator::NodeToGaussPointOperator, AMP::Operator::VolumeIntegralOperator, AMP::Operator::LinearBVPOperator, AMP::Operator::LinearOperator, AMP::Operator::AsyncMapOperator, AMP::Operator::Map1Dto3D, AMP::Operator::Map3Dto1D, AMP::Operator::MapSurface, AMP::Operator::MechanicsNonlinearFEOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::Operator::NeutronicsRhs, AMP::Operator::FirstOperator, AMP::Operator::SecondOperator, AMP::Operator::NonlinearBVPOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::CoupledChannelToCladMapOperator, AMP::Operator::CoupledFlowFrapconOperator, AMP::Operator::FlowFrapconJacobian, AMP::Operator::FlowFrapconOperator, AMP::Operator::SubchannelFourEqNonlinearOperator, AMP::Operator::SubchannelToPointMap, AMP::Operator::SubchannelTwoEqNonlinearOperator, AMP::Operator::TrilinosMatrixShellOperator, AMP::Operator::VectorCopyOperator, AMP::TimeIntegrator::LinearTimeOperator, and AMP::TimeIntegrator::TimeOperator.
Definition at line 100 of file Operator.h.
|
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.
|
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.
|
inlineoverridevirtual |
Reimplemented from AMP::Operator::BoundaryOperator.
Definition at line 77 of file DirichletVectorCorrection.h.
References applyNonZeroValues(), and d_setResidual.
|
protected |
|
protected |
Referenced by setDirichletValues().
|
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.
|
overridevirtual |
This function can be used to change the Dirichlet boundary conditions, if required.
Reimplemented from AMP::Operator::Operator.
|
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.
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.
|
inline |
Function to pass a vector of dirichlet values.
Definition at line 47 of file DirichletVectorCorrection.h.
References d_dirichletValues2, d_variable, and mySubsetVector().
|
protectedinherited |
|
inlineoverridevirtual |
Reimplemented from AMP::Operator::BoundaryOperator.
Definition at line 72 of file DirichletVectorCorrection.h.
References applyZeroValues().
|
inline |
Set the variable for the vector that will used with this operator
Definition at line 39 of file DirichletVectorCorrection.h.
References d_variable.
|
inherited |
Subset input vector.
|
inherited |
Subset input vector.
|
inherited |
Subset output vector.
|
inherited |
Subset output vector.
|
inlineoverridevirtual |
Return the name of the operator.
Implements AMP::Operator::Operator.
Definition at line 34 of file DirichletVectorCorrection.h.
|
protectedinherited |
Definition at line 197 of file Operator.h.
Definition at line 104 of file DirichletVectorCorrection.h.
Referenced by getBoundaryIds().
|
protected |
Definition at line 108 of file DirichletVectorCorrection.h.
|
protected |
Definition at line 110 of file DirichletVectorCorrection.h.
Referenced by setDirichletValues().
|
protected |
Definition at line 106 of file DirichletVectorCorrection.h.
Referenced by getDofIds().
|
protectedinherited |
Definition at line 187 of file Operator.h.
Referenced by AMP::Operator::Operator::setDebugPrintInfoLevel().
|
staticprotectedinherited |
Definition at line 191 of file Operator.h.
|
protectedinherited |
Definition at line 189 of file Operator.h.
Definition at line 115 of file DirichletVectorCorrection.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().
|
protected |
Definition at line 123 of file DirichletVectorCorrection.h.
Definition at line 117 of file DirichletVectorCorrection.h.
Referenced by modifyInitialSolutionVector().
Definition at line 119 of file DirichletVectorCorrection.h.
|
protected |
Definition at line 121 of file DirichletVectorCorrection.h.
|
protected |
Definition at line 113 of file DirichletVectorCorrection.h.
Referenced by setDirichletValues(), and setVariable().
|
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 |