svZeroDSolver
Loading...
Searching...
No Matches
ActivationFunction Class Referenceabstract

Base class for activation functions. More...

#include <ActivationFunction.h>

Inheritance diagram for ActivationFunction:
[legend]

Public Member Functions

 ActivationFunction (double cardiac_period, const std::vector< std::pair< std::string, InputParameter > > &input_param_properties)
 Construct activation function.
virtual double compute (double time)=0
 Compute activation value at given time.
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).

Static Public Member Functions

static std::unique_ptr< ActivationFunction > create_default (const std::string &type_str, double cardiac_period)
 Create a default activation function from activation function type.

Protected Attributes

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.

Additional Inherited Members

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), ...].

Detailed Description

Base class for activation functions.

Activation functions compute the activation value (between 0 and 1) at a given time point within a cardiac cycle. These are used to modulate chamber elastance over time.

Constructor & Destructor Documentation

◆ ActivationFunction()

ActivationFunction::ActivationFunction ( double cardiac_period,
const std::vector< std::pair< std::string, InputParameter > > & input_param_properties )

Construct activation function.

Parameters
cardiac_periodCardiac cycle period
input_param_propertiesProperties of the input parameters [(name, InputParameter), ...] for this activation function

Member Function Documentation

◆ compute()

virtual double ActivationFunction::compute ( double time)
pure virtual

Compute activation value at given time.

Parameters
timeCurrent time
Returns
Activation value between 0 and 1

Implemented in DoubleTanhActivation, FourierActivation, HalfCosineActivation, PiecewiseCosineActivation, PiecewiseRateActivation, TwoHillActivation, and WrappingCosineActivation.

◆ create_default()

std::unique_ptr< ActivationFunction > ActivationFunction::create_default ( const std::string & type_str,
double cardiac_period )
static

Create a default activation function from activation function type.

Parameters
type_strOne of: "half_cosine", "piecewise_cosine", "two_hill", "double_tanh", "wrapping_cosine", "fourier", "piecewise_rate"
cardiac_periodCardiac cycle period
Returns
Unique pointer to the created activation function

◆ signal_type()

virtual ActivationSignalType ActivationFunction::signal_type ( ) const
inlinevirtual

Type of signal this activation function's compute() produces.

Returns
ActivationSignalType::normalized for all activation functions with function values between [0;1] and ActivationSignalType::rate for PiecewiseRateActivation, which returns a signed reaction-rate signal.

Reimplemented in PiecewiseRateActivation.

Member Data Documentation

◆ cardiac_period_

double ActivationFunction::cardiac_period_
protected

Time duration of one cardiac cycle.


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