Advanced Multi-Physics (AMP)
On-Line Documentation
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
AMP::Solver::AMG::SASolver Struct Referenceabstract

#include <SASolver.h>

Inheritance diagram for AMP::Solver::AMG::SASolver:
Inheritance graph
[legend]

Public Types

typedef std::shared_ptr< AMP::Solver::SolverStrategyshared_ptr
 
enum class  SolverStatus {
  ConvergedOnAbsTol , ConvergedOnRelTol , ConvergedUserCondition , MaxIterations ,
  DivergedLineSearch , DivergedStepSize , DivergedFunctionCount , DivergedOnNan ,
  DivergedNestedSolver , DivergedOther
}
 

Public Member Functions

virtual void apply (std::shared_ptr< const AMP::LinearAlgebra::Vector > f, std::shared_ptr< AMP::LinearAlgebra::Vector > u)=0
 
void apply (std::shared_ptr< const LinearAlgebra::Vector > f, std::shared_ptr< LinearAlgebra::Vector > u) override
 
AMP::Scalar getAbsoluteTolerance () const
 
bool getConverged (void) const
 
SolverStatus getConvergenceStatus (void) const
 
std::string getConvergenceStatusString (void) const
 
int getDebugPrintInfoLevel (void)
 
AMP::Utilities::ExecutionSpace getExecutionSpace () const
 
void getFromInput (std::shared_ptr< Database >)
 
std::shared_ptr< AMP::LinearAlgebra::VectorgetFunctionScaling ()
 
virtual AMP::Scalar getInitialResidual (void) const
 
virtual const std::vector< int > & getIterationHistory (void)
 
virtual int getIterations (void) const
 
int getMaxIterations (void) const
 
virtual std::shared_ptr< SolverStrategygetNestedSolver (void)
 
virtual std::shared_ptr< AMP::Operator::OperatorgetOperator (void)
 
AMP::Scalar getRelativeTolerance () const
 
virtual AMP::Scalar getResidualNorm (void) const
 
std::shared_ptr< AMP::LinearAlgebra::VectorgetSolutionScaling ()
 
int getTotalNumberOfIterations (void)
 
virtual void initialize (std::shared_ptr< const SolverStrategyParameters > parameters)
 
virtual void print (std::ostream &)
 
virtual void printConvergenceStatus (SolverStrategy::SolverStatus, std::ostream &=AMP::pout) const
 
virtual void printStatistics (std::ostream &os=AMP::pout)
 
virtual void registerOperator (std::shared_ptr< AMP::Operator::Operator > op)
 
void registerOperator (std::shared_ptr< Operator::Operator >) override
 
virtual void registerWriter (std::shared_ptr< AMP::IO::Writer > writer)
 Registers a writer with the solver.
 
virtual void reset (std::shared_ptr< SolverStrategyParameters > parameters)
 
virtual void resetOperator (std::shared_ptr< const AMP::Operator::OperatorParameters > parameters)
 
virtual void residual (std::shared_ptr< const AMP::LinearAlgebra::Vector > f, std::shared_ptr< const AMP::LinearAlgebra::Vector > u, std::shared_ptr< AMP::LinearAlgebra::Vector > r)
 
 SASolver (std::shared_ptr< SolverStrategyParameters >)
 
virtual void setAbsoluteTolerance (AMP::Scalar abs_tol)
 
void setComponentScalings (std::shared_ptr< AMP::LinearAlgebra::Vector > s, std::shared_ptr< AMP::LinearAlgebra::Vector > f)
 for multiphysics problems it may be necessary to scale the solution
 
virtual void setDebugPrintInfoLevel (int print_level)
 
void setExecutionSpace (AMP::Utilities::ExecutionSpace space)
 
virtual void setInitialGuess (std::shared_ptr< AMP::LinearAlgebra::Vector > initialGuess)
 
void setIsNestedSolver (bool is_nested)
 Tell a solver that it is nested inside some outer solver.
 
virtual void setMaxIterations (const int max_iterations)
 
virtual void setNestedSolver (std::shared_ptr< SolverStrategy > solver)
 
virtual void setRelativeTolerance (AMP::Scalar rel_tol)
 
virtual void setZeroInitialGuess (bool use_zero_guess)
 
std::string type () const override
 Return the name of the solver.
 

Static Public Member Functions

static std::unique_ptr< SolverStrategycreateSolver (std::shared_ptr< SolverStrategyParameters > params)
 
static std::string statusToString (SolverStatus status)
 

Protected Member Functions

virtual bool checkStoppingCriteria (AMP::Scalar res_norm, bool check_iters=true)
 
std::unique_ptr< SolverStrategycreateRelaxation (size_t lvl, std::shared_ptr< Operator::Operator > A, std::shared_ptr< AMG::RelaxationParameters > params)
 
void getBaseFromInput (std::shared_ptr< AMP::Database > db)
 
void makeCoarseSolver ()
 
void resetLevelOptions ()
 reset level-by-level options to overall defaults from outer DB
 
void setLevelOptions (const size_t lvl)
 set level-by-level options to match specific level DB if found
 
void setup (std::shared_ptr< LinearAlgebra::Variable > xVar, std::shared_ptr< LinearAlgebra::Variable > bVar)
 
void smoothP_JacobiL1 (std::shared_ptr< LinearAlgebra::Matrix > A, std::shared_ptr< LinearAlgebra::Matrix > &P) const
 

Protected Attributes

std::string d_agg_type
 Aggregation method for producing tentative prolongator.
 
std::shared_ptr< AMG::Aggregatord_aggregator
 Aggregator, may be replaced as level-by-level settings are updated.
 
bool d_bComputeResidual = false
 
bool d_bIsNestedSolver = false
 
bool d_bUseZeroInitialGuess = true
 
std::unique_ptr< SolverStrategyd_coarse_solver
 Coarse level solver.
 
std::shared_ptr< SolverStrategyParametersd_coarse_solver_params
 Parameters defining coarse level solver.
 
CoarsenSettings d_coarsen_settings
 Settings applicable to all coarsening methods.
 
SolverStatus d_ConvergenceStatus = SolverStatus::DivergedOther
 
KappaKCycle::settings d_cycle_settings
 Cycle type, tolerance, kappa value.
 
AMP::Scalar d_dAbsoluteTolerance = 1.0e-14
 
std::shared_ptr< AMP::Databased_db = nullptr
 
AMP::Scalar d_dInitialResidual
 
AMP::Scalar d_dRelativeTolerance = 1.0e-09
 
AMP::Scalar d_dResidualNorm
 
AMP::Utilities::ExecutionSpace d_exec_space = AMP::Utilities::ExecutionSpace::unspecified
 execution space for the solver
 
std::shared_ptr< AMP::Databased_global_db = nullptr
 
int d_iDebugPrintInfoLevel = 0
 
int d_iMaxIterations = 0
 
int d_iNumberIterations = 0
 
int d_iObjectId
 
std::vector< intd_iterationHistory
 keeps track of iteration statistics over solver lifetime
 
std::vector< AMG::KCycleLeveld_levels
 storage for all levels in hierarchy
 
size_t d_max_levels
 Maximum depth of AMG hierarchy.
 
Utilities::MemoryType d_mem_loc
 Memory location for all given operator and all internally created operators.
 
AMP::Utilities::MemoryType d_memory_location = AMP::Utilities::MemoryType::none
 memory storage address space
 
size_t d_min_coarse_global
 Smallest number of global rows allowed in operator, terminates hierarchy.
 
int d_min_coarse_local
 Smallest number of locally owned rows allowed in operator, terminates hierarchy.
 
int d_num_smooth_prol
 Number of smoothing steps applied to tentative prolongator.
 
PairwiseCoarsenSettings d_pair_coarsen_settings
 Settings specific to pairwise coarsening method.
 
std::shared_ptr< AMP::LinearAlgebra::Vectord_pFunctionScaling
 
std::shared_ptr< AMP::Solver::SolverStrategyd_pNestedSolver = nullptr
 nested solver used by this solver
 
std::shared_ptr< AMP::Operator::Operatord_pOperator = nullptr
 
std::shared_ptr< AMP::Databased_post_relax_db
 Database defining post-cycle relaxation solver.
 
std::shared_ptr< AMG::RelaxationParametersd_post_relax_params
 Parameters read from d_post_relax_db.
 
std::shared_ptr< AMP::Databased_pre_relax_db
 Database defining pre-cycle relaxation solver.
 
std::shared_ptr< AMG::RelaxationParametersd_pre_relax_params
 Parameters read from d_pre_relax_db.
 
float d_prol_spec_lower
 Lower bound on spectrum for prolongator smoother, must be in (0,1)
 
float d_prol_trunc
 Truncation parameter for pruning smoothed prolongator, removes [-trunc,trunc].
 
std::shared_ptr< AMP::LinearAlgebra::Vectord_pSolutionScaling
 
bool d_save_to_file
 flag to save hierarchy after setup phase
 
std::string d_save_to_file_name
 base path+name for saving hierarchy
 
bool d_save_to_file_on_ftc
 flag to save hierarchy after failure to converge
 
std::string d_sName
 
std::shared_ptr< AMP::IO::Writerd_writer = nullptr
 

Static Protected Attributes

static int d_iInstanceId
 

Detailed Description

Definition at line 23 of file SASolver.h.

Member Typedef Documentation

◆ shared_ptr

Definition at line 30 of file SolverStrategy.h.

Member Enumeration Documentation

◆ SolverStatus

Enumerator
ConvergedOnAbsTol 
ConvergedOnRelTol 
ConvergedUserCondition 
MaxIterations 
DivergedLineSearch 
DivergedStepSize 
DivergedFunctionCount 
DivergedOnNan 
DivergedNestedSolver 
DivergedOther 

Definition at line 62 of file SolverStrategy.h.

Constructor & Destructor Documentation

◆ SASolver()

AMP::Solver::AMG::SASolver::SASolver ( std::shared_ptr< SolverStrategyParameters )
explicit

Member Function Documentation

◆ apply() [1/2]

virtual void AMP::Solver::SolverStrategy::apply ( std::shared_ptr< const AMP::LinearAlgebra::Vector f,
std::shared_ptr< AMP::LinearAlgebra::Vector u 
)
pure virtualinherited

◆ apply() [2/2]

void AMP::Solver::AMG::SASolver::apply ( std::shared_ptr< const LinearAlgebra::Vector f,
std::shared_ptr< LinearAlgebra::Vector u 
)
override

◆ checkStoppingCriteria()

virtual bool AMP::Solver::SolverStrategy::checkStoppingCriteria ( AMP::Scalar  res_norm,
bool  check_iters = true 
)
protectedvirtualinherited

◆ createRelaxation()

std::unique_ptr< SolverStrategy > AMP::Solver::AMG::SASolver::createRelaxation ( size_t  lvl,
std::shared_ptr< Operator::Operator A,
std::shared_ptr< AMG::RelaxationParameters params 
)
protected

◆ createSolver()

static std::unique_ptr< SolverStrategy > AMP::Solver::AMG::SASolver::createSolver ( std::shared_ptr< SolverStrategyParameters params)
inlinestatic

Definition at line 28 of file SASolver.h.

◆ getAbsoluteTolerance()

AMP::Scalar AMP::Solver::SolverStrategy::getAbsoluteTolerance ( ) const
inlineinherited

◆ getBaseFromInput()

void AMP::Solver::SolverStrategy::getBaseFromInput ( std::shared_ptr< AMP::Database db)
protectedinherited

◆ getConverged()

bool AMP::Solver::SolverStrategy::getConverged ( void  ) const
inlineinherited

◆ getConvergenceStatus()

SolverStatus AMP::Solver::SolverStrategy::getConvergenceStatus ( void  ) const
inlineinherited

◆ getConvergenceStatusString()

std::string AMP::Solver::SolverStrategy::getConvergenceStatusString ( void  ) const
inlineinherited

◆ getDebugPrintInfoLevel()

int AMP::Solver::SolverStrategy::getDebugPrintInfoLevel ( void  )
inlineinherited

Get level of diagnostic information printed during iterations.

Definition at line 137 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_iDebugPrintInfoLevel.

◆ getExecutionSpace()

