From d29630be118fd747d722d3e72ae2c8ff97eccf0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesus=20Mart=C3=ADnez?= Date: Mon, 19 Jan 2026 15:50:21 +0100 Subject: [PATCH] =?UTF-8?q?Updates=20`=CE=B1r`=20to=20be=20mutable=20in=20?= =?UTF-8?q?`HardMagnetic2D`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes the `αr` field in the `HardMagnetic2D` struct to be a `Ref{Float64}`. This allows modification of the `αr` parameter after the object's construction, improving flexibility in simulations where this parameter needs to be dynamically adjusted. It also updates the access to `αr` to dereference the `Ref` object. --- src/PhysicalModels/MagneticModels.jl | 4 ++-- src/PhysicalModels/MagnetoMechanicalModels.jl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/PhysicalModels/MagneticModels.jl b/src/PhysicalModels/MagneticModels.jl index 78e7f2f..272f4b4 100644 --- a/src/PhysicalModels/MagneticModels.jl +++ b/src/PhysicalModels/MagneticModels.jl @@ -162,13 +162,13 @@ end struct HardMagnetic2D <: Magneto μ::Float64 - αr::Float64 + αr::Ref{Float64} χe::Float64 χr::Float64 βmok::Float64 βcoup::Float64 function HardMagnetic2D(; μ0::Float64, αr::Float64, χe::Float64=0.0, χr::Float64=8.0, βmok::Float64=0.0, βcoup::Float64=0.0) - new(μ0, αr, χe, χr, βmok, βcoup) + new(μ0, Ref(αr), χe, χr, βmok, βcoup) end function (obj::HardMagnetic2D)(Λ::Float64=1.0) diff --git a/src/PhysicalModels/MagnetoMechanicalModels.jl b/src/PhysicalModels/MagnetoMechanicalModels.jl index 96dd2a9..f066b1c 100644 --- a/src/PhysicalModels/MagnetoMechanicalModels.jl +++ b/src/PhysicalModels/MagnetoMechanicalModels.jl @@ -164,7 +164,7 @@ function _getCoupling(mag::HardMagnetic2D, ::Mechano, Λ::Float64=1.0) #------------------------------------------------------------------------------------- Hℋ₀(F, ℋ₀) = H(F) * ℋ₀ Hℋ₀Hℋ₀(F, ℋ₀) = Hℋ₀(F, ℋ₀) ⋅ Hℋ₀(F, ℋ₀) - ℋᵣ(N) = αr * Λ* N + ℋᵣ(N) = αr[] * Λ* N Fℋᵣ(F, N) = F * ℋᵣ(N) Ψcoup(F, N) = (μ * J(F)) * (Fℋᵣ(F, N) ⋅ Fℋᵣ(F, N) - ℋᵣ(N) ⋅ ℋᵣ(N)) ∂Ψcoup_∂F(F, N) = 2 * (μ * J(F)) * (Fℋᵣ(F, N) ⊗ ℋᵣ(N))