diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 965739f4d6..fd70177d80 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -61,6 +61,8 @@ body: label: Which DPF/Ansys version are you using? multiple: true options: + - 'DPF Server 2025.2.pre0' + - 'Ansys 2025 R1' - 'DPF Server 2025.1.pre0' - 'Ansys 2024 R2' - 'DPF Server 2024.2.pre1' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4a58a09d23..0e2b87ddd9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ on: description: "ANSYS version" required: false type: string - default: "251" + default: "252" standalone_branch_suffix: description: 'Suffix of the branch on standalone' required: false @@ -105,7 +105,7 @@ jobs: uses: ./.github/workflows/tests.yml needs: pick_server_suffix with: - ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '251' }} + ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '252' }} python_versions: '["3.9"]' wheel: true wheelhouse: false @@ -116,7 +116,7 @@ jobs: uses: ./.github/workflows/tests.yml needs: pick_server_suffix with: - ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '251' }} + ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '252' }} python_versions: '["3.9"]' wheel: true wheelhouse: false @@ -129,7 +129,7 @@ jobs: uses: ./.github/workflows/test_docker.yml needs: pick_server_suffix with: - ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '251' }} + ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '252' }} standalone_suffix: ${{needs.pick_server_suffix.outputs.suffix}} secrets: inherit @@ -138,7 +138,7 @@ jobs: uses: ./.github/workflows/examples_docker.yml needs: pick_server_suffix with: - ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '251' }} + ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '252' }} python_versions: '["3.9"]' standalone_suffix: ${{needs.pick_server_suffix.outputs.suffix}} secrets: inherit @@ -148,7 +148,7 @@ jobs: uses: ./.github/workflows/docs.yml needs: pick_server_suffix with: - ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '251' }} + ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '252' }} standalone_suffix: ${{needs.pick_server_suffix.outputs.suffix}} event_name: ${{ github.event_name }} secrets: inherit @@ -173,11 +173,22 @@ jobs: uses: ./.github/workflows/examples.yml needs: pick_server_suffix with: - ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '251' }} + ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '252' }} python_versions: '["3.9"]' standalone_suffix: ${{needs.pick_server_suffix.outputs.suffix}} secrets: inherit + retro_251: + name: "retro 251" + if: startsWith(github.head_ref, 'master') || github.event.action == 'ready_for_review' || !github.event.pull_request.draft + uses: ./.github/workflows/tests.yml + with: + ANSYS_VERSION: "251" + python_versions: '["3.9"]' + DOCSTRING: false + standalone_suffix: '' + secrets: inherit + retro_242: name: "retro 242" if: startsWith(github.head_ref, 'master') || github.event.action == 'ready_for_review' || !github.event.pull_request.draft @@ -237,7 +248,7 @@ jobs: uses: ./.github/workflows/pydpf-post.yml needs: pick_server_suffix with: - ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '251' }} + ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '252' }} post_branch: "master" standalone_suffix: ${{needs.pick_server_suffix.outputs.suffix}} test_docstrings: "true" diff --git a/.github/workflows/ci_release.yml b/.github/workflows/ci_release.yml index 40617a129c..27815a3923 100644 --- a/.github/workflows/ci_release.yml +++ b/.github/workflows/ci_release.yml @@ -73,22 +73,43 @@ jobs: name: ${{ steps.wheel.outputs.wheel_name }} path: dist/${{ steps.wheel.outputs.wheel_name }} + tests_3_9: + uses: ./.github/workflows/tests.yml + with: + ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '251' }} + python_versions: '["3.9"]' + wheel: true + wheelhouse: true + standalone_suffix: ${{ github.event.inputs.standalone_branch_suffix || '.pre0' }} + secrets: inherit + tests: uses: ./.github/workflows/tests.yml with: ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '251' }} - python_versions: '["3.9", "3.10", "3.11"]' - wheel: ${{ matrix.python-version == '3.9' }} + python_versions: '["3.10", "3.11"]' + wheel: false wheelhouse: true standalone_suffix: ${{ github.event.inputs.standalone_branch_suffix || '.pre0' }} secrets: inherit + tests_any_3_9: + uses: ./.github/workflows/tests.yml + with: + ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '251' }} + python_versions: '["3.9"]' + wheel: true + wheelhouse: false + standalone_suffix: ${{ github.event.inputs.standalone_branch_suffix || '.pre0' }} + test_any: true + secrets: inherit + tests_any: uses: ./.github/workflows/tests.yml with: ANSYS_VERSION: ${{ github.event.inputs.ansys_version || '251' }} - python_versions: '["3.9", "3.10", "3.11"]' - wheel: ${{ matrix.python-version == '3.9' }} + python_versions: '["3.10", "3.11"]' + wheel: false wheelhouse: false standalone_suffix: ${{ github.event.inputs.standalone_branch_suffix || '.pre0' }} test_any: true @@ -211,11 +232,11 @@ jobs: draft_release: name: "Draft Release" if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') - needs: [style, tests, docs, examples, retro_232, retro_231, retro_222, docker_tests] + needs: [style, tests, tests_3_9, tests_any, tests_any_3_9, docs, examples, retro_232, retro_231, retro_222, docker_tests] runs-on: ubuntu-latest steps: - name: "Download artifacts" - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 - name: "Display downloaded files" run: ls -R diff --git a/.github/workflows/releaser.yml b/.github/workflows/releaser.yml index 76d5629e1d..3a0452e470 100644 --- a/.github/workflows/releaser.yml +++ b/.github/workflows/releaser.yml @@ -10,10 +10,6 @@ on: description: 'Release tag' default: 'latest' type: string - checkout_ref: - description: 'Ref to checkout for doc index (default to current branch)' - default: '' - type: string env: DOCUMENTATION_CNAME: 'dpf.docs.pyansys.com' @@ -93,6 +89,8 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} doc-artifact-name: HTML-doc-ansys-dpf-core.zip decompress-artifact: true + bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }} + bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }} update_ansys_lab_examples: uses: ./.github/workflows/ansys_lab.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c7a0b53771..bdac7b7c91 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -139,7 +139,7 @@ jobs: echo "wheel_name=${name[0]}" >> $GITHUB_OUTPUT - name: "Upload wheel to artifacts" - if: (inputs.wheel == 'true') && !(inputs.test_any && (matrix.os == 'ubuntu-latest') ) + if: (inputs.wheel == 'true') && !( (inputs.test_any == 'true') && (matrix.os == 'ubuntu-latest') ) uses: actions/upload-artifact@v4 with: name: ${{ steps.wheel.outputs.wheel_name }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9ff998e64f..fe93f07e7a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -11,35 +11,35 @@ exclude: > ) repos: -- repo: https://github.com/charliermarsh/ruff-pre-commit - rev: v0.6.3 - hooks: - - id: ruff - args: [ --fix ] - - id: ruff-format +- repo: https://github.com/charliermarsh/ruff-pre-commit + rev: v0.7.3 + hooks: + - id: ruff + args: [--fix] + - id: ruff-format -- repo: https://github.com/codespell-project/codespell - rev: v2.3.0 - hooks: - - id: codespell - args: ["--ignore-words=./doc/styles/config/vocabularies/ANSYS/accept.txt"] +- repo: https://github.com/codespell-project/codespell + rev: v2.3.0 + hooks: + - id: codespell + args: ["--ignore-words=./doc/styles/config/vocabularies/ANSYS/accept.txt"] -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 - hooks: - - id: check-merge-conflict - - id: debug-statements - - id: requirements-txt-fixer +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: check-merge-conflict + - id: debug-statements + - id: requirements-txt-fixer -- repo: https://github.com/ansys/pre-commit-hooks - rev: v0.4.3 - hooks: - - id: add-license-headers - args: - - --start_year=2020 +- repo: https://github.com/ansys/pre-commit-hooks + rev: v0.4.4 + hooks: + - id: add-license-headers + args: + - --start_year=2020 # this validates our github workflow files -- repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.29.2 - hooks: - - id: check-github-workflows +- repo: https://github.com/python-jsonschema/check-jsonschema + rev: 0.29.4 + hooks: + - id: check-github-workflows diff --git a/doc/source/_static/dpf_operators.html b/doc/source/_static/dpf_operators.html index f7ac4db3c4..7aa888da07 100644 --- a/doc/source/_static/dpf_operators.html +++ b/doc/source/_static/dpf_operators.html @@ -2081,7 +2081,7 @@

Configurating operators

Get the XX normal component (00 component).">

Inputs

Outputs

Configurations

Scripting

utility: forward

Inputs

Outputs

Configurations

Scripting

utility: txt file to dpf

Inputs

Outputs

Configurations

Scripting

utility: incremental meshes container

Inputs

Outputs

Configurations

Scripting

utility: bind support (fields container)

Inputs

Outputs

Configurations

Scripting

result: normal contact moment

Inputs

Outputs

Configurations

Scripting

utility: fields container get attribute

Inputs

Outputs

Configurations

Scripting

result: thermal strain XZ

Inputs

Outputs

Configurations

Scripting

utility: assemble scalars to vector

Inputs

Outputs

Configurations

Scripting

result: global eroded hourglass energy (LSDyna)

Inputs

Outputs

Configurations

Scripting

utility: assemble scalars to vector fc

Inputs

Outputs

Configurations

Scripting

utility: assemble scalars to matrix

Inputs

Outputs

Configurations

Scripting

math: make one on component

Inputs

Outputs

Configurations

Scripting

mesh: from scopings

Inputs

Outputs

Configurations

Scripting

utility: assemble scalars to matrix fc

Inputs

Outputs

Configurations

Scripting

result: interface contact area (LSDyna)

Inputs

Outputs

Configurations

Scripting

mesh: extract from field

Inputs

Outputs

Configurations

Scripting

result: pres to field

Inputs

Outputs

Configurations

Scripting

result: part internal energy (LSDyna)

Inputs

Outputs

Configurations

Scripting

result: part momentum (LSDyna)

Inputs

Outputs

Configurations

Scripting

result: compute invariant terms rbd

Inputs

Outputs

Configurations

Scripting

utility: default value

Inputs

Outputs

Configurations

Scripting

averaging: elemental nodal to nodal elemental (fields container)

Inputs

Outputs

Configurations

Scripting

result: rms velocity

Inputs

Outputs

Configurations

Scripting

result: acceleration X

Inputs

Outputs

Configurations

Scripting

result: poynting vector

Inputs

Outputs

Configurations

Scripting

utility: extract sub fields container

Inputs

Outputs

Configurations

Scripting

result: total strain (LSDyna)

Inputs

Outputs

Configurations

Scripting

utility: extract sub meshes container

Inputs

Outputs

Configurations

Scripting

utility: extract sub scopings container

Inputs

Outputs

Configurations

Scripting

averaging: elemental difference (fields container)

Inputs

Outputs

Configurations

Scripting

utility: compute time scoping

Inputs

Outputs

Configurations

Scripting

result: static pressure

Inputs

Outputs

Configurations

Scripting

result: elastic strain

Inputs

Outputs

Configurations

Scripting

math: window bartlett (fields container)

Inputs

Outputs

Configurations

Scripting

result: turbulent viscosity

Inputs

Outputs

Configurations

Scripting

utility: python generator

Inputs

Outputs

Configurations

Scripting

utility: make overall

Inputs

Outputs

Configurations

Scripting

geo: elements volume

Inputs

Outputs

Configurations

Scripting

result: pressure

Inputs

Outputs

Configurations

Scripting

result: stress

Inputs

Outputs

Configurations

Scripting

result: stress X

Inputs

Outputs

Configurations

Scripting

result: gasket thermal closure XZ

Inputs

Outputs

Configurations

Scripting

result: stress Y

Inputs

Outputs

Configurations

Scripting

result: stress Z

Inputs

Outputs

Configurations

Scripting

result: gasket thermal closure XY

Inputs

Outputs

Configurations

Scripting

result: stress XY

Inputs

Outputs

Configurations

Scripting

compression: kMeans clustering

Inputs

Outputs

Configurations

Scripting

result: stress YZ

Inputs

Outputs

Configurations

Scripting

result: stress XZ

Inputs

Outputs

Configurations

Scripting

utility: merge string fields

Inputs

Outputs

Configurations

Scripting

result: stress principal 1

Inputs

Outputs

Configurations

Scripting

result: stress principal 2

Inputs

Outputs

Configurations

Scripting

result: tangential contact moment

Inputs

Outputs

Configurations

Scripting

invariant: convertnum bcs to nod

Inputs

Outputs

Configurations

Scripting

result: stress principal 3

Inputs

Outputs

Configurations

Scripting

result: stress von mises

Inputs

Outputs

Configurations

Scripting

result: gasket stress

Inputs

Outputs

Configurations

Scripting

result: contact fluid penetration pressure

Inputs

Outputs

Configurations

Scripting

result: gasket stress X

Inputs

Outputs

Configurations

Scripting

result: gasket stress XY

Inputs

Outputs

Configurations

Scripting

result: gasket deformation

Inputs

Outputs

Configurations

Scripting

result: gasket deformation X

Inputs

Outputs

Configurations

Scripting

geo: elements facets surfaces over time

Inputs

Outputs

Configurations

Scripting

result: gasket deformation XY

Inputs

Outputs

Configurations

Scripting

metadata: property field provider by property name

Inputs

Outputs

Configurations

Scripting

result: gasket deformation XZ

Inputs

Outputs

Configurations

Scripting

mesh: mesh provider

Inputs

Outputs

Configurations

Scripting

result: gasket inelastic closure

Inputs

Outputs

Configurations

Scripting

result: gasket inelastic closure X

Inputs

Outputs

Configurations

Scripting

result: write cms rbd file

Inputs

Outputs

Configurations

Scripting

serialization: export symbolic workflow

Inputs

Outputs

Configurations

Scripting

result: gasket inelastic closure XY

Inputs

Outputs

Configurations

Scripting

result: plastic strain eqv

Inputs

Outputs

Configurations

Scripting

mesh: beam properties

Inputs

Outputs

Configurations

Scripting

result: gasket inelastic closure XZ

Inputs

Outputs

Configurations

Scripting

result: gasket thermal closure

Inputs

Outputs

Configurations

Scripting

result: gasket thermal closure X

Inputs

Outputs

Configurations

Scripting

result: elastic strain X

Inputs

Outputs

Configurations

Scripting

result: elastic strain Y

Inputs

Outputs

Configurations

Scripting

result: elastic strain Z

Inputs

Outputs

Configurations

Scripting

math: min/max over time

Inputs

Outputs

Configurations

Scripting

utility: merge fields containers

Inputs

Outputs

Configurations

Scripting

result: global energy ratio without eroded energy (LSDyna)

Inputs

Outputs

Configurations

Scripting

utility: merge weighted fields containers

Inputs

Outputs

Configurations

Scripting

result: elastic strain XY

Inputs

Outputs

Configurations

Scripting

result: elastic strain YZ

Inputs

Outputs

Configurations

Scripting

result: interface contact mass (LSDyna)

Inputs

Outputs

Configurations

Scripting

invariant: eigen values (fields container)

Inputs

Outputs

Configurations

Scripting

result: elastic strain XZ

Inputs

Outputs

Configurations

Scripting

metadata: mesh property provider

Inputs

Outputs

Configurations

Scripting

result: rigid transformation

Inputs

Outputs

Configurations

Scripting

result: elastic strain principal 1

Inputs

Outputs

Configurations

Scripting

result: elastic strain principal 2

Inputs

Outputs

Configurations

Scripting

utility: merge scopings

Inputs

Outputs

Configurations

Scripting

result: elastic strain principal 3

Inputs

Outputs

Configurations

Scripting

result: cyclic analytic disp max

Inputs

Outputs

Configurations

Scripting

result: elastic strain eqv

Inputs

Outputs

Configurations

Scripting

result: transform invariant terms rbd

Inputs

Outputs

Configurations

Scripting

result: elastic strain intensity

Inputs

Outputs

Configurations

Scripting

result: elastic strain max_shear

Inputs

Outputs

Configurations

Scripting

result: turbulent dissipation rate (omega)

Inputs

Outputs

Configurations

Scripting

averaging: to elemental (fields container)

Inputs

Outputs

Configurations

Scripting

result: plastic strain

Inputs

Outputs

Configurations

Scripting

scoping: transpose

Inputs

Outputs

Configurations

Scripting

result: mass fraction

Inputs

Outputs

Configurations

Scripting

result: plastic strain X

Inputs

Outputs

Configurations

Scripting

result: coordinates (LSDyna)

Inputs

Outputs

Configurations

Scripting

result: plastic strain Y

Inputs

Outputs

Configurations

Scripting

filter: band pass (fields container)

Inputs

Outputs

Configurations

Scripting

geo: to polar coordinates

Inputs

Outputs

Configurations

Scripting

math: fft evaluation

Inputs

Outputs

Configurations

Scripting

result: global total energy (LSDyna)

Inputs

Outputs

Configurations

Scripting

result: plastic strain Z

Inputs

Outputs

Configurations

Scripting

utility: merge materials

Inputs

Outputs

Configurations

Scripting

serialization: vtk export

Inputs

Outputs

Configurations

Scripting

result: dynamic viscosity

Inputs

Outputs

Configurations

Scripting

result: plastic strain XY

Inputs

Outputs

Configurations

Scripting

result: hydrostatic pressure

Inputs

Outputs

Configurations

Scripting

result: compute stress von mises

Inputs

Outputs

Configurations

Scripting

filter: low pass (scoping)

Inputs

Outputs

Configurations

Scripting

mesh: iso surfaces

Inputs

Outputs

Configurations

Scripting

result: plastic strain YZ

Inputs

Outputs

Configurations

Scripting

result: plastic strain XZ

Inputs

Outputs

Configurations

Scripting

result: workflow energy per harmonic

Inputs

Outputs

Configurations

Scripting

result: plastic strain principal 3

Inputs

Outputs

Configurations

Scripting

result: plastic strain intensity

Inputs

Outputs

Configurations

Scripting

result: plastic strain max_shear

Inputs

Outputs

Configurations

Scripting

filter: low pass (timefreq)

Inputs

Outputs

Configurations

Scripting

filter: band pass (field)

Inputs

Outputs

Configurations

Scripting

result: thermal strain X

Inputs

Outputs

Configurations

Scripting

result: thermal strain Y

Inputs

Outputs

Configurations

Scripting

math: accumulate level over label

Inputs

Outputs

Configurations

Scripting

result: equivalent radiated power

Inputs

Outputs

Configurations

Scripting

result: thermal strain Z

Inputs

Outputs

Configurations

Scripting

result: thermal strain XY

Inputs

Outputs

Configurations

Scripting

math: accumulate over label

Inputs

Outputs

Configurations

Scripting

utility: merge scopings containers

Inputs

Outputs

Configurations

Scripting

result: thermal strain YZ

Inputs

Outputs

Configurations

Scripting

result: thermal strain principal 1

Inputs

Outputs

Configurations

Scripting

result: thermal strain principal 2

Inputs

Outputs

Configurations

Scripting

result: thermal strain principal 3

Inputs

Outputs

Configurations

Scripting

result: wall shear stress

Inputs

Outputs

Configurations

Scripting

result: velocity

Inputs

Outputs

Configurations

Scripting

result: reaction force

Inputs

Outputs

Configurations

Scripting

serialization: serializer

Inputs

Outputs

Configurations

Scripting

result: velocity X

Inputs

Outputs

Configurations

Scripting

result: reaction force X

Inputs

Outputs

Configurations

Scripting

geo: cartesian to spherical coordinates (fields container)

Inputs

Outputs

Configurations

Scripting

result: global external work (LSDyna)

Inputs

Outputs

Configurations

Scripting

result: acceleration

Inputs

Outputs

Configurations

Scripting

result: element centroids

Inputs

Outputs

Configurations

Scripting

result: acceleration Z

Inputs

Outputs

Configurations

Scripting

scoping: rescope (fields container)

Inputs

Outputs

Configurations

Scripting

result: displacement

Inputs

Outputs

Configurations

Scripting

result: displacement X

Inputs

Outputs

Configurations

Scripting

averaging: force_summation

Inputs

Outputs

Configurations

Scripting

result: displacement Y

Inputs

Outputs

Configurations

Scripting

result: displacement Z

Inputs

Outputs

Configurations

Scripting

result: heat flux X

Inputs

Outputs

Configurations

Scripting

result: heat flux Y

Inputs

Outputs

Configurations

Scripting

result: electric field

Inputs

Outputs

Configurations

Scripting

result: total contact moment

Inputs

Outputs

Configurations

Scripting

result: heat flux Z

Inputs

Outputs

Configurations

Scripting

serialization: serialize to hdf5

Inputs

Outputs

Configurations

Scripting

result: element orientations

Inputs

Outputs

Configurations

Scripting

result: element orientations Y

Inputs

Outputs

Configurations

Scripting

mesh: split mesh wrt property

Inputs

Outputs

Configurations

Scripting

result: element orientations Z

Inputs

Outputs

Configurations

Scripting

result: element nodal forces

Inputs

Outputs

Configurations

Scripting

result: compute total strain Z

Outputs

Configurations

Scripting

result: gasket inelastic closure

Inputs

Outputs

Configurations

Scripting

result: gasket inelastic closure X

Inputs

Outputs

Configurations

Scripting

result: write cms rbd file

Inputs

Outputs

Configurations

Scripting

serialization: export symbolic workflow

Inputs

Outputs

Configurations

Scripting

result: gasket inelastic closure XY

Inputs

Outputs

Configurations

Scripting

result: plastic strain eqv

Inputs

Outputs

Configurations

Scripting

mesh: beam properties

Inputs

Outputs

Configurations

Scripting

result: gasket inelastic closure XZ

Inputs

Outputs

Configurations

Scripting

result: gasket thermal closure

Inputs

Outputs

Configurations

Scripting

result: gasket thermal closure X

Inputs

Outputs

Configurations

Scripting

result: elastic strain X

Inputs

Outputs

Configurations

Scripting

result: elastic strain Y

Inputs

Outputs

Configurations

Scripting

result: elastic strain Z

Inputs

Outputs

Configurations

Scripting

math: min/max over time

Inputs

Outputs

Configurations

Scripting

utility: merge fields containers

Inputs

Outputs

Configurations

Scripting

result: global energy ratio without eroded energy (LSDyna)

Inputs

Outputs

Configurations

Scripting

utility: merge weighted fields containers

Inputs

Outputs

Configurations

Scripting

result: elastic strain XY

Inputs

Outputs

Configurations

Scripting

result: elastic strain YZ

Inputs

Outputs

Configurations

Scripting

result: interface contact mass (LSDyna)

Inputs

Outputs

Configurations

Scripting

invariant: eigen values (fields container)

Inputs

Outputs

Configurations

Scripting

result: elastic strain XZ

Inputs

Outputs

Configurations

Scripting

metadata: mesh property provider

Inputs

Outputs

Configurations

Scripting

result: rigid transformation

Inputs

Outputs

Configurations

Scripting

result: elastic strain principal 1

Inputs

Outputs

Configurations

Scripting

result: elastic strain principal 2

Inputs

Outputs

Configurations

Scripting

utility: merge scopings

Inputs

Outputs

Configurations

Scripting

result: elastic strain principal 3

Inputs

Outputs

Configurations

Scripting

result: cyclic analytic disp max

Inputs

Outputs

Configurations

Scripting

result: elastic strain eqv

Inputs

Outputs

Configurations

Scripting

result: transform invariant terms rbd

Inputs

Outputs

Configurations

Scripting

result: elastic strain intensity

Inputs

Outputs

Configurations

Scripting

result: elastic strain max_shear

Inputs

Outputs

Configurations

Scripting

result: turbulent dissipation rate (omega)

Inputs

Outputs

Configurations

Scripting

averaging: to elemental (fields container)

Inputs

Outputs

Configurations

Scripting

result: plastic strain

Inputs

Outputs

Configurations

Scripting

scoping: transpose

Inputs

Outputs

Configurations

Scripting

result: mass fraction

Inputs

Outputs

Configurations

Scripting

result: plastic strain X

Inputs

Outputs

Configurations

Scripting

result: coordinates (LSDyna)

Inputs

Outputs

Configurations

Scripting

result: plastic strain Y

Inputs

Outputs

Configurations

Scripting

filter: band pass (fields container)

Inputs

Outputs

Configurations

Scripting

geo: to polar coordinates

Inputs

Outputs

Configurations

Scripting

math: fft evaluation

Inputs

Outputs

Configurations

Scripting

result: global total energy (LSDyna)

Inputs

Outputs

Configurations

Scripting

result: plastic strain Z

Inputs

Outputs

Configurations

Scripting

utility: merge materials

Inputs

Outputs

Configurations

Scripting

serialization: vtk export

Inputs

Outputs

Configurations

Scripting

result: dynamic viscosity

Inputs

Outputs

Configurations

Scripting

result: plastic strain XY

Inputs

Outputs

Configurations

Scripting

result: hydrostatic pressure

Inputs

Outputs

Configurations

Scripting

result: compute stress von mises

Inputs

Outputs

Configurations

Scripting

filter: low pass (scoping)

Inputs

Outputs

Configurations

Scripting

mesh: iso surfaces

Inputs

Outputs

Configurations

Scripting

result: plastic strain YZ

Inputs

Outputs

Configurations

Scripting

result: plastic strain XZ

Inputs

Outputs

Configurations

Scripting

result: workflow energy per harmonic

Inputs

Outputs

Configurations

Scripting

result: plastic strain principal 3

Inputs

Outputs

Configurations

Scripting

result: plastic strain intensity

Inputs

Outputs

Configurations

Scripting

result: plastic strain max_shear

Inputs

Outputs

Configurations

Scripting

filter: low pass (timefreq)

Inputs

Outputs

Configurations

Scripting

filter: band pass (field)

Inputs

Outputs

Configurations

Scripting

result: thermal strain X

Inputs

Outputs

Configurations

Scripting

result: thermal strain Y

Inputs

Outputs

Configurations

Scripting

math: accumulate level over label

Inputs

Outputs

Configurations

Scripting

result: equivalent radiated power

Inputs

Outputs

Configurations

Scripting

result: thermal strain Z

Inputs

Outputs

Configurations

Scripting

result: thermal strain XY

Inputs

Outputs

Configurations

Scripting

math: accumulate over label

Inputs

Outputs

Configurations

Scripting

utility: merge scopings containers

Inputs

Outputs

Configurations

Scripting

result: thermal strain YZ

Inputs

Outputs

Configurations

Scripting

result: thermal strain principal 1

Inputs

Outputs

Configurations

Scripting

result: thermal strain principal 2

Inputs

Outputs

Configurations

Scripting

result: thermal strain principal 3

Inputs

Outputs

Configurations

Scripting

result: wall shear stress

Inputs

Outputs

Configurations

Scripting

result: velocity

Inputs

Outputs

Configurations

Scripting

result: reaction force

Inputs

Outputs

Configurations

Scripting

serialization: serializer

Inputs

Outputs

Configurations

Scripting

result: velocity X

Inputs

Outputs

Configurations

Scripting

result: reaction force X

Inputs

Outputs

Configurations

Scripting

geo: cartesian to spherical coordinates (fields container)

Inputs

Outputs

Configurations

Scripting

result: global external work (LSDyna)

Inputs

Outputs

Configurations

Scripting

result: acceleration

Inputs

Outputs

Configurations

Scripting

result: element centroids

Inputs

Outputs

Configurations

Scripting

result: acceleration Z

Inputs

Outputs

Configurations

Scripting

scoping: rescope (fields container)

Inputs

Outputs

Configurations

Scripting

result: displacement

Inputs

Outputs

Configurations

Scripting

result: displacement X

Inputs

Outputs

Configurations

Scripting

averaging: force_summation

Inputs

Outputs

Configurations

Scripting

result: displacement Y

Inputs

Outputs

Configurations

Scripting

result: displacement Z

Inputs

Outputs

Configurations

Scripting

result: heat flux X

Inputs

Outputs

Configurations

Scripting

result: heat flux Y

Inputs

Outputs

Configurations

Scripting

result: electric field

Inputs

Outputs

Configurations

Scripting

result: total contact moment

Inputs

Outputs

Configurations

Scripting

result: heat flux Z

Inputs

Outputs

Configurations

Scripting

serialization: serialize to hdf5

Inputs

Outputs

Configurations

Scripting

result: element orientations

Inputs

Outputs

Configurations

Scripting

result: element orientations Y

Inputs

Outputs

Configurations

Scripting

mesh: split mesh wrt property

Inputs

Outputs

Configurations

Scripting

result: element orientations Z

Inputs

Outputs

Configurations

Scripting

result: element nodal forces

Inputs

Outputs

Configurations

Scripting

result: compute total strain Z

Configurating operators 2 for normalized by the max at a given time step of the first entry or residuals depending on the reference field option, 3 for normalized by the max over all time steps of the first entry or residuals depending on the reference field option" types="int32" optional="true"ellipsis="false"inplace="false">

Outputs

Configurations

Scripting

result: add rigid body motion (fields container)

Inputs

Outputs

Configurations

Scripting

utility: merge time freq supports

Inputs

Outputs

Configurations

Scripting

min_max: incremental over fields container

Inputs

Outputs

Configurations

Scripting

scoping: split on property type

Inputs

Outputs

Configurations

Scripting

utility: overlap fields

Inputs

Outputs

Configurations

Scripting

averaging: elemental nodal to nodal elemental (field)

Inputs

Outputs

Configurations

Scripting

scoping: adapt with scopings container

Inputs

Outputs

Configurations

Scripting

utility: change shell layers

Inputs

Outputs

Configurations

Scripting

utility: merge meshes

Inputs

Outputs

Configurations

Scripting

utility: merge fields

Inputs

Outputs

Configurations

Scripting

utility: merge weighted fields

Inputs

Outputs

Configurations

Scripting

utility: merge fc to fc field matrices

Inputs

Outputs

Configurations

Scripting

filter: high pass (field)

Inputs

Outputs

Configurations

Scripting

min_max: max by component

Inputs

Outputs

Configurations

Scripting

utility: weighted merge fields by label

Inputs

Outputs

Configurations

Scripting

utility: merge fields by label

Inputs

Outputs

Configurations

Scripting

averaging: elemental to elemental nodal (field)

Inputs

Outputs

Configurations

Scripting

utility: merge meshes containers

Inputs

Outputs

Configurations

Scripting

min_max: min max by entity

Inputs

Outputs

Configurations

Scripting

utility: merge collections

Inputs

Outputs

Configurations

Scripting

logic: merge solid and shell fields

Inputs

Outputs

Configurations

Scripting

min_max: min over time

Inputs

Outputs

Configurations

Scripting

geo: element nodal contribution

Inputs

Outputs

Configurations

Scripting

min_max: over label

Inputs

Outputs

Configurations

Scripting

min_max: min by component

Inputs

Outputs

Configurations

Scripting

serialization: serializer to string

Inputs

Outputs

Configurations

Scripting

serialization: deserializer

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded velocity

Inputs

Outputs

Configurations

Scripting

mesh: skin

Inputs

Outputs

Configurations

Scripting

utility: split in for each range

Inputs

Outputs

Configurations

Scripting

utility: incremental field

Inputs

Outputs

Configurations

Scripting

utility: incremental fields container

Inputs

Outputs

Configurations

Scripting

geo: rotate (fields container)

Inputs

Outputs

Configurations

Scripting

utility: incremental property field

Inputs

Outputs

Configurations

Scripting

utility: incremental mesh

Inputs

Outputs

Configurations

Scripting

mesh: points from coordinates

Inputs

Outputs

Configurations

Scripting

utility: incremental concantenate as fields container.

Inputs

Outputs

Configurations

Scripting

utility: make producer consumer for each iterator

Inputs

Outputs

Configurations

Scripting

utility: producer consumer for each

Inputs

Outputs

Configurations

Scripting

averaging: extend to mid nodes (field)

Inputs

Outputs

Configurations

Scripting

invariant: eigen vectors (on fields container)

Inputs

Outputs

Configurations

Scripting

mesh: mesh get attribute

Inputs

Outputs

Configurations

Scripting

metadata: time freq support get attribute

Inputs

Outputs

Configurations

Scripting

utility: set attribute

Inputs

Outputs

Configurations

Scripting

utility: field get attribute

Inputs

Outputs

Configurations

Scripting

min_max: time of min

Inputs

Outputs

Configurations

Scripting

min_max: max over phase

Inputs

Outputs

Configurations

Scripting

min_max: phase of max

Inputs

Outputs

Configurations

Scripting

utility: voigt to standard strains

Inputs

Outputs

Configurations

Scripting

utility: voigt to standard strains (fields container)

Inputs

Outputs

Configurations

Scripting

min_max: incremental over field

Inputs

Outputs

Configurations

Scripting

utility: workflow to pydpf generator

Inputs

Outputs

Configurations

Scripting

filter: signed high pass (timefreq)

Inputs

Outputs

Configurations

Scripting

logic: same string fields?

Inputs

Outputs

Configurations

Scripting

logic: same meshes?

Inputs

Outputs

Configurations

Scripting

logic: same fields?

Inputs

Outputs

Configurations

Scripting

logic: fields included?

Inputs

Outputs

Configurations

Scripting

logic: same fields container?

Inputs

Outputs

Configurations

Scripting

filter: high pass (scoping)

Inputs

Outputs

Configurations

Scripting

filter: high pass (timescoping)

Inputs

Outputs

Configurations

Scripting

filter: high pass (fields container)

Inputs

Outputs

Configurations

Scripting

filter: low pass (field)

Inputs

Outputs

Configurations

Scripting

filter: low pass (fields container)

Inputs

Outputs

Configurations

Scripting

filter: band pass (scoping)

Inputs

Outputs

Configurations

Scripting

filter: band pass (timefreq)

Inputs

Outputs

Configurations

Scripting

filter: signed high pass (scoping)

Inputs

Outputs

Configurations

Scripting

filter: signed high pass (timescoping)

Inputs

Outputs

Configurations

Scripting

filter: signed high pass (fields container)

Inputs

Outputs

Configurations

Scripting

serialization: csv to field

Inputs

Outputs

Configurations

Scripting

result: members in compression not certified

Inputs

Outputs

Configurations

Scripting

result: members in bending not certified

Inputs

Outputs

Configurations

Scripting

result: members in linear compression bending not certified

Inputs

Outputs

Configurations

Scripting

invariant: convertnum nod to bcs

Inputs

Outputs

Configurations

Scripting

geo: rotate

Inputs

Outputs

Configurations

Scripting

logic: enrich materials

Inputs

Outputs

Configurations

Scripting

serialization: data tree to json

Inputs

Outputs

Configurations

Scripting

serialization: data tree to txt

Inputs

Outputs

Configurations

Scripting

serialization: json to data tree

Inputs

Outputs

Configurations

Scripting

averaging: nodal difference (fields container)

Inputs

Outputs

Configurations

Scripting

logic: descending sort

Inputs

Outputs

Configurations

Scripting

logic: ascending sort (fields container)

Inputs

Outputs

Configurations

Scripting

logic: descending sort (fields container)

Inputs

Outputs

Configurations

Scripting

serialization: import symbolic workflow

Inputs

Outputs

Configurations

Scripting

filter: filtering max over time workflow

Inputs

Outputs

Configurations

Scripting

metadata: integrate over time freq

Inputs

Outputs

Configurations

Scripting

utility: extract time freq

Inputs

Outputs

Configurations

Scripting

averaging: nodal difference (field)

Inputs

Outputs

Configurations

Scripting

result: compute stress YZ

Inputs

Outputs

Configurations

Scripting

logic: splitter::data_sources

Inputs

Outputs

Configurations

Scripting

averaging: to elemental nodal (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: elemental nodal to nodal (field)

Inputs

Outputs

Configurations

Scripting

averaging: elemental nodal to nodal (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: elemental to nodal (field)

Outputs

Configurations

Scripting

result: add rigid body motion (fields container)

Inputs

Outputs

Configurations

Scripting

utility: merge time freq supports

Inputs

Outputs

Configurations

Scripting

min_max: incremental over fields container

Inputs

Outputs

Configurations

Scripting

scoping: split on property type

Inputs

Outputs

Configurations

Scripting

utility: overlap fields

Inputs

Outputs

Configurations

Scripting

averaging: elemental nodal to nodal elemental (field)

Inputs

Outputs

Configurations

Scripting

scoping: adapt with scopings container

Inputs

Outputs

Configurations

Scripting

utility: change shell layers

Inputs

Outputs

Configurations

Scripting

utility: merge meshes

Inputs

Outputs

Configurations

Scripting

utility: merge fields

Inputs

Outputs

Configurations

Scripting

utility: merge weighted fields

Inputs

Outputs

Configurations

Scripting

utility: merge fc to fc field matrices

Inputs

Outputs

Configurations

Scripting

filter: high pass (field)

Inputs

Outputs

Configurations

Scripting

min_max: max by component

Inputs

Outputs

Configurations

Scripting

utility: weighted merge fields by label

Inputs

Outputs

Configurations

Scripting

utility: merge fields by label

Inputs

Outputs

Configurations

Scripting

averaging: elemental to elemental nodal (field)

Inputs

Outputs

Configurations

Scripting

utility: merge meshes containers

Inputs

Outputs

Configurations

Scripting

min_max: min max by entity

Inputs

Outputs

Configurations

Scripting

utility: merge collections

Inputs

Outputs

Configurations

Scripting

logic: merge solid and shell fields

Inputs

Outputs

Configurations

Scripting

min_max: min over time

Inputs

Outputs

Configurations

Scripting

geo: element nodal contribution

Inputs

Outputs

Configurations

Scripting

min_max: over label

Inputs

Outputs

Configurations

Scripting

min_max: min by component

Inputs

Outputs

Configurations

Scripting

serialization: serializer to string

Inputs

Outputs

Configurations

Scripting

serialization: deserializer

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded velocity

Inputs

Outputs

Configurations

Scripting

mesh: skin

Inputs

Outputs

Configurations

Scripting

utility: split in for each range

Inputs

Outputs

Configurations

Scripting

utility: incremental field

Inputs

Outputs

Configurations

Scripting

utility: incremental fields container

Inputs

Outputs

Configurations

Scripting

geo: rotate (fields container)

Inputs

Outputs

Configurations

Scripting

utility: incremental property field

Inputs

Outputs

Configurations

Scripting

utility: incremental mesh

Inputs

Outputs

Configurations

Scripting

mesh: points from coordinates

Inputs

Outputs

Configurations

Scripting

utility: incremental concantenate as fields container.

Inputs

Outputs

Configurations

Scripting

utility: make producer consumer for each iterator

Inputs

Outputs

Configurations

Scripting

utility: producer consumer for each

Inputs

Outputs

Configurations

Scripting

averaging: extend to mid nodes (field)

Inputs

Outputs

Configurations

Scripting

invariant: eigen vectors (on fields container)

Inputs

Outputs

Configurations

Scripting

mesh: mesh get attribute

Inputs

Outputs

Configurations

Scripting

metadata: time freq support get attribute

Inputs

Outputs

Configurations

Scripting

utility: set attribute

Inputs

Outputs

Configurations

Scripting

utility: field get attribute

Inputs

Outputs

Configurations

Scripting

min_max: time of min

Inputs

Outputs

Configurations

Scripting

min_max: max over phase

Inputs

Outputs

Configurations

Scripting

min_max: phase of max

Inputs

Outputs

Configurations

Scripting

utility: voigt to standard strains

Inputs

Outputs

Configurations

Scripting

utility: voigt to standard strains (fields container)

Inputs

Outputs

Configurations

Scripting

min_max: incremental over field

Inputs

Outputs

Configurations

Scripting

utility: workflow to pydpf generator

Inputs

Outputs

Configurations

Scripting

filter: signed high pass (timefreq)

Inputs

Outputs

Configurations

Scripting

logic: same string fields?

Inputs

Outputs

Configurations

Scripting

logic: same meshes?

Inputs

Outputs

Configurations

Scripting

logic: same fields?

Inputs

Outputs

Configurations

Scripting

logic: fields included?

Inputs

Outputs

Configurations

Scripting

logic: same fields container?

Inputs

Outputs

Configurations

Scripting

filter: high pass (scoping)

Inputs

Outputs

Configurations

Scripting

filter: high pass (timescoping)

Inputs

Outputs

Configurations

Scripting

filter: high pass (fields container)

Inputs

Outputs

Configurations

Scripting

filter: low pass (field)

Inputs

Outputs

Configurations

Scripting

filter: low pass (fields container)

Inputs

Outputs

Configurations

Scripting

filter: band pass (scoping)

Inputs

Outputs

Configurations

Scripting

filter: band pass (timefreq)

Inputs

Outputs

Configurations

Scripting

filter: signed high pass (scoping)

Inputs

Outputs

Configurations

Scripting

filter: signed high pass (timescoping)

Inputs

Outputs

Configurations

Scripting

filter: signed high pass (fields container)

Inputs

Outputs

Configurations

Scripting

serialization: csv to field

Inputs

Outputs

Configurations

Scripting

result: members in compression not certified

Inputs

Outputs

Configurations

Scripting

result: members in bending not certified

Inputs

Outputs

Configurations

Scripting

result: members in linear compression bending not certified

Inputs

Outputs

Configurations

Scripting

invariant: convertnum nod to bcs

Inputs

Outputs

Configurations

Scripting

geo: rotate

Inputs

Outputs

Configurations

Scripting

logic: enrich materials

Inputs

Outputs

Configurations

Scripting

serialization: data tree to json

Inputs

Outputs

Configurations

Scripting

serialization: data tree to txt

Inputs

Outputs

Configurations

Scripting

serialization: json to data tree

Inputs

Outputs

Configurations

Scripting

averaging: nodal difference (fields container)

Inputs

Outputs

Configurations

Scripting

logic: descending sort

Inputs

Outputs

Configurations

Scripting

logic: ascending sort (fields container)

Inputs

Outputs

Configurations

Scripting

logic: descending sort (fields container)

Inputs

Outputs

Configurations

Scripting

serialization: import symbolic workflow

Inputs

Outputs

Configurations

Scripting

filter: filtering max over time workflow

Inputs

Outputs

Configurations

Scripting

metadata: integrate over time freq

Inputs

Outputs

Configurations

Scripting

utility: extract time freq

Inputs

Outputs

Configurations

Scripting

averaging: nodal difference (field)

Inputs

Outputs

Configurations

Scripting

result: compute stress YZ

Inputs

Outputs

Configurations

Scripting

logic: splitter::data_sources

Inputs

Outputs

Configurations

Scripting

averaging: to elemental nodal (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: elemental nodal to nodal (field)

Inputs

Outputs

Configurations

Scripting

averaging: elemental nodal to nodal (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: elemental to nodal (field)

Configurating operators - If the determinant of the I matrix is zero, switch to an inverse distance weighted average. - If not, compute the Frink weights and apply the Holmes' weight clip. - If the clipping produces a large overshoot, inverse volume weighted average is used.. -3. For a face finite volume mesh inverse distance weighted average is used.">

Inputs

Outputs

Configurations

Scripting

averaging: to nodal (field)

Inputs

Outputs

Configurations

Scripting

averaging: to nodal (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: elemental mean (field)

Inputs

Outputs

Configurations

Scripting

averaging: elemental mean (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: nodal to elemental (field)

Inputs

Outputs

Configurations

Scripting

averaging: nodal to elemental (fields container)

Inputs

Outputs

Configurations

Scripting

invariant: eigen values (field)

Inputs

Outputs

Configurations

Scripting

invariant: principal invariants (field)

Inputs

Outputs

Configurations

Scripting

invariant: von mises eqv (fields container)

Inputs

Outputs

Configurations

Scripting

invariant: segalman von mises eqv (fields container)

Inputs

Outputs

Configurations

Scripting

scoping: compute element centroids

Inputs

Outputs

Configurations

Scripting

math: entity extractor

Inputs

Outputs

Configurations

Scripting

metadata: cyclic mesh expansion

Inputs

Outputs

Configurations

Scripting

result: cyclic analytic stress eqv max

Inputs

Outputs

Configurations

Scripting

result: remove rigid body motion (fields container)

Inputs

Outputs

Configurations

Scripting

result: cyclic expansion

Inputs

Outputs

Configurations

Scripting

averaging: nodal fraction (fields container)

Inputs

Outputs

Configurations

Scripting

result: recombine cyclic harmonic indices

Inputs

Outputs

Configurations

Scripting

mapping: on coordinates

Inputs

Outputs

Configurations

Scripting

mapping: scoping on coordinates

Inputs

Outputs

Configurations

Scripting

filter: abc weightings

Inputs

Outputs

Configurations

Scripting

mapping: solid to skin

Inputs

Outputs

Configurations

Scripting

mapping: solid to skin (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: elemental difference (field)

Inputs

Outputs

Configurations

Scripting

averaging: elemental fraction (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: extend to mid nodes (fields container)

Inputs

Outputs

Configurations

Scripting

geo: rotate cylindrical coordinates

Inputs

Outputs

Configurations

Scripting

geo: rotate in cylindrical coordinates (fields container)

Inputs

Outputs

Configurations

Scripting

geo: spherical to cartesian coordinates (fields container)

Inputs

Outputs

Configurations

Scripting

geo: spherical to cartesian coordinates

Inputs

Outputs

Configurations

Scripting

mesh: change cs (meshes)

Inputs

Outputs

Configurations

Scripting

geo: normals provider nl (nodes, faces, or elements)

Inputs

Outputs

Configurations

Scripting

geo: elements volumes over time

Inputs

Outputs

Configurations

Scripting

math: window bartlett

Inputs

Outputs

Configurations

Scripting

mesh: from scoping

Inputs

Outputs

Configurations

Scripting

mesh: split field wrt mesh regions

Inputs

Outputs

Configurations

Scripting

result: torque

Inputs

Outputs

Configurations

Scripting

result: euler load buckling

Inputs

Outputs

Configurations

Scripting

geo: faces area

Inputs

Outputs

Configurations

Scripting

result: compute stress 3

Inputs

Outputs

Configurations

Scripting

geo: gauss to node (field)

Inputs

Outputs

Configurations

Scripting

averaging: gauss to node (fields container)

Inputs

Outputs

Configurations

Scripting

math: correlation

Inputs

Outputs

Configurations

Scripting

math: mac

Inputs

Outputs

Configurations

Scripting

result: workflow energy per component

Inputs

Outputs

Configurations

Scripting

result: add rigid body motion (field)

Inputs

Outputs

Configurations

Scripting

result: split on facet indices

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded temperature

Inputs

Outputs

Configurations

Scripting

result: enf solution to global cs

Inputs

Outputs

Configurations

Scripting

result: cms matrices provider

Inputs

Outputs

Configurations

Scripting

result: rom data provider

Inputs

Outputs

Configurations

Scripting

result: prns to field

Inputs

Outputs

Configurations

Scripting

result: remove rigid body motion (field)

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded displacement

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded acceleration

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded stress

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded el strain

Inputs

Outputs

Configurations

Scripting

result: cms subfile info provider

Inputs

Outputs

Configurations

Scripting

result: cyclic volume

Inputs

Outputs

Configurations

Scripting

result: cyclic nmisc

Inputs

Outputs

Configurations

Scripting

invariant: convertnum operator

Inputs

Outputs

Configurations

Scripting

result: compute total strain XZ

Inputs

Outputs

Configurations

Scripting

averaging: to nodal (field)

Inputs

Outputs

Configurations

Scripting

averaging: to nodal (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: elemental mean (field)

Inputs

Outputs

Configurations

Scripting

averaging: elemental mean (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: nodal to elemental (field)

Inputs

Outputs

Configurations

Scripting

averaging: nodal to elemental (fields container)

Inputs

Outputs

Configurations

Scripting

invariant: eigen values (field)

Inputs

Outputs

Configurations

Scripting

invariant: principal invariants (field)

Inputs

Outputs

Configurations

Scripting

invariant: von mises eqv (fields container)

Inputs

Outputs

Configurations

Scripting

invariant: segalman von mises eqv (fields container)

Inputs

Outputs

Configurations

Scripting

scoping: compute element centroids

Inputs

Outputs

Configurations

Scripting

math: entity extractor

Inputs

Outputs

Configurations

Scripting

metadata: cyclic mesh expansion

Inputs

Outputs

Configurations

Scripting

result: cyclic analytic stress eqv max

Inputs

Outputs

Configurations

Scripting

result: remove rigid body motion (fields container)

Inputs

Outputs

Configurations

Scripting

result: cyclic expansion

Inputs

Outputs

Configurations

Scripting

averaging: nodal fraction (fields container)

Inputs

Outputs

Configurations

Scripting

result: recombine cyclic harmonic indices

Inputs

Outputs

Configurations

Scripting

mapping: on coordinates

Inputs

Outputs

Configurations

Scripting

mapping: scoping on coordinates

Inputs

Outputs

Configurations

Scripting

filter: abc weightings

Inputs

Outputs

Configurations

Scripting

mapping: solid to skin

Inputs

Outputs

Configurations

Scripting

mapping: solid to skin (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: elemental difference (field)

Inputs

Outputs

Configurations

Scripting

averaging: elemental fraction (fields container)

Inputs

Outputs

Configurations

Scripting

averaging: extend to mid nodes (fields container)

Inputs

Outputs

Configurations

Scripting

geo: rotate cylindrical coordinates

Inputs

Outputs

Configurations

Scripting

geo: rotate in cylindrical coordinates (fields container)

Inputs

Outputs

Configurations

Scripting

geo: spherical to cartesian coordinates (fields container)

Inputs

Outputs

Configurations

Scripting

geo: spherical to cartesian coordinates

Inputs

Outputs

Configurations

Scripting

mesh: change cs (meshes)

Inputs

Outputs

Configurations

Scripting

geo: normals provider nl (nodes, faces, or elements)

Inputs

Outputs

Configurations

Scripting

geo: elements volumes over time

Inputs

Outputs

Configurations

Scripting

math: window bartlett

Inputs

Outputs

Configurations

Scripting

mesh: from scoping

Inputs

Outputs

Configurations

Scripting

mesh: split field wrt mesh regions

Inputs

Outputs

Configurations

Scripting

result: torque

Inputs

Outputs

Configurations

Scripting

result: euler load buckling

Inputs

Outputs

Configurations

Scripting

geo: faces area

Inputs

Outputs

Configurations

Scripting

result: compute stress 3

Inputs

Outputs

Configurations

Scripting

geo: gauss to node (field)

Inputs

Outputs

Configurations

Scripting

averaging: gauss to node (fields container)

Inputs

Outputs

Configurations

Scripting

math: correlation

Inputs

Outputs

Configurations

Scripting

math: mac

Inputs

Outputs

Configurations

Scripting

result: workflow energy per component

Inputs

Outputs

Configurations

Scripting

result: add rigid body motion (field)

Inputs

Outputs

Configurations

Scripting

result: split on facet indices

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded temperature

Inputs

Outputs

Configurations

Scripting

result: enf solution to global cs

Inputs

Outputs

Configurations

Scripting

result: cms matrices provider

Inputs

Outputs

Configurations

Scripting

result: rom data provider

Inputs

Outputs

Configurations

Scripting

result: prns to field

Inputs

Outputs

Configurations

Scripting

result: remove rigid body motion (field)

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded displacement

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded acceleration

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded stress

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded el strain

Inputs

Outputs

Configurations

Scripting

result: cms subfile info provider

Inputs

Outputs

Configurations

Scripting

result: cyclic volume

Inputs

Outputs

Configurations

Scripting

result: cyclic nmisc

Inputs

Outputs

Configurations

Scripting

invariant: convertnum operator

Inputs

Outputs

Configurations

Scripting

result: compute total strain XZ

Configurating operators Only linear analysis are supported without On Demand Expansion. All coordinates are global coordinates. Euler Angles need to be included in the database. - Get the XZ shear component (02 component).">

Inputs

Outputs

Configurations

Scripting

result: cms dst table provider

Inputs

Outputs

Configurations

Scripting

result: spectrum data

Inputs

Outputs

Configurations

Scripting

invariant: eigen vectors (on field)

Inputs

Outputs

Configurations

Scripting

result: mapdl material properties

Inputs

Outputs

Configurations

Scripting

result: mapdl_section

Inputs

Outputs

Configurations

Scripting

result: compute invariant terms motion

Inputs

Outputs

Configurations

Scripting

result: write motion dfmf file

Inputs

Outputs

Configurations

Scripting

result: split to acmo facet indices

Inputs

Outputs

Configurations

Scripting

result: stress solution to global cs

Inputs

Outputs

Configurations

Scripting

result: elastic strain solution to global cs

Inputs

Outputs

Configurations

Scripting

result: plastic strain to global cs

Inputs

Outputs

Configurations

Scripting

math: qr solve

Inputs

Outputs

Configurations

Scripting

result: von mises strains as mechanical workflow

Inputs

Outputs

Configurations

Scripting

mesh: mesh clipper

Inputs

Outputs

Configurations

Scripting

serialization: migrate to vtk

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded element heat flux

Inputs

Outputs

Configurations

Scripting

mesh: external layer

Inputs

Outputs

Configurations

Scripting

mesh: mesh cutter

Inputs

Outputs

Configurations

Scripting

mesh: mesh plan clipper

Inputs

Outputs

Configurations

Scripting

mesh: mesh_to_graphics

Inputs

Outputs

Configurations

Scripting

mesh: mesh_to_graphics_edges

Inputs

Outputs

Configurations

Scripting

geo: scoping normals

Inputs

Outputs

Configurations

Scripting

mesh: combine levelset

Inputs

Outputs

Configurations

Scripting

mesh: exclude levelset

Inputs

Outputs

Configurations

Scripting

mesh: make plane levelset

Inputs

Outputs

Configurations

Scripting

mesh: make sphere levelset

Inputs

Outputs

Configurations

Scripting

mesh: mesh extraction

Inputs

Outputs

Configurations

Scripting

mesh: wireframe

Inputs

Outputs

Configurations

Scripting

mesh: mesh to tetra

Inputs

Outputs

Configurations

Scripting

mapping: fft

Inputs

Outputs

Configurations

Scripting

math: fft gradient evaluation

Inputs

Outputs

Configurations

Scripting

math: fft multi harmonic solution minmax

Inputs

Outputs

Configurations

Scripting

math: svd

Inputs

Outputs

Configurations

Scripting

math: Time integration

Inputs

Outputs

Configurations

Scripting

math: Time derivation

Inputs

Outputs

Configurations

Scripting

mapping: prep sampling fft

Inputs

Outputs

Configurations

Scripting

math: fft filtering and cubic fitting

Inputs

Outputs

Configurations

Scripting

result: cms dst table provider

Inputs

Outputs

Configurations

Scripting

result: spectrum data

Inputs

Outputs

Configurations

Scripting

invariant: eigen vectors (on field)

Inputs

Outputs

Configurations

Scripting

result: mapdl material properties

Inputs

Outputs

Configurations

Scripting

result: mapdl_section

Inputs

Outputs

Configurations

Scripting

result: compute invariant terms motion

Inputs

Outputs

Configurations

Scripting

result: write motion dfmf file

Inputs

Outputs

Configurations

Scripting

result: split to acmo facet indices

Inputs

Outputs

Configurations

Scripting

result: stress solution to global cs

Inputs

Outputs

Configurations

Scripting

result: elastic strain solution to global cs

Inputs

Outputs

Configurations

Scripting

result: plastic strain to global cs

Inputs

Outputs

Configurations

Scripting

math: qr solve

Inputs

Outputs

Configurations

Scripting

result: von mises strains as mechanical workflow

Inputs

Outputs

Configurations

Scripting

mesh: mesh clipper

Inputs

Outputs

Configurations

Scripting

serialization: migrate to vtk

Inputs

Outputs

Configurations

Scripting

result: cyclic expanded element heat flux

Inputs

Outputs

Configurations

Scripting

mesh: external layer

Inputs

Outputs

Configurations

Scripting

mesh: mesh cutter

Inputs

Outputs

Configurations

Scripting

mesh: mesh plan clipper

Inputs

Outputs

Configurations

Scripting

mesh: mesh_to_graphics

Inputs

Outputs

Configurations

Scripting

mesh: mesh_to_graphics_edges

Inputs

Outputs

Configurations

Scripting

geo: scoping normals

Inputs

Outputs

Configurations

Scripting

mesh: combine levelset

Inputs

Outputs

Configurations

Scripting

mesh: exclude levelset

Inputs

Outputs

Configurations

Scripting

mesh: make plane levelset

Inputs

Outputs

Configurations

Scripting

mesh: make sphere levelset

Inputs

Outputs

Configurations

Scripting

mesh: mesh extraction

Inputs

Outputs

Configurations

Scripting

mesh: wireframe

Inputs

Outputs

Configurations

Scripting

mesh: mesh to tetra

Inputs

Outputs

Configurations

Scripting

mapping: fft

Inputs

Outputs

Configurations

Scripting

math: fft gradient evaluation

Inputs

Outputs

Configurations

Scripting

math: fft multi harmonic solution minmax

Inputs

Outputs

Configurations

Scripting

math: svd

Inputs

Outputs

Configurations

Scripting

math: time integration

Inputs

Outputs

Configurations

Scripting

math: time derivation

Inputs

Outputs

Configurations

Scripting

mapping: prep sampling fft

Inputs

Outputs

Configurations

Scripting

math: fft filtering and cubic fitting

Inputs

Outputs

Configurations

Scripting

math: window triangular

Inputs

Outputs

Configurations

Scripting

math: window hanning

Inputs

Outputs

Configurations

Scripting

math: window hamming

Inputs

Outputs

Configurations

Scripting

math: window welch

Inputs

Outputs

Configurations

Scripting

math: window blackman

Inputs

Outputs

Configurations

Scripting

math: window triangular (fields container)

Inputs

Outputs

Configurations

Scripting

math: window hanning (fields container)

Inputs

Outputs

Configurations

Scripting

math: window hamming (fields container)

Inputs

Outputs

Configurations

Scripting

math: window welch (fields container)

Inputs

Outputs

Configurations

Scripting

math: window blackman (fields container)

Inputs

Outputs

Configurations

Scripting

serialization: hdf5dpf generate result file

Inputs

Outputs

Configurations

Scripting

result: migrate to h5dpf

Inputs

Outputs

Configurations

Scripting

result: cgns result provider

Inputs

Outputs

Configurations

Scripting

result: von mises stresses as mechanical workflow

Inputs

Outputs

Configurations

Scripting

utility: hdf5dpf workflow provider

Inputs

Outputs

Configurations

Scripting

other: hdf5dpf mesh property provider

Inputs

Outputs

Configurations

Scripting

serialization: migrate to vtu

Inputs

Outputs

Configurations

Scripting

serialization: vtu export

Inputs

Outputs

Configurations

Scripting

result: compute total strain Y

=61.0.0", "wheel"] [project] # Check https://setuptools.pypa.io/en/stable/userguide/quickstart.html for all available sections name = "ansys-dpf-core" -version = "0.13.1.dev0" +version = "0.13.3.dev0" description = "Data Processing Framework - Python Core " readme = "README.md" requires-python = ">=3.9, <4" @@ -30,7 +30,7 @@ dependencies = [ "google-api-python-client", "grpcio >=1.63.0", "importlib-metadata >=4.0", - "numpy<2", + "numpy", "packaging", "protobuf", "psutil", diff --git a/requirements/requirements_docs.txt b/requirements/requirements_docs.txt index a11abcb5d9..10a30ac8d9 100644 --- a/requirements/requirements_docs.txt +++ b/requirements/requirements_docs.txt @@ -9,7 +9,7 @@ pytest-sphinx==0.6.3 pyvista==0.44.1 sphinx==7.1.0 sphinx-copybutton==0.5.2 -sphinx-gallery==0.17.1 +sphinx-gallery==0.18.0 sphinx-notfound-page==1.0.4 sphinx-reredirects==0.1.3 sphinx_design==0.6.1 diff --git a/requirements/requirements_install.txt b/requirements/requirements_install.txt index d0870797b8..738c1dc9a4 100644 --- a/requirements/requirements_install.txt +++ b/requirements/requirements_install.txt @@ -1,5 +1,5 @@ importlib-metadata==8.5.0 -numpy==2.1.2 -packaging==24.0 +numpy==2.1.3 +packaging==24.2 psutil==6.1.0 -tqdm==4.66.1 +tqdm==4.67.0 diff --git a/requirements/requirements_test.txt b/requirements/requirements_test.txt index 50b5f73aae..5a73593a36 100644 --- a/requirements/requirements_test.txt +++ b/requirements/requirements_test.txt @@ -1,5 +1,5 @@ ansys-platform-instancemanagement==1.1.2 -coverage==7.6.4 +coverage==7.6.5 imageio==2.36.0 imageio-ffmpeg==0.5.1 pytest==8.3.3 diff --git a/src/ansys/dpf/core/_version.py b/src/ansys/dpf/core/_version.py index 77687af6f0..37236517dd 100644 --- a/src/ansys/dpf/core/_version.py +++ b/src/ansys/dpf/core/_version.py @@ -43,6 +43,7 @@ class ServerToAnsysVersion: "8.2": "2024R2", "9.0": "2025R1", "9.1": "2025R1", + "10.0": "2025R2", } def __getitem__(self, item): diff --git a/src/ansys/dpf/core/custom_fields_container.py b/src/ansys/dpf/core/custom_fields_container.py index dd6917f00c..42e12d175d 100644 --- a/src/ansys/dpf/core/custom_fields_container.py +++ b/src/ansys/dpf/core/custom_fields_container.py @@ -294,7 +294,7 @@ class BodyFieldsContainer(FieldsContainer): >>> model = dpf.Model(examples.download_all_kinds_of_complexity_modal()) >>> fc = model.results.displacement.on_all_time_freqs.split_by_body.eval() >>> fc.get_mat_scoping().ids[3] - 45 + np.int32(45) >>> len(fc.get_fields_by_mat_id(45)) 45 >>> f_time_2 = fc.get_field_by_mat_id(45, timeid=2) diff --git a/src/ansys/dpf/core/cyclic_support.py b/src/ansys/dpf/core/cyclic_support.py index 4c638acbfe..4ef5be4cf3 100644 --- a/src/ansys/dpf/core/cyclic_support.py +++ b/src/ansys/dpf/core/cyclic_support.py @@ -32,6 +32,7 @@ from ansys.dpf.core import server as server_module from ansys.dpf.core.scoping import Scoping +from ansys.dpf.core import field, property_field class CyclicSupport: @@ -304,6 +305,74 @@ def expand_element_id(self, element_id, sectors=None, stage_num=0): ) return Scoping(scoping=expanded_ids, server=self._server) + def cs(self) -> field.Field: + """Coordinate system of the cyclic support. + + Examples + -------- + >>> from ansys.dpf.core import Model + >>> from ansys.dpf.core import examples + >>> multi_stage = examples.download_multi_stage_cyclic_result() + >>> cyc_support = Model(multi_stage).metadata.result_info.cyclic_support + >>> cs = cyc_support.cs() + + """ + + cs = self._api.cyclic_support_get_cs(self) + return field.Field(field=cs, server=self._server) + + def low_high_map(self, stage_num: int = 0) -> property_field.PropertyField: + """Retrieve a property field containing node map from low to high + base sector of the given stage. + + Parameters + ---------- + stage_num: + Number of the stage required (from 0 to num_stages). + + Returns + ------- + low_high_map: + Node correspondence between low to high in the base sector of the given stage. + + Examples + -------- + >>> from ansys.dpf.core import Model + >>> from ansys.dpf.core import examples + >>> multi_stage = examples.download_multi_stage_cyclic_result() + >>> cyc_support = Model(multi_stage).metadata.result_info.cyclic_support + >>> low_high_map = cyc_support.low_high_map(0) + + """ + low_high_map = self._api.cyclic_support_get_low_high_map(self, stage_num) + return property_field.PropertyField(property_field=low_high_map, server=self._server) + + def high_low_map(self, stage_num: int = 0) -> property_field.PropertyField: + """Retrieve a property field containing node map from high to low + base sector of the given stage. + + Parameters + ---------- + stage_num: + Number of the stage required (from 0 to num_stages). + + Returns + ------- + low_high_map: + Node correspondence between high to low in the base sector of the given stage. + + Examples + -------- + >>> from ansys.dpf.core import Model + >>> from ansys.dpf.core import examples + >>> multi_stage = examples.download_multi_stage_cyclic_result() + >>> cyc_support = Model(multi_stage).metadata.result_info.cyclic_support + >>> high_low_map = cyc_support.high_low_map(0) + + """ + high_low_map = self._api.cyclic_support_get_high_low_map(self, stage_num) + return property_field.PropertyField(property_field=high_low_map, server=self._server) + def __del__(self): try: self._deleter_func[0](self._deleter_func[1](self)) diff --git a/src/ansys/dpf/core/geometry.py b/src/ansys/dpf/core/geometry.py index 4605487e09..110d30af46 100644 --- a/src/ansys/dpf/core/geometry.py +++ b/src/ansys/dpf/core/geometry.py @@ -20,7 +20,14 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -"""Module containing the different geometry objects.""" +""" +.. _ref_geometry: + +Geometry +======== +Module containing the different geometry objects. + +""" from ansys.dpf import core as dpf diff --git a/src/ansys/dpf/core/geometry_factory.py b/src/ansys/dpf/core/geometry_factory.py index ba616c5aef..327fe2d393 100644 --- a/src/ansys/dpf/core/geometry_factory.py +++ b/src/ansys/dpf/core/geometry_factory.py @@ -20,7 +20,14 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -"""Geometry factory module containing functions to create the different geometries.""" +""" +.. _ref_geometry_factory: + +Geometry Factory +================ +Geometry factory module containing functions to create the different geometries. + +""" import numpy as np diff --git a/src/ansys/dpf/core/model.py b/src/ansys/dpf/core/model.py index e5d8d8a625..d149ce288b 100644 --- a/src/ansys/dpf/core/model.py +++ b/src/ansys/dpf/core/model.py @@ -105,7 +105,7 @@ def metadata(self): >>> meshed_region = model.metadata.meshed_region >>> meshed_region.elements.scoping.ids[2] - 759 + np.int32(759) Get the data sources of the model. diff --git a/src/ansys/dpf/core/nodes.py b/src/ansys/dpf/core/nodes.py index ca8e5cb46f..8db606d72b 100644 --- a/src/ansys/dpf/core/nodes.py +++ b/src/ansys/dpf/core/nodes.py @@ -214,7 +214,7 @@ def scoping(self): >>> meshed_region = model.metadata.meshed_region >>> nodes = model.metadata.meshed_region.nodes >>> nodes.scoping.ids[2] - 3 + np.int32(3) """ return self._mesh._get_scoping(loc=locations.nodal) diff --git a/src/ansys/dpf/core/operator_specification.py b/src/ansys/dpf/core/operator_specification.py index 52524b5ce6..42d81bec7b 100644 --- a/src/ansys/dpf/core/operator_specification.py +++ b/src/ansys/dpf/core/operator_specification.py @@ -349,7 +349,7 @@ def description(self) -> str: >>> from ansys.dpf import core as dpf >>> operator = dpf.operators.math.scale() >>> operator.specification.description - 'Scales a field by a constant factor. This factor can be a scalar ...' + 'Scales a field by a constant factor...' """ if self._internal_obj is not None: return self._api.operator_specification_get_description(self) diff --git a/src/ansys/dpf/core/operators/result/mapdl_split_on_facet_indices.py b/src/ansys/dpf/core/operators/result/mapdl_split_on_facet_indices.py index 26a84f3faa..b8171a7395 100644 --- a/src/ansys/dpf/core/operators/result/mapdl_split_on_facet_indices.py +++ b/src/ansys/dpf/core/operators/result/mapdl_split_on_facet_indices.py @@ -46,6 +46,28 @@ class mapdl_split_on_facet_indices(Operator): the previous output. volume_mesh : MeshedRegion The solid support. + degenerated_tets : Scoping, optional + Elemental scoping of tet elements. if + connected, the tets in the scoping + are treated as degenerated tets + (solid185), and the rest as non- + degenerated tets (solid285). pins 185 + and 285 are mutually exclusionary + (they cannot be connected at the same + time), and if none of them is + connected, all tets are treated as + non-degenerated (solid285). + non_degenerated_tets : Scoping, optional + Elemental scoping of tet elements. if + connected, the tets in the scoping + are treated as non-degenerated tets + (solid285), and the rest as + degenerated tets (solid185). pins 185 + and 285 are mutually exclusionary + (they cannot be connected at the same + time), and if none of them is + connected, all tets are treated as + non-degenerated (solid285). Returns ------- @@ -68,6 +90,10 @@ class mapdl_split_on_facet_indices(Operator): >>> op.inputs.facet_indices.connect(my_facet_indices) >>> my_volume_mesh = dpf.MeshedRegion() >>> op.inputs.volume_mesh.connect(my_volume_mesh) + >>> my_degenerated_tets = dpf.Scoping() + >>> op.inputs.degenerated_tets.connect(my_degenerated_tets) + >>> my_non_degenerated_tets = dpf.Scoping() + >>> op.inputs.non_degenerated_tets.connect(my_non_degenerated_tets) >>> # Instantiate operator and connect inputs in one line >>> op = dpf.operators.result.mapdl_split_on_facet_indices( @@ -75,6 +101,8 @@ class mapdl_split_on_facet_indices(Operator): ... property_field_new_elements_to_old=my_property_field_new_elements_to_old, ... facet_indices=my_facet_indices, ... volume_mesh=my_volume_mesh, + ... degenerated_tets=my_degenerated_tets, + ... non_degenerated_tets=my_non_degenerated_tets, ... ) >>> # Get output data @@ -87,6 +115,8 @@ def __init__( property_field_new_elements_to_old=None, facet_indices=None, volume_mesh=None, + degenerated_tets=None, + non_degenerated_tets=None, config=None, server=None, ): @@ -105,6 +135,10 @@ def __init__( self.inputs.facet_indices.connect(facet_indices) if volume_mesh is not None: self.inputs.volume_mesh.connect(volume_mesh) + if degenerated_tets is not None: + self.inputs.degenerated_tets.connect(degenerated_tets) + if non_degenerated_tets is not None: + self.inputs.non_degenerated_tets.connect(non_degenerated_tets) @staticmethod def _spec(): @@ -159,6 +193,36 @@ def _spec(): optional=False, document="""The solid support.""", ), + 185: PinSpecification( + name="degenerated_tets", + type_names=["scoping"], + optional=True, + document="""Elemental scoping of tet elements. if + connected, the tets in the scoping + are treated as degenerated tets + (solid185), and the rest as non- + degenerated tets (solid285). pins 185 + and 285 are mutually exclusionary + (they cannot be connected at the same + time), and if none of them is + connected, all tets are treated as + non-degenerated (solid285).""", + ), + 285: PinSpecification( + name="non_degenerated_tets", + type_names=["scoping"], + optional=True, + document="""Elemental scoping of tet elements. if + connected, the tets in the scoping + are treated as non-degenerated tets + (solid285), and the rest as + degenerated tets (solid185). pins 185 + and 285 are mutually exclusionary + (they cannot be connected at the same + time), and if none of them is + connected, all tets are treated as + non-degenerated (solid285).""", + ), }, map_output_pin_spec={ 0: PinSpecification( @@ -226,6 +290,10 @@ class InputsMapdlSplitOnFacetIndices(_Inputs): >>> op.inputs.facet_indices.connect(my_facet_indices) >>> my_volume_mesh = dpf.MeshedRegion() >>> op.inputs.volume_mesh.connect(my_volume_mesh) + >>> my_degenerated_tets = dpf.Scoping() + >>> op.inputs.degenerated_tets.connect(my_degenerated_tets) + >>> my_non_degenerated_tets = dpf.Scoping() + >>> op.inputs.non_degenerated_tets.connect(my_non_degenerated_tets) """ def __init__(self, op: Operator): @@ -246,6 +314,14 @@ def __init__(self, op: Operator): mapdl_split_on_facet_indices._spec().input_pin(3), 3, op, -1 ) self._inputs.append(self._volume_mesh) + self._degenerated_tets = Input( + mapdl_split_on_facet_indices._spec().input_pin(185), 185, op, -1 + ) + self._inputs.append(self._degenerated_tets) + self._non_degenerated_tets = Input( + mapdl_split_on_facet_indices._spec().input_pin(285), 285, op, -1 + ) + self._inputs.append(self._non_degenerated_tets) @property def fields_container(self): @@ -343,6 +419,64 @@ def volume_mesh(self): """ return self._volume_mesh + @property + def degenerated_tets(self): + """Allows to connect degenerated_tets input to the operator. + + Elemental scoping of tet elements. if + connected, the tets in the scoping + are treated as degenerated tets + (solid185), and the rest as non- + degenerated tets (solid285). pins 185 + and 285 are mutually exclusionary + (they cannot be connected at the same + time), and if none of them is + connected, all tets are treated as + non-degenerated (solid285). + + Parameters + ---------- + my_degenerated_tets : Scoping + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.mapdl_split_on_facet_indices() + >>> op.inputs.degenerated_tets.connect(my_degenerated_tets) + >>> # or + >>> op.inputs.degenerated_tets(my_degenerated_tets) + """ + return self._degenerated_tets + + @property + def non_degenerated_tets(self): + """Allows to connect non_degenerated_tets input to the operator. + + Elemental scoping of tet elements. if + connected, the tets in the scoping + are treated as non-degenerated tets + (solid285), and the rest as + degenerated tets (solid185). pins 185 + and 285 are mutually exclusionary + (they cannot be connected at the same + time), and if none of them is + connected, all tets are treated as + non-degenerated (solid285). + + Parameters + ---------- + my_non_degenerated_tets : Scoping + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.mapdl_split_on_facet_indices() + >>> op.inputs.non_degenerated_tets.connect(my_non_degenerated_tets) + >>> # or + >>> op.inputs.non_degenerated_tets(my_non_degenerated_tets) + """ + return self._non_degenerated_tets + class OutputsMapdlSplitOnFacetIndices(_Outputs): """Intermediate class used to get outputs from diff --git a/src/ansys/dpf/core/operators/serialization/deserializer.py b/src/ansys/dpf/core/operators/serialization/deserializer.py index 070a6ea53b..27ee127b9c 100644 --- a/src/ansys/dpf/core/operators/serialization/deserializer.py +++ b/src/ansys/dpf/core/operators/serialization/deserializer.py @@ -17,6 +17,8 @@ class deserializer(Operator): Parameters ---------- + stream_type : int + 0 for ascii (default), and 1 for binary file_path : str File path @@ -37,11 +39,14 @@ class deserializer(Operator): >>> op = dpf.operators.serialization.deserializer() >>> # Make input connections + >>> my_stream_type = int() + >>> op.inputs.stream_type.connect(my_stream_type) >>> my_file_path = str() >>> op.inputs.file_path.connect(my_file_path) >>> # Instantiate operator and connect inputs in one line >>> op = dpf.operators.serialization.deserializer( + ... stream_type=my_stream_type, ... file_path=my_file_path, ... ) @@ -50,10 +55,12 @@ class deserializer(Operator): >>> result_any_output2 = op.outputs.any_output2() """ - def __init__(self, file_path=None, config=None, server=None): + def __init__(self, stream_type=None, file_path=None, config=None, server=None): super().__init__(name="deserializer", config=config, server=server) self._inputs = InputsDeserializer(self) self._outputs = OutputsDeserializer(self) + if stream_type is not None: + self.inputs.stream_type.connect(stream_type) if file_path is not None: self.inputs.file_path.connect(file_path) @@ -64,6 +71,12 @@ def _spec(): spec = Specification( description=description, map_input_pin_spec={ + -1: PinSpecification( + name="stream_type", + type_names=["int32"], + optional=False, + document="""0 for ascii (default), and 1 for binary""", + ), 0: PinSpecification( name="file_path", type_names=["string"], @@ -135,15 +148,39 @@ class InputsDeserializer(_Inputs): -------- >>> from ansys.dpf import core as dpf >>> op = dpf.operators.serialization.deserializer() + >>> my_stream_type = int() + >>> op.inputs.stream_type.connect(my_stream_type) >>> my_file_path = str() >>> op.inputs.file_path.connect(my_file_path) """ def __init__(self, op: Operator): super().__init__(deserializer._spec().inputs, op) + self._stream_type = Input(deserializer._spec().input_pin(-1), -1, op, -1) + self._inputs.append(self._stream_type) self._file_path = Input(deserializer._spec().input_pin(0), 0, op, -1) self._inputs.append(self._file_path) + @property + def stream_type(self): + """Allows to connect stream_type input to the operator. + + 0 for ascii (default), and 1 for binary + + Parameters + ---------- + my_stream_type : int + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.serialization.deserializer() + >>> op.inputs.stream_type.connect(my_stream_type) + >>> # or + >>> op.inputs.stream_type(my_stream_type) + """ + return self._stream_type + @property def file_path(self): """Allows to connect file_path input to the operator. diff --git a/src/ansys/dpf/core/operators/serialization/serializer.py b/src/ansys/dpf/core/operators/serialization/serializer.py index e005a14b76..6333adb214 100644 --- a/src/ansys/dpf/core/operators/serialization/serializer.py +++ b/src/ansys/dpf/core/operators/serialization/serializer.py @@ -16,6 +16,8 @@ class serializer(Operator): Parameters ---------- + stream_type : int + 0 for ascii (default), and 1 for binary file_path : str any_input1 : Any Any input @@ -34,6 +36,8 @@ class serializer(Operator): >>> op = dpf.operators.serialization.serializer() >>> # Make input connections + >>> my_stream_type = int() + >>> op.inputs.stream_type.connect(my_stream_type) >>> my_file_path = str() >>> op.inputs.file_path.connect(my_file_path) >>> my_any_input1 = dpf.Any() @@ -43,6 +47,7 @@ class serializer(Operator): >>> # Instantiate operator and connect inputs in one line >>> op = dpf.operators.serialization.serializer( + ... stream_type=my_stream_type, ... file_path=my_file_path, ... any_input1=my_any_input1, ... any_input2=my_any_input2, @@ -53,11 +58,19 @@ class serializer(Operator): """ def __init__( - self, file_path=None, any_input1=None, any_input2=None, config=None, server=None + self, + stream_type=None, + file_path=None, + any_input1=None, + any_input2=None, + config=None, + server=None, ): super().__init__(name="serializer", config=config, server=server) self._inputs = InputsSerializer(self) self._outputs = OutputsSerializer(self) + if stream_type is not None: + self.inputs.stream_type.connect(stream_type) if file_path is not None: self.inputs.file_path.connect(file_path) if any_input1 is not None: @@ -71,6 +84,12 @@ def _spec(): spec = Specification( description=description, map_input_pin_spec={ + -1: PinSpecification( + name="stream_type", + type_names=["int32"], + optional=False, + document="""0 for ascii (default), and 1 for binary""", + ), 0: PinSpecification( name="file_path", type_names=["string"], @@ -146,6 +165,8 @@ class InputsSerializer(_Inputs): -------- >>> from ansys.dpf import core as dpf >>> op = dpf.operators.serialization.serializer() + >>> my_stream_type = int() + >>> op.inputs.stream_type.connect(my_stream_type) >>> my_file_path = str() >>> op.inputs.file_path.connect(my_file_path) >>> my_any_input1 = dpf.Any() @@ -156,6 +177,8 @@ class InputsSerializer(_Inputs): def __init__(self, op: Operator): super().__init__(serializer._spec().inputs, op) + self._stream_type = Input(serializer._spec().input_pin(-1), -1, op, -1) + self._inputs.append(self._stream_type) self._file_path = Input(serializer._spec().input_pin(0), 0, op, -1) self._inputs.append(self._file_path) self._any_input1 = Input(serializer._spec().input_pin(1), 1, op, 0) @@ -163,6 +186,26 @@ def __init__(self, op: Operator): self._any_input2 = Input(serializer._spec().input_pin(2), 2, op, 1) self._inputs.append(self._any_input2) + @property + def stream_type(self): + """Allows to connect stream_type input to the operator. + + 0 for ascii (default), and 1 for binary + + Parameters + ---------- + my_stream_type : int + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.serialization.serializer() + >>> op.inputs.stream_type.connect(my_stream_type) + >>> # or + >>> op.inputs.stream_type(my_stream_type) + """ + return self._stream_type + @property def file_path(self): """Allows to connect file_path input to the operator. diff --git a/src/ansys/dpf/gate/cyclic_support_grpcapi.py b/src/ansys/dpf/gate/cyclic_support_grpcapi.py index cc89e4d031..45c3c4fb9e 100644 --- a/src/ansys/dpf/gate/cyclic_support_grpcapi.py +++ b/src/ansys/dpf/gate/cyclic_support_grpcapi.py @@ -75,6 +75,16 @@ def cyclic_support_get_base_elements_scoping(support, i_stage): return getattr(CyclicSupportGRPCAPI.list(support), "base_elements_scoping_"+str(i_stage)).get_ownership() + @staticmethod + def cyclic_support_get_low_high_map(support, i_stage): + return getattr(CyclicSupportGRPCAPI.list(support), + "low_high_map_"+str(i_stage)).get_ownership() + + @staticmethod + def cyclic_support_get_high_low_map(support, i_stage): + return getattr(CyclicSupportGRPCAPI.list(support), + "high_low_map_"+str(i_stage)).get_ownership() + @staticmethod def get_expanded_ids(support, request): return _get_stub(support._server).GetExpandedIds(request).expanded_ids @@ -100,3 +110,19 @@ def cyclic_support_get_expanded_element_ids(support, baseElementId, i_stage, sec request = CyclicSupportGRPCAPI.init_get_expanded_ids(support, i_stage, sectorsScoping) request.element_id = baseElementId return CyclicSupportGRPCAPI.get_expanded_ids(support, request) + + @staticmethod + def get_cs(support, request): + return _get_stub(support._server).GetCS(request).cs + + @staticmethod + def init_get_cs(support): + from ansys.grpc.dpf import cyclic_support_pb2 + request = cyclic_support_pb2.GetCSRequest() + request.support.CopyFrom(support._internal_obj) + return request + + @staticmethod + def cyclic_support_get_cs(support): + request = CyclicSupportGRPCAPI.init_get_cs(support) + return CyclicSupportGRPCAPI.get_cs(support, request) \ No newline at end of file diff --git a/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll b/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll index 6cae395fb6..ec26ef4042 100644 Binary files a/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll and b/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll differ diff --git a/src/ansys/dpf/gatebin/DPFClientAPI.dll b/src/ansys/dpf/gatebin/DPFClientAPI.dll index 4a0909b3ca..f9c22afd52 100644 Binary files a/src/ansys/dpf/gatebin/DPFClientAPI.dll and b/src/ansys/dpf/gatebin/DPFClientAPI.dll differ diff --git a/src/ansys/dpf/gatebin/_version.py b/src/ansys/dpf/gatebin/_version.py index ed6e1ca066..600d7f854e 100644 --- a/src/ansys/dpf/gatebin/_version.py +++ b/src/ansys/dpf/gatebin/_version.py @@ -1,6 +1,6 @@ """Version for ansys-dpf-gatebin""" # major, minor, patch -version_info = 0, 6, "1.dev0" +version_info = 0, 7, "0.dev0" # Nice string for the version __version__ = ".".join(map(str, version_info)) \ No newline at end of file diff --git a/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so b/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so index 778482708b..5f49266b13 100644 Binary files a/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so and b/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so differ diff --git a/src/ansys/dpf/gatebin/libDPFClientAPI.so b/src/ansys/dpf/gatebin/libDPFClientAPI.so index 79f70b3550..0db71d5af5 100644 Binary files a/src/ansys/dpf/gatebin/libDPFClientAPI.so and b/src/ansys/dpf/gatebin/libDPFClientAPI.so differ diff --git a/src/ansys/grpc/dpf/_version.py b/src/ansys/grpc/dpf/_version.py index 10264ef4b0..7a4bf6e297 100644 --- a/src/ansys/grpc/dpf/_version.py +++ b/src/ansys/grpc/dpf/_version.py @@ -1,2 +1,2 @@ """ansys-grpc-dpf python protocol version""" -__version__ = '0.10.0dev0' # major.minor.patch +__version__ = '0.11.0dev0' # major.minor.patch diff --git a/tests/test_cyclic_support.py b/tests/test_cyclic_support.py index 0d26dad606..bd19aae8f5 100644 --- a/tests/test_cyclic_support.py +++ b/tests/test_cyclic_support.py @@ -24,6 +24,7 @@ import weakref import numpy as np +import conftest import pytest from ansys import dpf @@ -171,6 +172,18 @@ def test_cyc_support_from_to_workflow(cyclic_lin_rst, server_type): assert len(exp.base_nodes_scoping().ids) == 32 +@pytest.mark.skipif( + not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_8_2, reason="Requires DPF 8.2 or above." +) +def test_cyc_support_coordinate_system(cyclic_lin_rst): + data_sources = dpf.DataSources(cyclic_lin_rst) + model = dpf.Model(data_sources) + result_info = model.metadata.result_info + cyc_support = result_info.cyclic_support + exp = cyc_support.cs().scoping + assert np.allclose(exp.ids, [12]) + + def test_cyc_support_multistage(cyclic_multistage): model = dpf.Model(cyclic_multistage) cyc_support = model.metadata.result_info.cyclic_support @@ -185,6 +198,24 @@ def test_cyc_support_multistage(cyclic_multistage): assert np.allclose(cyc_support.sectors_set_for_expansion(stage_num=1).ids, list(range(0, 12))) +@pytest.mark.skipif( + not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_8_2, reason="Requires DPF 8.2 or above." +) +def test_cyc_support_multistage_low_high_map(cyclic_multistage): + model = dpf.Model(cyclic_multistage) + cyc_support = model.metadata.result_info.cyclic_support + + high_low_map = cyc_support.high_low_map(0) + assert np.allclose(high_low_map.get_entity_data_by_id(1446), 1447) + assert np.allclose(high_low_map.get_entity_data_by_id(2946), 2948) + assert np.allclose(high_low_map.get_entity_data_by_id(1452), 1466) + + low_high_map = cyc_support.low_high_map(1) + assert np.allclose(low_high_map.get_entity_data_by_id(995), 939) + assert np.allclose(low_high_map.get_entity_data_by_id(53), 54) + assert np.allclose(low_high_map.get_entity_data_by_id(70), 56) + + def test_delete_cyc_support(cyclic_lin_rst, server_type_legacy_grpc): data_sources = dpf.DataSources(cyclic_lin_rst, server=server_type_legacy_grpc) model = dpf.Model(data_sources, server=server_type_legacy_grpc) diff --git a/tests/test_remote_workflow.py b/tests/test_remote_workflow.py index f1e8b3a4c0..c693d577d9 100644 --- a/tests/test_remote_workflow.py +++ b/tests/test_remote_workflow.py @@ -630,6 +630,7 @@ def test_multi_process_transparent_api_create_on_local_remote_ith_address_workfl assert np.allclose(max_field.data, [10.03242272]) +@pytest.mark.xfail(reason="Unstable test") @pytest.mark.skipif( not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_4_0, reason="Requires server version higher than 4.0",