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

Double tanh (systole/diastole sigmoid product) activation function. More...

#include <ActivationFunction.h>

Inheritance diagram for DoubleTanhActivation:
[legend]

Public Member Functions

 DoubleTanhActivation (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 ActivationSignalType signal_type () const
 Type of signal this activation function's compute() produces.
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 ActivationFunction
static std::unique_ptr< ActivationFunction > create_default (const std::string &type_str, double cardiac_period)
 Create a default activation function from activation function type.
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), ...].
Protected Attributes inherited from ActivationFunction
double cardiac_period_
 Time duration of one cardiac cycle.
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

Double tanh (systole/diastole sigmoid product) activation function.

This implements the original ChamberSphere activation: a smooth indicator function built from the product of two tanh sigmoids, one rising at systole and one falling at diastole.

\‍[f(t) = S_+ (t_{in\_cycle} - t_sys) \cdot S_- (t_{in\_cycle} - t_dias), \quad
S_\pm (\Delta t) = \frac{1}{2} \left(1.0 \pm
\text{tanh}\left( \frac{\Delta t} {\gamma}
\right) \right)
\‍]

Constructor & Destructor Documentation

◆ DoubleTanhActivation()

DoubleTanhActivation::DoubleTanhActivation ( double cardiac_period)
inlineexplicit

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

Parameters
cardiac_periodCardiac cycle period

Member Function Documentation

◆ compute()

double DoubleTanhActivation::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: