From 85c1785efb20dc1cd459a908d82bc9a82653e854 Mon Sep 17 00:00:00 2001
From: PProfizi <100710998+PProfizi@users.noreply.github.com>
Date: Fri, 14 Feb 2025 00:16:38 +0000
Subject: [PATCH] update generated code
---
doc/source/_static/dpf_operators.html | 4 +-
.../result/cyclic_equivalent_mass.py | 10 +-
.../core/operators/result/equivalent_mass.py | 195 +++++++++++++++++-
src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll | Bin 12852736 -> 12852736 bytes
src/ansys/dpf/gatebin/DPFClientAPI.dll | Bin 900096 -> 900096 bytes
.../dpf/gatebin/libAns.Dpf.GrpcClient.so | Bin 32663656 -> 32667752 bytes
src/ansys/dpf/gatebin/libDPFClientAPI.so | Bin 2244752 -> 2244752 bytes
7 files changed, 197 insertions(+), 12 deletions(-)
diff --git a/doc/source/_static/dpf_operators.html b/doc/source/_static/dpf_operators.html
index a5ab8327b56..ceb59a9279f 100644
--- a/doc/source/_static/dpf_operators.html
+++ b/doc/source/_static/dpf_operators.html
@@ -2070,7 +2070,7 @@
Configurating operators
0 0 0
0 0 0
0 0 0
-">Example of workflows and their scripts
math: imaginary part
Inputs
Outputs
Configurations
Scripting
math: amplitude (fields container)
Inputs
Outputs
Configurations
Scripting
metadata: mesh support provider
Inputs
Outputs
Configurations
Scripting
result: beam axial stress (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: unit convert (fields container)
Inputs
Outputs
Configurations
Scripting
result: element orientations X
Inputs
Outputs
Configurations
Scripting
math: norm (fields container)
Inputs
Outputs
Configurations
Scripting
mapping: prepare mapping workflow
Inputs
Outputs
Configurations
Scripting
math: sqrt (fields container)
Inputs
Outputs
Configurations
Scripting
math: conjugate
Inputs
Outputs
Configurations
Scripting
utility: html doc
Inputs
Outputs
Configurations
Scripting
math: real part
Inputs
Outputs
Configurations
Scripting
result: current density
Inputs
Outputs
Configurations
Scripting
logic: same property fields container?
Inputs
Outputs
Configurations
Scripting
math: multiply (complex fields)
Inputs
Outputs
Configurations
Scripting
utility: merge result infos
Inputs
Outputs
Configurations
Scripting
result: cyclic kinetic energy
Inputs
Outputs
Configurations
Scripting
result: global total mass (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: unit convert
Inputs
Outputs
Configurations
Scripting
math: norm (field)
Inputs
Outputs
Configurations
Scripting
utility: make label space
Inputs
Outputs
Configurations
Scripting
math: sqrt (field)
Inputs
Outputs
Configurations
Scripting
result: y plus (y+)
Inputs
Outputs
Configurations
Scripting
math: accumulate min over label
Inputs
Outputs
Configurations
Scripting
math: +
Inputs
Outputs
Configurations
Scripting
server: grpc shutdown server
Inputs
Outputs
Configurations
Scripting
result: magnetic scalar potential
Inputs
Outputs
Configurations
Scripting
min_max: min max over time
Inputs
Outputs
Configurations
Scripting
math: time freq interpolation
Inputs
Outputs
Configurations
Scripting
math: + (fields container)
Inputs
Outputs
Configurations
Scripting
math: sin (fields container)
Inputs
Outputs
Configurations
Scripting
math: + constant (field)
Inputs
Outputs
Configurations
Scripting
math: / (component-wise field)
Inputs
Outputs
Configurations
Scripting
math: + constant (fields container)
Inputs
Outputs
Configurations
Scripting
math: cross product (fields container)
Inputs
Outputs
Configurations
Scripting
result: cyclic strain energy
Inputs
Outputs
Configurations
Scripting
invariant: scalar invariants (fields container)
Inputs
Outputs
Configurations
Scripting
mapping: find reduced coordinates
Inputs
Outputs
Configurations
Scripting
scoping: rescope property field
Inputs
Outputs
Configurations
Scripting
result: plastic strain principal 1
Inputs
Outputs
Configurations
Scripting
math: -
Inputs
Outputs
Configurations
Scripting
math: total sum
Inputs
Outputs
Configurations
Scripting
math: - (fields container)
Inputs
Outputs
Configurations
Scripting
scoping: intersect scopings
Inputs
Outputs
Configurations
Scripting
math: ^ (field)
Inputs
Outputs
Configurations
Scripting
scoping: elements in mesh
Inputs
Outputs
Configurations
Scripting
math: scale (field)
Inputs
Outputs
Configurations
Scripting
result: enthalpy
Inputs
Outputs
Configurations
Scripting
math: ^ (fields container)
Inputs
Outputs
Configurations
Scripting
result: global eroded internal energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: scale fields container
Inputs
Outputs
Configurations
Scripting
math: sweeping phase
Inputs
Outputs
Configurations
Scripting
math: centroid
Inputs
Outputs
Configurations
Scripting
math: sweeping phase (fields container)
Inputs
Outputs
Configurations
Scripting
filter: signed high pass (field)
Inputs
Outputs
Configurations
Scripting
math: centroid (fields container)
Inputs
Outputs
Configurations
Scripting
math: ^2 (field)
Inputs
Outputs
Configurations
Scripting
utility: remove unnecessary labels
Inputs
Outputs
Configurations
Scripting
result: velocity Z
Inputs
Outputs
Configurations
Scripting
result: reaction force Z
Inputs
Outputs
Configurations
Scripting
math: sin (field)
Inputs
Outputs
Configurations
Scripting
math: cos (field)
Inputs
Outputs
Configurations
Scripting
math: cos (fields container)
Inputs
Outputs
Configurations
Scripting
logic: ascending sort
Inputs
Outputs
Configurations
Scripting
result: initial coordinates (LSDyna)
Inputs
Outputs
Configurations
Scripting
utility: convert to fields container
Inputs
Outputs
Configurations
Scripting
math: linear combination
Inputs
Outputs
Configurations
Scripting
math: ^2 (fields container)
Inputs
Outputs
Configurations
Scripting
result: mean static pressure
Inputs
Outputs
Configurations
Scripting
math: exp (field)
Inputs
Outputs
Configurations
Scripting
math: exp (fields container)
Inputs
Outputs
Configurations
Scripting
math: * (component-wise field)
Inputs
Outputs
Configurations
Scripting
result: stress max_shear
Inputs
Outputs
Configurations
Scripting
result: euler nodes
Inputs
Outputs
Configurations
Scripting
math: * (component-wise field) (fields container)
Inputs
Outputs
Configurations
Scripting
logic: same meshes container?
Inputs
Outputs
Configurations
Scripting
result: beam TR shear stress (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: num surface status changes
Inputs
Outputs
Configurations
Scripting
math: ln (field)
Inputs
Outputs
Configurations
Scripting
mesh: mesh to pyvista
Inputs
Outputs
Configurations
Scripting
math: ln (fields container)
Inputs
Outputs
Configurations
Scripting
invariant: scalar invariants (field)
Inputs
Outputs
Configurations
Scripting
math: cross product
Inputs
Outputs
Configurations
Scripting
filter: high pass (timefreq)
Inputs
Outputs
Configurations
Scripting
math: / (component-wise fields container)
Inputs
Outputs
Configurations
Scripting
result: global sliding interface energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: kronecker product
Inputs
Outputs
Configurations
Scripting
math: modulus (fields container)
Inputs
Outputs
Configurations
Scripting
result: joint relative angular velocity
Inputs
Outputs
Configurations
Scripting
math: dot (complex fields)
Inputs
Outputs
Configurations
Scripting
result: gasket stress XZ
Inputs
Outputs
Configurations
Scripting
math: / (complex fields)
Inputs
Outputs
Configurations
Scripting
utility: unitary field
Inputs
Outputs
Configurations
Scripting
utility: server path
Inputs
Outputs
Configurations
Scripting
result: beam axial force (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: derivate (complex fields)
Inputs
Outputs
Configurations
Scripting
math: polar to complex fields
Inputs
Outputs
Configurations
Scripting
utility: merge data tree
Inputs
Outputs
Configurations
Scripting
math: dot (fields container)
Inputs
Outputs
Configurations
Scripting
result: nodal moment
Inputs
Outputs
Configurations
Scripting
math: phase (field)
Inputs
Outputs
Configurations
Scripting
math: phase (fields container)
Inputs
Outputs
Configurations
Scripting
math: modulus (field)
Inputs
Outputs
Configurations
Scripting
result: elemental mass
Inputs
Outputs
Configurations
Scripting
result: heat flux
Inputs
Outputs
Configurations
Scripting
math: total sum (fields container)
Inputs
Outputs
Configurations
Scripting
result: co-energy
Inputs
Outputs
Configurations
Scripting
math: dot
Inputs
Outputs
Configurations
Scripting
math: outer product
Inputs
Outputs
Configurations
Scripting
math: overall dot
Inputs
Outputs
Configurations
Scripting
math: relative error
Inputs
Outputs
Configurations
Scripting
result: velocity Y
Inputs
Outputs
Configurations
Scripting
result: reaction force Y
Inputs
Outputs
Configurations
Scripting
result: global velocity (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: superficial velocity
Inputs
Outputs
Configurations
Scripting
math: absolute value by component (field)
Inputs
Outputs
Configurations
Scripting
result: incremental energy
Inputs
Outputs
Configurations
Scripting
result: thermal strain
Inputs
Outputs
Configurations
Scripting
result: stiffness matrix energy
Inputs
Outputs
Configurations
Scripting
math: absolute value by component (fields container)
Inputs
Outputs
Configurations
Scripting
metadata: element types provider
Inputs
Outputs
Configurations
Scripting
result: total temperature
Inputs
Outputs
Configurations
Scripting
result: cyclic equivalent mass
Inputs
Outputs
Configurations
Scripting
result: acceleration Y
Inputs
Outputs
Configurations
Scripting
utility: delegate to operator
Inputs
Outputs
Configurations
Scripting
logic: component selector (fields container)
Inputs
Outputs
Configurations
Scripting
logic: component selector (field)
Inputs
Outputs
Configurations
Scripting
scoping: on property
Inputs
Outputs
Configurations
Scripting
result: stress intensity
Inputs
Outputs
Configurations
Scripting
logic: same property fields?
Inputs
Outputs
Configurations
Scripting
logic: elementary data selector (fields container)
Inputs
Outputs
Configurations
Scripting
utility: convert to scoping
Inputs
Outputs
Configurations
Scripting
logic: elementary data selector (field)
Inputs
Outputs
Configurations
Scripting
utility: change location
Inputs
Outputs
Configurations
Scripting
mesh: node coordinates
Inputs
Outputs
Configurations
Scripting
mesh: stl export
Inputs
Outputs
Configurations
Scripting
utility: bind support
Inputs
Outputs
Configurations
Scripting
utility: convert to meshes container
Inputs
Outputs
Configurations
Scripting
result: beam torsional moment (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: equivalent stress parameter
Inputs
Outputs
Configurations
Scripting
utility: convert to field
Inputs
Outputs
Configurations
Scripting
result: beam axial total strain (LSDyna)
Inputs
Outputs
Configurations
Scripting
utility: set property
Inputs
Outputs
Configurations
Scripting
result: electric flux density Y
Inputs
Outputs
Configurations
Scripting
utility: forward field
Inputs
Outputs
Configurations
Scripting
utility: forward fields container
Inputs
Outputs
Configurations
Scripting
result: electric flux density
Inputs
Outputs
Configurations
Scripting
result: plastic strain principal 2
Inputs
Outputs
Configurations
Scripting
utility: forward meshes container
Inputs
Outputs
Configurations
Scripting
geo: integrate over elements
Inputs
Outputs
Configurations
Scripting
result: compute total strain X
Example of workflows and their scripts
math: imaginary part
Inputs
Outputs
Configurations
Scripting
math: amplitude (fields container)
Inputs
Outputs
Configurations
Scripting
metadata: mesh support provider
Inputs
Outputs
Configurations
Scripting
result: beam axial stress (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: unit convert (fields container)
Inputs
Outputs
Configurations
Scripting
result: element orientations X
Inputs
Outputs
Configurations
Scripting
math: norm (fields container)
Inputs
Outputs
Configurations
Scripting
mapping: prepare mapping workflow
Inputs
Outputs
Configurations
Scripting
math: sqrt (fields container)
Inputs
Outputs
Configurations
Scripting
math: conjugate
Inputs
Outputs
Configurations
Scripting
utility: html doc
Inputs
Outputs
Configurations
Scripting
math: real part
Inputs
Outputs
Configurations
Scripting
result: current density
Inputs
Outputs
Configurations
Scripting
logic: same property fields container?
Inputs
Outputs
Configurations
Scripting
math: multiply (complex fields)
Inputs
Outputs
Configurations
Scripting
utility: merge result infos
Inputs
Outputs
Configurations
Scripting
result: cyclic kinetic energy
Inputs
Outputs
Configurations
Scripting
result: global total mass (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: unit convert
Inputs
Outputs
Configurations
Scripting
math: norm (field)
Inputs
Outputs
Configurations
Scripting
utility: make label space
Inputs
Outputs
Configurations
Scripting
math: sqrt (field)
Inputs
Outputs
Configurations
Scripting
result: y plus (y+)
Inputs
Outputs
Configurations
Scripting
math: accumulate min over label
Inputs
Outputs
Configurations
Scripting
math: +
Inputs
Outputs
Configurations
Scripting
server: grpc shutdown server
Inputs
Outputs
Configurations
Scripting
result: magnetic scalar potential
Inputs
Outputs
Configurations
Scripting
min_max: min max over time
Inputs
Outputs
Configurations
Scripting
math: time freq interpolation
Inputs
Outputs
Configurations
Scripting
math: + (fields container)
Inputs
Outputs
Configurations
Scripting
math: sin (fields container)
Inputs
Outputs
Configurations
Scripting
math: + constant (field)
Inputs
Outputs
Configurations
Scripting
math: / (component-wise field)
Inputs
Outputs
Configurations
Scripting
math: + constant (fields container)
Inputs
Outputs
Configurations
Scripting
math: cross product (fields container)
Inputs
Outputs
Configurations
Scripting
result: cyclic strain energy
Inputs
Outputs
Configurations
Scripting
invariant: scalar invariants (fields container)
Inputs
Outputs
Configurations
Scripting
mapping: find reduced coordinates
Inputs
Outputs
Configurations
Scripting
scoping: rescope property field
Inputs
Outputs
Configurations
Scripting
result: plastic strain principal 1
Inputs
Outputs
Configurations
Scripting
math: -
Inputs
Outputs
Configurations
Scripting
math: total sum
Inputs
Outputs
Configurations
Scripting
math: - (fields container)
Inputs
Outputs
Configurations
Scripting
scoping: intersect scopings
Inputs
Outputs
Configurations
Scripting
math: ^ (field)
Inputs
Outputs
Configurations
Scripting
scoping: elements in mesh
Inputs
Outputs
Configurations
Scripting
math: scale (field)
Inputs
Outputs
Configurations
Scripting
result: enthalpy
Inputs
Outputs
Configurations
Scripting
math: ^ (fields container)
Inputs
Outputs
Configurations
Scripting
result: global eroded internal energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: scale fields container
Inputs
Outputs
Configurations
Scripting
math: sweeping phase
Inputs
Outputs
Configurations
Scripting
math: centroid
Inputs
Outputs
Configurations
Scripting
math: sweeping phase (fields container)
Inputs
Outputs
Configurations
Scripting
filter: signed high pass (field)
Inputs
Outputs
Configurations
Scripting
math: centroid (fields container)
Inputs
Outputs
Configurations
Scripting
math: ^2 (field)
Inputs
Outputs
Configurations
Scripting
utility: remove unnecessary labels
Inputs
Outputs
Configurations
Scripting
result: velocity Z
Inputs
Outputs
Configurations
Scripting
result: reaction force Z
Inputs
Outputs
Configurations
Scripting
math: sin (field)
Inputs
Outputs
Configurations
Scripting
math: cos (field)
Inputs
Outputs
Configurations
Scripting
math: cos (fields container)
Inputs
Outputs
Configurations
Scripting
logic: ascending sort
Inputs
Outputs
Configurations
Scripting
result: initial coordinates (LSDyna)
Inputs
Outputs
Configurations
Scripting
utility: convert to fields container
Inputs
Outputs
Configurations
Scripting
math: linear combination
Inputs
Outputs
Configurations
Scripting
math: ^2 (fields container)
Inputs
Outputs
Configurations
Scripting
result: mean static pressure
Inputs
Outputs
Configurations
Scripting
math: exp (field)
Inputs
Outputs
Configurations
Scripting
math: exp (fields container)
Inputs
Outputs
Configurations
Scripting
math: * (component-wise field)
Inputs
Outputs
Configurations
Scripting
result: stress max_shear
Inputs
Outputs
Configurations
Scripting
result: euler nodes
Inputs
Outputs
Configurations
Scripting
math: * (component-wise field) (fields container)
Inputs
Outputs
Configurations
Scripting
logic: same meshes container?
Inputs
Outputs
Configurations
Scripting
result: beam TR shear stress (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: num surface status changes
Inputs
Outputs
Configurations
Scripting
math: ln (field)
Inputs
Outputs
Configurations
Scripting
mesh: mesh to pyvista
Inputs
Outputs
Configurations
Scripting
math: ln (fields container)
Inputs
Outputs
Configurations
Scripting
invariant: scalar invariants (field)
Inputs
Outputs
Configurations
Scripting
math: cross product
Inputs
Outputs
Configurations
Scripting
filter: high pass (timefreq)
Inputs
Outputs
Configurations
Scripting
math: / (component-wise fields container)
Inputs
Outputs
Configurations
Scripting
result: global sliding interface energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: kronecker product
Inputs
Outputs
Configurations
Scripting
math: modulus (fields container)
Inputs
Outputs
Configurations
Scripting
result: joint relative angular velocity
Inputs
Outputs
Configurations
Scripting
math: dot (complex fields)
Inputs
Outputs
Configurations
Scripting
result: gasket stress XZ
Inputs
Outputs
Configurations
Scripting
math: / (complex fields)
Inputs
Outputs
Configurations
Scripting
utility: unitary field
Inputs
Outputs
Configurations
Scripting
utility: server path
Inputs
Outputs
Configurations
Scripting
result: beam axial force (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: derivate (complex fields)
Inputs
Outputs
Configurations
Scripting
math: polar to complex fields
Inputs
Outputs
Configurations
Scripting
utility: merge data tree
Inputs
Outputs
Configurations
Scripting
math: dot (fields container)
Inputs
Outputs
Configurations
Scripting
result: nodal moment
Inputs
Outputs
Configurations
Scripting
math: phase (field)
Inputs
Outputs
Configurations
Scripting
math: phase (fields container)
Inputs
Outputs
Configurations
Scripting
math: modulus (field)
Inputs
Outputs
Configurations
Scripting
result: elemental mass
Inputs
Outputs
Configurations
Scripting
result: heat flux
Inputs
Outputs
Configurations
Scripting
math: total sum (fields container)
Inputs
Outputs
Configurations
Scripting
result: co-energy
Inputs
Outputs
Configurations
Scripting
math: dot
Inputs
Outputs
Configurations
Scripting
math: outer product
Inputs
Outputs
Configurations
Scripting
math: overall dot
Inputs
Outputs
Configurations
Scripting
math: relative error
Inputs
Outputs
Configurations
Scripting
result: velocity Y
Inputs
Outputs
Configurations
Scripting
result: reaction force Y
Inputs
Outputs
Configurations
Scripting
result: global velocity (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: superficial velocity
Inputs
Outputs
Configurations
Scripting
math: absolute value by component (field)
Inputs
Outputs
Configurations
Scripting
result: incremental energy
Inputs
Outputs
Configurations
Scripting
result: thermal strain
Inputs
Outputs
Configurations
Scripting
result: stiffness matrix energy
Inputs
Outputs
Configurations
Scripting
math: absolute value by component (fields container)
Inputs
Outputs
Configurations
Scripting
metadata: element types provider
Inputs
Outputs
Configurations
Scripting
result: total temperature
Inputs
Outputs
Configurations
Scripting
result: cyclic equivalent mass
Inputs
Outputs
Configurations
Scripting
result: acceleration Y
Inputs
Outputs
Configurations
Scripting
utility: delegate to operator
Inputs
Outputs
Configurations
Scripting
logic: component selector (fields container)
Inputs
Outputs
Configurations
Scripting
logic: component selector (field)
Inputs
Outputs
Configurations
Scripting
scoping: on property
Inputs
Outputs
Configurations
Scripting
result: stress intensity
Inputs
Outputs
Configurations
Scripting
logic: same property fields?
Inputs
Outputs
Configurations
Scripting
logic: elementary data selector (fields container)
Inputs
Outputs
Configurations
Scripting
utility: convert to scoping
Inputs
Outputs
Configurations
Scripting
logic: elementary data selector (field)
Inputs
Outputs
Configurations
Scripting
utility: change location
Inputs
Outputs
Configurations
Scripting
mesh: node coordinates
Inputs
Outputs
Configurations
Scripting
mesh: stl export
Inputs
Outputs
Configurations
Scripting
utility: bind support
Inputs
Outputs
Configurations
Scripting
utility: convert to meshes container
Inputs
Outputs
Configurations
Scripting
result: beam torsional moment (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: equivalent stress parameter
Inputs
Outputs
Configurations
Scripting
utility: convert to field
Inputs
Outputs
Configurations
Scripting
result: beam axial total strain (LSDyna)
Inputs
Outputs
Configurations
Scripting
utility: set property
Inputs
Outputs
Configurations
Scripting
result: electric flux density Y
Inputs
Outputs
Configurations
Scripting
utility: forward field
Inputs
Outputs
Configurations
Scripting
utility: forward fields container
Inputs
Outputs
Configurations
Scripting
result: electric flux density
Inputs
Outputs
Configurations
Scripting
result: plastic strain principal 2
Inputs
Outputs
Configurations
Scripting
utility: forward meshes container
Inputs
Outputs
Configurations
Scripting
geo: integrate over elements
Inputs
Outputs
Configurations
Scripting
result: compute total strain X
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 ZZ normal component (22 component).">Inputs
Outputs
Configurations
Scripting
result: structural temperature
Inputs
Outputs
Configurations
Scripting
metadata: result info provider
Inputs
Outputs
Configurations
Scripting
mesh: skin (tri mesh)
Inputs
Outputs
Configurations
Scripting
result: stress ratio
Inputs
Outputs
Configurations
Scripting
filter: band pass (timescoping)
Inputs
Outputs
Configurations
Scripting
compression: sketch matrix
Inputs
Outputs
Configurations
Scripting
result: accu eqv plastic strain
Inputs
Outputs
Configurations
Scripting
result: plastic state variable
Inputs
Outputs
Configurations
Scripting
result: accu eqv creep strain
Inputs
Outputs
Configurations
Scripting
result: plastic strain energy density
Inputs
Outputs
Configurations
Scripting
result: material property of element
Inputs
Outputs
Configurations
Scripting
result: creep strain energy density
Inputs
Outputs
Configurations
Scripting
result: erp radiation efficiency
Inputs
Outputs
Configurations
Scripting
result: elastic strain energy density
Inputs
Outputs
Configurations
Scripting
serialization: field to csv
Inputs
Outputs
Configurations
Scripting
utility: merge generic data container
Inputs
Outputs
Configurations
Scripting
result: global joint internal energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: cyclic expanded element nodal forces
Inputs
Outputs
Configurations
Scripting
serialization: vtk to fields
Inputs
Outputs
Configurations
Scripting
utility: merge any objects
Inputs
Outputs
Configurations
Scripting
result: elemental volume
Inputs
Outputs
Configurations
Scripting
result: artificial hourglass energy
Inputs
Outputs
Configurations
Scripting
result: kinetic energy
Inputs
Outputs
Configurations
Scripting
result: thermal dissipation energy
Inputs
Outputs
Configurations
Scripting
result: total mass
Inputs
Outputs
Configurations
Scripting
result: rms static pressure
Inputs
Outputs
Configurations
Scripting
result: swelling strains
Inputs
Outputs
Configurations
Scripting
result: temperature
Inputs
Outputs
Configurations
Scripting
result: compute stress
Inputs
Outputs
Configurations
Scripting
result: raw displacement
Inputs
Outputs
Configurations
Scripting
result: raw reaction force
Inputs
Outputs
Configurations
Scripting
result: turbulent kinetic energy (k)
Inputs
Outputs
Configurations
Scripting
result: electric potential
Inputs
Outputs
Configurations
Scripting
result: thickness
Inputs
Outputs
Configurations
Scripting
result: mapdl run
Inputs
Outputs
Configurations
Scripting
result: equivalent mass
Inputs
Outputs
Configurations
Scripting
result: custom result
Inputs
Outputs
Configurations
Scripting
result: elemental heat generation
Inputs
Outputs
Configurations
Scripting
result: magnetic vector potential
Inputs
Outputs
Configurations
Scripting
result: joint force reaction
Inputs
Outputs
Configurations
Scripting
result: joint moment reaction
Inputs
Outputs
Configurations
Scripting
result: beam T shear force (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: joint relative displacement
Inputs
Outputs
Configurations
Scripting
result: joint relative rotation
Inputs
Outputs
Configurations
Scripting
result: joint relative velocity
Inputs
Outputs
Configurations
Scripting
result: joint relative acceleration
Inputs
Outputs
Configurations
Scripting
result: joint relative angular acceleration
Inputs
Outputs
Configurations
Scripting
result: global internal energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
serialization: txt to data tree
Inputs
Outputs
Configurations
Scripting
result: thermal strains eqv
Inputs
Outputs
Configurations
Scripting
result: elemental non summable miscellaneous data
Inputs
Outputs
Configurations
Scripting
result: state variable
Inputs
Outputs
Configurations
Scripting
utility: merge supports
Inputs
Outputs
Configurations
Scripting
result: global kinetic energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: matrix inverse
Inputs
Outputs
Configurations
Scripting
result: global time step (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global rigid body stopper energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
geo: cartesian to spherical coordinates
Inputs
Outputs
Configurations
Scripting
result: global spring and damper energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: beam T bending moment (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global hourglass energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global system damping energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global eroded kinetic energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global energy ratio (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global added mass (LSDyna)
Inputs
Outputs
Configurations
Scripting
mapping: on reduced coordinates
Inputs
Outputs
Configurations
Scripting
invariant: principal invariants (fields container)
Inputs
Outputs
Configurations
Scripting
result: global added mass (percentage) (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global center of mass (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: beam S shear force (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: beam S bending moment (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: beam RS shear stress (LSDyna)
Inputs
Outputs
Configurations
Scripting
utility: merge fields into field matrix
Inputs
Outputs
Configurations
Scripting
result: beam axial plastic strain (LSDyna)
Inputs
Outputs
Configurations
Scripting
invariant: von mises eqv (field)
Inputs
Outputs
Configurations
Scripting
invariant: segalman von mises eqv (field)
Inputs
Outputs
Configurations
Scripting
result: part eroded internal energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: part kinetic energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
scoping: on mesh property
Inputs
Outputs
Configurations
Scripting
scoping: from mesh
Inputs
Outputs
Configurations
Scripting
result: part added mass (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: part hourglass energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: part rigid body velocity (LSDyna)
Inputs
Outputs
Configurations
Scripting
min_max: time of max
Inputs
Outputs
Configurations
Scripting
scoping: nodes in mesh
Inputs
Outputs
Configurations
Scripting
metadata: cyclic support provider
Inputs
Outputs
Configurations
Scripting
result: density
Inputs
Outputs
Configurations
Scripting
result: spectrum data
Inputs
Outputs
Configurations
Scripting
averaging: elemental to elemental nodal (fields container)
Inputs
Outputs
Configurations
Scripting
result: total pressure
Inputs
Outputs
Configurations
Scripting
result: mean velocity
Inputs
Outputs
Configurations
Scripting
result: Lighthill tensor divergence
Inputs
Outputs
Configurations
Scripting
result: mass flow rate
Inputs
Outputs
Configurations
Scripting
result: mach number
Inputs
Outputs
Configurations
Scripting
result: rms temperature
Inputs
Outputs
Configurations
Scripting
scoping: scoping get attribute
Inputs
Outputs
Configurations
Scripting
result: read cms_rbd file
Inputs
Outputs
Configurations
Scripting
result: mean temperature
Inputs
Outputs
Configurations
Scripting
result: surface heat rate
Inputs
Outputs
Configurations
Scripting
result: thermal conductivity
Inputs
Outputs
Configurations
Scripting
result: specific heat
Inputs
Outputs
Configurations
Scripting
result: turbulent dissipation rate (epsilon)
Inputs
Outputs
Configurations
Scripting
metadata: time freq provider
Inputs
Outputs
Configurations
Scripting
metadata: mesh info provider
Inputs
Outputs
Configurations
Scripting
result: von mises stresses as mechanical
Inputs
Outputs
Configurations
Scripting
metadata: streams provider
Inputs
Outputs
Configurations
Scripting
result: poynting vector surface
Inputs
Outputs
Configurations
Scripting
metadata: datasources provider
Inputs
Outputs
Configurations
Scripting
scoping: rescope
Inputs
Outputs
Configurations
Scripting
filter: low pass (timescoping)
Inputs
Outputs
Configurations
Scripting
utility: data sources get attribute
Inputs
Outputs
Configurations
Scripting
mesh: meshes provider
Inputs
Outputs
Configurations
Scripting
metadata: mesh selection manager provider
Inputs
Outputs
Configurations
Scripting
utility: for each
Inputs
Outputs
Configurations
Scripting
metadata: boundary condition provider
Inputs
Outputs
Configurations
Scripting
utility: merge property fields
Inputs
Outputs
Configurations
Scripting
metadata: cyclic analysis?
Inputs
Outputs
Configurations
Scripting
metadata: material support provider
Inputs
Outputs
Configurations
Scripting
scoping: on named selection
Inputs
Outputs
Configurations
Scripting
scoping: reduce sampling scoping
Inputs
Outputs
Configurations
Scripting
math: accumulation per scoping
Inputs
Outputs
Configurations
Scripting
metadata: real constants provider
Inputs
Outputs
Configurations
Scripting
metadata: coordinate system data provider
Inputs
Outputs
Configurations
Scripting
result: coordinate system
Inputs
Outputs
Configurations
Scripting
logic: splitter::streams
Inputs
Outputs
Configurations
Scripting
serialization: hdf5dpf custom read
Inputs
Outputs
Configurations
Scripting
result: nodal_to_global
Inputs
Outputs
Configurations
Scripting
scoping: rescope custom type field
Inputs
Outputs
Configurations
Scripting
result: global_to_nodal
Inputs
Outputs
Configurations
Scripting
min_max: min max by entity over time
Inputs
Outputs
Configurations
Scripting
min_max: max over time
Inputs
Outputs
Configurations
Scripting
scoping: connectivity ids
Inputs
Outputs
Configurations
Scripting
utility: remote workflow instantiate
Inputs
Outputs
Configurations
Scripting
utility: remote operator instantiate
Inputs
Outputs
Configurations
Scripting
math: compute residual and error
Inputs
Outputs
Configurations
Scripting
result: structural temperature
Inputs
Outputs
Configurations
Scripting
metadata: result info provider
Inputs
Outputs
Configurations
Scripting
mesh: skin (tri mesh)
Inputs
Outputs
Configurations
Scripting
result: stress ratio
Inputs
Outputs
Configurations
Scripting
filter: band pass (timescoping)
Inputs
Outputs
Configurations
Scripting
compression: sketch matrix
Inputs
Outputs
Configurations
Scripting
result: accu eqv plastic strain
Inputs
Outputs
Configurations
Scripting
result: plastic state variable
Inputs
Outputs
Configurations
Scripting
result: accu eqv creep strain
Inputs
Outputs
Configurations
Scripting
result: plastic strain energy density
Inputs
Outputs
Configurations
Scripting
result: material property of element
Inputs
Outputs
Configurations
Scripting
result: creep strain energy density
Inputs
Outputs
Configurations
Scripting
result: erp radiation efficiency
Inputs
Outputs
Configurations
Scripting
result: elastic strain energy density
Inputs
Outputs
Configurations
Scripting
serialization: field to csv
Inputs
Outputs
Configurations
Scripting
utility: merge generic data container
Inputs
Outputs
Configurations
Scripting
result: global joint internal energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: cyclic expanded element nodal forces
Inputs
Outputs
Configurations
Scripting
serialization: vtk to fields
Inputs
Outputs
Configurations
Scripting
utility: merge any objects
Inputs
Outputs
Configurations
Scripting
result: elemental volume
Inputs
Outputs
Configurations
Scripting
result: artificial hourglass energy
Inputs
Outputs
Configurations
Scripting
result: kinetic energy
Inputs
Outputs
Configurations
Scripting
result: thermal dissipation energy
Inputs
Outputs
Configurations
Scripting
result: total mass
Inputs
Outputs
Configurations
Scripting
result: rms static pressure
Inputs
Outputs
Configurations
Scripting
result: swelling strains
Inputs
Outputs
Configurations
Scripting
result: temperature
Inputs
Outputs
Configurations
Scripting
result: compute stress
Inputs
Outputs
Configurations
Scripting
result: raw displacement
Inputs
Outputs
Configurations
Scripting
result: raw reaction force
Inputs
Outputs
Configurations
Scripting
result: turbulent kinetic energy (k)
Inputs
Outputs
Configurations
Scripting
result: electric potential
Inputs
Outputs
Configurations
Scripting
result: thickness
Inputs
Outputs
Configurations
Scripting
result: mapdl run
Inputs
Outputs
Configurations
Scripting
result: equivalent mass
Inputs
Outputs
Configurations
Scripting
result: custom result
Inputs
Outputs
Configurations
Scripting
result: elemental heat generation
Inputs
Outputs
Configurations
Scripting
result: magnetic vector potential
Inputs
Outputs
Configurations
Scripting
result: joint force reaction
Inputs
Outputs
Configurations
Scripting
result: joint moment reaction
Inputs
Outputs
Configurations
Scripting
result: beam T shear force (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: joint relative displacement
Inputs
Outputs
Configurations
Scripting
result: joint relative rotation
Inputs
Outputs
Configurations
Scripting
result: joint relative velocity
Inputs
Outputs
Configurations
Scripting
result: joint relative acceleration
Inputs
Outputs
Configurations
Scripting
result: joint relative angular acceleration
Inputs
Outputs
Configurations
Scripting
result: global internal energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
serialization: txt to data tree
Inputs
Outputs
Configurations
Scripting
result: thermal strains eqv
Inputs
Outputs
Configurations
Scripting
result: elemental non summable miscellaneous data
Inputs
Outputs
Configurations
Scripting
result: state variable
Inputs
Outputs
Configurations
Scripting
utility: merge supports
Inputs
Outputs
Configurations
Scripting
result: global kinetic energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
math: matrix inverse
Inputs
Outputs
Configurations
Scripting
result: global time step (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global rigid body stopper energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
geo: cartesian to spherical coordinates
Inputs
Outputs
Configurations
Scripting
result: global spring and damper energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: beam T bending moment (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global hourglass energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global system damping energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global eroded kinetic energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global energy ratio (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global added mass (LSDyna)
Inputs
Outputs
Configurations
Scripting
mapping: on reduced coordinates
Inputs
Outputs
Configurations
Scripting
invariant: principal invariants (fields container)
Inputs
Outputs
Configurations
Scripting
result: global added mass (percentage) (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: global center of mass (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: beam S shear force (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: beam S bending moment (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: beam RS shear stress (LSDyna)
Inputs
Outputs
Configurations
Scripting
utility: merge fields into field matrix
Inputs
Outputs
Configurations
Scripting
result: beam axial plastic strain (LSDyna)
Inputs
Outputs
Configurations
Scripting
invariant: von mises eqv (field)
Inputs
Outputs
Configurations
Scripting
invariant: segalman von mises eqv (field)
Inputs
Outputs
Configurations
Scripting
result: part eroded internal energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: part kinetic energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
scoping: on mesh property
Inputs
Outputs
Configurations
Scripting
scoping: from mesh
Inputs
Outputs
Configurations
Scripting
result: part added mass (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: part hourglass energy (LSDyna)
Inputs
Outputs
Configurations
Scripting
result: part rigid body velocity (LSDyna)
Inputs
Outputs
Configurations
Scripting
min_max: time of max
Inputs
Outputs
Configurations
Scripting
scoping: nodes in mesh
Inputs
Outputs
Configurations
Scripting
metadata: cyclic support provider
Inputs
Outputs
Configurations
Scripting
result: density
Inputs
Outputs
Configurations
Scripting
result: spectrum data
Inputs
Outputs
Configurations
Scripting
averaging: elemental to elemental nodal (fields container)
Inputs
Outputs
Configurations
Scripting
result: total pressure
Inputs
Outputs
Configurations
Scripting
result: mean velocity
Inputs
Outputs
Configurations
Scripting
result: Lighthill tensor divergence
Inputs
Outputs
Configurations
Scripting
result: mass flow rate
Inputs
Outputs
Configurations
Scripting
result: mach number
Inputs
Outputs
Configurations
Scripting
result: rms temperature
Inputs
Outputs
Configurations
Scripting
scoping: scoping get attribute
Inputs
Outputs
Configurations
Scripting
result: read cms_rbd file
Inputs
Outputs
Configurations
Scripting
result: mean temperature
Inputs
Outputs
Configurations
Scripting
result: surface heat rate
Inputs
Outputs
Configurations
Scripting
result: thermal conductivity
Inputs
Outputs
Configurations
Scripting
result: specific heat
Inputs
Outputs
Configurations
Scripting
result: turbulent dissipation rate (epsilon)
Inputs
Outputs
Configurations
Scripting
metadata: time freq provider
Inputs
Outputs
Configurations
Scripting
metadata: mesh info provider
Inputs
Outputs
Configurations
Scripting
result: von mises stresses as mechanical
Inputs
Outputs
Configurations
Scripting
metadata: streams provider
Inputs
Outputs
Configurations
Scripting
result: poynting vector surface
Inputs
Outputs
Configurations
Scripting
metadata: datasources provider
Inputs
Outputs
Configurations
Scripting
scoping: rescope
Inputs
Outputs
Configurations
Scripting
filter: low pass (timescoping)
Inputs
Outputs
Configurations
Scripting
utility: data sources get attribute
Inputs
Outputs
Configurations
Scripting
mesh: meshes provider
Inputs
Outputs
Configurations
Scripting
metadata: mesh selection manager provider
Inputs
Outputs
Configurations
Scripting
utility: for each
Inputs
Outputs
Configurations
Scripting
metadata: boundary condition provider
Inputs
Outputs
Configurations
Scripting
utility: merge property fields
Inputs
Outputs
Configurations
Scripting
metadata: cyclic analysis?
Inputs
Outputs
Configurations
Scripting
metadata: material support provider
Inputs
Outputs
Configurations
Scripting
scoping: on named selection
Inputs
Outputs
Configurations
Scripting
scoping: reduce sampling scoping
Inputs
Outputs
Configurations
Scripting
math: accumulation per scoping
Inputs
Outputs
Configurations
Scripting
metadata: real constants provider
Inputs
Outputs
Configurations
Scripting
metadata: coordinate system data provider
Inputs
Outputs
Configurations
Scripting
result: coordinate system
Inputs
Outputs
Configurations
Scripting
logic: splitter::streams
Inputs
Outputs
Configurations
Scripting
serialization: hdf5dpf custom read
Inputs
Outputs
Configurations
Scripting
result: nodal_to_global
Inputs
Outputs
Configurations
Scripting
scoping: rescope custom type field
Inputs
Outputs
Configurations
Scripting
result: global_to_nodal
Inputs
Outputs
Configurations
Scripting
min_max: min max by entity over time
Inputs
Outputs
Configurations
Scripting
min_max: max over time
Inputs
Outputs
Configurations
Scripting
scoping: connectivity ids
Inputs
Outputs
Configurations
Scripting
utility: remote workflow instantiate
Inputs
Outputs
Configurations
Scripting
utility: remote operator instantiate
Inputs
Outputs
Configurations
Scripting
math: compute residual and error
>> op.inputs.all_dofs.connect(my_all_dofs)
>>> my_mesh = dpf.MeshedRegion()
>>> op.inputs.mesh.connect(my_mesh)
+ >>> my_read_cyclic = int()
+ >>> op.inputs.read_cyclic.connect(my_read_cyclic)
+ >>> my_expanded_meshed_region = dpf.MeshedRegion()
+ >>> op.inputs.expanded_meshed_region.connect(my_expanded_meshed_region)
+ >>> my_sectors_to_expand = dpf.Scoping()
+ >>> op.inputs.sectors_to_expand.connect(my_sectors_to_expand)
+ >>> my_phi = float()
+ >>> op.inputs.phi.connect(my_phi)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.equivalent_mass(
@@ -96,6 +121,10 @@ class equivalent_mass(Operator):
... data_sources=my_data_sources,
... all_dofs=my_all_dofs,
... mesh=my_mesh,
+ ... read_cyclic=my_read_cyclic,
+ ... expanded_meshed_region=my_expanded_meshed_region,
+ ... sectors_to_expand=my_sectors_to_expand,
+ ... phi=my_phi,
... )
>>> # Get output data
@@ -111,6 +140,10 @@ def __init__(
data_sources=None,
all_dofs=None,
mesh=None,
+ read_cyclic=None,
+ expanded_meshed_region=None,
+ sectors_to_expand=None,
+ phi=None,
config=None,
server=None,
):
@@ -131,6 +164,14 @@ def __init__(
self.inputs.all_dofs.connect(all_dofs)
if mesh is not None:
self.inputs.mesh.connect(mesh)
+ if read_cyclic is not None:
+ self.inputs.read_cyclic.connect(read_cyclic)
+ if expanded_meshed_region is not None:
+ self.inputs.expanded_meshed_region.connect(expanded_meshed_region)
+ if sectors_to_expand is not None:
+ self.inputs.sectors_to_expand.connect(sectors_to_expand)
+ if phi is not None:
+ self.inputs.phi.connect(phi)
@staticmethod
def _spec():
@@ -213,8 +254,41 @@ def _spec():
name="mesh",
type_names=["abstract_meshed_region", "meshes_container"],
optional=True,
- document="""Prevents from reading the mesh in the result
- files""",
+ document="""Mesh. if cylic expansion is to be done, mesh
+ of the base sector""",
+ ),
+ 14: PinSpecification(
+ name="read_cyclic",
+ type_names=["enum dataProcessing::ECyclicReading", "int32"],
+ optional=True,
+ document="""If 0 cyclic symmetry is ignored, if 1 cyclic
+ sector is read, if 2 cyclic expansion
+ is done, if 3 cyclic expansion is
+ done and stages are merged (default
+ is 1)""",
+ ),
+ 15: PinSpecification(
+ name="expanded_meshed_region",
+ type_names=["abstract_meshed_region", "meshes_container"],
+ optional=True,
+ document="""Mesh expanded, use if cyclic expansion is to
+ be done.""",
+ ),
+ 18: PinSpecification(
+ name="sectors_to_expand",
+ type_names=["vector", "scoping", "scopings_container"],
+ optional=True,
+ document="""Sectors to expand (start at 0), for
+ multistage: use scopings container
+ with 'stage' label, use if cyclic
+ expansion is to be done.""",
+ ),
+ 19: PinSpecification(
+ name="phi",
+ type_names=["double"],
+ optional=True,
+ document="""Angle phi in degrees (default value 0.0), use
+ if cyclic expansion is to be done.""",
),
},
map_output_pin_spec={
@@ -287,6 +361,14 @@ class InputsEquivalentMass(_Inputs):
>>> op.inputs.all_dofs.connect(my_all_dofs)
>>> my_mesh = dpf.MeshedRegion()
>>> op.inputs.mesh.connect(my_mesh)
+ >>> my_read_cyclic = int()
+ >>> op.inputs.read_cyclic.connect(my_read_cyclic)
+ >>> my_expanded_meshed_region = dpf.MeshedRegion()
+ >>> op.inputs.expanded_meshed_region.connect(my_expanded_meshed_region)
+ >>> my_sectors_to_expand = dpf.Scoping()
+ >>> op.inputs.sectors_to_expand.connect(my_sectors_to_expand)
+ >>> my_phi = float()
+ >>> op.inputs.phi.connect(my_phi)
"""
def __init__(self, op: Operator):
@@ -305,6 +387,18 @@ def __init__(self, op: Operator):
self._inputs.append(self._all_dofs)
self._mesh = Input(equivalent_mass._spec().input_pin(7), 7, op, -1)
self._inputs.append(self._mesh)
+ self._read_cyclic = Input(equivalent_mass._spec().input_pin(14), 14, op, -1)
+ self._inputs.append(self._read_cyclic)
+ self._expanded_meshed_region = Input(
+ equivalent_mass._spec().input_pin(15), 15, op, -1
+ )
+ self._inputs.append(self._expanded_meshed_region)
+ self._sectors_to_expand = Input(
+ equivalent_mass._spec().input_pin(18), 18, op, -1
+ )
+ self._inputs.append(self._sectors_to_expand)
+ self._phi = Input(equivalent_mass._spec().input_pin(19), 19, op, -1)
+ self._inputs.append(self._phi)
@property
def time_scoping(self):
@@ -457,8 +551,8 @@ def all_dofs(self):
def mesh(self):
"""Allows to connect mesh input to the operator.
- Prevents from reading the mesh in the result
- files
+ Mesh. if cylic expansion is to be done, mesh
+ of the base sector
Parameters
----------
@@ -474,6 +568,95 @@ def mesh(self):
"""
return self._mesh
+ @property
+ def read_cyclic(self):
+ """Allows to connect read_cyclic input to the operator.
+
+ If 0 cyclic symmetry is ignored, if 1 cyclic
+ sector is read, if 2 cyclic expansion
+ is done, if 3 cyclic expansion is
+ done and stages are merged (default
+ is 1)
+
+ Parameters
+ ----------
+ my_read_cyclic : int
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.equivalent_mass()
+ >>> op.inputs.read_cyclic.connect(my_read_cyclic)
+ >>> # or
+ >>> op.inputs.read_cyclic(my_read_cyclic)
+ """
+ return self._read_cyclic
+
+ @property
+ def expanded_meshed_region(self):
+ """Allows to connect expanded_meshed_region input to the operator.
+
+ Mesh expanded, use if cyclic expansion is to
+ be done.
+
+ Parameters
+ ----------
+ my_expanded_meshed_region : MeshedRegion or MeshesContainer
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.equivalent_mass()
+ >>> op.inputs.expanded_meshed_region.connect(my_expanded_meshed_region)
+ >>> # or
+ >>> op.inputs.expanded_meshed_region(my_expanded_meshed_region)
+ """
+ return self._expanded_meshed_region
+
+ @property
+ def sectors_to_expand(self):
+ """Allows to connect sectors_to_expand input to the operator.
+
+ Sectors to expand (start at 0), for
+ multistage: use scopings container
+ with 'stage' label, use if cyclic
+ expansion is to be done.
+
+ Parameters
+ ----------
+ my_sectors_to_expand : Scoping or ScopingsContainer
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.equivalent_mass()
+ >>> op.inputs.sectors_to_expand.connect(my_sectors_to_expand)
+ >>> # or
+ >>> op.inputs.sectors_to_expand(my_sectors_to_expand)
+ """
+ return self._sectors_to_expand
+
+ @property
+ def phi(self):
+ """Allows to connect phi input to the operator.
+
+ Angle phi in degrees (default value 0.0), use
+ if cyclic expansion is to be done.
+
+ Parameters
+ ----------
+ my_phi : float
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.equivalent_mass()
+ >>> op.inputs.phi.connect(my_phi)
+ >>> # or
+ >>> op.inputs.phi(my_phi)
+ """
+ return self._phi
+
class OutputsEquivalentMass(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll b/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll
index 7da9c46ae17748a32d89b423082d0ae814c922a5..1bd6db64cc2651dc1398b466587bb18f3ad356e0 100644
GIT binary patch
delta 1987222
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