From 79a83c2cbee5adca798b8976b2a39ecd6ffd39af Mon Sep 17 00:00:00 2001 From: Franklin Wei Date: Sat, 2 Feb 2019 23:02:12 -0500 Subject: initial commit basic B field integrator --- curve.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 curve.cpp (limited to 'curve.cpp') diff --git a/curve.cpp b/curve.cpp new file mode 100644 index 0000000..9b63e8d --- /dev/null +++ b/curve.cpp @@ -0,0 +1,23 @@ +#include +#include "curve.h" + +using namespace std; + +vec3 LineSegment::integrate(vec3 (*integrand)(vec3 s, vec3 ds), double dl) +{ + vec3 diff = this->b - this->a, sum = 0; + + double len = diff.magnitude(); + + vec3 diffnorm = diff / len, s = this->a, ds = diffnorm * dl; + + double l; + + for(l = 0; l < len; l += dl, s += ds) + sum += integrand(s, ds); + + if(l < len) + sum += integrand(s, diffnorm * (len - l)); + + return sum; +} -- cgit v1.1