AMP::Utilities::ExecutionSpace AMP::Solver::SolverStrategy::getExecutionSpace ( ) const
inlineinherited

Definition at line 269 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_exec_space.

◆ getFromInput()

void AMP::Solver::AMG::SASolver::getFromInput ( std::shared_ptr< Database )

◆ getFunctionScaling()

std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::Solver::SolverStrategy::getFunctionScaling ( )
inlineinherited

Definition at line 267 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_pFunctionScaling.

◆ getInitialResidual()

virtual AMP::Scalar AMP::Solver::SolverStrategy::getInitialResidual ( void  ) const
inlinevirtualinherited

Definition at line 241 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_dInitialResidual.

◆ getIterationHistory()

virtual const std::vector< int > & AMP::Solver::SolverStrategy::getIterationHistory ( void  )
inlinevirtualinherited

Definition at line 243 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_iterationHistory.

◆ getIterations()

virtual int AMP::Solver::SolverStrategy::getIterations ( void  ) const
inlinevirtualinherited

Return the number of iterations taken by the solver to converge.

Definition at line 142 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_iNumberIterations.

◆ getMaxIterations()

int AMP::Solver::SolverStrategy::getMaxIterations ( void  ) const
inlineinherited

Definition at line 218 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_iMaxIterations.

◆ getNestedSolver()

virtual std::shared_ptr< SolverStrategy > AMP::Solver::SolverStrategy::getNestedSolver ( void  )
inlinevirtualinherited

Return a nested solver (eg preconditioner) if it exists. By default return a nullptr

Reimplemented in AMP::Solver::PetscSNESSolver.

Definition at line 172 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_pNestedSolver.

◆ getOperator()

virtual std::shared_ptr< AMP::Operator::Operator > AMP::Solver::SolverStrategy::getOperator ( void  )
virtualinherited

Return a shared pointer to the operator registered with the solver.

◆ getRelativeTolerance()

AMP::Scalar AMP::Solver::SolverStrategy::getRelativeTolerance ( ) const
inlineinherited

◆ getResidualNorm()

virtual AMP::Scalar AMP::Solver::SolverStrategy::getResidualNorm ( void  ) const
inlinevirtualinherited

Definition at line 239 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_dResidualNorm.

◆ getSolutionScaling()

std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::Solver::SolverStrategy::getSolutionScaling ( )
inlineinherited

Definition at line 266 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_pSolutionScaling.

◆ getTotalNumberOfIterations()

int AMP::Solver::SolverStrategy::getTotalNumberOfIterations ( void  )
inherited

◆ initialize()

virtual void AMP::Solver::SolverStrategy::initialize ( std::shared_ptr< const SolverStrategyParameters parameters)
virtualinherited

◆ makeCoarseSolver()

void AMP::Solver::AMG::SASolver::makeCoarseSolver ( )
protected

◆ print()

virtual void AMP::Solver::SolverStrategy::print ( std::ostream &  )
inlinevirtualinherited

Definition at line 237 of file SolverStrategy.h.

◆ printConvergenceStatus()

virtual void AMP::Solver::SolverStrategy::printConvergenceStatus ( SolverStrategy::SolverStatus  ,
std::ostream &  = AMP::pout 
) const
inlinevirtualinherited

Reimplemented in AMP::Solver::PetscSNESSolver.

Definition at line 251 of file SolverStrategy.h.

◆ printStatistics()

virtual void AMP::Solver::SolverStrategy::printStatistics ( std::ostream &  os = AMP::pout)
inlinevirtualinherited

Reimplemented in AMP::Solver::NonlinearKrylovAccelerator< T >.

Definition at line 220 of file SolverStrategy.h.

◆ registerOperator() [1/2]

virtual void AMP::Solver::SolverStrategy::registerOperator ( std::shared_ptr< AMP::Operator::Operator op)
virtualinherited

◆ registerOperator() [2/2]

void AMP::Solver::AMG::SASolver::registerOperator ( std::shared_ptr< Operator::Operator )
override

◆ registerWriter()

virtual void AMP::Solver::SolverStrategy::registerWriter ( std::shared_ptr< AMP::IO::Writer writer)
inlinevirtualinherited

Registers a writer with the solver.

This function will register a writer with the solver. The solver may then register any vector components it "owns" with the writer.

Parameters
writerThe writer to register

Definition at line 186 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_writer.

◆ reset()

virtual void AMP::Solver::SolverStrategy::reset ( std::shared_ptr< SolverStrategyParameters parameters)
virtualinherited

◆ resetLevelOptions()

void AMP::Solver::AMG::SASolver::resetLevelOptions ( )
protected

reset level-by-level options to overall defaults from outer DB

◆ resetOperator()

virtual void AMP::Solver::SolverStrategy::resetOperator ( std::shared_ptr< const AMP::Operator::OperatorParameters parameters)
virtualinherited

Resets the operator registered with the solver with new parameters if necessary

Parameters
parametersOperatorParameters object that is NULL by default

Reimplemented in AMP::Solver::PetscKrylovSolver, AMP::Solver::BandedSolver, AMP::Solver::ColumnSolver, AMP::Solver::HypreSolver, AMP::Solver::CoupledFlow1DSolver, AMP::Solver::Flow1DSolver, AMP::Solver::PelletStackMechanicsSolver, AMP::Solver::TrilinosMLSolver, and AMP::Solver::TrilinosMueLuSolver.

◆ residual()

virtual void AMP::Solver::SolverStrategy::residual ( std::shared_ptr< const AMP::LinearAlgebra::Vector f,
std::shared_ptr< const AMP::LinearAlgebra::Vector u,
std::shared_ptr< AMP::LinearAlgebra::Vector r 
)
virtualinherited

◆ setAbsoluteTolerance()

virtual void AMP::Solver::SolverStrategy::setAbsoluteTolerance ( AMP::Scalar  abs_tol)
inlinevirtualinherited

◆ setComponentScalings()

void AMP::Solver::SolverStrategy::setComponentScalings ( std::shared_ptr< AMP::LinearAlgebra::Vector s,
std::shared_ptr< AMP::LinearAlgebra::Vector f 
)
inlineinherited

for multiphysics problems it may be necessary to scale the solution

Definition at line 259 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_pFunctionScaling, and AMP::Solver::SolverStrategy::d_pSolutionScaling.

◆ setDebugPrintInfoLevel()

virtual void AMP::Solver::SolverStrategy::setDebugPrintInfoLevel ( int  print_level)
inlinevirtualinherited

Specify level of diagnostic information printed during iterations.

Parameters
[in]print_levelinteger level value with permissible values 0 and higher. Setting to zero should provide minimial debugging information with higher values resulting in increasingly verbose information being printed out.

Definition at line 132 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_iDebugPrintInfoLevel.

◆ setExecutionSpace()

void AMP::Solver::SolverStrategy::setExecutionSpace ( AMP::Utilities::ExecutionSpace  space)
inlineinherited

Definition at line 270 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_exec_space.

◆ setInitialGuess()

virtual void AMP::Solver::SolverStrategy::setInitialGuess ( std::shared_ptr< AMP::LinearAlgebra::Vector initialGuess)
virtualinherited

Provide the initial guess for the solver. This is a pure virtual function that the derived classes need to provide an implementation of.

Parameters
[in]initialGuessshared pointer to the initial guess vector.

Reimplemented in AMP::Solver::ColumnSolver, AMP::Solver::CoupledFlow1DSolver, AMP::Solver::Flow1DSolver, AMP::Solver::PetscSNESSolver, and AMP::Solver::TrilinosNOXSolver.

◆ setIsNestedSolver()

void AMP::Solver::SolverStrategy::setIsNestedSolver ( bool  is_nested)
inlineinherited

Tell a solver that it is nested inside some outer solver.

Definition at line 166 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_bIsNestedSolver.

◆ setLevelOptions()

void AMP::Solver::AMG::SASolver::setLevelOptions ( const size_t  lvl)
protected

set level-by-level options to match specific level DB if found

◆ setMaxIterations()

virtual void AMP::Solver::SolverStrategy::setMaxIterations ( const int  max_iterations)
inlinevirtualinherited

