1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*
*_________________________________________________________________________*
* POEMS: PARALLELIZABLE OPEN SOURCE EFFICIENT MULTIBODY SOFTWARE *
* DESCRIPTION: SEE READ-ME *
* FILE NAME: solver.h *
* AUTHORS: See Author List *
* GRANTS: See Grants List *
* COPYRIGHT: (C) 2005 by Authors as listed in Author's List *
* LICENSE: Please see License Agreement *
* DOWNLOAD: Free at www.rpi.edu/~anderk5 *
* ADMINISTRATOR: Prof. Kurt Anderson *
* Computational Dynamics Lab *
* Rensselaer Polytechnic Institute *
* 110 8th St. Troy NY 12180 *
* CONTACT: anderk5@rpi.edu *
*_________________________________________________________________________*/
#ifndef SOLVER_H
#define SOLVER_H
#include <fstream>
#include "colmatmap.h"
#include "matrices.h"
#include "defines.h"
class System;
class Solver{
protected:
System* system;
double time;
ColMatMap state;
ColMatMap statedot;
ColMatMap statedoubledot;
SolverType type;
virtual void ComputeForces();
public:
Solver();
virtual ~Solver();
void SetSystem(System* s);
SolverType GetSolverType();
static Solver * GetSolver(SolverType solverToMake);
virtual void DeleteModel() = 0;
virtual void CreateModel() = 0;
virtual void Solve(double time, Matrix& FF) = 0;
ColMatMap* GetState();
ColMatMap* GetStateDerivative();
ColMatMap* GetStateDerivativeDerivative();
};
#endif