libMesh
|
This class provides all data required for a physics package (e.g. More...
#include <diff_context.h>
Public Types | |
typedef std::map< const NumericVector< Number > *, std::pair< DenseVector< Number >, std::vector< DenseSubVector< Number > > > >::iterator | localized_vectors_iterator |
Typedef for the localized_vectors iterator. More... | |
Public Member Functions | |
DiffContext (const System &, bool allocate_local_matrices=true) | |
Constructor. More... | |
virtual | ~DiffContext () |
Destructor. More... | |
virtual void | elem_reinit (Real) |
Gives derived classes the opportunity to reinitialize data (FE objects in FEMSystem, for example) needed for an interior integration at a new point within a timestep. More... | |
virtual void | elem_side_reinit (Real) |
Gives derived classes the opportunity to reinitialize data needed for a side integration at a new point within a timestep. More... | |
virtual void | elem_edge_reinit (Real) |
Gives derived classes the opportunity to reinitialize data needed for an edge integration at a new point within a timestep. More... | |
virtual void | nonlocal_reinit (Real) |
Gives derived classes the opportunity to reinitialize data needed for nonlocal calculations at a new point within a timestep. More... | |
unsigned int | n_vars () const |
Number of variables in solution. More... | |
const System & | get_system () const |
Accessor for associated system. More... | |
const DenseVector< Number > & | get_elem_solution () const |
Accessor for element solution. More... | |
DenseVector< Number > & | get_elem_solution () |
Non-const accessor for element solution. More... | |
const DenseSubVector< Number > & | get_elem_solution (unsigned int var) const |
Accessor for element solution of a particular variable corresponding to the variable index argument. More... | |
DenseSubVector< Number > & | get_elem_solution (unsigned int var) |
Accessor for element solution of a particular variable corresponding to the variable index argument. More... | |
const DenseVector< Number > & | get_elem_solution_rate () const |
Accessor for element solution rate of change w.r.t. More... | |
DenseVector< Number > & | get_elem_solution_rate () |
Non-const accessor for element solution rate of change w.r.t. More... | |
const DenseSubVector< Number > & | get_elem_solution_rate (unsigned int var) const |
Accessor for element solution rate for a particular variable corresponding to the variable index argument. More... | |
DenseSubVector< Number > & | get_elem_solution_rate (unsigned int var) |
Accessor for element solution rate for a particular variable corresponding to the variable index argument. More... | |
const DenseVector< Number > & | get_elem_solution_accel () const |
Accessor for element solution accel of change w.r.t. More... | |
DenseVector< Number > & | get_elem_solution_accel () |
Non-const accessor for element solution accel of change w.r.t. More... | |
const DenseSubVector< Number > & | get_elem_solution_accel (unsigned int var) const |
Accessor for element solution accel for a particular variable corresponding to the variable index argument. More... | |
DenseSubVector< Number > & | get_elem_solution_accel (unsigned int var) |
Accessor for element solution accel for a particular variable corresponding to the variable index argument. More... | |
const DenseVector< Number > & | get_elem_fixed_solution () const |
Accessor for element fixed solution. More... | |
DenseVector< Number > & | get_elem_fixed_solution () |
Non-const accessor for element fixed solution. More... | |
const DenseSubVector< Number > & | get_elem_fixed_solution (unsigned int var) const |
Accessor for element fixed solution of a particular variable corresponding to the variable index argument. More... | |
DenseSubVector< Number > & | get_elem_fixed_solution (unsigned int var) |
Accessor for element fixed solution of a particular variable corresponding to the variable index argument. More... | |
const DenseVector< Number > & | get_elem_residual () const |
Const accessor for element residual. More... | |
DenseVector< Number > & | get_elem_residual () |
Non-const accessor for element residual. More... | |
const DenseSubVector< Number > & | get_elem_residual (unsigned int var) const |
Const accessor for element residual of a particular variable corresponding to the variable index argument. More... | |
DenseSubVector< Number > & | get_elem_residual (unsigned int var) |
Non-const accessor for element residual of a particular variable corresponding to the variable index argument. More... | |
const DenseMatrix< Number > & | get_elem_jacobian () const |
Const accessor for element Jacobian. More... | |
DenseMatrix< Number > & | get_elem_jacobian () |
Non-const accessor for element Jacobian. More... | |
const DenseSubMatrix< Number > & | get_elem_jacobian (unsigned int var1, unsigned int var2) const |
Const accessor for element Jacobian of particular variables corresponding to the variable index arguments. More... | |
DenseSubMatrix< Number > & | get_elem_jacobian (unsigned int var1, unsigned int var2) |
Non-const accessor for element Jacobian of particular variables corresponding to the variable index arguments. More... | |
const std::vector< Number > & | get_qois () const |
Const accessor for QoI vector. More... | |
std::vector< Number > & | get_qois () |
Non-const accessor for QoI vector. More... | |
const std::vector< DenseVector< Number > > & | get_qoi_derivatives () const |
Const accessor for QoI derivatives. More... | |
std::vector< DenseVector< Number > > & | get_qoi_derivatives () |
Non-const accessor for QoI derivatives. More... | |
const DenseSubVector< Number > & | get_qoi_derivatives (std::size_t qoi, unsigned int var) const |
Const accessor for QoI derivative of a particular qoi and variable corresponding to the index arguments. More... | |
DenseSubVector< Number > & | get_qoi_derivatives (std::size_t qoi, unsigned int var) |
Non-const accessor for QoI derivative of a particular qoi and variable corresponding to the index arguments. More... | |
const std::vector< dof_id_type > & | get_dof_indices () const |
Accessor for element dof indices. More... | |
std::vector< dof_id_type > & | get_dof_indices () |
Non-const accessor for element dof indices. More... | |
const std::vector< dof_id_type > & | get_dof_indices (unsigned int var) const |
Accessor for element dof indices of a particular variable corresponding to the index argument. More... | |
std::vector< dof_id_type > & | get_dof_indices (unsigned int var) |
Accessor for element dof indices of a particular variable corresponding to the index argument. More... | |
unsigned int | n_dof_indices () const |
Total number of dof indices on the element. More... | |
unsigned int | n_dof_indices (unsigned int var) const |
Total number of dof indices of the particular variable corresponding to the index argument. More... | |
Real | get_system_time () const |
Accessor for the time variable stored in the system class. More... | |
Real | get_time () const |
Accessor for the time for which the current nonlinear_solution is defined. More... | |
void | set_time (Real time_in) |
Set the time for which the current nonlinear_solution is defined. More... | |
Real | get_elem_solution_derivative () const |
The derivative of the current elem_solution w.r.t. More... | |
Real | get_elem_solution_rate_derivative () const |
The derivative of the current elem_solution_rate w.r.t. More... | |
Real | get_elem_solution_accel_derivative () const |
The derivative of the current elem_solution_accel w.r.t. More... | |
Real | get_fixed_solution_derivative () const |
The derivative of the current fixed_elem_solution w.r.t. More... | |
bool | is_adjoint () const |
Accessor for querying whether we need to do a primal or adjoint solve. More... | |
bool & | is_adjoint () |
Accessor for setting whether we need to do a primal or adjoint solve. More... | |
void | set_deltat_pointer (Real *dt) |
Points the _deltat member of this class at a timestep value stored in the creating System, for example DiffSystem::deltat. More... | |
Real | get_deltat_value () |
void | add_localized_vector (NumericVector< Number > &localized_vector, const System &sys) |
Adds a vector to the map of localized vectors. More... | |
DenseVector< Number > & | get_localized_vector (const NumericVector< Number > &localized_vector) |
Return a reference to DenseVector localization of localized_vector contained in the _localized_vectors map. More... | |
const DenseVector< Number > & | get_localized_vector (const NumericVector< Number > &localized_vector) const |
const accessible version of get_localized_vector function More... | |
DenseSubVector< Number > & | get_localized_subvector (const NumericVector< Number > &localized_vector, unsigned int var) |
Return a reference to DenseSubVector localization of localized_vector at variable var contained in the _localized_vectors map. More... | |
const DenseSubVector< Number > & | get_localized_subvector (const NumericVector< Number > &localized_vector, unsigned int var) const |
const accessible version of get_localized_subvector function More... | |
Public Attributes | |
Real | time |
For time-dependent problems, this is the time t for which the current nonlinear_solution is defined. More... | |
const Real | system_time |
This is the time stored in the System class at the time this context was created, i.e. More... | |
Real | elem_solution_derivative |
The derivative of elem_solution with respect to the current nonlinear solution. More... | |
Real | elem_solution_rate_derivative |
The derivative of elem_solution_rate with respect to the current nonlinear solution, for use by systems with non default mass_residual terms. More... | |
Real | elem_solution_accel_derivative |
The derivative of elem_solution_accel with respect to the current nonlinear solution, for use by systems with non default mass_residual terms. More... | |
Real | fixed_solution_derivative |
The derivative of elem_fixed_solution with respect to the nonlinear solution, for use by systems constructing jacobians with elem_fixed_solution based methods. More... | |
Protected Attributes | |
std::map< const NumericVector< Number > *, std::pair< DenseVector< Number >, std::vector< DenseSubVector< Number > > > > | _localized_vectors |
Contains pointers to vectors the user has asked to be localized, keyed with pairs of element localized versions of that vector and per variable views. More... | |
const bool | _have_local_matrices |
Whether we have local matrices allocated/initialized. More... | |
DenseVector< Number > | _elem_solution |
Element by element components of nonlinear_solution as adjusted by a time_solver. More... | |
std::vector< DenseSubVector< Number > > | _elem_subsolutions |
DenseVector< Number > | _elem_solution_rate |
Element by element components of du/dt as adjusted by a time_solver. More... | |
std::vector< DenseSubVector< Number > > | _elem_subsolution_rates |
DenseVector< Number > | _elem_solution_accel |
Element by element components of du/dt as adjusted by a time_solver. More... | |
std::vector< DenseSubVector< Number > > | _elem_subsolution_accels |
DenseVector< Number > | _elem_fixed_solution |
Element by element components of nonlinear_solution at a fixed point in a timestep, for optional use by e.g. More... | |
std::vector< DenseSubVector< Number > > | _elem_fixed_subsolutions |
DenseVector< Number > | _elem_residual |
Element residual vector. More... | |
DenseMatrix< Number > | _elem_jacobian |
Element jacobian: derivatives of elem_residual with respect to elem_solution. More... | |
std::vector< Number > | _elem_qoi |
Element quantity of interest contributions. More... | |
std::vector< DenseVector< Number > > | _elem_qoi_derivative |
Element quantity of interest derivative contributions. More... | |
std::vector< std::vector< DenseSubVector< Number > > > | _elem_qoi_subderivatives |
std::vector< DenseSubVector< Number > > | _elem_subresiduals |
Element residual subvectors and (if _have_local_matrices ) Jacobian submatrices. More... | |
std::vector< std::vector< DenseSubMatrix< Number > > > | _elem_subjacobians |
std::vector< dof_id_type > | _dof_indices |
Global Degree of freedom index lists. More... | |
std::vector< std::vector< dof_id_type > > | _dof_indices_var |
Private Attributes | |
Real * | _deltat |
Defaults to nullptr, can optionally be used to point to a timestep value in the System-derived class responsible for creating this DiffContext. More... | |
const System & | _system |
A reference to the system this context is constructed with. More... | |
bool | _is_adjoint |
Is this context to be used for a primal or adjoint solve? More... | |
This class provides all data required for a physics package (e.g.
a DifferentiableSystem subclass) to perform local element residual and jacobian integrations.
This class is part of the new DifferentiableSystem framework, which is still experimental. Users of this framework should beware of bugs and future API changes.
Definition at line 55 of file diff_context.h.
typedef std::map<const NumericVector<Number> *, std::pair<DenseVector<Number>, std::vector<DenseSubVector<Number> > > >::iterator libMesh::DiffContext::localized_vectors_iterator |
Typedef for the localized_vectors iterator.
Definition at line 540 of file diff_context.h.
|
explicit |
Constructor.
Optionally initializes required data structures.
Definition at line 32 of file diff_context.C.
References _elem_fixed_solution, _elem_fixed_subsolutions, _elem_jacobian, _elem_qoi, _elem_qoi_derivative, _elem_qoi_subderivatives, _elem_residual, _elem_solution, _elem_solution_accel, _elem_solution_rate, _elem_subjacobians, _elem_subresiduals, _elem_subsolution_accels, _elem_subsolution_rates, _elem_subsolutions, libMesh::DifferentiablePhysics::get_second_order_vars(), libMesh::DifferentiableSystem::get_time_solver(), libMesh::TimeSolver::is_steady(), libMesh::System::n_qois(), libMesh::System::n_vars(), libMesh::UnsteadySolver::time_order(), and libMesh::System::use_fixed_solution.
|
virtualdefault |
Destructor.
void libMesh::DiffContext::add_localized_vector | ( | NumericVector< Number > & | localized_vector, |
const System & | sys | ||
) |
Adds a vector to the map of localized vectors.
We can later evaluate interior_values, interior_gradients and side_values for these fields these vectors represent.
Definition at line 125 of file diff_context.C.
References _localized_vectors, and libMesh::System::n_vars().
|
inlinevirtual |
Gives derived classes the opportunity to reinitialize data needed for an edge integration at a new point within a timestep.
Reimplemented in libMesh::FEMContext.
Definition at line 89 of file diff_context.h.
|
inlinevirtual |
Gives derived classes the opportunity to reinitialize data (FE objects in FEMSystem, for example) needed for an interior integration at a new point within a timestep.
Reimplemented in libMesh::FEMContext.
Definition at line 77 of file diff_context.h.
Referenced by libMesh::EulerSolver::element_residual(), libMesh::Euler2Solver::element_residual(), and libMesh::NewmarkSolver::element_residual().
|
inlinevirtual |
Gives derived classes the opportunity to reinitialize data needed for a side integration at a new point within a timestep.
Reimplemented in libMesh::FEMContext.
Definition at line 83 of file diff_context.h.
Referenced by libMesh::EulerSolver::side_residual(), libMesh::Euler2Solver::side_residual(), and libMesh::NewmarkSolver::side_residual().
Real libMesh::DiffContext::get_deltat_value | ( | ) |
_deltat
member Definition at line 117 of file diff_context.C.
References _deltat, and libMesh::libmesh_assert().
Referenced by libMesh::FEMContext::_update_time_from_system().
|
inline |
Accessor for element dof indices.
Definition at line 363 of file diff_context.h.
References _dof_indices.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), assembly_with_dg_fem_context(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyA2::boundary_assembly(), AssemblyF2::boundary_assembly(), A2::boundary_assembly(), A3::boundary_assembly(), F0::boundary_assembly(), Output0::boundary_assembly(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), FirstOrderScalarSystemBase::element_time_derivative(), SecondOrderScalarSystemFirstOrderTimeSolverBase::element_time_derivative(), libMesh::FEMContext::fixed_point_gradient(), libMesh::FEMContext::fixed_point_hessian(), libMesh::FEMContext::fixed_point_value(), A0::interior_assembly(), B::interior_assembly(), M0::interior_assembly(), A1::interior_assembly(), AssemblyA0::interior_assembly(), AcousticsInnerProduct::interior_assembly(), AssemblyA1::interior_assembly(), A2::interior_assembly(), AssemblyA2::interior_assembly(), F0::interior_assembly(), OutputAssembly::interior_assembly(), EIM_IP_assembly::interior_assembly(), EIM_F::interior_assembly(), AssemblyEIM::interior_assembly(), InnerProductAssembly::interior_assembly(), AssemblyF0::interior_assembly(), AssemblyF1::interior_assembly(), Ex6InnerProduct::interior_assembly(), libMesh::FEMContext::interior_curl(), libMesh::FEMContext::interior_div(), libMesh::FEMContext::interior_gradients(), libMesh::FEMContext::interior_hessians(), libMesh::FEMContext::interior_values(), libMesh::FEMPhysics::mass_residual(), FirstOrderScalarSystemBase::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual(), libMesh::FEMSystem::mesh_position_get(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), libMesh::FEMSystem::numerical_jacobian(), libMesh::FEMContext::point_curl(), libMesh::FEMContext::point_gradient(), libMesh::FEMContext::point_hessian(), libMesh::FEMContext::point_value(), libMesh::FEMContext::pre_fe_reinit(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), libMesh::FEMContext::side_gradient(), libMesh::FEMContext::side_gradients(), libMesh::FEMContext::side_hessians(), libMesh::FEMContext::side_values(), libMesh::FEMContext::some_gradient(), libMesh::FEMContext::some_hessian(), and libMesh::FEMContext::some_value().
|
inline |
Non-const accessor for element dof indices.
Definition at line 369 of file diff_context.h.
References _dof_indices.
|
inline |
Accessor for element dof indices of a particular variable corresponding to the index argument.
Definition at line 376 of file diff_context.h.
References _dof_indices_var.
|
inline |
Accessor for element dof indices of a particular variable corresponding to the index argument.
Definition at line 386 of file diff_context.h.
References _dof_indices_var.
|
inline |
Accessor for element fixed solution.
Definition at line 210 of file diff_context.h.
References _elem_fixed_solution.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::SteadySolver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::FEMContext::fixed_interior_gradient(), libMesh::FEMContext::fixed_interior_hessian(), libMesh::FEMContext::fixed_interior_value(), libMesh::FEMContext::fixed_point_gradient(), libMesh::FEMContext::fixed_point_hessian(), libMesh::FEMContext::fixed_point_value(), libMesh::FEMContext::fixed_side_gradient(), libMesh::FEMContext::fixed_side_hessian(), libMesh::FEMContext::fixed_side_value(), and libMesh::FEMContext::pre_fe_reinit().
|
inline |
Non-const accessor for element fixed solution.
Definition at line 216 of file diff_context.h.
References _elem_fixed_solution.
|
inline |
Accessor for element fixed solution of a particular variable corresponding to the variable index argument.
Definition at line 223 of file diff_context.h.
References _elem_fixed_subsolutions.
|
inline |
Accessor for element fixed solution of a particular variable corresponding to the variable index argument.
Definition at line 233 of file diff_context.h.
References _elem_fixed_subsolutions.
|
inline |
Const accessor for element Jacobian.
Definition at line 274 of file diff_context.h.
References _elem_jacobian, _have_local_matrices, and libMesh::libmesh_assert().
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::FEMSystem::assembly(), assembly_with_dg_fem_context(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyA2::boundary_assembly(), A2::boundary_assembly(), A3::boundary_assembly(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), NavierSystem::element_constraint(), CoupledSystem::element_constraint(), libMesh::EigenTimeSolver::element_residual(), NavierSystem::element_time_derivative(), SolidSystem::element_time_derivative(), LaplaceSystem::element_time_derivative(), PoissonSystem::element_time_derivative(), CurlCurlSystem::element_time_derivative(), ElasticitySystem::element_time_derivative(), L2System::element_time_derivative(), CoupledSystem::element_time_derivative(), HeatSystem::element_time_derivative(), B::interior_assembly(), A0::interior_assembly(), M0::interior_assembly(), A1::interior_assembly(), AssemblyA0::interior_assembly(), AcousticsInnerProduct::interior_assembly(), AssemblyA1::interior_assembly(), A2::interior_assembly(), AssemblyA2::interior_assembly(), EIM_IP_assembly::interior_assembly(), AssemblyEIM::interior_assembly(), InnerProductAssembly::interior_assembly(), Ex6InnerProduct::interior_assembly(), NavierSystem::mass_residual(), ElasticitySystem::mass_residual(), libMesh::FEMPhysics::mass_residual(), FirstOrderScalarSystemBase::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), libMesh::EigenTimeSolver::nonlocal_residual(), libMesh::FEMSystem::numerical_jacobian(), libMesh::FEMContext::pre_fe_reinit(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), NavierSystem::side_constraint(), LaplaceSystem::side_constraint(), libMesh::EigenTimeSolver::side_residual(), SolidSystem::side_time_derivative(), and CurlCurlSystem::side_time_derivative().
|
inline |
Non-const accessor for element Jacobian.
Definition at line 283 of file diff_context.h.
References _elem_jacobian, _have_local_matrices, and libMesh::libmesh_assert().
|
inline |
Const accessor for element Jacobian of particular variables corresponding to the variable index arguments.
Definition at line 293 of file diff_context.h.
References _elem_subjacobians, _have_local_matrices, and libMesh::libmesh_assert().
|
inline |
Non-const accessor for element Jacobian of particular variables corresponding to the variable index arguments.
Only available if _have_local_matrices
Definition at line 306 of file diff_context.h.
References _elem_subjacobians, _have_local_matrices, and libMesh::libmesh_assert().
|
inline |
Const accessor for element residual.
Definition at line 242 of file diff_context.h.
References _elem_residual.
Referenced by libMesh::Euler2Solver::_general_residual(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::FEMSystem::assembly(), assembly_with_dg_fem_context(), AssemblyF0::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyF2::boundary_assembly(), F0::boundary_assembly(), Output0::boundary_assembly(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), NavierSystem::element_constraint(), CoupledSystem::element_constraint(), NavierSystem::element_time_derivative(), SolidSystem::element_time_derivative(), LaplaceSystem::element_time_derivative(), PoissonSystem::element_time_derivative(), CurlCurlSystem::element_time_derivative(), ElasticitySystem::element_time_derivative(), L2System::element_time_derivative(), CoupledSystem::element_time_derivative(), HeatSystem::element_time_derivative(), FirstOrderScalarSystemBase::element_time_derivative(), SecondOrderScalarSystemFirstOrderTimeSolverBase::element_time_derivative(), F0::interior_assembly(), OutputAssembly::interior_assembly(), EIM_F::interior_assembly(), AssemblyF0::interior_assembly(), AssemblyF1::interior_assembly(), NavierSystem::mass_residual(), ElasticitySystem::mass_residual(), libMesh::FEMPhysics::mass_residual(), FirstOrderScalarSystemBase::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), libMesh::FEMSystem::numerical_jacobian(), libMesh::FEMContext::pre_fe_reinit(), NavierSystem::side_constraint(), LaplaceSystem::side_constraint(), SolidSystem::side_time_derivative(), CurlCurlSystem::side_time_derivative(), and ElasticitySystem::side_time_derivative().
|
inline |
Non-const accessor for element residual.
Definition at line 248 of file diff_context.h.
References _elem_residual.
|
inline |
Const accessor for element residual of a particular variable corresponding to the variable index argument.
Definition at line 255 of file diff_context.h.
References _elem_subresiduals.
|
inline |
Non-const accessor for element residual of a particular variable corresponding to the variable index argument.
Definition at line 265 of file diff_context.h.
References _elem_subresiduals.
|
inline |
Accessor for element solution.
Definition at line 112 of file diff_context.h.
References _elem_solution.
Referenced by libMesh::FEMContext::_do_elem_position_set(), libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::SteadySolver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::FEMContext::elem_position_get(), libMesh::FEMContext::interior_curl(), libMesh::FEMContext::interior_div(), libMesh::FEMContext::interior_gradient(), libMesh::FEMContext::interior_hessian(), libMesh::FEMContext::interior_value(), libMesh::FEMSystem::mesh_position_get(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), libMesh::FEMSystem::numerical_jacobian(), libMesh::FEMContext::point_curl(), libMesh::FEMContext::point_gradient(), libMesh::FEMContext::point_hessian(), libMesh::FEMContext::point_value(), libMesh::FEMContext::pre_fe_reinit(), libMesh::FEMContext::side_gradient(), libMesh::FEMContext::side_hessian(), and libMesh::FEMContext::side_value().
|
inline |
Non-const accessor for element solution.
Definition at line 118 of file diff_context.h.
References _elem_solution.
|
inline |
Accessor for element solution of a particular variable corresponding to the variable index argument.
Definition at line 125 of file diff_context.h.
References _elem_subsolutions.
|
inline |
Accessor for element solution of a particular variable corresponding to the variable index argument.
Definition at line 135 of file diff_context.h.
References _elem_subsolutions.
|
inline |
Accessor for element solution accel of change w.r.t.
time.
Definition at line 177 of file diff_context.h.
References _elem_solution_accel.
Referenced by libMesh::NewmarkSolver::_general_residual(), libMesh::FEMContext::interior_accel(), libMesh::FEMContext::pre_fe_reinit(), libMesh::FirstOrderUnsteadySolver::prepare_accel(), and libMesh::FEMContext::side_accel().
|
inline |
Non-const accessor for element solution accel of change w.r.t.
time.
Definition at line 184 of file diff_context.h.
References _elem_solution_accel.
|
inline |
Accessor for element solution accel for a particular variable corresponding to the variable index argument.
Definition at line 191 of file diff_context.h.
References _elem_subsolution_accels.
|
inline |
Accessor for element solution accel for a particular variable corresponding to the variable index argument.
Definition at line 201 of file diff_context.h.
References _elem_subsolution_accels.
|
inline |
The derivative of the current elem_solution_accel w.r.t.
the unknown solution. Corresponding Jacobian contributions should be multiplied by this amount, or may be skipped if get_elem_solution_accel_derivative() is 0.
Definition at line 450 of file diff_context.h.
References elem_solution_accel_derivative.
Referenced by ElasticitySystem::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), and SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual().
|
inline |
The derivative of the current elem_solution w.r.t.
the unknown solution. Corresponding Jacobian contributions should be multiplied by this amount, or may be skipped if get_elem_solution_derivative() is 0.
Definition at line 432 of file diff_context.h.
References elem_solution_derivative.
Referenced by libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), NavierSystem::element_constraint(), ElasticitySystem::element_time_derivative(), L2System::element_time_derivative(), HeatSystem::element_time_derivative(), NavierSystem::mass_residual(), and NavierSystem::side_constraint().
|
inline |
Accessor for element solution rate of change w.r.t.
time.
Definition at line 144 of file diff_context.h.
References _elem_solution_rate.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::FEMContext::interior_rate(), libMesh::FEMContext::interior_rate_gradient(), libMesh::FEMContext::pre_fe_reinit(), libMesh::FirstOrderUnsteadySolver::prepare_accel(), and libMesh::FEMContext::side_rate().
|
inline |
Non-const accessor for element solution rate of change w.r.t.
time.
Definition at line 151 of file diff_context.h.
References _elem_solution_rate.
|
inline |
Accessor for element solution rate for a particular variable corresponding to the variable index argument.
Definition at line 158 of file diff_context.h.
References _elem_subsolution_rates.
|
inline |
Accessor for element solution rate for a particular variable corresponding to the variable index argument.
Definition at line 168 of file diff_context.h.
References _elem_subsolution_rates.
|
inline |
The derivative of the current elem_solution_rate w.r.t.
the unknown solution. Corresponding Jacobian contributions should be multiplied by this amount, or may be skipped if get_elem_solution_rate_derivative() is 0.
Definition at line 441 of file diff_context.h.
References elem_solution_rate_derivative.
Referenced by libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), FirstOrderScalarSystemBase::mass_residual(), and libMesh::FirstOrderUnsteadySolver::prepare_accel().
|
inline |
The derivative of the current fixed_elem_solution w.r.t.
the unknown solution. Corresponding Jacobian contributions should be multiplied by this amount, or may be skipped if get_fixed_elem_solution_derivative() is 0.
Definition at line 459 of file diff_context.h.
References fixed_solution_derivative.
DenseSubVector< Number > & libMesh::DiffContext::get_localized_subvector | ( | const NumericVector< Number > & | localized_vector, |
unsigned int | var | ||
) |
Return a reference to DenseSubVector localization of localized_vector at variable var contained in the _localized_vectors map.
Definition at line 154 of file diff_context.C.
References _localized_vectors.
Referenced by libMesh::FEMContext::interior_gradients(), libMesh::FEMContext::interior_hessians(), libMesh::FEMContext::interior_values(), libMesh::FEMContext::side_gradients(), libMesh::FEMContext::side_hessians(), and libMesh::FEMContext::side_values().
const DenseSubVector< Number > & libMesh::DiffContext::get_localized_subvector | ( | const NumericVector< Number > & | localized_vector, |
unsigned int | var | ||
) | const |
const accessible version of get_localized_subvector function
Definition at line 160 of file diff_context.C.
References _localized_vectors, and libMesh::libmesh_assert().
DenseVector< Number > & libMesh::DiffContext::get_localized_vector | ( | const NumericVector< Number > & | localized_vector | ) |
Return a reference to DenseVector localization of localized_vector contained in the _localized_vectors map.
Definition at line 140 of file diff_context.C.
References _localized_vectors.
const DenseVector< Number > & libMesh::DiffContext::get_localized_vector | ( | const NumericVector< Number > & | localized_vector | ) | const |
const accessible version of get_localized_vector function
Definition at line 146 of file diff_context.C.
References _localized_vectors, and libMesh::libmesh_assert().
|
inline |
Const accessor for QoI derivatives.
Definition at line 329 of file diff_context.h.
References _elem_qoi_derivative.
Referenced by LaplaceQoI::element_qoi_derivative(), LaplaceSystem::element_qoi_derivative(), HeatSystem::element_qoi_derivative(), libMesh::FEMContext::pre_fe_reinit(), CoupledSystemQoI::side_qoi_derivative(), and LaplaceSystem::side_qoi_derivative().
|
inline |
Non-const accessor for QoI derivatives.
Definition at line 335 of file diff_context.h.
References _elem_qoi_derivative.
|
inline |
Const accessor for QoI derivative of a particular qoi and variable corresponding to the index arguments.
Definition at line 342 of file diff_context.h.
References _elem_qoi_subderivatives.
|
inline |
Non-const accessor for QoI derivative of a particular qoi and variable corresponding to the index arguments.
Definition at line 353 of file diff_context.h.
References _elem_qoi_subderivatives.
|
inline |
Const accessor for QoI vector.
Definition at line 317 of file diff_context.h.
References _elem_qoi.
Referenced by LaplaceQoI::element_qoi(), HeatSystem::element_qoi(), and CoupledSystemQoI::side_qoi().
|
inline |
Non-const accessor for QoI vector.
Definition at line 323 of file diff_context.h.
References _elem_qoi.
|
inline |
Accessor for associated system.
Definition at line 106 of file diff_context.h.
References _system.
Referenced by libMesh::FEMContext::attach_quadrature_rules(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyA2::boundary_assembly(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), HeatSystem::element_qoi(), HeatSystem::element_qoi_derivative(), HeatSystem::element_time_derivative(), libMesh::FEMContext::find_hardest_fe_type(), CoupledSystemQoI::init_context(), libMesh::RBEIMConstruction::init_context(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), and libMesh::DifferentiablePhysics::nonlocal_mass_residual().
|
inline |
Accessor for the time variable stored in the system class.
Definition at line 411 of file diff_context.h.
References system_time.
Referenced by libMesh::FEMContext::_update_time_from_system().
|
inline |
Accessor for the time for which the current nonlinear_solution is defined.
Definition at line 417 of file diff_context.h.
References time.
|
inline |
Accessor for querying whether we need to do a primal or adjoint solve.
Definition at line 466 of file diff_context.h.
References _is_adjoint.
Referenced by libMesh::FEMSystem::build_context().
|
inline |
Accessor for setting whether we need to do a primal or adjoint solve.
Definition at line 473 of file diff_context.h.
References _is_adjoint.
|
inline |
Total number of dof indices on the element.
Definition at line 395 of file diff_context.h.
References _dof_indices.
Referenced by NavierSystem::element_constraint(), CoupledSystem::element_constraint(), LaplaceQoI::element_qoi_derivative(), LaplaceSystem::element_qoi_derivative(), HeatSystem::element_qoi_derivative(), NavierSystem::element_time_derivative(), SolidSystem::element_time_derivative(), PoissonSystem::element_time_derivative(), LaplaceSystem::element_time_derivative(), CurlCurlSystem::element_time_derivative(), ElasticitySystem::element_time_derivative(), L2System::element_time_derivative(), CoupledSystem::element_time_derivative(), HeatSystem::element_time_derivative(), NavierSystem::mass_residual(), ElasticitySystem::mass_residual(), NavierSystem::side_constraint(), LaplaceSystem::side_constraint(), CoupledSystemQoI::side_qoi_derivative(), LaplaceSystem::side_qoi_derivative(), SolidSystem::side_time_derivative(), CurlCurlSystem::side_time_derivative(), and ElasticitySystem::side_time_derivative().
Total number of dof indices of the particular variable corresponding to the index argument.
Definition at line 402 of file diff_context.h.
References _dof_indices_var.
|
inline |
Number of variables in solution.
Definition at line 100 of file diff_context.h.
References _dof_indices_var.
Referenced by libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), libMesh::FEMPhysics::eulerian_residual(), libMesh::LaplacianErrorEstimator::init_context(), libMesh::DiscontinuityMeasure::init_context(), libMesh::KellyErrorEstimator::init_context(), libMesh::FEMPhysics::mass_residual(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), and libMesh::FEMSystem::numerical_jacobian().
|
inlinevirtual |
Gives derived classes the opportunity to reinitialize data needed for nonlocal calculations at a new point within a timestep.
Reimplemented in libMesh::FEMContext.
Definition at line 95 of file diff_context.h.
Referenced by libMesh::EulerSolver::nonlocal_residual(), libMesh::Euler2Solver::nonlocal_residual(), and libMesh::NewmarkSolver::nonlocal_residual().
void libMesh::DiffContext::set_deltat_pointer | ( | Real * | dt | ) |
Points the _deltat member of this class at a timestep value stored in the creating System, for example DiffSystem::deltat.
Definition at line 109 of file diff_context.C.
References _deltat.
Referenced by libMesh::FEMSystem::build_context(), libMesh::DifferentiableSystem::build_context(), and libMesh::FEMSystem::init_context().
|
inline |
Set the time for which the current nonlinear_solution is defined.
Definition at line 423 of file diff_context.h.
References time.
Referenced by libMesh::FEMContext::_update_time_from_system().
|
private |
Defaults to nullptr, can optionally be used to point to a timestep value in the System-derived class responsible for creating this DiffContext.
In DiffSystem's build_context() function, is assigned to point to the deltat member of that class.
Accessible via public get_deltat()/set_deltat() methods of this class.
Always test for nullptr before using!
Definition at line 655 of file diff_context.h.
Referenced by get_deltat_value(), and set_deltat_pointer().
|
protected |
Global Degree of freedom index lists.
Definition at line 639 of file diff_context.h.
Referenced by get_dof_indices(), and n_dof_indices().
|
protected |
Definition at line 640 of file diff_context.h.
Referenced by get_dof_indices(), n_dof_indices(), and n_vars().
|
protected |
Element by element components of nonlinear_solution at a fixed point in a timestep, for optional use by e.g.
stabilized methods
Definition at line 604 of file diff_context.h.
Referenced by DiffContext(), and get_elem_fixed_solution().
|
protected |
Definition at line 605 of file diff_context.h.
Referenced by DiffContext(), libMesh::FEMContext::fixed_point_gradient(), libMesh::FEMContext::fixed_point_hessian(), libMesh::FEMContext::fixed_point_value(), and get_elem_fixed_solution().
|
protected |
Element jacobian: derivatives of elem_residual with respect to elem_solution.
Only initialized if _have_local_matrices
Definition at line 616 of file diff_context.h.
Referenced by DiffContext(), and get_elem_jacobian().
|
protected |
Element quantity of interest contributions.
Definition at line 621 of file diff_context.h.
Referenced by DiffContext(), and get_qois().
|
protected |
Element quantity of interest derivative contributions.
Definition at line 626 of file diff_context.h.
Referenced by DiffContext(), and get_qoi_derivatives().
|
protected |
Definition at line 627 of file diff_context.h.
Referenced by DiffContext(), get_qoi_derivatives(), and libMesh::FEMContext::pre_fe_reinit().
|
protected |
Element residual vector.
Definition at line 610 of file diff_context.h.
Referenced by DiffContext(), and get_elem_residual().
|
protected |
Element by element components of nonlinear_solution as adjusted by a time_solver.
Definition at line 582 of file diff_context.h.
Referenced by DiffContext(), and get_elem_solution().
|
protected |
Element by element components of du/dt as adjusted by a time_solver.
Definition at line 596 of file diff_context.h.
Referenced by DiffContext(), and get_elem_solution_accel().
|
protected |
Element by element components of du/dt as adjusted by a time_solver.
Definition at line 589 of file diff_context.h.
Referenced by DiffContext(), and get_elem_solution_rate().
|
protected |
Definition at line 634 of file diff_context.h.
Referenced by DiffContext(), and get_elem_jacobian().
|
protected |
Element residual subvectors and (if _have_local_matrices
) Jacobian submatrices.
Definition at line 633 of file diff_context.h.
Referenced by DiffContext(), and get_elem_residual().
|
protected |
Definition at line 597 of file diff_context.h.
Referenced by DiffContext(), and get_elem_solution_accel().
|
protected |
Definition at line 590 of file diff_context.h.
Referenced by DiffContext(), and get_elem_solution_rate().
|
protected |
Definition at line 583 of file diff_context.h.
Referenced by DiffContext(), get_elem_solution(), libMesh::FEMContext::interior_curl(), libMesh::FEMContext::interior_div(), libMesh::FEMContext::point_curl(), libMesh::FEMContext::point_gradient(), libMesh::FEMContext::point_hessian(), libMesh::FEMContext::point_value(), and libMesh::FEMContext::side_gradient().
|
protected |
Whether we have local matrices allocated/initialized.
Definition at line 576 of file diff_context.h.
Referenced by get_elem_jacobian(), and libMesh::FEMContext::pre_fe_reinit().
|
private |
Is this context to be used for a primal or adjoint solve?
Definition at line 665 of file diff_context.h.
Referenced by is_adjoint().
|
protected |
Contains pointers to vectors the user has asked to be localized, keyed with pairs of element localized versions of that vector and per variable views.
Definition at line 571 of file diff_context.h.
Referenced by add_localized_vector(), get_localized_subvector(), get_localized_vector(), and libMesh::FEMContext::pre_fe_reinit().
|
private |
A reference to the system this context is constructed with.
Definition at line 660 of file diff_context.h.
Referenced by get_system().
Real libMesh::DiffContext::elem_solution_accel_derivative |
The derivative of elem_solution_accel with respect to the current nonlinear solution, for use by systems with non default mass_residual terms.
Definition at line 510 of file diff_context.h.
Referenced by libMesh::NewmarkSolver::_general_residual(), get_elem_solution_accel_derivative(), and libMesh::FirstOrderUnsteadySolver::prepare_accel().
Real libMesh::DiffContext::elem_solution_derivative |
The derivative of elem_solution with respect to the current nonlinear solution.
Definition at line 496 of file diff_context.h.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), CoupledSystem::element_constraint(), libMesh::EigenTimeSolver::element_residual(), NavierSystem::element_time_derivative(), SolidSystem::element_time_derivative(), CoupledSystem::element_time_derivative(), get_elem_solution_derivative(), and libMesh::EigenTimeSolver::side_residual().
Real libMesh::DiffContext::elem_solution_rate_derivative |
The derivative of elem_solution_rate with respect to the current nonlinear solution, for use by systems with non default mass_residual terms.
Definition at line 503 of file diff_context.h.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::EigenTimeSolver::element_residual(), get_elem_solution_rate_derivative(), libMesh::FEMPhysics::mass_residual(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), and libMesh::EigenTimeSolver::side_residual().
Real libMesh::DiffContext::fixed_solution_derivative |
The derivative of elem_fixed_solution with respect to the nonlinear solution, for use by systems constructing jacobians with elem_fixed_solution based methods.
Definition at line 517 of file diff_context.h.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::SteadySolver::_general_residual(), and get_fixed_solution_derivative().
const Real libMesh::DiffContext::system_time |
This is the time stored in the System class at the time this context was created, i.e.
the time at the beginning of the current timestep. This value gets set in the constructor and unlike DiffContext::time, is not tweaked mid-timestep by transient solvers: it remains equal to the value it was assigned at construction.
Definition at line 490 of file diff_context.h.
Referenced by get_system_time().
Real libMesh::DiffContext::time |
For time-dependent problems, this is the time t for which the current nonlinear_solution is defined.
FIXME - this needs to be tweaked mid-timestep by all transient solvers!
Definition at line 481 of file diff_context.h.
Referenced by get_time(), and set_time().