MagneticPotentialCondition[pred,vars,pars]
represents a magnetic surface potential boundary condition for PDEs with predicate pred indicating where it applies, with model variables vars and global parameters pars.
MagneticPotentialCondition[pred,vars,pars,lkey]
represents a magnetic potential surface boundary condition with local parameters specified in pars[lkey].
MagneticPotentialCondition
MagneticPotentialCondition[pred,vars,pars]
represents a magnetic surface potential boundary condition for PDEs with predicate pred indicating where it applies, with model variables vars and global parameters pars.
MagneticPotentialCondition[pred,vars,pars,lkey]
represents a magnetic potential surface boundary condition with local parameters specified in pars[lkey].
Details
- MagneticPotentialCondition specifies a Dirichlet boundary condition for MagnetostaticPDEComponent and MagneticPDEComponent.
- MagneticPotentialCondition is typically used to set a specific magnetic potential on the boundary.
- MagneticPotentialCondition sets a scalar magnetic potential on the boundary with dependent variable
and independent variables
. - Stationary variables vars are vars={Vm[x1,…,xn],{x1,…,xn}}.
- MagneticPotentialCondition sets a vector magnetic potential on the boundary with dependent variable
and independent variables
. - The vector-valued dependent variable
is specified as a three-vector
={Ax1,Ax2,Ax3}. - Stationary variables vars are vars={
[x1,…,xn],{x1,…,xn}}. - Frequency-dependent variables vars are vars={
[x1,…,xn],ω,{,…,xn}}. - Time-dependent variables vars are vars={
[t,x1,…,xn],t,{x1,…,xn}}. - The following additional model parameters pars can be given:
-
parameter default symbol "MagneticPotential" 0
, magnetic surface potential in [
]"MagneticPotential" {0,…}
, magnetic surface potential in [
] - Model parameters pars are specified as for MagnetostaticPDEComponent or MagneticPDEComponent.
- MagneticPotentialCondition evaluates to one or more DirichletCondition instances.
- The boundary predicate pred can be specified as in DirichletCondition.
- If the MagneticPotentialCondition depends on parameters
that are specified in the association pars as …,keypi…,pivi,…, the parameters
are replaced with
.
Examples
open all close allBasic Examples (4)
Set up a default magnetic potential boundary condition:
MagneticPotentialCondition[x ≥ 0, {Subscript[V, m][x, y], {x, y}}, <||>]Set up a default magnetic vector potential boundary condition:
MagneticPotentialCondition[x ≥ 0, {{Ax[x, y, z], Ay[x, y, z], Az[x, y, z]}, {x, y, z}}, <||>]Set up a magnetic potential boundary condition with surface potential
:
MagneticPotentialCondition[x ≥ 0, {Subscript[V, m][x, y], {x, y}}, <|"MagneticPotential" -> Subscript[V, ms][x, y]|>]Set up a default magnetic vector potential boundary condition:
MagneticPotentialCondition[x ≥ 0, {{Ax[x, y, z], Ay[x, y, z], Az[x, y, z]}, {x, y, z}}, <|"MagneticPotential" -> {A1[x, y, z], None, 1}|>]Scope (2)
Define model variables vars for a magnetostatic analysis with named boundary condition model parameters pars:
vars = {Subscript[V, m][x, y], {x, y}};
pars = <|"RelativePermeability" -> 1, "BoundaryCondition1" -> <|<|"MagneticPotential" -> Vm1|>|>, "BoundaryCondition2" -> <|<|"MagneticPotential" -> Vm2|>|>|>;Construct one of the boundary conditions:
MagneticPotentialCondition[x == 1, vars, pars, "BoundaryCondition2"]Define model variables vars for a magnetic analysis with named boundary condition model parameters pars:
vars = {{Ax[x, y, z], Ay[x, y, z], Az[x, y, z]}, {x, y, z}};
pars = <|"RelativePermeability" -> 1, "BoundaryCondition1" -> <|<|"MagneticPotential" -> {A0x, None, A0z}|>|>, "BoundaryCondition2" -> <|<|"MagneticPotential" -> {None, None, A0z}|>|>|>;Construct one of the boundary conditions:
MagneticPotentialCondition[x == 1, vars, pars, "BoundaryCondition2"]Applications (3)
To model a permanent magnet in 2D with a rectangular cross section, define the mesh to use:
mesh = \!\(\*GraphicsBox[«3»]\);Visualize the internal boundaries of the magnet region:
Show[HighlightMesh[mesh, {...}], PlotRange -> {{-0.08, 0.08}, {-0.15, 0.15}}]Define the magnetostatic operator:
op = MagnetostaticPDEComponent[{Vm[x, y], {x, y}}, <|"Magnetization" -> {0, Piecewise[{{400000, RegionMember[Rectangle[{-0.05, -0.1}, {0.05, 0.1}]][{x, y}]}}, 0]}|>];Define the zero magnetic scalar potential condition at the exterior boundaries:
Subscript[Γ, zero] = MagneticPotentialCondition[x == -1 || x == 1 || y == -1 || y == 1, {Vm[x, y], {x, y}}, <||>]Solve the magnetostatic PDE model:
VmFun = NDSolveValue[{op == 0, Subscript[Γ, zero]}, Vm, {x, y}∈mesh]Visualize the magnetic scalar potential and the magnetic field:
Show[DensityPlot[VmFun[x, y], {x, -0.3, 0.3}, {y, -0.3, 0.3}, ColorFunction -> "Rainbow", PlotLegends -> Automatic], Graphics[{Gray, Rectangle[{-0.05, -0.1}, {0.05, 0.1}]}], StreamPlot[Evaluate[-Grad[VmFun[x, y], {x, y}]], {x, -0.3, 0.3}, {y, -0.3, 0.3}, StreamColorFunction -> None, StreamStyle -> Black]]To model a 3D cylinder permanent magnet, set up variables:
vars = {Vm[x, y, z], {x, y, z}};Define the magnet region of height
[
] and radius
[
]:
magnet = Cylinder[{{0, 0, -1 / 10}, {0, 0, 1 / 10}}, 1 / 10];Define the magnetization vector:
pars = <|"Magnetization" -> {0, 0, Piecewise[{{1*^5, RegionMember[magnet][{x, y, z}]}}, 0]}|>;Subscript[Γ, p] = MagneticPotentialCondition[x ^ 2 + y ^ 2 + z ^ 2 >= 2 ^ 2, vars, pars]Set up the mesh with a sphere of air of
[
] that represents the surrounding volume:
mesh = \!\(\*Graphics3DBox[«5»]\);Visualize the magnet cylinder that is inside the mesh:
Show[Graphics3D[{Opacity[0.1], magnet}, Boxed -> False], HighlightMesh[RegionBoundary[mesh], {}, PlotTheme -> "Lines"]]Set up the magnetostatIc PDE component:
op = MagnetostaticPDEComponent[vars, pars];VmFun = NDSolveValue[{op == 0, Subscript[Γ, p]}, Vm, {x, y, z}∈mesh]Show[Graphics3D[{LightGray, magnet}], StreamPlot3D[Evaluate[-Grad[VmFun[x, y, z], {x, y, z}]], {x, -0.5, 0.5}, {y, -0.5, 0.5}, {z, -0.5, 0.5}, ...], Rule[...]]Define the mesh to model a long copper wire of circular cross section:
mesh = \!\(\*GraphicsBox[«3»]\);wireRegion = Disk[{0, 0}, 0.01];airRegion = Disk[{0, 0}, 0.1];Define the parameters of the model:
pars = <|"ElectricalConductivity" -> Piecewise[{{5.9*^7, RegionMember[wireRegion][{x, y}]}}, 0], "RelativePermeability" -> 1|>;vars = {{0, 0, Az[x, y]}, ω, {x, y}};Define the uniform external current density in the
direction:
Je0 = 100000;
pars["ExternalCurrentSource"] = {0, 0, Piecewise[{{Je0, RegionMember[wireRegion][{x, y}]}}]};op = MagneticPDEComponent[vars, pars]Define a zero magnetic potential condition at the exterior boundary:
Subscript[Γ, zero] = MagneticPotentialCondition[x ^ 2 + y ^ 2 >= 0.1 ^ 2, vars, pars]pde = {op == 0, Subscript[Γ, zero]};Set up an angular frequency of 800 Hz:
ω0 = 2 * Pi * 800;Replace the angular frequency
of the equation with the frequency and solve the PDE:
AzFun = NDSolveValue[pde /. ω -> ω0, Az, {x, y}∈mesh]Efield = {0, 0, -I * ω0 * AzFun[x, y]};Compute the conduction current:
Jc = pars["ElectricalConductivity"] * Efield;Je = pars["ExternalCurrentSource"];Jfield = Jc + Je;Visualize the total current magnitude:
DensityPlot[Sqrt[Total[Abs[Jfield] ^ 2]], {x, y}∈mesh, ...]Related Guides
History
Text
Wolfram Research (2025), MagneticPotentialCondition, Wolfram Language function, https://reference.wolfram.com/language/ref/MagneticPotentialCondition.html.
CMS
Wolfram Language. 2025. "MagneticPotentialCondition." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/MagneticPotentialCondition.html.
APA
Wolfram Language. (2025). MagneticPotentialCondition. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/MagneticPotentialCondition.html
BibTeX
@misc{reference.wolfram_2026_magneticpotentialcondition, author="Wolfram Research", title="{MagneticPotentialCondition}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/MagneticPotentialCondition.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_magneticpotentialcondition, organization={Wolfram Research}, title={MagneticPotentialCondition}, year={2025}, url={https://reference.wolfram.com/language/ref/MagneticPotentialCondition.html}, note=[Accessed: 12-June-2026]}