Definition at line 216 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_iMaxIterations.

◆ setNestedSolver()

virtual void AMP::Solver::SolverStrategy::setNestedSolver ( std::shared_ptr< SolverStrategy solver)
inlinevirtualinherited

Set a nested solver, eg, Krylov for Newton, preconditioner for Krylov etc. Null op in base class

Definition at line 159 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_pNestedSolver.

◆ setRelativeTolerance()

virtual void AMP::Solver::SolverStrategy::setRelativeTolerance ( AMP::Scalar  rel_tol)
inlinevirtualinherited

◆ setup()

void AMP::Solver::AMG::SASolver::setup ( std::shared_ptr< LinearAlgebra::Variable xVar,
std::shared_ptr< LinearAlgebra::Variable bVar 
)
protected

◆ setZeroInitialGuess()

virtual void AMP::Solver::SolverStrategy::setZeroInitialGuess ( bool  use_zero_guess)
inlinevirtualinherited

Tells the solver to use an initial guess of zero and not try to copy an initial guess into the solution vector

Parameters
[in]use_zero_guessboolean to specify whether zero initial guess should be used or not.

Reimplemented in AMP::Solver::PetscKrylovSolver.

Definition at line 150 of file SolverStrategy.h.

References AMP::Solver::SolverStrategy::d_bUseZeroInitialGuess.

◆ smoothP_JacobiL1()

void AMP::Solver::AMG::SASolver::smoothP_JacobiL1 ( std::shared_ptr< LinearAlgebra::Matrix A,
std::shared_ptr< LinearAlgebra::Matrix > &  P 
) const
protected

◆ statusToString()

static std::string AMP::Solver::SolverStrategy::statusToString ( SolverStatus  status)
inlinestaticinherited

◆ type()

std::string AMP::Solver::AMG::SASolver::type ( ) const
inlineoverridevirtual

Return the name of the solver.

Implements AMP::Solver::SolverStrategy.

Definition at line 33 of file SASolver.h.

Member Data Documentation

◆ d_agg_type

std::string AMP::Solver::AMG::SASolver::d_agg_type
protected

Aggregation method for producing tentative prolongator.

Definition at line 69 of file SASolver.h.

◆ d_aggregator

std::shared_ptr<AMG::Aggregator> AMP::Solver::AMG::SASolver::d_aggregator
protected

Aggregator, may be replaced as level-by-level settings are updated.

Definition at line 82 of file SASolver.h.

◆ d_bComputeResidual

bool AMP::Solver::SolverStrategy::d_bComputeResidual = false
protectedinherited

Definition at line 295 of file SolverStrategy.h.

◆ d_bIsNestedSolver

bool AMP::Solver::SolverStrategy::d_bIsNestedSolver = false
protectedinherited

Definition at line 294 of file SolverStrategy.h.

Referenced by AMP::Solver::SolverStrategy::setIsNestedSolver().

◆ d_bUseZeroInitialGuess

bool AMP::Solver::SolverStrategy::d_bUseZeroInitialGuess = true
protectedinherited

◆ d_coarse_solver

std::unique_ptr<SolverStrategy> AMP::Solver::AMG::SASolver::d_coarse_solver
protected

Coarse level solver.

Definition at line 90 of file SASolver.h.

◆ d_coarse_solver_params

std::shared_ptr<SolverStrategyParameters> AMP::Solver::AMG::SASolver::d_coarse_solver_params
protected

Parameters defining coarse level solver.

Definition at line 88 of file SASolver.h.

◆ d_coarsen_settings

CoarsenSettings AMP::Solver::AMG::SASolver::d_coarsen_settings
protected

Settings applicable to all coarsening methods.

Definition at line 71 of file SASolver.h.

◆ d_ConvergenceStatus

SolverStatus AMP::Solver::SolverStrategy::d_ConvergenceStatus = SolverStatus::DivergedOther
protectedinherited

◆ d_cycle_settings

KappaKCycle::settings AMP::Solver::AMG::SASolver::d_cycle_settings
protected

Cycle type, tolerance, kappa value.

Definition at line 53 of file SASolver.h.

◆ d_dAbsoluteTolerance

