1 /*
2  *_________________________________________________________________________*
3  *      POEMS: PARALLELIZABLE OPEN SOURCE EFFICIENT MULTIBODY SOFTWARE     *
4  *      DESCRIPTION: SEE READ-ME                                           *
5  *      FILE NAME: solver.cpp                                              *
6  *      AUTHORS: See Author List                                           *
7  *      GRANTS: See Grants List                                            *
8  *      COPYRIGHT: (C) 2005 by Authors as listed in Author's List          *
9  *      LICENSE: Please see License Agreement                              *
10  *      DOWNLOAD: Free at www.rpi.edu/~anderk5                             *
11  *      ADMINISTRATOR: Prof. Kurt Anderson                                 *
12  *                     Computational Dynamics Lab                          *
13  *                     Rensselaer Polytechnic Institute                    *
14  *                     110 8th St. Troy NY 12180                           *
15  *      CONTACT:        anderk5@rpi.edu                                    *
16  *_________________________________________________________________________*/
17 
18 #include "solver.h"
19 #include "system.h"
20 #include "matrices.h"
21 
Solver()22 Solver::Solver(){
23 
24 }
25 
~Solver()26 Solver::~Solver(){
27 }
28 
SetSystem(System * s)29 void Solver::SetSystem(System* s){
30   system = s;
31   CreateModel();
32 }
33 
ComputeForces()34 void Solver::ComputeForces(){
35 system->ComputeForces();
36 }
37 
GetSolverType()38 SolverType Solver::GetSolverType()
39 {
40   return type;
41 }
42 
GetSolver(SolverType solverToMake)43 Solver * Solver::GetSolver(SolverType solverToMake) //returning a pointer to a new Solver object of the appropriate type
44 {
45   switch((int)solverToMake)
46   {
47     case ONSOLVER: return new OnSolver();
48     default: return nullptr;
49   }
50 }
51 
GetState()52 ColMatMap* Solver::GetState(){
53   return &state;
54 }
55 
GetStateDerivative()56 ColMatMap* Solver::GetStateDerivative(){
57   return &statedot;
58 }
59 
GetStateDerivativeDerivative()60 ColMatMap* Solver::GetStateDerivativeDerivative(){
61   return &statedoubledot;
62 }
63