Go to the documentation of this file.
20 #ifndef LIBMESH_DIFF_PHYSICS_H
21 #define LIBMESH_DIFF_PHYSICS_H
24 #include "libmesh/libmesh.h"
100 virtual std::unique_ptr<DifferentiablePhysics>
clone_physics() = 0;
127 return request_jacobian;
145 return request_jacobian;
174 return request_jacobian;
194 return request_jacobian;
212 return request_jacobian;
230 return request_jacobian;
249 #ifdef LIBMESH_ENABLE_DEPRECATED
252 libmesh_deprecated();
269 virtual void time_evolving (
unsigned int var,
unsigned int order);
297 return request_jacobian;
321 return request_jacobian;
338 return request_jacobian;
377 return request_jacobian;
394 return request_jacobian;
409 return request_jacobian;
593 libmesh_experimental();
659 #endif // LIBMESH_DIFF_PHYSICS_H
std::set< unsigned int > _first_order_vars
Variable indices for those variables that are first order in time.
Manages consistently variables, degrees of freedom, and coefficient vectors.
virtual bool nonlocal_mass_residual(bool request_jacobian, DiffContext &c)
Subtracts any nonlocal mass vector contributions (e.g.
virtual bool side_constraint(bool request_jacobian, DiffContext &)
Adds the constraint contribution on side of elem to elem_residual.
const unsigned int invalid_uint
A number which is used quite often to represent an invalid or uninitialized value.
unsigned int _mesh_x_var
Variables from which to acquire moving mesh information.
virtual void time_evolving(unsigned int var)
Tells the DiffSystem that variable var is evolving with respect to time.
virtual void set_mesh_system(System *sys)
Tells the DifferentiablePhysics that system sys contains the isoparametric Lagrangian variables which...
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...
This class provides a specific system class.
bool is_first_order_var(unsigned int var) const
bool is_time_evolving(unsigned int var) const
The libMesh namespace provides an interface to certain functionality in the library.
virtual bool nonlocal_constraint(bool request_jacobian, DiffContext &)
Adds any nonlocal constraint contributions (e.g.
virtual bool side_damping_residual(bool request_jacobian, DiffContext &)
Subtracts a damping vector contribution on side of elem from elem_residual.
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...
System * _mesh_sys
System from which to acquire moving mesh information.
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 correspondin...
bool _eulerian_time_deriv(bool request_jacobian, DiffContext &)
This method simply combines element_time_derivative() and eulerian_residual(), which makes its addres...
std::set< unsigned int > _second_order_vars
Variable indices for those variables that are second order in time.
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...
virtual bool nonlocal_time_derivative(bool request_jacobian, DiffContext &)
Adds any nonlocal time derivative contributions (e.g.
const System * get_mesh_system() const
virtual bool element_constraint(bool request_jacobian, DiffContext &)
Adds the constraint contribution on elem to elem_residual.
bool is_second_order_var(unsigned int var) const
const std::set< unsigned int > & get_second_order_vars() const
virtual bool element_time_derivative(bool request_jacobian, DiffContext &)
Adds the time derivative contribution on elem to elem_residual.
virtual ~DifferentiablePhysics()
Destructor.
unsigned int get_mesh_x_var() const
virtual bool side_mass_residual(bool request_jacobian, DiffContext &)
Subtracts a mass vector contribution on side of elem from elem_residual.
DifferentiablePhysics()
Constructor.
This class provides all data required for a physics package (e.g.
bool have_first_order_vars() const
unsigned int get_mesh_z_var() const
virtual void clear_physics()
Clear any data structures associated with the physics.
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 transl...
std::vector< unsigned int > _time_evolving
Stores unsigned int to tell us which variables are evolving as first order in time (1),...
bool have_second_order_vars() const
const std::set< unsigned int > & get_first_order_vars() const
virtual void init_context(DiffContext &)
virtual bool mass_residual(bool request_jacobian, DiffContext &)
Subtracts a mass vector contribution on elem from elem_residual.
virtual bool side_time_derivative(bool request_jacobian, DiffContext &)
Adds the time derivative contribution on side of elem to elem_residual.
unsigned int get_mesh_y_var() const
virtual void init_physics(const System &sys)
Initialize any data structures associated with the physics.
virtual std::unique_ptr< DifferentiablePhysics > clone_physics()=0
Copy of this object.
virtual bool damping_residual(bool request_jacobian, DiffContext &)
Subtracts a damping vector contribution on elem from elem_residual.
bool compute_internal_sides
compute_internal_sides is false by default, indicating that side_* computations will only be done on ...
virtual bool nonlocal_damping_residual(bool request_jacobian, DiffContext &)
Subtracts any nonlocal damping vector contributions (e.g.