AMP::Scalar AMP::Solver::SolverStrategy::d_dAbsoluteTolerance = 1.0e-14
protectedinherited

◆ d_db

std::shared_ptr<AMP::Database> AMP::Solver::SolverStrategy::d_db = nullptr
protectedinherited

Definition at line 304 of file SolverStrategy.h.

◆ d_dInitialResidual

AMP::Scalar AMP::Solver::SolverStrategy::d_dInitialResidual
protectedinherited

Definition at line 285 of file SolverStrategy.h.

Referenced by AMP::Solver::SolverStrategy::getInitialResidual().

◆ d_dRelativeTolerance

AMP::Scalar AMP::Solver::SolverStrategy::d_dRelativeTolerance = 1.0e-09
protectedinherited

◆ d_dResidualNorm

AMP::Scalar AMP::Solver::SolverStrategy::d_dResidualNorm
protectedinherited

Definition at line 284 of file SolverStrategy.h.

Referenced by AMP::Solver::SolverStrategy::getResidualNorm().

◆ d_exec_space

AMP::Utilities::ExecutionSpace AMP::Solver::SolverStrategy::d_exec_space = AMP::Utilities::ExecutionSpace::unspecified
protectedinherited

execution space for the solver

Definition at line 324 of file SolverStrategy.h.

Referenced by AMP::Solver::SolverStrategy::getExecutionSpace(), and AMP::Solver::SolverStrategy::setExecutionSpace().

◆ d_global_db

std::shared_ptr<AMP::Database> AMP::Solver::SolverStrategy::d_global_db = nullptr
protectedinherited

Pointer to global database This is temporary fix and eventually either d_global_db or d_db should go away This is introduced to allow for solver factories to access databases in the global database for the construction of nested solvers

Definition at line 311 of file SolverStrategy.h.

◆ d_iDebugPrintInfoLevel

int AMP::Solver::SolverStrategy::d_iDebugPrintInfoLevel = 0
protectedinherited

◆ d_iInstanceId

int AMP::Solver::SolverStrategy::d_iInstanceId
staticprotectedinherited

Definition at line 299 of file SolverStrategy.h.

◆ d_iMaxIterations

int AMP::Solver::SolverStrategy::d_iMaxIterations = 0
protectedinherited

◆ d_iNumberIterations

int AMP::Solver::SolverStrategy::d_iNumberIterations = 0
protectedinherited

Definition at line 280 of file SolverStrategy.h.

Referenced by AMP::Solver::SolverStrategy::getIterations().

◆ d_iObjectId

int AMP::Solver::SolverStrategy::d_iObjectId
protectedinherited

Definition at line 297 of file SolverStrategy.h.

◆ d_iterationHistory

std::vector<int> AMP::Solver::SolverStrategy::d_iterationHistory
protectedinherited

keeps track of iteration statistics over solver lifetime

Definition at line 302 of file SolverStrategy.h.

Referenced by AMP::Solver::SolverStrategy::getIterationHistory().

◆ d_levels

std::vector<AMG::KCycleLevel> AMP::Solver::AMG::SASolver::d_levels
protected

storage for all levels in hierarchy

Definition at line 80 of file SASolver.h.

◆ d_max_levels

size_t AMP::Solver::AMG::SASolver::d_max_levels
protected

Maximum depth of AMG hierarchy.

Definition at line 47 of file SASolver.h.

◆ d_mem_loc

Utilities::MemoryType AMP::Solver::AMG::SASolver::d_mem_loc
protected

Memory location for all given operator and all internally created operators.

Definition at line 45 of file SASolver.h.

◆ d_memory_location

AMP::Utilities::MemoryType AMP::Solver::SolverStrategy::d_memory_location = AMP::Utilities::MemoryType::none
protectedinherited

memory storage address space

Definition at line 327 of file SolverStrategy.h.

◆ d_min_coarse_global

size_t AMP::Solver::AMG::SASolver::d_min_coarse_global
protected

Smallest number of global rows allowed in operator, terminates hierarchy.

Definition at line 51 of file SASolver.h.

◆ d_min_coarse_local

int AMP::Solver::AMG::SASolver::d_min_coarse_local
protected

