Skip to content

Current flow (v-formulation)

This page derives the weak formulation for steady-state current flow using the electric scalar potential vv and describes the available interactions and couplings in Allsolve.

In the case of a non-zero constant current flow Ampere-Maxwell law states, that

×H=J+Dt.\begin{align*} \nabla \times \boldsymbol{H} = \boldsymbol{J} + \frac{\partial \boldsymbol{D}}{\partial t}. \tag{1} \end{align*}

Taking the divergence of both sides we get

(×H)=(J+Dt)\begin{align*} \nabla \cdot (\nabla \times \boldsymbol{H}) &= \nabla \cdot (\boldsymbol{J} + \frac{\partial \boldsymbol{D}}{\partial t}) \tag{2} \end{align*}

and

0=(J+Dt),\begin{align*} 0 &= \nabla \cdot (\boldsymbol{J} + \frac{\partial \boldsymbol{D}}{\partial t}), \tag{3} \end{align*}

since the divergence of a curl is zero.

Under the assumption of constant current flow (or approximating a slowly varying current), the time derivative of the electric displacement field Dt\frac{\partial \boldsymbol{D}}{\partial t} equals zero.

J=0\begin{align*} \nabla \cdot \boldsymbol{J} = 0 \tag{4} \end{align*}

This indicates that the current flow is non-divergent. We can write a current density using Ohm’s law in differential form as

J=σE,\begin{align*} \boldsymbol{J} &= \sigma \boldsymbol{E}, \tag{5} \end{align*}

where σ\sigma is the conductivity of the material.

Thus we have

(σE)=0(σv)=0(σv)=0\begin{align*} \nabla \cdot (\sigma \boldsymbol{E}) &= 0 \tag{6} \\[5pt] \nabla \cdot (- \sigma \nabla v) &= 0 \tag{7} \\[5pt] \nabla \cdot (\sigma \nabla v) &= 0 \tag{8} \\[5pt] \end{align*}

resulting in Laplace’s equation.

To obtain the weak form, multiply by the test function vv^{\prime} and integrate over the domain Ω\Omega:

Ω  ((σv))  v  dΩ=0\begin{align*} \int_{\Omega}\; (\nabla \cdot (\sigma \nabla v))\; v^{\prime}\; d \Omega = 0 \tag{9} \end{align*}

Applying the Leibniz rule for nabla a operator we get

Ω  (v  σv)  dΩ+Ω  (vσv)  dΩ=0\begin{align*} \int_{\Omega}\; \nabla \cdot (v^{\prime}\; \sigma \nabla v)\; d \Omega + \int_{\Omega}\; -(\nabla v^{\prime} \cdot \sigma \nabla v)\; d \Omega = 0 \tag{10} \end{align*}

For the first term we can use the Divergence theorem

Γ  (v  σv)n  dΓ+Ω  (vσv)  dΩ=0\begin{align*} \int_{\Gamma}\; (v^{\prime}\; \sigma \nabla v) \cdot \boldsymbol{n}\; d \Gamma + \int_{\Omega}\; -(\nabla v^{\prime} \cdot \sigma \nabla v)\; d \Omega = 0 \tag{11} \end{align*}

Rearranging the terms and using relation E=v\boldsymbol{E} = - \nabla v we obtain

Ω  (σvv)  dΩ+Γ  σEn  v  dΓ=0\begin{align*} \int_{\Omega}\; (-\sigma \nabla v \cdot \nabla v^{\prime})\; d \Omega + \int_{\Gamma}\; -\sigma \boldsymbol{E} \cdot \boldsymbol{n}\; v^{\prime}\; d \Gamma = 0 \tag{12} \end{align*}

Using relation J=σE\boldsymbol{J} = \sigma \boldsymbol{E} on the Neumann term results in

Ω  (σvv)  dΩ+Γ  (Jn)  v  dΓ=0\begin{align*} \int_{\Omega}\; (-\sigma \nabla v \cdot \nabla v^{\prime})\; d \Omega + \int_{\Gamma}\; (-\boldsymbol{J} \cdot \boldsymbol{n})\; v^{\prime}\; d \Gamma = 0 \tag{13} \end{align*}

Applies a fixed value to the electric scalar potential vv. Use this when you need to fix the electric potential at a node or within a region. This can be used to drive a potential difference between two capacitor plates.

How to useProvide an electric potential value in point or region in Volts
Examplev=100v = 100 applies an electric scalar potential of 100V100\:V to the specified region.
UnitElectric potential in Volts (V)

Applies a current density vector J\boldsymbol{J} as a source term to a region. Used to model externally driven current distributions, such as in coils, where the current is prescribed rather than solved for. Can be specified as a constant vector or a spatially varying field.

How to useYou can use either the matrix editor or the expression editor. With the matrix editor, provide a 3×1 matrix for a 3D problem (2×1 for 2D, etc.). In the expression editor, write the direct expression.
Example[1000; 5000; 0] drives a current density of Jx=1000J_x = 1000 A/m^regdim, Jy=5000J_y = 5000 A/m^regdim and Jz=0J_z = 0 A/m^regdim to the specified region.
UnitAmpere/m^regdim. The regdim is the dimension of the target region (e.g., A/m^2 for surface targets).

Applies a lumped voltage VV or current II to a specific node or region. Unlike the Lump V/I Cut, this interaction does not require a cut surface and is used for simpler geometries where the domain is already simply connected. Commonly used to define electrode potentials or inject current into a conducting region.

How to useSpecify the target curve. From Actuation mode, select either voltage, current or circuit coupling. Fill in the value.
ExampleI=100I = 100 applies 100 Amperes to the curve.
UnitVoltage in Volts (V) or current in Amperes (A)

Applies a lumped voltage VV or current II through a cut surface in the domain. In the electric potential formulation, cuts are required to make the domain simply connected, ensuring a unique solution for v. This interaction is used to drive current or voltage through conducting regions such as coils, without explicitly resolving the detailed field distribution inside the conductor.

How to useSpecify the target curve (must be a closed boundary of some surface). From Actuation mode, select either voltage, current or circuit coupling. Fill in the value.
ExampleI=100I = 100 applies 100 Amperes through the cut surface. See also Lump I/V Cut in Induction motor.
UnitCurrent in Amperes (A) or voltage in Volts (V)

Imposes periodic boundary conditions on the electric potential vv between two boundaries. Reduces the computational domain size for geometrically symmetric or antisymmetric problems, avoiding the need to model the full geometry.

ExamplePeriodicity follows the same principles, regardless of which physics module it belongs to. See how periodicity is used in magnetism as a reference: Periodicity in electric motors