svZeroDSolver
Loading...
Searching...
No Matches
StrainIndependentActiveStress Class Reference

Strain-independent active stress model. More...

#include <ActiveStress.h>

Inheritance diagram for StrainIndependentActiveStress:
[legend]

Public Member Functions

int num_extra_equations () const override
 Number of equations this model owns beyond ChamberSphere's fixed 6 core equations. Every ActiveStress supplies at least the equation defining $\tau$.
ActivationSignalType required_signal_type () const override
 Type of activation signal this active stress model needs.
void update_constant (SparseSystem &system, const std::vector< int > &global_eqn_ids, const std::vector< int > &global_var_ids) override
 Constant (time- and solution-independent) contributions.
void update_time (SparseSystem &system, const std::vector< int > &global_eqn_ids, const std::vector< int > &global_var_ids, double activation_signal) override
 Time-dependent contributions.
void update_solution (SparseSystem &system, const std::vector< int > &global_eqn_ids, const std::vector< int > &global_var_ids, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &y, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &dy, double radius0, double activation_signal) override
 Solution-dependent contributions.
Public Member Functions inherited from ActiveStress
 ActiveStress (const std::vector< std::pair< std::string, InputParameter > > &props)
 Construct an ActiveStress model.
virtual int num_extra_vars () const
 Number of internal variables this model owns beyond ChamberSphere's fixed 5 (radius, velo, stress, tau, volume).
virtual std::list< std::string > extra_var_names () const
 Names of this model's extra internal variables, in registration order (appended immediately after "volume").
Public Member Functions inherited from ParameterHolder
 ParameterHolder (const std::vector< std::pair< std::string, InputParameter > > &props)
 Construct a ParameterHolder.
void set_param (const std::string &name, double value)
 Set a scalar parameter value by name.
void set_param_vector (const std::string &name, const std::vector< double > &value)
 Set a vector-valued parameter value by name.
virtual void finalize ()
 Called once after all parameters have been read from the input file (e.g. by the loader).

Additional Inherited Members

Static Public Member Functions inherited from ActiveStress
static std::unique_ptr< ActiveStress > create (const std::string &type_str)
 Factory: create an active stress model from a type string.
Public Attributes inherited from ParameterHolder
const std::vector< std::pair< std::string, InputParameter > > input_param_properties
 Properties of the input parameters for this component [(name, InputParameter), ...].
Static Public Attributes inherited from ActiveStress
static constexpr int RADIUS_VAR
 Radius position within ChamberSphere's own global_var_ids array.
static constexpr int VELO_VAR
static constexpr int STRESS_VAR
static constexpr int TAU_VAR
static constexpr int VOLUME_VAR
 Volume position within ChamberSphere's own global_var_ids array.
static constexpr int NUM_CORE_VARS
static constexpr int NUM_CORE_EQNS
Protected Attributes inherited from ParameterHolder
std::map< std::string, double > params_
 Map of scalar parameter names to their values.
std::map< std::string, std::vector< double > > params_vec_
 Map of vector-valued parameter names to their values.

Detailed Description

Strain-independent active stress model.

Owns 1 extra equation (the $\tau$ ODE) and 0 extra variables:

\‍[\dot{\tau} + |a| \tau - \sigma_\text{max} a_+ = 0, \quad a_+ = \max(a, 0),
\quad a = f \alpha_\text{max} + (1 - f) \alpha_\text{min}
\‍]

where $f \in [0, 1]$ is the activation function.

Parameters: alpha_max, alpha_min, sigma_max

Member Function Documentation

◆ num_extra_equations()

int StrainIndependentActiveStress::num_extra_equations ( ) const
inlineoverridevirtual

Number of equations this model owns beyond ChamberSphere's fixed 6 core equations. Every ActiveStress supplies at least the equation defining $\tau$.

Returns
Number of extra equations

Implements ActiveStress.

◆ required_signal_type()

ActivationSignalType StrainIndependentActiveStress::required_signal_type ( ) const
inlineoverridevirtual

Type of activation signal this active stress model needs.

Checked against the chamber's ActivationFunction::signal_type in ChamberSphere::setup_dofs to catch mismatched pairings (e.g. strain_dependent active stress with a normalized activation function).

Returns
The required ActivationSignalType

Implements ActiveStress.

◆ update_constant()

void StrainIndependentActiveStress::update_constant ( SparseSystem & system,
const std::vector< int > & global_eqn_ids,
const std::vector< int > & global_var_ids )
overridevirtual

Constant (time- and solution-independent) contributions.

Parameters
systemSystem to update contributions at
global_eqn_idsChamberSphere's global equation indices
global_var_idsChamberSphere's global variable indices

Reimplemented from ActiveStress.

◆ update_solution()

void StrainIndependentActiveStress::update_solution ( SparseSystem & system,
const std::vector< int > & global_eqn_ids,
const std::vector< int > & global_var_ids,
const Eigen::Matrix< double, Eigen::Dynamic, 1 > & y,
const Eigen::Matrix< double, Eigen::Dynamic, 1 > & dy,
double radius0,
double activation_signal )
overridevirtual

Solution-dependent contributions.

Parameters
systemSystem to update contributions at
global_eqn_idsChamberSphere's global equation indices
global_var_idsChamberSphere's global variable indices
yCurrent solution
dyCurrent derivative of the solution
radius0Reference radius $r_0$ of the chamber
activation_signalThe chamber's ActivationFunction evaluated at the current time

Implements ActiveStress.

◆ update_time()

void StrainIndependentActiveStress::update_time ( SparseSystem & system,
const std::vector< int > & global_eqn_ids,
const std::vector< int > & global_var_ids,
double activation_signal )
overridevirtual

Time-dependent contributions.

Parameters
systemSystem to update contributions at
global_eqn_idsChamberSphere's global equation indices
global_var_idsChamberSphere's global variable indices
activation_signalThe chamber's ActivationFunction evaluated at the current time

Reimplemented from ActiveStress.


The documentation for this class was generated from the following files: