added int of std::vector and saving 1/2int E^2 dx

This commit is contained in:
Vasco C. B. Ferreira
2026-03-25 16:48:02 +01:00
parent bfd3ada0b8
commit 47a97f7a7c
3 changed files with 40 additions and 4 deletions
+23
View File
@@ -142,6 +142,29 @@ void interpolate( real *coeffs, const real *values)
coeffs[ i ] = tmp[ i % Parameters::SPLINE_NX ];
}
double integral_space_vector(const double *current_coeffs, double dx = Parameters::SPLINE_DX, size_t Nx = Parameters::SPLINE_NX)
{
double integral = 0.0;
double x = Parameters::X_DOMAIN_LEFT;
for (size_t i=0; i<Nx ; ++i) {
x += dx;
integral += eval<1>(x, current_coeffs)*dx;
}
return integral;
};
double integral_space_vector_squared(const double *current_coeffs, double dx = Parameters::SPLINE_DX, size_t Nx = Parameters::SPLINE_NX)
{
double integral = 0.0;
double x = Parameters::X_DOMAIN_LEFT;
for (size_t i=0; i<Nx ; ++i) {
x += dx;
double val = eval<1>(x, current_coeffs);
integral += val*val*dx;
}
return integral;
};
class Gradient {
public:
Gradient(double xmin, double xmax, unsigned int Nx)