|
numerics
|
#include <fields.hpp>
Static Public Member Functions | |
| static SolverResult | solve_poisson (ScalarField3D &phi, const ScalarField3D &source, double tol=1e-6, int max_iter=500) |
| static VectorField3D | gradient (const ScalarField3D &phi) |
| Compute ∇φ via central finite differences (one-sided at boundaries). | |
| static ScalarField3D | divergence (const VectorField3D &f) |
| Compute ∇·f via central finite differences. | |
| static VectorField3D | curl (const VectorField3D &A) |
| Compute ∇×A via central finite differences (one-sided at boundaries). | |
Definition at line 73 of file fields.hpp.
|
static |
Compute ∇×A via central finite differences (one-sided at boundaries).
Definition at line 109 of file fields.cpp.
References num::curl_3d(), and num::ipow().
Referenced by num::MagneticSolver::solve_magnetic_field().
|
static |
Compute ∇·f via central finite differences.
Definition at line 102 of file fields.cpp.
References num::divergence_3d(), and num::ipow().
|
static |
Compute ∇φ via central finite differences (one-sided at boundaries).
Definition at line 95 of file fields.cpp.
References num::gradient_3d(), num::ipow(), and num::phi.
Referenced by num::MagneticSolver::current_density().
|
static |
Solve ∆φ = source with φ=0 on all boundaries (Dirichlet). φ is both the initial guess and the output solution. Internally solves the SPD system (−∆)φ = −source via matrix-free CG.
Definition at line 68 of file fields.cpp.
References num::cg_matfree(), num::ScalarField3D::grid(), num::ipow(), num::matvec(), num::neg_laplacian_3d(), num::Grid3D::nx(), and num::phi.
Referenced by num::MagneticSolver::solve_magnetic_field().