Skip to main content

DPF Framework 2026 R1

result:transform invariant terms rbd

Last update: 31.07.2026

Version: 0.0.0

Description

Transform invariant terms rbd based on a coordinate system (translation + rotation).

Inputs

This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. Some inputs are required, while others are optional and provide additional configuration. Each parameter is detailed in the sections that follow the table.

Pin number Name Status Expected type(s)
0 rotation_matrix Required field
1 coordinate_system Required field
2 model_data Required property_field
3 center_of_mass Required field
4 inertia_relief Required field
5 model_size Required double
6 master_node_coordinates Required vector<double>
7 v_trsf Required vector<double>
8 k_mat Required field
9 mass_mat Required field
10 c_mat Required field
11 rhs Required field
12 dn Required vector<double>
13 dr_cross_n Required vector<double>
14 drn Required vector<double>
15 dn_cross_n Required vector<double>
16 dnx_y Required vector<double>
17 dny_y Required vector<double>
18 dnz_y Required vector<double>
19 dyx_n Required vector<double>
20 dyy_n Required vector<double>
21 dyz_n Required vector<double>
22 dnxn Required vector<double>
23 dnyn Required vector<double>
24 dnzn Required vector<double>

rotation_matrix (Pin 0)

  • Required: Yes
  • Expected type(s): field

3-3 rotation matrix.

coordinate_system (Pin 1)

  • Required: Yes
  • Expected type(s): field

origin of the new coordinate system.

model_data (Pin 2)

data describing the finite element model

center_of_mass (Pin 3)

  • Required: Yes
  • Expected type(s): field

center of mass of the body

inertia_relief (Pin 4)

  • Required: Yes
  • Expected type(s): field

inertia matrix

model_size (Pin 5)

  • Required: Yes
  • Expected type(s): double

size of the diagonal box containing the body

master_node_coordinates (Pin 6)

v_trsf (Pin 7)

translational and rotational shape functions

k_mat (Pin 8)

  • Required: Yes
  • Expected type(s): field

mass_mat (Pin 9)

  • Required: Yes
  • Expected type(s): field

c_mat (Pin 10)

  • Required: Yes
  • Expected type(s): field

rhs (Pin 11)

  • Required: Yes
  • Expected type(s): field

dn (Pin 12)

dr_cross_n (Pin 13)

drn (Pin 14)

dn_cross_n (Pin 15)

dnx_y (Pin 16)

dny_y (Pin 17)

dnz_y (Pin 18)

dyx_n (Pin 19)

dyy_n (Pin 20)

dyz_n (Pin 21)

dnxn (Pin 22)

dnyn (Pin 23)

dnzn (Pin 24)

Outputs

This table lists the output pins for this operator. Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. Each output is detailed in the sections that follow the table.

Pin number Name Expected type(s)
0 model_data property_field
1 center_of_mass field
2 inertia_relief field
3 model_size property_field
4 master_node_coordinates vector<double>
5 v_trsf vector<double>
6 k_mat field
7 mass_mat field
8 c_mat field
9 rhs field
10 dn vector<double>
11 dr_cross_n vector<double>
12 drn vector<double>
13 dn_cross_n vector<double>
14 dnx_y vector<double>
15 dny_y vector<double>
16 dnz_y vector<double>
17 dyx_n vector<double>
18 dyy_n vector<double>
19 dyz_n vector<double>
20 dnxn vector<double>
21 dnyn vector<double>
22 dnzn vector<double>

model_data (Pin 0)

data describing the finite element model

center_of_mass (Pin 1)

  • Expected type(s): field

center of mass of the body

inertia_relief (Pin 2)

  • Expected type(s): field

inertia matrix

model_size (Pin 3)

master_node_coordinates (Pin 4)

v_trsf (Pin 5)

translational and rotational shape functions

k_mat (Pin 6)

  • Expected type(s): field

mass_mat (Pin 7)

  • Expected type(s): field

c_mat (Pin 8)

  • Expected type(s): field

rhs (Pin 9)

  • Expected type(s): field

dn (Pin 10)

dr_cross_n (Pin 11)

drn (Pin 12)

dn_cross_n (Pin 13)

dnx_y (Pin 14)

dny_y (Pin 15)

dnz_y (Pin 16)

dyx_n (Pin 17)

dyy_n (Pin 18)

dyz_n (Pin 19)

dnxn (Pin 20)

dnyn (Pin 21)

dnzn (Pin 22)

Configurations

This operator supports configuration options that modify its behavior.

inplace

  • Expected type(s): bool
  • Default value: false

The output is written over the input to save memory if this config is set to true.

mutex

  • Expected type(s): bool
  • Default value: false

If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads.

Scripting

This operator can be accessed through scripting interfaces using these identifiers.

Category: result

Plugin: core

Scripting name: transform_invariant_terms_rbd

Full name: result.transform_invariant_terms_rbd

Internal name: transform_invariant_terms_rbd

License: None

Examples

These examples demonstrate how to use this operator in different programming environments. Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output.

C++
#include "dpf_api.h"

ansys::dpf::Operator op("transform_invariant_terms_rbd"); // operator instantiation
op.connect(0, my_rotation_matrix);
op.connect(1, my_coordinate_system);
op.connect(2, my_model_data);
op.connect(3, my_center_of_mass);
op.connect(4, my_inertia_relief);
op.connect(5, my_model_size);
op.connect(6, my_master_node_coordinates);
op.connect(7, my_v_trsf);
op.connect(8, my_k_mat);
op.connect(9, my_mass_mat);
op.connect(10, my_c_mat);
op.connect(11, my_rhs);
op.connect(12, my_dn);
op.connect(13, my_dr_cross_n);
op.connect(14, my_drn);
op.connect(15, my_dn_cross_n);
op.connect(16, my_dnx_y);
op.connect(17, my_dny_y);
op.connect(18, my_dnz_y);
op.connect(19, my_dyx_n);
op.connect(20, my_dyy_n);
op.connect(21, my_dyz_n);
op.connect(22, my_dnxn);
op.connect(23, my_dnyn);
op.connect(24, my_dnzn);
ansys::dpf::PropertyField my_model_data = op.getOutput<ansys::dpf::PropertyField>(0);
ansys::dpf::Field my_center_of_mass = op.getOutput<ansys::dpf::Field>(1);
ansys::dpf::Field my_inertia_relief = op.getOutput<ansys::dpf::Field>(2);
ansys::dpf::PropertyField my_model_size = op.getOutput<ansys::dpf::PropertyField>(3);
std::vector<double> my_master_node_coordinates = op.getOutput<std::vector<double>>(4);
std::vector<double> my_v_trsf = op.getOutput<std::vector<double>>(5);
ansys::dpf::Field my_k_mat = op.getOutput<ansys::dpf::Field>(6);
ansys::dpf::Field my_mass_mat = op.getOutput<ansys::dpf::Field>(7);
ansys::dpf::Field my_c_mat = op.getOutput<ansys::dpf::Field>(8);
ansys::dpf::Field my_rhs = op.getOutput<ansys::dpf::Field>(9);
std::vector<double> my_dn = op.getOutput<std::vector<double>>(10);
std::vector<double> my_dr_cross_n = op.getOutput<std::vector<double>>(11);
std::vector<double> my_drn = op.getOutput<std::vector<double>>(12);
std::vector<double> my_dn_cross_n = op.getOutput<std::vector<double>>(13);
std::vector<double> my_dnx_y = op.getOutput<std::vector<double>>(14);
std::vector<double> my_dny_y = op.getOutput<std::vector<double>>(15);
std::vector<double> my_dnz_y = op.getOutput<std::vector<double>>(16);
std::vector<double> my_dyx_n = op.getOutput<std::vector<double>>(17);
std::vector<double> my_dyy_n = op.getOutput<std::vector<double>>(18);
std::vector<double> my_dyz_n = op.getOutput<std::vector<double>>(19);
std::vector<double> my_dnxn = op.getOutput<std::vector<double>>(20);
std::vector<double> my_dnyn = op.getOutput<std::vector<double>>(21);
std::vector<double> my_dnzn = op.getOutput<std::vector<double>>(22);
CPython
import ansys.dpf.core as dpf

