Program Listing for File test_rk4_only.cpp

Return to documentation for file (examples/test_rk4_only.cpp)

#include <diffeq.hpp>
#include <iostream>
#include <vector>

void exponential_decay(double t, const std::vector<double>& y, std::vector<double>& dydt) {
    dydt[0] = -y[0];
}

int main() {
    std::cout << "Testing RK4 only..." << std::endl;

    try {
        std::vector<double> y = {1.0};
        auto integrator = diffeq::RK4Integrator<std::vector<double>>(exponential_decay);
        integrator.set_time(0.0);
        integrator.integrate(y, 0.1, 1.0);
        std::cout << "RK4 result: " << y[0] << " (expected: " << std::exp(-1.0) << ")" << std::endl;
            std::cout << "[PASS] RK4 test passed!" << std::endl;
} catch (const std::exception& e) {
    std::cout << "[FAIL] RK4 test failed: " << e.what() << std::endl;
        return 1;
    }

    return 0;
}