25 class FiniteElementState;
45 const std::vector<ConstFieldPtr>& fields)
const = 0;
56 size_t field_ordinal)
const = 0;
67 int field_ordinal)
const
69 return gradient(time_info, shape_disp, fields,
static_cast<size_t>(field_ordinal));
80 const std::vector<ConstFieldPtr>& fields)
const = 0;
83 std::string
name()
const {
return name_; }
virtual double evaluate(TimeInfo time_info, ConstFieldPtr shape_disp, const std::vector< ConstFieldPtr > &fields) const =0
Virtual interface for computing the scale value for the objective/constrant, given a vector of smith:...
virtual ~ScalarObjective()
destructor
virtual mfem::Vector mesh_coordinate_gradient(TimeInfo time_info, ConstFieldPtr shape_disp, const std::vector< ConstFieldPtr > &fields) const =0
Virtual interface for computing objective gradient with respect to the mesh coordinates.
virtual mfem::Vector gradient(TimeInfo time_info, ConstFieldPtr shape_disp, const std::vector< ConstFieldPtr > &fields, int field_ordinal) const
Compute objective gradient from a vector of FiniteElementState*, using int for index.
std::string name() const
name
ScalarObjective(const std::string &name)
base constructor takes the name of the physics
virtual mfem::Vector gradient(TimeInfo time_info, ConstFieldPtr shape_disp, const std::vector< ConstFieldPtr > &fields, size_t field_ordinal) const =0
Virtual interface for computing objective gradient from a vector of smith::FiniteElementState*.
A file defining some enums and structs that are used by the different physics modules.
Defines common types and helper functions for using the residual and scalar_objective classes.
Accelerator functionality.
FiniteElementState const * ConstFieldPtr
using
struct storing time and timestep information