Smallest number of locally owned rows allowed in operator, terminates hierarchy.

Definition at line 49 of file SASolver.h.

◆ d_num_smooth_prol

int AMP::Solver::AMG::SASolver::d_num_smooth_prol
protected

Number of smoothing steps applied to tentative prolongator.

Definition at line 63 of file SASolver.h.

◆ d_pair_coarsen_settings

PairwiseCoarsenSettings AMP::Solver::AMG::SASolver::d_pair_coarsen_settings
protected

Settings specific to pairwise coarsening method.

Definition at line 73 of file SASolver.h.

◆ d_pFunctionScaling

std::shared_ptr<AMP::LinearAlgebra::Vector> AMP::Solver::SolverStrategy::d_pFunctionScaling
protectedinherited

◆ d_pNestedSolver

std::shared_ptr<AMP::Solver::SolverStrategy> AMP::Solver::SolverStrategy::d_pNestedSolver = nullptr
protectedinherited

nested solver used by this solver

Definition at line 319 of file SolverStrategy.h.

Referenced by AMP::Solver::SolverStrategy::getNestedSolver(), and AMP::Solver::SolverStrategy::setNestedSolver().

◆ d_pOperator

std::shared_ptr<AMP::Operator::Operator> AMP::Solver::SolverStrategy::d_pOperator = nullptr
protectedinherited

Definition at line 316 of file SolverStrategy.h.

◆ d_post_relax_db

std::shared_ptr<AMP::Database> AMP::Solver::AMG::SASolver::d_post_relax_db
protected

Database defining post-cycle relaxation solver.

Definition at line 77 of file SASolver.h.

◆ d_post_relax_params

std::shared_ptr<AMG::RelaxationParameters> AMP::Solver::AMG::SASolver::d_post_relax_params
protected

Parameters read from d_post_relax_db.

Definition at line 86 of file SASolver.h.

◆ d_pre_relax_db

std::shared_ptr<AMP::Database> AMP::Solver::AMG::SASolver::d_pre_relax_db
protected

Database defining pre-cycle relaxation solver.

Definition at line 75 of file SASolver.h.

◆ d_pre_relax_params

std::shared_ptr<AMG::RelaxationParameters> AMP::Solver::AMG::SASolver::d_pre_relax_params
protected

Parameters read from d_pre_relax_db.

Definition at line 84 of file SASolver.h.

◆ d_prol_spec_lower

float AMP::Solver::AMG::SASolver::d_prol_spec_lower
protected

Lower bound on spectrum for prolongator smoother, must be in (0,1)

Definition at line 65 of file SASolver.h.

◆ d_prol_trunc

float AMP::Solver::AMG::SASolver::d_prol_trunc
protected

Truncation parameter for pruning smoothed prolongator, removes [-trunc,trunc].

Definition at line 67 of file SASolver.h.

◆ d_pSolutionScaling

std::shared_ptr<AMP::LinearAlgebra::Vector> AMP::Solver::SolverStrategy::d_pSolutionScaling
protectedinherited

◆ d_save_to_file

bool AMP::Solver::AMG::SASolver::d_save_to_file
protected

flag to save hierarchy after setup phase

Definition at line 55 of file SASolver.h.

◆ d_save_to_file_name

std::string AMP::Solver::AMG::SASolver::d_save_to_file_name
protected

base path+name for saving hierarchy

Definition at line 59 of file SASolver.h.

◆ d_save_to_file_on_ftc

bool AMP::Solver::AMG::SASolver::d_save_to_file_on_ftc
protected

flag to save hierarchy after failure to converge

Definition at line 57 of file SASolver.h.

◆ d_sName

std::string AMP::Solver::SolverStrategy::d_sName
protectedinherited

Definition at line 278 of file SolverStrategy.h.

◆ d_writer

std::shared_ptr<AMP::IO::Writer> AMP::Solver::SolverStrategy::d_writer = nullptr
protectedinherited

Definition at line 321 of file SolverStrategy.h.

Referenced by AMP::Solver::SolverStrategy::registerWriter().


The documentation for this struct was generated from the following file:



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:45.
Comments on this page