| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | __title__ = "FreeCAD FEM calculix write inpfile mesh" |
| | __author__ = "Bernd Hahnebach" |
| | __url__ = "https://www.freecad.org" |
| |
|
| |
|
| | import codecs |
| | from os.path import join |
| |
|
| | from femmesh import meshtools |
| |
|
| |
|
| | def write_mesh(ccxwriter): |
| |
|
| | element_param = 1 |
| | group_param = False |
| |
|
| | |
| | vol_variant = "standard" |
| | if ccxwriter.solver_obj.ExcludeBendingStiffness: |
| | edge_variant = "truss" |
| | else: |
| | if ccxwriter.solver_obj.BeamReducedIntegration: |
| | edge_variant = "beam reduced" |
| | else: |
| | edge_variant = "beam" |
| | |
| | if ccxwriter.member.geos_fluidsection: |
| | edge_variant = "network" |
| |
|
| | |
| | if ccxwriter.solver_obj.ModelSpace == "3D": |
| | if ccxwriter.solver_obj.ExcludeBendingStiffness: |
| | face_variant = "membrane" |
| | else: |
| | face_variant = "shell" |
| | elif ccxwriter.solver_obj.ModelSpace == "plane stress": |
| | face_variant = "stress" |
| | elif ccxwriter.solver_obj.ModelSpace == "plane strain": |
| | face_variant = "strain" |
| | elif ccxwriter.solver_obj.ModelSpace == "axisymmetric": |
| | face_variant = "axisymmetric" |
| |
|
| | if ccxwriter.split_inpfile: |
| | write_name = "femesh" |
| | file_name_split = ccxwriter.mesh_name + "_" + write_name + ".inp" |
| | ccxwriter.femmesh_file = join(ccxwriter.dir_name, file_name_split) |
| |
|
| | ccxwriter.femmesh.writeABAQUS( |
| | ccxwriter.femmesh_file, |
| | element_param, |
| | group_param, |
| | volVariant=vol_variant, |
| | faceVariant=face_variant, |
| | edgeVariant=edge_variant, |
| | ) |
| |
|
| | inpfile = codecs.open(ccxwriter.file_name, "w", encoding="utf-8") |
| | inpfile.write("{}\n".format(59 * "*")) |
| | inpfile.write(f"** {write_name}\n") |
| | inpfile.write(f"*INCLUDE,INPUT={file_name_split}\n") |
| |
|
| | else: |
| | ccxwriter.femmesh_file = ccxwriter.file_name |
| | ccxwriter.femmesh.writeABAQUS( |
| | ccxwriter.femmesh_file, |
| | element_param, |
| | group_param, |
| | volVariant=vol_variant, |
| | faceVariant=face_variant, |
| | edgeVariant=edge_variant, |
| | ) |
| |
|
| | |
| | inpfile = codecs.open(ccxwriter.femmesh_file, "a", encoding="utf-8") |
| | inpfile.write("\n\n") |
| |
|
| | return inpfile |
| |
|