SIMLIB/C++ 3.09
Loading...
Searching...
No Matches
examples/test3D.cc
////////////////////////////////////////////////////////////////////////////
// Model test3D.cc
//
// Basic test of 3D modelling in SIMLIB/C++
#include "simlib.h"
#include "simlib3D.h"
Constant3D gravity(0,0,-9.81); // gravity acceleration vector
Value3D inip(10,10,10); // initial position vector
Value3D iniv(1,1,1); // initial speed vector
struct Model {
//const double m = 10; // mass is not used
Integrator3D v; // rychlost
Integrator3D p; // zrychleni
Model(Input3D a, Value3D initial_p, Value3D initial_v) :
v(gravity, initial_v),
p(v, initial_p) {}
};
////////////////////////////////////////////////////////////////////////////
Model m(gravity, inip, iniv);
////////////////////////////////////////////////////////////////////////////
void sampling_function() {
Print("%3g: ", Time);
Print("pos=");
m.p.Print();
Print(", v=");
m.v.Print();
Print("\n");
}
Sampler s(sampling_function, 0.1);
// Experiment
int main() {
SetOutput("test3D.out");
Print("# test3D --- simulation output \n");
Init(0, 5);
SetStep(0.01, 0.1);
Run();
SIMLIB_statistics.Output(); // print run statistics
}
//
int main()
Definition: _test_.cc:44
void SetStep(double _dtmin, double _dtmax)
Set integration step interval.
Definition: intg.cc:92
void SetOutput(const char *name)
redirects Output(), Print() to file
Definition: print.cc:50
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
const SIMLIB_statistics_t & SIMLIB_statistics
interface to internal run-time statistics structure
Definition: run.cc:78
3D vector block extension
Main SIMLIB/C++ interface.
void Output() const
print run-time statistics to output
Definition: output1.cc:63