op = dpf.operators.result.transform_invariant_terms_rbd() # operator instantiation
op.inputs.rotation_matrix.connect(my_rotation_matrix)
op.inputs.coordinate_system.connect(my_coordinate_system)
op.inputs.model_data.connect(my_model_data)
op.inputs.center_of_mass.connect(my_center_of_mass)
op.inputs.inertia_relief.connect(my_inertia_relief)
op.inputs.model_size.connect(my_model_size)
op.inputs.master_node_coordinates.connect(my_master_node_coordinates)
op.inputs.v_trsf.connect(my_v_trsf)
op.inputs.k_mat.connect(my_k_mat)
op.inputs.mass_mat.connect(my_mass_mat)
op.inputs.c_mat.connect(my_c_mat)
op.inputs.rhs.connect(my_rhs)
op.inputs.dn.connect(my_dn)
op.inputs.dr_cross_n.connect(my_dr_cross_n)
op.inputs.drn.connect(my_drn)
op.inputs.dn_cross_n.connect(my_dn_cross_n)
op.inputs.dnx_y.connect(my_dnx_y)
op.inputs.dny_y.connect(my_dny_y)
op.inputs.dnz_y.connect(my_dnz_y)
op.inputs.dyx_n.connect(my_dyx_n)
op.inputs.dyy_n.connect(my_dyy_n)
op.inputs.dyz_n.connect(my_dyz_n)
op.inputs.dnxn.connect(my_dnxn)
op.inputs.dnyn.connect(my_dnyn)
op.inputs.dnzn.connect(my_dnzn)
my_model_data = op.outputs.model_data()
my_center_of_mass = op.outputs.center_of_mass()
my_inertia_relief = op.outputs.inertia_relief()
my_model_size = op.outputs.model_size()
my_master_node_coordinates = op.outputs.master_node_coordinates()
my_v_trsf = op.outputs.v_trsf()
my_k_mat = op.outputs.k_mat()
my_mass_mat = op.outputs.mass_mat()
my_c_mat = op.outputs.c_mat()
my_rhs = op.outputs.rhs()
my_dn = op.outputs.dn()
my_dr_cross_n = op.outputs.dr_cross_n()
my_drn = op.outputs.drn()
my_dn_cross_n = op.outputs.dn_cross_n()
my_dnx_y = op.outputs.dnx_y()
my_dny_y = op.outputs.dny_y()
my_dnz_y = op.outputs.dnz_y()
my_dyx_n = op.outputs.dyx_n()
my_dyy_n = op.outputs.dyy_n()
my_dyz_n = op.outputs.dyz_n()
my_dnxn = op.outputs.dnxn()
my_dnyn = op.outputs.dnyn()
my_dnzn = op.outputs.dnzn()
IPython
import mech_dpf
import Ans.DataProcessing as dpf

op = dpf.operators.result.transform_invariant_terms_rbd() # operator instantiation
op.inputs.rotation_matrix.Connect(my_rotation_matrix)
op.inputs.coordinate_system.Connect(my_coordinate_system)
op.inputs.model_data.Connect(my_model_data)
op.inputs.center_of_mass.Connect(my_center_of_mass)
op.inputs.inertia_relief.Connect(my_inertia_relief)
op.inputs.model_size.Connect(my_model_size)
op.inputs.master_node_coordinates.Connect(my_master_node_coordinates)
op.inputs.v_trsf.Connect(my_v_trsf)
op.inputs.k_mat.Connect(my_k_mat)
op.inputs.mass_mat.Connect(my_mass_mat)
op.inputs.c_mat.Connect(my_c_mat)
op.inputs.rhs.Connect(my_rhs)
op.inputs.dn.Connect(my_dn)
op.inputs.dr_cross_n.Connect(my_dr_cross_n)
op.inputs.drn.Connect(my_drn)
op.inputs.dn_cross_n.Connect(my_dn_cross_n)
op.inputs.dnx_y.Connect(my_dnx_y)
op.inputs.dny_y.Connect(my_dny_y)
op.inputs.dnz_y.Connect(my_dnz_y)
op.inputs.dyx_n.Connect(my_dyx_n)
op.inputs.dyy_n.Connect(my_dyy_n)
op.inputs.dyz_n.Connect(my_dyz_n)
op.inputs.dnxn.Connect(my_dnxn)
op.inputs.dnyn.Connect(my_dnyn)
op.inputs.dnzn.Connect(my_dnzn)
my_model_data = op.outputs.model_data.GetData()
my_center_of_mass = op.outputs.center_of_mass.GetData()
my_inertia_relief = op.outputs.inertia_relief.GetData()
my_model_size = op.outputs.model_size.GetData()
my_master_node_coordinates = op.outputs.master_node_coordinates.GetData()
my_v_trsf = op.outputs.v_trsf.GetData()
my_k_mat = op.outputs.k_mat.GetData()
my_mass_mat = op.outputs.mass_mat.GetData()
my_c_mat = op.outputs.c_mat.GetData()
my_rhs = op.outputs.rhs.GetData()
my_dn = op.outputs.dn.GetData()
my_dr_cross_n = op.outputs.dr_cross_n.GetData()
my_drn = op.outputs.drn.GetData()
my_dn_cross_n = op.outputs.dn_cross_n.GetData()
my_dnx_y = op.outputs.dnx_y.GetData()
my_dny_y = op.outputs.dny_y.GetData()
my_dnz_y = op.outputs.dnz_y.GetData()
my_dyx_n = op.outputs.dyx_n.GetData()
my_dyy_n = op.outputs.dyy_n.GetData()
my_dyz_n = op.outputs.dyz_n.GetData()
my_dnxn = op.outputs.dnxn.GetData()
my_dnyn = op.outputs.dnyn.GetData()
my_dnzn = op.outputs.dnzn.GetData()

Changelog

  • Version 0.0.0: Initial release.

Connect with Ansys