|
numerics 0.1.0
|
#include <field_solver.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) |
| Compute \(\nabla\times A\). | |
Definition at line 11 of file field_solver.hpp.
|
static |
Compute \(\nabla\times A\).
Definition at line 120 of file field_solver.cpp.
References num::curl_3d(), num::ScalarField3D::dx(), 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 113 of file field_solver.cpp.
References num::divergence_3d(), num::ScalarField3D::dx(), 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 106 of file field_solver.cpp.
References num::gradient_3d(), 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 12 of file field_solver.cpp.
References num::operators::assume_spd(), num::cg(), num::operators::make_op(), num::neg_laplacian_3d(), num::phi, and num::BasicVector< T >::vec().
Referenced by num::MagneticSolver::solve_magnetic_field().
|
static |
Solve \(\nabla\cdot(c\nabla\phi)=0\) with Dirichlet data.
Definition at line 35 of file field_solver.cpp.
References num::operators::assume_spd(), num::cg(), num::e, num::operators::make_op(), num::matvec(), num::phi, and num::BasicVector< T >::vec().