From 786a9f3da42feddf66c9b3644cc5217d69b1fd82 Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Fri, 11 Jul 2025 16:55:52 +0530 Subject: [PATCH 01/14] Create solver_translation.rst --- doc/source/user_guide/solver_translation.rst | 22 ++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 doc/source/user_guide/solver_translation.rst diff --git a/doc/source/user_guide/solver_translation.rst b/doc/source/user_guide/solver_translation.rst new file mode 100644 index 0000000000..42fb50704e --- /dev/null +++ b/doc/source/user_guide/solver_translation.rst @@ -0,0 +1,22 @@ +.. _ref_index_solver_translation: + +********************* +Solver translation +********************* + +Solver Translation (commonly known as FE2Ansys) translates Abaqus input deck to Ansys solver decks (MAPDL and LS-DYNA). +The translation ensures that the abaqus model can be used in Ansys without recreating them from scratch. +It helps to save time and efforts even though minor manual adjustments may be required. +The manual adjustments like redefining boundary conditions, loads, and material properties, +ensures that the model behaves as expected in Ansys solver deck. + +The following example shows the translation of Abaqus input file to MAPDL file format: + +1. Import the Abaqus file. + + .. code-block:: python + + file_io = prime.FileIO(model=model) + import_results = file_io.import_abaqus_inp(r"E:/test2/Abaqus_Input_multistep.inp", prime.ImportAbaqusParams(model)) +print(model) +print(import_results) From 93a59ce2536254a62989d14ded0a5d3387b884ae Mon Sep 17 00:00:00 2001 From: pyansys-ci-bot <92810346+pyansys-ci-bot@users.noreply.github.com> Date: Fri, 11 Jul 2025 11:27:11 +0000 Subject: [PATCH 02/14] chore: adding changelog file 1103.miscellaneous.md [dependabot-skip] --- doc/changelog.d/1103.miscellaneous.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/changelog.d/1103.miscellaneous.md diff --git a/doc/changelog.d/1103.miscellaneous.md b/doc/changelog.d/1103.miscellaneous.md new file mode 100644 index 0000000000..cb6a5cebee --- /dev/null +++ b/doc/changelog.d/1103.miscellaneous.md @@ -0,0 +1 @@ +Create solver_translation.rst \ No newline at end of file From 49d66e40e139d17c2a350c342b8f431f15399575 Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Fri, 11 Jul 2025 19:16:10 +0530 Subject: [PATCH 03/14] Update solver_translation.rst --- doc/source/user_guide/solver_translation.rst | 24 +++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/doc/source/user_guide/solver_translation.rst b/doc/source/user_guide/solver_translation.rst index 42fb50704e..1b0c487035 100644 --- a/doc/source/user_guide/solver_translation.rst +++ b/doc/source/user_guide/solver_translation.rst @@ -17,6 +17,24 @@ The following example shows the translation of Abaqus input file to MAPDL file f .. code-block:: python file_io = prime.FileIO(model=model) - import_results = file_io.import_abaqus_inp(r"E:/test2/Abaqus_Input_multistep.inp", prime.ImportAbaqusParams(model)) -print(model) -print(import_results) + import_results = file_io.import_abaqus_inp(r"E:/test2/Abaqus_Input_multistep.inp", prime.ImportAbaqusParams(model)) + print(import_results) + + The import_abaqus _inp imports the abaqus file as mesh, extracts simulation specific information from the abaqus file and + stores this information in Prime as a Json document. ImportAbaqusParams allows you to set the parameters for importing the + model. The example uses default parameters for importing the model. + + **Output**: + + .. figure:: ../images/fe2ansys_abaqus_import.png + +2. Export the file in MAPDL format. + + .. code-block:: python + + mapdl_params = prime.ExportMapdlCdbParams(model=model) + mesh_file_cdb = os.path.join(r"E:\test3\Abaqus_Input_multistep.cdb") + export_cdb_result = file_io.export_mapdl_cdb(mesh_file_cdb, params=mapdl_params) + print(export_cdb_result) + + .. figure:: ../images/fe2ansys_cdb_export.png From 52455b466b230ab1cf94922cef02eedb74d3ba07 Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Fri, 11 Jul 2025 19:17:22 +0530 Subject: [PATCH 04/14] Updated images --- doc/source/images/fe2ansys_abaqus_import.png | Bin 0 -> 54922 bytes doc/source/images/fe2ansys_cdb_export.png | Bin 0 -> 21418 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/source/images/fe2ansys_abaqus_import.png create mode 100644 doc/source/images/fe2ansys_cdb_export.png diff --git a/doc/source/images/fe2ansys_abaqus_import.png b/doc/source/images/fe2ansys_abaqus_import.png new file mode 100644 index 0000000000000000000000000000000000000000..fecf07a6f65fb141acbb4cb915df97a4a0b08a95 GIT binary patch literal 54922 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ν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 KNv)1%{q!%18nGY% literal 0 HcmV?d00001 From 69245daf9029b42bdb2f5044ed3e0816e268e1dc Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Fri, 11 Jul 2025 19:40:02 +0530 Subject: [PATCH 05/14] Update solver_translation.rst --- doc/source/user_guide/solver_translation.rst | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/doc/source/user_guide/solver_translation.rst b/doc/source/user_guide/solver_translation.rst index 1b0c487035..3d9b02a505 100644 --- a/doc/source/user_guide/solver_translation.rst +++ b/doc/source/user_guide/solver_translation.rst @@ -21,7 +21,8 @@ The following example shows the translation of Abaqus input file to MAPDL file f print(import_results) The import_abaqus _inp imports the abaqus file as mesh, extracts simulation specific information from the abaqus file and - stores this information in Prime as a Json document. ImportAbaqusParams allows you to set the parameters for importing the + stores this information in Prime as a Json document. :class:`ImportAbaqusParams ` + allows you to set the parameters for importing the model. The example uses default parameters for importing the model. **Output**: @@ -36,5 +37,11 @@ The following example shows the translation of Abaqus input file to MAPDL file f mesh_file_cdb = os.path.join(r"E:\test3\Abaqus_Input_multistep.cdb") export_cdb_result = file_io.export_mapdl_cdb(mesh_file_cdb, params=mapdl_params) print(export_cdb_result) - + + :class:`ExportMapdlCdbParams ` allows setting parameters to control + the export of MAPDL CDB files. + + :class:`ExportMapdlCdbResults ` contains the summary + result of the export process in json format. This writes the .cdb file to the specified location. + .. figure:: ../images/fe2ansys_cdb_export.png From dc325a00b6a85e6df2c0c1a536d685dd1d807cc4 Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Fri, 11 Jul 2025 19:49:56 +0530 Subject: [PATCH 06/14] Update accept.txt --- doc/styles/config/vocabularies/ANSYS/accept.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/styles/config/vocabularies/ANSYS/accept.txt b/doc/styles/config/vocabularies/ANSYS/accept.txt index 2187858b64..2f0e70ce83 100644 --- a/doc/styles/config/vocabularies/ANSYS/accept.txt +++ b/doc/styles/config/vocabularies/ANSYS/accept.txt @@ -1,4 +1,5 @@ abc +(?i)Abaqus (?i)Ansys (?i)Apis AutoMesh @@ -20,6 +21,7 @@ ignore_self_proximity IGA [Ii]sogeometric JTOpen +JSON [Ll]inux [Ll]ucid Material Point Manager From f9b62790b8621e840ab49515821d8ddfd95ea041 Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Fri, 11 Jul 2025 19:51:37 +0530 Subject: [PATCH 07/14] Update solver_translation.rst --- doc/source/user_guide/solver_translation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/user_guide/solver_translation.rst b/doc/source/user_guide/solver_translation.rst index 3d9b02a505..0936f78a9d 100644 --- a/doc/source/user_guide/solver_translation.rst +++ b/doc/source/user_guide/solver_translation.rst @@ -21,7 +21,7 @@ The following example shows the translation of Abaqus input file to MAPDL file f print(import_results) The import_abaqus _inp imports the abaqus file as mesh, extracts simulation specific information from the abaqus file and - stores this information in Prime as a Json document. :class:`ImportAbaqusParams ` + stores this information in Prime as a JSON document. :class:`ImportAbaqusParams ` allows you to set the parameters for importing the model. The example uses default parameters for importing the model. From a992086522b07ff975008be80b32a386e69c469f Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Fri, 11 Jul 2025 19:56:14 +0530 Subject: [PATCH 08/14] Update accept.txt --- doc/styles/config/vocabularies/ANSYS/accept.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/styles/config/vocabularies/ANSYS/accept.txt b/doc/styles/config/vocabularies/ANSYS/accept.txt index 2f0e70ce83..ca7b5c07a5 100644 --- a/doc/styles/config/vocabularies/ANSYS/accept.txt +++ b/doc/styles/config/vocabularies/ANSYS/accept.txt @@ -16,6 +16,7 @@ Fluent Meshing's geodesical hexahedra hexcore +_inp ignore_orientation ignore_self_proximity IGA From 081d90d944e92a8dd1551df850c78449729c1a6c Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Fri, 11 Jul 2025 20:05:19 +0530 Subject: [PATCH 09/14] Update solver_translation.rst --- doc/source/user_guide/solver_translation.rst | 23 ++++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/doc/source/user_guide/solver_translation.rst b/doc/source/user_guide/solver_translation.rst index 0936f78a9d..65d049b6c6 100644 --- a/doc/source/user_guide/solver_translation.rst +++ b/doc/source/user_guide/solver_translation.rst @@ -5,9 +5,9 @@ Solver translation ********************* Solver Translation (commonly known as FE2Ansys) translates Abaqus input deck to Ansys solver decks (MAPDL and LS-DYNA). -The translation ensures that the abaqus model can be used in Ansys without recreating them from scratch. -It helps to save time and efforts even though minor manual adjustments may be required. -The manual adjustments like redefining boundary conditions, loads, and material properties, +The translation ensures that the abaqus model can be used in Ansys without recreating them from scratch. +It helps to save time and efforts even though minor manual adjustments may be required. +The manual adjustments like redefining boundary conditions, loads, and material properties, ensures that the model behaves as expected in Ansys solver deck. The following example shows the translation of Abaqus input file to MAPDL file format: @@ -18,12 +18,11 @@ The following example shows the translation of Abaqus input file to MAPDL file f file_io = prime.FileIO(model=model) import_results = file_io.import_abaqus_inp(r"E:/test2/Abaqus_Input_multistep.inp", prime.ImportAbaqusParams(model)) - print(import_results) + print(import_results) - The import_abaqus _inp imports the abaqus file as mesh, extracts simulation specific information from the abaqus file and - stores this information in Prime as a JSON document. :class:`ImportAbaqusParams ` - allows you to set the parameters for importing the - model. The example uses default parameters for importing the model. + The import_abaqus _inp imports the abaqus file as mesh, extracts simulation specific information from the abaqus file and + stores the information in Prime as a JSON document. :class:`ImportAbaqusParams ` + allows you to set the parameters for importing the model. The example uses default parameters for importing the model. **Output**: @@ -36,12 +35,12 @@ The following example shows the translation of Abaqus input file to MAPDL file f mapdl_params = prime.ExportMapdlCdbParams(model=model) mesh_file_cdb = os.path.join(r"E:\test3\Abaqus_Input_multistep.cdb") export_cdb_result = file_io.export_mapdl_cdb(mesh_file_cdb, params=mapdl_params) - print(export_cdb_result) + print(export_cdb_result) - :class:`ExportMapdlCdbParams ` allows setting parameters to control - the export of MAPDL CDB files. + :class:`ExportMapdlCdbParams ` allows setting parameters to control + the export of MAPDL CDB files. - :class:`ExportMapdlCdbResults ` contains the summary + :class:`ExportMapdlCdbResults ` contains the summary result of the export process in json format. This writes the .cdb file to the specified location. .. figure:: ../images/fe2ansys_cdb_export.png From 7a3be63d77a3890b8da46e8c24005b02d388e065 Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Fri, 11 Jul 2025 20:07:50 +0530 Subject: [PATCH 10/14] Update solver_translation.rst --- doc/source/user_guide/solver_translation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/user_guide/solver_translation.rst b/doc/source/user_guide/solver_translation.rst index 65d049b6c6..a06cb0346b 100644 --- a/doc/source/user_guide/solver_translation.rst +++ b/doc/source/user_guide/solver_translation.rst @@ -20,7 +20,7 @@ The following example shows the translation of Abaqus input file to MAPDL file f import_results = file_io.import_abaqus_inp(r"E:/test2/Abaqus_Input_multistep.inp", prime.ImportAbaqusParams(model)) print(import_results) - The import_abaqus _inp imports the abaqus file as mesh, extracts simulation specific information from the abaqus file and + The import_abaqus_inp imports the abaqus file as mesh, extracts simulation specific information from the abaqus file and stores the information in Prime as a JSON document. :class:`ImportAbaqusParams ` allows you to set the parameters for importing the model. The example uses default parameters for importing the model. From bc54e3f0dad134d408045aa4f55ed5cb21f59d8e Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Fri, 11 Jul 2025 20:18:21 +0530 Subject: [PATCH 11/14] Update solver_translation.rst --- doc/source/user_guide/solver_translation.rst | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/source/user_guide/solver_translation.rst b/doc/source/user_guide/solver_translation.rst index a06cb0346b..30985ab08c 100644 --- a/doc/source/user_guide/solver_translation.rst +++ b/doc/source/user_guide/solver_translation.rst @@ -17,7 +17,10 @@ The following example shows the translation of Abaqus input file to MAPDL file f .. code-block:: python file_io = prime.FileIO(model=model) - import_results = file_io.import_abaqus_inp(r"E:/test2/Abaqus_Input_multistep.inp", prime.ImportAbaqusParams(model)) + import_results = file_io.import_abaqus_inp( + r"E:/test2/Abaqus_Input_multistep.inp", + prime.ImportAbaqusParams(model) + ) print(import_results) The import_abaqus_inp imports the abaqus file as mesh, extracts simulation specific information from the abaqus file and @@ -34,7 +37,9 @@ The following example shows the translation of Abaqus input file to MAPDL file f mapdl_params = prime.ExportMapdlCdbParams(model=model) mesh_file_cdb = os.path.join(r"E:\test3\Abaqus_Input_multistep.cdb") - export_cdb_result = file_io.export_mapdl_cdb(mesh_file_cdb, params=mapdl_params) + export_cdb_result = file_io.export_mapdl_cdb( + mesh_file_cdb, + params=mapdl_params) print(export_cdb_result) :class:`ExportMapdlCdbParams ` allows setting parameters to control From 3cdb56f95ae2ae0cb6b3b318b814ff46ce537608 Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Fri, 11 Jul 2025 20:22:29 +0530 Subject: [PATCH 12/14] Update solver_translation.rst --- doc/source/user_guide/solver_translation.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/source/user_guide/solver_translation.rst b/doc/source/user_guide/solver_translation.rst index 30985ab08c..585c13924e 100644 --- a/doc/source/user_guide/solver_translation.rst +++ b/doc/source/user_guide/solver_translation.rst @@ -19,7 +19,7 @@ The following example shows the translation of Abaqus input file to MAPDL file f file_io = prime.FileIO(model=model) import_results = file_io.import_abaqus_inp( r"E:/test2/Abaqus_Input_multistep.inp", - prime.ImportAbaqusParams(model) + prime.ImportAbaqusParams(model), ) print(import_results) @@ -39,7 +39,8 @@ The following example shows the translation of Abaqus input file to MAPDL file f mesh_file_cdb = os.path.join(r"E:\test3\Abaqus_Input_multistep.cdb") export_cdb_result = file_io.export_mapdl_cdb( mesh_file_cdb, - params=mapdl_params) + params=mapdl_params, + ) print(export_cdb_result) :class:`ExportMapdlCdbParams ` allows setting parameters to control From 234e99e86748da6e90e531ed4baf9945359ae619 Mon Sep 17 00:00:00 2001 From: srpyprime <94401560+srpyprime@users.noreply.github.com> Date: Mon, 14 Jul 2025 07:48:21 +0530 Subject: [PATCH 13/14] Update solver_translation.rst --- doc/source/user_guide/solver_translation.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/source/user_guide/solver_translation.rst b/doc/source/user_guide/solver_translation.rst index 585c13924e..e223fbd262 100644 --- a/doc/source/user_guide/solver_translation.rst +++ b/doc/source/user_guide/solver_translation.rst @@ -18,9 +18,9 @@ The following example shows the translation of Abaqus input file to MAPDL file f file_io = prime.FileIO(model=model) import_results = file_io.import_abaqus_inp( - r"E:/test2/Abaqus_Input_multistep.inp", - prime.ImportAbaqusParams(model), - ) + r"E:/test2/Abaqus_Input_multistep.inp", + prime.ImportAbaqusParams(model), + ) print(import_results) The import_abaqus_inp imports the abaqus file as mesh, extracts simulation specific information from the abaqus file and @@ -38,9 +38,9 @@ The following example shows the translation of Abaqus input file to MAPDL file f mapdl_params = prime.ExportMapdlCdbParams(model=model) mesh_file_cdb = os.path.join(r"E:\test3\Abaqus_Input_multistep.cdb") export_cdb_result = file_io.export_mapdl_cdb( - mesh_file_cdb, - params=mapdl_params, - ) + mesh_file_cdb, + params=mapdl_params, + ) print(export_cdb_result) :class:`ExportMapdlCdbParams ` allows setting parameters to control From 14d08303d3ce0245a0a44f5b3cf07e54c33314ac Mon Sep 17 00:00:00 2001 From: Martin Walters <104021577+waltersma@users.noreply.github.com> Date: Mon, 14 Jul 2025 10:28:23 +0100 Subject: [PATCH 14/14] Update solver_translation.rst --- doc/source/user_guide/solver_translation.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/source/user_guide/solver_translation.rst b/doc/source/user_guide/solver_translation.rst index e223fbd262..8b70e60222 100644 --- a/doc/source/user_guide/solver_translation.rst +++ b/doc/source/user_guide/solver_translation.rst @@ -1,10 +1,10 @@ .. _ref_index_solver_translation: -********************* +****************** Solver translation -********************* +****************** -Solver Translation (commonly known as FE2Ansys) translates Abaqus input deck to Ansys solver decks (MAPDL and LS-DYNA). +Solver translation (commonly known as FE2Ansys) translates Abaqus input deck to Ansys solver decks (MAPDL and LS-DYNA). The translation ensures that the abaqus model can be used in Ansys without recreating them from scratch. It helps to save time and efforts even though minor manual adjustments may be required. The manual adjustments like redefining boundary conditions, loads, and material properties, @@ -18,9 +18,9 @@ The following example shows the translation of Abaqus input file to MAPDL file f file_io = prime.FileIO(model=model) import_results = file_io.import_abaqus_inp( - r"E:/test2/Abaqus_Input_multistep.inp", - prime.ImportAbaqusParams(model), - ) + r"E:/test2/Abaqus_Input_multistep.inp", + prime.ImportAbaqusParams(model), + ) print(import_results) The import_abaqus_inp imports the abaqus file as mesh, extracts simulation specific information from the abaqus file and @@ -38,9 +38,9 @@ The following example shows the translation of Abaqus input file to MAPDL file f mapdl_params = prime.ExportMapdlCdbParams(model=model) mesh_file_cdb = os.path.join(r"E:\test3\Abaqus_Input_multistep.cdb") export_cdb_result = file_io.export_mapdl_cdb( - mesh_file_cdb, - params=mapdl_params, - ) + mesh_file_cdb, + params=mapdl_params, + ) print(export_cdb_result) :class:`ExportMapdlCdbParams ` allows setting parameters to control