libMesh
|
#include <heatsystem.h>
Public Types | |
typedef FEMSystem | sys_type |
The type of system. More... | |
typedef DifferentiableSystem | Parent |
The type of the parent. More... | |
typedef bool(TimeSolver::* | TimeSolverResPtr) (bool, DiffContext &) |
Syntax sugar to make numerical_jacobian() declaration easier. 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 | |
HeatSystem (EquationSystems &es, const std::string &name_in, const unsigned int number_in) | |
std::string & | fe_family () |
unsigned int & | fe_order () |
Real & | k () |
bool & | analytic_jacobians () |
void | perturb_accumulate_residuals (ParameterVector ¶meters) |
Number & | compute_final_sensitivity () |
void | set_tf (Real val) |
ParameterVector & | get_parameter_vector () |
Number & | get_QoI_value (unsigned int QoI_index) |
HeatSystem (EquationSystems &es, const std::string &name_in, const unsigned int number_in) | |
Real & | k () |
bool & | analytic_jacobians () |
HeatSystem (libMesh::EquationSystems &es, const std::string &name, const unsigned int number) | |
std::string & | fe_family () |
unsigned int & | fe_order () |
virtual void | assembly (bool get_residual, bool get_jacobian, bool apply_heterogeneous_constraints=false, bool apply_no_constraints=false) override |
Prepares matrix or rhs for matrix assembly. More... | |
virtual void | solve () override |
Invokes the solver associated with the system. More... | |
void | mesh_position_get () |
Tells the FEMSystem to set the degree of freedom coefficients which should correspond to mesh nodal coordinates. More... | |
void | mesh_position_set () |
Tells the FEMSystem to set the mesh nodal coordinates which should correspond to degree of freedom coefficients. More... | |
virtual std::unique_ptr< DiffContext > | build_context () override |
Builds a FEMContext object with enough information to do evaluations on each element. More... | |
virtual void | postprocess () override |
Runs a postprocessing loop over all elements, and if postprocess_sides is true over all sides. More... | |
virtual void | assemble_qoi (const QoISet &indices=QoISet()) override |
Runs a qoi assembly loop over all elements, and if assemble_qoi_sides is true over all sides. More... | |
virtual void | assemble_qoi_derivative (const QoISet &qoi_indices=QoISet(), bool include_liftfunc=true, bool apply_constraints=true) override |
Runs a qoi derivative assembly loop over all elements, and if assemble_qoi_sides is true over all sides. More... | |
Real | numerical_jacobian_h_for_var (unsigned int var_num) const |
If numerical_jacobian_h_for_var(var_num) is changed from its default value (numerical_jacobian_h), the FEMSystem will perturb solution vector entries for variable var_num by that amount when calculating finite differences with respect to that variable. More... | |
void | set_numerical_jacobian_h_for_var (unsigned int var_num, Real new_h) |
void | numerical_jacobian (TimeSolverResPtr res, FEMContext &context) const |
Uses the results of multiple res calls to numerically differentiate the corresponding jacobian. More... | |
void | numerical_elem_jacobian (FEMContext &context) const |
Uses the results of multiple element_residual() calls to numerically differentiate the corresponding jacobian on an element. More... | |
void | numerical_side_jacobian (FEMContext &context) const |
Uses the results of multiple side_residual() calls to numerically differentiate the corresponding jacobian on an element's side. More... | |
void | numerical_nonlocal_jacobian (FEMContext &context) const |
Uses the results of multiple side_residual() calls to numerically differentiate the corresponding jacobian on nonlocal DoFs. More... | |
virtual void | clear () override |
Clear all the data structures associated with the system. More... | |
virtual void | reinit () override |
Reinitializes the member data fields associated with the system, so that, e.g., assemble() may be used. More... | |
virtual void | assemble () override |
Prepares matrix and rhs for matrix assembly. More... | |
virtual LinearSolver< Number > * | get_linear_solver () const override |
virtual std::pair< unsigned int, Real > | get_linear_solve_parameters () const override |
virtual std::pair< unsigned int, Real > | adjoint_solve (const QoISet &qoi_indices=QoISet()) override |
This function sets the _is_adjoint boolean member of TimeSolver to true and then calls the adjoint_solve in implicit system. More... | |
virtual std::unique_ptr< DifferentiablePhysics > | clone_physics () override |
We don't allow systems to be attached to each other. More... | |
virtual std::unique_ptr< DifferentiableQoI > | clone () override |
We don't allow systems to be attached to each other. More... | |
const DifferentiablePhysics * | get_physics () const |
DifferentiablePhysics * | get_physics () |
void | attach_physics (DifferentiablePhysics *physics_in) |
Attach external Physics object. More... | |
void | swap_physics (DifferentiablePhysics *&swap_physics) |
Swap current physics object with external object. More... | |
void | push_physics (DifferentiablePhysics &new_physics) |
Push a clone of a new physics object onto our stack, overriding the current physics until the new physics is popped off again (or until something else is pushed on top of it). More... | |
void | pop_physics () |
Pop a physics object off of our stack. More... | |
const DifferentiableQoI * | get_qoi () const |
DifferentiableQoI * | get_qoi () |
void | attach_qoi (DifferentiableQoI *qoi_in) |
Attach external QoI object. More... | |
void | set_time_solver (std::unique_ptr< TimeSolver > _time_solver) |
Sets the time_solver FIXME: This code is a little dangerous as it transfers ownership from the TimeSolver creator to this class. More... | |
TimeSolver & | get_time_solver () |
const TimeSolver & | get_time_solver () const |
Non-const version of the above. More... | |
virtual void | element_postprocess (DiffContext &) |
Does any work that needs to be done on elem in a postprocessing loop. More... | |
virtual void | side_postprocess (DiffContext &) |
Does any work that needs to be done on side of elem in a postprocessing loop. More... | |
unsigned int | get_second_order_dot_var (unsigned int var) const |
For a given second order (in time) variable var, this method will return the index to the corresponding "dot" variable. More... | |
bool | have_first_order_scalar_vars () const |
Check for any first order vars that are also belong to FEFamily::SCALAR. More... | |
bool | have_second_order_scalar_vars () const |
Check for any second order vars that are also belong to FEFamily::SCALAR. More... | |
virtual void | set_constrain_in_solver (bool enable) |
set_constrain_in_solver to false to apply constraints only via residual terms in the systems to be solved. More... | |
virtual bool | get_constrain_in_solver () |
sys_type & | system () |
virtual void | disable_cache () override |
Avoids use of any cached data that might affect any solve result. More... | |
virtual std::string | system_type () const override |
virtual void | release_linear_solver (LinearSolver< Number > *) const |
Currently a no-op. More... | |
virtual void | assemble_residual_derivatives (const ParameterVector ¶meters) override |
Residual parameter derivative function. More... | |
virtual std::pair< unsigned int, Real > | sensitivity_solve (const ParameterVector ¶meters) override |
Assembles & solves the linear system(s) (dR/du)*u_p = -dR/dp, for those parameters contained within parameters . More... | |
virtual std::pair< unsigned int, Real > | weighted_sensitivity_solve (const ParameterVector ¶meters, const ParameterVector &weights) override |
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 > | weighted_sensitivity_adjoint_solve (const ParameterVector ¶meters, const ParameterVector &weights, const QoISet &qoi_indices=QoISet()) override |
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... | |
virtual void | adjoint_qoi_parameter_sensitivity (const QoISet &qoi_indices, const ParameterVector ¶meters, SensitivityData &sensitivities) override |
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 | forward_qoi_parameter_sensitivity (const QoISet &qoi_indices, const ParameterVector ¶meters, SensitivityData &sensitivities) override |
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 | qoi_parameter_hessian (const QoISet &qoi_indices, const ParameterVector ¶meters, SensitivityData &hessian) override |
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) override |
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... | |
const SparseMatrix< Number > & | get_system_matrix () const |
SparseMatrix< Number > & | get_system_matrix () |
void | init () |
Initializes degrees of freedom 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 | 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... | |
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 bool | compare (const System &other_system, const Real threshold, const bool verbose) const |
const std::string & | name () 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... | |
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) |
void | set_qoi (std::vector< Number > new_qoi) |
Number | get_qoi_value (unsigned int qoi_index) const |
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 |
virtual void | clear_physics () |
Clear any data structures associated with the physics. More... | |
virtual void | init_physics (const System &sys) |
Initialize any data structures associated with the physics. More... | |
virtual bool | element_constraint (bool request_jacobian, DiffContext &) |
Adds the constraint contribution on elem to elem_residual. More... | |
virtual bool | side_time_derivative (bool request_jacobian, DiffContext &) |
Adds the time derivative contribution on side of elem to elem_residual. More... | |
virtual bool | side_constraint (bool request_jacobian, DiffContext &) |
Adds the constraint contribution on side of elem to elem_residual. More... | |
virtual bool | nonlocal_time_derivative (bool request_jacobian, DiffContext &) |
Adds any nonlocal time derivative contributions (e.g. More... | |
virtual bool | nonlocal_constraint (bool request_jacobian, DiffContext &) |
Adds any nonlocal constraint contributions (e.g. More... | |
virtual void | time_evolving (unsigned int var, unsigned int order) |
Tells the DiffSystem that variable var is evolving with respect to time. More... | |
bool | is_time_evolving (unsigned int var) const |
virtual bool | eulerian_residual (bool request_jacobian, DiffContext &) |
Adds a pseudo-convection contribution on elem to elem_residual, if the nodes of elem are being translated by a moving mesh. More... | |
virtual bool | eulerian_residual (bool request_jacobian, DiffContext &context) override |
Adds a pseudo-convection contribution on elem to elem_residual, if the nodes of elem are being translated by a moving mesh. More... | |
virtual bool | mass_residual (bool request_jacobian, DiffContext &) |
Subtracts a mass vector contribution on elem from elem_residual. More... | |
virtual bool | mass_residual (bool request_jacobian, DiffContext &) override |
Subtracts a mass vector contribution on elem from elem_residual. More... | |
virtual bool | side_mass_residual (bool request_jacobian, DiffContext &) |
Subtracts a mass vector contribution on side of elem from elem_residual. More... | |
virtual bool | nonlocal_mass_residual (bool request_jacobian, DiffContext &c) |
Subtracts any nonlocal mass vector contributions (e.g. More... | |
virtual bool | damping_residual (bool request_jacobian, DiffContext &) |
Subtracts a damping vector contribution on elem from elem_residual. More... | |
virtual bool | side_damping_residual (bool request_jacobian, DiffContext &) |
Subtracts a damping vector contribution on side of elem from elem_residual. More... | |
virtual bool | nonlocal_damping_residual (bool request_jacobian, DiffContext &) |
Subtracts any nonlocal damping vector contributions (e.g. More... | |
virtual void | set_mesh_system (System *sys) |
Tells the DifferentiablePhysics that system sys contains the isoparametric Lagrangian variables which correspond to the coordinates of mesh nodes, in problems where the mesh itself is expected to move in time. More... | |
const System * | get_mesh_system () const |
System * | get_mesh_system () |
virtual void | set_mesh_x_var (unsigned int var) |
Tells the DifferentiablePhysics that variable var from the mesh system should be used to update the x coordinate of mesh nodes, in problems where the mesh itself is expected to move in time. More... | |
unsigned int | get_mesh_x_var () const |
virtual void | set_mesh_y_var (unsigned int var) |
Tells the DifferentiablePhysics that variable var from the mesh system should be used to update the y coordinate of mesh nodes. More... | |
unsigned int | get_mesh_y_var () const |
virtual void | set_mesh_z_var (unsigned int var) |
Tells the DifferentiablePhysics that variable var from the mesh system should be used to update the z coordinate of mesh nodes. More... | |
unsigned int | get_mesh_z_var () const |
bool | _eulerian_time_deriv (bool request_jacobian, DiffContext &) |
This method simply combines element_time_derivative() and eulerian_residual(), which makes its address useful as a pointer-to-member-function when refactoring. More... | |
bool | have_first_order_vars () const |
const std::set< unsigned int > & | get_first_order_vars () const |
bool | is_first_order_var (unsigned int var) const |
bool | have_second_order_vars () const |
const std::set< unsigned int > & | get_second_order_vars () const |
bool | is_second_order_var (unsigned int var) const |
virtual void | init_qoi (std::vector< Number > &) |
Initialize system qoi. More... | |
void | init_qoi (std::vector< Number > &) |
Non-virtual, to try to help deprecated user code catch this change at compile time (if they specified override) More... | |
virtual void | init_qoi_count (System &) |
Initialize system qoi. More... | |
virtual void | clear_qoi () |
Clear all the data structures associated with the QoI. More... | |
virtual void | side_qoi (DiffContext &, const QoISet &) |
Does any work that needs to be done on side of elem in a quantity of interest assembly loop, outputting to elem_qoi. More... | |
virtual void | side_qoi_derivative (DiffContext &, const QoISet &) |
Does any work that needs to be done on side of elem in a quantity of interest derivative assembly loop, outputting to elem_qoi_derivative. More... | |
virtual void | thread_join (std::vector< Number > &qoi, const std::vector< Number > &other_qoi, const QoISet &qoi_indices) |
Method to combine thread-local qois. More... | |
virtual void | parallel_op (const Parallel::Communicator &communicator, std::vector< Number > &sys_qoi, std::vector< Number > &local_qoi, const QoISet &qoi_indices) |
Method to populate system qoi data structure with process-local qoi. More... | |
virtual void | finalize_derivative (NumericVector< Number > &derivatives, std::size_t qoi_index) |
Method to finalize qoi derivatives which require more than just a simple sum of element contributions. More... | |
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 | |
std::vector< Real > | QoI_time_instant |
bool | fe_reinit_during_postprocess |
If fe_reinit_during_postprocess is true (it is true by default), FE objects will be reinit()ed with their default quadrature rules. More... | |
Real | numerical_jacobian_h |
If calculating numeric jacobians is required, the FEMSystem will perturb each solution vector entry by numerical_jacobian_h when calculating finite differences. More... | |
Real | verify_analytic_jacobians |
If verify_analytic_jacobian is equal to zero (as it is by default), no numeric jacobians will be calculated unless an overridden element_time_derivative(), element_constraint(), side_time_derivative(), or side_constraint() function cannot provide an analytic jacobian upon request. More... | |
std::unique_ptr< TimeSolver > | time_solver |
A pointer to the solver object we're going to use. More... | |
Real | deltat |
For time-dependent problems, this is the amount delta t to advance the solution in time. More... | |
bool | postprocess_sides |
If postprocess_sides is true (it is false by default), the postprocessing loop will loop over all sides as well as all elements. More... | |
bool | print_solution_norms |
Set print_residual_norms to true to print |U| whenever it is used in an assembly() call. More... | |
bool | print_solutions |
Set print_solutions to true to print U whenever it is used in an assembly() call. More... | |
bool | print_residual_norms |
Set print_residual_norms to true to print |F| whenever it is assembled. More... | |
bool | print_residuals |
Set print_residuals to true to print F whenever it is assembled. More... | |
bool | print_jacobian_norms |
Set print_jacobian_norms to true to print |J| whenever it is assembled. More... | |
bool | print_jacobians |
Set print_jacobians to true to print J whenever it is assembled. More... | |
bool | print_element_solutions |
Set print_element_solutions to true to print each U_elem input. More... | |
bool | print_element_residuals |
Set print_element_residuals to true to print each R_elem contribution. More... | |
bool | print_element_jacobians |
Set print_element_jacobians to true to print each J_elem contribution. More... | |
SparseMatrix< Number > * | matrix |
The system matrix. More... | |
bool | zero_out_matrix_and_rhs |
By default, the system will zero out the matrix and the right hand side. More... | |
std::unique_ptr< LinearSolver< Number > > | linear_solver |
This class handles all the details of interfacing with various linear algebra packages like PETSc or LASPACK. More... | |
NumericVector< Number > * | rhs |
The system matrix. More... | |
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... | |
bool | compute_internal_sides |
compute_internal_sides is false by default, indicating that side_* computations will only be done on boundary sides. More... | |
bool | assemble_qoi_sides |
If assemble_qoi_sides is true (it is false by default), the assembly loop for a quantity of interest or its derivatives will loop over domain boundary sides. More... | |
bool | assemble_qoi_internal_sides |
If assemble_qoi_internal_sides is true (it is false by default), the assembly loop for a quantity of interest or its derivatives will loop over element sides which do not fall on domain boundaries. More... | |
bool | assemble_qoi_elements |
If assemble_qoi_elements is false (it is true by default), the assembly loop for a quantity of interest or its derivatives will skip computing on mesh elements, and will only compute on mesh sides. 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 member data fields associated with the system, so that, e.g., assemble() may be used. More... | |
virtual void | init_context (DiffContext &context) |
virtual bool | element_time_derivative (bool request_jacobian, DiffContext &context) |
Adds the time derivative contribution on elem to elem_residual. More... | |
virtual void | element_qoi_derivative (DiffContext &context, const QoISet &) |
Does any work that needs to be done on elem in a quantity of interest derivative assembly loop, outputting to elem_qoi_derivative. More... | |
virtual void | init_data () |
Initializes the member data fields associated with the system, so that, e.g., assemble() may be used. More... | |
virtual void | init_context (DiffContext &context) |
virtual bool | element_time_derivative (bool request_jacobian, DiffContext &context) |
Adds the time derivative contribution on elem to elem_residual. More... | |
virtual void | element_qoi (DiffContext &context, const QoISet &qois) |
Does any work that needs to be done on elem in a quantity of interest assembly loop, outputting to elem_qoi. More... | |
virtual void | element_qoi_derivative (DiffContext &context, const QoISet &) |
Does any work that needs to be done on elem in a quantity of interest derivative assembly loop, outputting to elem_qoi_derivative. More... | |
virtual void | init_data () |
Initializes the member data fields associated with the system, so that, e.g., assemble() may be used. More... | |
virtual void | init_context (libMesh::DiffContext &context) |
virtual bool | element_time_derivative (bool request_jacobian, libMesh::DiffContext &context) |
Adds the time derivative contribution on elem to elem_residual. More... | |
void | add_second_order_dot_vars () |
Helper function to add "velocity" variables that are cousins to second order-in-time variables in the DifferentiableSystem. More... | |
void | add_dot_var_dirichlet_bcs (unsigned int var_idx, unsigned int dot_var_idx) |
Helper function to and Dirichlet boundary conditions to "dot" variable cousins of second order variables in the system. More... | |
virtual void | add_matrices () override |
Adds the system matrix. More... | |
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... | |
virtual void | init_matrices () |
Initializes the matrices associated with this system. More... | |
bool | can_add_matrices () const |
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 | |
std::vector< Number > | parameters |
ParameterVector | parameter_vector |
Real | _k |
Real | tf |
Number | computed_QoI [1] |
std::string | _fe_family |
unsigned int | _fe_order |
unsigned int | T_var |
bool | _analytic_jacobians |
std::vector< Number > | R_plus_dp |
std::vector< Number > | R_minus_dp |
std::vector< Number > | deltat_vector |
Number | dp |
Number | final_sensitivity |
bool | _averaged_model |
libMesh::Real | _k [4] |
bool | _constrain_in_solver |
_constrain_in_solver defaults to true; if false then we apply constraints only via residual terms in the systems to be solved. More... | |
const Parallel::Communicator & | _communicator |
System * | _mesh_sys |
System from which to acquire moving mesh information. More... | |
unsigned int | _mesh_x_var |
Variables from which to acquire moving mesh information. More... | |
unsigned int | _mesh_y_var |
unsigned int | _mesh_z_var |
std::vector< unsigned int > | _time_evolving |
Stores unsigned int to tell us which variables are evolving as first order in time (1), second order in time (2), or are not time evolving (0). More... | |
std::set< unsigned int > | _first_order_vars |
Variable indices for those variables that are first order in time. More... | |
std::set< unsigned int > | _second_order_vars |
Variable indices for those variables that are second order in time. More... | |
std::map< unsigned int, unsigned int > | _second_order_dot_vars |
If the user adds any second order variables, then we need to also cache the map to their corresponding dot variable that will be added by this TimeSolver class. More... | |
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... | |
Definition at line 31 of file heatsystem.h.
|
inherited |
|
inherited |
|
protectedinherited |
Data structure to log the information.
The log is identified by the class name.
Definition at line 119 of file reference_counter.h.
|
inherited |
|
inherited |
|
inherited |
The type of the parent.
Definition at line 85 of file fem_system.h.
|
inherited |
The type of system.
Definition at line 80 of file fem_system.h.
|
inherited |
Syntax sugar to make numerical_jacobian() declaration easier.
Definition at line 220 of file fem_system.h.
|
inherited |
|
inherited |
|
inline |
Definition at line 35 of file heatsystem.h.
|
inline |
Definition at line 33 of file heatsystem.h.
|
inline |
Definition at line 10 of file heatsystem.h.
References _k, libMesh::pi, libMesh::Real, and std::sqrt().
|
inherited |
This method simply combines element_time_derivative() and eulerian_residual(), which makes its address useful as a pointer-to-member-function when refactoring.
Definition at line 96 of file diff_physics.C.
References libMesh::DifferentiablePhysics::element_time_derivative(), and libMesh::DifferentiablePhysics::eulerian_residual().
Referenced by libMesh::EulerSolver::element_residual(), libMesh::Euler2Solver::element_residual(), and libMesh::NewmarkSolver::element_residual().
|
inlineinherited |
Activates the system.
Only active systems are solved.
Definition at line 2317 of file system.h.
References libMesh::System::_active.
|
inlineinherited |
true
if the system is active, false
otherwise. An active system will be solved. Definition at line 2309 of file system.h.
References libMesh::System::_active.
|
inherited |
Definition at line 1245 of file system.C.
References libMesh::System::add_vector().
Referenced by libMesh::ExplicitSystem::assemble_qoi_derivative(), and libMesh::FEMSystem::assemble_qoi_derivative().
|
inherited |
Definition at line 1181 of file system.C.
References libMesh::System::add_vector(), and libMesh::System::set_vector_as_adjoint().
Referenced by libMesh::ImplicitSystem::adjoint_solve().
|
protectedinherited |
Helper function to and Dirichlet boundary conditions to "dot" variable cousins of second order variables in the system.
The function takes the second order variable index, it's corresponding "dot" variable index and then searches for DirichletBoundary objects for var_idx and then adds a DirichletBoundary object for dot_var_idx using the same boundary ids and functors for the var_idx DirichletBoundary.
Definition at line 214 of file diff_system.C.
References libMesh::DofMap::add_dirichlet_boundary(), libMesh::DofMap::get_dirichlet_boundaries(), libMesh::System::get_dof_map(), and libMesh::libmesh_assert().
Referenced by libMesh::DifferentiableSystem::add_second_order_dot_vars().
|
overrideprotectedvirtualinherited |
Adds the system matrix.
Reimplemented from libMesh::System.
Definition at line 86 of file implicit_system.C.
References libMesh::System::add_matrices(), libMesh::System::add_matrix(), libMesh::libmesh_assert(), libMesh::ImplicitSystem::matrix, and libMesh::System::n_matrices().
|
inherited |
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 libMesh::System::_matrices, libMesh::System::_matrix_types, libMesh::ParallelObject::comm(), libMesh::default_solver_package(), libMesh::System::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().
|
inlineinherited |
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 libMesh::System::_matrices, libMesh::System::_matrix_types, and libMesh::System::late_matrix_init().
|
protectedinherited |
Helper function to add "velocity" variables that are cousins to second order-in-time variables in the DifferentiableSystem.
This function is only called if the TimeSolver is a FirstOrderUnsteadySolver.
Definition at line 182 of file diff_system.C.
References libMesh::DifferentiablePhysics::_second_order_dot_vars, libMesh::Variable::active_subdomains(), libMesh::DifferentiableSystem::add_dot_var_dirichlet_bcs(), libMesh::System::add_variable(), libMesh::DifferentiablePhysics::get_second_order_vars(), libMesh::Variable::name(), libMesh::DifferentiablePhysics::time_evolving(), libMesh::Variable::type(), and libMesh::System::variable().
Referenced by libMesh::DifferentiableSystem::init_data().
|
inherited |
Definition at line 1275 of file system.C.
References libMesh::System::add_vector().
Referenced by libMesh::ImplicitSystem::assemble_residual_derivatives().
|
inherited |
Definition at line 1130 of file system.C.
References libMesh::System::add_vector().
Referenced by libMesh::ImplicitSystem::sensitivity_solve().
|
inherited |
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 libMesh::System::_variable_groups, libMesh::System::_variable_numbers, libMesh::System::_variables, libMesh::Variable::active_subdomains(), libMesh::System::add_variables(), libMesh::ParallelObject::comm(), libMesh::System::identify_variable_groups(), libMesh::Variable::implicitly_active(), libMesh::System::is_initialized(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::System::n_variable_groups(), libMesh::System::n_vars(), libMesh::System::variable(), libMesh::System::variable_name(), and libMesh::System::variable_type().
Referenced by libMesh::DifferentiableSystem::add_second_order_dot_vars(), libMesh::System::add_variable(), assemble_and_solve(), OverlappingTestBase::init(), SolidSystem::init_data(), CurlCurlSystem::init_data(), SimpleEIMConstruction::init_data(), init_data(), SimpleRBConstruction::init_data(), main(), libMesh::ErrorVector::plot_error(), libMesh::System::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(), 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().
|
inherited |
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 libMesh::System::add_variable().
|
inherited |
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 libMesh::System::_variable_groups, libMesh::System::_variable_numbers, libMesh::System::_variables, libMesh::ParallelObject::comm(), libMesh::System::identify_variable_groups(), libMesh::System::is_initialized(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::System::n_components(), libMesh::System::n_variable_groups(), libMesh::System::n_vars(), libMesh::System::variable_name(), and libMesh::System::variable_type().
Referenced by libMesh::System::add_variable(), libMesh::System::add_variables(), and SystemsTest::test100KVariables().
|
inherited |
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 libMesh::System::add_variables().
|
inherited |
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 libMesh::System::_dof_map, libMesh::System::_is_initialized, libMesh::System::_vector_is_adjoint, libMesh::System::_vector_projections, libMesh::System::_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(), libMesh::System::n_dofs(), libMesh::System::n_local_dofs(), libMesh::ParallelObject::n_processors(), libMesh::PARALLEL, libMesh::SERIAL, libMesh::NumericVector< T >::swap(), and libMesh::NumericVector< T >::type().
Referenced by libMesh::System::add_adjoint_rhs(), libMesh::System::add_adjoint_solution(), libMesh::System::add_sensitivity_rhs(), libMesh::System::add_sensitivity_solution(), libMesh::ExplicitSystem::add_system_rhs(), libMesh::System::add_weighted_sensitivity_adjoint_solution(), libMesh::System::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(), libMesh::System::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().
|
inherited |
Definition at line 1213 of file system.C.
References libMesh::System::add_vector(), and libMesh::System::set_vector_as_adjoint().
Referenced by libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve().
|
inherited |
Definition at line 1160 of file system.C.
References libMesh::System::add_vector().
Referenced by libMesh::ImplicitSystem::weighted_sensitivity_solve().
|
overridevirtualinherited |
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].
Uses adjoint_solve() and the adjoint sensitivity method.
Currently uses finite differenced derivatives (partial q / partial p) and (partial R / partial p).
Reimplemented from libMesh::System.
Definition at line 490 of file implicit_system.C.
References std::abs(), libMesh::ImplicitSystem::adjoint_solve(), libMesh::SensitivityData::allocate_data(), libMesh::ExplicitSystem::assemble_qoi(), libMesh::ImplicitSystem::assemble_residual_derivatives(), libMesh::NumericVector< T >::dot(), libMesh::System::get_qoi_values(), libMesh::System::get_sensitivity_rhs(), libMesh::QoISet::has_index(), libMesh::System::is_adjoint_already_solved(), libMesh::System::n_qois(), libMesh::Real, libMesh::ParameterVector::size(), and libMesh::TOLERANCE.
Referenced by libMesh::UnsteadySolver::integrate_adjoint_sensitivity(), and main().
|
overridevirtualinherited |
This function sets the _is_adjoint boolean member of TimeSolver to true and then calls the adjoint_solve in implicit system.
Reimplemented from libMesh::ImplicitSystem.
Definition at line 150 of file diff_system.C.
References libMesh::DifferentiableSystem::get_time_solver(), libMesh::TimeSolver::set_is_adjoint(), and libMesh::DifferentiableSystem::time_solver.
Referenced by main().
|
inline |
Definition at line 44 of file heatsystem.h.
|
inline |
|
overridevirtualinherited |
Prepares matrix
and rhs
for matrix assembly.
Users should not reimplement this. Note that in some cases only current_local_solution is used during assembly, and, therefore, if solution has been altered without update() being called, then the user must call update() before calling this function.
Reimplemented from libMesh::ImplicitSystem.
Definition at line 131 of file diff_system.C.
References libMesh::DifferentiableSystem::assembly().
Runs a qoi assembly loop over all elements, and if assemble_qoi_sides
is true over all sides.
Users may have to override this function if they have any quantities of interest that are not expressible as a sum of element qois.
Reimplemented from libMesh::ExplicitSystem.
Definition at line 1147 of file fem_system.C.
References libMesh::ParallelObject::comm(), libMesh::System::get_mesh(), libMesh::DifferentiableSystem::get_qoi(), libMesh::System::get_qoi_values(), libMesh::QoISet::has_index(), mesh, libMesh::System::n_qois(), libMesh::DifferentiableQoI::parallel_op(), libMesh::Threads::parallel_reduce(), libMesh::StoredRange< iterator_type, object_type >::reset(), libMesh::System::set_qoi(), and libMesh::System::update().
|
overridevirtualinherited |
Runs a qoi derivative assembly loop over all elements, and if assemble_qoi_sides
is true over all sides.
Users may have to override this function for quantities of interest that are not expressible as a sum of element qois.
Reimplemented from libMesh::ExplicitSystem.
Definition at line 1179 of file fem_system.C.
References libMesh::System::add_adjoint_rhs(), libMesh::DifferentiableQoI::finalize_derivative(), libMesh::System::get_adjoint_rhs(), libMesh::System::get_mesh(), libMesh::DifferentiableSystem::get_qoi(), libMesh::QoISet::has_index(), libMesh::make_range(), mesh, libMesh::System::n_qois(), libMesh::Threads::parallel_for(), libMesh::StoredRange< iterator_type, object_type >::reset(), libMesh::System::update(), and libMesh::NumericVector< T >::zero().
|
overridevirtualinherited |
Residual parameter derivative function.
Uses finite differences by default.
This will assemble the sensitivity rhs vectors to hold -(partial R / partial p_i), making them ready to solve the forward sensitivity equation.
Can be overridden in derived classes.
Reimplemented from libMesh::System.
Definition at line 447 of file implicit_system.C.
References std::abs(), libMesh::System::add_sensitivity_rhs(), libMesh::ImplicitSystem::assembly(), libMesh::NumericVector< T >::close(), libMesh::Real, libMesh::ExplicitSystem::rhs, libMesh::ParameterVector::size(), and libMesh::TOLERANCE.
Referenced by libMesh::ImplicitSystem::adjoint_qoi_parameter_sensitivity(), and libMesh::ImplicitSystem::sensitivity_solve().
|
overridevirtualinherited |
Prepares matrix
or rhs
for matrix assembly.
Users may reimplement this to add pre- or post-assembly code before or after calling FEMSystem::assembly(). Note that in some cases only current_local_solution is used during assembly, and, therefore, if solution has been altered without update() being called, then the user must call update() before calling this function.
Implements libMesh::DifferentiableSystem.
Definition at line 880 of file fem_system.C.
References libMesh::DenseMatrix< T >::add(), libMesh::FEMSystem::build_context(), libMesh::NumericVector< T >::close(), libMesh::SparseMatrix< T >::close(), libMesh::err, libMesh::FEType::family, libMesh::DiffContext::get_elem_jacobian(), libMesh::DiffContext::get_elem_residual(), libMesh::System::get_mesh(), libMesh::FEMSystem::init_context(), libMesh::NumericVector< T >::l1_norm(), libMesh::DenseMatrix< T >::l1_norm(), libMesh::SparseMatrix< T >::l1_norm(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::ImplicitSystem::matrix, mesh, libMesh::ParallelObject::n_processors(), libMesh::System::n_variable_groups(), libMesh::FEMSystem::numerical_nonlocal_jacobian(), libMesh::out, libMesh::Threads::parallel_for(), libMesh::FEMContext::pre_fe_reinit(), libMesh::BasicOStreamProxy< charT, traits >::precision(), libMesh::DifferentiableSystem::print_jacobian_norms, libMesh::DifferentiableSystem::print_jacobians, libMesh::DifferentiableSystem::print_residual_norms, libMesh::DifferentiableSystem::print_residuals, libMesh::DifferentiableSystem::print_solution_norms, libMesh::DifferentiableSystem::print_solutions, libMesh::ParallelObject::processor_id(), libMesh::Real, libMesh::StoredRange< iterator_type, object_type >::reset(), libMesh::ExplicitSystem::rhs, libMesh::SCALAR, libMesh::DenseVector< T >::size(), libMesh::System::solution, libMesh::DifferentiableSystem::time_solver, libMesh::Variable::type(), libMesh::System::variable_group(), libMesh::FEMSystem::verify_analytic_jacobians, libMesh::DenseMatrix< T >::zero(), libMesh::NumericVector< T >::zero(), and libMesh::SparseMatrix< T >::zero().
Referenced by libMesh::ContinuationSystem::continuation_solve(), perturb_accumulate_residuals(), and libMesh::ContinuationSystem::solve_tangent().
|
inherited |
Register a user function to use in assembling the system matrix and RHS.
Definition at line 2109 of file system.C.
References libMesh::System::_assemble_system_function, libMesh::System::_assemble_system_object, fptr(), and libMesh::libmesh_assert().
Referenced by assemble_and_solve(), main(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), SystemsTest::testAssemblyWithDgFemContext(), SystemsTest::testDofCouplingWithVarGroups(), and PeriodicBCTest::testPeriodicBC().
|
inherited |
Register a user object to use in assembling the system matrix and RHS.
Definition at line 2126 of file system.C.
References libMesh::System::_assemble_system_function, and libMesh::System::_assemble_system_object.
Referenced by main().
|
inherited |
Register a user function for imposing constraints.
Definition at line 2140 of file system.C.
References libMesh::System::_constrain_system_function, libMesh::System::_constrain_system_object, fptr(), and libMesh::libmesh_assert().
|
inherited |
Register a user object for imposing constraints.
Definition at line 2157 of file system.C.
References libMesh::System::_constrain_system_function, and libMesh::System::_constrain_system_object.
Referenced by DofMapTest::testConstraintLoopDetection().
|
inherited |
Register a user function to use in initializing the system.
Definition at line 2078 of file system.C.
References libMesh::System::_init_system_function, libMesh::System::_init_system_object, fptr(), and libMesh::libmesh_assert().
Referenced by main().
|
inherited |
Register a user class to use to initialize the system.
attach_init_function
. Definition at line 2095 of file system.C.
References libMesh::System::_init_system_function, and libMesh::System::_init_system_object.
|
inlineinherited |
Attach external Physics object.
Definition at line 200 of file diff_system.h.
References libMesh::DifferentiableSystem::_diff_physics, and libMesh::DifferentiablePhysics::clone_physics().
|
inherited |
Attach external QoI object.
Definition at line 279 of file diff_system.C.
References libMesh::DifferentiableSystem::_diff_qoi, libMesh::DifferentiableQoI::clone(), libMesh::libmesh_assert(), and libMesh::System::qoi.
Referenced by main().
|
inherited |
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 libMesh::System::_qoi_evaluate_derivative_function, libMesh::System::_qoi_evaluate_derivative_object, fptr(), and libMesh::libmesh_assert().
|
inherited |
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 libMesh::System::_qoi_evaluate_derivative_function, and libMesh::System::_qoi_evaluate_derivative_object.
|
inherited |
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 libMesh::System::_qoi_evaluate_function, libMesh::System::_qoi_evaluate_object, fptr(), and libMesh::libmesh_assert().
|
inherited |
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 libMesh::System::_qoi_evaluate_function, and libMesh::System::_qoi_evaluate_object.
|
inherited |
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 1244 of file system_projection.C.
Referenced by SystemsTest::testBoundaryProjectCube().
|
inherited |
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 1227 of file system_projection.C.
References fptr(), and gptr().
|
inherited |
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 1280 of file system_projection.C.
References libMesh::NumericVector< T >::close(), libMesh::libmesh_ignore(), and libMesh::Threads::parallel_for().
|
inherited |
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 1262 of file system_projection.C.
References fptr(), and gptr().
|
overridevirtualinherited |
Builds a FEMContext object with enough information to do evaluations on each element.
For most problems, the default FEMSystem implementation is correct; users who subclass FEMContext will need to also reimplement this method to build it.
Reimplemented from libMesh::DifferentiableSystem.
Definition at line 1346 of file fem_system.C.
References libMesh::DifferentiableSystem::deltat, libMesh::DifferentiablePhysics::get_mesh_system(), libMesh::DifferentiablePhysics::get_mesh_x_var(), libMesh::DifferentiablePhysics::get_mesh_y_var(), libMesh::DifferentiablePhysics::get_mesh_z_var(), libMesh::DifferentiableSystem::get_physics(), libMesh::DifferentiableSystem::get_time_solver(), libMesh::TimeSolver::is_adjoint(), libMesh::DiffContext::is_adjoint(), libMesh::libmesh_assert(), libMesh::DiffContext::set_deltat_pointer(), libMesh::FEMContext::set_mesh_system(), libMesh::FEMContext::set_mesh_x_var(), libMesh::FEMContext::set_mesh_y_var(), and libMesh::FEMContext::set_mesh_z_var().
Referenced by libMesh::FEMSystem::assembly(), libMesh::FEMSystem::mesh_position_get(), and libMesh::FEMSystem::mesh_position_set().
|
inherited |
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, libMesh::System::discrete_var_norm(), libMesh::L2, libMesh::System::n_vars(), and libMesh::Real.
Referenced by libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::AdaptiveTimeSolver::calculate_norm(), libMesh::UnsteadySolver::du(), main(), output_norms(), and MeshInputTest::testProjectionRegression().
|
inherited |
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 libMesh::System::_dof_map, libMesh::System::_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, libMesh::System::discrete_var_norm(), libMesh::DofMap::dof_indices(), libMesh::MeshBase::elem_dimensions(), libMesh::Utility::enum_to_string(), libMesh::FEInterface::field_type(), libMesh::System::get_dof_map(), libMesh::System::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(), libMesh::System::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().
|
inlineprotectedinherited |
Definition at line 1914 of file system.h.
References libMesh::System::_matrices_initialized.
Referenced by libMesh::EigenSystem::set_eigenproblem_type().
|
overridevirtualinherited |
Clear all the data structures associated with the system.
Reimplemented from libMesh::ImplicitSystem.
Reimplemented in libMesh::ContinuationSystem.
Definition at line 64 of file diff_system.C.
References libMesh::DifferentiableSystem::_diff_physics, libMesh::DifferentiableSystem::_diff_qoi, libMesh::DifferentiablePhysics::clear_physics(), libMesh::DifferentiableQoI::clear_qoi(), and libMesh::System::use_fixed_solution.
Referenced by libMesh::ContinuationSystem::clear().
|
virtualinherited |
Clear any data structures associated with the physics.
Definition at line 28 of file diff_physics.C.
References libMesh::DifferentiablePhysics::_time_evolving.
Referenced by libMesh::DifferentiableSystem::clear().
|
inlinevirtualinherited |
Clear all the data structures associated with the QoI.
Definition at line 91 of file diff_qoi.h.
Referenced by libMesh::DifferentiableSystem::clear().
|
inlineoverridevirtualinherited |
We don't allow systems to be attached to each other.
Implements libMesh::DifferentiableQoI.
Definition at line 168 of file diff_system.h.
Referenced by libMesh::AdjointRefinementEstimator::estimate_error().
|
inlineoverridevirtualinherited |
We don't allow systems to be attached to each other.
Implements libMesh::DifferentiablePhysics.
Definition at line 158 of file diff_system.h.
|
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(), libMesh::System::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::System::add_variable(), libMesh::System::add_variables(), libMesh::System::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(), libMesh::System::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(), libMesh::System::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(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::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(), libMesh::System::read_header(), libMesh::RBEIMEvaluation::read_in_interior_basis_functions(), libMesh::RBEIMEvaluation::read_in_node_basis_functions(), libMesh::RBEIMEvaluation::read_in_side_basis_functions(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::System::read_legacy_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), 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(), MeshInputTest::testExodusIGASidesets(), MeshTriangulationTest::testFoundCenters(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), PointLocatorTest::testPlanar(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), BoundaryInfoTest::testRenumber(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), 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(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::RBDataSerialization::RBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::TransientRBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::RBEIMEvaluationSerialization::write_to_file(), and libMesh::RBDataSerialization::RBSCMEvaluationSerialization::write_to_file().
|
virtualinherited |
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 libMesh::System::_is_initialized, libMesh::System::_sys_name, libMesh::System::_vectors, libMesh::System::get_vector(), libMesh::libmesh_assert(), libMesh::System::n_vectors(), libMesh::System::name(), libMesh::out, and libMesh::System::solution.
|
inline |
Definition at line 55 of file heatsystem.h.
|
inherited |
Definition at line 157 of file system.C.
References libMesh::System::_dof_map, and libMesh::System::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().
|
inlinevirtualinherited |
Subtracts a damping vector contribution on elem
from elem_residual.
This method is not used in first-order-in-time problems. For second-order-in-time problems, this is the \( C(u,\ddot{u})\ddot{u} \) term. This method is only called for UnsteadySolver-based TimeSolvers.
If this method receives request_jacobian = true, then it should compute elem_jacobian and return true if possible. If elem_jacobian has not been computed then the method should return false.
If the problem has no damping, the default "do-nothing" is correct. Otherwise, this must be reimplemented.
Reimplemented in SecondOrderScalarSystemFirstOrderTimeSolverBase, and SecondOrderScalarSystemSecondOrderTimeSolverBase.
Definition at line 360 of file diff_physics.h.
Referenced by libMesh::EulerSolver::element_residual(), libMesh::Euler2Solver::element_residual(), and libMesh::NewmarkSolver::element_residual().
|
inlineinherited |
Deactivates the system.
Only active systems are solved.
Definition at line 2325 of file system.h.
References libMesh::System::_active.
|
overridevirtualinherited |
Avoids use of any cached data that might affect any solve result.
Should be overridden in derived systems.
Reimplemented from libMesh::System.
Definition at line 105 of file implicit_system.C.
References libMesh::System::assemble_before_solve, libMesh::ImplicitSystem::get_linear_solver(), and libMesh::LinearSolver< T >::reuse_preconditioner().
Referenced by libMesh::DifferentiableSystem::pop_physics(), libMesh::DifferentiableSystem::push_physics(), and libMesh::DifferentiableSystem::swap_physics().
|
staticinherited |
Definition at line 100 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
|
inlinevirtualinherited |
Adds the constraint contribution on elem
to elem_residual.
If this method receives request_jacobian = true, then it should compute elem_jacobian and return true if possible. If elem_jacobian has not been computed then the method should return false.
Users may need to reimplement this for their particular PDE.
To implement the constraint 0 = G(u), the user should examine u = elem_solution and add (G(u), phi_i) to elem_residual in elem_constraint().
Reimplemented in CoupledSystem, and NavierSystem.
Definition at line 144 of file diff_physics.h.
Referenced by libMesh::EulerSolver::element_residual(), libMesh::SteadySolver::element_residual(), libMesh::Euler2Solver::element_residual(), libMesh::NewmarkSolver::element_residual(), and libMesh::EigenTimeSolver::element_residual().
|
inlinevirtualinherited |
Does any work that needs to be done on elem
in a postprocessing loop.
Reimplemented in LaplaceSystem, LaplaceSystem, and PoissonSystem.
Definition at line 299 of file diff_system.h.
|
protectedvirtual |
Does any work that needs to be done on elem
in a quantity of interest assembly loop, outputting to elem_qoi.
Only qois included in the supplied QoISet
need to be assembled.
Reimplemented from libMesh::DifferentiableQoI.
Definition at line 17 of file element_qoi.C.
References std::abs(), libMesh::FEMContext::get_element_fe(), libMesh::FEMContext::get_element_qrule(), libMesh::DiffContext::get_qois(), libMesh::DiffContext::get_system(), libMesh::FEMContext::interior_value(), libMesh::QBase::n_points(), libMesh::System::time, and libMesh::TOLERANCE.
|
protectedvirtual |
Does any work that needs to be done on elem
in a quantity of interest derivative assembly loop, outputting to elem_qoi_derivative.
Only qois included in the supplied QoISet
need their derivatives assembled.
Reimplemented from libMesh::DifferentiableQoI.
|
protectedvirtual |
Does any work that needs to be done on elem
in a quantity of interest derivative assembly loop, outputting to elem_qoi_derivative.
Only qois included in the supplied QoISet
need their derivatives assembled.
Reimplemented from libMesh::DifferentiableQoI.
Definition at line 36 of file element_qoi_derivative.C.
References libMesh::FEMContext::get_element_fe(), libMesh::FEMContext::get_element_qrule(), libMesh::DiffContext::get_qoi_derivatives(), libMesh::DiffContext::get_system(), libMesh::FEMContext::interior_values(), libMesh::DiffContext::n_dof_indices(), and libMesh::QBase::n_points().
|
protectedvirtual |
Adds the time derivative contribution on elem
to elem_residual.
If this method receives request_jacobian = true, then it should compute elem_jacobian and return true if possible. If elem_jacobian has not been computed then the method should return false.
Users need to reimplement this for their particular PDE.
To implement the physics model du/dt = F(u), the user should examine u = elem_solution and add (F(u), phi_i) to elem_residual in elem_time_derivative().
Reimplemented from libMesh::DifferentiablePhysics.
|
protectedvirtual |
Adds the time derivative contribution on elem
to elem_residual.
If this method receives request_jacobian = true, then it should compute elem_jacobian and return true if possible. If elem_jacobian has not been computed then the method should return false.
Users need to reimplement this for their particular PDE.
To implement the physics model du/dt = F(u), the user should examine u = elem_solution and add (F(u), phi_i) to elem_residual in elem_time_derivative().
Reimplemented from libMesh::DifferentiablePhysics.
Definition at line 112 of file heatsystem.C.
References _analytic_jacobians, compute_jacobian(), and parameters.
|
protectedvirtual |
Adds the time derivative contribution on elem
to elem_residual.
If this method receives request_jacobian = true, then it should compute elem_jacobian and return true if possible. If elem_jacobian has not been computed then the method should return false.
Users need to reimplement this for their particular PDE.
To implement the physics model du/dt = F(u), the user should examine u = elem_solution and add (F(u), phi_i) to elem_residual in elem_time_derivative().
Reimplemented from libMesh::DifferentiablePhysics.
Definition at line 78 of file heatsystem.C.
References dim, libMesh::Elem::dim(), libMesh::FEGenericBase< OutputType >::get_dphi(), libMesh::FEMContext::get_elem(), libMesh::DiffContext::get_elem_jacobian(), libMesh::DiffContext::get_elem_residual(), libMesh::DiffContext::get_elem_solution_derivative(), libMesh::FEMContext::get_element_fe(), libMesh::FEMContext::get_element_qrule(), libMesh::FEAbstract::get_JxW(), libMesh::System::get_mesh(), libMesh::FEGenericBase< OutputType >::get_phi(), libMesh::DiffContext::get_system(), libMesh::FEAbstract::get_xyz(), libMesh::FEMContext::interior_gradient(), libMesh::MeshBase::mesh_dimension(), libMesh::DiffContext::n_dof_indices(), libMesh::QBase::n_points(), and libMesh::pi.
|
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.
|
overridevirtualinherited |
Adds a pseudo-convection contribution on elem
to elem_residual, if the nodes of elem
are being translated by a moving mesh.
This function assumes that the user's time derivative equations (except for any equations involving unknown mesh xyz coordinates themselves) are expressed in an Eulerian frame of reference, and that the user is satisfied with an unstabilized convection term. Lagrangian equations will probably require overriding eulerian_residual() with a blank function; ALE or stabilized formulations will require reimplementing eulerian_residual() entirely.
Reimplemented from libMesh::DifferentiablePhysics.
Reimplemented in SolidSystem.
Definition at line 38 of file fem_physics.C.
References libMesh::DifferentiablePhysics::_mesh_sys, libMesh::DifferentiablePhysics::_mesh_x_var, libMesh::DifferentiablePhysics::_mesh_y_var, libMesh::DifferentiablePhysics::_mesh_z_var, libMesh::FEMContext::get_element_qrule(), libMesh::FEMContext::interior_gradient(), libMesh::invalid_uint, libMesh::DifferentiablePhysics::is_time_evolving(), libMesh::libmesh_assert(), libMesh::libmesh_real(), libMesh::make_range(), libMesh::DiffContext::n_vars(), and libMesh::UnsteadySolver::old_nonlinear_solution().
|
inlinevirtualinherited |
Adds a pseudo-convection contribution on elem
to elem_residual, if the nodes of elem
are being translated by a moving mesh.
The library provides a basic implementation in FEMPhysics::eulerian_residual()
Reimplemented in libMesh::FEMPhysics, and SolidSystem.
Definition at line 277 of file diff_physics.h.
Referenced by libMesh::DifferentiablePhysics::_eulerian_time_deriv().
|
inline |
|
inline |
|
inline |
|
inline |
|
virtualinherited |
Method to finalize qoi derivatives which require more than just a simple sum of element contributions.
Definition at line 53 of file diff_qoi.C.
Referenced by libMesh::FEMSystem::assemble_qoi_derivative().
|
overridevirtualinherited |
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].
Uses the forward sensitivity method.
Currently uses finite differenced derivatives (partial q / partial p) and (partial R / partial p).
Reimplemented from libMesh::System.
Definition at line 600 of file implicit_system.C.
References std::abs(), libMesh::SensitivityData::allocate_data(), libMesh::ExplicitSystem::assemble_qoi(), libMesh::ExplicitSystem::assemble_qoi_derivative(), libMesh::ImplicitSystem::assembly(), libMesh::NumericVector< T >::close(), libMesh::SparseMatrix< T >::close(), libMesh::NumericVector< T >::dot(), libMesh::System::get_adjoint_rhs(), libMesh::System::get_qoi_values(), libMesh::System::get_sensitivity_solution(), libMesh::QoISet::has_index(), libMesh::make_range(), libMesh::ImplicitSystem::matrix, libMesh::System::n_qois(), libMesh::Real, libMesh::ExplicitSystem::rhs, libMesh::ImplicitSystem::sensitivity_solve(), libMesh::ParameterVector::size(), and libMesh::TOLERANCE.
Referenced by main().
|
inherited |
Definition at line 1255 of file system.C.
References libMesh::System::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().
|
inherited |
Definition at line 1265 of file system.C.
References libMesh::System::get_vector().
|
inherited |
Definition at line 1193 of file system.C.
References libMesh::System::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(), 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().
|
inherited |
Definition at line 1203 of file system.C.
References libMesh::System::get_vector().
|
inherited |
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 libMesh::System::_variable_numbers, and libMesh::System::n_vars().
Referenced by MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), and SystemsTest::testProjectCubeWithMeshFunction().
|
inlinevirtualinherited |
Definition at line 387 of file diff_system.h.
References libMesh::DifferentiableSystem::_constrain_in_solver.
|
inherited |
Return the user object for imposing constraints.
Definition at line 2174 of file system.C.
References libMesh::System::_constrain_system_object.
|
inlineinherited |
_dof_map
. Definition at line 2293 of file system.h.
References libMesh::System::_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(), libMesh::System::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(), libMesh::System::get_info(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::SecondOrderUnsteadySolver::init_data(), libMesh::UnsteadySolver::init_data(), init_data(), SimpleRBConstruction::init_data(), LaplaceSystem::init_dirichlet_bcs(), libMesh::FEMContext::init_internal_data(), libMesh::EigenSystem::init_matrices(), libMesh::System::init_matrices(), libMesh::CondensedEigenSystem::initialize_condensed_dofs(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), LaplaceYoung::jacobian(), LargeDeformationElasticity::jacobian(), libMesh::System::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(), libMesh::System::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(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::FEMContext::pre_fe_reinit(), libMesh::InterMeshProjection::project_system_vectors(), libMesh::System::re_update(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::SecondOrderUnsteadySolver::reinit(), libMesh::UnsteadySolver::reinit(), libMesh::System::reinit(), libMesh::System::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(), libMesh::System::write_parallel_data(), libMesh::EnsightIO::write_scalar_ascii(), libMesh::System::write_SCALAR_dofs(), libMesh::EnsightIO::write_vector_ascii(), and libMesh::RBConstruction::zero_constrained_dofs_on_vector().
|
inlineinherited |
_dof_map
. Definition at line 2301 of file system.h.
References libMesh::System::_dof_map.
|
inlineinherited |
Definition at line 730 of file system.h.
References libMesh::System::_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(), 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(), libMesh::System::point_gradient(), libMesh::System::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().
|
inlineinherited |
Definition at line 735 of file system.h.
References libMesh::System::_equation_systems.
|
inlineinherited |
Definition at line 506 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_first_order_vars.
Referenced by libMesh::DifferentiableSystem::have_first_order_scalar_vars().
|
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().
|
inherited |
Definition at line 1988 of file system.C.
References libMesh::ParallelObject::comm(), libMesh::FEType::family, libMesh::System::get_dof_map(), libMesh::DofMap::get_info(), libMesh::FEType::inf_map, libMesh::make_range(), TIMPI::Communicator::max(), libMesh::System::n_constrained_dofs(), libMesh::System::n_dofs(), libMesh::System::n_local_constrained_dofs(), libMesh::System::n_local_dofs(), libMesh::System::n_matrices(), libMesh::System::n_variable_groups(), libMesh::VariableGroup::n_variables(), libMesh::System::n_vectors(), libMesh::VariableGroup::name(), libMesh::System::name(), libMesh::System::number(), libMesh::FEType::order, libMesh::FEType::radial_family, libMesh::FEType::radial_order, libMesh::System::system_type(), libMesh::Variable::type(), libMesh::DofMap::variable_group(), and libMesh::System::variable_group().
|
overridevirtualinherited |
Reimplemented from libMesh::ImplicitSystem.
Definition at line 172 of file diff_system.C.
References libMesh::libmesh_assert(), and libMesh::DifferentiableSystem::time_solver.
|
overridevirtualinherited |
Reimplemented from libMesh::ImplicitSystem.
Definition at line 163 of file diff_system.C.
References libMesh::libmesh_assert(), and libMesh::DifferentiableSystem::time_solver.
Referenced by adjust_linear_solvers(), and main().
|
inherited |
mat_name
. Definition at line 1073 of file system.C.
References libMesh::System::_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().
|
inherited |
mat_name
. Definition at line 1080 of file system.C.
References libMesh::System::_matrices.
|
inlineinherited |
_mesh
. Definition at line 2277 of file system.h.
References libMesh::System::_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(), libMesh::System::calculate_norm(), compute_jacobian(), compute_residual(), LinearElasticityWithContact::compute_stresses(), libMesh::RBEIMEvaluation::distribute_bfs(), DMCreateDomainDecomposition_libMesh(), DMCreateFieldDecomposition_libMesh(), DMlibMeshSetSystem_libMesh(), SolidSystem::element_time_derivative(), 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(), libMesh::System::init_data(), libMesh::System::init_matrices(), LinearElasticityWithContact::initialize_contact_load_paths(), libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::System::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(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::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(), libMesh::System::read_header(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::System::read_legacy_data(), libMesh::System::read_parallel_data(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::System::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(), libMesh::System::write_header(), libMesh::RBEvaluation::write_out_vectors(), libMesh::System::write_parallel_data(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), and libMesh::System::zero_variable().
|
inlineinherited |
_mesh
. Definition at line 2285 of file system.h.
References libMesh::System::_mesh.
|
inlineinherited |
Definition at line 613 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_mesh_sys.
Referenced by libMesh::FEMSystem::build_context().
|
inlineinherited |
Definition at line 619 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_mesh_sys.
|
inlineinherited |
Definition at line 625 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_mesh_x_var.
Referenced by libMesh::FEMSystem::build_context().
|
inlineinherited |
Definition at line 631 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_mesh_y_var.
Referenced by libMesh::FEMSystem::build_context().
|
inlineinherited |
Definition at line 637 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_mesh_z_var.
Referenced by libMesh::FEMSystem::build_context().
|
inline |
Definition at line 76 of file heatsystem.h.
References libMesh::ParameterVector::push_back().
Referenced by main().
|
inlineinherited |
this
. Definition at line 181 of file diff_system.h.
References libMesh::DifferentiableSystem::_diff_physics.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::SteadySolver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::FEMSystem::build_context(), libMesh::EulerSolver::element_residual(), libMesh::Euler2Solver::element_residual(), libMesh::EigenTimeSolver::element_residual(), libMesh::FEMSystem::init_context(), libMesh::EigenTimeSolver::nonlocal_residual(), and libMesh::EigenTimeSolver::side_residual().
|
inlineinherited |
this
. Definition at line 192 of file diff_system.h.
References libMesh::DifferentiableSystem::_diff_physics.
|
inlineinherited |
Setter and getter functions for project_with_constraints boolean.
Definition at line 1775 of file system.h.
References libMesh::System::project_with_constraints.
Referenced by libMesh::AdjointRefinementEstimator::estimate_error().
|
inlineinherited |
this
. Definition at line 227 of file diff_system.h.
References libMesh::DifferentiableSystem::_diff_qoi.
Referenced by libMesh::FEMSystem::assemble_qoi(), and libMesh::FEMSystem::assemble_qoi_derivative().
|
inlineinherited |
Definition at line 237 of file diff_system.h.
References libMesh::DifferentiableSystem::_diff_qoi.
|
inherited |
Definition at line 2361 of file system.C.
References libMesh::libmesh_assert(), and libMesh::System::qoi_error_estimates.
Referenced by libMesh::TwostepTimeSolver::integrate_adjoint_refinement_error_estimate(), and main().
|
inline |
Definition at line 85 of file heatsystem.h.
|
inherited |
Definition at line 2334 of file system.C.
References libMesh::libmesh_assert(), and libMesh::System::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().
|
inherited |
Returns a copy of qoi, not a reference.
Definition at line 2341 of file system.C.
References libMesh::System::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().
|
inherited |
For a given second order (in time) variable var, this method will return the index to the corresponding "dot" variable.
For FirstOrderUnsteadySolver classes, the "dot" variable would automatically be added and the returned index will correspond to that variable. For SecondOrderUnsteadySolver classes, this method will return var as there this is no "dot" variable per se, but having this function allows one to use the interface to treat both FirstOrderUnsteadySolver and SecondOrderUnsteadySolver simultaneously.
Definition at line 306 of file diff_system.C.
References libMesh::DifferentiablePhysics::_second_order_dot_vars, libMesh::UnsteadySolver::time_order(), and libMesh::DifferentiableSystem::time_solver.
Referenced by libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns().
|
inlineinherited |
Definition at line 519 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_second_order_vars.
Referenced by libMesh::DifferentiableSystem::add_second_order_dot_vars(), libMesh::DiffContext::DiffContext(), libMesh::Euler2Solver::element_residual(), libMesh::DifferentiableSystem::have_second_order_scalar_vars(), and libMesh::FEMContext::pre_fe_reinit().
|
inherited |
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 libMesh::System::get_vector().
Referenced by libMesh::ImplicitSystem::adjoint_qoi_parameter_sensitivity(), and libMesh::ImplicitSystem::sensitivity_solve().
|
inherited |
Definition at line 1295 of file system.C.
References libMesh::System::get_vector().
|
inherited |
Definition at line 1140 of file system.C.
References libMesh::System::get_vector().
Referenced by libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), libMesh::ImplicitSystem::qoi_parameter_hessian(), and libMesh::ImplicitSystem::sensitivity_solve().
|
inherited |
Definition at line 1150 of file system.C.
References libMesh::System::get_vector().
|
inherited |
Definition at line 1230 of file implicit_system.C.
References libMesh::System::get_matrix(), libMesh::libmesh_assert(), and libMesh::ImplicitSystem::matrix.
Referenced by assemble(), LinearElasticity::assemble(), assemble_1D(), assemble_biharmonic(), assemble_divgrad(), assemble_elasticity(), assemble_ellipticdg(), assemble_helmholtz(), assemble_laplace(), assemble_matrix_and_rhs(), assemble_poisson(), assemble_shell(), assemble_stokes(), assemble_wave(), assembly_with_dg_fem_context(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_residual(), main(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), and libMesh::EigenTimeSolver::solve().
|
inherited |
Definition at line 1239 of file implicit_system.C.
References libMesh::System::get_matrix(), libMesh::libmesh_assert(), and libMesh::ImplicitSystem::matrix.
|
inlineinherited |
Definition at line 454 of file diff_system.h.
References libMesh::libmesh_assert(), and libMesh::DifferentiableSystem::time_solver.
Referenced by libMesh::DifferentiableSystem::adjoint_solve(), adjust_linear_solvers(), libMesh::FEMSystem::build_context(), libMesh::DiffContext::DiffContext(), libMesh::FEMSystem::postprocess(), libMesh::FEMContext::pre_fe_reinit(), and libMesh::DifferentiableSystem::solve().
|
inlineinherited |
Non-const version of the above.
Definition at line 462 of file diff_system.h.
References libMesh::libmesh_assert(), and libMesh::DifferentiableSystem::time_solver.
|
inherited |
vec_name
. Access is only granted when the vector is already properly initialized. Definition at line 918 of file system.C.
References libMesh::System::_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(), libMesh::System::compare(), libMesh::NewmarkSolver::compute_initial_accel(), libMesh::UnsteadySolver::du(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::System::get_adjoint_rhs(), libMesh::System::get_adjoint_solution(), libMesh::System::get_sensitivity_rhs(), libMesh::System::get_sensitivity_solution(), libMesh::System::get_weighted_sensitivity_adjoint_solution(), libMesh::System::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().
|
inherited |
vec_name
. Access is only granted when the vector is already properly initialized. Definition at line 925 of file system.C.
References libMesh::System::_vectors.
|
inherited |
vec_num
(where the vectors are counted starting with 0). Definition at line 932 of file system.C.
References libMesh::System::_vectors, and libMesh::System::vectors_begin().
|
inherited |
vec_num
(where the vectors are counted starting with 0). Definition at line 945 of file system.C.
References libMesh::System::_vectors, and libMesh::System::vectors_begin().
|
inherited |
Definition at line 1225 of file system.C.
References libMesh::System::get_vector().
Referenced by libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), and libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve().
|
inherited |
Definition at line 1235 of file system.C.
References libMesh::System::get_vector().
|
inherited |
Definition at line 1167 of file system.C.
References libMesh::System::get_vector().
Referenced by libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), and libMesh::ImplicitSystem::weighted_sensitivity_solve().
|
inherited |
Definition at line 1174 of file system.C.
References libMesh::System::get_vector().
|
inherited |
Definition at line 2169 of file system.C.
References libMesh::System::_constrain_system_object.
|
inherited |
true
if a variable named var
exists in this System Definition at line 1550 of file system.C.
References libMesh::System::_variable_numbers.
Referenced by libMesh::GMVIO::copy_nodal_solution(), and main().
|
inherited |
Check for any first order vars that are also belong to FEFamily::SCALAR.
Definition at line 323 of file diff_system.C.
References libMesh::DifferentiablePhysics::get_first_order_vars(), libMesh::DifferentiablePhysics::have_first_order_vars(), libMesh::SCALAR, and libMesh::System::variable().
|
inlineinherited |
Definition at line 500 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_first_order_vars.
Referenced by libMesh::DifferentiableSystem::have_first_order_scalar_vars().
|
inlineinherited |
true
if this System
has a matrix associated with the given name, false
otherwise. Definition at line 1860 of file system.h.
References libMesh::System::_matrices.
Referenced by libMesh::EigenTimeSolver::init().
|
inherited |
Check for any second order vars that are also belong to FEFamily::SCALAR.
Definition at line 335 of file diff_system.C.
References libMesh::DifferentiablePhysics::get_second_order_vars(), libMesh::DifferentiablePhysics::have_second_order_vars(), libMesh::SCALAR, and libMesh::System::variable().
Referenced by libMesh::EulerSolver::nonlocal_residual(), and libMesh::Euler2Solver::nonlocal_residual().
|
inlineinherited |
Definition at line 513 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_second_order_vars.
Referenced by libMesh::EulerSolver::element_residual(), and libMesh::DifferentiableSystem::have_second_order_scalar_vars().
|
inlineinherited |
true
if this System
has a vector associated with the given name, false
otherwise. Definition at line 2469 of file system.h.
References libMesh::System::_vectors.
|
inlineinherited |
true
, then EquationSystems::write
will ignore this system. Definition at line 1790 of file system.h.
References libMesh::System::_hide_output.
|
inlineinherited |
true
when VariableGroup
structures should be automatically identified, false
otherwise. Definition at line 2445 of file system.h.
References libMesh::System::_identify_variable_groups.
Referenced by libMesh::System::add_variable(), and libMesh::System::add_variables().
|
inlineinherited |
Toggle automatic VariableGroup
identification.
Definition at line 2453 of file system.h.
References libMesh::System::_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().
|
inherited |
Initializes degrees of freedom on the current mesh.
Sets the
Definition at line 189 of file system.C.
References libMesh::System::_basic_system_only, libMesh::System::init_data(), libMesh::System::is_initialized(), libMesh::libmesh_assert(), libMesh::System::n_vars(), and libMesh::System::user_initialization().
|
protectedvirtual |
Reimplemented from libMesh::FEMSystem.
|
protectedvirtual |
Reimplemented from libMesh::FEMSystem.
Definition at line 74 of file heatsystem.C.
References libMesh::System::get_adjoint_solution(), libMesh::NumericVector< Number >, and libMesh::System::System().
|
protectedvirtual |
Reimplemented from libMesh::FEMSystem.
Definition at line 48 of file heatsystem.C.
References dim, libMesh::FEMContext::elem_dimensions(), libMesh::FEGenericBase< OutputType >::get_dphi(), libMesh::FEMContext::get_element_fe(), libMesh::FEAbstract::get_JxW(), libMesh::FEAbstract::get_nothing(), libMesh::FEGenericBase< OutputType >::get_phi(), libMesh::FEMContext::get_side_fe(), libMesh::FEAbstract::get_xyz(), and libMesh::FEMSystem::init_context().
|
protectedvirtual |
Initializes the member data fields associated with the system, so that, e.g., assemble()
may be used.
Reimplemented from libMesh::FEMSystem.
|
protectedvirtual |
Initializes the member data fields associated with the system, so that, e.g., assemble()
may be used.
Reimplemented from libMesh::FEMSystem.
|
protectedvirtual |
Initializes the member data fields associated with the system, so that, e.g., assemble()
may be used.
Reimplemented from libMesh::FEMSystem.
Definition at line 37 of file heatsystem.C.
References _analytic_jacobians, _fe_family, _fe_order, _k, libMesh::DofMap::add_dirichlet_boundary(), libMesh::System::add_variable(), libMesh::System::get_dof_map(), libMesh::System::get_equation_systems(), libMesh::LOCAL_VARIABLE_ORDER, parameters, libMesh::EquationSystems::parameters, libMesh::ParallelObject::processor_id(), libMesh::Real, libMesh::Parameters::set(), T_var, libMesh::DifferentiablePhysics::time_evolving(), and libMesh::zero.
|
protectedvirtualinherited |
Initializes the matrices associated with this system.
Reimplemented in libMesh::EigenSystem.
Definition at line 326 of file system.C.
References libMesh::System::_matrices, libMesh::System::_matrices_initialized, libMesh::System::_matrix_types, libMesh::DofMap::attach_matrix(), libMesh::DofMap::compute_sparsity(), libMesh::System::get_dof_map(), libMesh::System::get_mesh(), libMesh::SparseMatrix< T >::initialized(), libMesh::DofMap::is_attached(), and libMesh::libmesh_assert().
Referenced by libMesh::System::init_data(), and libMesh::EigenSystem::init_matrices().
|
virtualinherited |
Initialize any data structures associated with the physics.
Definition at line 35 of file diff_physics.C.
References libMesh::DifferentiablePhysics::_time_evolving, and libMesh::System::n_vars().
Referenced by libMesh::DifferentiableSystem::init_data().
|
inlinevirtualinherited |
Initialize system qoi.
This version of the function required direct vector access, and is now deprecated.
Definition at line 72 of file diff_qoi.h.
|
inlineinherited |
Non-virtual, to try to help deprecated user code catch this change at compile time (if they specified override)
Definition at line 78 of file diff_qoi.h.
|
inlinevirtualinherited |
Initialize system qoi.
Often this will just call sys.init_qois(some_desired_number_of_qois)
Reimplemented in LaplaceQoI, and CoupledSystemQoI.
Definition at line 85 of file diff_qoi.h.
|
inherited |
Accessors for qoi and qoi_error_estimates vectors.
Definition at line 2319 of file system.C.
References libMesh::System::n_qois(), libMesh::System::qoi, and libMesh::System::qoi_error_estimates.
Referenced by CoupledSystemQoI::init_qoi_count(), LaplaceQoI::init_qoi_count(), and main().
|
inlineinherited |
Accessor for the adjoint_already_solved boolean.
Definition at line 406 of file system.h.
References libMesh::System::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().
|
inlineinherited |
Definition at line 509 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_first_order_vars.
|
inlineinherited |
true
iff this system has been initialized. Definition at line 2333 of file system.h.
References libMesh::System::_is_initialized.
Referenced by libMesh::System::add_variable(), libMesh::System::add_variables(), and libMesh::System::init().
|
inlineinherited |
Definition at line 522 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_second_order_vars.
Referenced by libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns().
|
inlineinherited |
true
iff variable var
is evolving with respect to time. In general, the user's init() function should have set time_evolving() for any variables which behave like du/dt = F(u), and should not call time_evolving() for any variables which behave like 0 = G(u). Definition at line 260 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_time_evolving, and libMesh::libmesh_assert().
Referenced by libMesh::FEMPhysics::eulerian_residual(), libMesh::FEMSystem::init_context(), libMesh::FEMPhysics::mass_residual(), and libMesh::DifferentiablePhysics::nonlocal_mass_residual().
|
inline |
Definition at line 43 of file heatsystem.h.
|
inline |
Definition at line 48 of file heatsystem.h.
|
inherited |
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(), libMesh::System::get_dof_map(), libMesh::System::get_mesh(), and libMesh::libmesh_assert().
Referenced by libMesh::System::discrete_var_norm(), SystemsTest::testBlockRestrictedVarNDofs(), and libMesh::DirectSolutionTransfer::transfer().
|
overridevirtualinherited |
Subtracts a mass vector contribution on elem
from elem_residual.
If this method receives request_jacobian = true, then it should compute elem_jacobian and return true if possible. If elem_jacobian has not been computed then the method should return false.
Many problems can use the reimplementation in FEMPhysics::mass_residual which subtracts (du/dt,v) for each transient variable u; users with more complicated transient problems will need to reimplement this themselves.
Reimplemented from libMesh::DifferentiablePhysics.
Reimplemented in SecondOrderScalarSystemFirstOrderTimeSolverBase, SecondOrderScalarSystemSecondOrderTimeSolverBase, FirstOrderScalarSystemBase, ElasticitySystem, ElasticitySystem, and NavierSystem.
Definition at line 200 of file fem_physics.C.
References libMesh::DiffContext::elem_solution_rate_derivative, libMesh::DiffContext::get_dof_indices(), libMesh::DiffContext::get_elem_jacobian(), libMesh::DiffContext::get_elem_residual(), libMesh::FEMContext::get_element_fe(), libMesh::FEMContext::get_element_qrule(), libMesh::FEAbstract::get_JxW(), libMesh::FEGenericBase< OutputType >::get_phi(), libMesh::FEMContext::interior_rate(), libMesh::DifferentiablePhysics::is_time_evolving(), libMesh::make_range(), libMesh::QBase::n_points(), and libMesh::DiffContext::n_vars().
|
inlinevirtualinherited |
Subtracts a mass vector contribution on elem
from elem_residual.
For first-order-in-time problems, this is the \( M(u,\dot{u})\dot{u} \) term. For second-order-in-time problems, this is the \( M(u,\ddot{u})\ddot{u} \) term. This method is only called for UnsteadySolver-based TimeSolvers.
If this method receives request_jacobian = true, then it should compute elem_jacobian and return true if possible. If elem_jacobian has not been computed then the method should return false.
Many first-order-in-time problems can use the reimplementation in FEMPhysics::mass_residual which subtracts (du/dt,v) for each transient variable u; users with more complicated transient problems or second-order-in-time problems will need to reimplement this themselves.
Reimplemented in SecondOrderScalarSystemFirstOrderTimeSolverBase, SecondOrderScalarSystemSecondOrderTimeSolverBase, FirstOrderScalarSystemBase, libMesh::FEMPhysics, ElasticitySystem, ElasticitySystem, and NavierSystem.
Definition at line 302 of file diff_physics.h.
Referenced by libMesh::EulerSolver::element_residual(), libMesh::Euler2Solver::element_residual(), libMesh::NewmarkSolver::element_residual(), and libMesh::EigenTimeSolver::element_residual().
|
inherited |
Tells the FEMSystem to set the degree of freedom coefficients which should correspond to mesh nodal coordinates.
Definition at line 1423 of file fem_system.C.
References libMesh::DifferentiablePhysics::_mesh_sys, libMesh::DifferentiablePhysics::_mesh_x_var, libMesh::DifferentiablePhysics::_mesh_y_var, libMesh::DifferentiablePhysics::_mesh_z_var, libMesh::FEMSystem::build_context(), libMesh::FEMContext::elem_position_get(), libMesh::DiffContext::get_dof_indices(), libMesh::DiffContext::get_elem_solution(), libMesh::System::get_mesh(), libMesh::FEMSystem::init_context(), libMesh::invalid_uint, mesh, libMesh::FEMContext::pre_fe_reinit(), libMesh::System::solution, and libMesh::System::update().
Referenced by SolidSystem::init_data().
|
inherited |
Tells the FEMSystem to set the mesh nodal coordinates which should correspond to degree of freedom coefficients.
Definition at line 1087 of file fem_system.C.
References libMesh::DifferentiablePhysics::_mesh_sys, libMesh::FEMSystem::build_context(), libMesh::ParallelObject::comm(), libMesh::FEMContext::elem_fe_reinit(), libMesh::FEMContext::elem_position_set(), libMesh::FEMContext::get_elem(), libMesh::System::get_mesh(), libMesh::Elem::has_children(), libMesh::FEMSystem::init_context(), libMesh::libmesh_assert(), mesh, libMesh::FEMContext::pre_fe_reinit(), and libMesh::Parallel::sync_dofobject_data_by_id().
Referenced by libMesh::FEMSystem::solve(), and SolidSystem::update().
|
inlineinherited |
Definition at line 2461 of file system.h.
References libMesh::System::n_constrained_dofs(), and libMesh::System::n_dofs().
|
inlineinherited |
n_vars()
in the case of all scalar-valued variables. Definition at line 2365 of file system.h.
References libMesh::System::_variables, libMesh::Variable::first_scalar_number(), and libMesh::Variable::n_components().
Referenced by libMesh::System::add_variables().
|
inherited |
Definition at line 120 of file system.C.
References libMesh::System::_dof_map.
Referenced by libMesh::System::get_info(), libMesh::System::n_active_dofs(), libMesh::EigenSystem::solve(), and BoundaryInfoTest::testShellFaceConstraints().
|
inherited |
Definition at line 113 of file system.C.
References libMesh::System::_dof_map.
Referenced by libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::System::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(), libMesh::System::get_info(), libMesh::SecondOrderUnsteadySolver::init_data(), libMesh::UnsteadySolver::init_data(), libMesh::System::init_data(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), main(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), libMesh::System::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(), libMesh::System::read_legacy_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::SecondOrderUnsteadySolver::reinit(), libMesh::UnsteadySolver::reinit(), libMesh::System::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().
|
inherited |
Definition at line 135 of file system.C.
References libMesh::System::_dof_map.
Referenced by libMesh::System::get_info().
|
inherited |
Definition at line 150 of file system.C.
References libMesh::System::_dof_map, and libMesh::ParallelObject::processor_id().
Referenced by libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::System::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(), libMesh::System::get_info(), libMesh::SecondOrderUnsteadySolver::init_data(), libMesh::UnsteadySolver::init_data(), libMesh::System::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(), libMesh::System::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().
|
inlineinherited |
_matrices
map Definition at line 2594 of file system.h.
References libMesh::System::_matrices.
Referenced by libMesh::ImplicitSystem::add_matrices(), and libMesh::System::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(), libMesh::System::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(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::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(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vector(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::Partitioner::repartition(), OverlappingFunctorTest::run_partitioner_test(), libMesh::DofMap::scatter_constraints(), libMesh::DistributedMesh::set_next_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(), libMesh::System::write_parallel_data(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().
|
inlineinherited |
Number of currently active quantities of interest.
Definition at line 2516 of file system.h.
References libMesh::System::qoi, and libMesh::System::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(), libMesh::System::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().
|
inlineinherited |
VariableGroup
variable groups in the system Definition at line 2357 of file system.h.
References libMesh::System::_variable_groups.
Referenced by libMesh::System::add_variable(), libMesh::System::add_variables(), libMesh::FEMSystem::assembly(), libMesh::System::get_info(), and libMesh::System::init_data().
|
inlineinherited |
Definition at line 2349 of file system.h.
References libMesh::System::_variables.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::DiffContext::add_localized_vector(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::System::add_variable(), libMesh::System::add_variables(), libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::FEMContext::attach_quadrature_rules(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_section(), libMesh::System::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(), libMesh::System::get_all_variable_numbers(), libMesh::System::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(), libMesh::System::re_update(), libMesh::System::read_legacy_data(), libMesh::System::read_parallel_data(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::System::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(), libMesh::System::write_header(), libMesh::System::write_parallel_data(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), and libMesh::System::zero_variable().
|
inlineinherited |
_vectors
map Definition at line 2477 of file system.h.
References libMesh::System::_vectors.
Referenced by libMesh::ExplicitSystem::add_system_rhs(), libMesh::System::compare(), libMesh::System::get_info(), main(), libMesh::InterMeshProjection::project_system_vectors(), and libMesh::System::write_header().
|
inlineinherited |
Definition at line 2261 of file system.h.
References libMesh::System::_sys_name.
Referenced by libMesh::System::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(), libMesh::System::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(), libMesh::System::user_assembly(), libMesh::System::user_constrain(), libMesh::System::user_initialization(), libMesh::System::user_QOI(), libMesh::System::user_QOI_derivative(), libMesh::System::variable_number(), libMesh::System::write_header(), libMesh::System::write_parallel_data(), and libMesh::System::write_serialized_data().
|
inlinevirtualinherited |
Adds any nonlocal constraint contributions (e.g.
some components of constraints in scalar variable equations) to elem_residual
If this method receives request_jacobian = true, then it should also modify elem_jacobian and return true if possible. If the Jacobian changes have not been computed then the method should return false.
Users may need to reimplement this for PDEs on systems to which SCALAR variables with non-transient equations have been added.
Definition at line 233 of file diff_physics.h.
Referenced by libMesh::EulerSolver::nonlocal_residual(), libMesh::SteadySolver::nonlocal_residual(), libMesh::Euler2Solver::nonlocal_residual(), libMesh::EigenTimeSolver::nonlocal_residual(), and libMesh::NewmarkSolver::nonlocal_residual().
|
inlinevirtualinherited |
Subtracts any nonlocal damping vector contributions (e.g.
any first time derivative coefficients in scalar variable equations) from elem_residual
If this method receives request_jacobian = true, then it should also modify elem_jacobian and return true if possible. If the Jacobian changes have not been computed then the method should return false.
Definition at line 394 of file diff_physics.h.
Referenced by libMesh::EulerSolver::nonlocal_residual(), libMesh::Euler2Solver::nonlocal_residual(), and libMesh::NewmarkSolver::nonlocal_residual().
|
virtualinherited |
Subtracts any nonlocal mass vector contributions (e.g.
any time derivative coefficients in scalar variable equations) from elem_residual
If this method receives request_jacobian = true, then it should also modify elem_jacobian and return true if possible. If the Jacobian changes have not been computed then the method should return false.
Many problems can use the reimplementation in FEMPhysics::mass_residual which subtracts (du/dt,v) for each transient scalar variable u; users with more complicated transient scalar variable equations will need to reimplement this themselves.
Definition at line 57 of file diff_physics.C.
References libMesh::DiffContext::elem_solution_rate_derivative, libMesh::FEType::family, libMesh::DiffContext::get_dof_indices(), libMesh::DiffContext::get_elem_jacobian(), libMesh::DiffContext::get_elem_residual(), libMesh::DiffContext::get_elem_solution(), libMesh::DiffContext::get_system(), libMesh::DifferentiablePhysics::is_time_evolving(), libMesh::make_range(), libMesh::DiffContext::n_vars(), libMesh::SCALAR, libMesh::Variable::type(), and libMesh::System::variable().
Referenced by libMesh::EulerSolver::nonlocal_residual(), libMesh::Euler2Solver::nonlocal_residual(), libMesh::EigenTimeSolver::nonlocal_residual(), and libMesh::NewmarkSolver::nonlocal_residual().
|
inlinevirtualinherited |
Adds any nonlocal time derivative contributions (e.g.
some components of time derivatives in scalar variable equations) to elem_residual
If this method receives request_jacobian = true, then it should also modify elem_jacobian and return true if possible. If the Jacobian changes have not been computed then the method should return false.
Users may need to reimplement this for PDEs on systems to which SCALAR variables have been added.
Definition at line 214 of file diff_physics.h.
Referenced by libMesh::EulerSolver::nonlocal_residual(), libMesh::SteadySolver::nonlocal_residual(), libMesh::Euler2Solver::nonlocal_residual(), libMesh::EigenTimeSolver::nonlocal_residual(), and libMesh::NewmarkSolver::nonlocal_residual().
|
inlineinherited |
Definition at line 2269 of file system.h.
References libMesh::System::_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(), libMesh::System::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()(), libMesh::System::read_legacy_data(), libMesh::System::read_parallel_data(), libMesh::System::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(), libMesh::System::write_parallel_data(), libMesh::System::write_serialized_blocked_dof_objects(), and libMesh::System::zero_variable().
|
inherited |
Uses the results of multiple element_residual() calls to numerically differentiate the corresponding jacobian on an element.
Definition at line 1322 of file fem_system.C.
References libMesh::TimeSolver::element_residual(), and libMesh::FEMSystem::numerical_jacobian().
|
inherited |
Uses the results of multiple res
calls to numerically differentiate the corresponding jacobian.
Definition at line 1210 of file fem_system.C.
References libMesh::DifferentiablePhysics::_mesh_sys, libMesh::DifferentiablePhysics::_mesh_x_var, libMesh::DifferentiablePhysics::_mesh_y_var, libMesh::DifferentiablePhysics::_mesh_z_var, libMesh::DiffContext::get_dof_indices(), libMesh::FEMContext::get_elem(), libMesh::DiffContext::get_elem_jacobian(), libMesh::DiffContext::get_elem_residual(), libMesh::DiffContext::get_elem_solution(), libMesh::Elem::hmin(), libMesh::invalid_uint, libMesh::libmesh_real(), libMesh::make_range(), libMesh::System::n_dofs(), libMesh::DiffContext::n_vars(), libMesh::FEMSystem::numerical_jacobian_h, libMesh::FEMSystem::numerical_jacobian_h_for_var(), libMesh::Elem::point(), libMesh::Real, and libMesh::DenseVector< T >::zero().
Referenced by libMesh::FEMSystem::numerical_elem_jacobian(), libMesh::FEMSystem::numerical_nonlocal_jacobian(), and libMesh::FEMSystem::numerical_side_jacobian().
|
inlineinherited |
If numerical_jacobian_h_for_var(var_num) is changed from its default value (numerical_jacobian_h), the FEMSystem will perturb solution vector entries for variable var_num by that amount when calculating finite differences with respect to that variable.
This is useful in multiphysics problems which have not been normalized.
Definition at line 265 of file fem_system.h.
References libMesh::FEMSystem::_numerical_jacobian_h_for_var, libMesh::FEMSystem::numerical_jacobian_h, and libMesh::Real.
Referenced by libMesh::FEMSystem::numerical_jacobian().
|
inherited |
Uses the results of multiple side_residual() calls to numerically differentiate the corresponding jacobian on nonlocal DoFs.
Definition at line 1338 of file fem_system.C.
References libMesh::TimeSolver::nonlocal_residual(), and libMesh::FEMSystem::numerical_jacobian().
Referenced by libMesh::FEMSystem::assembly().
|
inherited |
Uses the results of multiple side_residual() calls to numerically differentiate the corresponding jacobian on an element's side.
Definition at line 1330 of file fem_system.C.
References libMesh::FEMSystem::numerical_jacobian(), and libMesh::TimeSolver::side_residual().
|
virtualinherited |
Method to populate system qoi data structure with process-local qoi.
By default, simply sums process qois into system qoi.
Definition at line 41 of file diff_qoi.C.
References communicator.
Referenced by libMesh::FEMSystem::assemble_qoi().
void HeatSystem::perturb_accumulate_residuals | ( | ParameterVector & | parameters | ) |
Definition at line 162 of file heatsystem.C.
References libMesh::FEMSystem::assembly(), libMesh::NumericVector< T >::clone(), libMesh::NumericVector< T >::close(), libMesh::DifferentiableSystem::deltat, deltat_vector, dp, R_minus_dp, R_plus_dp, libMesh::ExplicitSystem::rhs, and libMesh::System::update().
|
inherited |
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(), libMesh::System::get_dof_map(), libMesh::System::get_mesh(), libMesh::libmesh_assert(), mesh, TIMPI::Communicator::min(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), and libMesh::System::variable().
Referenced by line_print(), and libMesh::System::point_gradient().
|
inherited |
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(), libMesh::System::current_local_solution, dim, libMesh::Elem::dim(), libMesh::DofMap::dof_indices(), libMesh::FEComputeData::dshape, libMesh::FEComputeData::enable_derivative(), libMesh::System::get_dof_map(), libMesh::System::get_equation_systems(), libMesh::FEMap::inverse_map(), libMesh::DofMap::is_evaluable(), libMesh::libmesh_assert(), libMesh::FEComputeData::local_transform, and libMesh::DofMap::variable_type().
|
inherited |
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 libMesh::System::point_gradient().
|
inherited |
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 libMesh::System::point_gradient().
|
inherited |
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(), libMesh::System::get_dof_map(), libMesh::System::get_mesh(), libMesh::libmesh_assert(), mesh, TIMPI::Communicator::min(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), and libMesh::System::variable().
Referenced by libMesh::System::point_hessian().
|
inherited |
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(), libMesh::System::current_local_solution, libMesh::Elem::dim(), libMesh::DofMap::dof_indices(), libMesh::System::get_dof_map(), libMesh::Elem::infinite(), libMesh::FEMap::inverse_map(), libMesh::DofMap::is_evaluable(), libMesh::libmesh_assert(), and libMesh::DofMap::variable_type().
|
inherited |
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 libMesh::System::point_hessian().
|
inherited |
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 libMesh::System::point_hessian().
|
inherited |
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(), libMesh::System::get_dof_map(), libMesh::System::get_mesh(), libMesh::libmesh_assert(), mesh, TIMPI::Communicator::min(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), and libMesh::System::variable().
Referenced by line_print(), main(), libMesh::System::point_value(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), PeriodicBCTest::testPeriodicBC(), SystemsTest::testProjectCubeWithMeshFunction(), and EquationSystemsTest::testRepartitionThenReinit().
|
inherited |
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(), libMesh::System::current_local_solution, libMesh::Elem::dim(), libMesh::DofMap::dof_indices(), libMesh::System::get_dof_map(), libMesh::System::get_equation_systems(), libMesh::FEMap::inverse_map(), libMesh::DofMap::is_evaluable(), libMesh::libmesh_assert(), and libMesh::DofMap::variable_type().
|
inherited |
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 libMesh::System::point_value().
|
inherited |
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 libMesh::System::point_value().
|
inherited |
Pop a physics object off of our stack.
Definition at line 409 of file diff_system.C.
References libMesh::DifferentiableSystem::_diff_physics, libMesh::ImplicitSystem::disable_cache(), and libMesh::libmesh_assert().
Referenced by main().
|
overridevirtualinherited |
Runs a postprocessing loop over all elements, and if postprocess_sides
is true over all sides.
Reimplemented from libMesh::DifferentiableSystem.
Reimplemented in CoupledSystem, NavierSystem, LaplaceSystem, LaplaceSystem, and PoissonSystem.
Definition at line 1127 of file fem_system.C.
References libMesh::System::get_mesh(), libMesh::DifferentiableSystem::get_time_solver(), mesh, libMesh::Threads::parallel_for(), libMesh::StoredRange< iterator_type, object_type >::reset(), libMesh::TimeSolver::set_is_adjoint(), and libMesh::System::update().
Referenced by main(), PoissonSystem::postprocess(), and LaplaceSystem::postprocess().
|
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(), 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(), libMesh::System::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(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::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(), libMesh::System::read_header(), libMesh::System::read_legacy_data(), libMesh::DynaIO::read_mesh(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::System::read_parallel_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::System::read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::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(), libMesh::System::write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::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(), libMesh::System::write_parallel_data(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::System::write_serialized_data(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), libMesh::ExodusII_IO_Helper::write_sideset_data(), libMesh::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().
|
inherited |
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 1032 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().
|
inherited |
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 1045 of file system_projection.C.
|
inherited |
This method projects an arbitrary function onto the solution via L2 projections and nodal interpolations on each element.
Definition at line 1018 of file system_projection.C.
References fptr(), and gptr().
|
inlineinherited |
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 libMesh::System::_solution_projection.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), and libMesh::MemoryHistoryData::store_vectors().
|
inherited |
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 1073 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 libMesh::System::restrict_vectors().
|
inherited |
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 1099 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().
|
inherited |
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 1058 of file system_projection.C.
References fptr(), and gptr().
|
protectedinherited |
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().
|
protectedinherited |
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().
|
inherited |
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 952 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().
|
virtualinherited |
Prolong vectors after the mesh has refined.
Definition at line 436 of file system.C.
References libMesh::System::restrict_vectors().
Referenced by libMesh::EquationSystems::reinit_solutions().
|
inherited |
Push a clone of a new physics object onto our stack, overriding the current physics until the new physics is popped off again (or until something else is pushed on top of it).
Definition at line 397 of file diff_system.C.
References libMesh::DifferentiableSystem::_diff_physics, libMesh::DifferentiablePhysics::clone_physics(), and libMesh::ImplicitSystem::disable_cache().
Referenced by main().
|
overridevirtualinherited |
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)
.
Note that in some cases only current_local_solution is used during assembly, and, therefore, if solution has been altered without update() being called, then the user must call update() before calling this function.
Reimplemented from libMesh::System.
Definition at line 895 of file implicit_system.C.
References libMesh::ImplicitSystem::adjoint_solve(), libMesh::SensitivityData::allocate_hessian_data(), libMesh::ExplicitSystem::assemble_qoi(), libMesh::ExplicitSystem::assemble_qoi_derivative(), libMesh::ImplicitSystem::assembly(), libMesh::NumericVector< T >::close(), libMesh::SparseMatrix< T >::close(), libMesh::NumericVector< T >::dot(), libMesh::System::get_adjoint_rhs(), libMesh::System::get_adjoint_solution(), libMesh::System::get_qoi_value(), libMesh::System::get_qoi_values(), libMesh::System::get_sensitivity_solution(), libMesh::QoISet::has_index(), libMesh::System::is_adjoint_already_solved(), libMesh::ImplicitSystem::matrix, libMesh::System::n_qois(), libMesh::Real, libMesh::ExplicitSystem::rhs, libMesh::SensitivityData::second_derivative(), libMesh::ImplicitSystem::sensitivity_solve(), libMesh::ParameterVector::size(), libMesh::System::solution, libMesh::TOLERANCE, libMesh::System::update(), and libMesh::SparseMatrix< T >::vector_mult().
|
overridevirtualinherited |
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].
Reimplemented from libMesh::System.
Definition at line 690 of file implicit_system.C.
References libMesh::ImplicitSystem::adjoint_solve(), libMesh::SensitivityData::allocate_data(), libMesh::ExplicitSystem::assemble_qoi(), libMesh::ExplicitSystem::assemble_qoi_derivative(), libMesh::ImplicitSystem::assembly(), libMesh::NumericVector< T >::close(), libMesh::SparseMatrix< T >::close(), libMesh::ParameterVector::deep_copy(), libMesh::NumericVector< T >::dot(), libMesh::System::get_adjoint_rhs(), libMesh::System::get_adjoint_solution(), libMesh::System::get_qoi_value(), libMesh::System::get_qoi_values(), libMesh::System::get_weighted_sensitivity_adjoint_solution(), libMesh::System::get_weighted_sensitivity_solution(), libMesh::QoISet::has_index(), libMesh::System::is_adjoint_already_solved(), libMesh::ImplicitSystem::matrix, libMesh::System::n_qois(), libMesh::Real, libMesh::ExplicitSystem::rhs, libMesh::ParameterVector::size(), libMesh::System::solution, libMesh::TOLERANCE, libMesh::ParameterVector::value_copy(), libMesh::SparseMatrix< T >::vector_mult(), libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve(), and libMesh::ImplicitSystem::weighted_sensitivity_solve().
|
virtualinherited |
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 libMesh::System::adjoint_qoi_parameter_sensitivity(), libMesh::System::forward_qoi_parameter_sensitivity(), libMesh::ParameterVector::size(), and libMesh::QoISet::size().
|
virtualinherited |
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 libMesh::System::current_local_solution, libMesh::System::get_dof_map(), libMesh::DofMap::get_send_list(), libMesh::System::n_vars(), and libMesh::System::solution.
|
inherited |
Reads the basic data header for this System.
Definition at line 97 of file system_io.C.
References libMesh::System::_additional_data_written, libMesh::System::_written_var_indices, libMesh::System::add_variable(), libMesh::System::add_vector(), TIMPI::Communicator::broadcast(), libMesh::System::clear(), libMesh::ParallelObject::comm(), libMesh::Xdr::data(), libMesh::FEType::family, libMesh::System::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(), libMesh::System::variable_number(), libMesh::Xdr::version(), and libMesh::XYZ.
Referenced by libMesh::EquationSystems::read(), and libMesh::RBEvaluation::read_in_vectors_from_multiple_files().
|
inherited |
Reads additional data, namely vectors, for this System.
Definition at line 302 of file system_io.C.
References libMesh::System::_additional_data_written, libMesh::System::_vectors, libMesh::System::_written_var_indices, TIMPI::Communicator::broadcast(), libMesh::ParallelObject::comm(), libMesh::Xdr::data(), libMesh::System::get_mesh(), libMesh::DofObject::invalid_id, libMesh::libmesh_assert(), libMesh::make_range(), libMesh::System::n_dofs(), libMesh::System::n_vars(), libMesh::System::number(), libMesh::ParallelObject::processor_id(), libMesh::Xdr::reading(), libMesh::System::solution, and libMesh::zero.
|
inherited |
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 libMesh::System::_additional_data_written, libMesh::System::_vectors, libMesh::System::_written_var_indices, libMesh::Xdr::data(), libMesh::FEType::family, libMesh::System::get_dof_map(), libMesh::System::get_mesh(), libMesh::DofObject::invalid_id, libMesh::Xdr::is_open(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::ParallelObject::n_processors(), libMesh::System::n_vars(), libMesh::System::number(), libMesh::ParallelObject::processor_id(), libMesh::Xdr::reading(), libMesh::SCALAR, libMesh::DofMap::SCALAR_dof_indices(), libMesh::System::solution, libMesh::Variable::type(), and libMesh::System::variable().
|
inlineinherited |
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.
|
inherited |
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 libMesh::System::_additional_data_written, libMesh::System::_vectors, libMesh::ParallelObject::processor_id(), and libMesh::System::solution.
Referenced by libMesh::TransientRBConstruction::initialize_truth(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), and libMesh::RBConstruction::read_riesz_representors_from_files().
|
inlineinherited |
|
inherited |
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(), libMesh::System::get_mesh(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::MeshTools::n_elem(), libMesh::MeshBase::n_elem(), n_nodes, libMesh::MeshBase::n_nodes(), libMesh::System::n_vars(), libMesh::ParallelObject::processor_id(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::Xdr::reading(), libMesh::SCALAR, and libMesh::System::variable().
Referenced by libMesh::RBEvaluation::read_in_vectors_from_multiple_files().
|
inlineinherited |
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.
|
overridevirtualinherited |
Reinitializes the member data fields associated with the system, so that, e.g., assemble()
may be used.
Reimplemented from libMesh::System.
Definition at line 82 of file diff_system.C.
References libMesh::libmesh_assert(), libMesh::System::reinit(), and libMesh::DifferentiableSystem::time_solver.
|
virtualinherited |
Reinitializes the constraints for this system.
Definition at line 480 of file system.C.
References libMesh::System::_mesh, libMesh::DofMap::create_dof_constraints(), libMesh::System::get_dof_map(), libMesh::DofMap::prepare_send_list(), libMesh::DofMap::process_constraints(), libMesh::System::time, and libMesh::System::user_constrain().
Referenced by libMesh::EquationSystems::allgather(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::System::init_data(), and libMesh::EquationSystems::reinit_solutions().
|
virtualinherited |
Reinitializes the system with a new mesh.
Definition at line 304 of file system.C.
References libMesh::System::_basic_system_only, libMesh::System::init_data(), libMesh::System::n_vars(), and libMesh::System::user_initialization().
|
virtualinherited |
|
inherited |
Removes the additional matrix mat_name
from this system.
Definition at line 1032 of file system.C.
References libMesh::System::_matrices.
|
inherited |
Removes the additional vector vec_name
from this system.
Definition at line 846 of file system.C.
References libMesh::System::_vector_is_adjoint, libMesh::System::_vector_projections, libMesh::System::_vectors, and libMesh::libmesh_assert().
Referenced by libMesh::AdjointRefinementEstimator::estimate_error(), and libMesh::UnsteadySolver::integrate_adjoint_sensitivity().
|
inherited |
mat_name
, or nullptr
if no matrix by that name exists. Definition at line 1047 of file system.C.
References libMesh::System::_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().
|
inherited |
mat_name
, or nullptr
if no matrix by that name exists. Definition at line 1060 of file system.C.
References libMesh::System::_matrices.
|
inherited |
System
has a vector associated with the given name, nullptr
otherwise. Definition at line 866 of file system.C.
References libMesh::System::_vectors.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error().
|
inherited |
System
has a vector associated with the given name, nullptr
otherwise. Definition at line 878 of file system.C.
References libMesh::System::_vectors.
|
inherited |
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 libMesh::System::_vectors, and libMesh::System::vectors_begin().
|
inherited |
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 libMesh::System::_vectors, and libMesh::System::vectors_begin().
|
virtualinherited |
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.
|
virtualinherited |
Restrict vectors after the mesh has coarsened.
Definition at line 378 of file system.C.
References libMesh::System::_dof_map, libMesh::System::_solution_projection, libMesh::System::_vector_projections, libMesh::System::_vectors, libMesh::System::current_local_solution, libMesh::NumericVector< T >::get(), libMesh::GHOSTED, libMesh::System::n_dofs(), libMesh::System::n_local_dofs(), libMesh::PARALLEL, libMesh::System::project_vector(), libMesh::System::solution, and libMesh::System::vector_is_adjoint().
Referenced by libMesh::System::prolong_vectors(), and libMesh::EquationSystems::reinit_solutions().
|
overridevirtualinherited |
Assembles & solves the linear system(s) (dR/du)*u_p = -dR/dp, for those parameters contained within parameters
.
Reimplemented from libMesh::System.
Definition at line 113 of file implicit_system.C.
References libMesh::System::add_sensitivity_solution(), libMesh::System::assemble_before_solve, libMesh::ImplicitSystem::assemble_residual_derivatives(), libMesh::ImplicitSystem::assembly(), libMesh::SparseMatrix< T >::close(), libMesh::DofMap::enforce_constraints_exactly(), libMesh::System::get_dof_map(), libMesh::ImplicitSystem::get_linear_solve_parameters(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::System::get_sensitivity_rhs(), libMesh::System::get_sensitivity_solution(), libMesh::make_range(), libMesh::ImplicitSystem::matrix, libMesh::System::request_matrix(), libMesh::ParameterVector::size(), and libMesh::LinearSolver< T >::solve().
Referenced by libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), and libMesh::ImplicitSystem::qoi_parameter_hessian().
|
inlineinherited |
Setter for the adjoint_already_solved boolean.
Definition at line 412 of file system.h.
References libMesh::System::adjoint_already_solved.
Referenced by main().
|
inlineinherited |
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 libMesh::System::_basic_system_only.
Referenced by libMesh::EquationSystems::read().
|
virtualinherited |
set_constrain_in_solver to false to apply constraints only via residual terms in the systems to be solved.
Definition at line 422 of file diff_system.C.
References libMesh::DifferentiableSystem::_constrain_in_solver, and libMesh::DifferentiableSystem::time_solver.
Referenced by main(), and set_system_parameters().
|
inlinevirtualinherited |
Tells the DifferentiablePhysics that system sys
contains the isoparametric Lagrangian variables which correspond to the coordinates of mesh nodes, in problems where the mesh itself is expected to move in time.
The system with mesh coordinate data (which may be this
system itself, for fully coupled moving mesh problems) is currently assumed to have new (end of time step) mesh coordinates stored in solution, old (beginning of time step) mesh coordinates stored in _old_nonlinear_solution, and constant velocity motion during each time step.
Activating this function ensures that local (but not neighbor!) element geometry is correctly repositioned when evaluating element residuals.
Currently sys
must be *this
for a tightly coupled moving mesh problem or nullptr to stop mesh movement; loosely coupled moving mesh problems are not implemented.
This code is experimental. "Trust but verify, and not in that order"
Definition at line 569 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_mesh_sys.
Referenced by SolidSystem::init_data().
|
inlinevirtualinherited |
Tells the DifferentiablePhysics that variable var
from the mesh system should be used to update the x coordinate of mesh nodes, in problems where the mesh itself is expected to move in time.
The system with mesh coordinate data (which may be this system itself, for fully coupled moving mesh problems) is currently assumed to have new (end of time step) mesh coordinates stored in solution, old (beginning of time step) mesh coordinates stored in _old_nonlinear_solution, and constant velocity motion during each time step.
Activating this function ensures that local (but not neighbor!) element geometry is correctly repositioned when evaluating element residuals.
Definition at line 589 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_mesh_x_var.
Referenced by SolidSystem::init_data().
|
inlinevirtualinherited |
Tells the DifferentiablePhysics that variable var
from the mesh system should be used to update the y coordinate of mesh nodes.
Definition at line 597 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_mesh_y_var.
Referenced by SolidSystem::init_data().
|
inlinevirtualinherited |
Tells the DifferentiablePhysics that variable var
from the mesh system should be used to update the z coordinate of mesh nodes.
Definition at line 605 of file diff_physics.h.
References libMesh::DifferentiablePhysics::_mesh_z_var.
Referenced by SolidSystem::init_data().
|
inlineinherited |
Definition at line 275 of file fem_system.h.
References libMesh::FEMSystem::_numerical_jacobian_h_for_var, and libMesh::Real.
|
inlineinherited |
Definition at line 1780 of file system.h.
References libMesh::System::project_with_constraints.
Referenced by libMesh::AdjointRefinementEstimator::estimate_error().
Definition at line 2326 of file system.C.
References libMesh::libmesh_assert(), and libMesh::System::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().
|
inherited |
Definition at line 2347 of file system.C.
References libMesh::System::qoi.
|
inherited |
Definition at line 2354 of file system.C.
References libMesh::libmesh_assert(), and libMesh::System::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().
|
inline |
Definition at line 71 of file heatsystem.h.
|
inlineinherited |
Sets the time_solver FIXME: This code is a little dangerous as it transfers ownership from the TimeSolver creator to this class.
The user must no longer access his original TimeSolver object after calling this function.
Definition at line 259 of file diff_system.h.
References libMesh::DifferentiableSystem::time_solver.
|
inherited |
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 libMesh::System::_vector_is_adjoint.
Referenced by libMesh::System::add_adjoint_solution(), and libMesh::System::add_weighted_sensitivity_adjoint_solution().
|
inherited |
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 libMesh::System::_vector_projections.
Referenced by libMesh::AdjointRefinementEstimator::estimate_error(), and main().
|
inlinevirtualinherited |
Adds the constraint contribution on side
of elem
to elem_residual.
If this method receives request_jacobian = true, then it should compute elem_jacobian and return true if possible. If elem_jacobian has not been computed then the method should return false.
Users may need to reimplement this for their particular PDE depending on the boundary conditions.
To implement a weak form of the constraint 0 = G(u), the user should examine u = elem_solution and add (G(u), phi_i) boundary integral contributions to elem_residual in side_constraint().
Reimplemented in LaplaceSystem, LaplaceSystem, LaplaceSystem, and NavierSystem.
Definition at line 195 of file diff_physics.h.
Referenced by libMesh::EulerSolver::side_residual(), libMesh::SteadySolver::side_residual(), libMesh::Euler2Solver::side_residual(), libMesh::EigenTimeSolver::side_residual(), and libMesh::NewmarkSolver::side_residual().
|
inlinevirtualinherited |
Subtracts a damping vector contribution on side
of elem
from elem_residual.
If this method receives request_jacobian = true, then it should compute elem_jacobian and return true if possible. If elem_jacobian has not been computed then the method should return false.
For most problems, the default implementation of "do nothing" is correct; users with boundary conditions including first time derivatives may need to reimplement this themselves.
Definition at line 378 of file diff_physics.h.
Referenced by libMesh::EulerSolver::side_residual(), libMesh::Euler2Solver::side_residual(), and libMesh::NewmarkSolver::side_residual().
|
inlinevirtualinherited |
Subtracts a mass vector contribution on side
of elem
from elem_residual.
If this method receives request_jacobian = true, then it should compute elem_jacobian and return true if possible. If elem_jacobian has not been computed then the method should return false.
For most problems, the default implementation of "do nothing" is correct; users with boundary conditions including time derivatives may need to reimplement this themselves.
Definition at line 320 of file diff_physics.h.
Referenced by libMesh::EulerSolver::side_residual(), libMesh::Euler2Solver::side_residual(), libMesh::EigenTimeSolver::side_residual(), and libMesh::NewmarkSolver::side_residual().
|
inlinevirtualinherited |
Does any work that needs to be done on side
of elem
in a postprocessing loop.
Reimplemented in LaplaceSystem, and LaplaceSystem.
Definition at line 305 of file diff_system.h.
|
inlinevirtualinherited |
Does any work that needs to be done on side
of elem
in a quantity of interest assembly loop, outputting to elem_qoi.
Only qois included in the supplied QoISet
need to be assembled.
Reimplemented in CoupledSystemQoI.
Definition at line 147 of file diff_qoi.h.
|
inlinevirtualinherited |
Does any work that needs to be done on side
of elem
in a quantity of interest derivative assembly loop, outputting to elem_qoi_derivative.
Only qois included in the supplied QoISet
need their derivatives assembled.
Reimplemented in LaplaceSystem, LaplaceSystem, and CoupledSystemQoI.
Definition at line 159 of file diff_qoi.h.
|
inlinevirtualinherited |
Adds the time derivative contribution on side
of elem
to elem_residual.
If this method receives request_jacobian = true, then it should compute elem_jacobian and return true if possible. If elem_jacobian has not been computed then the method should return false.
Users may need to reimplement this for their particular PDE depending on the boundary conditions.
To implement a weak form of the source term du/dt = F(u) on sides, such as might arise in a flux boundary condition, the user should examine u = elem_solution and add (F(u), phi_i) boundary integral contributions to elem_residual in side_constraint().
Reimplemented in ElasticitySystem, ElasticitySystem, CurlCurlSystem, CurlCurlSystem, and SolidSystem.
Definition at line 174 of file diff_physics.h.
Referenced by libMesh::EulerSolver::side_residual(), libMesh::SteadySolver::side_residual(), libMesh::Euler2Solver::side_residual(), libMesh::EigenTimeSolver::side_residual(), and libMesh::NewmarkSolver::side_residual().
|
overridevirtualinherited |
Invokes the solver associated with the system.
For steady state solvers, this will find a root x where F(x) = 0. For transient solvers, this will integrate dx/dt = F(x).
For moving mesh systems, this also translates the mesh to the solution position.
Reimplemented from libMesh::DifferentiableSystem.
Reimplemented in libMesh::ContinuationSystem.
Definition at line 1076 of file fem_system.C.
References libMesh::FEMSystem::mesh_position_set(), and libMesh::DifferentiableSystem::solve().
Referenced by main().
|
protectedinherited |
Definition at line 2032 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().
|
inherited |
Swap current physics object with external object.
This is deprecated.
Definition at line 349 of file diff_system.C.
References libMesh::DifferentiableSystem::_diff_physics, libMesh::ImplicitSystem::disable_cache(), and libMesh::libmesh_assert().
|
inlineinherited |
|
inlineoverridevirtualinherited |
"Implicit"
. Helps in identifying the system type in an equation system file. Reimplemented from libMesh::ExplicitSystem.
Reimplemented in libMesh::NonlinearImplicitSystem, libMesh::OptimizationSystem, libMesh::LinearImplicitSystem, libMesh::RBConstruction, libMesh::FrequencySystem, libMesh::TransientSystem< RBConstruction >, libMesh::NewmarkSystem, and SolidSystem.
Definition at line 116 of file implicit_system.h.
|
virtualinherited |
Method to combine thread-local qois.
By default, simply sums thread qois.
Definition at line 33 of file diff_qoi.C.
References libMesh::index_range().
|
virtualinherited |
Tells the DiffSystem that variable var is evolving with respect to time.
In general, the user's init() function should call time_evolving() with order 1 for any variables which behave like du/dt = F(u), with order 2 for any variables that behave like d^2u/dt^2 = F(u), and should not call time_evolving() for any variables which behave like 0 = G(u).
Most derived systems will not have to reimplement this function; however any system which reimplements mass_residual() may have to reimplement time_evolving() to prepare data structures.
Definition at line 41 of file diff_physics.C.
References libMesh::DifferentiablePhysics::_first_order_vars, libMesh::DifferentiablePhysics::_second_order_vars, and libMesh::DifferentiablePhysics::_time_evolving.
Referenced by libMesh::DifferentiableSystem::add_second_order_dot_vars(), SigmaPhysics::init_data(), CurlCurlSystem::init_data(), and init_data().
|
virtualinherited |
Update the local values to reflect the solution on neighboring processors.
Reimplemented in SolidSystem.
Definition at line 493 of file system.C.
References libMesh::System::_dof_map, libMesh::System::current_local_solution, libMesh::libmesh_assert(), and libMesh::System::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(), 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().
|
inherited |
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 libMesh::System::solution.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::ExactErrorEstimator::estimate_error(), main(), and libMesh::InterMeshProjection::project_system_vectors().
|
inherited |
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 libMesh::System::solution.
|
virtualinherited |
Calls user's attached assembly function, or is overridden by the user in derived classes.
Definition at line 2259 of file system.C.
References libMesh::System::_assemble_system_function, libMesh::System::_assemble_system_object, libMesh::System::_equation_systems, libMesh::System::Assembly::assemble(), and libMesh::System::name().
Referenced by libMesh::System::assemble().
|
virtualinherited |
Calls user's attached constraint function, or is overridden by the user in derived classes.
Definition at line 2273 of file system.C.
References libMesh::System::_constrain_system_function, libMesh::System::_constrain_system_object, libMesh::System::_equation_systems, libMesh::System::Constraint::constrain(), and libMesh::System::name().
Referenced by libMesh::System::reinit_constraints().
|
virtualinherited |
Calls user's attached initialization function, or is overridden by the user in derived classes.
Definition at line 2245 of file system.C.
References libMesh::System::_equation_systems, libMesh::System::_init_system_function, libMesh::System::_init_system_object, libMesh::System::Initialization::initialize(), and libMesh::System::name().
Referenced by libMesh::System::init(), libMesh::NewmarkSystem::initial_conditions(), and libMesh::System::reinit_mesh().
|
virtualinherited |
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 libMesh::System::_equation_systems, libMesh::System::_qoi_evaluate_function, libMesh::System::_qoi_evaluate_object, libMesh::System::name(), and libMesh::System::QOI::qoi().
Referenced by libMesh::System::assemble_qoi().
|
virtualinherited |
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 libMesh::System::_equation_systems, libMesh::System::_qoi_evaluate_derivative_function, libMesh::System::_qoi_evaluate_derivative_object, libMesh::System::name(), and libMesh::System::QOIDerivative::qoi_derivative().
Referenced by libMesh::System::assemble_qoi_derivative().
|
inlineinherited |
Return a constant reference to Variable
var
.
Definition at line 2377 of file system.h.
References libMesh::System::_variables.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DifferentiableSystem::add_second_order_dot_vars(), libMesh::System::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()(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::System::write_header(), libMesh::Nemesis_IO_Helper::write_nodal_solution(), libMesh::System::write_parallel_data(), libMesh::System::write_serialized_vector(), and libMesh::System::write_serialized_vectors().
|
inlineinherited |
Return a constant reference to VariableGroup
vg
.
Definition at line 2387 of file system.h.
References libMesh::System::_variable_groups.
Referenced by libMesh::FEMSystem::assembly(), libMesh::System::get_info(), and libMesh::System::init_data().
|
inlineinherited |
i
. Definition at line 2397 of file system.h.
References libMesh::System::_variables.
Referenced by libMesh::System::add_variable(), libMesh::System::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(), libMesh::System::write_header(), and libMesh::Nemesis_IO_Helper::write_nodal_solution().
|
inherited |
var
. Definition at line 1557 of file system.C.
References libMesh::System::_variable_numbers, libMesh::System::_variables, and libMesh::System::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(), libMesh::System::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(), libMesh::System::variable_scalar_number(), libMesh::System::variable_type(), libMesh::EnsightIO::write_scalar_ascii(), and libMesh::EnsightIO::write_vector_ascii().
|
inlineinherited |
variable_number(var)
Irony: currently our only non-scalar-valued variable type is SCALAR.
Definition at line 2408 of file system.h.
References libMesh::System::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()().
|
inlineinherited |
var_num
Irony: currently our only non-scalar-valued variable type is SCALAR.
Definition at line 2418 of file system.h.
References libMesh::System::_variables.
|
inlineinherited |
i
. Definition at line 2427 of file system.h.
References libMesh::System::_variables.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::System::add_variable(), libMesh::System::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(), libMesh::System::write_header(), libMesh::Nemesis_IO_Helper::write_nodal_solution(), libMesh::EnsightIO::write_scalar_ascii(), and libMesh::EnsightIO::write_vector_ascii().
|
inlineinherited |
var
. Definition at line 2437 of file system.h.
References libMesh::System::_variables, and libMesh::System::variable_number().
|
inherited |
Definition at line 1120 of file system.C.
References libMesh::System::_vector_is_adjoint, and libMesh::libmesh_assert().
Referenced by libMesh::InterMeshProjection::project_system_vectors(), and libMesh::System::restrict_vectors().
|
inherited |
vec_num
(where the vectors are counted starting with 0). Definition at line 958 of file system.C.
References libMesh::System::_vectors, and libMesh::System::vectors_begin().
Referenced by libMesh::AdjointRefinementEstimator::estimate_error(), and main().
|
inherited |
Definition at line 969 of file system.C.
References libMesh::System::_vectors, libMesh::NumericVector< T >::get(), libMesh::libmesh_assert(), libMesh::System::vectors_begin(), and libMesh::System::vectors_end().
|
inherited |
Definition at line 1097 of file system.C.
References libMesh::System::_vector_projections.
Referenced by libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::MemoryHistoryData::store_vectors(), SystemsTest::testAddVectorProjChange(), SystemsTest::testAddVectorTypeChange(), and SystemsTest::testPostInitAddVectorTypeChange().
|
inlineinherited |
Beginning of vectors container.
Definition at line 2483 of file system.h.
References libMesh::System::_vectors.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::System::get_vector(), libMesh::InterMeshProjection::project_system_vectors(), libMesh::System::request_vector(), libMesh::MemoryHistoryData::store_vectors(), and libMesh::System::vector_name().
|
inlineinherited |
Beginning of vectors container.
Definition at line 2489 of file system.h.
References libMesh::System::_vectors.
|
inlineinherited |
End of vectors container.
Definition at line 2495 of file system.h.
References libMesh::System::_vectors.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::InterMeshProjection::project_system_vectors(), libMesh::MemoryHistoryData::store_vectors(), and libMesh::System::vector_name().
|
inlineinherited |
End of vectors container.
Definition at line 2501 of file system.h.
References libMesh::System::_vectors.
|
overridevirtualinherited |
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
.
Reimplemented from libMesh::System.
Definition at line 220 of file implicit_system.C.
References libMesh::System::add_weighted_sensitivity_adjoint_solution(), libMesh::ExplicitSystem::assemble_qoi_derivative(), libMesh::ImplicitSystem::assembly(), libMesh::NumericVector< T >::close(), libMesh::SparseMatrix< T >::close(), libMesh::ParameterVector::deep_copy(), libMesh::DofMap::enforce_constraints_exactly(), libMesh::System::get_adjoint_rhs(), libMesh::System::get_adjoint_solution(), libMesh::System::get_dof_map(), libMesh::ImplicitSystem::get_linear_solve_parameters(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::SparseMatrix< T >::get_transpose(), libMesh::System::get_weighted_sensitivity_adjoint_solution(), libMesh::DofMap::has_adjoint_dirichlet_boundaries(), libMesh::QoISet::has_index(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::ImplicitSystem::matrix, libMesh::System::n_qois(), libMesh::Real, libMesh::ExplicitSystem::rhs, libMesh::LinearSolver< T >::solve(), libMesh::TOLERANCE, libMesh::ParameterVector::value_copy(), libMesh::SparseMatrix< T >::vector_mult_add(), and libMesh::NumericVector< T >::zero_clone().
Referenced by libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product().
|
overridevirtualinherited |
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
.
Reimplemented from libMesh::System.
Definition at line 366 of file implicit_system.C.
References libMesh::System::add_weighted_sensitivity_solution(), libMesh::ImplicitSystem::assembly(), libMesh::NumericVector< T >::clone(), libMesh::NumericVector< T >::close(), libMesh::SparseMatrix< T >::close(), libMesh::ParameterVector::deep_copy(), libMesh::DofMap::enforce_constraints_exactly(), libMesh::System::get_dof_map(), libMesh::ImplicitSystem::get_linear_solve_parameters(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::System::get_weighted_sensitivity_solution(), libMesh::ImplicitSystem::matrix, libMesh::Real, libMesh::ExplicitSystem::rhs, libMesh::LinearSolver< T >::solve(), libMesh::TOLERANCE, and libMesh::ParameterVector::value_copy().
Referenced by libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product().
|
inherited |
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 libMesh::System::_vector_projections, libMesh::System::_vectors, libMesh::Variable::active_subdomains(), libMesh::Xdr::data(), libMesh::FEType::family, libMesh::System::get_mesh(), libMesh::FEType::inf_map, libMesh::libmesh_assert(), libMesh::make_range(), libMesh::System::n_vars(), libMesh::System::n_vectors(), libMesh::System::name(), libMesh::FEType::order, libMesh::ParallelObject::processor_id(), libMesh::FEType::radial_family, libMesh::FEType::radial_order, libMesh::System::variable(), libMesh::System::variable_name(), libMesh::System::variable_type(), and libMesh::Xdr::writing().
Referenced by libMesh::RBEvaluation::write_out_vectors().
|
inherited |
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 libMesh::System::_vectors, libMesh::Xdr::data(), libMesh::FEType::family, libMesh::System::get_dof_map(), libMesh::System::get_mesh(), libMesh::DofObject::invalid_id, libMesh::libmesh_assert(), libMesh::make_range(), libMesh::ParallelObject::n_processors(), libMesh::System::n_vars(), libMesh::System::name(), libMesh::System::number(), libMesh::ParallelObject::processor_id(), libMesh::SCALAR, libMesh::DofMap::SCALAR_dof_indices(), libMesh::System::solution, libMesh::Variable::type(), libMesh::System::variable(), and libMesh::Xdr::writing().
|
inherited |
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 libMesh::System::_vectors, libMesh::Xdr::comment(), libMesh::System::name(), libMesh::ParallelObject::processor_id(), libMesh::System::solution, and libMesh::System::write_serialized_vector().
Referenced by libMesh::TransientRBConstruction::write_riesz_representors_to_files(), and libMesh::RBConstruction::write_riesz_representors_to_files().
|
inherited |
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(), libMesh::System::get_mesh(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::MeshTools::n_elem(), libMesh::MeshBase::n_elem(), n_nodes, libMesh::MeshBase::n_nodes(), libMesh::System::n_vars(), libMesh::ParallelObject::processor_id(), libMesh::SCALAR, libMesh::System::variable(), libMesh::System::write_SCALAR_dofs(), libMesh::System::write_serialized_blocked_dof_objects(), and libMesh::Xdr::writing().
Referenced by libMesh::RBEvaluation::write_out_vectors().
|
inherited |
Zeroes all dofs in v
that correspond to variable number var_num
.
Definition at line 1616 of file system.C.
References libMesh::System::get_mesh(), mesh, libMesh::System::n_vars(), libMesh::System::number(), and libMesh::NumericVector< T >::set().
|
protected |
Definition at line 136 of file heatsystem.h.
Referenced by element_time_derivative(), and init_data().
|
protected |
Definition at line 86 of file heatsystem.h.
|
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().
|
protectedinherited |
_constrain_in_solver defaults to true; if false then we apply constraints only via residual terms in the systems to be solved.
Definition at line 430 of file diff_system.h.
Referenced by libMesh::DifferentiableSystem::get_constrain_in_solver(), and libMesh::DifferentiableSystem::set_constrain_in_solver().
|
staticprotectedinherited |
Actually holds the data.
Definition at line 124 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::get_info().
|
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().
|
protected |
Definition at line 129 of file heatsystem.h.
Referenced by fe_family(), and init_data().
|
protected |
Definition at line 130 of file heatsystem.h.
Referenced by fe_order(), and init_data().
|
protectedinherited |
Variable indices for those variables that are first order in time.
Definition at line 548 of file diff_physics.h.
Referenced by libMesh::DifferentiablePhysics::get_first_order_vars(), libMesh::DifferentiablePhysics::have_first_order_vars(), libMesh::DifferentiablePhysics::is_first_order_var(), and libMesh::DifferentiablePhysics::time_evolving().
|
protected |
Definition at line 40 of file heatsystem.h.
|
protected |
Definition at line 120 of file heatsystem.h.
Referenced by HeatSystem(), and init_data().
|
protectedinherited |
System from which to acquire moving mesh information.
Definition at line 531 of file diff_physics.h.
Referenced by libMesh::FEMPhysics::eulerian_residual(), libMesh::DifferentiablePhysics::get_mesh_system(), libMesh::FEMSystem::mesh_position_get(), libMesh::FEMSystem::mesh_position_set(), libMesh::FEMSystem::numerical_jacobian(), and libMesh::DifferentiablePhysics::set_mesh_system().
|
protectedinherited |
Variables from which to acquire moving mesh information.
Definition at line 536 of file diff_physics.h.
Referenced by libMesh::FEMPhysics::eulerian_residual(), libMesh::DifferentiablePhysics::get_mesh_x_var(), libMesh::FEMSystem::mesh_position_get(), libMesh::FEMSystem::numerical_jacobian(), and libMesh::DifferentiablePhysics::set_mesh_x_var().
|
protectedinherited |
|
protectedinherited |
|
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().
|
protectedinherited |
If the user adds any second order variables, then we need to also cache the map to their corresponding dot variable that will be added by this TimeSolver class.
Definition at line 560 of file diff_physics.h.
Referenced by libMesh::DifferentiableSystem::add_second_order_dot_vars(), and libMesh::DifferentiableSystem::get_second_order_dot_var().
|
protectedinherited |
Variable indices for those variables that are second order in time.
Definition at line 553 of file diff_physics.h.
Referenced by libMesh::DifferentiablePhysics::get_second_order_vars(), libMesh::DifferentiablePhysics::have_second_order_vars(), libMesh::DifferentiablePhysics::is_second_order_var(), and libMesh::DifferentiablePhysics::time_evolving().
|
protectedinherited |
Stores unsigned int to tell us which variables are evolving as first order in time (1), second order in time (2), or are not time evolving (0).
Definition at line 543 of file diff_physics.h.
Referenced by libMesh::DifferentiablePhysics::clear_physics(), libMesh::DifferentiablePhysics::init_physics(), libMesh::DifferentiablePhysics::is_time_evolving(), and libMesh::DifferentiablePhysics::time_evolving().
|
inherited |
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(), libMesh::System::disable_cache(), main(), libMesh::RBConstruction::RBConstruction(), libMesh::RBSCMConstruction::RBSCMConstruction(), libMesh::ImplicitSystem::sensitivity_solve(), libMesh::EigenSystem::solve(), libMesh::CondensedEigenSystem::solve(), and libMesh::LinearImplicitSystem::solve().
|
inherited |
If assemble_qoi_elements
is false (it is true by default), the assembly loop for a quantity of interest or its derivatives will skip computing on mesh elements, and will only compute on mesh sides.
Definition at line 115 of file diff_qoi.h.
|
inherited |
If assemble_qoi_internal_sides
is true (it is false by default), the assembly loop for a quantity of interest or its derivatives will loop over element sides which do not fall on domain boundaries.
Definition at line 107 of file diff_qoi.h.
|
inherited |
If assemble_qoi_sides
is true (it is false by default), the assembly loop for a quantity of interest or its derivatives will loop over domain boundary sides.
To add domain interior sides, also set assemble_qoi_internal_sides to true.
Definition at line 99 of file diff_qoi.h.
Referenced by main().
|
inherited |
compute_internal_sides
is false by default, indicating that side_* computations will only be done on boundary sides.
If compute_internal_sides is true, computations will be done on sides between elements as well.
Definition at line 156 of file diff_physics.h.
|
protected |
Definition at line 126 of file heatsystem.h.
|
inherited |
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(), libMesh::System::clear(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::System::current_solution(), DMlibMeshFunction(), DMlibMeshJacobian(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), fe_assembly(), libMesh::System::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(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::FEMContext::pre_fe_reinit(), libMesh::RBEIMEvaluation::project_qp_data_map_onto_system(), libMesh::System::re_update(), libMesh::System::reinit(), libMesh::System::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(), libMesh::System::update(), libMesh::Nemesis_IO_Helper::write_element_values(), and libMesh::Nemesis_IO_Helper::write_nodal_solution().
|
inherited |
For time-dependent problems, this is the amount delta t to advance the solution in time.
Definition at line 278 of file diff_system.h.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::AdaptiveTimeSolver::adjoint_advance_timestep(), libMesh::UnsteadySolver::adjoint_advance_timestep(), libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::UnsteadySolver::adjoint_solve(), libMesh::NewmarkSolver::advance_timestep(), libMesh::UnsteadySolver::advance_timestep(), libMesh::FEMSystem::build_context(), libMesh::DifferentiableSystem::build_context(), libMesh::FEMSystem::init_context(), SolidSystem::init_data(), 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(), perturb_accumulate_residuals(), libMesh::MemorySolutionHistory::retrieve(), libMesh::FileSolutionHistory::retrieve(), set_system_parameters(), libMesh::TwostepTimeSolver::solve(), and libMesh::UnsteadySolver::solve().
|
protected |
Definition at line 143 of file heatsystem.h.
Referenced by perturb_accumulate_residuals().
|
protected |
Definition at line 146 of file heatsystem.h.
Referenced by perturb_accumulate_residuals().
|
inherited |
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().
|
inherited |
If fe_reinit_during_postprocess is true (it is true by default), FE objects will be reinit()ed with their default quadrature rules.
If false, FE objects will need to be reinit()ed by the user or will be in an undefined state.
Definition at line 176 of file fem_system.h.
|
protected |
Definition at line 149 of file heatsystem.h.
|
mutableinherited |
This class handles all the details of interfacing with various linear algebra packages like PETSc or LASPACK.
This is a public member for backwards compatibility reasons, but in general it's better to use get_linear_solver() to access this member, since that function will also handle initialization if it hasn't already been taken care of.
Definition at line 336 of file implicit_system.h.
Referenced by libMesh::LinearImplicitSystem::clear(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::ContinuationSystem::continuation_solve(), libMesh::ContinuationSystem::ContinuationSystem(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::LinearImplicitSystem::get_linear_solver(), libMesh::LinearImplicitSystem::init_data(), libMesh::LinearImplicitSystem::LinearImplicitSystem(), libMesh::LinearImplicitSystem::reinit(), libMesh::FrequencySystem::solve(), libMesh::LinearImplicitSystem::solve(), libMesh::ContinuationSystem::solve_tangent(), and libMesh::TransientRBConstruction::truth_solve().
|
inherited |
The system matrix.
Implicit systems are characterized by the need to solve the linear system Ax=b. This is the system matrix A.
Public access to this member variable will be deprecated in the future! Use get_system_matrix() instead.
Definition at line 319 of file implicit_system.h.
Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), add_M_C_K_helmholtz(), libMesh::ImplicitSystem::add_matrices(), libMesh::ImplicitSystem::adjoint_solve(), libMesh::ImplicitSystem::assemble(), assemble_func(), libMesh::FEMSystem::assembly(), libMesh::LinearImplicitSystem::assembly(), libMesh::NonlinearImplicitSystem::assembly(), libMesh::ImplicitSystem::clear(), libMesh::NewmarkSystem::compute_matrix(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::ContinuationSystem::continuation_solve(), DMCreateMatrix_libMesh(), DMlibMeshJacobian(), libMesh::RBConstruction::enrich_basis_from_rhs_terms(), fill_dirichlet_bc(), libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), libMesh::ImplicitSystem::get_system_matrix(), main(), periodic_bc_test_poisson(), libMesh::ImplicitSystem::qoi_parameter_hessian(), libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), libMesh::ImplicitSystem::sensitivity_solve(), libMesh::NewtonSolver::solve(), libMesh::PetscDiffSolver::solve(), libMesh::NoxNonlinearSolver< Number >::solve(), libMesh::EigenTimeSolver::solve(), libMesh::FrequencySystem::solve(), libMesh::LinearImplicitSystem::solve(), libMesh::NonlinearImplicitSystem::solve(), libMesh::ContinuationSystem::solve_tangent(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::TransientRBConstruction::truth_solve(), libMesh::RBConstruction::truth_solve(), libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve(), and libMesh::ImplicitSystem::weighted_sensitivity_solve().
|
inherited |
If calculating numeric jacobians is required, the FEMSystem will perturb each solution vector entry by numerical_jacobian_h when calculating finite differences.
This defaults to the libMesh TOLERANCE but can be set manually.
For ALE terms, the FEMSystem will perturb each mesh point in an element by numerical_jacobian_h * Elem::hmin()
Definition at line 187 of file fem_system.h.
Referenced by libMesh::FEMSystem::numerical_jacobian(), libMesh::FEMSystem::numerical_jacobian_h_for_var(), and set_system_parameters().
|
protected |
Definition at line 117 of file heatsystem.h.
|
protected |
Definition at line 113 of file heatsystem.h.
Referenced by element_time_derivative(), and init_data().
|
inherited |
If postprocess_sides
is true (it is false by default), the postprocessing loop will loop over all sides as well as all elements.
Definition at line 332 of file diff_system.h.
Referenced by main().
|
inherited |
Set print_element_jacobians to true to print each J_elem contribution.
Definition at line 379 of file diff_system.h.
Referenced by CurlCurlSystem::init_data(), main(), and set_system_parameters().
|
inherited |
Set print_element_residuals to true to print each R_elem contribution.
Definition at line 374 of file diff_system.h.
Referenced by main(), and set_system_parameters().
|
inherited |
Set print_element_solutions to true to print each U_elem input.
Definition at line 369 of file diff_system.h.
Referenced by main().
|
inherited |
Set print_jacobian_norms to true to print |J| whenever it is assembled.
Definition at line 359 of file diff_system.h.
Referenced by libMesh::FEMSystem::assembly(), main(), and set_system_parameters().
|
inherited |
Set print_jacobians to true to print J whenever it is assembled.
Definition at line 364 of file diff_system.h.
Referenced by libMesh::FEMSystem::assembly(), CurlCurlSystem::init_data(), main(), and set_system_parameters().
|
inherited |
Set print_residual_norms to true to print |F| whenever it is assembled.
Definition at line 349 of file diff_system.h.
Referenced by libMesh::FEMSystem::assembly(), main(), and set_system_parameters().
|
inherited |
Set print_residuals to true to print F whenever it is assembled.
Definition at line 354 of file diff_system.h.
Referenced by libMesh::FEMSystem::assembly(), main(), and set_system_parameters().
|
inherited |
Set print_residual_norms to true to print |U| whenever it is used in an assembly() call.
Definition at line 338 of file diff_system.h.
Referenced by libMesh::FEMSystem::assembly(), main(), and set_system_parameters().
|
inherited |
Set print_solutions to true to print U whenever it is used in an assembly() call.
Definition at line 344 of file diff_system.h.
Referenced by libMesh::FEMSystem::assembly(), main(), and set_system_parameters().
std::vector<Real> HeatSystem::QoI_time_instant |
Definition at line 47 of file heatsystem.h.
|
protected |
Definition at line 140 of file heatsystem.h.
Referenced by perturb_accumulate_residuals().
|
protected |
Definition at line 139 of file heatsystem.h.
Referenced by perturb_accumulate_residuals().
|
inherited |
The system matrix.
Implicit systems are characterized by the need to solve the linear system Ax=b. This is the right-hand-side vector b.
Definition at line 124 of file explicit_system.h.
Referenced by libMesh::__libmesh_petsc_diff_solver_residual(), add_M_C_K_helmholtz(), libMesh::ExplicitSystem::add_system_rhs(), assemble(), libMesh::ImplicitSystem::assemble(), LinearElasticity::assemble(), assemble_1D(), assemble_biharmonic(), assemble_divgrad(), assemble_elasticity(), assemble_ellipticdg(), assemble_func(), assemble_laplace(), assemble_matrix_and_rhs(), assemble_poisson(), libMesh::ImplicitSystem::assemble_residual_derivatives(), assemble_shell(), assemble_stokes(), assemble_wave(), libMesh::FEMSystem::assembly(), libMesh::LinearImplicitSystem::assembly(), libMesh::NonlinearImplicitSystem::assembly(), assembly_with_dg_fem_context(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::Problem_Interface::computeF(), libMesh::ContinuationSystem::continuation_solve(), DMlibMeshFunction(), libMesh::RBConstruction::enrich_basis_from_rhs_terms(), fill_dirichlet_bc(), libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), libMesh::NewtonSolver::line_search(), periodic_bc_test_poisson(), perturb_accumulate_residuals(), libMesh::ImplicitSystem::qoi_parameter_hessian(), libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), libMesh::NewtonSolver::solve(), libMesh::PetscDiffSolver::solve(), libMesh::FrequencySystem::solve(), libMesh::LinearImplicitSystem::solve(), libMesh::NonlinearImplicitSystem::solve(), libMesh::ContinuationSystem::solve_tangent(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::TransientRBConstruction::truth_solve(), libMesh::RBConstruction::truth_solve(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::NewmarkSystem::update_rhs(), libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve(), and libMesh::ImplicitSystem::weighted_sensitivity_solve().
|
inherited |
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(), libMesh::System::clear(), libMesh::System::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(), libMesh::System::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(), libMesh::System::re_update(), libMesh::System::read_legacy_data(), libMesh::System::read_parallel_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_serialized_data(), libMesh::System::reinit(), libMesh::System::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(), libMesh::System::update(), libMesh::System::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(), libMesh::System::write_parallel_data(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), and libMesh::System::write_serialized_data().
|
protected |
Definition at line 133 of file heatsystem.h.
Referenced by init_data().
|
protected |
Definition at line 123 of file heatsystem.h.
|
inherited |
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(), 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()(), libMesh::System::reinit_constraints(), libMesh::UnsteadySolver::retrieve_timestep(), and libMesh::TwostepTimeSolver::solve().
|
inherited |
A pointer to the solver object we're going to use.
This must be instantiated by the user before solving!
Definition at line 251 of file diff_system.h.
Referenced by libMesh::DifferentiableSystem::adjoint_solve(), libMesh::FEMSystem::assembly(), libMesh::ContinuationSystem::continuation_solve(), libMesh::DifferentiableSystem::get_linear_solve_parameters(), libMesh::DifferentiableSystem::get_linear_solver(), libMesh::DifferentiableSystem::get_second_order_dot_var(), libMesh::DifferentiableSystem::get_time_solver(), SolidSystem::init_data(), libMesh::DifferentiableSystem::init_data(), main(), libMesh::DifferentiableSystem::reinit(), libMesh::DifferentiableSystem::set_constrain_in_solver(), set_system_parameters(), libMesh::DifferentiableSystem::set_time_solver(), SolidSystem::SolidSystem(), libMesh::DifferentiableSystem::solve(), libMesh::ContinuationSystem::solve_tangent(), libMesh::MemoryHistoryData::store_primal_solution(), and libMesh::FileHistoryData::store_primal_solution().
|
inherited |
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().
|
inherited |
If verify_analytic_jacobian is equal to zero (as it is by default), no numeric jacobians will be calculated unless an overridden element_time_derivative(), element_constraint(), side_time_derivative(), or side_constraint() function cannot provide an analytic jacobian upon request.
If verify_analytic_jacobian is equal to the positive value tol, then any time a full analytic element jacobian can be calculated it will be tested against a numerical jacobian on the same element, and the program will abort if the relative error (in matrix l1 norms) exceeds tol.
Definition at line 215 of file fem_system.h.
Referenced by libMesh::FEMSystem::assembly(), CurlCurlSystem::init_data(), and set_system_parameters().
|
inherited |
By default, the system will zero out the matrix and the right hand side.
If this flag is false, it is the responsibility of the client code to take care of setting these to zero before assembly begins
Definition at line 326 of file implicit_system.h.
Referenced by libMesh::ImplicitSystem::assemble().