WIP
This commit is contained in:
parent
39920e2777
commit
1b855b2997
@ -1,10 +1,28 @@
|
|||||||
#include "Propagator.h"
|
#include "Propagator.h"
|
||||||
|
|
||||||
|
#include "sim/RK4Solver.h"
|
||||||
|
|
||||||
namespace sim {
|
namespace sim {
|
||||||
|
|
||||||
Propagator::Propagator()
|
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
|
} // namespace sim
|
||||||
|
@ -13,9 +13,22 @@ class Propagator
|
|||||||
public:
|
public:
|
||||||
Propagator();
|
Propagator();
|
||||||
|
|
||||||
|
double getForceX();
|
||||||
|
double getForceY();
|
||||||
|
double getForceZ();
|
||||||
|
|
||||||
|
double getTorqueP();
|
||||||
|
double getTorqueQ();
|
||||||
|
double getTorqueR();
|
||||||
|
|
||||||
|
double getMass();
|
||||||
|
|
||||||
private:
|
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
|
} // namespace sim
|
||||||
|
Loading…
x
Reference in New Issue
Block a user