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

Half cosine activation function. More...

#include <ActivationFunction.h>

Inheritance diagram for HalfCosineActivation:
[legend]

Public Member Functions

 HalfCosineActivation (double cardiac_period)
 Construct with default parameter values (loader fills via set_param).
 
double compute (double time) override
 Compute activation value at given time.
 
- Public Member Functions inherited from ActivationFunction
 ActivationFunction (double cardiac_period, const std::vector< std::pair< std::string, InputParameter > > &input_param_properties)
 Construct activation function.
 
virtual ~ActivationFunction ()=default
 Virtual destructor.
 
void set_param (const std::string &name, double value)
 Set a scalar parameter value by name.
 
virtual void finalize ()
 Called after all parameters are set (e.g. by loader).
 

Additional Inherited Members

- Static Public Member Functions inherited from ActivationFunction
static std::unique_ptr< ActivationFunctioncreate_default (const std::string &type_str, double cardiac_period)
 Create a default activation function from activation function type.
 
- Public Attributes inherited from ActivationFunction
const std::vector< std::pair< std::string, InputParameter > > input_param_properties
 Properties of the input parameters for this activation function [(name, InputParameter), ...].
 
- Protected Attributes inherited from ActivationFunction
double cardiac_period_
 Time duration of one cardiac cycle.
 
std::map< std::string, double > params_
 Map of parameter names to their values.
 

Detailed Description

Half cosine activation function.

This implements the activation function used in the original ChamberElastanceInductor. The activation follows a half cosine wave during the contraction period.

\[A(t) = \begin{cases}
-\frac{1}{2}\cos(2\pi t_{contract}/t_{twitch}) + \frac{1}{2}, & \text{if }
t_{contract} \le t_{twitch} \\ 0, & \text{otherwise}
\end{cases}
\]

where $t_{contract} = \max(0, t_{in\_cycle} - t_{active})$

Constructor & Destructor Documentation

◆ HalfCosineActivation()

HalfCosineActivation::HalfCosineActivation ( double cardiac_period)
inlineexplicit

Construct with default parameter values (loader fills via set_param).

Parameters
cardiac_periodCardiac cycle period

Member Function Documentation

◆ compute()

double HalfCosineActivation::compute ( double time)
overridevirtual

Compute activation value at given time.

Parameters
timeCurrent time
Returns
Activation value between 0 and 1

Implements ActivationFunction.


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