FEM: Amplitude support for final temperature field (#23530)

* FEM: Update FemConstraintInitialTemperature.cpp

* FEM: Update FemConstraintInitialTemperature.h

* FEM: Update write_amplitude.py

* FEM: Update write_constraint_finaltemperature.py
This commit is contained in:
FEA-eng
2025-09-04 05:15:25 +02:00
committed by GitHub
parent d59babd8d3
commit f00aa86afc
4 changed files with 18 additions and 1 deletions

View File

@@ -37,6 +37,16 @@ ConstraintInitialTemperature::ConstraintInitialTemperature()
ADD_PROPERTY(initialTemperature, (300.0));
ADD_PROPERTY(EnableFinalTemperature, (false));
ADD_PROPERTY(FinalTemperature, (300.0));
ADD_PROPERTY_TYPE(EnableAmplitude,
(false),
"",
(App::PropertyType)(App::Prop_None),
"Amplitude of the final temperature field");
ADD_PROPERTY_TYPE(AmplitudeValues,
(std::vector<std::string> {"0, 0", "1, 1"}),
"",
(App::PropertyType)(App::Prop_None),
"Amplitude values");
}
App::DocumentObjectExecReturn* ConstraintInitialTemperature::execute()

View File

@@ -45,6 +45,9 @@ public:
App::PropertyBool EnableFinalTemperature;
App::PropertyTemperature FinalTemperature;
App::PropertyBool EnableAmplitude;
App::PropertyStringList AmplitudeValues;
/// recalculate the object
App::DocumentObjectExecReturn* execute() override;

View File

@@ -45,6 +45,7 @@ def write_amplitude(f, ccxwriter):
ccxwriter.member.cons_temperature,
ccxwriter.member.cons_bodyheatsource,
ccxwriter.member.cons_rigidbody,
ccxwriter.member.cons_initialtemperature,
]
for constraint_list in constraint_lists:

View File

@@ -60,7 +60,10 @@ def write_constraint(f, femobj, inittemp_obj, ccxwriter):
finaltemp = inittemp_obj.FinalTemperature.getValueAs("K")
f.write("*TEMPERATURE\n")
if inittemp_obj.EnableAmplitude:
f.write(f"*TEMPERATURE, AMPLITUDE={inittemp_obj.Name}\n")
else:
f.write("*TEMPERATURE\n")
if inittemp_obj.References:
f.write(f"{inittemp_obj.Name},{finaltemp}\n")
else: