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

Explicit Euler diffusion steps for 2D uniform grids. More...

#include "pde/stencil.hpp"
#include "core/vector.hpp"
#include "core/policy.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)
 

Detailed Description

Explicit Euler diffusion steps for 2D uniform grids.

diffusion_step_2d – u += coeff * ∆_periodic(u), periodic BC diffusion_step_2d_dirichlet – u += coeff * ∆_dirichlet(u), Dirichlet BC

coeff = α·dt/h² where α is the diffusion coefficient.

Typical usage (viscosity in Navier-Stokes):

const double coeff = dt * nu / (h * h);
void diffusion_step_2d(Vector &u, int N, double coeff, Backend b=best_backend)
Definition diffusion.hpp:30
constexpr Backend best_backend
Best backend for memory-bound vector ops: blas > omp > blocked.
Definition policy.hpp:65

Definition in file diffusion.hpp.