Skip to content

Commit 73e4b07

Browse files
committed
Improve readability of examples in verlet.cpp
- make functions return time - assign value to vars at declaration - use next_pos var name instead of tmp_pos (delete comment)
1 parent 6dcdf85 commit 73e4b07

File tree

2 files changed

+25
-30
lines changed

2 files changed

+25
-30
lines changed
Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,51 @@
11
#include <iostream>
22

33
// Simple function for velocity-verlet
4-
void verlet(double pos, double acc, double dt) {
4+
double verlet(double pos, double acc, double dt) {
55

6-
// Note that we are using a temp variable for the previous position
7-
double prev_pos, temp_pos, time;
8-
prev_pos = pos;
9-
time = 0;
6+
double prev_pos = pos;
7+
double time = 0;
108

119
while (pos > 0) {
1210
time += dt;
13-
temp_pos = pos;
14-
pos = pos * 2 - prev_pos + acc * dt * dt;
15-
prev_pos = temp_pos;
11+
double next_pos = pos * 2 - prev_pos + acc * dt * dt;
12+
prev_pos = pos;
13+
pos = next_pos;
1614
}
1715

18-
std::cout << time << '\n';
16+
return time;
1917
}
2018

2119
// Simple function for stormer-verlet
22-
void stormer_verlet(double pos, double acc, double dt) {
20+
double stormer_verlet(double pos, double acc, double dt) {
2321

24-
// Note that we are using a temp variable for the previous position
25-
double prev_pos, temp_pos, time, vel;
26-
prev_pos = pos;
27-
vel = 0;
28-
time = 0;
22+
double prev_pos = pos;
23+
double time = 0;
24+
double vel = 0;
2925
while (pos > 0) {
3026
time += dt;
31-
temp_pos = pos;
32-
pos = pos * 2 - prev_pos + acc * dt * dt;
33-
prev_pos = temp_pos;
27+
double next_pos = pos * 2 - prev_pos + acc * dt * dt;
28+
prev_pos = pos;
29+
pos = next_pos;
3430

3531
// The acceleration is constant, so the velocity is straightforward
3632
vel += acc * dt;
3733
}
3834

39-
std::cout << time << '\n';
35+
return time;
4036
}
4137

42-
void velocity_verlet(double pos, double acc, double dt) {
38+
double velocity_verlet(double pos, double acc, double dt) {
4339

44-
double time, vel;
45-
vel = 0;
46-
time = 0;
40+
double time = 0;
41+
double vel = 0;
4742
while (pos > 0) {
4843
time += dt;
4944
pos += vel * dt + 0.5 * acc * dt * dt;
5045
vel += acc * dt;
5146
}
5247

53-
std::cout << time << '\n';
48+
return time;
5449
}
5550

5651
int main() {
@@ -61,7 +56,7 @@ int main() {
6156
// For example, if your acceleration chages as a function of time, you might
6257
// need to also change the acceleration to be read into each of these
6358
// functions
64-
verlet(5.0, -10, 0.01);
65-
stormer_verlet(5.0, -10, 0.01);
66-
velocity_verlet(5.0, -10, 0.01);
59+
std::cout << verlet(5.0, -10, 0.01) << std::endl;
60+
std::cout << stormer_verlet(5.0, -10, 0.01) << std::endl;
61+
std::cout << velocity_verlet(5.0, -10, 0.01) << std::endl;
6762
}

chapters/algorithms/verlet_integration/verlet_integration.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Here is what it looks like in code:
3333
{% sample lang="jl" %}
3434
[import:1-13, lang:"julia"](code/julia/verlet.jl)
3535
{% sample lang="cpp" %}
36-
[import:4-19, lang:"c_cpp"](code/c++/verlet.cpp)
36+
[import:4-17, lang:"c_cpp"](code/c++/verlet.cpp)
3737
{% sample lang="c" %}
3838
[import:3-16, lang:"c_cpp"](code/c/verlet.c)
3939
{% sample lang="java" %}
@@ -79,7 +79,7 @@ Here's what it looks like in code:
7979
{% sample lang="jl" %}
8080
[import:15-31, lang:"julia"](code/julia/verlet.jl)
8181
{% sample lang="cpp" %}
82-
[import:22-40, lang:"c_cpp"](code/c++/verlet.cpp)
82+
[import:20-36, lang:"c_cpp"](code/c++/verlet.cpp)
8383
{% sample lang="c" %}
8484
[import:18-33, lang:"c_cpp"](code/c/verlet.c)
8585
{% sample lang="java" %}
@@ -136,7 +136,7 @@ Here is the velocity Verlet method in code:
136136
{% sample lang="jl" %}
137137
[import:33-45, lang:"julia"](code/julia/verlet.jl)
138138
{% sample lang="cpp" %}
139-
[import:42-54, lang:"c_cpp"](code/c++/verlet.cpp)
139+
[import:38-49, lang:"c_cpp"](code/c++/verlet.cpp)
140140
{% sample lang="c" %}
141141
[import:35-46, lang:"c_cpp"](code/c/verlet.c)
142142
{% sample lang="java" %}

0 commit comments

Comments
 (0)