9#ifndef SVZERODSOLVER_MODEL_ACTIVATIONFUNCTION_HPP_
10#define SVZERODSOLVER_MODEL_ACTIVATIONFUNCTION_HPP_
32 const std::vector<std::pair<std::string, InputParameter>>
43 const std::vector<std::pair<std::string, InputParameter>>&
68 const std::string& type_str,
double cardiac_period);
78 void set_param(
const std::string& name,
double value);
127 double compute(
double time)
override;
164 double compute(
double time)
override;
202 normalization_factor_(1.0),
203 normalization_initialized_(
false) {}
205 double compute(
double time)
override;
210 void calculate_normalization_factor();
212 double normalization_factor_;
213 bool normalization_initialized_;
242 double compute(
double time)
override;
267 double compute(
double time)
override;
293 normalization_initialized_(
false) {}
295 double compute(
double time)
override;
299 void calculate_normalization();
300 double compute_raw(
double t_in_cycle)
const;
304 bool normalization_initialized_;
model::Parameter source file
static std::unique_ptr< ActivationFunction > create_default(const std::string &type_str, double cardiac_period)
Create a default activation function from activation function type.
Definition ActivationFunction.cpp:33
double cardiac_period_
Time duration of one cardiac cycle.
Definition ActivationFunction.h:91
virtual double compute(double time)=0
Compute activation value at given time.
virtual ~ActivationFunction()=default
Virtual destructor.
void set_param(const std::string &name, double value)
Set a scalar parameter value by name.
Definition ActivationFunction.cpp:29
ActivationFunction(double cardiac_period, const std::vector< std::pair< std::string, InputParameter > > &input_param_properties)
Construct activation function.
Definition ActivationFunction.cpp:14
const std::vector< std::pair< std::string, InputParameter > > input_param_properties
Properties of the input parameters for this activation function [(name, InputParameter),...
Definition ActivationFunction.h:33
std::map< std::string, double > params_
Map of parameter names to their values.
Definition ActivationFunction.h:96
virtual void finalize()
Called after all parameters are set (e.g. by loader).
Definition ActivationFunction.h:85
DoubleTanhActivation(double cardiac_period)
Construct with default parameter values (loader fills via set_param).
Definition ActivationFunction.h:237
double compute(double time) override
Compute activation value at given time.
Definition ActivationFunction.cpp:162
FourierActivation(double cardiac_period)
Construct a new FourierActivation object.
Definition ActivationFunction.h:289
double compute(double time) override
Compute activation value at given time.
Definition ActivationFunction.cpp:246
void finalize() override
Called after all parameters are set (e.g. by loader).
Definition ActivationFunction.cpp:244
HalfCosineActivation(double cardiac_period)
Construct with default parameter values (loader fills via set_param).
Definition ActivationFunction.h:123
double compute(double time) override
Compute activation value at given time.
Definition ActivationFunction.cpp:59
double compute(double time) override
Compute activation value at given time.
Definition ActivationFunction.cpp:77
PiecewiseCosineActivation(double cardiac_period)
Construct with default parameter values (loader fills via set_param).
Definition ActivationFunction.h:157
TwoHillActivation(double cardiac_period)
Construct with default parameter values (loader fills via set_param).
Definition ActivationFunction.h:196
double compute(double time) override
Compute activation value at given time.
Definition ActivationFunction.cpp:140
void finalize() override
Called after all parameters are set (e.g. by loader).
Definition ActivationFunction.cpp:138
WrappingCosineActivation(double cardiac_period)
Construct a new WrappingCosineActivation object.
Definition ActivationFunction.h:263
double compute(double time) override
Compute activation value at given time.
Definition ActivationFunction.cpp:181