Hi All,
I want to model magnetostriction phenomena. I found an example (nonlinear_magnetostriction.mph) where the magnetic field is created by a coil (current density J0) and which uses Magnetic Field (mf) physics equations. In my study I use a permanent magnet, and so I have to use Magnetic Field No Current (mfnc) equations to solve my problem.
Solving the magnetic part alone is not a problem, when I use a BH curve of my magnetostrictive material or when I use only a constant permeability value µr.
I add the solid mechanic physics equation (linked to the magnetic field), only for my magnetostrictive material.
I am perfectly able to find a solution when I use a constant µr value to define “magnetically” my magnetostrictive materials.
But when I change the magnetic definition of my material to a BH curve I have the following error:
Failed to evaluate variable.
- Variable: mod1.mfnc.Hz
- Geometry: 1
- Domain: 1
Failed to evaluate variable.
- Variable: mod1.mfnc.mfc3.minput_magneticfieldz
- Defined as: mod1.mfnc.Hz
Failed to evaluate variable.
- Variable: mod1.mfnc.normB
- Defined as: (mod1.mat4.BHCurve.BH(((unit_m_cf*sqrt(((mod1.mfnc.mfc3.minput_magneticfieldz^2)+((mod1.mfnc.mfc3.minput_magneticfieldy^2)+(mod1.mfnc.mfc3.minput_magneticfieldx^2)))))/unit_A_cf))*unit_T_cf)
Failed to evaluate expression.
- Expression: subst(mod1.mfnc.normB,mod1.mfnc.HX,(unit_A_cf/unit_m_cf))
Failed to evaluate expression.
- Expression: nojac(((unit_m_cf*(subst(mod1.mfnc.normB,mod1.mfnc.HX,(unit_A_cf/unit_m_cf))-mod1.mfnc.normB))/unit_A_cf))
Failed to evaluate variable.
- Variable: mod1.mfnc.normDiff
- Defined as: nojac(((unit_m_cf*(subst(mod1.mfnc.normB,mod1.mfnc.HX,(unit_A_cf/unit_m_cf))-mod1.mfnc.normB))/unit_A_cf))
Failed to evaluate expression.
- Expression: (mod1.mfnc.normDiff*mod1.mfnc.HZ)
The error is concerning the variables: mod1.mfnc.Hx, mod1.mfnc.Hy or mod1.mfnc.Hz with no rules.
I have already done some tests:
- Even if the solid mechanics has no linked to the previous magnetic calculation, I have the error.
- If I add a heat transfer instead of the solid mechanics, I am able to find the magnetic solution.
I am using Comsol 4.2a.
The BH curve that I use is the inverse of the HB curve from the magnetostrictive material used in the nonlinear magnetostrictive example.
What could I change to find a solution with a BH curve?
I want to model magnetostriction phenomena. I found an example (nonlinear_magnetostriction.mph) where the magnetic field is created by a coil (current density J0) and which uses Magnetic Field (mf) physics equations. In my study I use a permanent magnet, and so I have to use Magnetic Field No Current (mfnc) equations to solve my problem.
Solving the magnetic part alone is not a problem, when I use a BH curve of my magnetostrictive material or when I use only a constant permeability value µr.
I add the solid mechanic physics equation (linked to the magnetic field), only for my magnetostrictive material.
I am perfectly able to find a solution when I use a constant µr value to define “magnetically” my magnetostrictive materials.
But when I change the magnetic definition of my material to a BH curve I have the following error:
Failed to evaluate variable.
- Variable: mod1.mfnc.Hz
- Geometry: 1
- Domain: 1
Failed to evaluate variable.
- Variable: mod1.mfnc.mfc3.minput_magneticfieldz
- Defined as: mod1.mfnc.Hz
Failed to evaluate variable.
- Variable: mod1.mfnc.normB
- Defined as: (mod1.mat4.BHCurve.BH(((unit_m_cf*sqrt(((mod1.mfnc.mfc3.minput_magneticfieldz^2)+((mod1.mfnc.mfc3.minput_magneticfieldy^2)+(mod1.mfnc.mfc3.minput_magneticfieldx^2)))))/unit_A_cf))*unit_T_cf)
Failed to evaluate expression.
- Expression: subst(mod1.mfnc.normB,mod1.mfnc.HX,(unit_A_cf/unit_m_cf))
Failed to evaluate expression.
- Expression: nojac(((unit_m_cf*(subst(mod1.mfnc.normB,mod1.mfnc.HX,(unit_A_cf/unit_m_cf))-mod1.mfnc.normB))/unit_A_cf))
Failed to evaluate variable.
- Variable: mod1.mfnc.normDiff
- Defined as: nojac(((unit_m_cf*(subst(mod1.mfnc.normB,mod1.mfnc.HX,(unit_A_cf/unit_m_cf))-mod1.mfnc.normB))/unit_A_cf))
Failed to evaluate expression.
- Expression: (mod1.mfnc.normDiff*mod1.mfnc.HZ)
The error is concerning the variables: mod1.mfnc.Hx, mod1.mfnc.Hy or mod1.mfnc.Hz with no rules.
I have already done some tests:
- Even if the solid mechanics has no linked to the previous magnetic calculation, I have the error.
- If I add a heat transfer instead of the solid mechanics, I am able to find the magnetic solution.
I am using Comsol 4.2a.
The BH curve that I use is the inverse of the HB curve from the magnetostrictive material used in the nonlinear magnetostrictive example.
What could I change to find a solution with a BH curve?