From e9130b50d9f5fffd79409f7d4849a534b3488248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:31:01 +0100 Subject: [PATCH 01/20] Update tests/rst_only_workflow_test.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- tests/rst_only_workflow_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/rst_only_workflow_test.py b/tests/rst_only_workflow_test.py index f3192af24..cb5b30312 100644 --- a/tests/rst_only_workflow_test.py +++ b/tests/rst_only_workflow_test.py @@ -24,7 +24,7 @@ def test_composite_model_with_rst_only(dpf_server, data_files, distributed_rst): - """Test features of the composite model whith sectin data from the RST file only.""" + """Test features of the composite model with section data from the RST file only.""" if distributed_rst: # TODO: remove once backend issue #856638 is resolved pytest.xfail("The mesh property provider operator does not yet support distributed RST.") From 49395f836d6fd99d4a02c056b5139a0beb941378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:31:15 +0100 Subject: [PATCH 02/20] Update src/ansys/dpf/composites/layup_info/_layup_info.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- src/ansys/dpf/composites/layup_info/_layup_info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ansys/dpf/composites/layup_info/_layup_info.py b/src/ansys/dpf/composites/layup_info/_layup_info.py index 4c464e81d..0419a43f1 100644 --- a/src/ansys/dpf/composites/layup_info/_layup_info.py +++ b/src/ansys/dpf/composites/layup_info/_layup_info.py @@ -66,7 +66,7 @@ def _get_layup_model_context(layup_provider: dpf.Operator) -> int: return layup_provider.get_output(218, int) -# Note: must be in sync with the LayupModelContextTypeEnum in the C++ code +# Note: Must be in sync with the ``LayupModelContextTypeEnum`` object in the C++ code. class LayupModelModelContextType(Enum): NOT_AVAILABLE = 0 # no layup data ACP = 1 # lay-up data was read from ACP From 95859be73a9910b7ddb64cfedb9692c92b61ec91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:37:34 +0100 Subject: [PATCH 03/20] Update src/ansys/dpf/composites/layup_info/_add_layup_info_to_mesh.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- src/ansys/dpf/composites/layup_info/_add_layup_info_to_mesh.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ansys/dpf/composites/layup_info/_add_layup_info_to_mesh.py b/src/ansys/dpf/composites/layup_info/_add_layup_info_to_mesh.py index d94468487..419ceeab9 100644 --- a/src/ansys/dpf/composites/layup_info/_add_layup_info_to_mesh.py +++ b/src/ansys/dpf/composites/layup_info/_add_layup_info_to_mesh.py @@ -15,7 +15,7 @@ def _get_composite_data_sources_for_layup_provider( """ Prepare DataSources of composite for the DPF server. - Ensure that DataSources object is compatible with the version of the layup provider. + Ensure that the ``DataSources`` object is compatible with the version of the lay-up provider. """ if data_sources.composite is None: From a22db26985143cecc87f150ec7244d144bd305aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:37:56 +0100 Subject: [PATCH 04/20] Update doc/source/index.rst Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- doc/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index 4d42c27cc..7b401863c 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -56,7 +56,7 @@ Key features Here are some key features of PyDPF Composites: -* Post-processing of layered shell and solid elements, whether they were preprocessed by ACP or not. +* Postprocessing of layered shell and solid elements, whether they were preprocessed by ACP or not. * Failure criteria evaluation as shown in :ref:`Composite failure analysis `. * A :class:`.SamplingPoint` class for extracting and visualizing a result over the entire thickness of a laminate as shown in :ref:`Sampling point `. From 3654488e3f63890f4256caa4b190d55c1d0e9561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:38:06 +0100 Subject: [PATCH 05/20] Update doc/source/index.rst Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- doc/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index 7b401863c..b56e7c24b 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -75,7 +75,7 @@ Limitations ''''''''''' - Only the Mechanical APDL solver is supported. - The following operators and features are only supported if the model was preprocessed with ACP - and if the corresponding lay-up definition file is passed to the :class:`.CompositeModel`: + and if the corresponding lay-up definition file is passed to the :class:`.CompositeModel` class. - The evaluation of the failure criteria for sandwich (:class:`FaceSheetWrinklingCriterion`, :class:`ShearCrimpingCriterion`) for solid elements. Layered shell elements are always supported. - The computation of interlaminar normal stresses (s3) for layered shell elements. From b290ddf7e3a6530ea4538e18cb65513ec6c11bdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:38:15 +0100 Subject: [PATCH 06/20] Update doc/source/index.rst Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- doc/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index b56e7c24b..380b478c8 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -46,7 +46,7 @@ to implement custom failure criteria and computation. Provides developer installation and usage information. -The minimum set of inputs to run a post-processing for composites is the result file(s) of an +The minimum set of inputs to run a postprocessing for composites is the result files of an MAPDL solution and a material file (matml) which was generated by Engineering Data. Lay-up files from ACP are optional and only required for some advanced operations. Refer to :ref:`Limitations`. From 799effe6e4d71c0de0ab730e1ba11e6c32c60a2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:38:34 +0100 Subject: [PATCH 07/20] Update doc/source/index.rst Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- doc/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index 380b478c8..42ef2d4cd 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -76,7 +76,7 @@ Limitations - Only the Mechanical APDL solver is supported. - The following operators and features are only supported if the model was preprocessed with ACP and if the corresponding lay-up definition file is passed to the :class:`.CompositeModel` class. - - The evaluation of the failure criteria for sandwich (:class:`FaceSheetWrinklingCriterion`, :class:`ShearCrimpingCriterion`) + - The evaluation of the failure criteria for sandwich (:class:`FaceSheetWrinklingCriterion`, :class:`ShearCrimpingCriterion`) classes for solid elements. Layered shell elements are always supported. - The computation of interlaminar normal stresses (s3) for layered shell elements. Otherwise, s3 is zero. This also affects 3D failure criteria which use s3, such as Puck 3D. From 6d45f7acbc0ee36667fe72610855809c947f6330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:39:39 +0100 Subject: [PATCH 08/20] Update doc/source/index.rst Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- doc/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index 42ef2d4cd..a868f1b1b 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -87,7 +87,7 @@ Limitations always supported thanks to the scripting - Plotting results on the reference surface of a laminate. - Note: MAPDL models which have not been preprocessed with ACP can be converted. For more + Note: MAPDL models that have not been preprocessed with ACP can be converted. For more information, see `Import of Legacy Mechanical APDL Composite Models`_ in the Ansys Help. .. _Ansys Workbench: https://download.ansys.com/Current%20Release From 8a7ab491248134a4ca247ceae4ce4fbbdadbdb3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:39:52 +0100 Subject: [PATCH 09/20] Update examples/008_assembly_example.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- examples/008_assembly_example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/008_assembly_example.py b/examples/008_assembly_example.py index fb6136ec1..a32bca793 100644 --- a/examples/008_assembly_example.py +++ b/examples/008_assembly_example.py @@ -57,7 +57,7 @@ irf_field.plot() # %% -# Plot IRF on The Reference Surface +# Plot IRF on the reference surface # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Plot the maximum IRF on the reference surface if version_equal_or_later(server, "8.0"): From 6aa597a8061f3ec78c7a17fbe5096179430a43fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:40:03 +0100 Subject: [PATCH 10/20] Update examples/011_rst_workflow.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- examples/011_rst_workflow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/011_rst_workflow.py b/examples/011_rst_workflow.py index 6e656b806..83ac57792 100644 --- a/examples/011_rst_workflow.py +++ b/examples/011_rst_workflow.py @@ -1,7 +1,7 @@ """ .. _rst_workflow_example: -Failure Analysis of an MAPDL (RST) Model +Failure analysis of an MAPDL (RST) model ---------------------------------------- The post-processing of a MAPDL (RST) model with layered elements which was not From 6efc1aac2e2160a032fa23f6d2e0837b438b3b3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:40:13 +0100 Subject: [PATCH 11/20] Update examples/011_rst_workflow.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- examples/011_rst_workflow.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/011_rst_workflow.py b/examples/011_rst_workflow.py index 83ac57792..d68525956 100644 --- a/examples/011_rst_workflow.py +++ b/examples/011_rst_workflow.py @@ -4,8 +4,8 @@ Failure analysis of an MAPDL (RST) model ---------------------------------------- -The post-processing of a MAPDL (RST) model with layered elements which was not -preprocessed by ACP is shown by this example. The difference between the RST +This example shows the postprocessing of an MAPDL (RST) model with layered elements that was not +preprocessed by ACP. The difference between the RST- only and ACP based workflow is that `composite` of :class:`.ContinuousFiberCompositesFiles` is empty and so the section data are automatically loaded from the RST file. From 404992e829c4c1e2903be8a7320898bb3918d328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:40:21 +0100 Subject: [PATCH 12/20] Update examples/011_rst_workflow.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- examples/011_rst_workflow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/011_rst_workflow.py b/examples/011_rst_workflow.py index d68525956..e1bf4e0ae 100644 --- a/examples/011_rst_workflow.py +++ b/examples/011_rst_workflow.py @@ -6,7 +6,7 @@ This example shows the postprocessing of an MAPDL (RST) model with layered elements that was not preprocessed by ACP. The difference between the RST- -only and ACP based workflow is that `composite` of :class:`.ContinuousFiberCompositesFiles` +only and ACP-based workflow is that `composite` of the :class:`.ContinuousFiberCompositesFiles` class is empty and so the section data are automatically loaded from the RST file. The engineering data file (XML or ENGD) with the material properties is needed anyway. From a0cc3b7bf94bc26dedb07f217841820c54f63095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:40:32 +0100 Subject: [PATCH 13/20] Update examples/011_rst_workflow.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- examples/011_rst_workflow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/011_rst_workflow.py b/examples/011_rst_workflow.py index e1bf4e0ae..75e387946 100644 --- a/examples/011_rst_workflow.py +++ b/examples/011_rst_workflow.py @@ -7,7 +7,7 @@ This example shows the postprocessing of an MAPDL (RST) model with layered elements that was not preprocessed by ACP. The difference between the RST- only and ACP-based workflow is that `composite` of the :class:`.ContinuousFiberCompositesFiles` class -is empty and so the section data are automatically loaded from the RST file. +is empty, and so the section data are automatically loaded from the RST file. The engineering data file (XML or ENGD) with the material properties is needed anyway. Otherwise, the material properties cannot be mapped. It is recommended From d6d34df9108b5434f3e4a4780a03a0a03723aa7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:40:44 +0100 Subject: [PATCH 14/20] Update examples/011_rst_workflow.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- examples/011_rst_workflow.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/examples/011_rst_workflow.py b/examples/011_rst_workflow.py index 75e387946..cda58c3eb 100644 --- a/examples/011_rst_workflow.py +++ b/examples/011_rst_workflow.py @@ -10,11 +10,15 @@ is empty, and so the section data are automatically loaded from the RST file. The engineering data file (XML or ENGD) with the material properties is needed anyway. -Otherwise, the material properties cannot be mapped. It is recommended -to create it before solving the model. The engineering data file can be either generated with Ansys Workbench -or ACP (Ansys Composite PrePost) standalone. Important: The material UUIDs in the engineering data file -must be identical to the UUIDs in the Mechanical APDL (RST file). -The material UUID can be set in Mechanical APDL with the command ``MP,UVID,,``. +Otherwise, the material properties cannot be mapped. You should create it before +solving the model. You can generate the engineering data file with either Ansys Workbench +or ACP (Ansys Composite PrePost) standalone. + + .. important + The material UUIDs in the engineering data file must be identical + to the UUIDs in the Mechanical APDL (RST file). + +You can set the material UUID in Mechanical APDL with the ``MP,UVID,,`` command. This workflow is supported since version 2024 R2 (DPF Server version 8.0). A few advanced features are not supported with the RST onl workflow. Refer to Section :ref:`limitations` for details. From 0a510f89a8e2e45652a38dce9b42e3a9f0a7911f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:40:52 +0100 Subject: [PATCH 15/20] Update src/ansys/dpf/composites/_indexer.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- src/ansys/dpf/composites/_indexer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ansys/dpf/composites/_indexer.py b/src/ansys/dpf/composites/_indexer.py index 118f8e321..a25d1464f 100644 --- a/src/ansys/dpf/composites/_indexer.py +++ b/src/ansys/dpf/composites/_indexer.py @@ -253,7 +253,7 @@ def __init__(self, field: PropertyField): self._data_pointer = np.array([], dtype=np.int64) def by_id(self, entity_id: int) -> Optional[NDArray[np.int64]]: - """Get index by id. + """Get index by ID. Parameters ---------- From 8fe4079d66c04e395274760a81abbe0265b174a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:41:00 +0100 Subject: [PATCH 16/20] Update src/ansys/dpf/composites/data_sources.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- src/ansys/dpf/composites/data_sources.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ansys/dpf/composites/data_sources.py b/src/ansys/dpf/composites/data_sources.py index e156a2085..c59a00143 100644 --- a/src/ansys/dpf/composites/data_sources.py +++ b/src/ansys/dpf/composites/data_sources.py @@ -159,7 +159,7 @@ class CompositeDataSources: Result file. Currently only RST (MAPDL) is supported. material_support: - NOTE: The 'material_support' is explicitly listed since it is currently not + NOTE: The ``material_support`` parameter is explicitly listed because it is currently not supported (by the DPF Core) to use a distributed RST file as source for the material support. Instead, we create a separate DataSources object for the material support from the first RST file. This is a workaround until the From d6c1d133c83022109822b46d4ab090160a6dfb04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:41:06 +0100 Subject: [PATCH 17/20] Update examples/011_rst_workflow.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- examples/011_rst_workflow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/011_rst_workflow.py b/examples/011_rst_workflow.py index cda58c3eb..7ce798bb0 100644 --- a/examples/011_rst_workflow.py +++ b/examples/011_rst_workflow.py @@ -50,7 +50,7 @@ server = connect_to_or_start_server() # %% -# Get input files (RST and material.engd but skip the ACP layup file) +# Get input files (RST and material.engd but skip the ACP layup file). composite_files_on_server = get_continuous_fiber_example_files(server, "shell", True) print(composite_files_on_server) From cc41780d28a67291a6858fe3067ece4483a921b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:41:16 +0100 Subject: [PATCH 18/20] Update examples/011_rst_workflow.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- examples/011_rst_workflow.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/011_rst_workflow.py b/examples/011_rst_workflow.py index 7ce798bb0..abb74b837 100644 --- a/examples/011_rst_workflow.py +++ b/examples/011_rst_workflow.py @@ -20,8 +20,8 @@ You can set the material UUID in Mechanical APDL with the ``MP,UVID,,`` command. -This workflow is supported since version 2024 R2 (DPF Server version 8.0). A few advanced features are -not supported with the RST onl workflow. Refer to Section :ref:`limitations` for details. +This workflow is supported in 2024 R2 (DPF Server version 8.0) and later. A few advanced features are +not supported with the RST onl workflow. For more information, see :ref:`limitations`. """ # %% # Set up analysis From 1fac8187d65e0248bb3f663032c5851d382652cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:41:25 +0100 Subject: [PATCH 19/20] Update src/ansys/dpf/composites/data_sources.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- src/ansys/dpf/composites/data_sources.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ansys/dpf/composites/data_sources.py b/src/ansys/dpf/composites/data_sources.py index c59a00143..2a2b733b7 100644 --- a/src/ansys/dpf/composites/data_sources.py +++ b/src/ansys/dpf/composites/data_sources.py @@ -167,7 +167,7 @@ class CompositeDataSources: engineering_data: File with the material properties. - old_composite_sources: + old_composite_sources : This member is used to support assemblies in combination with the old DPF server (<7.0). It should be removed once the support of this server version is dropped. From 1b5aa940653185871e403df8263d9d71271fc643 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Roos?= <105842014+roosre@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:41:41 +0100 Subject: [PATCH 20/20] Update src/ansys/dpf/composites/data_sources.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> --- src/ansys/dpf/composites/data_sources.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ansys/dpf/composites/data_sources.py b/src/ansys/dpf/composites/data_sources.py index 2a2b733b7..1879e17d5 100644 --- a/src/ansys/dpf/composites/data_sources.py +++ b/src/ansys/dpf/composites/data_sources.py @@ -168,7 +168,7 @@ class CompositeDataSources: File with the material properties. old_composite_sources : - This member is used to support assemblies in combination with the old + Member used to support assemblies in combination with the old DPF server (<7.0). It should be removed once the support of this server version is dropped.