|
numerics 0.1.0
|
#include <fields.hpp>
Classes | |
| struct | DirichletBC |
| Dirichlet boundary condition: fix phi = value at grid node flat_idx. More... | |
Static Public Member Functions | |
| static SolverResult | solve_poisson (ScalarField3D &phi, const ScalarField3D &source, double tol=1e-6, int max_iter=500) |
| Solve \(\Delta\phi=s\) with zero Dirichlet boundaries. | |
| static SolverResult | solve_var_poisson (ScalarField3D &phi, const ScalarField3D &coeff, const std::vector< DirichletBC > &bcs, double tol=1e-6, int max_iter=500) |
| Solve \(\nabla\cdot(c\nabla\phi)=0\) with Dirichlet data. | |
| static VectorField3D | gradient (const ScalarField3D &phi) |
| Compute \(\nabla\phi\). | |
| static ScalarField3D | divergence (const VectorField3D &f) |
| Compute \(\nabla\cdot f\). | |
| static VectorField3D | curl (const VectorField3D &A) |
Definition at line 99 of file fields.hpp.
|
static |
Compute curl(A) via central finite differences (one-sided at boundaries).
Definition at line 200 of file fields.cpp.
References num::curl_3d(), num::ScalarField3D::dx(), num::ScalarField3D::grid(), num::ScalarField3D::nx(), num::ScalarField3D::ny(), num::ScalarField3D::nz(), num::ScalarField3D::ox(), num::ScalarField3D::oy(), num::ScalarField3D::oz(), num::VectorField3D::x, num::VectorField3D::y, and num::VectorField3D::z.
Referenced by num::MagneticSolver::solve_magnetic_field().
|
static |
Compute \(\nabla\cdot f\).
Definition at line 193 of file fields.cpp.
References num::divergence_3d(), num::ScalarField3D::dx(), num::ScalarField3D::grid(), num::ScalarField3D::nx(), num::ScalarField3D::ny(), num::ScalarField3D::nz(), num::ScalarField3D::ox(), num::ScalarField3D::oy(), num::ScalarField3D::oz(), num::VectorField3D::x, num::VectorField3D::y, and num::VectorField3D::z.
|
static |
Compute \(\nabla\phi\).
Definition at line 186 of file fields.cpp.
References num::gradient_3d(), num::ScalarField3D::grid(), num::phi, num::VectorField3D::x, num::VectorField3D::y, and num::VectorField3D::z.
Referenced by num::MagneticSolver::current_density().
|
static |
Solve \(\Delta\phi=s\) with zero Dirichlet boundaries.
Definition at line 82 of file fields.cpp.
References num::cg(), num::Grid3D::dx(), num::ScalarField3D::grid(), num::operators::make_op(), num::matvec(), num::neg_laplacian_3d(), num::Grid3D::nx(), num::Grid3D::ny(), num::Grid3D::nz(), and num::phi.
Referenced by num::MagneticSolver::solve_magnetic_field().
|
static |
Solve \(\nabla\cdot(c\nabla\phi)=0\) with Dirichlet data.
Definition at line 111 of file fields.cpp.
References num::cg(), num::Grid3D::dx(), num::e, num::ScalarField3D::grid(), num::operators::make_op(), num::matvec(), num::Grid3D::nx(), num::Grid3D::ny(), num::Grid3D::nz(), and num::phi.