|
numerics 0.1.0
|
Diffusion operators and implicit system builders for 2D grids. More...
#include "pde/stencil.hpp"#include "core/vector.hpp"#include "core/policy.hpp"#include "fields/grid2d.hpp"#include "linalg/sparse/sparse.hpp"#include "linalg/solvers/cg.hpp"#include "linalg/solvers/linear_solver.hpp"Go to the source code of this file.
Namespaces | |
| namespace | num |
| namespace | num::pde |
Functions | |
| void | num::pde::diffusion_step_2d (Vector &u, int N, double coeff, Backend b=best_backend) |
| void | num::pde::diffusion_step_2d_dirichlet (Vector &u, int N, double coeff, Backend b=best_backend) |
| void | num::pde::diffusion_step_2d_4th_dirichlet (Vector &u, int N, double coeff, Backend b=best_backend) |
| void | num::pde::diffusion_step_2d_dirichlet (ScalarField2D &g, double coeff, Backend b=best_backend) |
| void | num::pde::diffusion_step_2d_4th_dirichlet (ScalarField2D &g, double coeff, Backend b=best_backend) |
| SparseMatrix | num::pde::laplacian_sparse_2d (int N) |
| SparseMatrix | num::pde::backward_euler_matrix (int N, double coeff) |
| SparseMatrix | num::pde::backward_euler_matrix (const Grid2D &grid, double coeff) |
| Grid2D overload – N is read from the grid. | |
| LinearSolver | num::pde::make_cg_solver (const SparseMatrix &A, real tol=1e-6) |
Diffusion operators and implicit system builders for 2D grids.
Explicit Euler stencil steps (periodic or Dirichlet BCs): diffusion_step_2d – periodic diffusion_step_2d_dirichlet – Dirichlet, 2nd-order diffusion_step_2d_4th_dirichlet – Dirichlet, 4th-order
Implicit system builders (backward Euler): laplacian_sparse_2d – bare N^2 x N^2 Laplacian matrix backward_euler_matrix – A = I - coeff*L (sparse, SPD)
Solver factory: make_cg_solver(A) – returns a LinearSolver using matrix-free CG
Time integration lives in ode/implicit.hpp: num::ode::advance(u, solver, p).
Definition in file diffusion.hpp.