helics  2.8.1
SignalGenerators.hpp
1 /*
2 Copyright (c) 2017-2021,
3 Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Sustainable
4 Energy, LLC. See the top-level NOTICE for additional details. All rights reserved.
5 SPDX-License-Identifier: BSD-3-Clause
6 */
7 #pragma once
8 
13 #include "Source.hpp"
14 
15 #include <complex>
16 #include <string>
17 
18 namespace helics {
19 namespace apps {
22  private:
23  double level = 0.0;
24  double ramp = 0.0;
25 
26  public:
27  virtual void set(const std::string& parameter, double val) override;
28 
29  virtual defV generate(Time signalTime) override;
30  };
31 
34  private:
35  double level = 0.0;
36  double frequency = 0.0;
37  double offset = 0.0;
38  double amplitude = 0.0;
39  double dAdt = 0.0;
40  double dfdt = 0.0;
41  double period = 1e7;
42  Time lastCycle = timeZero;
43 
44  public:
45  virtual void set(const std::string& parameter, double val) override;
46 
47  virtual defV generate(Time signalTime) override;
48  };
49 
53  private:
54  double bias_real = 0.0;
55  double bias_imag = 0.0;
56  double frequency = 0.0;
57  double offset = 0.0;
58  double amplitude = 0.0;
59  double dAdt = 0.0;
60  double dfdt = 0.0;
61  // Time lastCycle = timeZero;
62  std::complex<double> state{1.0, 0};
63  std::complex<double> rotation{1.0, 0};
64 
65  public:
66  virtual void set(const std::string& parameter, double val) override;
68  void set(const std::string& parameter, std::complex<double> val);
69  virtual void setString(const std::string& parameter, const std::string& val) override;
70  virtual defV generate(Time signalTime) override;
71  };
72 } // namespace apps
73 } // namespace helics
helics::timeZero
constexpr Time timeZero
Definition: helics-time.hpp:31
helics::apps::PhasorGenerator
Definition: SignalGenerators.hpp:52
helics::apps::RampGenerator::generate
virtual defV generate(Time signalTime) override
Definition: SignalGenerators.cpp:33
helics::apps::RampGenerator::set
virtual void set(const std::string &parameter, double val) override
Definition: SignalGenerators.cpp:16
helics::apps::SignalGenerator::set
virtual void set(const std::string &parameter, double val)
Definition: Source.cpp:30
helics::Time
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
helics::apps::PhasorGenerator::set
virtual void set(const std::string &parameter, double val) override
Definition: SignalGenerators.cpp:79
helics::apps::SignalGenerator::setString
virtual void setString(const std::string &parameter, const std::string &val)
Definition: Source.cpp:32
helics::apps::SignalGenerator
Definition: Source.hpp:36
helics::apps::SineGenerator::generate
virtual defV generate(Time signalTime) override
Definition: SignalGenerators.cpp:61
helics::defV
mpark::variant< double, int64_t, std::string, std::complex< double >, std::vector< double >, std::vector< std::complex< double > >, NamedPoint > defV
Definition: HelicsPrimaryTypes.hpp:34
helics::cleanupHelicsLibrary
void cleanupHelicsLibrary()
Definition: Federate.cpp:36
helics
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
helics::apps::PhasorGenerator::generate
virtual defV generate(Time signalTime) override
Definition: SignalGenerators.cpp:121
helics::apps::SineGenerator
Definition: SignalGenerators.hpp:33
helics::apps::Recorder
Definition: Recorder.hpp:26
helics::apps::PhasorGenerator::setString
virtual void setString(const std::string &parameter, const std::string &val) override
Definition: SignalGenerators.cpp:111
helics::HelicsException
Definition: core-exceptions.hpp:18
helics::apps::RampGenerator
Definition: SignalGenerators.hpp:21
helics::helicsGetComplex
std::complex< double > helicsGetComplex(const std::string &val)
Definition: helicsTypes.cpp:207
helics::apps::SineGenerator::set
virtual void set(const std::string &parameter, double val) override
Definition: SignalGenerators.cpp:40