18#ifndef COUPLED_SYSTEM_H
19#define COUPLED_SYSTEM_H
22#include "libmesh/fem_function_base.h"
23#include "libmesh/fem_system.h"
24#include "libmesh/libmesh_common.h"
25#include "libmesh/parameter_pointer.h"
26#include "libmesh/parameter_vector.h"
40 const std::string & name_in,
41 const unsigned int number_in)
59 for (std::size_t i = 0; i !=
parameters.size(); ++i)
113 unsigned int var_number)
119 virtual std::unique_ptr<FEMFunctionBase<Number>>
clone ()
const
121 return std::make_unique<CoupledFEMFunctionsx>(*
this);
128 { libmesh_not_implemented(); }
132 const Real time = 0.);
144 unsigned int var_number)
145 {
var = var_number; }
150 virtual std::unique_ptr<FEMFunctionBase<Number>>
clone ()
const
152 return std::make_unique<CoupledFEMFunctionsy>(*
this);
159 { libmesh_not_implemented(); }
163 const Real time = 0.);
CoupledFEMFunctionsx(System &, unsigned int var_number)
virtual void operator()(const FEMContext &, const Point &, const Real, DenseVector< Number > &)
Evaluation function for time-dependent vector-valued functions.
virtual std::unique_ptr< FEMFunctionBase< Number > > clone() const
virtual ~CoupledFEMFunctionsx()=default
virtual std::unique_ptr< FEMFunctionBase< Number > > clone() const
CoupledFEMFunctionsy(System &, unsigned int var_number)
virtual ~CoupledFEMFunctionsy()=default
virtual void operator()(const FEMContext &, const Point &, const Real, DenseVector< Number > &)
Evaluation function for time-dependent vector-valued functions.
virtual void init_context(DiffContext &context)
ParameterVector parameter_vector
virtual bool element_time_derivative(bool request_jacobian, DiffContext &context)
Adds the time derivative contribution on elem to elem_residual.
virtual void init_data()
Initializes the member data fields associated with the system, so that, e.g., assemble() may be used.
Number & get_parameter_value(unsigned int parameter_index)
std::vector< Number > parameters
virtual bool element_constraint(bool request_jacobian, DiffContext &context)
Adds the constraint contribution on elem to elem_residual.
CoupledSystem(EquationSystems &es, const std::string &name_in, const unsigned int number_in)
virtual void postprocess()
Runs a postprocessing loop over all elements, and if postprocess_sides is true over all sides.
ParameterVector & get_parameter_vector()
Defines a dense vector for use in Finite Element-type computations.
This class provides all data required for a physics package (e.g.
This is the EquationSystems class.
This class provides all data required for a physics package (e.g.
FEMFunctionBase is a base class from which users can derive in order to define "function-like" object...
This class provides a specific system class.
Accessor object allowing reading and modification of the independent variables in a parameter sensiti...
Data structure for specifying which Parameters should be independent variables in a parameter sensiti...
void push_back(std::unique_ptr< ParameterAccessor< Number > > new_accessor)
Adds an additional parameter accessor to the end of the vector.
A Point defines a location in LIBMESH_DIM dimensional Real space.
Manages consistently variables, degrees of freedom, and coefficient vectors.
void init_qois(unsigned int n_qois)
Accessors for qoi and qoi_error_estimates vectors.
The libMesh namespace provides an interface to certain functionality in the library.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real