WIP
This commit is contained in:
parent
39920e2777
commit
1b855b2997
@ -1,10 +1,28 @@
|
||||
#include "Propagator.h"
|
||||
|
||||
#include "sim/RK4Solver.h"
|
||||
|
||||
namespace sim {
|
||||
|
||||
Propagator::Propagator()
|
||||
{
|
||||
|
||||
// solver = std::make_unique<sim::DESolver>(
|
||||
// new(RK4Solver(/* xvel */ [this](double, double* x) -> double { return })))
|
||||
|
||||
// The state vector has components of the form: (x, y, z, xdot, ydot, zdot)
|
||||
|
||||
integrator = std::make_unique<sim::DESolver>(new RK4Solver(
|
||||
/* dvx/dt */ [this](double, double* ) -> double { return getForceX() / getMass(); },
|
||||
/* dx/dt */ [this](double, double* s) -> double {return s[3]; },
|
||||
/* dvy/dt */ [this](double, double* ) -> double { return getForceY() / getMass() },
|
||||
/* dy/dt */ [this](double, double* s) -> double {return s[4]; },
|
||||
/* dvz/dt */ [this](double, double* ) -> double { return getForceZ() / getMass() },
|
||||
/* dz/dt */ [this](double, double* s) -> double {return s[5]; }));
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
} // namespace sim
|
||||
|
@ -13,9 +13,22 @@ class Propagator
|
||||
public:
|
||||
Propagator();
|
||||
|
||||
double getForceX();
|
||||
double getForceY();
|
||||
double getForceZ();
|
||||
|
||||
double getTorqueP();
|
||||
double getTorqueQ();
|
||||
double getTorqueR();
|
||||
|
||||
double getMass();
|
||||
|
||||
private:
|
||||
|
||||
std::unique_ptr<sim::DESolver> solver;
|
||||
std::unique_ptr<sim::DESolver> integrator;
|
||||
|
||||
double currentState[6]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
|
||||
double nextState[6]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
|
||||
};
|
||||
|
||||
} // namespace sim
|
||||
|
Loading…
x
Reference in New Issue
Block a user