numerics 0.1.0
Loading...
Searching...
No Matches
implicit.hpp File Reference

Implicit time integration via a user-supplied LinearSolver. More...

#include "core/vector.hpp"
#include "linalg/solvers/linear_solver.hpp"
#include <concepts>

Go to the source code of this file.

Classes

struct  num::ode::ImplicitParams
 Parameters for fixed-step implicit integration. More...
 

Namespaces

namespace  num
 
namespace  num::ode
 

Concepts

concept  num::VecField
 

Functions

template<VecField Field, typename Observer >
void num::ode::advance (Field &u, const LinearSolver &solver, ImplicitParams p, Observer &&obs)
 
template<VecField Field>
void num::ode::advance (Field &u, const LinearSolver &solver, ImplicitParams p)
 Overload without observer.
 

Detailed Description

Implicit time integration via a user-supplied LinearSolver.

advance(u, solver, params) – fixed-step backward Euler, no observer advance(u, solver, params, obs) – same, with step callback

The field type is constrained by the VecField concept: any object exposing .vec() -> Vector& works (Vector itself, ScalarField2D, ScalarField3D, ...). This keeps ode/ independent of the fields/ module while supporting all types.

Definition in file implicit.hpp.