SIMLIB/C++ 3.09
Loading...
Searching...
No Matches
_test_.cc

This is simple example for basic testing of SIMLIB/C++.

This is simple example for basic testing of SIMLIB/C++.
Usage: make test

//! \file _test_.cc Simple test model.
#define SIMLIB_DEBUG
// next define guards against excessive use of WaitUntil
#define I_REALLY_KNOW_HOW_TO_USE_WAITUNTIL
#include "simlib.h"
struct Test {
Integrator v;
Status y;
Test(Input F):
limitation( v, -1, 1),
v( Sin(T)*F, 0.5 ),
y( limitation*F, 1) {}
};
class TestProcess : public Process {
public:
void Behavior() override {
Wait(1);
Wait(1);
WaitUntil(Time>3);
WaitUntil(true);
Wait(5);
}
};
// objects ...
//Problem!!! Constant F = 1.0; // no copy ctr available
Constant F(1.0);
Test t(F); //
// sampling ...
void Sample() {
Print("%f %f %f\n", T.Value(), t.y.Value(), t.v.Value());
}
Sampler S(Sample, 1); // periodic event
int main() { // popis experimentu ...
Print("Model _TEST_ --- test model for SIMLIB/C++ \n");
Init(0,5); //
SetStep(0.1,1.0); //
SetAccuracy(1e-5,0.01); //
//DebugOFF();
Run(); // simulation
Print("# end of test t=%g\n", Time);
//DebugON();
return 0;
}
// end
Test t(F)
Sampler S(Sample, 1)
TestProcess globalprocess
Definition: _test_.cc:35
Constant F(1.0)
void Sample()
Definition: _test_.cc:38
int main()
Definition: _test_.cc:44
void Behavior() override
behavior description
Definition: _test_.cc:22
virtual void Wait(double dtime)
wait for dtime interval
Definition: process.cc:256
virtual void Activate(double t) override
activate at time t (schedule)
Definition: process.cc:244
Process(Priority_t p=DEFAULT_PRIORITY)
Process constructor sets state to PREPARED.
Definition: process.cc:173
virtual double Value()=0
get block output value this method should be defined in classes derived from aContiBlock
void Activate(Entity *e)
activate entity e
Definition: simlib.h:431
aContiBlock & T
simulation time block reference
Definition: continuous.cc:276
void SetAccuracy(double _abserr, double _relerr)
set max.
Definition: intg.cc:106
void SetStep(double _dtmin, double _dtmax)
Set integration step interval.
Definition: intg.cc:92
void Run()
run simulation experiment
Definition: run.cc:228
int Print(const char *fmt,...)
for Output methods, can be redirected
Definition: print.cc:92
void Init(double t0, double t1=SIMLIB_MAXTIME)
Initialize simulator and model time.
Definition: simlib.h:181
Main SIMLIB/C++ interface.
Definition: _test_.cc:10
Lim limitation
Definition: _test_.cc:11
Integrator v
Definition: _test_.cc:12
Status y
Definition: _test_.cc:13