numerics
Loading...
Searching...
No Matches
num::MagneticSolver Class Reference

#include <fields.hpp>

Static Public Member Functions

static VectorField3D current_density (const ScalarField3D &sigma, const ScalarField3D &phi)
 Compute current density J = −σ∇φ [A/m²].
 
static VectorField3D solve_magnetic_field (const VectorField3D &J, double tol=1e-6, int max_iter=500)
 

Static Public Attributes

static constexpr double MU0 = 1.2566370614e-6
 μ₀ [H/m]
 

Detailed Description

Definition at line 97 of file fields.hpp.

Member Function Documentation

◆ current_density()

VectorField3D num::MagneticSolver::current_density ( const ScalarField3D sigma,
const ScalarField3D phi 
)
static

Compute current density J = −σ∇φ [A/m²].

Definition at line 120 of file fields.cpp.

References num::FieldSolver::gradient(), num::ScalarField3D::grid(), num::ipow(), num::Grid3D::nx(), num::phi, num::VectorField3D::x, num::VectorField3D::y, and num::VectorField3D::z.

Referenced by main().

◆ solve_magnetic_field()

VectorField3D num::MagneticSolver::solve_magnetic_field ( const VectorField3D J,
double  tol = 1e-6,
int  max_iter = 500 
)
static

Solve for static magnetic field B given current density J. Solves ∆A = −μ₀J (Coulomb gauge, Dirichlet A=0) via three CG solves, then returns B = ∇×A.

Definition at line 136 of file fields.cpp.

References num::FieldSolver::curl(), num::ScalarField3D::dx(), num::ipow(), MU0, num::ScalarField3D::nx(), num::ScalarField3D::ny(), num::ScalarField3D::nz(), num::ScalarField3D::ox(), num::ScalarField3D::oy(), num::ScalarField3D::oz(), num::FieldSolver::solve_poisson(), num::VectorField3D::x, num::VectorField3D::y, and num::VectorField3D::z.

Referenced by main().

Member Data Documentation

◆ MU0

constexpr double num::MagneticSolver::MU0 = 1.2566370614e-6
staticconstexpr

μ₀ [H/m]

Definition at line 99 of file fields.hpp.

Referenced by solve_magnetic_field().


The documentation for this class was generated from the following files: