| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| __title__ = "FreeCAD FEM calculix constraint heatflux" |
| __author__ = "Bernd Hahnebach" |
| __url__ = "https://www.freecad.org" |
|
|
|
|
| def get_analysis_types(): |
| return ["thermomech"] |
|
|
|
|
| def get_sets_name(): |
| return "constraints_heatflux_element_face_heatflux" |
|
|
|
|
| def get_before_write_meshdata_constraint(): |
| return "" |
|
|
|
|
| def get_after_write_meshdata_constraint(): |
| return "" |
|
|
|
|
| def write_meshdata_constraint(f, femobj, heatflux_obj, ccxwriter): |
|
|
| |
|
|
| if heatflux_obj.ConstraintType == "Convection": |
| heatflux_key_word = "FILM" |
| heatflux_facetype = "F" |
| heatflux_facesubtype = "" |
| heatflux_values = "{:.13G},{:.13G}".format( |
| heatflux_obj.AmbientTemp.getValueAs("K").Value, |
| heatflux_obj.FilmCoef.getValueAs("t/s^3/K").Value, |
| ) |
|
|
| elif heatflux_obj.ConstraintType == "Radiation": |
| heatflux_facetype = "R" |
| if heatflux_obj.CavityRadiation: |
| heatflux_key_word = f"RADIATE, CAVITY={heatflux_obj.CavityName}" |
| heatflux_facesubtype = "CR" |
| else: |
| heatflux_key_word = "RADIATE" |
| heatflux_facesubtype = "" |
| heatflux_values = "{:.13G},{:.13G}".format( |
| heatflux_obj.AmbientTemp.getValueAs("K").Value, heatflux_obj.Emissivity |
| ) |
|
|
| elif heatflux_obj.ConstraintType == "DFlux": |
| heatflux_key_word = "DFLUX" |
| heatflux_facetype = "S" |
| heatflux_facesubtype = "" |
| heatflux_values = "{:.13G}".format(heatflux_obj.DFlux.getValueAs("t/s^3").Value) |
|
|
| else: |
| return |
|
|
| if heatflux_obj.EnableAmplitude: |
| heatflux_amplitude = f", AMPLITUDE={heatflux_obj.Name}" |
| else: |
| heatflux_amplitude = "" |
|
|
| f.write(f"*{heatflux_key_word}{heatflux_amplitude}\n") |
| for feat, surf, is_sub_el in femobj["HeatFluxFaces"]: |
| f.write("** {0.Name}.{1[0]}\n".format(*feat)) |
| for face, fno in surf: |
| f.write(f"{face},{heatflux_facetype}{fno}{heatflux_facesubtype},{heatflux_values}\n") |
|
|