Skip to content

Commit 9a8f91b

Browse files
committed
refactored main.cpp
1 parent f7a2afc commit 9a8f91b

35 files changed

+7368
-99
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,5 @@
3838
/neuromlLocal/testc302SigSim/x86_64
3939
/neuromlLocal/testc302SigSim/report.txt
4040
/neuromlLocal/testc302SigSim/testc302NervousSystem
41+
/RoyalSociety2018/*.dat
42+
/RoyalSociety2018/main

Mainvars.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ extern int skip_steps;
22

33

44
// Integration parameters
5-
extern int Duration;
5+
extern const int Duration;
66
extern const double Transient;
77
extern const double StepSize;
88
extern const int N_curvs;

RoyalSociety2018/Makefile

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
main: main.o Worm.o WormBody.o NervousSystem.o StretchReceptor.o Muscles.o TSearch.o random.o
2+
g++ -pthread -o main main.o Worm.o WormBody.o NervousSystem.o StretchReceptor.o Muscles.o TSearch.o random.o
3+
random.o: random.cpp random.h VectorMatrix.h
4+
g++ -c -O3 -flto random.cpp
5+
TSearch.o: TSearch.cpp TSearch.h
6+
g++ -c -O3 -flto TSearch.cpp
7+
Worm.o: Worm.cpp Worm.h
8+
g++ -c -O3 -flto Worm.cpp
9+
WormBody.o: WormBody.cpp WormBody.h
10+
g++ -c -O3 -flto WormBody.cpp
11+
NervousSystem.o: NervousSystem.cpp NervousSystem.h VectorMatrix.h random.h
12+
g++ -c -O3 -flto NervousSystem.cpp
13+
StretchReceptor.o: StretchReceptor.cpp StretchReceptor.h
14+
g++ -c -O3 -flto StretchReceptor.cpp
15+
Muscles.o: Muscles.cpp Muscles.h VectorMatrix.h random.h
16+
g++ -c -O3 -flto Muscles.cpp
17+
main.o: main.cpp Worm.h WormBody.h StretchReceptor.h Muscles.h TSearch.h
18+
g++ -c -O3 -flto main.cpp
19+
clean:
20+
rm *.o main

RoyalSociety2018/Muscles.cpp

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
//
2+
// Muscles.cpp
3+
// one
4+
//
5+
// Created by Eduardo Izquierdo on 3/26/15.
6+
// Copyright (c) 2015 Eduardo Izquierdo. All rights reserved.
7+
//
8+
9+
#include "Muscles.h"
10+
11+
Muscles::Muscles(int nmuscles, double t_muscle)
12+
{
13+
SetMuscleParams(nmuscles, t_muscle);
14+
}
15+
16+
void Muscles::SetMuscleParams(int nmuscles, double t_muscle)
17+
{
18+
Nmuscles = nmuscles;
19+
T_muscle = t_muscle;
20+
V_muscle.SetBounds(1,Nmuscles,1,2);
21+
V_input.SetBounds(1,Nmuscles,1,2);
22+
}
23+
24+
void Muscles::InitializeMuscleState()
25+
{
26+
V_muscle.FillContents(0.0);
27+
V_input.FillContents(0.0);
28+
}
29+
30+
void Muscles::EulerStep(double StepSize)
31+
{
32+
for (int i = 1; i <= Nmuscles; i++)
33+
{
34+
V_muscle[i][1] += StepSize*((V_input[i][1] - V_muscle[i][1])/T_muscle);
35+
V_muscle[i][2] += StepSize*((V_input[i][2] - V_muscle[i][2])/T_muscle);
36+
}
37+
}

RoyalSociety2018/Muscles.h

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
//
2+
// LocomotionCircuit.h
3+
//
4+
// Copyright (c) 2015 Eduardo Izquierdo. All rights reserved.
5+
//
6+
7+
#include "VectorMatrix.h"
8+
#include "random.h"
9+
#include <cmath>
10+
using namespace std;
11+
12+
class Muscles {
13+
public:
14+
15+
Muscles(int nmuscles = 24, double t_muscle = 0.1);
16+
17+
void SetMuscleParams(int nmuscles, double t_muscle);
18+
19+
void InitializeMuscleState();
20+
21+
void EulerStep(double StepSize);
22+
23+
void SetDorsalMuscleInput(int muscle, double input){V_input[muscle][1] = input;};
24+
void SetVentralMuscleInput(int muscle, double input){V_input[muscle][2] = input;};
25+
26+
void SetDorsalMuscleActivation(int muscle, double activation){V_muscle[muscle][1] = activation;};
27+
void SetVentralMuscleActivation(int muscle, double activation){V_muscle[muscle][2] = activation;};
28+
29+
double DorsalMuscleOutput(int muscle){return V_muscle[muscle][1];};
30+
double VentralMuscleOutput(int muscle){return V_muscle[muscle][2];};
31+
32+
TMatrix<double> V_muscle;
33+
TMatrix<double> V_input;
34+
35+
double T_muscle;
36+
int Nmuscles;
37+
};

0 commit comments

Comments
 (0)