libMesh
|
Manages consistently variables, degrees of freedom, and coefficient vectors. More...
#include <system.h>
Classes | |
class | Assembly |
Abstract base class to be used for system assembly. More... | |
class | Constraint |
Abstract base class to be used for system constraints. More... | |
class | Initialization |
Abstract base class to be used for system initialization. More... | |
class | QOI |
Abstract base class to be used for quantities of interest. More... | |
class | QOIDerivative |
Abstract base class to be used for derivatives of quantities of interest. More... | |
Public Types | |
typedef System | sys_type |
The type of system. More... | |
typedef Number(* | ValueFunctionPointer) (const Point &p, const Parameters &Parameters, const std::string &sys_name, const std::string &unknown_name) |
Projects arbitrary functions onto the current solution. More... | |
typedef Gradient(* | GradientFunctionPointer) (const Point &p, const Parameters ¶meters, const std::string &sys_name, const std::string &unknown_name) |
typedef std::map< std::string, std::unique_ptr< NumericVector< Number > >, std::less<> >::iterator | vectors_iterator |
Vector iterator typedefs. More... | |
typedef std::map< std::string, std::unique_ptr< NumericVector< Number > >, std::less<> >::const_iterator | const_vectors_iterator |
typedef std::map< std::string, std::unique_ptr< SparseMatrix< Number > >, std::less<> >::iterator | matrices_iterator |
Matrix iterator typedefs. More... | |
typedef std::map< std::string, std::unique_ptr< SparseMatrix< Number > >, std::less<> >::const_iterator | const_matrices_iterator |
Public Member Functions | |
System (EquationSystems &es, const std::string &name, const unsigned int number) | |
Constructor. More... | |
System (const System &)=delete | |
Special functions. More... | |
System & | operator= (const System &)=delete |
System (System &&)=default | |
System & | operator= (System &&)=delete |
virtual | ~System () |
sys_type & | system () |
virtual void | clear () |
Clear all the data structures associated with the system. More... | |
void | init () |
Initializes degrees of freedom on the current mesh. More... | |
virtual void | reinit () |
Reinitializes degrees of freedom and other required data on the current mesh. More... | |
virtual void | reinit_constraints () |
Reinitializes the constraints for this system. More... | |
virtual void | reinit_mesh () |
Reinitializes the system with a new mesh. More... | |
bool | is_initialized () |
virtual void | update () |
Update the local values to reflect the solution on neighboring processors. More... | |
virtual void | assemble () |
Prepares matrix and _dof_map for matrix assembly. More... | |
virtual void | assemble_qoi (const QoISet &qoi_indices=QoISet()) |
Calls user qoi function. More... | |
virtual void | assemble_qoi_derivative (const QoISet &qoi_indices=QoISet(), bool include_liftfunc=true, bool apply_constraints=true) |
Calls user qoi derivative function. More... | |
virtual void | assemble_residual_derivatives (const ParameterVector ¶meters) |
Calls residual parameter derivative function. More... | |
virtual void | restrict_solve_to (const SystemSubset *subset, const SubsetSolveMode subset_solve_mode=SUBSET_ZERO) |
After calling this method, any solve will be restricted to the given subdomain. More... | |
virtual void | solve () |
Solves the system. More... | |
virtual std::pair< unsigned int, Real > | sensitivity_solve (const ParameterVector ¶meters) |
Solves the sensitivity system, for the provided parameters. More... | |
virtual std::pair< unsigned int, Real > | weighted_sensitivity_solve (const ParameterVector ¶meters, const ParameterVector &weights) |
Assembles & solves the linear system(s) (dR/du)*u_w = sum(w_p*-dR/dp), for those parameters p contained within parameters weighted by the values w_p found within weights . More... | |
virtual std::pair< unsigned int, Real > | adjoint_solve (const QoISet &qoi_indices=QoISet()) |
Solves the adjoint system, for the specified qoi indices, or for every qoi if qoi_indices is nullptr. More... | |
virtual std::pair< unsigned int, Real > | weighted_sensitivity_adjoint_solve (const ParameterVector ¶meters, const ParameterVector &weights, const QoISet &qoi_indices=QoISet()) |
Assembles & solves the linear system(s) (dR/du)^T*z_w = sum(w_p*(d^2q/dudp - d^2R/dudp*z)), for those parameters p contained within parameters , weighted by the values w_p found within weights . More... | |
bool | is_adjoint_already_solved () const |
Accessor for the adjoint_already_solved boolean. More... | |
void | set_adjoint_already_solved (bool setting) |
Setter for the adjoint_already_solved boolean. More... | |
virtual void | qoi_parameter_sensitivity (const QoISet &qoi_indices, const ParameterVector ¶meters, SensitivityData &sensitivities) |
Solves for the derivative of each of the system's quantities of interest q in qoi [qoi_indices] with respect to each parameter in parameters , placing the result for qoi i and parameter j into sensitivities [i][j]. More... | |
virtual void | adjoint_qoi_parameter_sensitivity (const QoISet &qoi_indices, const ParameterVector ¶meters, SensitivityData &sensitivities) |
Solves for parameter sensitivities using the adjoint method. More... | |
virtual void | forward_qoi_parameter_sensitivity (const QoISet &qoi_indices, const ParameterVector ¶meters, SensitivityData &sensitivities) |
Solves for parameter sensitivities using the forward method. More... | |
virtual void | qoi_parameter_hessian (const QoISet &qoi_indices, const ParameterVector ¶meters, SensitivityData &hessian) |
For each of the system's quantities of interest q in qoi [qoi_indices], and for a vector of parameters p, the parameter sensitivity Hessian H_ij is defined as H_ij = (d^2 q)/(d p_i d p_j) This Hessian is the output of this method, where for each q_i, H_jk is stored in hessian.second_derivative(i,j,k) . More... | |
virtual void | qoi_parameter_hessian_vector_product (const QoISet &qoi_indices, const ParameterVector ¶meters, const ParameterVector &vector, SensitivityData &product) |
For each of the system's quantities of interest q in qoi [qoi_indices], and for a vector of parameters p, the parameter sensitivity Hessian H_ij is defined as H_ij = (d^2 q)/(d p_i d p_j) The Hessian-vector product, for a vector v_k in parameter space, is S_j = H_jk v_k This product is the output of this method, where for each q_i, S_j is stored in sensitivities [i][j]. More... | |
virtual bool | compare (const System &other_system, const Real threshold, const bool verbose) const |
const std::string & | name () const |
virtual std::string | system_type () const |
void | project_solution (FunctionBase< Number > *f, FunctionBase< Gradient > *g=nullptr) const |
Projects arbitrary functions onto the current solution. More... | |
void | project_solution (FEMFunctionBase< Number > *f, FEMFunctionBase< Gradient > *g=nullptr) const |
Projects arbitrary functions onto the current solution. More... | |
void | project_solution (ValueFunctionPointer fptr, GradientFunctionPointer gptr, const Parameters ¶meters) const |
This method projects an arbitrary function onto the solution via L2 projections and nodal interpolations on each element. More... | |
void | project_vector (NumericVector< Number > &new_vector, FunctionBase< Number > *f, FunctionBase< Gradient > *g=nullptr, int is_adjoint=-1) const |
Projects arbitrary functions onto a vector of degree of freedom values for the current system. More... | |
void | project_vector (NumericVector< Number > &new_vector, FEMFunctionBase< Number > *f, FEMFunctionBase< Gradient > *g=nullptr, int is_adjoint=-1) const |
Projects arbitrary functions onto a vector of degree of freedom values for the current system. More... | |
void | project_vector (ValueFunctionPointer fptr, GradientFunctionPointer gptr, const Parameters ¶meters, NumericVector< Number > &new_vector, int is_adjoint=-1) const |
Projects arbitrary functions onto a vector of degree of freedom values for the current system. More... | |
void | boundary_project_solution (const std::set< boundary_id_type > &b, const std::vector< unsigned int > &variables, FunctionBase< Number > *f, FunctionBase< Gradient > *g=nullptr) |
Projects arbitrary boundary functions onto a vector of degree of freedom values for the current system. More... | |
void | boundary_project_solution (const std::set< boundary_id_type > &b, const std::vector< unsigned int > &variables, ValueFunctionPointer fptr, GradientFunctionPointer gptr, const Parameters ¶meters) |
Projects arbitrary boundary functions onto a vector of degree of freedom values for the current system. More... | |
void | boundary_project_vector (const std::set< boundary_id_type > &b, const std::vector< unsigned int > &variables, NumericVector< Number > &new_vector, FunctionBase< Number > *f, FunctionBase< Gradient > *g=nullptr, int is_adjoint=-1) const |
Projects arbitrary boundary functions onto a vector of degree of freedom values for the current system. More... | |
void | boundary_project_vector (const std::set< boundary_id_type > &b, const std::vector< unsigned int > &variables, ValueFunctionPointer fptr, GradientFunctionPointer gptr, const Parameters ¶meters, NumericVector< Number > &new_vector, int is_adjoint=-1) const |
Projects arbitrary boundary functions onto a vector of degree of freedom values for the current system. More... | |
unsigned int | number () const |
void | update_global_solution (std::vector< Number > &global_soln) const |
Fill the input vector global_soln so that it contains the global solution on all processors. More... | |
void | update_global_solution (std::vector< Number > &global_soln, const processor_id_type dest_proc) const |
Fill the input vector global_soln so that it contains the global solution on processor dest_proc . More... | |
const MeshBase & | get_mesh () const |
MeshBase & | get_mesh () |
const DofMap & | get_dof_map () const |
DofMap & | get_dof_map () |
const EquationSystems & | get_equation_systems () const |
EquationSystems & | get_equation_systems () |
bool | active () const |
void | activate () |
Activates the system. More... | |
void | deactivate () |
Deactivates the system. More... | |
void | set_basic_system_only () |
Sets the system to be "basic only": i.e. More... | |
vectors_iterator | vectors_begin () |
Beginning of vectors container. More... | |
const_vectors_iterator | vectors_begin () const |
Beginning of vectors container. More... | |
vectors_iterator | vectors_end () |
End of vectors container. More... | |
const_vectors_iterator | vectors_end () const |
End of vectors container. More... | |
NumericVector< Number > & | add_vector (std::string_view vec_name, const bool projections=true, const ParallelType type=PARALLEL) |
Adds the additional vector vec_name to this system. More... | |
void | remove_vector (std::string_view vec_name) |
Removes the additional vector vec_name from this system. More... | |
bool & | project_solution_on_reinit (void) |
Tells the System whether or not to project the solution vector onto new grids when the system is reinitialized. More... | |
bool | have_vector (std::string_view vec_name) const |
const NumericVector< Number > * | request_vector (std::string_view vec_name) const |
NumericVector< Number > * | request_vector (std::string_view vec_name) |
const NumericVector< Number > * | request_vector (const unsigned int vec_num) const |
NumericVector< Number > * | request_vector (const unsigned int vec_num) |
const NumericVector< Number > & | get_vector (std::string_view vec_name) const |
NumericVector< Number > & | get_vector (std::string_view vec_name) |
const NumericVector< Number > & | get_vector (const unsigned int vec_num) const |
NumericVector< Number > & | get_vector (const unsigned int vec_num) |
const std::string & | vector_name (const unsigned int vec_num) const |
const std::string & | vector_name (const NumericVector< Number > &vec_reference) const |
void | set_vector_as_adjoint (const std::string &vec_name, int qoi_num) |
Allows one to set the QoI index controlling whether the vector identified by vec_name represents a solution from the adjoint (qoi_num >= 0) or primal (qoi_num == -1) space. More... | |
int | vector_is_adjoint (std::string_view vec_name) const |
void | set_vector_preservation (const std::string &vec_name, bool preserve) |
Allows one to set the boolean controlling whether the vector identified by vec_name should be "preserved": projected to new meshes, saved, etc. More... | |
bool | vector_preservation (std::string_view vec_name) const |
NumericVector< Number > & | add_adjoint_solution (unsigned int i=0) |
NumericVector< Number > & | get_adjoint_solution (unsigned int i=0) |
const NumericVector< Number > & | get_adjoint_solution (unsigned int i=0) const |
NumericVector< Number > & | add_sensitivity_solution (unsigned int i=0) |
NumericVector< Number > & | get_sensitivity_solution (unsigned int i=0) |
const NumericVector< Number > & | get_sensitivity_solution (unsigned int i=0) const |
NumericVector< Number > & | add_weighted_sensitivity_adjoint_solution (unsigned int i=0) |
NumericVector< Number > & | get_weighted_sensitivity_adjoint_solution (unsigned int i=0) |
const NumericVector< Number > & | get_weighted_sensitivity_adjoint_solution (unsigned int i=0) const |
NumericVector< Number > & | add_weighted_sensitivity_solution () |
NumericVector< Number > & | get_weighted_sensitivity_solution () |
const NumericVector< Number > & | get_weighted_sensitivity_solution () const |
NumericVector< Number > & | add_adjoint_rhs (unsigned int i=0) |
NumericVector< Number > & | get_adjoint_rhs (unsigned int i=0) |
const NumericVector< Number > & | get_adjoint_rhs (unsigned int i=0) const |
NumericVector< Number > & | add_sensitivity_rhs (unsigned int i=0) |
NumericVector< Number > & | get_sensitivity_rhs (unsigned int i=0) |
const NumericVector< Number > & | get_sensitivity_rhs (unsigned int i=0) const |
unsigned int | n_vectors () const |
unsigned int | n_matrices () const |
unsigned int | n_vars () const |
unsigned int | n_variable_groups () const |
unsigned int | n_components () const |
dof_id_type | n_dofs () const |
dof_id_type | n_active_dofs () const |
dof_id_type | n_constrained_dofs () const |
dof_id_type | n_local_constrained_dofs () const |
dof_id_type | n_local_dofs () const |
unsigned int | add_variable (std::string_view var, const FEType &type, const std::set< subdomain_id_type > *const active_subdomains=nullptr) |
Adds the variable var to the list of variables for this system. More... | |
unsigned int | add_variable (std::string_view var, const Order order=FIRST, const FEFamily=LAGRANGE, const std::set< subdomain_id_type > *const active_subdomains=nullptr) |
Adds the variable var to the list of variables for this system. More... | |
unsigned int | add_variables (const std::vector< std::string > &vars, const FEType &type, const std::set< subdomain_id_type > *const active_subdomains=nullptr) |
Adds the variable var to the list of variables for this system. More... | |
unsigned int | add_variables (const std::vector< std::string > &vars, const Order order=FIRST, const FEFamily=LAGRANGE, const std::set< subdomain_id_type > *const active_subdomains=nullptr) |
Adds the variable var to the list of variables for this system. More... | |
const Variable & | variable (unsigned int var) const |
Return a constant reference to Variable var . More... | |
const VariableGroup & | variable_group (unsigned int vg) const |
Return a constant reference to VariableGroup vg . More... | |
bool | has_variable (std::string_view var) const |
const std::string & | variable_name (const unsigned int i) const |
unsigned int | variable_number (std::string_view var) const |
void | get_all_variable_numbers (std::vector< unsigned int > &all_variable_numbers) const |
Fills all_variable_numbers with all the variable numbers for the variables that have been added to this system. More... | |
unsigned int | variable_scalar_number (std::string_view var, unsigned int component) const |
unsigned int | variable_scalar_number (unsigned int var_num, unsigned int component) const |
const FEType & | variable_type (const unsigned int i) const |
const FEType & | variable_type (std::string_view var) const |
bool | identify_variable_groups () const |
void | identify_variable_groups (const bool) |
Toggle automatic VariableGroup identification. More... | |
Real | calculate_norm (const NumericVector< Number > &v, unsigned int var, FEMNormType norm_type, std::set< unsigned int > *skip_dimensions=nullptr) const |
Real | calculate_norm (const NumericVector< Number > &v, const SystemNorm &norm, std::set< unsigned int > *skip_dimensions=nullptr) const |
void | read_header (Xdr &io, std::string_view version, const bool read_header=true, const bool read_additional_data=true, const bool read_legacy_format=false) |
Reads the basic data header for this System. More... | |
void | read_legacy_data (Xdr &io, const bool read_additional_data=true) |
Reads additional data, namely vectors, for this System. More... | |
template<typename ValType > | |
void | read_serialized_data (Xdr &io, const bool read_additional_data=true) |
Reads additional data, namely vectors, for this System. More... | |
void | read_serialized_data (Xdr &io, const bool read_additional_data=true) |
Non-templated version for backward compatibility. More... | |
template<typename InValType > | |
std::size_t | read_serialized_vectors (Xdr &io, const std::vector< NumericVector< Number > *> &vectors) const |
Read a number of identically distributed vectors. More... | |
std::size_t | read_serialized_vectors (Xdr &io, const std::vector< NumericVector< Number > *> &vectors) const |
Non-templated version for backward compatibility. More... | |
template<typename InValType > | |
void | read_parallel_data (Xdr &io, const bool read_additional_data) |
Reads additional data, namely vectors, for this System. More... | |
void | read_parallel_data (Xdr &io, const bool read_additional_data) |
Non-templated version for backward compatibility. More... | |
void | write_header (Xdr &io, std::string_view version, const bool write_additional_data) const |
Writes the basic data header for this System. More... | |
void | write_serialized_data (Xdr &io, const bool write_additional_data=true) const |
Writes additional data, namely vectors, for this System. More... | |
std::size_t | write_serialized_vectors (Xdr &io, const std::vector< const NumericVector< Number > *> &vectors) const |
Serialize & write a number of identically distributed vectors. More... | |
void | write_parallel_data (Xdr &io, const bool write_additional_data) const |
Writes additional data, namely vectors, for this System. More... | |
std::string | get_info () const |
void | attach_init_function (void fptr(EquationSystems &es, const std::string &name)) |
Register a user function to use in initializing the system. More... | |
void | attach_init_object (Initialization &init) |
Register a user class to use to initialize the system. More... | |
void | attach_assemble_function (void fptr(EquationSystems &es, const std::string &name)) |
Register a user function to use in assembling the system matrix and RHS. More... | |
void | attach_assemble_object (Assembly &assemble) |
Register a user object to use in assembling the system matrix and RHS. More... | |
void | attach_constraint_function (void fptr(EquationSystems &es, const std::string &name)) |
Register a user function for imposing constraints. More... | |
void | attach_constraint_object (Constraint &constrain) |
Register a user object for imposing constraints. More... | |
bool | has_constraint_object () const |
Constraint & | get_constraint_object () |
Return the user object for imposing constraints. More... | |
void | attach_QOI_function (void fptr(EquationSystems &es, const std::string &name, const QoISet &qoi_indices)) |
Register a user function for evaluating the quantities of interest, whose values should be placed in System::qoi . More... | |
void | attach_QOI_object (QOI &qoi) |
Register a user object for evaluating the quantities of interest, whose values should be placed in System::qoi . More... | |
void | attach_QOI_derivative (void fptr(EquationSystems &es, const std::string &name, const QoISet &qoi_indices, bool include_liftfunc, bool apply_constraints)) |
Register a user function for evaluating derivatives of a quantity of interest with respect to test functions, whose values should be placed in System::rhs . More... | |
void | attach_QOI_derivative_object (QOIDerivative &qoi_derivative) |
Register a user object for evaluating derivatives of a quantity of interest with respect to test functions, whose values should be placed in System::rhs . More... | |
virtual void | user_initialization () |
Calls user's attached initialization function, or is overridden by the user in derived classes. More... | |
virtual void | user_assembly () |
Calls user's attached assembly function, or is overridden by the user in derived classes. More... | |
virtual void | user_constrain () |
Calls user's attached constraint function, or is overridden by the user in derived classes. More... | |
virtual void | user_QOI (const QoISet &qoi_indices) |
Calls user's attached quantity of interest function, or is overridden by the user in derived classes. More... | |
virtual void | user_QOI_derivative (const QoISet &qoi_indices=QoISet(), bool include_liftfunc=true, bool apply_constraints=true) |
Calls user's attached quantity of interest derivative function, or is overridden by the user in derived classes. More... | |
virtual void | re_update () |
Re-update the local values when the mesh has changed. More... | |
virtual void | restrict_vectors () |
Restrict vectors after the mesh has coarsened. More... | |
virtual void | prolong_vectors () |
Prolong vectors after the mesh has refined. More... | |
virtual void | disable_cache () |
Avoids use of any cached data that might affect any solve result. More... | |
Number | current_solution (const dof_id_type global_dof_number) const |
unsigned int | n_qois () const |
Number of currently active quantities of interest. More... | |
void | init_qois (unsigned int n_qois) |
Accessors for qoi and qoi_error_estimates vectors. More... | |
void | set_qoi (unsigned int qoi_index, Number qoi_value) |
Number | get_qoi_value (unsigned int qoi_index) const |
void | set_qoi (std::vector< Number > new_qoi) |
std::vector< Number > | get_qoi_values () const |
Returns a copy of qoi, not a reference. More... | |
void | set_qoi_error_estimate (unsigned int qoi_index, Number qoi_error_estimate) |
Number | get_qoi_error_estimate_value (unsigned int qoi_index) const |
Number | point_value (unsigned int var, const Point &p, const bool insist_on_success=true, const NumericVector< Number > *sol=nullptr) const |
Number | point_value (unsigned int var, const Point &p, const Elem &e, const NumericVector< Number > *sol=nullptr) const |
Number | point_value (unsigned int var, const Point &p, const Elem *e) const |
Calls the version of point_value() which takes a reference. More... | |
Number | point_value (unsigned int var, const Point &p, const NumericVector< Number > *sol) const |
Calls the parallel version of point_value(). More... | |
Gradient | point_gradient (unsigned int var, const Point &p, const bool insist_on_success=true, const NumericVector< Number > *sol=nullptr) const |
Gradient | point_gradient (unsigned int var, const Point &p, const Elem &e, const NumericVector< Number > *sol=nullptr) const |
Gradient | point_gradient (unsigned int var, const Point &p, const Elem *e) const |
Calls the version of point_gradient() which takes a reference. More... | |
Gradient | point_gradient (unsigned int var, const Point &p, const NumericVector< Number > *sol) const |
Calls the parallel version of point_gradient(). More... | |
Tensor | point_hessian (unsigned int var, const Point &p, const bool insist_on_success=true, const NumericVector< Number > *sol=nullptr) const |
Tensor | point_hessian (unsigned int var, const Point &p, const Elem &e, const NumericVector< Number > *sol=nullptr) const |
Tensor | point_hessian (unsigned int var, const Point &p, const Elem *e) const |
Calls the version of point_hessian() which takes a reference. More... | |
Tensor | point_hessian (unsigned int var, const Point &p, const NumericVector< Number > *sol) const |
Calls the parallel version of point_hessian(). More... | |
void | local_dof_indices (const unsigned int var, std::set< dof_id_type > &var_indices) const |
Fills the std::set with the degrees of freedom on the local processor corresponding the the variable number passed in. More... | |
void | zero_variable (NumericVector< Number > &v, unsigned int var_num) const |
Zeroes all dofs in v that correspond to variable number var_num . More... | |
bool | get_project_with_constraints () |
Setter and getter functions for project_with_constraints boolean. More... | |
void | set_project_with_constraints (bool _project_with_constraints) |
bool & | hide_output () |
void | projection_matrix (SparseMatrix< Number > &proj_mat) const |
This method creates a projection matrix which corresponds to the operation of project_vector between old and new solution spaces. More... | |
SparseMatrix< Number > & | add_matrix (std::string_view mat_name, ParallelType type=PARALLEL, MatrixBuildType mat_build_type=MatrixBuildType::AUTOMATIC) |
Adds the additional matrix mat_name to this system. More... | |
template<template< typename > class> | |
SparseMatrix< Number > & | add_matrix (std::string_view mat_name, ParallelType=PARALLEL) |
Adds the additional matrix mat_name to this system. More... | |
void | remove_matrix (std::string_view mat_name) |
Removes the additional matrix mat_name from this system. More... | |
bool | have_matrix (std::string_view mat_name) const |
const SparseMatrix< Number > * | request_matrix (std::string_view mat_name) const |
SparseMatrix< Number > * | request_matrix (std::string_view mat_name) |
const SparseMatrix< Number > & | get_matrix (std::string_view mat_name) const |
SparseMatrix< Number > & | get_matrix (std::string_view mat_name) |
const Parallel::Communicator & | comm () const |
processor_id_type | n_processors () const |
processor_id_type | processor_id () const |
Static Public Member Functions | |
static std::string | get_info () |
Gets a string containing the reference information. More... | |
static void | print_info (std::ostream &out_stream=libMesh::out) |
Prints the reference information, by default to libMesh::out . More... | |
static unsigned int | n_objects () |
Prints the number of outstanding (created, but not yet destroyed) objects. More... | |
static void | enable_print_counter_info () |
Methods to enable/disable the reference counter output from print_info() More... | |
static void | disable_print_counter_info () |
Public Attributes | |
bool | assemble_before_solve |
Flag which tells the system to whether or not to call the user assembly function during each call to solve(). More... | |
bool | use_fixed_solution |
A boolean to be set to true by systems using elem_fixed_solution, for optional use by e.g. More... | |
int | extra_quadrature_order |
A member int that can be employed to indicate increased or reduced quadrature order. More... | |
std::unique_ptr< NumericVector< Number > > | solution |
Data structure to hold solution values. More... | |
std::unique_ptr< NumericVector< Number > > | current_local_solution |
All the values I need to compute my contribution to the simulation at hand. More... | |
Real | time |
For time-dependent problems, this is the time t at the beginning of the current timestep. More... | |
Protected Types | |
typedef std::map< std::string, std::pair< unsigned int, unsigned int > > | Counts |
Data structure to log the information. More... | |
Protected Member Functions | |
virtual void | init_data () |
Initializes the data for the system. More... | |
virtual void | add_matrices () |
Insertion point for adding matrices in derived classes before init_matrices() is called. More... | |
virtual void | init_matrices () |
Initializes the matrices associated with this system. More... | |
bool | can_add_matrices () const |
void | project_vector (NumericVector< Number > &, int is_adjoint=-1) const |
Projects the vector defined on the old mesh onto the new mesh. More... | |
void | project_vector (const NumericVector< Number > &, NumericVector< Number > &, int is_adjoint=-1) const |
Projects the vector defined on the old mesh onto the new mesh. More... | |
void | solve_for_unconstrained_dofs (NumericVector< Number > &, int is_adjoint=-1) const |
void | increment_constructor_count (const std::string &name) noexcept |
Increments the construction counter. More... | |
void | increment_destructor_count (const std::string &name) noexcept |
Increments the destruction counter. More... | |
Protected Attributes | |
const Parallel::Communicator & | _communicator |
Static Protected Attributes | |
static Counts | _counts |
Actually holds the data. More... | |
static Threads::atomic< unsigned int > | _n_objects |
The number of objects. More... | |
static Threads::spin_mutex | _mutex |
Mutual exclusion object to enable thread-safe reference counting. More... | |
static bool | _enable_print_counter = true |
Flag to control whether reference count information is printed when print_info is called. More... | |
Private Member Functions | |
void | late_matrix_init (SparseMatrix< Number > &mat, ParallelType type) |
Helper function to keep DofMap forward declarable in system.h. More... | |
Real | discrete_var_norm (const NumericVector< Number > &v, unsigned int var, FEMNormType norm_type) const |
Finds the discrete norm for the entries in the vector corresponding to Dofs associated with var. More... | |
template<typename iterator_type , typename InValType > | |
std::size_t | read_serialized_blocked_dof_objects (const dof_id_type n_objects, const iterator_type begin, const iterator_type end, const InValType dummy, Xdr &io, const std::vector< NumericVector< Number > *> &vecs, const unsigned int var_to_read=libMesh::invalid_uint) const |
Reads an input vector from the stream io and assigns the values to a set of DofObjects . More... | |
unsigned int | read_SCALAR_dofs (const unsigned int var, Xdr &io, NumericVector< Number > *vec) const |
Reads the SCALAR dofs from the stream io and assigns the values to the appropriate entries of vec . More... | |
template<typename InValType > | |
numeric_index_type | read_serialized_vector (Xdr &io, NumericVector< Number > *vec) |
Reads a vector for this System. More... | |
numeric_index_type | read_serialized_vector (Xdr &io, NumericVector< Number > &vec) |
Non-templated version for backward compatibility. More... | |
template<typename iterator_type > | |
std::size_t | write_serialized_blocked_dof_objects (const std::vector< const NumericVector< Number > *> &vecs, const dof_id_type n_objects, const iterator_type begin, const iterator_type end, Xdr &io, const unsigned int var_to_write=libMesh::invalid_uint) const |
Writes an output vector to the stream io for a set of DofObjects . More... | |
unsigned int | write_SCALAR_dofs (const NumericVector< Number > &vec, const unsigned int var, Xdr &io) const |
Writes the SCALAR dofs associated with var to the stream io . More... | |
dof_id_type | write_serialized_vector (Xdr &io, const NumericVector< Number > &vec) const |
Writes a vector for this System. More... | |
Private Attributes | |
std::vector< Number > | qoi |
Values of the quantities of interest. More... | |
std::vector< Number > | qoi_error_estimates |
Vector to hold error estimates for qois, either from a steady state calculation, or from a single unsteady solver timestep. More... | |
void(* | _init_system_function )(EquationSystems &es, const std::string &name) |
Function that initializes the system. More... | |
Initialization * | _init_system_object |
Object that initializes the system. More... | |
void(* | _assemble_system_function )(EquationSystems &es, const std::string &name) |
Function that assembles the system. More... | |
Assembly * | _assemble_system_object |
Object that assembles the system. More... | |
void(* | _constrain_system_function )(EquationSystems &es, const std::string &name) |
Function to impose constraints. More... | |
Constraint * | _constrain_system_object |
Object that constrains the system. More... | |
void(* | _qoi_evaluate_function )(EquationSystems &es, const std::string &name, const QoISet &qoi_indices) |
Function to evaluate quantity of interest. More... | |
QOI * | _qoi_evaluate_object |
Object to compute quantities of interest. More... | |
void(* | _qoi_evaluate_derivative_function )(EquationSystems &es, const std::string &name, const QoISet &qoi_indices, bool include_liftfunc, bool apply_constraints) |
Function to evaluate quantity of interest derivative. More... | |
QOIDerivative * | _qoi_evaluate_derivative_object |
Object to compute derivatives of quantities of interest. More... | |
std::unique_ptr< DofMap > | _dof_map |
Data structure describing the relationship between nodes, variables, etc... More... | |
EquationSystems & | _equation_systems |
Constant reference to the EquationSystems object used for the simulation. More... | |
MeshBase & | _mesh |
Constant reference to the mesh data structure used for the simulation. More... | |
const std::string | _sys_name |
A name associated with this system. More... | |
const unsigned int | _sys_number |
The number associated with this system. More... | |
std::vector< Variable > | _variables |
The Variable in this System . More... | |
std::vector< VariableGroup > | _variable_groups |
The VariableGroup in this System . More... | |
std::map< std::string, unsigned int, std::less<> > | _variable_numbers |
The variable numbers corresponding to user-specified names, useful for name-based lookups. More... | |
bool | _active |
Flag stating if the system is active or not. More... | |
std::map< std::string, std::unique_ptr< NumericVector< Number > >, std::less<> > | _vectors |
Some systems need an arbitrary number of vectors. More... | |
std::map< std::string, bool, std::less<> > | _vector_projections |
Holds true if a vector by that name should be projected onto a changed grid, false if it should be zeroed. More... | |
std::map< std::string, int, std::less<> > | _vector_is_adjoint |
Holds non-negative if a vector by that name should be projected using adjoint constraints/BCs, -1 if primal. More... | |
std::map< std::string, std::unique_ptr< SparseMatrix< Number > >, std::less<> > | _matrices |
Some systems need an arbitrary number of matrices. More... | |
std::map< std::string, ParallelType, std::less<> > | _matrix_types |
Holds the types of the matrices. More... | |
bool | _matrices_initialized |
false when additional matrices being added require initialization, true otherwise. More... | |
bool | _solution_projection |
Holds true if the solution vector should be projected onto a changed grid, false if it should be zeroed. More... | |
bool | _basic_system_only |
Holds true if the components of more advanced system types (e.g. More... | |
bool | _is_initialized |
true when additional vectors and variables do not require immediate initialization, false otherwise. More... | |
bool | _identify_variable_groups |
true when VariableGroup structures should be automatically identified, false otherwise. More... | |
unsigned int | _additional_data_written |
This flag is used only when reading in a system from file. More... | |
std::vector< unsigned int > | _written_var_indices |
This vector is used only when reading in a system from file. More... | |
bool | adjoint_already_solved |
Has the adjoint problem already been solved? If the user sets adjoint_already_solved to true , we won't waste time solving it again. More... | |
bool | _hide_output |
Are we allowed to write this system to file? If _hide_output is true , then EquationSystems::write will ignore this system. More... | |
bool | project_with_constraints |
Do we want to apply constraints while projecting vectors ? More... | |
Manages consistently variables, degrees of freedom, and coefficient vectors.
This is the base class for classes which contain information related to any physical process that might be simulated. Such information may range from the actual solution values to algorithmic flags that may be used to control the numerical methods employed. In general, use an EquationSystems object to handle one or more of the children of this class.
Especially, this class manages the variables of the differential equation, the coefficient vectors and the DofMap
, and ensures that these are consistent. It provides storage for the solution. Furthermore, (de-) serialization functionality is provided.
typedef std::map<std::string, std::unique_ptr<SparseMatrix<Number> >, std::less<> >::const_iterator libMesh::System::const_matrices_iterator |
typedef std::map<std::string, std::unique_ptr<NumericVector<Number> >, std::less<> >::const_iterator libMesh::System::const_vectors_iterator |
|
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 Gradient(* libMesh::System::GradientFunctionPointer) (const Point &p, const Parameters ¶meters, const std::string &sys_name, const std::string &unknown_name) |
typedef std::map<std::string, std::unique_ptr<SparseMatrix<Number> >, std::less<> >::iterator libMesh::System::matrices_iterator |
typedef System libMesh::System::sys_type |
typedef Number(* libMesh::System::ValueFunctionPointer) (const Point &p, const Parameters &Parameters, const std::string &sys_name, const std::string &unknown_name) |
typedef std::map<std::string, std::unique_ptr<NumericVector<Number> >, std::less<> >::iterator libMesh::System::vectors_iterator |
libMesh::System::System | ( | EquationSystems & | es, |
const std::string & | name, | ||
const unsigned int | number | ||
) |
Constructor.
Optionally initializes required data structures.
Definition at line 63 of file system.C.
Referenced by HeatSystem::init_context().
|
delete |
Special functions.
|
default |
|
virtual |
|
inline |
Activates the system.
Only active systems are solved.
Definition at line 2317 of file system.h.
References _active.
|
inline |
true
if the system is active, false
otherwise. An active system will be solved. Definition at line 2309 of file system.h.
References _active.
NumericVector< Number > & libMesh::System::add_adjoint_rhs | ( | unsigned int | i = 0 | ) |
Definition at line 1245 of file system.C.
References add_vector().
Referenced by libMesh::ExplicitSystem::assemble_qoi_derivative(), and libMesh::FEMSystem::assemble_qoi_derivative().
NumericVector< Number > & libMesh::System::add_adjoint_solution | ( | unsigned int | i = 0 | ) |
Definition at line 1181 of file system.C.
References add_vector(), and set_vector_as_adjoint().
Referenced by libMesh::ImplicitSystem::adjoint_solve().
|
inlineprotectedvirtual |
Insertion point for adding matrices in derived classes before init_matrices() is called.
Reimplemented in libMesh::EigenSystem, and libMesh::ImplicitSystem.
Definition at line 1903 of file system.h.
Referenced by libMesh::ImplicitSystem::add_matrices(), libMesh::EigenSystem::add_matrices(), and init_data().
SparseMatrix< Number > & libMesh::System::add_matrix | ( | std::string_view | mat_name, |
ParallelType | type = PARALLEL , |
||
MatrixBuildType | mat_build_type = MatrixBuildType::AUTOMATIC |
||
) |
Adds the additional matrix mat_name
to this system.
Only allowed prior to assemble()
. All additional matrices have the same sparsity pattern as the matrix used during solution. When not System
but the user wants to initialize the mayor matrix, then all the additional matrices, if existent, have to be initialized by the user, too.
This non-template method will add a derived matrix type corresponding to the solver package. If the user wishes to specify the matrix type to add, use the templated add_matrix
method instead
mat_name | A name for the matrix |
type | The serial/parallel/ghosted type of the matrix |
mat_build_type | The matrix type to build |
Definition at line 985 of file system.C.
References _matrices, _matrix_types, libMesh::ParallelObject::comm(), libMesh::default_solver_package(), late_matrix_init(), and libMesh::libmesh_assert().
Referenced by libMesh::ImplicitSystem::add_matrices(), libMesh::EigenSystem::add_matrices(), alternative_fe_assembly(), libMesh::EigenTimeSolver::init(), main(), and libMesh::NewmarkSystem::NewmarkSystem().
|
inline |
Adds the additional matrix mat_name
to this system.
Only allowed prior to assemble()
. All additional matrices have the same sparsity pattern as the matrix used during solution. When not System
but the user wants to initialize the mayor matrix, then all the additional matrices, if existent, have to be initialized by the user, too.
This method will create add a derived matrix of type MatrixType<Number>
. One can use the non-templated add_matrix
method to add a matrix corresponding to the default solver package
mat_name | A name for the matrix |
type | The serial/parallel/ghosted type of the matrix |
Definition at line 2602 of file system.h.
References _matrices, _matrix_types, and late_matrix_init().
NumericVector< Number > & libMesh::System::add_sensitivity_rhs | ( | unsigned int | i = 0 | ) |
Definition at line 1275 of file system.C.
References add_vector().
Referenced by libMesh::ImplicitSystem::assemble_residual_derivatives().
NumericVector< Number > & libMesh::System::add_sensitivity_solution | ( | unsigned int | i = 0 | ) |
Definition at line 1130 of file system.C.
References add_vector().
Referenced by libMesh::ImplicitSystem::sensitivity_solve().
unsigned int libMesh::System::add_variable | ( | std::string_view | var, |
const FEType & | type, | ||
const std::set< subdomain_id_type > *const | active_subdomains = nullptr |
||
) |
Adds the variable var
to the list of variables for this system.
If active_subdomains
is either nullptr
(the default) or points to an empty set, then it will be assumed that var
has no subdomain restrictions
Definition at line 1305 of file system.C.
References _variable_groups, _variable_numbers, _variables, libMesh::Variable::active_subdomains(), add_variables(), libMesh::ParallelObject::comm(), identify_variable_groups(), libMesh::Variable::implicitly_active(), is_initialized(), libMesh::libmesh_assert(), libMesh::make_range(), n_variable_groups(), n_vars(), variable(), variable_name(), and variable_type().
Referenced by libMesh::DifferentiableSystem::add_second_order_dot_vars(), add_variable(), assemble_and_solve(), OverlappingTestBase::init(), SolidSystem::init_data(), CurlCurlSystem::init_data(), SimpleEIMConstruction::init_data(), HeatSystem::init_data(), SimpleRBConstruction::init_data(), main(), libMesh::ErrorVector::plot_error(), read_header(), RationalMapTest< elem_type >::setUp(), SlitMeshRefinedSystemTest::setUp(), FETestBase< order, family, elem_type, 1 >::setUp(), WriteVecAndScalar::setupTests(), SystemsTest::simpleSetup(), MultiEvaluablePredTest::test(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), MeshFunctionTest::test_subdomain_id_sets(), SystemsTest::testAssemblyWithDgFemContext(), DofMapTest::testBadElemFECombo(), EquationSystemsTest::testBadVarNames(), SystemsTest::testBlockRestrictedVarNDofs(), SystemsTest::testBoundaryProjectCube(), DofMapTest::testConstraintLoopDetection(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), ConstraintOperatorTest::testCoreform(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), SystemsTest::testDofCouplingWithVarGroups(), DofMapTest::testDofOwner(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshAssignTest::testMeshMoveAssign(), PeriodicBCTest::testPeriodicBC(), EquationSystemsTest::testPostInitAddElem(), EquationSystemsTest::testPostInitAddRealSystem(), SystemsTest::testProjectCubeWithMeshFunction(), MeshInputTest::testProjectionRegression(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), InfFERadialTest::testRefinement(), EquationSystemsTest::testRefineThenReinitPreserveFlags(), EquationSystemsTest::testReinitWithNodeElem(), EquationSystemsTest::testRepartitionThenReinit(), EquationSystemsTest::testSelectivePRefine(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), WriteVecAndScalar::testWriteExodus(), and WriteVecAndScalar::testWriteNemesis().
unsigned int libMesh::System::add_variable | ( | std::string_view | var, |
const Order | order = FIRST , |
||
const FEFamily | family = LAGRANGE , |
||
const std::set< subdomain_id_type > *const | active_subdomains = nullptr |
||
) |
Adds the variable var
to the list of variables for this system.
Same as before, but assumes LAGRANGE
as default value for FEType.family
. If active_subdomains
is either nullptr
(the default) or points to an empty set, then it will be assumed that var
has no subdomain restrictions
Definition at line 1407 of file system.C.
References add_variable().
unsigned int libMesh::System::add_variables | ( | const std::vector< std::string > & | vars, |
const FEType & | type, | ||
const std::set< subdomain_id_type > *const | active_subdomains = nullptr |
||
) |
Adds the variable var
to the list of variables for this system.
If active_subdomains
is either nullptr
(the default) or points to an empty set, then it will be assumed that var
has no subdomain restrictions
Definition at line 1419 of file system.C.
References _variable_groups, _variable_numbers, _variables, libMesh::ParallelObject::comm(), identify_variable_groups(), is_initialized(), libMesh::libmesh_assert(), libMesh::make_range(), n_components(), n_variable_groups(), n_vars(), variable_name(), and variable_type().
Referenced by add_variable(), add_variables(), and SystemsTest::test100KVariables().
unsigned int libMesh::System::add_variables | ( | const std::vector< std::string > & | vars, |
const Order | order = FIRST , |
||
const FEFamily | family = LAGRANGE , |
||
const std::set< subdomain_id_type > *const | active_subdomains = nullptr |
||
) |
Adds the variable var
to the list of variables for this system.
Same as before, but assumes LAGRANGE
as default value for FEType.family
. If active_subdomains
is either nullptr
(the default) or points to an empty set, then it will be assumed that var
has no subdomain restrictions
Definition at line 1538 of file system.C.
References add_variables().
NumericVector< Number > & libMesh::System::add_vector | ( | std::string_view | vec_name, |
const bool | projections = true , |
||
const ParallelType | type = PARALLEL |
||
) |
Adds the additional vector vec_name
to this system.
All the additional vectors are similarly distributed, like the solution
, and initialized to zero.
By default vectors added by add_vector are projected to changed grids by reinit(). To zero them instead (more efficient), pass "false" as the second argument
If the vector already exists, the existing vector is returned. after any upgrade to the projections
or type
has been made. We only handle upgrades (projections false->true, or type PARALLEL->GHOSTED) in this fashion, not downgrades, on the theory that if two codes have differing needs we want to support the union of those needs, not the intersection. Downgrades can only be accomplished manually, via set_vector_preservation()
or by setting a vector type()
and re-initializing.
Definition at line 751 of file system.C.
References _dof_map, _is_initialized, _vector_is_adjoint, _vector_projections, _vectors, libMesh::NumericVector< T >::build(), libMesh::NumericVector< T >::close(), libMesh::NumericVector< T >::closed(), libMesh::ParallelObject::comm(), libMesh::GHOSTED, libMesh::NumericVector< T >::initialized(), libMesh::libmesh_assert(), n_dofs(), n_local_dofs(), libMesh::ParallelObject::n_processors(), libMesh::PARALLEL, libMesh::SERIAL, libMesh::NumericVector< T >::swap(), and libMesh::NumericVector< T >::type().
Referenced by add_adjoint_rhs(), add_adjoint_solution(), add_sensitivity_rhs(), add_sensitivity_solution(), libMesh::ExplicitSystem::add_system_rhs(), add_weighted_sensitivity_adjoint_solution(), add_weighted_sensitivity_solution(), alternative_fe_assembly(), libMesh::AdjointRefinementEstimator::estimate_error(), fe_assembly(), libMesh::SecondOrderUnsteadySolver::init(), libMesh::UnsteadySolver::init(), libMesh::UnsteadySolver::init_adjoints(), libMesh::TimeSolver::init_adjoints(), libMesh::OptimizationSystem::init_data(), libMesh::ContinuationSystem::init_data(), main(), libMesh::NewmarkSystem::NewmarkSystem(), read_header(), libMesh::FrequencySystem::set_frequencies(), libMesh::FrequencySystem::set_frequencies_by_range(), libMesh::FrequencySystem::set_frequencies_by_steps(), SystemsTest::testAddVectorProjChange(), SystemsTest::testAddVectorTypeChange(), SystemsTest::testPostInitAddVector(), and SystemsTest::testPostInitAddVectorTypeChange().
NumericVector< Number > & libMesh::System::add_weighted_sensitivity_adjoint_solution | ( | unsigned int | i = 0 | ) |
Definition at line 1213 of file system.C.
References add_vector(), and set_vector_as_adjoint().
Referenced by libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve().
NumericVector< Number > & libMesh::System::add_weighted_sensitivity_solution | ( | ) |
Definition at line 1160 of file system.C.
References add_vector().
Referenced by libMesh::ImplicitSystem::weighted_sensitivity_solve().
|
inlinevirtual |
Solves for parameter sensitivities using the adjoint method.
This method is only implemented in some derived classes.
Reimplemented in libMesh::ImplicitSystem.
Definition at line 2558 of file system.h.
Referenced by qoi_parameter_sensitivity().
|
inlinevirtual |
Solves the adjoint system, for the specified qoi indices, or for every qoi if qoi_indices
is nullptr.
Must be overridden in derived systems.
This method is only implemented in some derived classes.
Reimplemented in libMesh::ImplicitSystem, and libMesh::DifferentiableSystem.
Definition at line 2542 of file system.h.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), and libMesh::AdjointResidualErrorEstimator::estimate_error().
|
virtual |
Prepares matrix
and _dof_map
for matrix assembly.
Does not actually assemble anything. For matrix assembly, use the assemble()
in derived classes. Should be overridden in derived classes.
Reimplemented in libMesh::LinearImplicitSystem, libMesh::DifferentiableSystem, libMesh::ImplicitSystem, libMesh::FrequencySystem, and libMesh::NewmarkSystem.
Definition at line 549 of file system.C.
References user_assembly().
Referenced by libMesh::ImplicitSystem::assemble(), libMesh::EigenSystem::solve(), libMesh::CondensedEigenSystem::solve(), and libMesh::ExplicitSystem::solve().
Calls user qoi function.
Can be overridden in derived classes.
Reimplemented in libMesh::FEMSystem, and libMesh::ExplicitSystem.
Definition at line 560 of file system.C.
References user_QOI().
Referenced by libMesh::ExplicitSystem::assemble_qoi().
|
virtual |
Calls user qoi derivative function.
Can be overridden in derived classes.
Reimplemented in libMesh::FEMSystem, and libMesh::ExplicitSystem.
Definition at line 571 of file system.C.
References user_QOI_derivative().
Referenced by libMesh::ExplicitSystem::assemble_qoi_derivative().
|
inlinevirtual |
Calls residual parameter derivative function.
Library subclasses use finite differences by default.
This should assemble the sensitivity rhs vectors to hold -(partial R / partial p_i), making them ready to solve the forward sensitivity equation.
This method is only implemented in some derived classes.
Reimplemented in libMesh::ImplicitSystem.
void libMesh::System::attach_assemble_function | ( | void | fptrEquationSystems &es, const std::string &name | ) |
Register a user function to use in assembling the system matrix and RHS.
Definition at line 2109 of file system.C.
References _assemble_system_function, _assemble_system_object, fptr(), and libMesh::libmesh_assert().
Referenced by assemble_and_solve(), main(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), SystemsTest::testAssemblyWithDgFemContext(), ConstraintOperatorTest::testCoreform(), SystemsTest::testDofCouplingWithVarGroups(), and PeriodicBCTest::testPeriodicBC().
void libMesh::System::attach_assemble_object | ( | System::Assembly & | assemble_in | ) |
Register a user object to use in assembling the system matrix and RHS.
Definition at line 2126 of file system.C.
References _assemble_system_function, and _assemble_system_object.
Referenced by main().
void libMesh::System::attach_constraint_function | ( | void | fptrEquationSystems &es, const std::string &name | ) |
Register a user function for imposing constraints.
Definition at line 2140 of file system.C.
References _constrain_system_function, _constrain_system_object, fptr(), and libMesh::libmesh_assert().
void libMesh::System::attach_constraint_object | ( | System::Constraint & | constrain | ) |
Register a user object for imposing constraints.
Definition at line 2157 of file system.C.
References _constrain_system_function, and _constrain_system_object.
Referenced by DofMapTest::testConstraintLoopDetection().
void libMesh::System::attach_init_function | ( | void | fptrEquationSystems &es, const std::string &name | ) |
Register a user function to use in initializing the system.
Definition at line 2078 of file system.C.
References _init_system_function, _init_system_object, fptr(), and libMesh::libmesh_assert().
Referenced by main().
void libMesh::System::attach_init_object | ( | System::Initialization & | init_in | ) |
Register a user class to use to initialize the system.
attach_init_function
. Definition at line 2095 of file system.C.
References _init_system_function, and _init_system_object.
void libMesh::System::attach_QOI_derivative | ( | void | fptrEquationSystems &es, const std::string &name, const QoISet &qoi_indices, bool include_liftfunc, bool apply_constraints | ) |
Register a user function for evaluating derivatives of a quantity of interest with respect to test functions, whose values should be placed in System::rhs
.
Definition at line 2214 of file system.C.
References _qoi_evaluate_derivative_function, _qoi_evaluate_derivative_object, fptr(), and libMesh::libmesh_assert().
void libMesh::System::attach_QOI_derivative_object | ( | QOIDerivative & | qoi_derivative | ) |
Register a user object for evaluating derivatives of a quantity of interest with respect to test functions, whose values should be placed in System::rhs
.
Definition at line 2231 of file system.C.
References _qoi_evaluate_derivative_function, and _qoi_evaluate_derivative_object.
void libMesh::System::attach_QOI_function | ( | void | fptrEquationSystems &es, const std::string &name, const QoISet &qoi_indices | ) |
Register a user function for evaluating the quantities of interest, whose values should be placed in System::qoi
.
Definition at line 2182 of file system.C.
References _qoi_evaluate_function, _qoi_evaluate_object, fptr(), and libMesh::libmesh_assert().
void libMesh::System::attach_QOI_object | ( | QOI & | qoi | ) |
Register a user object for evaluating the quantities of interest, whose values should be placed in System::qoi
.
Definition at line 2200 of file system.C.
References _qoi_evaluate_function, and _qoi_evaluate_object.
void libMesh::System::boundary_project_solution | ( | const std::set< boundary_id_type > & | b, |
const std::vector< unsigned int > & | variables, | ||
FunctionBase< Number > * | f, | ||
FunctionBase< Gradient > * | g = nullptr |
||
) |
Projects arbitrary boundary functions onto a vector of degree of freedom values for the current system.
This method projects an arbitrary boundary function onto the solution via L2 projections and nodal interpolations on each element.
Only degrees of freedom which affect the function's trace on a boundary in the set b
are affected. Only degrees of freedom associated with the variables listed in the vector variables
are projected. The function value f
and its gradient g
are user-provided cloneable functors. A gradient g
is only required/used for projecting onto finite element spaces with continuous derivatives. If non-default Parameters
are to be used, they can be provided in the parameters
argument.
Definition at line 1253 of file system_projection.C.
Referenced by SystemsTest::testBoundaryProjectCube().
void libMesh::System::boundary_project_solution | ( | const std::set< boundary_id_type > & | b, |
const std::vector< unsigned int > & | variables, | ||
ValueFunctionPointer | fptr, | ||
GradientFunctionPointer | gptr, | ||
const Parameters & | parameters | ||
) |
Projects arbitrary boundary functions onto a vector of degree of freedom values for the current system.
This method projects components of an arbitrary boundary function onto the solution via L2 projections and nodal interpolations on each element.
Only degrees of freedom which affect the function's trace on a boundary in the set b
are affected. Only degrees of freedom associated with the variables listed in the vector variables
are projected. The function value fptr
and its gradient gptr
are represented by function pointers. A gradient gptr
is only required/used for projecting onto finite element spaces with continuous derivatives.
Definition at line 1236 of file system_projection.C.
References fptr(), and gptr().
void libMesh::System::boundary_project_vector | ( | const std::set< boundary_id_type > & | b, |
const std::vector< unsigned int > & | variables, | ||
NumericVector< Number > & | new_vector, | ||
FunctionBase< Number > * | f, | ||
FunctionBase< Gradient > * | g = nullptr , |
||
int | is_adjoint = -1 |
||
) | const |
Projects arbitrary boundary functions onto a vector of degree of freedom values for the current system.
This method projects an arbitrary function via L2 projections and nodal interpolations on each element.
Only degrees of freedom which affect the function's trace on a boundary in the set b
are affected. Only degrees of freedom associated with the variables listed in the vector variables
are projected. The function value f
and its gradient g
are user-provided cloneable functors. A gradient g
is only required/used for projecting onto finite element spaces with continuous derivatives. If non-default Parameters
are to be used, they can be provided in the parameters
argument.
Constrain the new vector using the requested adjoint rather than primal constraints if is_adjoint is non-negative.
Definition at line 1289 of file system_projection.C.
References libMesh::NumericVector< T >::close(), libMesh::libmesh_ignore(), and libMesh::Threads::parallel_for().
void libMesh::System::boundary_project_vector | ( | const std::set< boundary_id_type > & | b, |
const std::vector< unsigned int > & | variables, | ||
ValueFunctionPointer | fptr, | ||
GradientFunctionPointer | gptr, | ||
const Parameters & | parameters, | ||
NumericVector< Number > & | new_vector, | ||
int | is_adjoint = -1 |
||
) | const |
Projects arbitrary boundary functions onto a vector of degree of freedom values for the current system.
This method projects an arbitrary boundary function via L2 projections and nodal interpolations on each element.
Only degrees of freedom which affect the function's trace on a boundary in the set b
are affected. Only degrees of freedom associated with the variables listed in the vector variables
are projected. The function value fptr
and its gradient gptr
are represented by function pointers. A gradient gptr
is only required/used for projecting onto finite element spaces with continuous derivatives.
Constrain the new vector using the requested adjoint rather than primal constraints if is_adjoint is non-negative.
Definition at line 1271 of file system_projection.C.
References fptr(), and gptr().
Real libMesh::System::calculate_norm | ( | const NumericVector< Number > & | v, |
unsigned int | var, | ||
FEMNormType | norm_type, | ||
std::set< unsigned int > * | skip_dimensions = nullptr |
||
) | const |
var
in the vector v
, in the specified norm (e.g. L2, L_INF, H1) Definition at line 1672 of file system.C.
References libMesh::DISCRETE_L1, libMesh::DISCRETE_L2, libMesh::DISCRETE_L_INF, discrete_var_norm(), libMesh::L2, n_vars(), and libMesh::Real.
Referenced by libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::AdaptiveTimeSolver::calculate_norm(), libMesh::UnsteadySolver::du(), main(), output_norms(), and MeshInputTest::testProjectionRegression().
Real libMesh::System::calculate_norm | ( | const NumericVector< Number > & | v, |
const SystemNorm & | norm, | ||
std::set< unsigned int > * | skip_dimensions = nullptr |
||
) | const |
v
, using component_norm
and component_scale
to choose and weight the norms of each variable. Definition at line 1694 of file system.C.
References _dof_map, _mesh, libMesh::FEGenericBase< OutputType >::build(), libMesh::NumericVector< T >::build(), libMesh::ParallelObject::comm(), libMesh::FEType::default_quadrature_rule(), dim, libMesh::DISCRETE_L1, libMesh::DISCRETE_L2, libMesh::DISCRETE_L_INF, discrete_var_norm(), libMesh::DofMap::dof_indices(), libMesh::MeshBase::elem_dimensions(), libMesh::Utility::enum_to_string(), libMesh::FEInterface::field_type(), get_dof_map(), get_mesh(), libMesh::GHOSTED, libMesh::H1, libMesh::H1_SEMINORM, libMesh::H2, libMesh::H2_SEMINORM, libMesh::L1, libMesh::NumericVector< T >::l1_norm(), libMesh::L2, libMesh::NumericVector< T >::l2_norm(), libMesh::L_INF, libMesh::libmesh_assert(), libMesh::NumericVector< T >::linfty_norm(), libMesh::NumericVector< T >::local_size(), libMesh::NumericVector< T >::localize(), libMesh::make_range(), TIMPI::Communicator::max(), n_vars(), libMesh::TensorTools::norm(), libMesh::TensorTools::norm_sq(), libMesh::Real, libMesh::NumericVector< T >::size(), std::sqrt(), TIMPI::Communicator::sum(), libMesh::TYPE_SCALAR, libMesh::TYPE_VECTOR, libMesh::DofMap::variable_type(), libMesh::W1_INF_SEMINORM, libMesh::W2_INF_SEMINORM, and libMesh::SystemNorm::weight().
|
inlineprotected |
Definition at line 1914 of file system.h.
References _matrices_initialized.
Referenced by libMesh::EigenSystem::set_eigenproblem_type().
|
virtual |
Clear all the data structures associated with the system.
Reimplemented in libMesh::NonlinearImplicitSystem, libMesh::OptimizationSystem, libMesh::RBConstruction, libMesh::RBEIMConstruction, libMesh::ImplicitSystem, libMesh::EigenSystem, libMesh::LinearImplicitSystem, libMesh::TransientSystem< RBConstruction >, libMesh::RBConstructionBase< LinearImplicitSystem >, libMesh::RBConstructionBase< System >, libMesh::RBConstructionBase< CondensedEigenSystem >, libMesh::DifferentiableSystem, libMesh::RBSCMConstruction, libMesh::FrequencySystem, libMesh::ContinuationSystem, libMesh::ExplicitSystem, libMesh::TransientRBConstruction, and libMesh::NewmarkSystem.
Definition at line 168 of file system.C.
References _dof_map, _is_initialized, _matrices, _matrices_initialized, _variable_numbers, _variables, _vector_is_adjoint, _vector_projections, _vectors, current_local_solution, and solution.
Referenced by libMesh::ExplicitSystem::clear(), libMesh::EigenSystem::clear(), and read_header().
|
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::__libmesh_tao_equality_constraints(), libMesh::__libmesh_tao_equality_constraints_jacobian(), libMesh::__libmesh_tao_gradient(), libMesh::__libmesh_tao_hessian(), libMesh::__libmesh_tao_inequality_constraints(), libMesh::__libmesh_tao_inequality_constraints_jacobian(), libMesh::__libmesh_tao_objective(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult_add(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::_smooth_flags(), 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::EigenSystem::add_matrices(), add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), add_variable(), add_variables(), add_vector(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::RBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::assemble_affine_expansion(), 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::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::MeshBase::cache_elem_data(), calculate_norm(), libMesh::DofMap::check_dirichlet_bcid_consistency(), 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::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), 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::MeshTools::correct_node_proc_ids(), 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< libMesh::Number >::create_submatrix_nosort(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::RBEIMEvaluation::distribute_bfs(), libMesh::DofMap::distribute_dofs(), 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::PatchRecoveryErrorEstimator::estimate_error(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), 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(), get_info(), libMesh::DofMap::get_info(), 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(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::LocationMap< T >::init(), libMesh::TimeSolver::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_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::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_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_recalculate_monitor(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_interface(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_postcheck(), libMesh::libmesh_petsc_snes_precheck(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), 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::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshRefinement::make_flags_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::MeshRefinement::make_refinement_compatible(), 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::DofMap::n_constrained_dofs(), 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::MeshBase::operator==(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::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(), point_gradient(), point_hessian(), point_value(), libMesh::MeshBase::prepare_for_use(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Partitioner::processor_pairs_to_interface_nodes(), libMesh::InterMeshProjection::project_system_vectors(), FEMParameters::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), 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(), read_legacy_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), 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(), read_serialized_vector(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshRefinement::refine_and_coarsen_elements(), 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::split_mesh(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::MeshBase::subdomain_ids(), libMesh::BoundaryInfo::sync(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), libMesh::MeshRefinement::test_level_one(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), libMesh::MeshRefinement::test_unflagged(), DofMapTest::testBadElemFECombo(), SystemsTest::testBlockRestrictedVarNDofs(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), ConstraintOperatorTest::testCoreform(), MeshInputTest::testExodusIGASidesets(), MeshTriangulationTest::testFoundCenters(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), PointLocatorTest::testPlanar(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), BoundaryInfoTest::testRenumber(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), MeshTriangulationTest::testTriangulatorRoundHole(), libMesh::MeshTools::total_weight(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::Poly2TriTriangulator::triangulate(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::NameBasedIO::write(), libMesh::XdrIO::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::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), 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().
|
virtual |
true
when the other system contains identical data, up to the given threshold. Outputs some diagnostic info when verbose
is set. Definition at line 601 of file system.C.
References _is_initialized, _sys_name, _vectors, get_vector(), libMesh::libmesh_assert(), n_vectors(), name(), libMesh::out, and solution.
Number libMesh::System::current_solution | ( | const dof_id_type | global_dof_number | ) | const |
Definition at line 157 of file system.C.
References _dof_map, and current_local_solution.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::HPCoarsenTest::add_projection(), compute_stresses(), LinearElasticityWithContact::compute_stresses(), LinearElasticity::compute_stresses(), LargeDeformationElasticity::compute_stresses(), libMesh::ExactErrorEstimator::estimate_error(), main(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::HPCoarsenTest::select_refinement(), SolidSystem::side_time_derivative(), libMesh::EnsightIO::write_scalar_ascii(), and libMesh::EnsightIO::write_vector_ascii().
|
inline |
Deactivates the system.
Only active systems are solved.
Definition at line 2325 of file system.h.
References _active.
|
inlinevirtual |
Avoids use of any cached data that might affect any solve result.
Should be overridden in derived systems.
Reimplemented in libMesh::ImplicitSystem.
Definition at line 2513 of file system.h.
References assemble_before_solve.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error().
|
staticinherited |
Definition at line 100 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
|
private |
Finds the discrete norm for the entries in the vector corresponding to Dofs associated with var.
Definition at line 1653 of file system.C.
References libMesh::DISCRETE_L1, libMesh::DISCRETE_L2, libMesh::DISCRETE_L_INF, libMesh::Utility::enum_to_string(), local_dof_indices(), libMesh::NumericVector< T >::subset_l1_norm(), libMesh::NumericVector< T >::subset_l2_norm(), and libMesh::NumericVector< T >::subset_linfty_norm().
Referenced by calculate_norm().
|
staticinherited |
Methods to enable/disable the reference counter output from print_info()
Definition at line 94 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
|
inlinevirtual |
Solves for parameter sensitivities using the forward method.
This method is only implemented in some derived classes.
Reimplemented in libMesh::ImplicitSystem.
Definition at line 2567 of file system.h.
Referenced by qoi_parameter_sensitivity().
NumericVector< Number > & libMesh::System::get_adjoint_rhs | ( | unsigned int | i = 0 | ) |
Definition at line 1255 of file system.C.
References get_vector().
Referenced by libMesh::ImplicitSystem::adjoint_solve(), libMesh::FEMSystem::assemble_qoi_derivative(), libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), libMesh::ImplicitSystem::qoi_parameter_hessian(), libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), and libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve().
const NumericVector< Number > & libMesh::System::get_adjoint_rhs | ( | unsigned int | i = 0 | ) | const |
Definition at line 1265 of file system.C.
References get_vector().
NumericVector< Number > & libMesh::System::get_adjoint_solution | ( | unsigned int | i = 0 | ) |
Definition at line 1193 of file system.C.
References get_vector().
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::AdaptiveTimeSolver::adjoint_advance_timestep(), libMesh::UnsteadySolver::adjoint_advance_timestep(), libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::ImplicitSystem::adjoint_solve(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::AdjointResidualErrorEstimator::estimate_error(), HeatSystem::init_context(), libMesh::Euler2Solver::integrate_adjoint_refinement_error_estimate(), libMesh::EulerSolver::integrate_adjoint_refinement_error_estimate(), main(), libMesh::ImplicitSystem::qoi_parameter_hessian(), libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), libMesh::FileSolutionHistory::retrieve(), and libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve().
const NumericVector< Number > & libMesh::System::get_adjoint_solution | ( | unsigned int | i = 0 | ) | const |
Definition at line 1203 of file system.C.
References get_vector().
void libMesh::System::get_all_variable_numbers | ( | std::vector< unsigned int > & | all_variable_numbers | ) | const |
Fills all_variable_numbers
with all the variable numbers for the variables that have been added to this system.
Definition at line 1565 of file system.C.
References _variable_numbers, and n_vars().
Referenced by MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), and SystemsTest::testProjectCubeWithMeshFunction().
System::Constraint & libMesh::System::get_constraint_object | ( | ) |
Return the user object for imposing constraints.
Definition at line 2174 of file system.C.
References _constrain_system_object.
|
inline |
_dof_map
. Definition at line 2293 of file system.h.
References _dof_map.
Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::DifferentiableSystem::add_dot_var_dirichlet_bcs(), libMesh::HPCoarsenTest::add_projection(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::AdaptiveTimeSolver::adjoint_advance_timestep(), libMesh::UnsteadySolver::adjoint_advance_timestep(), libMesh::ImplicitSystem::adjoint_solve(), libMesh::NewmarkSolver::advance_timestep(), libMesh::AdaptiveTimeSolver::advance_timestep(), libMesh::UnsteadySolver::advance_timestep(), libMesh::EquationSystems::allgather(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::RBConstruction::allocate_data_structures(), alternative_fe_assembly(), assemble(), LinearElasticity::assemble(), assemble_1D(), AssembleOptimization::assemble_A_and_F(), assemble_and_solve(), assemble_biharmonic(), assemble_divgrad(), assemble_elasticity(), assemble_ellipticdg(), assemble_func(), assemble_helmholtz(), assemble_laplace(), assemble_mass(), assemble_matrices(), assemble_matrix_and_rhs(), assemble_poisson(), assemble_SchroedingerEquation(), assemble_shell(), assemble_stokes(), assemble_wave(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_sf(), calculate_norm(), compute_jacobian(), compute_residual(), compute_stresses(), LinearElasticityWithContact::compute_stresses(), LinearElasticity::compute_stresses(), LargeDeformationElasticity::compute_stresses(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), MyConstraint::constrain(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::Nemesis_IO::copy_elemental_solution(), libMesh::Nemesis_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), DMCreateDomainDecomposition_libMesh(), DMCreateFieldDecomposition_libMesh(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), fe_assembly(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), get_info(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::SecondOrderUnsteadySolver::init_data(), libMesh::UnsteadySolver::init_data(), HeatSystem::init_data(), SimpleRBConstruction::init_data(), LaplaceSystem::init_dirichlet_bcs(), libMesh::FEMContext::init_internal_data(), libMesh::EigenSystem::init_matrices(), init_matrices(), libMesh::CondensedEigenSystem::initialize_condensed_dofs(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), LaplaceYoung::jacobian(), LargeDeformationElasticity::jacobian(), late_matrix_init(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), local_dof_indices(), AssembleOptimization::lower_and_upper_bounds(), main(), libMesh::DofMap::max_constraint_error(), LinearElasticityWithContact::move_mesh(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), libMesh::UnsteadySolver::old_nonlinear_solution(), libMesh::SecondOrderUnsteadySolver::old_solution_accel(), libMesh::SecondOrderUnsteadySolver::old_solution_rate(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectSides::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectInteriors::operator()(), libMesh::RBSCMConstruction::perform_SCM_greedy(), periodic_bc_test_poisson(), libMesh::petsc_auto_fieldsplit(), libMesh::ErrorVector::plot_error(), point_gradient(), point_hessian(), point_value(), libMesh::FEMContext::pre_fe_reinit(), libMesh::InterMeshProjection::project_system_vectors(), re_update(), read_parallel_data(), read_SCALAR_dofs(), libMesh::SecondOrderUnsteadySolver::reinit(), libMesh::UnsteadySolver::reinit(), reinit(), reinit_constraints(), libMesh::EquationSystems::reinit_solutions(), LaplaceYoung::residual(), LargeDeformationElasticity::residual(), LinearElasticityWithContact::residual_and_jacobian(), libMesh::UnsteadySolver::retrieve_timestep(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), libMesh::HPCoarsenTest::select_refinement(), libMesh::ImplicitSystem::sensitivity_solve(), libMesh::RBConstruction::set_context_solution_vec(), libMesh::PetscDMWrapper::set_point_range_in_section(), set_system_parameters(), FETestBase< order, family, elem_type, 1 >::setUp(), SolidSystem::side_time_derivative(), libMesh::NewtonSolver::solve(), libMesh::PetscDiffSolver::solve(), libMesh::EigenSystem::solve(), libMesh::RBConstruction::solve_for_matrix_and_rhs(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), MeshFunctionTest::test_subdomain_id_sets(), SystemsTest::testBlockRestrictedVarNDofs(), DofMapTest::testConstraintLoopDetection(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), EquationSystemsTest::testDisableDefaultGhosting(), SystemsTest::testDofCouplingWithVarGroups(), DofMapTest::testDofOwner(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshAssignTest::testMeshMoveAssign(), PeriodicBCTest::testPeriodicBC(), SystemsTest::testPostInitAddVectorTypeChange(), SystemsTest::testProjectCubeWithMeshFunction(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), InfFERadialTest::testRefinement(), EquationSystemsTest::testSelectivePRefine(), BoundaryInfoTest::testShellFaceConstraints(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::BoundaryVolumeSolutionTransfer::transfer_boundary_volume(), libMesh::UnsteadySolver::update(), libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve(), libMesh::ImplicitSystem::weighted_sensitivity_solve(), libMesh::Nemesis_IO_Helper::write_nodal_solution(), write_parallel_data(), libMesh::EnsightIO::write_scalar_ascii(), write_SCALAR_dofs(), libMesh::EnsightIO::write_vector_ascii(), and libMesh::RBConstruction::zero_constrained_dofs_on_vector().
|
inline |
_dof_map
. Definition at line 2301 of file system.h.
References _dof_map.
|
inline |
Definition at line 730 of file system.h.
References _equation_systems.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::RBSCMConstruction::add_scaled_symm_Aq(), libMesh::NewmarkSystem::clear(), libMesh::FrequencySystem::clear_all(), compute_jacobian(), compute_residual(), LinearElasticityWithContact::compute_stresses(), SolidSystem::element_time_derivative(), libMesh::RBConstruction::enrich_basis_from_rhs_terms(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::AdjointResidualErrorEstimator::estimate_error(), libMesh::ExactErrorEstimator::find_squared_element_error(), libMesh::ImplicitSystem::get_linear_solve_parameters(), SolidSystem::init_data(), HeatSystem::init_data(), libMesh::FrequencySystem::init_data(), LaplaceYoung::jacobian(), libMesh::RBSCMConstruction::load_matrix_B(), LinearElasticityWithContact::move_mesh(), libMesh::FrequencySystem::n_frequencies(), libMesh::RBSCMConstruction::perform_SCM_greedy(), point_gradient(), point_value(), libMesh::InterMeshProjection::project_system_vectors(), LaplaceYoung::residual(), LinearElasticityWithContact::residual_and_jacobian(), libMesh::FileHistoryData::retrieve_adjoint_solution(), libMesh::FileHistoryData::retrieve_primal_solution(), libMesh::FileHistoryData::rewrite_stored_solution(), SolidSystem::save_initial_mesh(), libMesh::FrequencySystem::set_current_frequency(), libMesh::FrequencySystem::set_frequencies(), libMesh::FrequencySystem::set_frequencies_by_range(), libMesh::FrequencySystem::set_frequencies_by_steps(), libMesh::NewmarkSystem::set_newmark_parameters(), libMesh::NonlinearImplicitSystem::set_solver_parameters(), SolidSystem::side_time_derivative(), libMesh::EigenSystem::solve(), libMesh::CondensedEigenSystem::solve(), libMesh::FrequencySystem::solve(), libMesh::LinearImplicitSystem::solve(), libMesh::RBConstruction::solve_for_matrix_and_rhs(), libMesh::FileHistoryData::store_adjoint_solution(), libMesh::FileHistoryData::store_initial_solution(), libMesh::FileHistoryData::store_primal_solution(), MeshFunctionTest::test_p_level(), MeshFunctionTest::test_subdomain_id_sets(), MeshAssignTest::testMeshMoveAssign(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::DirectSolutionTransfer::transfer(), libMesh::DTKSolutionTransfer::transfer(), libMesh::TransientRBConstruction::truth_solve(), libMesh::RBConstruction::truth_solve(), and libMesh::WrappedFunction< Output >::WrappedFunction().
|
inline |
Definition at line 735 of file system.h.
References _equation_systems.
|
staticinherited |
Gets a string containing the reference information.
Definition at line 47 of file reference_counter.C.
References libMesh::ReferenceCounter::_counts, and libMesh::Quality::name().
Referenced by libMesh::ReferenceCounter::print_info().
std::string libMesh::System::get_info | ( | ) | const |
Definition at line 1988 of file system.C.
References libMesh::ParallelObject::comm(), libMesh::FEType::family, get_dof_map(), libMesh::DofMap::get_info(), libMesh::FEType::inf_map, libMesh::make_range(), TIMPI::Communicator::max(), n_constrained_dofs(), n_dofs(), n_local_constrained_dofs(), n_local_dofs(), n_matrices(), n_variable_groups(), libMesh::VariableGroup::n_variables(), n_vectors(), libMesh::VariableGroup::name(), name(), number(), libMesh::FEType::order, libMesh::FEType::radial_family, libMesh::FEType::radial_order, system_type(), libMesh::Variable::type(), libMesh::DofMap::variable_group(), and variable_group().
const SparseMatrix< Number > & libMesh::System::get_matrix | ( | std::string_view | mat_name | ) | const |
mat_name
. Definition at line 1073 of file system.C.
References _matrices.
Referenced by add_M_C_K_helmholtz(), assemble(), assemble_helmholtz(), libMesh::NewmarkSystem::compute_matrix(), libMesh::CondensedEigenSystem::get_condensed_matrix_A(), libMesh::CondensedEigenSystem::get_condensed_matrix_B(), libMesh::ImplicitSystem::get_system_matrix(), main(), libMesh::EigenTimeSolver::solve(), and libMesh::NewmarkSystem::update_rhs().
SparseMatrix< Number > & libMesh::System::get_matrix | ( | std::string_view | mat_name | ) |
mat_name
. Definition at line 1080 of file system.C.
References _matrices.
|
inline |
_mesh
. Definition at line 2277 of file system.h.
References _mesh.
Referenced by libMesh::ExactSolution::_compute_error(), LinearElasticityWithContact::add_contact_edge_elements(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::HPCoarsenTest::add_projection(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), AssembleOptimization::assemble_A_and_F(), libMesh::FEMSystem::assemble_qoi(), libMesh::FEMSystem::assemble_qoi_derivative(), libMesh::FEMSystem::assembly(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyA2::boundary_assembly(), AssemblyF2::boundary_assembly(), calculate_norm(), compute_jacobian(), compute_residual(), LinearElasticityWithContact::compute_stresses(), libMesh::RBEIMEvaluation::distribute_bfs(), DMCreateDomainDecomposition_libMesh(), DMCreateFieldDecomposition_libMesh(), DMlibMeshSetSystem_libMesh(), SolidSystem::element_time_derivative(), HeatSystem::element_time_derivative(), libMesh::RBConstruction::enrich_basis_from_rhs_terms(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointResidualErrorEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::GenericProjector(), LinearElasticityWithContact::get_least_and_max_gap_function(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::RBEIMConstruction::init_context(), SolidSystem::init_data(), init_data(), init_matrices(), LinearElasticityWithContact::initialize_contact_load_paths(), libMesh::RBEIMConstruction::initialize_qp_data(), local_dof_indices(), libMesh::DofMap::max_constraint_error(), libMesh::FEMSystem::mesh_position_get(), libMesh::FEMSystem::mesh_position_set(), LinearElasticityWithContact::move_mesh(), libMesh::RBEIMEvaluation::node_distribute_bfs(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::petsc_auto_fieldsplit(), point_gradient(), point_hessian(), point_value(), libMesh::FEMSystem::postprocess(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), libMesh::RBEIMEvaluation::project_qp_data_map_onto_system(), read_header(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), read_legacy_data(), read_parallel_data(), read_serialized_vector(), read_serialized_vectors(), reinit(), LinearElasticityWithContact::residual_and_jacobian(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), SolidSystem::save_initial_mesh(), libMesh::HPSingularity::select_refinement(), libMesh::HPCoarsenTest::select_refinement(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::RBEIMEvaluation::side_distribute_bfs(), SolidSystem::side_time_derivative(), libMesh::PetscDiffSolver::solve(), MeshAssignTest::testMeshMoveAssign(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::BoundaryVolumeSolutionTransfer::transfer(), libMesh::BoundaryVolumeSolutionTransfer::transfer_boundary_volume(), libMesh::BoundaryVolumeSolutionTransfer::transfer_volume_boundary(), libMesh::TransientRBConstruction::truth_solve(), libMesh::RBConstruction::truth_solve(), write_header(), libMesh::RBEvaluation::write_out_vectors(), write_parallel_data(), write_serialized_vector(), write_serialized_vectors(), and zero_variable().
|
inline |
_mesh
. Definition at line 2285 of file system.h.
References _mesh.
|
inline |
Setter and getter functions for project_with_constraints boolean.
Definition at line 1775 of file system.h.
References project_with_constraints.
Referenced by libMesh::AdjointRefinementEstimator::estimate_error().
Definition at line 2361 of file system.C.
References libMesh::libmesh_assert(), and qoi_error_estimates.
Referenced by libMesh::TwostepTimeSolver::integrate_adjoint_refinement_error_estimate(), and main().
Definition at line 2334 of file system.C.
References libMesh::libmesh_assert(), and qoi.
Referenced by libMesh::Euler2Solver::integrate_qoi_timestep(), libMesh::TwostepTimeSolver::integrate_qoi_timestep(), libMesh::EulerSolver::integrate_qoi_timestep(), main(), libMesh::ImplicitSystem::qoi_parameter_hessian(), and libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product().
std::vector< Number > libMesh::System::get_qoi_values | ( | ) | const |
Returns a copy of qoi, not a reference.
Definition at line 2341 of file system.C.
References qoi.
Referenced by libMesh::ImplicitSystem::adjoint_qoi_parameter_sensitivity(), libMesh::FEMSystem::assemble_qoi(), libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), libMesh::ImplicitSystem::qoi_parameter_hessian(), and libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product().
NumericVector< Number > & libMesh::System::get_sensitivity_rhs | ( | unsigned int | i = 0 | ) |
assemble_residual_derivatives()
is called.When assembled, this vector should hold -(partial R / partial p_i)
Definition at line 1285 of file system.C.
References get_vector().
Referenced by libMesh::ImplicitSystem::adjoint_qoi_parameter_sensitivity(), and libMesh::ImplicitSystem::sensitivity_solve().
const NumericVector< Number > & libMesh::System::get_sensitivity_rhs | ( | unsigned int | i = 0 | ) | const |
Definition at line 1295 of file system.C.
References get_vector().
NumericVector< Number > & libMesh::System::get_sensitivity_solution | ( | unsigned int | i = 0 | ) |
Definition at line 1140 of file system.C.
References get_vector().
Referenced by libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), libMesh::ImplicitSystem::qoi_parameter_hessian(), and libMesh::ImplicitSystem::sensitivity_solve().
const NumericVector< Number > & libMesh::System::get_sensitivity_solution | ( | unsigned int | i = 0 | ) | const |
Definition at line 1150 of file system.C.
References get_vector().
const NumericVector< Number > & libMesh::System::get_vector | ( | std::string_view | vec_name | ) | const |
vec_name
. Access is only granted when the vector is already properly initialized. Definition at line 918 of file system.C.
References _vectors.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), add_M_C_K_helmholtz(), libMesh::AdaptiveTimeSolver::adjoint_advance_timestep(), libMesh::UnsteadySolver::adjoint_advance_timestep(), libMesh::NewmarkSolver::advance_timestep(), libMesh::AdaptiveTimeSolver::advance_timestep(), libMesh::UnsteadySolver::advance_timestep(), apply_initial(), assemble(), compare(), libMesh::NewmarkSolver::compute_initial_accel(), libMesh::UnsteadySolver::du(), libMesh::AdjointRefinementEstimator::estimate_error(), get_adjoint_rhs(), get_adjoint_solution(), get_sensitivity_rhs(), get_sensitivity_solution(), get_weighted_sensitivity_adjoint_solution(), get_weighted_sensitivity_solution(), libMesh::NewmarkSystem::initial_conditions(), AssembleOptimization::lower_and_upper_bounds(), main(), libMesh::NewmarkSolver::project_initial_accel(), libMesh::SecondOrderUnsteadySolver::project_initial_rate(), libMesh::InterMeshProjection::project_system_vectors(), libMesh::SecondOrderUnsteadySolver::reinit(), libMesh::UnsteadySolver::reinit(), libMesh::FileSolutionHistory::retrieve(), libMesh::UnsteadySolver::retrieve_timestep(), libMesh::MemoryHistoryData::retrieve_vectors(), libMesh::TwostepTimeSolver::solve(), libMesh::FrequencySystem::solve(), libMesh::UnsteadySolver::update(), libMesh::NewmarkSystem::update_rhs(), and libMesh::NewmarkSystem::update_u_v_a().
NumericVector< Number > & libMesh::System::get_vector | ( | std::string_view | vec_name | ) |
vec_name
. Access is only granted when the vector is already properly initialized. Definition at line 925 of file system.C.
References _vectors.
const NumericVector< Number > & libMesh::System::get_vector | ( | const unsigned int | vec_num | ) | const |
vec_num
(where the vectors are counted starting with 0). Definition at line 932 of file system.C.
References _vectors, and vectors_begin().
NumericVector< Number > & libMesh::System::get_vector | ( | const unsigned int | vec_num | ) |
vec_num
(where the vectors are counted starting with 0). Definition at line 945 of file system.C.
References _vectors, and vectors_begin().
NumericVector< Number > & libMesh::System::get_weighted_sensitivity_adjoint_solution | ( | unsigned int | i = 0 | ) |
Definition at line 1225 of file system.C.
References get_vector().
Referenced by libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), and libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve().
const NumericVector< Number > & libMesh::System::get_weighted_sensitivity_adjoint_solution | ( | unsigned int | i = 0 | ) | const |
Definition at line 1235 of file system.C.
References get_vector().
NumericVector< Number > & libMesh::System::get_weighted_sensitivity_solution | ( | ) |
Definition at line 1167 of file system.C.
References get_vector().
Referenced by libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), and libMesh::ImplicitSystem::weighted_sensitivity_solve().
const NumericVector< Number > & libMesh::System::get_weighted_sensitivity_solution | ( | ) | const |
Definition at line 1174 of file system.C.
References get_vector().
bool libMesh::System::has_constraint_object | ( | ) | const |
Definition at line 2169 of file system.C.
References _constrain_system_object.
bool libMesh::System::has_variable | ( | std::string_view | var | ) | const |
true
if a variable named var
exists in this System Definition at line 1550 of file system.C.
References _variable_numbers.
Referenced by libMesh::GMVIO::copy_nodal_solution(), and main().
|
inline |
true
if this System
has a matrix associated with the given name, false
otherwise. Definition at line 1860 of file system.h.
References _matrices.
Referenced by libMesh::EigenTimeSolver::init().
|
inline |
true
if this System
has a vector associated with the given name, false
otherwise. Definition at line 2469 of file system.h.
References _vectors.
|
inline |
true
, then EquationSystems::write
will ignore this system. Definition at line 1790 of file system.h.
References _hide_output.
|
inline |
true
when VariableGroup
structures should be automatically identified, false
otherwise. Definition at line 2445 of file system.h.
References _identify_variable_groups.
Referenced by add_variable(), and add_variables().
|
inline |
Toggle automatic VariableGroup
identification.
Definition at line 2453 of file system.h.
References _identify_variable_groups.
|
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(), libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::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(), libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().
void libMesh::System::init | ( | ) |
Initializes degrees of freedom on the current mesh.
Sets the
Definition at line 189 of file system.C.
References _basic_system_only, init_data(), is_initialized(), libMesh::libmesh_assert(), n_vars(), and user_initialization().
|
protectedvirtual |
Initializes the data for the system.
Reimplemented in libMesh::DifferentiableSystem, libMesh::ContinuationSystem, libMesh::FEMSystem, libMesh::OptimizationSystem, libMesh::FrequencySystem, libMesh::RBConstructionBase< LinearImplicitSystem >, libMesh::RBConstructionBase< System >, libMesh::RBConstructionBase< CondensedEigenSystem >, SecondOrderScalarSystemSecondOrderTimeSolverBase, SimpleRBConstruction, FirstOrderScalarSystemBase, SimpleRBConstruction, SimpleRBConstruction, SimpleRBConstruction, SimpleRBConstruction, libMesh::LinearImplicitSystem, HeatSystem, SimpleRBConstruction, ElasticityRBConstruction, CoupledSystem, SimpleEIMConstruction, L2System, SimpleEIMConstruction, ElasticitySystem, ElasticitySystem, HeatSystem, LaplaceSystem, CurlCurlSystem, LaplaceSystem, PoissonSystem, LaplaceSystem, LaplaceSystem, CurlCurlSystem, SolidSystem, NavierSystem, and HeatSystem.
Definition at line 216 of file system.C.
References _basic_system_only, _dof_map, _is_initialized, _matrices, _vectors, add_matrices(), current_local_solution, get_mesh(), libMesh::GHOSTED, init_matrices(), libMesh::libmesh_assert(), libMesh::libmesh_ignore(), libMesh::make_range(), mesh, n_dofs(), n_local_dofs(), n_variable_groups(), libMesh::PARALLEL, reinit_constraints(), libMesh::SERIAL, solution, and variable_group().
Referenced by init(), libMesh::LinearImplicitSystem::init_data(), libMesh::OptimizationSystem::init_data(), libMesh::DifferentiableSystem::init_data(), and reinit_mesh().
|
protectedvirtual |
Initializes the matrices associated with this system.
Reimplemented in libMesh::EigenSystem.
Definition at line 326 of file system.C.
References _matrices, _matrices_initialized, _matrix_types, libMesh::DofMap::attach_matrix(), libMesh::DofMap::compute_sparsity(), get_dof_map(), get_mesh(), libMesh::SparseMatrix< T >::initialized(), libMesh::DofMap::is_attached(), and libMesh::libmesh_assert().
Referenced by init_data(), and libMesh::EigenSystem::init_matrices().
void libMesh::System::init_qois | ( | unsigned int | n_qois | ) |
Accessors for qoi and qoi_error_estimates vectors.
Definition at line 2319 of file system.C.
References n_qois(), qoi, and qoi_error_estimates.
Referenced by CoupledSystemQoI::init_qoi_count(), LaplaceQoI::init_qoi_count(), and main().
|
inline |
Accessor for the adjoint_already_solved boolean.
Definition at line 406 of file system.h.
References adjoint_already_solved.
Referenced by libMesh::ImplicitSystem::adjoint_qoi_parameter_sensitivity(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::AdjointResidualErrorEstimator::estimate_error(), libMesh::ImplicitSystem::qoi_parameter_hessian(), and libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product().
|
inline |
true
iff this system has been initialized. Definition at line 2333 of file system.h.
References _is_initialized.
Referenced by add_variable(), add_variables(), and init().
|
private |
Helper function to keep DofMap forward declarable in system.h.
Definition at line 1019 of file system.C.
References _matrices_initialized, libMesh::DofMap::attach_matrix(), get_dof_map(), and libMesh::SparseMatrix< T >::init().
Referenced by add_matrix().
void libMesh::System::local_dof_indices | ( | const unsigned int | var, |
std::set< dof_id_type > & | var_indices | ||
) | const |
Fills the std::set with the degrees of freedom on the local processor corresponding the the variable number passed in.
Definition at line 1575 of file system.C.
References libMesh::DofMap::dof_indices(), libMesh::DofMap::end_dof(), libMesh::DofMap::first_dof(), get_dof_map(), get_mesh(), and libMesh::libmesh_assert().
Referenced by discrete_var_norm(), SystemsTest::testBlockRestrictedVarNDofs(), and libMesh::DirectSolutionTransfer::transfer().
|
inline |
Definition at line 2461 of file system.h.
References n_constrained_dofs(), and n_dofs().
|
inline |
n_vars()
in the case of all scalar-valued variables. Definition at line 2365 of file system.h.
References _variables, libMesh::Variable::first_scalar_number(), and libMesh::Variable::n_components().
Referenced by add_variables().
dof_id_type libMesh::System::n_constrained_dofs | ( | ) | const |
Definition at line 120 of file system.C.
References _dof_map.
Referenced by get_info(), n_active_dofs(), libMesh::EigenSystem::solve(), and BoundaryInfoTest::testShellFaceConstraints().
dof_id_type libMesh::System::n_dofs | ( | ) | const |
Definition at line 113 of file system.C.
References _dof_map.
Referenced by libMesh::TransientRBConstruction::add_IC_to_RB_space(), add_vector(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::RBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::assemble_affine_expansion(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::AdjointRefinementEstimator::estimate_error(), get_info(), libMesh::SecondOrderUnsteadySolver::init_data(), libMesh::UnsteadySolver::init_data(), init_data(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), main(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), n_active_dofs(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::FEMSystem::numerical_jacobian(), libMesh::RBSCMConstruction::perform_SCM_greedy(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), read_legacy_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::SecondOrderUnsteadySolver::reinit(), libMesh::UnsteadySolver::reinit(), restrict_vectors(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), libMesh::TransientRBConstruction::set_error_temporal_data(), SystemsTest::test100KVariables(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), SystemsTest::testPostInitAddVector(), SystemsTest::testPostInitAddVectorTypeChange(), SystemsTest::testProjectCubeWithMeshFunction(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), and libMesh::RBConstruction::update_residual_terms().
dof_id_type libMesh::System::n_local_constrained_dofs | ( | ) | const |
Definition at line 135 of file system.C.
References _dof_map.
Referenced by get_info().
dof_id_type libMesh::System::n_local_dofs | ( | ) | const |
Definition at line 150 of file system.C.
References _dof_map, and libMesh::ParallelObject::processor_id().
Referenced by libMesh::TransientRBConstruction::add_IC_to_RB_space(), add_vector(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::RBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::assemble_affine_expansion(), libMesh::PetscDMWrapper::build_section(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::AdjointRefinementEstimator::estimate_error(), get_info(), libMesh::SecondOrderUnsteadySolver::init_data(), libMesh::UnsteadySolver::init_data(), init_data(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), main(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::SecondOrderUnsteadySolver::reinit(), libMesh::UnsteadySolver::reinit(), restrict_vectors(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), libMesh::TransientRBConstruction::set_error_temporal_data(), MeshFunctionTest::test_p_level(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), and libMesh::RBConstruction::update_residual_terms().
|
inline |
_matrices
map Definition at line 2594 of file system.h.
References _matrices.
Referenced by libMesh::ImplicitSystem::add_matrices(), and get_info().
|
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 TIMPI::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::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), add_vector(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), 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::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::EnsightIO::EnsightIO(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::MeshBase::get_info(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), 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::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshBase::n_active_elem_on_proc(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::Partitioner::partition(), libMesh::MeshBase::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), point_gradient(), point_hessian(), point_value(), libMesh::DofMap::prepare_send_list(), libMesh::DofMap::print_dof_constraints(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_header(), libMesh::CheckpointIO::read_nodes(), read_parallel_data(), read_SCALAR_dofs(), read_serialized_blocked_dof_objects(), read_serialized_vector(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::Partitioner::repartition(), OverlappingFunctorTest::run_partitioner_test(), libMesh::DofMap::scatter_constraints(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), WriteVecAndScalar::setupTests(), libMesh::RBEIMEvaluation::side_gather_bfs(), DistributedMeshTest::testRemoteElemError(), CheckpointIOTest::testSplitter(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), write_parallel_data(), write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().
|
inline |
Number of currently active quantities of interest.
Definition at line 2516 of file system.h.
References qoi, and qoi_error_estimates.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::AdaptiveTimeSolver::adjoint_advance_timestep(), libMesh::UnsteadySolver::adjoint_advance_timestep(), libMesh::ImplicitSystem::adjoint_qoi_parameter_sensitivity(), libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::ImplicitSystem::adjoint_solve(), libMesh::SensitivityData::allocate_data(), libMesh::SensitivityData::allocate_hessian_data(), libMesh::ExplicitSystem::assemble_qoi(), libMesh::FEMSystem::assemble_qoi(), libMesh::ExplicitSystem::assemble_qoi_derivative(), libMesh::FEMSystem::assemble_qoi_derivative(), libMesh::DiffContext::DiffContext(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::AdjointResidualErrorEstimator::estimate_error(), libMesh::FileSolutionHistory::FileSolutionHistory(), libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), libMesh::UnsteadySolver::init_adjoints(), libMesh::TimeSolver::init_adjoints(), init_qois(), libMesh::Euler2Solver::integrate_adjoint_refinement_error_estimate(), libMesh::TwostepTimeSolver::integrate_adjoint_refinement_error_estimate(), libMesh::EulerSolver::integrate_adjoint_refinement_error_estimate(), libMesh::Euler2Solver::integrate_qoi_timestep(), libMesh::TwostepTimeSolver::integrate_qoi_timestep(), libMesh::EulerSolver::integrate_qoi_timestep(), main(), libMesh::FEMContext::pre_fe_reinit(), libMesh::ImplicitSystem::qoi_parameter_hessian(), libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), libMesh::FileSolutionHistory::retrieve(), libMesh::QoISet::size(), libMesh::UnsteadySolver::UnsteadySolver(), and libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve().
|
inline |
VariableGroup
variable groups in the system Definition at line 2357 of file system.h.
References _variable_groups.
Referenced by add_variable(), add_variables(), libMesh::FEMSystem::assembly(), get_info(), and init_data().
|
inline |
Definition at line 2349 of file system.h.
References _variables.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::DiffContext::add_localized_vector(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), add_variable(), add_variables(), libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::FEMContext::attach_quadrature_rules(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_section(), calculate_norm(), compute_stresses(), LinearElasticityWithContact::compute_stresses(), LinearElasticity::compute_stresses(), LargeDeformationElasticity::compute_stresses(), libMesh::DGFEMContext::DGFEMContext(), libMesh::DiffContext::DiffContext(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointResidualErrorEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::ErrorEstimator::estimate_errors(), libMesh::ExactSolution::ExactSolution(), libMesh::FEMContext::find_hardest_fe_type(), libMesh::EquationSystems::find_variable_numbers(), get_all_variable_numbers(), init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::FEMSystem::init_context(), libMesh::RBEIMConstruction::init_context(), libMesh::FEMContext::init_internal_data(), libMesh::DifferentiablePhysics::init_physics(), AssemblyA0::interior_assembly(), AssemblyA1::interior_assembly(), AssemblyA2::interior_assembly(), InnerProductAssembly::interior_assembly(), main(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), output_norms(), libMesh::petsc_auto_fieldsplit(), libMesh::FEMContext::pre_fe_reinit(), libMesh::RBEIMEvaluation::project_qp_data_map_onto_system(), libMesh::InterMeshProjection::project_system_vectors(), re_update(), read_legacy_data(), read_parallel_data(), read_serialized_blocked_dof_objects(), read_serialized_vector(), read_serialized_vectors(), reinit_mesh(), libMesh::HPCoarsenTest::select_refinement(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::SystemSubsetBySubdomain::set_var_nums(), OverlappingTestBase::setup_coupling_matrix(), SystemsTest::testDofCouplingWithVarGroups(), SlitMeshRefinedSystemTest::testRestart(), SlitMeshRefinedSystemTest::testSystem(), write_header(), write_parallel_data(), write_serialized_blocked_dof_objects(), write_serialized_vector(), write_serialized_vectors(), and zero_variable().
|
inline |
_vectors
map Definition at line 2477 of file system.h.
References _vectors.
Referenced by libMesh::ExplicitSystem::add_system_rhs(), compare(), get_info(), main(), libMesh::InterMeshProjection::project_system_vectors(), and write_header().
|
inline |
Definition at line 2261 of file system.h.
References _sys_name.
Referenced by compare(), compute_jacobian(), compute_residual(), DMlibMeshSetUpName_Private(), libMesh::RBConstruction::enrich_basis_from_rhs_terms(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::ExactSolution::ExactSolution(), libMesh::ExactErrorEstimator::find_squared_element_error(), get_info(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::NewtonSolver::init(), libMesh::TimeSolver::init_data(), main(), output_norms(), libMesh::petsc_auto_fieldsplit(), libMesh::RBSCMConstruction::print_info(), libMesh::RBEIMConstruction::print_info(), libMesh::RBConstruction::print_info(), libMesh::TimeSolver::reinit(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::FrequencySystem::solve(), libMesh::LinearImplicitSystem::solve(), libMesh::NonlinearImplicitSystem::solve(), libMesh::RBConstruction::truth_solve(), user_assembly(), user_constrain(), user_initialization(), user_QOI(), user_QOI_derivative(), variable_number(), write_header(), write_parallel_data(), and write_serialized_data().
|
inline |
Definition at line 2269 of file system.h.
References _sys_number.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::PetscDMWrapper::add_dofs_helper(), assemble_matrix_and_rhs(), assemble_shell(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::Nemesis_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::Nemesis_IO::copy_nodal_solution(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::find_squared_element_error(), libMesh::EquationSystems::find_variable_numbers(), get_info(), main(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectEdges::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectSides::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectInteriors::operator()(), read_legacy_data(), read_parallel_data(), read_serialized_blocked_dof_objects(), LinearElasticityWithContact::residual_and_jacobian(), SolidSystem::save_initial_mesh(), libMesh::HPCoarsenTest::select_refinement(), libMesh::PetscDMWrapper::set_point_range_in_section(), MeshInputTest::testCopyElementVectorImpl(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::BoundaryVolumeSolutionTransfer::transfer_boundary_volume(), libMesh::BoundaryVolumeSolutionTransfer::transfer_volume_boundary(), libMesh::DTKAdapter::update_variable_values(), write_parallel_data(), write_serialized_blocked_dof_objects(), and zero_variable().
Gradient libMesh::System::point_gradient | ( | unsigned int | var, |
const Point & | p, | ||
const bool | insist_on_success = true , |
||
const NumericVector< Number > * | sol = nullptr |
||
) | const |
var
at the physical point p
in the mesh, similarly to point_value. Definition at line 2498 of file system.C.
References libMesh::Variable::active_subdomains(), TIMPI::Communicator::broadcast(), libMesh::ParallelObject::comm(), libMesh::PointLocatorBase::enable_out_of_mesh_mode(), get_dof_map(), get_mesh(), libMesh::libmesh_assert(), mesh, TIMPI::Communicator::min(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), and variable().
Referenced by line_print(), and point_gradient().
Gradient libMesh::System::point_gradient | ( | unsigned int | var, |
const Point & | p, | ||
const Elem & | e, | ||
const NumericVector< Number > * | sol = nullptr |
||
) | const |
var
at the physical point p
in local Elem e
in the mesh, similarly to point_value. Definition at line 2560 of file system.C.
References libMesh::FEInterface::compute_data(), libMesh::Elem::contains_point(), current_local_solution, dim, libMesh::Elem::dim(), libMesh::DofMap::dof_indices(), libMesh::FEComputeData::dshape, libMesh::FEComputeData::enable_derivative(), get_dof_map(), get_equation_systems(), libMesh::FEMap::inverse_map(), libMesh::DofMap::is_evaluable(), libMesh::libmesh_assert(), libMesh::FEComputeData::local_transform, and libMesh::DofMap::variable_type().
Gradient libMesh::System::point_gradient | ( | unsigned int | var, |
const Point & | p, | ||
const Elem * | e | ||
) | const |
Calls the version of point_gradient() which takes a reference.
This function exists only to prevent people from calling the version of point_gradient() that has a boolean third argument, which would result in unnecessary PointLocator calls.
Definition at line 2625 of file system.C.
References libMesh::libmesh_assert(), and point_gradient().
Gradient libMesh::System::point_gradient | ( | unsigned int | var, |
const Point & | p, | ||
const NumericVector< Number > * | sol | ||
) | const |
Calls the parallel version of point_gradient().
This function exists only to prevent people from accidentally calling the version of point_gradient() that has a boolean third argument, which would result in incorrect output.
Definition at line 2633 of file system.C.
References point_gradient().
Tensor libMesh::System::point_hessian | ( | unsigned int | var, |
const Point & | p, | ||
const bool | insist_on_success = true , |
||
const NumericVector< Number > * | sol = nullptr |
||
) | const |
var
at the physical point p
in the mesh, similarly to point_value. Definition at line 2642 of file system.C.
References libMesh::Variable::active_subdomains(), TIMPI::Communicator::broadcast(), libMesh::ParallelObject::comm(), libMesh::PointLocatorBase::enable_out_of_mesh_mode(), get_dof_map(), get_mesh(), libMesh::libmesh_assert(), mesh, TIMPI::Communicator::min(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), and variable().
Referenced by point_hessian().
Tensor libMesh::System::point_hessian | ( | unsigned int | var, |
const Point & | p, | ||
const Elem & | e, | ||
const NumericVector< Number > * | sol = nullptr |
||
) | const |
var
at the physical point p
in local Elem e
in the mesh, similarly to point_value. Definition at line 2703 of file system.C.
References libMesh::TypeTensor< T >::add_scaled(), libMesh::FEGenericBase< OutputType >::build(), libMesh::Elem::contains_point(), current_local_solution, libMesh::Elem::dim(), libMesh::DofMap::dof_indices(), get_dof_map(), libMesh::Elem::infinite(), libMesh::FEMap::inverse_map(), libMesh::DofMap::is_evaluable(), libMesh::libmesh_assert(), and libMesh::DofMap::variable_type().
Calls the version of point_hessian() which takes a reference.
This function exists only to prevent people from calling the version of point_hessian() that has a boolean third argument, which would result in unnecessary PointLocator calls.
Definition at line 2763 of file system.C.
References libMesh::libmesh_assert(), and point_hessian().
Tensor libMesh::System::point_hessian | ( | unsigned int | var, |
const Point & | p, | ||
const NumericVector< Number > * | sol | ||
) | const |
Calls the parallel version of point_hessian().
This function exists only to prevent people from accidentally calling the version of point_hessian() that has a boolean third argument, which would result in incorrect output.
Definition at line 2771 of file system.C.
References point_hessian().
Number libMesh::System::point_value | ( | unsigned int | var, |
const Point & | p, | ||
const bool | insist_on_success = true , |
||
const NumericVector< Number > * | sol = nullptr |
||
) | const |
var
at the physical point p
in the mesh, without knowing a priori which element contains p
, using the degree of freedom coefficients in sol
(or in current_local_solution
if sol
is left null).MeshBase::sub_point_locator()
; users may or may not want to call MeshBase::clear_point_locator()
afterward. Also, point_locator() is expensive (N log N for initial construction, log N for evaluations). Avoid using this function in any context where you are already looping over elements.Because the element containing p
may lie on any processor, this function is parallel-only.
By default this method expects the point to reside inside the domain and will abort if no element can be found which contains p
. The optional parameter insist_on_success
can be set to false to allow the method to return 0 when the point is not located.
Definition at line 2369 of file system.C.
References libMesh::Variable::active_subdomains(), TIMPI::Communicator::broadcast(), libMesh::ParallelObject::comm(), libMesh::PointLocatorBase::enable_out_of_mesh_mode(), get_dof_map(), get_mesh(), libMesh::libmesh_assert(), mesh, TIMPI::Communicator::min(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), and variable().
Referenced by line_print(), main(), point_value(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), PeriodicBCTest::testPeriodicBC(), SystemsTest::testProjectCubeWithMeshFunction(), and EquationSystemsTest::testRepartitionThenReinit().
Number libMesh::System::point_value | ( | unsigned int | var, |
const Point & | p, | ||
const Elem & | e, | ||
const NumericVector< Number > * | sol = nullptr |
||
) | const |
var
at the physical point p
contained in local Elem e
, using the degree of freedom coefficients in sol
(or in current_local_solution
if sol
is left null).This version of point_value can be run in serial, but assumes e
is in the local mesh partition or is algebraically ghosted.
Definition at line 2430 of file system.C.
References libMesh::FEInterface::compute_data(), libMesh::Elem::contains_point(), current_local_solution, libMesh::Elem::dim(), libMesh::DofMap::dof_indices(), get_dof_map(), get_equation_systems(), libMesh::FEMap::inverse_map(), libMesh::DofMap::is_evaluable(), libMesh::libmesh_assert(), and libMesh::DofMap::variable_type().
Calls the version of point_value() which takes a reference.
This function exists only to prevent people from calling the version of point_value() that has a boolean third argument, which would result in unnecessary PointLocator calls.
Definition at line 2482 of file system.C.
References libMesh::libmesh_assert(), and point_value().
Number libMesh::System::point_value | ( | unsigned int | var, |
const Point & | p, | ||
const NumericVector< Number > * | sol | ||
) | const |
Calls the parallel version of point_value().
This function exists only to prevent people from accidentally calling the version of point_value() that has a boolean third argument, which would result in incorrect output.
Definition at line 2490 of file system.C.
References point_value().
|
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 TIMPI::Communicator::rank().
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), 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::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::ExodusII_IO_Helper::create(), libMesh::DistributedMesh::delete_elem(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMap::end_dof(), libMesh::DofMap::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::MeshFunction::find_element(), libMesh::MeshFunction::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMap::first_dof(), libMesh::DofMap::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::DofMap::get_info(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::DofMap::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(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), 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::DofMap::is_evaluable(), libMesh::SparsityPattern::Build::join(), libMesh::TransientRBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEvaluation::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(), libMesh::DofMap::local_variable_indices(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::MeshBase::n_active_local_elem(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::DofMap::n_local_dofs(), 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::SparsityPattern::Build::operator()(), libMesh::DistributedMesh::own_node(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), point_gradient(), point_hessian(), point_value(), 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::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), read_header(), read_legacy_data(), libMesh::DynaIO::read_mesh(), libMesh::ExodusII_IO_Helper::read_node_num_map(), read_parallel_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), read_serialized_vector(), read_serialized_vectors(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::RBEIMEvaluation::side_gather_bfs(), ExodusTest< elem_type >::test_read_gold(), ExodusTest< elem_type >::test_write(), MeshInputTest::testAbaqusRead(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaFileMappings(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusFileMappings(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshInputTest::testLowOrderEdgeBlocks(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), WriteVecAndScalar::testSolution(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), libMesh::MeshTools::total_weight(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::DTKAdapter::update_variable_values(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::CheckpointIO::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_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(), write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::UCDIO::write_nodal_data(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::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::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_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(), write_parallel_data(), libMesh::RBConstruction::write_riesz_representors_to_files(), write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), write_serialized_data(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), write_serialized_vector(), write_serialized_vectors(), libMesh::ExodusII_IO_Helper::write_sideset_data(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::ExodusII_IO::write_timestep(), libMesh::ExodusII_IO_Helper::write_timestep(), and libMesh::ExodusII_IO::write_timestep_discontinuous().
void libMesh::System::project_solution | ( | FunctionBase< Number > * | f, |
FunctionBase< Gradient > * | g = nullptr |
||
) | const |
Projects arbitrary functions onto the current solution.
This method projects an arbitrary function onto the solution via L2 projections and nodal interpolations on each element.
The function value f
and its gradient g
are user-provided cloneable functors. A gradient g
is only required/used for projecting onto finite element spaces with continuous derivatives. If non-default Parameters
are to be used, they can be provided in the parameters
argument.
Definition at line 1041 of file system_projection.C.
Referenced by init_sys(), initialize(), main(), SlitMeshRefinedSystemTest::setUp(), FETestBase< order, family, elem_type, 1 >::setUp(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), MeshFunctionTest::test_subdomain_id_sets(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), SystemsTest::testProjectCubeWithMeshFunction(), MeshInputTest::testProjectionRegression(), EquationSystemsTest::testRepartitionThenReinit(), and libMesh::MeshfreeSolutionTransfer::transfer().
void libMesh::System::project_solution | ( | FEMFunctionBase< Number > * | f, |
FEMFunctionBase< Gradient > * | g = nullptr |
||
) | const |
Projects arbitrary functions onto the current solution.
This method projects an arbitrary function onto the solution via L2 projections and nodal interpolations on each element.
The function value f
and its gradient g
are user-provided cloneable functors. A gradient g
is only required/used for projecting onto finite element spaces with continuous derivatives. If non-default Parameters
are to be used, they can be provided in the parameters
argument.
Definition at line 1054 of file system_projection.C.
void libMesh::System::project_solution | ( | ValueFunctionPointer | fptr, |
GradientFunctionPointer | gptr, | ||
const Parameters & | parameters | ||
) | const |
This method projects an arbitrary function onto the solution via L2 projections and nodal interpolations on each element.
Definition at line 1027 of file system_projection.C.
References fptr(), and gptr().
|
inline |
Tells the System whether or not to project the solution vector onto new grids when the system is reinitialized.
The solution will be projected unless project_solution_on_reinit() = false is called.
Definition at line 821 of file system.h.
References _solution_projection.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), and libMesh::MemoryHistoryData::store_vectors().
void libMesh::System::project_vector | ( | NumericVector< Number > & | new_vector, |
FunctionBase< Number > * | f, | ||
FunctionBase< Gradient > * | g = nullptr , |
||
int | is_adjoint = -1 |
||
) | const |
Projects arbitrary functions onto a vector of degree of freedom values for the current system.
This method projects an arbitrary function via L2 projections and nodal interpolations on each element.
The function value f
and its gradient g
are user-provided cloneable functors. A gradient g
is only required/used for projecting onto finite element spaces with continuous derivatives. If non-default Parameters
are to be used, they can be provided in the parameters
argument.
Constrain the new vector using the requested adjoint rather than primal constraints if is_adjoint is non-negative.
Definition at line 1082 of file system_projection.C.
References libMesh::libmesh_assert().
Referenced by main(), libMesh::NewmarkSolver::project_initial_accel(), libMesh::SecondOrderUnsteadySolver::project_initial_rate(), libMesh::InterMeshProjection::project_system_vectors(), and restrict_vectors().
void libMesh::System::project_vector | ( | NumericVector< Number > & | new_vector, |
FEMFunctionBase< Number > * | f, | ||
FEMFunctionBase< Gradient > * | g = nullptr , |
||
int | is_adjoint = -1 |
||
) | const |
Projects arbitrary functions onto a vector of degree of freedom values for the current system.
This method projects an arbitrary function via L2 projections and nodal interpolations on each element.
The function value f
and its gradient g
are user-provided cloneable functors. A gradient g
is only required/used for projecting onto finite element spaces with continuous derivatives. If non-default Parameters
are to be used, they can be provided in the parameters
argument.
Constrain the new vector using the requested adjoint rather than primal constraints if is_adjoint is non-negative.
Definition at line 1108 of file system_projection.C.
References libMesh::NumericVector< T >::close(), libMesh::FEMFunctionBase< Output >::component(), libMesh::FEType::family, libMesh::Utility::iota(), libMesh::libmesh_assert(), libMesh::libmesh_ignore(), libMesh::make_range(), n_vars, libMesh::NODEELEM, libMesh::FEMContext::pre_fe_reinit(), libMesh::RATIONAL_BERNSTEIN, libMesh::SCALAR, libMesh::DofMap::SCALAR_dof_indices(), libMesh::NumericVector< T >::set(), and libMesh::Variable::type().
void libMesh::System::project_vector | ( | ValueFunctionPointer | fptr, |
GradientFunctionPointer | gptr, | ||
const Parameters & | parameters, | ||
NumericVector< Number > & | new_vector, | ||
int | is_adjoint = -1 |
||
) | const |
Projects arbitrary functions onto a vector of degree of freedom values for the current system.
This method projects an arbitrary function via L2 projections and nodal interpolations on each element.
The function value fptr
and its gradient gptr
are represented by function pointers. A gradient gptr
is only required/used for projecting onto finite element spaces with continuous derivatives.
Constrain the new vector using the requested adjoint rather than primal constraints if is_adjoint is non-negative.
Definition at line 1067 of file system_projection.C.
References fptr(), and gptr().
|
protected |
Projects the vector defined on the old mesh onto the new mesh.
Constrain the new vector using the requested adjoint rather than primal constraints if is_adjoint is non-negative.
Definition at line 247 of file system_projection.C.
References libMesh::NumericVector< T >::clone().
|
protected |
Projects the vector defined on the old mesh onto the new mesh.
This method projects the vector via L2 projections or nodal interpolations on each element.
The original vector is unchanged and the new vector is passed through the second argument.
Constrain the new vector using the requested adjoint rather than primal constraints if is_adjoint is non-negative.
This method projects a solution from an old mesh to a current, refined mesh. The input vector old_v
gives the solution on the old mesh, while the new_v
gives the solution (to be computed) on the new mesh.
Definition at line 265 of file system_projection.C.
References libMesh::NumericVector< T >::clear(), libMesh::NumericVector< T >::close(), libMesh::NumericVector< T >::get(), libMesh::GHOSTED, libMesh::index_range(), libMesh::NumericVector< T >::init(), libMesh::Utility::iota(), libMesh::libmesh_assert(), libMesh::libmesh_ignore(), libMesh::NumericVector< T >::local_size(), libMesh::NumericVector< T >::localize(), libMesh::make_range(), n_vars, libMesh::PARALLEL, libMesh::Threads::parallel_reduce(), libMesh::SCALAR, libMesh::DofMap::SCALAR_dof_indices(), libMesh::BuildProjectionList::send_list, libMesh::SERIAL, libMesh::NumericVector< T >::set(), libMesh::NumericVector< T >::size(), libMesh::NumericVector< T >::type(), libMesh::TYPE_SCALAR, and libMesh::BuildProjectionList::unique().
void libMesh::System::projection_matrix | ( | SparseMatrix< Number > & | proj_mat | ) | const |
This method creates a projection matrix which corresponds to the operation of project_vector between old and new solution spaces.
Heterogeneous Dirichlet boundary conditions are not taken into account here; if this matrix is used for prolongation (mesh refinement) on a side with a heterogeneous BC, the newly created degrees of freedom on that side will still match the coarse grid approximation of the BC, not the fine grid approximation.
Definition at line 961 of file system_projection.C.
References libMesh::Utility::iota(), libMesh::make_range(), n_vars, libMesh::SCALAR, libMesh::DofMap::SCALAR_dof_indices(), and libMesh::SparseMatrix< T >::set().
Referenced by libMesh::PetscDMWrapper::init_and_attach_petscdm(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), and SystemsTest::testProjectMatrix3D().
|
virtual |
Prolong vectors after the mesh has refined.
Definition at line 436 of file system.C.
References restrict_vectors().
Referenced by libMesh::EquationSystems::reinit_solutions().
|
inlinevirtual |
For each of the system's quantities of interest q in qoi
[qoi_indices], and for a vector of parameters p, the parameter sensitivity Hessian H_ij is defined as H_ij = (d^2 q)/(d p_i d p_j) This Hessian is the output of this method, where for each q_i, H_jk is stored in hessian.second_derivative(i,j,k)
.
This method is only implemented in some derived classes.
Reimplemented in libMesh::ImplicitSystem.
|
inlinevirtual |
For each of the system's quantities of interest q in qoi
[qoi_indices], and for a vector of parameters p, the parameter sensitivity Hessian H_ij is defined as H_ij = (d^2 q)/(d p_i d p_j) The Hessian-vector product, for a vector v_k in parameter space, is S_j = H_jk v_k This product is the output of this method, where for each q_i, S_j is stored in sensitivities
[i][j].
This method is only implemented in some derived classes.
Reimplemented in libMesh::ImplicitSystem.
|
virtual |
Solves for the derivative of each of the system's quantities of interest q in qoi
[qoi_indices] with respect to each parameter in parameters
, placing the result for qoi i
and parameter j
into sensitivities
[i][j].
parameters
is a const vector, not a vector-of-const; parameter values in this vector need to be mutable for finite differencing to work.Automatically chooses the forward method for problems with more quantities of interest than parameters, or the adjoint method otherwise.
This method is only usable in derived classes which override an implementation.
Definition at line 585 of file system.C.
References adjoint_qoi_parameter_sensitivity(), forward_qoi_parameter_sensitivity(), libMesh::ParameterVector::size(), and libMesh::QoISet::size().
|
virtual |
Re-update the local values when the mesh has changed.
This method takes the data updated by update()
and makes it up-to-date on the current mesh.
Reimplemented in libMesh::TransientSystem< RBConstruction >.
Definition at line 516 of file system.C.
References current_local_solution, get_dof_map(), libMesh::DofMap::get_send_list(), n_vars(), and solution.
void libMesh::System::read_header | ( | Xdr & | io, |
std::string_view | version, | ||
const bool | read_header = true , |
||
const bool | read_additional_data = true , |
||
const bool | read_legacy_format = false |
||
) |
Reads the basic data header for this System.
Definition at line 97 of file system_io.C.
References _additional_data_written, _written_var_indices, add_variable(), add_vector(), TIMPI::Communicator::broadcast(), clear(), libMesh::ParallelObject::comm(), libMesh::Xdr::data(), libMesh::FEType::family, get_mesh(), libMesh::OrderWrapper::get_order(), libMesh::FEType::inf_map, libMesh::libmesh_assert(), libMesh::MeshBase::mesh_dimension(), libMesh::MONOMIAL, libMesh::on_command_line(), libMesh::FEType::order, libMesh::out, libMesh::ParallelObject::processor_id(), libMesh::FEType::radial_family, libMesh::FEType::radial_order, libMesh::Xdr::reading(), variable_number(), libMesh::Xdr::version(), and libMesh::XYZ.
Referenced by libMesh::EquationSystems::read(), and libMesh::RBEvaluation::read_in_vectors_from_multiple_files().
void libMesh::System::read_legacy_data | ( | Xdr & | io, |
const bool | read_additional_data = true |
||
) |
Reads additional data, namely vectors, for this System.
Definition at line 302 of file system_io.C.
References _additional_data_written, _vectors, _written_var_indices, TIMPI::Communicator::broadcast(), libMesh::ParallelObject::comm(), libMesh::Xdr::data(), get_mesh(), libMesh::DofObject::invalid_id, libMesh::libmesh_assert(), libMesh::make_range(), n_dofs(), n_vars(), number(), libMesh::ParallelObject::processor_id(), libMesh::Xdr::reading(), solution, and libMesh::zero.
void libMesh::System::read_parallel_data | ( | Xdr & | io, |
const bool | read_additional_data | ||
) |
Reads additional data, namely vectors, for this System.
This method may safely be called on a distributed-memory mesh. This method will read an individual file for each processor in the simulation where the local solution components for that processor are stored.
This method implements the output of the vectors contained in this System object, embedded in the output of an EquationSystems<T_sys>.
9.) The global solution vector, re-ordered to be node-major (More on this later.)
for each additional vector in the object
10.) The global additional vector, re-ordered to be node-major (More on this later.)
Note that the actual IO is handled through the Xdr class (to be renamed later?) which provides a uniform interface to both the XDR (eXternal Data Representation) interface and standard ASCII output. Thus this one section of code will read XDR or ASCII files with no changes.
Definition at line 449 of file system_io.C.
References _additional_data_written, _vectors, _written_var_indices, libMesh::Xdr::data(), libMesh::FEType::family, get_dof_map(), get_mesh(), libMesh::DofObject::invalid_id, libMesh::Xdr::is_open(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::ParallelObject::n_processors(), n_vars(), number(), libMesh::ParallelObject::processor_id(), libMesh::Xdr::reading(), libMesh::SCALAR, libMesh::DofMap::SCALAR_dof_indices(), solution, libMesh::Variable::type(), and variable().
|
inline |
Non-templated version for backward compatibility.
Reads additional data, namely vectors, for this System. This method may safely be called on a distributed-memory mesh. This method will read an individual file for each processor in the simulation where the local solution components for that processor are stored.
|
private |
Reads the SCALAR dofs from the stream io
and assigns the values to the appropriate entries of vec
.
Reads data and discards it if vec
is a null pointer.
Definition at line 1089 of file system_io.C.
References libMesh::ParallelObject::comm(), libMesh::Xdr::data_stream(), get_dof_map(), libMesh::OrderWrapper::get_order(), TIMPI::Communicator::get_unique_tag(), libMesh::index_range(), libMesh::ParallelObject::n_processors(), libMesh::FEType::order, libMesh::ParallelObject::processor_id(), TIMPI::Communicator::receive(), libMesh::DofMap::SCALAR_dof_indices(), TIMPI::Communicator::send(), libMesh::NumericVector< T >::set(), libMesh::Variable::type(), and variable().
Referenced by read_serialized_vector(), and read_serialized_vectors().
|
private |
Reads an input vector from the stream io
and assigns the values to a set of DofObjects
.
This method uses blocked input and is safe to call on a distributed memory-mesh. Unless otherwise specified, all variables are read.
If an entry in vecs
is a null pointer, the corresponding data is read (incrementing the file read location) but discarded.
Definition at line 765 of file system_io.C.
References _written_var_indices, libMesh::ParallelObject::comm(), TIMPI::Communicator::get_unique_tag(), libMesh::MeshTools::Generation::Private::idx(), libMesh::index_range(), libMesh::invalid_uint, libMesh::Threads::NonConcurrentThread::join(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::ParallelObject::n_processors(), n_vars(), number(), libMesh::ParallelObject::processor_id(), TIMPI::Communicator::receive(), TIMPI::Communicator::send(), TIMPI::Status::source(), and TIMPI::Communicator::sum().
Referenced by read_serialized_vector(), and read_serialized_vectors().
void libMesh::System::read_serialized_data | ( | Xdr & | io, |
const bool | read_additional_data = true |
||
) |
Reads additional data, namely vectors, for this System.
This method may safely be called on a distributed-memory mesh.
Definition at line 680 of file system_io.C.
References _additional_data_written, _vectors, libMesh::ParallelObject::processor_id(), and solution.
Referenced by libMesh::TransientRBConstruction::initialize_truth(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), and libMesh::RBConstruction::read_riesz_representors_from_files().
|
private |
Reads a vector for this System.
This method may safely be called on a distributed-memory mesh.
Reads data and discards it if vec
is a null pointer.
Definition at line 1136 of file system_io.C.
References _written_var_indices, TIMPI::Communicator::broadcast(), libMesh::NumericVector< T >::close(), libMesh::ParallelObject::comm(), libMesh::Xdr::data(), get_mesh(), libMesh::GHOSTED, libMesh::libmesh_assert(), libMesh::MeshTools::n_elem(), libMesh::MeshBase::n_elem(), n_nodes, libMesh::MeshBase::n_nodes(), libMesh::ParallelObject::n_processors(), n_vars(), libMesh::PARALLEL, libMesh::ParallelObject::processor_id(), read_SCALAR_dofs(), read_serialized_blocked_dof_objects(), libMesh::Xdr::reading(), libMesh::SCALAR, TIMPI::Communicator::sum(), libMesh::NumericVector< T >::type(), variable(), and libMesh::Xdr::version().
|
inlineprivate |
std::size_t libMesh::System::read_serialized_vectors | ( | Xdr & | io, |
const std::vector< NumericVector< Number > *> & | vectors | ||
) | const |
Read a number of identically distributed vectors.
This method allows for optimization for the multiple vector case by only communicating the metadata once.
Definition at line 2165 of file system_io.C.
References libMesh::Xdr::data(), get_mesh(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::MeshTools::n_elem(), libMesh::MeshBase::n_elem(), n_nodes, libMesh::MeshBase::n_nodes(), n_vars(), libMesh::ParallelObject::processor_id(), read_SCALAR_dofs(), read_serialized_blocked_dof_objects(), libMesh::Xdr::reading(), libMesh::SCALAR, and variable().
Referenced by libMesh::RBEvaluation::read_in_vectors_from_multiple_files().
|
inline |
Non-templated version for backward compatibility.
Read a number of identically distributed vectors. This method allows for optimization for the multiple vector case by only communicating the metadata once.
|
virtual |
Reinitializes degrees of freedom and other required data on the current mesh.
Reimplemented in libMesh::NonlinearImplicitSystem, libMesh::OptimizationSystem, libMesh::LinearImplicitSystem, libMesh::EigenSystem, libMesh::DifferentiableSystem, and libMesh::NewmarkSystem.
Definition at line 446 of file system.C.
References _basic_system_only, _matrices, libMesh::DofMap::clear_sparsity(), libMesh::DofMap::compute_sparsity(), current_local_solution, get_dof_map(), get_mesh(), and solution.
Referenced by alternative_fe_assembly(), libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::DifferentiableSystem::reinit(), libMesh::EigenSystem::reinit(), libMesh::LinearImplicitSystem::reinit(), libMesh::OptimizationSystem::reinit(), and libMesh::NonlinearImplicitSystem::reinit().
|
virtual |
Reinitializes the constraints for this system.
Definition at line 480 of file system.C.
References _mesh, libMesh::DofMap::create_dof_constraints(), get_dof_map(), libMesh::DofMap::prepare_send_list(), libMesh::DofMap::process_constraints(), time, and user_constrain().
Referenced by libMesh::EquationSystems::allgather(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), init_data(), and libMesh::EquationSystems::reinit_solutions().
|
virtual |
Reinitializes the system with a new mesh.
Definition at line 304 of file system.C.
References _basic_system_only, init_data(), n_vars(), and user_initialization().
void libMesh::System::remove_matrix | ( | std::string_view | mat_name | ) |
Removes the additional matrix mat_name
from this system.
Definition at line 1032 of file system.C.
References _matrices.
void libMesh::System::remove_vector | ( | std::string_view | vec_name | ) |
Removes the additional vector vec_name
from this system.
Definition at line 846 of file system.C.
References _vector_is_adjoint, _vector_projections, _vectors, and libMesh::libmesh_assert().
Referenced by libMesh::AdjointRefinementEstimator::estimate_error(), and libMesh::UnsteadySolver::integrate_adjoint_sensitivity().
const SparseMatrix< Number > * libMesh::System::request_matrix | ( | std::string_view | mat_name | ) | const |
mat_name
, or nullptr
if no matrix by that name exists. Definition at line 1047 of file system.C.
References _matrices.
Referenced by libMesh::EigenSystem::has_matrix_A(), libMesh::EigenSystem::has_matrix_B(), libMesh::EigenSystem::has_precond_matrix(), libMesh::ImplicitSystem::sensitivity_solve(), libMesh::NewtonSolver::solve(), and libMesh::LinearImplicitSystem::solve().
SparseMatrix< Number > * libMesh::System::request_matrix | ( | std::string_view | mat_name | ) |
mat_name
, or nullptr
if no matrix by that name exists. Definition at line 1060 of file system.C.
References _matrices.
const NumericVector< Number > * libMesh::System::request_vector | ( | std::string_view | vec_name | ) | const |
System
has a vector associated with the given name, nullptr
otherwise. Definition at line 866 of file system.C.
References _vectors.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error().
NumericVector< Number > * libMesh::System::request_vector | ( | std::string_view | vec_name | ) |
System
has a vector associated with the given name, nullptr
otherwise. Definition at line 878 of file system.C.
References _vectors.
const NumericVector< Number > * libMesh::System::request_vector | ( | const unsigned int | vec_num | ) | const |
vec_num
(where the vectors are counted starting with 0), or nullptr
if the system has no such vector. Definition at line 890 of file system.C.
References _vectors, and vectors_begin().
NumericVector< Number > * libMesh::System::request_vector | ( | const unsigned int | vec_num | ) |
vec_num
(where the vectors are counted starting with 0), or nullptr
if the system has no such vector. Definition at line 904 of file system.C.
References _vectors, and vectors_begin().
|
virtual |
After calling this method, any solve will be restricted to the given subdomain.
To disable this mode, call this method with subset
being a nullptr
.
Reimplemented in libMesh::LinearImplicitSystem.
|
virtual |
Restrict vectors after the mesh has coarsened.
Definition at line 378 of file system.C.
References _dof_map, _solution_projection, _vector_projections, _vectors, current_local_solution, libMesh::NumericVector< T >::get(), libMesh::GHOSTED, n_dofs(), n_local_dofs(), libMesh::PARALLEL, project_vector(), solution, and vector_is_adjoint().
Referenced by prolong_vectors(), and libMesh::EquationSystems::reinit_solutions().
|
inlinevirtual |
Solves the sensitivity system, for the provided parameters.
Must be overridden in derived systems.
This method is only implemented in some derived classes.
Reimplemented in libMesh::ImplicitSystem.
|
inline |
Setter for the adjoint_already_solved boolean.
Definition at line 412 of file system.h.
References adjoint_already_solved.
Referenced by main().
|
inline |
Sets the system to be "basic only": i.e.
advanced system components such as ImplicitSystem matrices may not be initialized. This is useful for efficiency in certain utility programs that never use System::solve(). This method must be called after the System or derived class is created but before it is initialized; e.g. from within EquationSystems::read()
Definition at line 2341 of file system.h.
References _basic_system_only.
Referenced by libMesh::EquationSystems::read().
|
inline |
Definition at line 1780 of file system.h.
References project_with_constraints.
Referenced by libMesh::AdjointRefinementEstimator::estimate_error().
Definition at line 2326 of file system.C.
References libMesh::libmesh_assert(), and qoi.
Referenced by libMesh::ExplicitSystem::assemble_qoi(), libMesh::FEMSystem::assemble_qoi(), libMesh::Euler2Solver::integrate_qoi_timestep(), libMesh::TwostepTimeSolver::integrate_qoi_timestep(), and libMesh::EulerSolver::integrate_qoi_timestep().
void libMesh::System::set_qoi | ( | std::vector< Number > | new_qoi | ) |
Definition at line 2347 of file system.C.
References qoi.
Definition at line 2354 of file system.C.
References libMesh::libmesh_assert(), and qoi_error_estimates.
Referenced by libMesh::Euler2Solver::integrate_adjoint_refinement_error_estimate(), libMesh::TwostepTimeSolver::integrate_adjoint_refinement_error_estimate(), and libMesh::EulerSolver::integrate_adjoint_refinement_error_estimate().
void libMesh::System::set_vector_as_adjoint | ( | const std::string & | vec_name, |
int | qoi_num | ||
) |
Allows one to set the QoI index controlling whether the vector identified by vec_name represents a solution from the adjoint (qoi_num >= 0) or primal (qoi_num == -1) space.
This becomes significant if those spaces have differing heterogeneous Dirichlet constraints.
qoi_num == -2 can be used to indicate a vector which should not be affected by constraints during projection operations.
Definition at line 1107 of file system.C.
References _vector_is_adjoint.
Referenced by add_adjoint_solution(), and add_weighted_sensitivity_adjoint_solution().
void libMesh::System::set_vector_preservation | ( | const std::string & | vec_name, |
bool | preserve | ||
) |
Allows one to set the boolean controlling whether the vector identified by vec_name should be "preserved": projected to new meshes, saved, etc.
Definition at line 1087 of file system.C.
References _vector_projections.
Referenced by libMesh::AdjointRefinementEstimator::estimate_error(), and main().
|
inlinevirtual |
Solves the system.
Should be overridden in derived systems.
Reimplemented in libMesh::NonlinearImplicitSystem, libMesh::OptimizationSystem, libMesh::ImplicitSystem, libMesh::DifferentiableSystem, libMesh::LinearImplicitSystem, libMesh::ExplicitSystem, libMesh::FEMSystem, libMesh::CondensedEigenSystem, libMesh::FrequencySystem, libMesh::EigenSystem, and libMesh::ContinuationSystem.
Definition at line 344 of file system.h.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), main(), and SystemsTest::testAssemblyWithDgFemContext().
|
protected |
Definition at line 2041 of file system_projection.C.
References libMesh::DofMap::build_sparsity(), libMesh::DofMap::computed_sparsity_already(), libMesh::DofMap::end_dof(), libMesh::DofMap::first_dof(), libMesh::NumericVector< T >::get(), libMesh::DofMap::heterogenously_constrain_element_matrix_and_vector(), libMesh::DofMap::is_constrained_dof(), libMesh::NumericVector< T >::local_size(), libMesh::DofMap::n_dofs(), libMesh::DofMap::n_local_dofs(), libMesh::PARALLEL, libMesh::Real, libMesh::NumericVector< T >::size(), and libMesh::DofMap::update_sparsity_pattern().
|
inline |
|
inlinevirtual |
Reimplemented in libMesh::NonlinearImplicitSystem, libMesh::OptimizationSystem, libMesh::LinearImplicitSystem, libMesh::RBConstruction, libMesh::EigenSystem, libMesh::FrequencySystem, libMesh::ExplicitSystem, libMesh::ImplicitSystem, libMesh::TransientSystem< RBConstruction >, libMesh::NewmarkSystem, and SolidSystem.
Definition at line 505 of file system.h.
Referenced by get_info().
|
virtual |
Update the local values to reflect the solution on neighboring processors.
Reimplemented in SolidSystem.
Definition at line 493 of file system.C.
References _dof_map, current_local_solution, libMesh::libmesh_assert(), and solution.
Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::UniformRefinementEstimator::_estimate_error(), HDGProblem::assemble(), libMesh::FEMSystem::assemble_qoi(), libMesh::FEMSystem::assemble_qoi_derivative(), libMesh::NonlinearImplicitSystem::assembly(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::NewmarkSolver::compute_initial_accel(), compute_stresses(), LinearElasticityWithContact::compute_stresses(), LinearElasticity::compute_stresses(), LargeDeformationElasticity::compute_stresses(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::Nemesis_IO::copy_elemental_solution(), libMesh::GMVIO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::Nemesis_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), DMlibMeshFunction(), DMlibMeshJacobian(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::TransientRBConstruction::initialize_truth(), libMesh::Euler2Solver::integrate_adjoint_refinement_error_estimate(), libMesh::EulerSolver::integrate_adjoint_refinement_error_estimate(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), libMesh::NewtonSolver::line_search(), libMesh::RBConstruction::load_basis_function(), libMesh::TransientRBConstruction::load_rb_solution(), libMesh::RBConstruction::load_rb_solution(), main(), libMesh::FEMSystem::mesh_position_get(), HeatSystem::perturb_accumulate_residuals(), libMesh::FEMSystem::postprocess(), libMesh::ImplicitSystem::qoi_parameter_hessian(), libMesh::MemorySolutionHistory::retrieve(), libMesh::FileSolutionHistory::retrieve(), libMesh::NewtonSolver::solve(), libMesh::ExplicitSystem::solve(), libMesh::LinearImplicitSystem::solve(), libMesh::OptimizationSystem::solve(), libMesh::NonlinearImplicitSystem::solve(), libMesh::RBConstruction::solve_for_matrix_and_rhs(), libMesh::MeshFunctionSolutionTransfer::transfer(), and libMesh::DirectSolutionTransfer::transfer().
void libMesh::System::update_global_solution | ( | std::vector< Number > & | global_soln | ) | const |
Fill the input vector global_soln
so that it contains the global solution on all processors.
Requires communication with all other processors.
Definition at line 728 of file system.C.
References solution.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::ExactErrorEstimator::estimate_error(), main(), and libMesh::InterMeshProjection::project_system_vectors().
void libMesh::System::update_global_solution | ( | std::vector< Number > & | global_soln, |
const processor_id_type | dest_proc | ||
) | const |
Fill the input vector global_soln
so that it contains the global solution on processor dest_proc
.
Requires communication with all other processors.
Definition at line 739 of file system.C.
References solution.
|
virtual |
Calls user's attached assembly function, or is overridden by the user in derived classes.
Definition at line 2259 of file system.C.
References _assemble_system_function, _assemble_system_object, _equation_systems, libMesh::System::Assembly::assemble(), and name().
Referenced by assemble().
|
virtual |
Calls user's attached constraint function, or is overridden by the user in derived classes.
Definition at line 2273 of file system.C.
References _constrain_system_function, _constrain_system_object, _equation_systems, libMesh::System::Constraint::constrain(), and name().
Referenced by reinit_constraints().
|
virtual |
Calls user's attached initialization function, or is overridden by the user in derived classes.
Definition at line 2245 of file system.C.
References _equation_systems, _init_system_function, _init_system_object, libMesh::System::Initialization::initialize(), and name().
Referenced by init(), libMesh::NewmarkSystem::initial_conditions(), and reinit_mesh().
|
virtual |
Calls user's attached quantity of interest function, or is overridden by the user in derived classes.
Definition at line 2287 of file system.C.
References _equation_systems, _qoi_evaluate_function, _qoi_evaluate_object, name(), and libMesh::System::QOI::qoi().
Referenced by assemble_qoi().
|
virtual |
Calls user's attached quantity of interest derivative function, or is overridden by the user in derived classes.
Definition at line 2301 of file system.C.
References _equation_systems, _qoi_evaluate_derivative_function, _qoi_evaluate_derivative_object, name(), and libMesh::System::QOIDerivative::qoi_derivative().
Referenced by assemble_qoi_derivative().
Return a constant reference to Variable
var
.
Definition at line 2377 of file system.h.
References _variables.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DifferentiableSystem::add_second_order_dot_vars(), add_variable(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::DifferentiableSystem::have_first_order_scalar_vars(), libMesh::DifferentiableSystem::have_second_order_scalar_vars(), main(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectEdges::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectSides::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectInteriors::operator()(), point_gradient(), point_hessian(), point_value(), read_parallel_data(), read_SCALAR_dofs(), read_serialized_vector(), read_serialized_vectors(), libMesh::PetscDMWrapper::set_point_range_in_section(), write_header(), libMesh::Nemesis_IO_Helper::write_nodal_solution(), write_parallel_data(), write_serialized_vector(), and write_serialized_vectors().
|
inline |
Return a constant reference to VariableGroup
vg
.
Definition at line 2387 of file system.h.
References _variable_groups.
Referenced by libMesh::FEMSystem::assembly(), get_info(), and init_data().
|
inline |
i
. Definition at line 2397 of file system.h.
References _variables.
Referenced by add_variable(), add_variables(), libMesh::PetscDMWrapper::build_section(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::ExactSolution::ExactSolution(), libMesh::EquationSystems::find_variable_numbers(), main(), output_norms(), libMesh::petsc_auto_fieldsplit(), libMesh::InterMeshProjection::project_system_vectors(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), write_header(), and libMesh::Nemesis_IO_Helper::write_nodal_solution().
unsigned int libMesh::System::variable_number | ( | std::string_view | var | ) | const |
var
. Definition at line 1557 of file system.C.
References _variable_numbers, _variables, and name().
Referenced by libMesh::ExactSolution::_compute_error(), alternative_fe_assembly(), LinearElasticity::assemble(), HDGProblem::assemble(), AssembleOptimization::assemble_A_and_F(), assemble_divgrad(), assemble_elasticity(), assemble_matrix_and_rhs(), assemble_shell(), assemble_stokes(), compute_enriched_soln(), compute_stresses(), LinearElasticityWithContact::compute_stresses(), LinearElasticity::compute_stresses(), LargeDeformationElasticity::compute_stresses(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::Nemesis_IO::copy_elemental_solution(), libMesh::GMVIO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::Nemesis_IO::copy_nodal_solution(), libMesh::ExactErrorEstimator::estimate_error(), fe_assembly(), libMesh::ExactErrorEstimator::find_squared_element_error(), CoupledSystemQoI::init_context(), LargeDeformationElasticity::jacobian(), line_print(), main(), LinearElasticityWithContact::move_mesh(), read_header(), LargeDeformationElasticity::residual(), LinearElasticityWithContact::residual_and_jacobian(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), OverlappingTestBase::setup_coupling_matrix(), libMesh::DTKAdapter::update_variable_values(), variable_scalar_number(), variable_type(), libMesh::EnsightIO::write_scalar_ascii(), and libMesh::EnsightIO::write_vector_ascii().
|
inline |
variable_number(var)
Irony: currently our only non-scalar-valued variable type is SCALAR.
Definition at line 2408 of file system.h.
References variable_number().
Referenced by libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::ExactErrorEstimator::find_squared_element_error(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectEdges::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectSides::operator()(), and libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectInteriors::operator()().
|
inline |
var_num
Irony: currently our only non-scalar-valued variable type is SCALAR.
Definition at line 2418 of file system.h.
References _variables.
i
. Definition at line 2427 of file system.h.
References _variables.
Referenced by libMesh::ExactSolution::_compute_error(), add_variable(), add_variables(), alternative_fe_assembly(), assemble(), assemble_ellipticdg(), assemble_shell(), assemble_stokes(), libMesh::FEMContext::attach_quadrature_rules(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::Nemesis_IO::copy_elemental_solution(), libMesh::GMVIO::copy_nodal_solution(), libMesh::DGFEMContext::DGFEMContext(), fe_assembly(), libMesh::FEMContext::find_hardest_fe_type(), libMesh::EquationSystems::find_variable_numbers(), libMesh::FEMSystem::init_context(), libMesh::FEMContext::init_internal_data(), RationalMapTest< elem_type >::setUp(), FETestBase< order, family, elem_type, 1 >::setUp(), EquationSystemsTest::testBadVarNames(), libMesh::Nemesis_IO_Helper::write_element_values(), write_header(), libMesh::Nemesis_IO_Helper::write_nodal_solution(), libMesh::EnsightIO::write_scalar_ascii(), and libMesh::EnsightIO::write_vector_ascii().
|
inline |
var
. Definition at line 2437 of file system.h.
References _variables, and variable_number().
int libMesh::System::vector_is_adjoint | ( | std::string_view | vec_name | ) | const |
Definition at line 1120 of file system.C.
References _vector_is_adjoint, and libMesh::libmesh_assert().
Referenced by libMesh::InterMeshProjection::project_system_vectors(), and restrict_vectors().
const std::string & libMesh::System::vector_name | ( | const unsigned int | vec_num | ) | const |
vec_num
(where the vectors are counted starting with 0). Definition at line 958 of file system.C.
References _vectors, and vectors_begin().
Referenced by libMesh::AdjointRefinementEstimator::estimate_error(), and main().
const std::string & libMesh::System::vector_name | ( | const NumericVector< Number > & | vec_reference | ) | const |
Definition at line 969 of file system.C.
References _vectors, libMesh::NumericVector< T >::get(), libMesh::libmesh_assert(), vectors_begin(), and vectors_end().
bool libMesh::System::vector_preservation | ( | std::string_view | vec_name | ) | const |
Definition at line 1097 of file system.C.
References _vector_projections.
Referenced by libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::MemoryHistoryData::store_vectors(), SystemsTest::testAddVectorProjChange(), SystemsTest::testAddVectorTypeChange(), and SystemsTest::testPostInitAddVectorTypeChange().
|
inline |
Beginning of vectors container.
Definition at line 2483 of file system.h.
References _vectors.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), get_vector(), libMesh::InterMeshProjection::project_system_vectors(), request_vector(), libMesh::MemoryHistoryData::store_vectors(), and vector_name().
|
inline |
Beginning of vectors container.
Definition at line 2489 of file system.h.
References _vectors.
|
inline |
End of vectors container.
Definition at line 2495 of file system.h.
References _vectors.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::InterMeshProjection::project_system_vectors(), libMesh::MemoryHistoryData::store_vectors(), and vector_name().
|
inline |
End of vectors container.
Definition at line 2501 of file system.h.
References _vectors.
|
inlinevirtual |
Assembles & solves the linear system(s) (dR/du)^T*z_w = sum(w_p*(d^2q/dudp - d^2R/dudp*z)), for those parameters p contained within parameters
, weighted by the values w_p found within weights
.
Assumes that adjoint_solve has already calculated z for each qoi in qoi_indices
.
This method is only implemented in some derived classes.
Reimplemented in libMesh::ImplicitSystem.
|
inlinevirtual |
Assembles & solves the linear system(s) (dR/du)*u_w = sum(w_p*-dR/dp), for those parameters p contained within parameters
weighted by the values w_p found within weights
.
This method is only implemented in some derived classes.
Reimplemented in libMesh::ImplicitSystem.
void libMesh::System::write_header | ( | Xdr & | io, |
std::string_view | version, | ||
const bool | write_additional_data | ||
) | const |
Writes the basic data header for this System.
This method implements the output of a System object, embedded in the output of an EquationSystems<T_sys>. This warrants some documentation. The output of this part consists of 5 sections:
for this system
5.) The number of variables in the system (unsigned int)
for each variable in the system
6.) The name of the variable (string)
6.1.) subdomain where the variable lives
7.) Combined in an FEType:
end variable loop
8.) The number of additional vectors (unsigned int),
for each additional vector in the system object
9.) the name of the additional vector (string)
end system
Definition at line 1267 of file system_io.C.
References _vector_projections, _vectors, libMesh::Variable::active_subdomains(), libMesh::Xdr::data(), libMesh::FEType::family, get_mesh(), libMesh::FEType::inf_map, libMesh::libmesh_assert(), libMesh::make_range(), n_vars(), n_vectors(), name(), libMesh::FEType::order, libMesh::ParallelObject::processor_id(), libMesh::FEType::radial_family, libMesh::FEType::radial_order, variable(), variable_name(), variable_type(), and libMesh::Xdr::writing().
Referenced by libMesh::RBEvaluation::write_out_vectors().
void libMesh::System::write_parallel_data | ( | Xdr & | io, |
const bool | write_additional_data | ||
) | const |
Writes additional data, namely vectors, for this System.
This method may safely be called on a distributed-memory mesh. This method will create an individual file for each processor in the simulation where the local solution components for that processor will be stored.
This method implements the output of the vectors contained in this System object, embedded in the output of an EquationSystems<T_sys>.
9.) The global solution vector, re-ordered to be node-major (More on this later.)
for each additional vector in the object
10.) The global additional vector, re-ordered to be node-major (More on this later.)
Note that the actual IO is handled through the Xdr class (to be renamed later?) which provides a uniform interface to both the XDR (eXternal Data Representation) interface and standard ASCII output. Thus this one section of code will read XDR or ASCII files with no changes.
Definition at line 1468 of file system_io.C.
References _vectors, libMesh::Xdr::data(), libMesh::FEType::family, get_dof_map(), get_mesh(), libMesh::DofObject::invalid_id, libMesh::libmesh_assert(), libMesh::make_range(), libMesh::ParallelObject::n_processors(), n_vars(), name(), number(), libMesh::ParallelObject::processor_id(), libMesh::SCALAR, libMesh::DofMap::SCALAR_dof_indices(), solution, libMesh::Variable::type(), variable(), and libMesh::Xdr::writing().
|
private |
Writes the SCALAR dofs associated with var to the stream io
.
Definition at line 2062 of file system_io.C.
References libMesh::ParallelObject::comm(), libMesh::Xdr::data_stream(), get_dof_map(), TIMPI::Communicator::get_unique_tag(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::processor_id(), TIMPI::Communicator::receive(), libMesh::DofMap::SCALAR_dof_indices(), and TIMPI::Communicator::send().
Referenced by write_serialized_vector(), and write_serialized_vectors().
|
private |
Writes an output vector to the stream io
for a set of DofObjects
.
This method uses blocked output and is safe to call on a distributed memory-mesh.
Definition at line 1776 of file system_io.C.
References TIMPI::Communicator::broadcast(), libMesh::ParallelObject::comm(), TIMPI::Communicator::get_unique_tag(), libMesh::MeshTools::Generation::Private::idx(), libMesh::invalid_uint, libMesh::libmesh_assert(), libMesh::make_range(), libMesh::ParallelObject::n_processors(), n_vars(), number(), libMesh::ParallelObject::processor_id(), TIMPI::Communicator::receive(), TIMPI::Communicator::send(), and TIMPI::Status::source().
Referenced by write_serialized_vector(), and write_serialized_vectors().
void libMesh::System::write_serialized_data | ( | Xdr & | io, |
const bool | write_additional_data = true |
||
) | const |
Writes additional data, namely vectors, for this System.
This method may safely be called on a distributed-memory mesh.
This method implements the output of the vectors contained in this System object, embedded in the output of an EquationSystems<T_sys>.
9.) The global solution vector, re-ordered to be node-major (More on this later.)
for each additional vector in the object
10.) The global additional vector, re-ordered to be node-major (More on this later.)
Definition at line 1668 of file system_io.C.
References _vectors, libMesh::Xdr::comment(), name(), libMesh::ParallelObject::processor_id(), solution, and write_serialized_vector().
Referenced by libMesh::TransientRBConstruction::write_riesz_representors_to_files(), and libMesh::RBConstruction::write_riesz_representors_to_files().
|
private |
Writes a vector for this System.
This method may safely be called on a distributed-memory mesh.
Definition at line 2118 of file system_io.C.
References libMesh::Xdr::data(), libMesh::FEType::family, get_mesh(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::MeshTools::n_elem(), n_nodes, n_vars(), libMesh::ParallelObject::processor_id(), libMesh::SCALAR, libMesh::NumericVector< T >::size(), libMesh::Variable::type(), variable(), write_SCALAR_dofs(), write_serialized_blocked_dof_objects(), and libMesh::Xdr::writing().
Referenced by write_serialized_data().
std::size_t libMesh::System::write_serialized_vectors | ( | Xdr & | io, |
const std::vector< const NumericVector< Number > *> & | vectors | ||
) | const |
Serialize & write a number of identically distributed vectors.
This method allows for optimization for the multiple vector case by only communicating the metadata once.
Definition at line 2259 of file system_io.C.
References libMesh::Xdr::data(), get_mesh(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::MeshTools::n_elem(), libMesh::MeshBase::n_elem(), n_nodes, libMesh::MeshBase::n_nodes(), n_vars(), libMesh::ParallelObject::processor_id(), libMesh::SCALAR, variable(), write_SCALAR_dofs(), write_serialized_blocked_dof_objects(), and libMesh::Xdr::writing().
Referenced by libMesh::RBEvaluation::write_out_vectors().
void libMesh::System::zero_variable | ( | NumericVector< Number > & | v, |
unsigned int | var_num | ||
) | const |
Zeroes all dofs in v
that correspond to variable number var_num
.
Definition at line 1616 of file system.C.
References get_mesh(), mesh, n_vars(), number(), and libMesh::NumericVector< T >::set().
|
private |
Flag stating if the system is active or not.
Definition at line 2156 of file system.h.
Referenced by activate(), active(), and deactivate().
|
private |
This flag is used only when reading in a system from file.
Based on the system header, it keeps track of how many additional vectors were actually written for this file.
Definition at line 2223 of file system.h.
Referenced by read_header(), read_legacy_data(), read_parallel_data(), and read_serialized_data().
|
private |
Function that assembles the system.
Definition at line 2064 of file system.h.
Referenced by attach_assemble_function(), attach_assemble_object(), and user_assembly().
|
private |
Object that assembles the system.
Definition at line 2070 of file system.h.
Referenced by attach_assemble_function(), attach_assemble_object(), and user_assembly().
|
private |
Holds true if the components of more advanced system types (e.g.
system matrices) should not be initialized.
Definition at line 2204 of file system.h.
Referenced by init(), init_data(), reinit(), reinit_mesh(), and set_basic_system_only().
|
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::ParallelObject::comm(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::operator=(), libMesh::ParallelObject::processor_id(), and libMesh::BoundaryInfo::regenerate_id_sets().
|
private |
Function to impose constraints.
Definition at line 2075 of file system.h.
Referenced by attach_constraint_function(), attach_constraint_object(), and user_constrain().
|
private |
Object that constrains the system.
Definition at line 2081 of file system.h.
Referenced by attach_constraint_function(), attach_constraint_object(), get_constraint_object(), has_constraint_object(), and user_constrain().
|
staticprotectedinherited |
Actually holds the data.
Definition at line 124 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::get_info().
|
private |
Data structure describing the relationship between nodes, variables, etc...
and degrees of freedom.
Definition at line 2113 of file system.h.
Referenced by add_vector(), calculate_norm(), clear(), current_solution(), get_dof_map(), init_data(), n_constrained_dofs(), n_dofs(), n_local_constrained_dofs(), n_local_dofs(), restrict_vectors(), and update().
|
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().
|
private |
Constant reference to the EquationSystems
object used for the simulation.
Definition at line 2119 of file system.h.
Referenced by get_equation_systems(), user_assembly(), user_constrain(), user_initialization(), user_QOI(), and user_QOI_derivative().
|
private |
Are we allowed to write this system to file? If _hide_output
is true
, then EquationSystems::write
will ignore this system.
Definition at line 2248 of file system.h.
Referenced by hide_output().
|
private |
true
when VariableGroup
structures should be automatically identified, false
otherwise.
Defaults to true
.
Definition at line 2216 of file system.h.
Referenced by identify_variable_groups().
|
private |
Function that initializes the system.
Definition at line 2053 of file system.h.
Referenced by attach_init_function(), attach_init_object(), and user_initialization().
|
private |
Object that initializes the system.
Definition at line 2059 of file system.h.
Referenced by attach_init_function(), attach_init_object(), and user_initialization().
|
private |
true
when additional vectors and variables do not require immediate initialization, false
otherwise.
Definition at line 2210 of file system.h.
Referenced by add_vector(), clear(), compare(), init_data(), and is_initialized().
|
private |
Some systems need an arbitrary number of matrices.
Definition at line 2181 of file system.h.
Referenced by add_matrix(), clear(), get_matrix(), have_matrix(), init_data(), init_matrices(), n_matrices(), reinit(), remove_matrix(), and request_matrix().
|
private |
false
when additional matrices being added require initialization, true
otherwise.
Definition at line 2191 of file system.h.
Referenced by can_add_matrices(), clear(), init_matrices(), and late_matrix_init().
|
private |
Holds the types of the matrices.
Definition at line 2186 of file system.h.
Referenced by add_matrix(), and init_matrices().
|
private |
Constant reference to the mesh
data structure used for the simulation.
Definition at line 2125 of file system.h.
Referenced by calculate_norm(), get_mesh(), and reinit_constraints().
|
staticprotectedinherited |
Mutual exclusion object to enable thread-safe reference counting.
Definition at line 137 of file reference_counter.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(), and libMesh::ReferenceCounter::~ReferenceCounter().
|
private |
Function to evaluate quantity of interest derivative.
Definition at line 2098 of file system.h.
Referenced by attach_QOI_derivative(), attach_QOI_derivative_object(), and user_QOI_derivative().
|
private |
Object to compute derivatives of quantities of interest.
Definition at line 2107 of file system.h.
Referenced by attach_QOI_derivative(), attach_QOI_derivative_object(), and user_QOI_derivative().
|
private |
Function to evaluate quantity of interest.
Definition at line 2086 of file system.h.
Referenced by attach_QOI_function(), attach_QOI_object(), and user_QOI().
|
private |
Object to compute quantities of interest.
Definition at line 2093 of file system.h.
Referenced by attach_QOI_function(), attach_QOI_object(), and user_QOI().
|
private |
Holds true if the solution vector should be projected onto a changed grid, false if it should be zeroed.
This is true by default.
Definition at line 2198 of file system.h.
Referenced by project_solution_on_reinit(), and restrict_vectors().
|
private |
|
private |
|
private |
The VariableGroup
in this System
.
Definition at line 2145 of file system.h.
Referenced by add_variable(), add_variables(), n_variable_groups(), and variable_group().
|
private |
The variable numbers corresponding to user-specified names, useful for name-based lookups.
Definition at line 2151 of file system.h.
Referenced by add_variable(), add_variables(), clear(), get_all_variable_numbers(), has_variable(), and variable_number().
|
private |
Definition at line 2140 of file system.h.
Referenced by add_variable(), add_variables(), clear(), n_components(), n_vars(), variable(), variable_name(), variable_number(), variable_scalar_number(), and variable_type().
|
private |
Holds non-negative if a vector by that name should be projected using adjoint constraints/BCs, -1 if primal.
Definition at line 2176 of file system.h.
Referenced by add_vector(), clear(), remove_vector(), set_vector_as_adjoint(), and vector_is_adjoint().
|
private |
Holds true if a vector by that name should be projected onto a changed grid, false if it should be zeroed.
Definition at line 2170 of file system.h.
Referenced by add_vector(), clear(), remove_vector(), restrict_vectors(), set_vector_preservation(), vector_preservation(), and write_header().
|
private |
Some systems need an arbitrary number of vectors.
This map allows names to be associated with arbitrary vectors. All the vectors in this map will be distributed in the same way as the solution vector.
Definition at line 2164 of file system.h.
Referenced by add_vector(), clear(), compare(), get_vector(), have_vector(), init_data(), n_vectors(), read_legacy_data(), read_parallel_data(), read_serialized_data(), remove_vector(), request_vector(), restrict_vectors(), vector_name(), vectors_begin(), vectors_end(), write_header(), write_parallel_data(), and write_serialized_data().
|
private |
This vector is used only when reading in a system from file.
Based on the system header, it keeps track of any index remapping between variable names in the data file and variable names in the already-constructed system. I.e. if we have a system with variables "A1", "A2", "B1", and "B2", but we read in a data file with only "A1" and "B1" defined, then we don't want to try and read in A2 or B2, and we don't want to assign A1 and B1 values to different dof indices.
Definition at line 2235 of file system.h.
Referenced by read_header(), read_legacy_data(), read_parallel_data(), read_serialized_blocked_dof_objects(), and read_serialized_vector().
|
private |
Has the adjoint problem already been solved? If the user sets adjoint_already_solved
to true
, we won't waste time solving it again.
Definition at line 2242 of file system.h.
Referenced by is_adjoint_already_solved(), and set_adjoint_already_solved().
bool libMesh::System::assemble_before_solve |
Flag which tells the system to whether or not to call the user assembly function during each call to solve().
By default, every call to solve() begins with a call to the user assemble, so this flag is true. (For explicit systems, "solving" the system occurs during the assembly step, so this flag is always true for explicit systems.)
You will only want to set this to false if you need direct control over when the system is assembled, and are willing to track the state of its assembly yourself. An example of such a case is an implicit system with multiple right hand sides. In this instance, a single assembly would likely be followed with multiple calls to solve.
The frequency system and Newmark system have their own versions of this flag, called _finished_assemble, which might be able to be replaced with this more general concept.
Definition at line 1527 of file system.h.
Referenced by libMesh::ImplicitSystem::adjoint_solve(), libMesh::ImplicitSystem::disable_cache(), disable_cache(), main(), libMesh::RBConstruction::RBConstruction(), libMesh::RBSCMConstruction::RBSCMConstruction(), libMesh::ImplicitSystem::sensitivity_solve(), libMesh::EigenSystem::solve(), libMesh::CondensedEigenSystem::solve(), and libMesh::LinearImplicitSystem::solve().
std::unique_ptr<NumericVector<Number> > libMesh::System::current_local_solution |
All the values I need to compute my contribution to the simulation at hand.
Think of this as the current solution with any ghost values needed from other processors. This vector is necessarily larger than the solution
vector in the case of a parallel simulation. The update()
member is used to synchronize the contents of the solution
and current_local_solution
vectors.
Definition at line 1585 of file system.h.
Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::UniformRefinementEstimator::_estimate_error(), alternative_fe_assembly(), HDGProblem::assemble(), libMesh::NonlinearImplicitSystem::assembly(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), clear(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), current_solution(), DMlibMeshFunction(), DMlibMeshJacobian(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), fe_assembly(), init_data(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), point_gradient(), point_hessian(), point_value(), libMesh::FEMContext::pre_fe_reinit(), libMesh::RBEIMEvaluation::project_qp_data_map_onto_system(), re_update(), reinit(), restrict_vectors(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), SolidSystem::save_initial_mesh(), libMesh::RBConstruction::set_context_solution_vec(), setup(), MeshFunctionTest::test_subdomain_id_sets(), MeshInputTest::testCopyElementVectorImpl(), libMesh::BoundaryVolumeSolutionTransfer::transfer_boundary_volume(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::TransientRBConstruction::truth_solve(), update(), libMesh::Nemesis_IO_Helper::write_element_values(), and libMesh::Nemesis_IO_Helper::write_nodal_solution().
int libMesh::System::extra_quadrature_order |
A member int that can be employed to indicate increased or reduced quadrature order.
Definition at line 1558 of file system.h.
Referenced by CurlCurlSystem::init_data(), and set_system_parameters().
|
private |
Do we want to apply constraints while projecting vectors ?
Definition at line 2253 of file system.h.
Referenced by get_project_with_constraints(), and set_project_with_constraints().
|
private |
Values of the quantities of interest.
This vector needs to be both resized and filled by the user before any quantity of interest assembly is done and before any sensitivities are calculated.
Definition at line 1611 of file system.h.
Referenced by libMesh::DifferentiableSystem::attach_qoi(), get_qoi_value(), get_qoi_values(), init_qois(), n_qois(), and set_qoi().
|
private |
Vector to hold error estimates for qois, either from a steady state calculation, or from a single unsteady solver timestep.
Used by the library after resizing to match the size of the qoi vector. User code can use this for accumulating error estimates for example.
Definition at line 1619 of file system.h.
Referenced by get_qoi_error_estimate_value(), init_qois(), n_qois(), and set_qoi_error_estimate().
std::unique_ptr<NumericVector<Number> > libMesh::System::solution |
Data structure to hold solution values.
Definition at line 1573 of file system.h.
Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::NewmarkSolver::advance_timestep(), libMesh::AdaptiveTimeSolver::advance_timestep(), libMesh::UnsteadySolver::advance_timestep(), libMesh::ContinuationSystem::apply_predictor(), HDGProblem::assemble(), libMesh::TransientRBConstruction::assemble_affine_expansion(), libMesh::FEMSystem::assembly(), libMesh::LinearImplicitSystem::assembly(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::RBConstruction::check_if_zero_truth_solve(), clear(), compare(), compute_enriched_soln(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::NewmarkSolver::compute_initial_accel(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), compute_stresses(), LinearElasticityWithContact::compute_stresses(), LinearElasticity::compute_stresses(), LargeDeformationElasticity::compute_stresses(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ContinuationSystem::continuation_solve(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::Nemesis_IO::copy_elemental_solution(), libMesh::GMVIO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::Nemesis_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), DMCreateGlobalVector_libMesh(), DMlibMeshFunction(), DMlibMeshJacobian(), libMesh::UnsteadySolver::du(), libMesh::RBConstruction::enrich_RB_space(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::AdjointResidualErrorEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::RBSCMConstruction::evaluate_stability_constant(), libMesh::EigenSystem::get_eigenpair(), libMesh::CondensedEigenSystem::get_eigenpair(), LinearElasticityWithContact::get_least_and_max_gap_function(), init_data(), libMesh::ContinuationSystem::initialize_tangent(), libMesh::TransientRBConstruction::initialize_truth(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), libMesh::RBConstruction::load_basis_function(), libMesh::TransientRBConstruction::load_rb_solution(), libMesh::RBConstruction::load_rb_solution(), main(), libMesh::DofMap::max_constraint_error(), libMesh::FEMSystem::mesh_position_get(), libMesh::ErrorVector::plot_error(), libMesh::RBConstruction::print_basis_function_orthogonality(), libMesh::RBEIMEvaluation::project_qp_data_map_onto_system(), libMesh::InterMeshProjection::project_system_vectors(), libMesh::ImplicitSystem::qoi_parameter_hessian(), libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), re_update(), read_legacy_data(), read_parallel_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), read_serialized_data(), reinit(), restrict_vectors(), libMesh::MemoryHistoryData::retrieve_vectors(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), libMesh::ContinuationSystem::save_current_solution(), libMesh::TransientRBConstruction::set_error_temporal_data(), setup(), WriteVecAndScalar::setupTests(), libMesh::TwostepTimeSolver::solve(), libMesh::NewtonSolver::solve(), libMesh::PetscDiffSolver::solve(), libMesh::FrequencySystem::solve(), libMesh::LinearImplicitSystem::solve(), libMesh::NonlinearImplicitSystem::solve(), libMesh::RBConstruction::solve_for_matrix_and_rhs(), libMesh::ContinuationSystem::solve_tangent(), libMesh::MemoryHistoryData::store_vectors(), ConstraintOperatorTest::test1DCoarseningOperator(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), SystemsTest::testBoundaryProjectCube(), SystemsTest::testDofCouplingWithVarGroups(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), SystemsTest::testPostInitAddVector(), SystemsTest::testProjectCubeWithMeshFunction(), MeshInputTest::testProjectionRegression(), WriteVecAndScalar::testSolution(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::DirectSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::BoundaryVolumeSolutionTransfer::transfer_boundary_volume(), libMesh::BoundaryVolumeSolutionTransfer::transfer_volume_boundary(), libMesh::TransientRBConstruction::truth_solve(), libMesh::RBConstruction::truth_solve(), update(), update_global_solution(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::ContinuationSystem::update_solution(), libMesh::NewmarkSystem::update_u_v_a(), libMesh::DTKAdapter::update_variable_values(), libMesh::RBEIMEvaluation::write_out_projected_basis_functions(), write_parallel_data(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), and write_serialized_data().
Real libMesh::System::time |
For time-dependent problems, this is the time t at the beginning of the current timestep.
Definition at line 1595 of file system.h.
Referenced by libMesh::AdaptiveTimeSolver::adjoint_advance_timestep(), libMesh::UnsteadySolver::adjoint_advance_timestep(), libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::AdaptiveTimeSolver::advance_timestep(), libMesh::UnsteadySolver::advance_timestep(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubProjector::construct_projection(), HeatSystem::element_qoi(), fill_dirichlet_bc(), libMesh::ExactErrorEstimator::find_squared_element_error(), initialize(), libMesh::Euler2Solver::integrate_adjoint_refinement_error_estimate(), libMesh::EulerSolver::integrate_adjoint_refinement_error_estimate(), libMesh::UnsteadySolver::integrate_adjoint_sensitivity(), libMesh::Euler2Solver::integrate_qoi_timestep(), libMesh::EulerSolver::integrate_qoi_timestep(), main(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectEdges::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectSides::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectInteriors::operator()(), reinit_constraints(), libMesh::UnsteadySolver::retrieve_timestep(), and libMesh::TwostepTimeSolver::solve().
bool libMesh::System::use_fixed_solution |
A boolean to be set to true by systems using elem_fixed_solution, for optional use by e.g.
stabilized methods. False by default.
Definition at line 1543 of file system.h.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::SteadySolver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::DifferentiableSystem::clear(), libMesh::DiffContext::DiffContext(), and libMesh::FEMContext::pre_fe_reinit().