diff --git a/src/Mod/Fem/Gui/Resources/ui/ElectrostaticPotential.ui b/src/Mod/Fem/Gui/Resources/ui/ElectrostaticPotential.ui
index 3956a7e83d..50fc5e15c5 100644
--- a/src/Mod/Fem/Gui/Resources/ui/ElectrostaticPotential.ui
+++ b/src/Mod/Fem/Gui/Resources/ui/ElectrostaticPotential.ui
@@ -416,14 +416,14 @@ Note: has no effect if a solid was selected
-
- Surface Charge Density:
+ Electric Flux Density:
-
-
+
- Surface charge density
+ Normal component of electric displacement field
C/m^2
diff --git a/src/Mod/Fem/femobjects/constraint_electrostaticpotential.py b/src/Mod/Fem/femobjects/constraint_electrostaticpotential.py
index 50ac56a951..0c9e37a748 100644
--- a/src/Mod/Fem/femobjects/constraint_electrostaticpotential.py
+++ b/src/Mod/Fem/femobjects/constraint_electrostaticpotential.py
@@ -145,9 +145,11 @@ class ConstraintElectrostaticPotential(base_fempythonobject.BaseFemPythonObject)
prop.append(
_PropHelper(
type="App::PropertySurfaceChargeDensity",
- name="SurfaceChargeDensity",
+ name="ElectricFluxDensity",
group="Parameter",
- doc="Free surface charge density",
+ doc="Electric displacement field D.\n"
+ + "For interfaces, it represents the difference\n"
+ + "between the normal component in the two media",
value="0 C/m^2",
)
)
@@ -299,3 +301,12 @@ class ConstraintElectrostaticPotential(base_fempythonobject.BaseFemPythonObject)
except Base.PropertyError:
pass
+
+ # set electric flux density from old surface charge density
+ try:
+ obj.ElectricFluxDensity = obj.getPropertyByName("SurfaceChargeDensity")
+ obj.setPropertyStatus("SurfaceChargeDensity", "-LockDynamic")
+ obj.removeProperty("SurfaceChargeDensity")
+
+ except Base.PropertyError:
+ pass
diff --git a/src/Mod/Fem/femtaskpanels/task_constraint_electrostaticpotential.py b/src/Mod/Fem/femtaskpanels/task_constraint_electrostaticpotential.py
index 3d1826e126..e4d1b39c06 100644
--- a/src/Mod/Fem/femtaskpanels/task_constraint_electrostaticpotential.py
+++ b/src/Mod/Fem/femtaskpanels/task_constraint_electrostaticpotential.py
@@ -171,9 +171,9 @@ class _TaskPanel(base_femtaskpanel._BaseTaskPanel):
self.electric_infinity_changed,
)
QtCore.QObject.connect(
- self.parameter_widget.qsb_surface_charge_density,
+ self.parameter_widget.qsb_electric_flux_density,
QtCore.SIGNAL("valueChanged(Base::Quantity)"),
- self.surface_charge_density_changed,
+ self.electric_flux_density_changed,
)
self.init_parameter_widget()
@@ -232,7 +232,7 @@ class _TaskPanel(base_femtaskpanel._BaseTaskPanel):
self.electric_infinity = self.obj.ElectricInfinity
self.capacitance_body_enabled = self.obj.CapacitanceBodyEnabled
self.capacitance_body = self.obj.CapacitanceBody
- self.surface_charge_density = self.obj.SurfaceChargeDensity
+ self.electric_flux_density = self.obj.ElectricFluxDensity
def _set_params(self):
self.obj.Potential = self.potential
@@ -258,7 +258,7 @@ class _TaskPanel(base_femtaskpanel._BaseTaskPanel):
self.obj.CapacitanceBodyEnabled = self.capacitance_body_enabled
self.obj.CapacitanceBody = self.capacitance_body
- self.obj.SurfaceChargeDensity = self.surface_charge_density
+ self.obj.ElectricFluxDensity = self.electric_flux_density
def init_parameter_widget(self):
self._get_params()
@@ -313,11 +313,11 @@ class _TaskPanel(base_femtaskpanel._BaseTaskPanel):
self.obj, "CapacitanceBody"
)
- self.parameter_widget.qsb_surface_charge_density.setProperty(
- "value", self.surface_charge_density
+ self.parameter_widget.qsb_electric_flux_density.setProperty(
+ "value", self.electric_flux_density
)
- FreeCADGui.ExpressionBinding(self.parameter_widget.qsb_surface_charge_density).bind(
- self.obj, "SurfaceChargeDensity"
+ FreeCADGui.ExpressionBinding(self.parameter_widget.qsb_electric_flux_density).bind(
+ self.obj, "ElectricFluxDensity"
)
self.bc_enum = self.obj.getEnumerationsOfProperty("BoundaryCondition")
@@ -397,8 +397,8 @@ class _TaskPanel(base_femtaskpanel._BaseTaskPanel):
self.capacitance_body = value
self.parameter_widget.spb_capacitance_body.setValue(value)
- def surface_charge_density_changed(self, value):
- self.surface_charge_density = value
+ def electric_flux_density_changed(self, value):
+ self.electric_flux_density = value
def boundary_condition_changed(self, index):
self.boundary_condition = self.bc_enum[index]