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

Diffusion operators and implicit system builders for 2D grids. More...

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)
 

Detailed Description

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.