|
libMesh
|
This class provides an interface to PETSc iterative solvers that is compatible with the libMesh NonlinearSolver<>
More...
#include <petsc_nonlinear_solver.h>
Classes | |
| class | ComputeLineSearchObject |
| Abstract base class to be used to implement a custom line-search algorithm. More... | |
Public Types | |
| typedef NonlinearImplicitSystem | sys_type |
| The type of system. | |
Public Member Functions | |
| PetscNonlinearSolver (sys_type &system) | |
| Constructor. | |
| ~PetscNonlinearSolver () | |
| Destructor. | |
| virtual void | clear () override |
| Release all memory and clear data structures. | |
| virtual void | init (const char *name=nullptr) override |
| Initialize data structures if not done so already. | |
| SNES | snes (const char *name=nullptr) |
| virtual std::pair< unsigned int, Real > | solve (SparseMatrix< T > &pre_in, NumericVector< T > &, NumericVector< T > &, const double, const unsigned int) override |
| Call the Petsc solver, using the same matrix for the system and preconditioner matrices. | |
| virtual std::pair< unsigned int, Real > | solve (SparseMatrix< T > &jac_in, SparseMatrix< T > &pre_in, NumericVector< T > &, NumericVector< T > &, const double, const unsigned int) override |
Call the Petsc solver, using jac_in as the actual SNES Jacobian operator (Amat) and pre_in as the preconditioning matrix (Pmat). | |
| virtual void | print_converged_reason () override |
| Prints a useful message about why the latest nonlinear solve con(di)verged. | |
| SNESConvergedReason | get_converged_reason () |
| virtual int | get_total_linear_iterations () override |
| Get the total number of linear iterations done in the last solve. | |
| virtual unsigned | get_current_nonlinear_iteration_number () const override |
| void | set_residual_zero_out (bool state) |
| Set if the residual should be zeroed out in the callback. | |
| void | set_jacobian_zero_out (bool state) |
| Set if the jacobian should be zeroed out in the callback. | |
| void | use_default_monitor (bool state) |
| Set to true to use the libMesh's default monitor, set to false to use your own. | |
| void | set_snesmf_reuse_base (bool state) |
| Set to true to let PETSc reuse the base vector. | |
| bool | snes_mf_reuse_base () const |
| void | set_reproducible_residual (bool state) |
| Set whether evaluating the residual twice at the same solution gives exactly the same result. | |
| bool | reproducible_residual () const |
| void | set_computing_base_vector (bool computing_base_vector) |
| Set whether we are computing the base vector for matrix-free finite-differencing. | |
| bool | computing_base_vector () const |
| void | setup_default_monitor () |
| Setup the default monitor if required. | |
| virtual bool | reuse_preconditioner () const override |
| Getter for preconditioner reuse. | |
| virtual unsigned int | reuse_preconditioner_max_linear_its () const override |
| Getter for the maximum iterations flag for preconditioner reuse. | |
| virtual void | force_new_preconditioner () override |
| Immediately force a new preconditioner, even if reuse is set. | |
| bool | initialized () const |
| const sys_type & | system () const |
| sys_type & | system () |
| void | attach_preconditioner (Preconditioner< T > *preconditioner) |
| Attaches a Preconditioner object to be used during the linear solves. | |
| void | set_solver_configuration (SolverConfiguration &solver_configuration) |
| Set the solver configuration object. | |
| virtual void | set_reuse_preconditioner (bool reuse) |
| Set the reuse preconditioner flag. | |
| virtual void | set_reuse_preconditioner_max_linear_its (unsigned int i) |
| Set the reuse_preconditioner_max_linear_its parameter. | |
| virtual void | set_exact_constraint_enforcement (bool enable) |
Enable (or disable; it is true by default) exact enforcement of constraints at the solver level, correcting any constrained DoF coefficients in current_local_solution as well as applying nonlinear residual and Jacobian terms based on constraint equations. | |
| bool | exact_constraint_enforcement () |
| const Parallel::Communicator & | comm () const |
| processor_id_type | n_processors () const |
| processor_id_type | processor_id () const |
Static Public Member Functions | |
| static std::unique_ptr< NonlinearSolver< T > > | build (sys_type &s, const SolverPackage solver_package=libMesh::default_solver_package()) |
Builds a NonlinearSolver using the nonlinear solver package specified by solver_package. | |
| static std::string | get_info () |
| Gets a string containing the reference information. | |
| static void | print_info (std::ostream &out_stream=libMesh::out) |
Prints the reference information, by default to libMesh::out. | |
| static unsigned int | n_objects () |
| Prints the number of outstanding (created, but not yet destroyed) objects. | |
| static void | enable_print_counter_info () |
| Methods to enable/disable the reference counter output from print_info(). | |
| static void | disable_print_counter_info () |
Public Attributes | |
| std::unique_ptr< ComputeLineSearchObject > | linesearch_object |
| A callable object that can be used to specify a custom line-search. | |
| void(* | residual )(const NumericVector< Number > &X, NumericVector< Number > &R, sys_type &S) |
Function that computes the residual R(X) of the nonlinear system at the input iterate X. | |
| NonlinearImplicitSystem::ComputeResidual * | residual_object |
Object that computes the residual R(X) of the nonlinear system at the input iterate X. | |
| NonlinearImplicitSystem::ComputeResidual * | fd_residual_object |
Object that computes the residual R(X) of the nonlinear system at the input iterate X for the purpose of forming a finite-differenced Jacobian. | |
| NonlinearImplicitSystem::ComputeResidual * | mffd_residual_object |
Object that computes the residual R(X) of the nonlinear system at the input iterate X for the purpose of forming Jacobian-vector products via finite differencing. | |
| void(* | jacobian )(const NumericVector< Number > &X, SparseMatrix< Number > &J, sys_type &S) |
Function that computes the Jacobian J(X) of the nonlinear system at the input iterate X. | |
| NonlinearImplicitSystem::ComputeJacobian * | jacobian_object |
Object that computes the Jacobian J(X) of the nonlinear system at the input iterate X. | |
| void(* | matvec )(const NumericVector< Number > &X, NumericVector< Number > *R, SparseMatrix< Number > *J, sys_type &S) |
| Function that computes either the residual \( R(X) \) or the Jacobian \( J(X) \) of the nonlinear system at the input iterate \( X \). | |
| NonlinearImplicitSystem::ComputeResidualandJacobian * | residual_and_jacobian_object |
| Object that computes either the residual \( R(X) \) or the Jacobian \( J(X) \) of the nonlinear system at the input iterate \( X \). | |
| void(* | bounds )(NumericVector< Number > &XL, NumericVector< Number > &XU, sys_type &S) |
Function that computes the lower and upper bounds XL and XU on the solution of the nonlinear system. | |
| NonlinearImplicitSystem::ComputeBounds * | bounds_object |
| Object that computes the bounds vectors \( XL \) and \( XU \). | |
| void(* | nullspace )(std::vector< NumericVector< Number > * > &sp, sys_type &S) |
| Function that computes a basis for the Jacobian's nullspace – the kernel or the "zero energy modes" – that can be used in solving a degenerate problem iteratively, if the solver supports it (e.g., PETSc's KSP). | |
| NonlinearImplicitSystem::ComputeVectorSubspace * | nullspace_object |
| A callable object that computes a basis for the Jacobian's nullspace – the kernel or the "zero energy modes" – that can be used in solving a degenerate problem iteratively, if the solver supports it (e.g., PETSc's KSP). | |
| void(* | transpose_nullspace )(std::vector< NumericVector< Number > * > &sp, sys_type &S) |
| Function that computes a basis for the transpose Jacobian's nullspace – when solving a degenerate problem iteratively, if the solver supports it (e.g., PETSc's KSP), it is used to remove contributions outside of R(jac) | |
| NonlinearImplicitSystem::ComputeVectorSubspace * | transpose_nullspace_object |
| A callable object that computes a basis for the transpose Jacobian's nullspace – when solving a degenerate problem iteratively, if the solver supports it (e.g., PETSc's KSP), it is used to remove contributions outside of R(jac) | |
| void(* | nearnullspace )(std::vector< NumericVector< Number > * > &sp, sys_type &S) |
| Function that computes a basis for the Jacobian's near nullspace – the set of "low energy modes" – that can be used for AMG coarsening, if the solver supports it (e.g., ML, PETSc's GAMG). | |
| NonlinearImplicitSystem::ComputeVectorSubspace * | nearnullspace_object |
| A callable object that computes a basis for the Jacobian's near nullspace – the set of "low energy modes" – that can be used for AMG coarsening, if the solver supports it (e.g., ML, PETSc's GAMG). | |
| void(* | user_presolve )(sys_type &S) |
| Customizable function pointer which users can attach to the solver. | |
| void(* | postcheck )(const NumericVector< Number > &old_soln, NumericVector< Number > &search_direction, NumericVector< Number > &new_soln, bool &changed_search_direction, bool &changed_new_soln, sys_type &S) |
| Function that performs a "check" on the Newton search direction and solution after each nonlinear step. | |
| NonlinearImplicitSystem::ComputePostCheck * | postcheck_object |
| A callable object that is executed after each nonlinear iteration. | |
| NonlinearImplicitSystem::ComputePreCheck * | precheck_object |
| unsigned int | max_nonlinear_iterations |
| Maximum number of non-linear iterations. | |
| unsigned int | max_function_evaluations |
| Maximum number of function evaluations. | |
| double | absolute_residual_tolerance |
| The NonlinearSolver should exit after the residual is reduced to either less than absolute_residual_tolerance or less than relative_residual_tolerance times the initial residual. | |
| double | relative_residual_tolerance |
| double | divergence_tolerance |
| The NonlinearSolver should exit if the residual becomes greater than the initial residual times the divergence_tolerance. | |
| double | absolute_step_tolerance |
| The NonlinearSolver should exit after the full nonlinear step norm is reduced to either less than absolute_step_tolerance or less than relative_step_tolerance times the largest nonlinear solution which has been seen so far. | |
| double | relative_step_tolerance |
| unsigned int | max_linear_iterations |
Each linear solver step should exit after max_linear_iterations is exceeded. | |
| double | initial_linear_tolerance |
| Any required linear solves will at first be done with this tolerance; the NonlinearSolver may tighten the tolerance for later solves. | |
| double | minimum_linear_tolerance |
| The tolerance for linear solves is kept above this minimum. | |
| bool | converged |
| After a call to solve this will reflect whether or not the nonlinear solve was successful. | |
Protected Types | |
| typedef std::map< std::string, std::pair< unsigned int, unsigned int > > | Counts |
| Data structure to log the information. | |
Protected Member Functions | |
| void | build_mat_null_space (NonlinearImplicitSystem::ComputeVectorSubspace *computeSubspaceObject, void(*)(std::vector< NumericVector< Number > * > &, sys_type &), MatNullSpace *) |
| void | increment_constructor_count (const std::string &name) noexcept |
| Increments the construction counter. | |
| void | increment_destructor_count (const std::string &name) noexcept |
| Increments the destruction counter. | |
Protected Attributes | |
| WrappedPetsc< SNES > | _snes |
| Nonlinear solver context. | |
| SNESConvergedReason | _reason |
| Store the reason for SNES convergence/divergence for use even after the _snes has been cleared. | |
| PetscInt | _n_linear_iterations |
| Stores the total number of linear iterations from the last solve. | |
| unsigned | _current_nonlinear_iteration_number |
| Stores the current nonlinear iteration number. | |
| bool | _zero_out_residual |
| true to zero out residual before going into application level call-back, otherwise false | |
| bool | _zero_out_jacobian |
| true to zero out jacobian before going into application level call-back, otherwise false | |
| bool | _default_monitor |
| true if we want the default monitor to be set, false for no monitor (i.e. | |
| bool | _snesmf_reuse_base |
| True, If we want the base vector to be used for differencing even if the function provided to SNESSetFunction() is not the same as that provided to MatMFFDSetFunction(). | |
| bool | _reproducible_residual |
| Whether residual evaluation is reproducible. | |
| bool | _computing_base_vector |
| Whether we are computing the base vector for matrix-free finite differencing. | |
| bool | _setup_reuse |
| Whether we've triggered the preconditioner reuse. | |
| PetscDMWrapper | _dm_wrapper |
| Wrapper object for interacting with the "new" libMesh PETSc DM. | |
| bool | _reuse_preconditioner |
| Whether we should reuse the linear preconditioner. | |
| bool | _exact_constraint_enforcement |
| Whether we should enforce exact constraints globally during a solve. | |
| unsigned int | _reuse_preconditioner_max_linear_its |
| Number of linear iterations to retain the preconditioner. | |
| sys_type & | _system |
| A reference to the system we are solving. | |
| bool | _is_initialized |
| Flag indicating if the data structures have been initialized. | |
| Preconditioner< T > * | _preconditioner |
| Holds the Preconditioner object to be used for the linear solves. | |
| SolverConfiguration * | _solver_configuration |
| Optionally store a SolverOptions object that can be used to set parameters like solver type, tolerances and iteration limits. | |
| const Parallel::Communicator & | _communicator |
Static Protected Attributes | |
| static Counts | _counts |
| Actually holds the data. | |
| static Threads::atomic< unsigned int > | _n_objects |
| The number of objects. | |
| static Threads::spin_mutex | _mutex |
| Mutual exclusion object to enable thread-safe reference counting. | |
| static bool | _enable_print_counter = true |
| Flag to control whether reference count information is printed when print_info is called. | |
Friends | |
| ResidualContext | libmesh_petsc_snes_residual_helper (SNES snes, Vec x, void *ctx) |
| PetscErrorCode | libmesh_petsc_snes_residual (SNES snes, Vec x, Vec r, void *ctx) |
| PetscErrorCode | libmesh_petsc_snes_fd_residual (SNES snes, Vec x, Vec r, void *ctx) |
| PetscErrorCode | libmesh_petsc_snes_mffd_residual (SNES snes, Vec x, Vec r, void *ctx) |
| PetscErrorCode | libmesh_petsc_snes_jacobian (SNES snes, Vec x, Mat jac, Mat pc, void *ctx) |
| PetscErrorCode | libmesh_petsc_snes_precheck (SNESLineSearch, Vec X, Vec Y, PetscBool *changed, void *context) |
This class provides an interface to PETSc iterative solvers that is compatible with the libMesh NonlinearSolver<>
Definition at line 73 of file petsc_nonlinear_solver.h.
|
protectedinherited |
Data structure to log the information.
The log is identified by the class name.
Definition at line 119 of file reference_counter.h.
| typedef NonlinearImplicitSystem libMesh::PetscNonlinearSolver< T >::sys_type |
The type of system.
Definition at line 79 of file petsc_nonlinear_solver.h.
|
explicit |
Constructor.
Initializes Petsc data structures
Definition at line 693 of file petsc_nonlinear_solver.C.
|
default |
Destructor.
|
inherited |
Attaches a Preconditioner object to be used during the linear solves.
Definition at line 74 of file nonlinear_solver.C.
|
staticinherited |
Builds a NonlinearSolver using the nonlinear solver package specified by solver_package.
Definition at line 40 of file nonlinear_solver.C.
References libMesh::PETSC_SOLVERS, and libMesh::TRILINOS_SOLVERS.
|
protected |
Definition at line 852 of file petsc_nonlinear_solver.C.
|
overridevirtual |
Release all memory and clear data structures.
Reimplemented from libMesh::NonlinearSolver< T >.
Definition at line 717 of file petsc_nonlinear_solver.C.
References libMesh::initialized().
|
inlineinherited |
Parallel::Communicator object used by this mesh. Definition at line 97 of file parallel_object.h.
References libMesh::ParallelObject::_communicator.
Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), libMesh::__libmesh_petsc_diff_solver_monitor(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult_add(), libMesh::DofMap::add_constraints_to_send_list(), add_cube_convex_hull_to_mesh(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::CondensedEigenSystem::add_matrices(), libMesh::EigenSystem::add_matrices(), libMesh::System::add_matrix(), libMesh::System::add_matrix(), libMesh::System::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::System::add_vector(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::RBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::assemble_affine_expansion(), libMesh::AdvectionSystem::assemble_claw_rhs(), libMesh::FEMSystem::assemble_qoi(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::MeshCommunication::assign_global_indices(), libMesh::Partitioner::assign_partitioning(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_section(), libMesh::PetscDMWrapper::build_sf(), libMesh::BoundaryInfo::build_side_list_from_node_list(), libMesh::MeshBase::cache_elem_data(), centroid_l2_error(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::MeshTetInterface::check_hull_integrity(), MeshInputTest::checkHexPrismPolyhedron(), libMesh::MeshBase::complete_preparation(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::DofMap::computed_sparsity_already(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), PetscSolverConfiguration::configure_solver(), libMesh::ContinuationSystem::ContinuationSystem(), libMesh::MeshBase::copy_constraint_rows(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::CondensedEigenSystem::copy_super_to_sub(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshBase::count_constraint_rows(), libMesh::MeshTools::create_bounding_box(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::create_nodal_bounding_box(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshTools::create_subdomain_bounding_box(), libMesh::PetscMatrix< T >::create_submatrix_nosort(), create_wrapped_function(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::MeshBase::detect_interior_parents(), libMesh::RBEIMEvaluation::distribute_bfs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::DTKSolutionTransfer::DTKSolutionTransfer(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::EpetraVector< T >::EpetraVector(), AssembleOptimization::equality_constraints(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::SmoothnessEstimator::estimate_smoothness(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::DofMap::gather_constraints(), libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::RBEIMEvaluation::get_eim_basis_function_node_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_side_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_value(), libMesh::MeshBase::get_info(), libMesh::RBEIMEvaluation::get_interior_basis_functions_as_vecs(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::RBEIMConstruction::get_max_abs_value(), libMesh::RBEIMConstruction::get_node_max_abs_value(), libMesh::RBEIMEvaluation::get_parametrized_function_node_value(), libMesh::RBEIMEvaluation::get_parametrized_function_side_value(), libMesh::RBEIMEvaluation::get_parametrized_function_value(), libMesh::RBEIMConstruction::get_random_point(), libMesh::RBEIMConstruction::get_random_point(), libMesh::RBEIMConstruction::get_random_point(), libMesh::MeshTetInterface::improve_hull_integrity(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::StaticCondensation::init(), libMesh::TimeSolver::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::LocationMap< T >::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), ElasticitySystem::init_data(), libMesh::AdvectionSystem::init_data(), libMesh::ClawSystem::init_data(), libMesh::PetscDMWrapper::init_petscdm(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBEIMConstruction::inner_product(), integrate_function(), libMesh::MeshTools::Modification::interpolate_surface(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_equal_connectivity(), libMesh::MeshTools::libmesh_assert_equal_points(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::libmesh_petsc_linesearch_shellfunc(), libMesh::libmesh_petsc_preconditioner_apply(), libMesh::libmesh_petsc_snes_postcheck(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::limit_overrefined_boundary(), libMesh::MeshRefinement::limit_underrefined_boundary(), libMesh::LinearImplicitSystem::LinearImplicitSystem(), main(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_new_nodes_parallel_consistent(), libMesh::MeshCommunication::make_node_bcids_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), libMesh::FEMSystem::mesh_position_set(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), LinearElasticityWithContact::move_mesh(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshTools::n_connected_components(), libMesh::DofMap::n_constrained_dofs(), libMesh::DofMap::n_dofs(), libMesh::DofMap::n_dofs_per_processor(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), MixedOrderTest::n_neighbor_links(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::SparsityPattern::Build::n_nonzeros(), libMesh::MeshTools::n_p_levels(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::RBEIMEvaluation::node_distribute_bfs(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::RBEIMConstruction::node_inner_product(), libMesh::PetscVector< T >::operator=(), libMesh::MeshBase::operator==(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::MeshTools::paranoid_n_levels(), libMesh::Partitioner::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::petsc_auto_fieldsplit(), MeshGenerationTest::polyhedronTetNeighbor(), LaplaceSystem::postprocess(), PoissonSystem::postprocess(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Partitioner::processor_pairs_to_interface_nodes(), libMesh::InterMeshProjection::project_system_vectors(), libMesh::XdrIO::read(), libMesh::Nemesis_IO::read(), FEMParameters::read(), libMesh::EquationSystems::read(), libMesh::CheckpointIO::read_header(), libMesh::ExodusII_IO::read_header(), libMesh::System::read_header(), libMesh::XdrIO::read_header(), libMesh::RBEIMEvaluation::read_in_interior_basis_functions(), libMesh::RBEIMEvaluation::read_in_node_basis_functions(), libMesh::RBEIMEvaluation::read_in_side_basis_functions(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), MeshFunctionTest::read_variable_info_from_output_data(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::StaticCondensationDofMap::reinit(), libMesh::BoundaryInfo::remove_edge_id(), libMesh::BoundaryInfo::remove_node_id(), libMesh::BoundaryInfo::remove_shellface_id(), libMesh::BoundaryInfo::remove_side_id(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), LinearElasticityWithContact::residual_and_jacobian(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), scale_mesh_and_plot(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::send_and_insert_dof_values(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::Partitioner::set_interface_node_processor_ids_BFS(), libMesh::Partitioner::set_interface_node_processor_ids_linear(), libMesh::Partitioner::set_interface_node_processor_ids_petscpartitioner(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::RBEIMEvaluation::side_distribute_bfs(), libMesh::RBEIMEvaluation::side_gather_bfs(), libMesh::RBEIMConstruction::side_inner_product(), libMesh::Partitioner::single_partition(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::VariationalMeshSmoother::smooth(), libMesh::NoxNonlinearSolver< Number >::solve(), libMesh::ClawSystem::solve_conservation_law(), libMesh::split_mesh(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::MeshBase::subdomain_ids(), libMesh::BoundaryInfo::sync(), libMesh::MeshBase::sync_subdomain_name_map(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), MeshFunctionTest::test_bad_gradient_var_with_out_of_mesh_value(), MeshFunctionTest::test_bad_hessian_var_with_out_of_mesh_value(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), ExodusC0PolyhedronTest::test_write_and_read_hexagonal_prism(), ExodusC0PolygonTest::test_write_and_read_pentagon(), DofMapTest::testBadElemFECombo(), SystemsTest::testBlockRestrictedVarNDofs(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), MeshGenerationTest::testBuildCube(), BoundaryInfoTest::testBuildSideListFromNodeListThinMesh(), CheckpointIOTest::testC0PolygonCheckpoint(), VolumeTest::testC0PolygonMethods(), CheckpointIOTest::testC0PolyhedronCheckpoint(), VolumeTest::testC0PolyhedronMethods(), ConstraintOperatorTest::testCoreform(), ConnectedComponentsTest::testEdge(), MeshInputTest::testExodusIGASidesets(), MeshTriangulationTest::testFoundCenters(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), BoundaryMeshSubdomainTest::testPerBoundarySubdomain(), PointLocatorTest::testPlanar(), MeshTriangulationTest::testPoly2TriEdge3ToTri7CenterFixup(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), SystemsTest::testProjectScalarCoarsening(), BoundaryInfoTest::testRenumber(), BoundaryInfoTest::testSelectiveRenumber(), BoundaryMeshSubdomainTest::testSingleSubdomain(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), MeshTriangulationTest::testTriangulatorRoundHole(), MeshSmootherTest::testVariationalSmoother(), libMesh::MeshTools::total_weight(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::Poly2TriTriangulator::triangulate(), libMesh::RBConstruction::truth_assembly(), libMesh::TransientRBConstruction::truth_assembly(), update_current_local_solution(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::MeshTools::volume(), libMesh::STLIO::write(), libMesh::XdrIO::write(), libMesh::NameBasedIO::write(), libMesh::VTKIO::write_nodal_data(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), libMesh::RBEvaluation::write_out_vectors(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::RBDataSerialization::RBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::TransientRBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::RBEIMEvaluationSerialization::write_to_file(), and libMesh::RBDataSerialization::RBSCMEvaluationSerialization::write_to_file().
|
inline |
Definition at line 210 of file petsc_nonlinear_solver.h.
References libMesh::PetscNonlinearSolver< T >::_computing_base_vector.
Referenced by libMesh::PetscNonlinearSolver< T >::set_computing_base_vector().
|
staticinherited |
Definition at line 100 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
|
staticinherited |
Methods to enable/disable the reference counter output from print_info().
Enabled by default.
Definition at line 94 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
Referenced by libMesh::LibMeshInit::~LibMeshInit().
|
inlineinherited |
Definition at line 418 of file nonlinear_solver.h.
References libMesh::NonlinearSolver< T >::_exact_constraint_enforcement.
|
overridevirtual |
Immediately force a new preconditioner, even if reuse is set.
Reimplemented from libMesh::NonlinearSolver< T >.
Definition at line 1206 of file petsc_nonlinear_solver.C.
| SNESConvergedReason libMesh::PetscNonlinearSolver< T >::get_converged_reason | ( | ) |
Refer to PETSc docs for the meaning of different SNESConvergedReasons.
Definition at line 1171 of file petsc_nonlinear_solver.C.
References libMesh::initialized().
|
inlineoverridevirtual |
Implements libMesh::NonlinearSolver< T >.
Definition at line 157 of file petsc_nonlinear_solver.h.
References libMesh::PetscNonlinearSolver< T >::_current_nonlinear_iteration_number.
|
staticinherited |
Gets a string containing the reference information.
Definition at line 47 of file reference_counter.C.
References libMesh::ReferenceCounter::_counts.
Referenced by libMesh::ReferenceCounter::print_info().
|
overridevirtual |
Get the total number of linear iterations done in the last solve.
Implements libMesh::NonlinearSolver< T >.
Definition at line 1180 of file petsc_nonlinear_solver.C.
|
inlineprotectednoexceptinherited |
Increments the construction counter.
Should be called in the constructor of any derived class that will be reference counted.
Definition at line 183 of file reference_counter.h.
References libMesh::err, libMesh::BasicOStreamProxy< charT, traits >::get(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< T >::ReferenceCountedObject(), libMesh::ReferenceCountedObject< T >::ReferenceCountedObject(), and libMesh::ReferenceCountedObject< T >::ReferenceCountedObject().
|
inlineprotectednoexceptinherited |
Increments the destruction counter.
Should be called in the destructor of any derived class that will be reference counted.
Definition at line 207 of file reference_counter.h.
References libMesh::err, libMesh::BasicOStreamProxy< charT, traits >::get(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< T >::~ReferenceCountedObject().
|
overridevirtual |
Initialize data structures if not done so already.
May assign a name to the solver in some implementations
Implements libMesh::NonlinearSolver< T >.
Definition at line 742 of file petsc_nonlinear_solver.C.
References DMlibMeshSetSystem(), libMesh::WrappedPetsc< T >::get(), libMesh::initialized(), libMesh::libmesh_assert(), libMesh::libmesh_petsc_preconditioner_apply(), libMesh::libmesh_petsc_preconditioner_setup(), libMesh::libmesh_petsc_snes_postcheck(), libMesh::libmesh_petsc_snes_precheck(), and libMesh::on_command_line().
|
inlineinherited |
true if the data structures are initialized, false otherwise. Definition at line 83 of file nonlinear_solver.h.
References libMesh::NonlinearSolver< T >::_is_initialized.
|
inlinestaticinherited |
Prints the number of outstanding (created, but not yet destroyed) objects.
Definition at line 85 of file reference_counter.h.
References libMesh::ReferenceCounter::_n_objects.
Referenced by libMesh::LibMeshInit::~LibMeshInit().
|
inlineinherited |
Definition at line 103 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, libMesh::libmesh_assert(), and libMesh::Parallel::Communicator::size().
Referenced by libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::DofMap::add_constraints_to_send_list(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::add_node(), libMesh::System::add_vector(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), ExodusC0PolyhedronTest::assert_distributed_if_parallel(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::Partitioner::build_graph(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::EnsightIO::EnsightIO(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::MeshBase::get_info(), libMesh::StaticCondensation::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_petscdm(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), libMesh::NumericVector< T >::is_effectively_ghosted(), libMesh::NumericVector< T >::is_effectively_serial(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshBase::n_active_elem_on_proc(), libMesh::DofMap::n_dofs_per_processor(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::MeshBase::partition(), libMesh::Partitioner::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::NameBasedIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_header(), libMesh::CheckpointIO::read_nodes(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vector(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::Partitioner::repartition(), OverlappingFunctorTest::run_partitioner_test(), libMesh::DofMap::scatter_constraints(), libMesh::DistributedMesh::set_next_ids(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DistributedMesh::set_next_unique_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), WriteVecAndScalar::setupTests(), libMesh::RBEIMEvaluation::side_gather_bfs(), ExodusC0PolyhedronTest::test_write_and_read_mixed_hex_tet_block_names_impl(), CheckpointIOTest::testDisjointNeighborPairsCheckpoint(), DistributedMeshTest::testRemoteElemError(), CheckpointIOTest::testSplitter(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::VTKIO::write_nodal_data(), libMesh::System::write_parallel_data(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().
|
overridevirtual |
Prints a useful message about why the latest nonlinear solve con(di)verged.
Reimplemented from libMesh::NonlinearSolver< T >.
Definition at line 1161 of file petsc_nonlinear_solver.C.
References libMesh::out.
|
staticinherited |
Prints the reference information, by default to libMesh::out.
Definition at line 81 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter, and libMesh::ReferenceCounter::get_info().
Referenced by libMesh::LibMeshInit::~LibMeshInit().
|
inlineinherited |
Definition at line 114 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, and libMesh::Parallel::Communicator::rank().
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::DistributedMesh::add_node(), libMesh::MeshTools::Modification::all_tri(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::MeshFunction::check_found_elem(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::ExodusII_IO_Helper::close(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_communication_map_parameters(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_node_communication_maps(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshBase::count_constraint_rows(), libMesh::ExodusII_IO_Helper::create(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMapBase::end_dof(), libMesh::DofMapBase::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMapBase::first_dof(), libMesh::DofMapBase::first_old_dof(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::MeshBase::get_info(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), libMesh::RBEIMEvaluation::get_interior_basis_functions_as_vecs(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::DofMap::get_local_constraints(), libMesh::MeshBase::get_local_constraints(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::LaplaceMeshSmoother::init(), libMesh::SystemSubsetBySubdomain::init(), HeatSystem::init_data(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_element_variables(), libMesh::ExodusII_IO_Helper::initialize_global_variables(), libMesh::ExodusII_IO_Helper::initialize_nodal_variables(), libMesh::DistributedMesh::insert_elem(), libMesh::MeshTools::Modification::interpolate_surface(), libMesh::SparsityPattern::Build::join(), libMesh::RBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::TransientRBEvaluation::legacy_write_offline_data_to_files(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), main(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::MeshBase::n_active_local_elem(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshTools::n_connected_components(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::DofMapBase::n_local_dofs(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::DistributedMesh::own_node(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Nemesis_IO_Helper::put_cmap_params(), libMesh::Nemesis_IO_Helper::put_elem_cmap(), libMesh::Nemesis_IO_Helper::put_elem_map(), libMesh::Nemesis_IO_Helper::put_loadbal_param(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Nemesis_IO_Helper::put_node_map(), libMesh::XdrIO::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::NameBasedIO::read(), libMesh::EquationSystems::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::CheckpointIO::read_header(), libMesh::ExodusII_IO::read_header(), libMesh::System::read_header(), libMesh::XdrIO::read_header(), libMesh::DynaIO::read_mesh(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::System::read_parallel_data(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::System::read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::StaticCondensationDofMap::reinit(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::DistributedMesh::set_next_ids(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DistributedMesh::set_next_unique_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::RBEIMEvaluation::side_gather_bfs(), MeshFunctionTest::test_bad_gradient_var_with_out_of_mesh_value(), MeshFunctionTest::test_bad_hessian_var_with_out_of_mesh_value(), ExodusTest< elem_type >::test_read_gold(), ExodusTest< elem_type >::test_write(), ExodusC0PolyhedronTest::test_write_and_read_hexagonal_prism(), ExodusC0PolyhedronTest::test_write_and_read_mixed_hex_tet_block_names_impl(), ExodusC0PolygonTest::test_write_and_read_pentagon(), MeshInputTest::testAbaqusRead(), MeshInputTest::testBadGmsh(), BoundaryInfoTest::testBoundaryIDs(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaFileMappings(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusCopyHighOrderElementSolution(), MeshInputTest::testExodusFileMappings(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), DofMapTest::testGhostConstraintSendList(), MeshInputTest::testGmshBCIDOverlap(), MeshInputTest::testGoodGmsh(), MeshInputTest::testGoodSTL(), MeshInputTest::testGoodSTLBinary(), BoundaryInfoTest::testInternalBoundary(), MeshInputTest::testLowOrderEdgeBlocks(), BoundaryMeshSubdomainTest::testPerBoundarySubdomain(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), BoundaryMeshSubdomainTest::testSingleSubdomain(), WriteVecAndScalar::testSolution(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshSmootherTest::testVariationalSmoother(), libMesh::MeshTools::total_weight(), libMesh::NetGenMeshInterface::triangulate(), libMesh::Parallel::Packing< Elem * >::unpack(), libMesh::Parallel::Packing< Node * >::unpack(), libMesh::DTKAdapter::update_variable_values(), libMesh::MeshTools::volume(), libMesh::STLIO::write(), libMesh::XdrIO::write(), libMesh::NameBasedIO::write(), libMesh::CheckpointIO::write(), libMesh::EquationSystems::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data(), libMesh::ExodusII_IO::write_element_data_from_discontinuous_nodal_data(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_element_values_element_major(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elemset_data(), libMesh::ExodusII_IO_Helper::write_elemsets(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), libMesh::System::write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::VTKIO::write_nodal_data(), libMesh::UCDIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_common(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::ExodusII_IO_Helper::write_nodeset_data(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), write_output_solvedata(), libMesh::System::write_parallel_data(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::System::write_serialized_data(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), libMesh::ExodusII_IO_Helper::write_sideset_data(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO::write_timestep(), libMesh::ExodusII_IO_Helper::write_timestep(), and libMesh::ExodusII_IO::write_timestep_discontinuous().
|
inline |
Definition at line 200 of file petsc_nonlinear_solver.h.
References libMesh::PetscNonlinearSolver< T >::_reproducible_residual.
|
overridevirtual |
Getter for preconditioner reuse.
Reimplemented from libMesh::NonlinearSolver< T >.
Definition at line 1194 of file petsc_nonlinear_solver.C.
|
overridevirtual |
Getter for the maximum iterations flag for preconditioner reuse.
Reimplemented from libMesh::NonlinearSolver< T >.
Definition at line 1200 of file petsc_nonlinear_solver.C.
|
inline |
Set whether we are computing the base vector for matrix-free finite-differencing.
Definition at line 205 of file petsc_nonlinear_solver.h.
References libMesh::PetscNonlinearSolver< T >::_computing_base_vector, and libMesh::PetscNonlinearSolver< T >::computing_base_vector().
|
inlinevirtualinherited |
Enable (or disable; it is true by default) exact enforcement of constraints at the solver level, correcting any constrained DoF coefficients in current_local_solution as well as applying nonlinear residual and Jacobian terms based on constraint equations.
This is probably only safe to disable if user code is setting nonlinear residual and Jacobian terms based on constraint equations at an element-by-element level, by combining the asymmetric_constraint_rows option with the residual_constrain_element_vector processing option in DofMap.
Definition at line 413 of file nonlinear_solver.h.
References libMesh::NonlinearSolver< T >::_exact_constraint_enforcement.
|
inline |
Set if the jacobian should be zeroed out in the callback.
Definition at line 168 of file petsc_nonlinear_solver.h.
References libMesh::PetscNonlinearSolver< T >::_zero_out_jacobian.
|
inline |
Set whether evaluating the residual twice at the same solution gives exactly the same result.
This is used to decide whether to run the debug-mode check of matrix-free base vector reuse, which requires an exact match. The check is already skipped for MPI-parallel and threaded runs; applications whose assembly is non-deterministic for other reasons (e.g. due to device parallelism) should set this to false. This only disables the check; the base vector is still reused.
Definition at line 194 of file petsc_nonlinear_solver.h.
References libMesh::PetscNonlinearSolver< T >::_reproducible_residual.
|
inline |
Set if the residual should be zeroed out in the callback.
Definition at line 163 of file petsc_nonlinear_solver.h.
References libMesh::PetscNonlinearSolver< T >::_zero_out_residual.
|
virtualinherited |
Set the reuse preconditioner flag.
Definition at line 94 of file nonlinear_solver.C.
|
virtualinherited |
Set the reuse_preconditioner_max_linear_its parameter.
Definition at line 106 of file nonlinear_solver.C.
|
inline |
Set to true to let PETSc reuse the base vector.
Definition at line 178 of file petsc_nonlinear_solver.h.
References libMesh::PetscNonlinearSolver< T >::_snesmf_reuse_base.
|
inherited |
Set the solver configuration object.
Definition at line 82 of file nonlinear_solver.C.
| void libMesh::PetscNonlinearSolver< T >::setup_default_monitor | ( | ) |
Setup the default monitor if required.
Definition at line 1186 of file petsc_nonlinear_solver.C.
References libMesh::libmesh_petsc_snes_monitor().
| SNES libMesh::PetscNonlinearSolver< T >::snes | ( | const char * | name = nullptr | ) |
Definition at line 842 of file petsc_nonlinear_solver.C.
|
inline |
Definition at line 184 of file petsc_nonlinear_solver.h.
References libMesh::PetscNonlinearSolver< T >::_snesmf_reuse_base.
|
overridevirtual |
Call the Petsc solver, using jac_in as the actual SNES Jacobian operator (Amat) and pre_in as the preconditioning matrix (Pmat).
Reimplemented from libMesh::NonlinearSolver< T >.
Definition at line 917 of file petsc_nonlinear_solver.C.
References libMesh::WrappedPetsc< T >::get(), libMesh::libmesh_petsc_linesearch_shellfunc(), libMesh::libmesh_petsc_recalculate_monitor(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_interface(), libMesh::libmesh_petsc_snes_residual(), libMesh::PetscMatrixBase< T >::mat(), libMesh::pPR(), libMesh::Real, and libMesh::PetscPreconditioner< T >::set_petsc_aux_data().
|
overridevirtual |
Call the Petsc solver, using the same matrix for the system and preconditioner matrices.
Calls the two-matrix overload below with pre_in for both.
Implements libMesh::NonlinearSolver< T >.
Definition at line 906 of file petsc_nonlinear_solver.C.
|
inlineinherited |
Definition at line 293 of file nonlinear_solver.h.
References libMesh::NonlinearSolver< T >::_system.
|
inlineinherited |
Definition at line 288 of file nonlinear_solver.h.
References libMesh::NonlinearSolver< T >::_system.
Referenced by libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::libmesh_petsc_snes_postcheck(), and libMesh::NoxNonlinearSolver< Number >::solve().
|
inline |
Set to true to use the libMesh's default monitor, set to false to use your own.
Definition at line 173 of file petsc_nonlinear_solver.h.
References libMesh::PetscNonlinearSolver< T >::_default_monitor.
|
friend |
Definition at line 232 of file petsc_nonlinear_solver.C.
|
friend |
Definition at line 404 of file petsc_nonlinear_solver.C.
|
friend |
Definition at line 278 of file petsc_nonlinear_solver.C.
|
friend |
Definition at line 627 of file petsc_nonlinear_solver.C.
|
friend |
Definition at line 156 of file petsc_nonlinear_solver.C.
|
friend |
Definition at line 57 of file petsc_nonlinear_solver.C.
|
protectedinherited |
Definition at line 120 of file parallel_object.h.
Referenced by libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::StaticCondensation::close(), libMesh::ParallelObject::comm(), libMesh::CondensedEigenSystem::initialize_condensed_matrices(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::operator=(), libMesh::ParallelObject::processor_id(), libMesh::BoundaryInfo::regenerate_id_sets(), libMesh::StaticCondensationDofMap::reinit(), and libMesh::BoundaryInfo::synchronize_global_id_set().
|
protected |
Whether we are computing the base vector for matrix-free finite differencing.
Definition at line 311 of file petsc_nonlinear_solver.h.
Referenced by libMesh::PetscNonlinearSolver< T >::computing_base_vector(), and libMesh::PetscNonlinearSolver< T >::set_computing_base_vector().
|
staticprotectedinherited |
Actually holds the data.
Definition at line 124 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::get_info().
|
protected |
Stores the current nonlinear iteration number.
Definition at line 275 of file petsc_nonlinear_solver.h.
Referenced by libMesh::PetscNonlinearSolver< T >::get_current_nonlinear_iteration_number().
|
protected |
true if we want the default monitor to be set, false for no monitor (i.e.
user code can use their own)
Definition at line 290 of file petsc_nonlinear_solver.h.
Referenced by libMesh::PetscNonlinearSolver< T >::use_default_monitor().
|
protected |
Wrapper object for interacting with the "new" libMesh PETSc DM.
The new libMesh PETSc DM implementation is capable of geometric multigrid while the old implementation is not. The new implementation can be activated from the command line with –use_petsc_dm
Definition at line 324 of file petsc_nonlinear_solver.h.
|
staticprotectedinherited |
Flag to control whether reference count information is printed when print_info is called.
Definition at line 143 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::disable_print_counter_info(), libMesh::ReferenceCounter::enable_print_counter_info(), and libMesh::ReferenceCounter::print_info().
|
protectedinherited |
Whether we should enforce exact constraints globally during a solve.
Definition at line 433 of file nonlinear_solver.h.
Referenced by libMesh::Problem_Interface::computeJacobian(), libMesh::NonlinearSolver< T >::exact_constraint_enforcement(), and libMesh::NonlinearSolver< T >::set_exact_constraint_enforcement().
|
protectedinherited |
Flag indicating if the data structures have been initialized.
Definition at line 448 of file nonlinear_solver.h.
Referenced by libMesh::NonlinearSolver< T >::initialized().
|
staticprotectedinherited |
Mutual exclusion object to enable thread-safe reference counting.
Definition at line 137 of file reference_counter.h.
|
protected |
Stores the total number of linear iterations from the last solve.
Definition at line 270 of file petsc_nonlinear_solver.h.
|
staticprotectedinherited |
The number of objects.
Print the reference count information when the number returns to 0.
Definition at line 132 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::n_objects(), libMesh::ReferenceCounter::ReferenceCounter(), libMesh::ReferenceCounter::ReferenceCounter(), libMesh::ReferenceCounter::ReferenceCounter(), and libMesh::ReferenceCounter::~ReferenceCounter().
|
protectedinherited |
Holds the Preconditioner object to be used for the linear solves.
Definition at line 453 of file nonlinear_solver.h.
|
protected |
Store the reason for SNES convergence/divergence for use even after the _snes has been cleared.
print_converged_reason() will always try to get the current reason with SNESGetConvergedReason(), but if the SNES object has already been cleared, it will fall back on this stored value. This value is therefore necessarily not cleared by the clear() function. Definition at line 265 of file petsc_nonlinear_solver.h.
|
protected |
Whether residual evaluation is reproducible.
See set_reproducible_residual()
Definition at line 302 of file petsc_nonlinear_solver.h.
Referenced by libMesh::PetscNonlinearSolver< T >::reproducible_residual(), and libMesh::PetscNonlinearSolver< T >::set_reproducible_residual().
|
protectedinherited |
Whether we should reuse the linear preconditioner.
Definition at line 427 of file nonlinear_solver.h.
|
protectedinherited |
Number of linear iterations to retain the preconditioner.
Definition at line 438 of file nonlinear_solver.h.
|
protected |
Whether we've triggered the preconditioner reuse.
Definition at line 316 of file petsc_nonlinear_solver.h.
|
protected |
Nonlinear solver context.
Definition at line 253 of file petsc_nonlinear_solver.h.
|
protected |
True, If we want the base vector to be used for differencing even if the function provided to SNESSetFunction() is not the same as that provided to MatMFFDSetFunction().
https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/MatSNESMFSetReuseBase.html
Definition at line 297 of file petsc_nonlinear_solver.h.
Referenced by libMesh::PetscNonlinearSolver< T >::set_snesmf_reuse_base(), and libMesh::PetscNonlinearSolver< T >::snes_mf_reuse_base().
|
protectedinherited |
Optionally store a SolverOptions object that can be used to set parameters like solver type, tolerances and iteration limits.
Definition at line 459 of file nonlinear_solver.h.
|
protectedinherited |
A reference to the system we are solving.
Definition at line 443 of file nonlinear_solver.h.
Referenced by libMesh::NonlinearSolver< T >::system(), and libMesh::NonlinearSolver< T >::system().
|
protected |
true to zero out jacobian before going into application level call-back, otherwise false
Definition at line 285 of file petsc_nonlinear_solver.h.
Referenced by libMesh::PetscNonlinearSolver< T >::set_jacobian_zero_out().
|
protected |
true to zero out residual before going into application level call-back, otherwise false
Definition at line 280 of file petsc_nonlinear_solver.h.
Referenced by libMesh::PetscNonlinearSolver< T >::set_residual_zero_out().
|
inherited |
The NonlinearSolver should exit after the residual is reduced to either less than absolute_residual_tolerance or less than relative_residual_tolerance times the initial residual.
Users should increase any of these tolerances that they want to use for a stopping condition.
Definition at line 320 of file nonlinear_solver.h.
|
inherited |
The NonlinearSolver should exit after the full nonlinear step norm is reduced to either less than absolute_step_tolerance or less than relative_step_tolerance times the largest nonlinear solution which has been seen so far.
Users should increase any of these tolerances that they want to use for a stopping condition.
relative_step_tolerance! Definition at line 343 of file nonlinear_solver.h.
|
inherited |
Function that computes the lower and upper bounds XL and XU on the solution of the nonlinear system.
Definition at line 205 of file nonlinear_solver.h.
|
inherited |
Object that computes the bounds vectors \( XL \) and \( XU \).
Definition at line 211 of file nonlinear_solver.h.
|
inherited |
After a call to solve this will reflect whether or not the nonlinear solve was successful.
Definition at line 367 of file nonlinear_solver.h.
|
inherited |
The NonlinearSolver should exit if the residual becomes greater than the initial residual times the divergence_tolerance.
Users should adjust this tolerances to prevent divergence of the NonlinearSolver.
Definition at line 330 of file nonlinear_solver.h.
|
inherited |
Object that computes the residual R(X) of the nonlinear system at the input iterate X for the purpose of forming a finite-differenced Jacobian.
Definition at line 158 of file nonlinear_solver.h.
|
inherited |
Any required linear solves will at first be done with this tolerance; the NonlinearSolver may tighten the tolerance for later solves.
Definition at line 356 of file nonlinear_solver.h.
|
inherited |
Function that computes the Jacobian J(X) of the nonlinear system at the input iterate X.
Definition at line 171 of file nonlinear_solver.h.
Referenced by libMesh::Problem_Interface::computeJacobian(), and libMesh::Problem_Interface::computePreconditioner().
|
inherited |
Object that computes the Jacobian J(X) of the nonlinear system at the input iterate X.
Definition at line 179 of file nonlinear_solver.h.
Referenced by libMesh::Problem_Interface::computeJacobian(), and libMesh::Problem_Interface::computePreconditioner().
| std::unique_ptr<ComputeLineSearchObject> libMesh::PetscNonlinearSolver< T >::linesearch_object |
A callable object that can be used to specify a custom line-search.
Definition at line 226 of file petsc_nonlinear_solver.h.
Referenced by libMesh::libmesh_petsc_linesearch_shellfunc().
|
inherited |
Function that computes either the residual \( R(X) \) or the Jacobian \( J(X) \) of the nonlinear system at the input iterate \( X \).
R or J could be nullptr. Definition at line 188 of file nonlinear_solver.h.
Referenced by libMesh::Problem_Interface::computeJacobian(), and libMesh::Problem_Interface::computePreconditioner().
|
inherited |
Maximum number of function evaluations.
Definition at line 308 of file nonlinear_solver.h.
|
inherited |
Each linear solver step should exit after max_linear_iterations is exceeded.
Definition at line 350 of file nonlinear_solver.h.
|
inherited |
Maximum number of non-linear iterations.
Definition at line 303 of file nonlinear_solver.h.
|
inherited |
Object that computes the residual R(X) of the nonlinear system at the input iterate X for the purpose of forming Jacobian-vector products via finite differencing.
Definition at line 165 of file nonlinear_solver.h.
|
inherited |
The tolerance for linear solves is kept above this minimum.
Definition at line 361 of file nonlinear_solver.h.
|
inherited |
Function that computes a basis for the Jacobian's near nullspace – the set of "low energy modes" – that can be used for AMG coarsening, if the solver supports it (e.g., ML, PETSc's GAMG).
Definition at line 248 of file nonlinear_solver.h.
|
inherited |
A callable object that computes a basis for the Jacobian's near nullspace – the set of "low energy modes" – that can be used for AMG coarsening, if the solver supports it (e.g., ML, PETSc's GAMG).
Definition at line 255 of file nonlinear_solver.h.
|
inherited |
Function that computes a basis for the Jacobian's nullspace – the kernel or the "zero energy modes" – that can be used in solving a degenerate problem iteratively, if the solver supports it (e.g., PETSc's KSP).
Definition at line 219 of file nonlinear_solver.h.
|
inherited |
A callable object that computes a basis for the Jacobian's nullspace – the kernel or the "zero energy modes" – that can be used in solving a degenerate problem iteratively, if the solver supports it (e.g., PETSc's KSP).
Definition at line 227 of file nonlinear_solver.h.
|
inherited |
Function that performs a "check" on the Newton search direction and solution after each nonlinear step.
See documentation for the NonlinearImplicitSystem::ComputePostCheck object for more information about the calling sequence.
Definition at line 269 of file nonlinear_solver.h.
Referenced by libMesh::libmesh_petsc_snes_postcheck().
|
inherited |
A callable object that is executed after each nonlinear iteration.
Allows the user to modify both the search direction and the solution vector in an application-specific way.
Definition at line 281 of file nonlinear_solver.h.
Referenced by libMesh::libmesh_petsc_snes_postcheck().
|
inherited |
Definition at line 283 of file nonlinear_solver.h.
|
inherited |
Definition at line 321 of file nonlinear_solver.h.
|
inherited |
Definition at line 344 of file nonlinear_solver.h.
|
inherited |
Function that computes the residual R(X) of the nonlinear system at the input iterate X.
Definition at line 144 of file nonlinear_solver.h.
|
inherited |
Object that computes either the residual \( R(X) \) or the Jacobian \( J(X) \) of the nonlinear system at the input iterate \( X \).
R or J could be nullptr. Definition at line 200 of file nonlinear_solver.h.
Referenced by libMesh::Problem_Interface::computeJacobian(), and libMesh::Problem_Interface::computePreconditioner().
|
inherited |
Object that computes the residual R(X) of the nonlinear system at the input iterate X.
Definition at line 152 of file nonlinear_solver.h.
|
inherited |
Function that computes a basis for the transpose Jacobian's nullspace – when solving a degenerate problem iteratively, if the solver supports it (e.g., PETSc's KSP), it is used to remove contributions outside of R(jac)
Definition at line 234 of file nonlinear_solver.h.
|
inherited |
A callable object that computes a basis for the transpose Jacobian's nullspace – when solving a degenerate problem iteratively, if the solver supports it (e.g., PETSc's KSP), it is used to remove contributions outside of R(jac)
Definition at line 241 of file nonlinear_solver.h.
|
inherited |
Customizable function pointer which users can attach to the solver.
Gets called prior to every call to solve().
Definition at line 261 of file nonlinear_solver.h.