Skip to main content

DPF Framework 2026 R1

result:compute invariant terms rbd

Last update: 31.07.2026

Version: 0.0.0

Description

Set the required data for the invariant terms computation (reduced matrices, lumped mass matrix, modes ...)

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 rom_matrices Required fields_container
1 mode_shapes Required fields_container
2 lumped_mass Required fields_container
3 model_data Required fields_container
4 center_of_mass Required fields_container
5 inertia_relief Required fields_container
6 model_size Required double
7 field_coordinates Required field
8 nod Required vector<int32>
9 constraint_mode_check bool

rom_matrices (Pin 0)

FieldsContainers containing the reduced matrices

mode_shapes (Pin 1)

FieldsContainers containing the mode shapes, which are CST and NOR for the cms method

lumped_mass (Pin 2)

FieldsContainers containing the lumped mass

model_data (Pin 3)

data describing the finite element model

center_of_mass (Pin 4)

inertia_relief (Pin 5)

inertia matrix

model_size (Pin 6)

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

model size

field_coordinates (Pin 7)

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

coordinates of all nodes

nod (Pin 8)

constraint_mode_check (Pin 9)

  • Required: No
  • Expected type(s): bool

if true, the orthogonality of the constraint modes are checked. Default is false.

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.

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: compute_invariant_terms_rbd

Full name: result.compute_invariant_terms_rbd

Internal name: compute_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("compute_invariant_terms_rbd"); // operator instantiation
op.connect(0, my_rom_matrices);
op.connect(1, my_mode_shapes);
op.connect(2, my_lumped_mass);
op.connect(3, my_model_data);
op.connect(4, my_center_of_mass);
op.connect(5, my_inertia_relief);
op.connect(6, my_model_size);
op.connect(7, my_field_coordinates);
op.connect(8, my_nod);
op.connect(9, my_constraint_mode_check);
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.compute_invariant_terms_rbd() # operator instantiation
op.inputs.rom_matrices.connect(my_rom_matrices)
op.inputs.mode_shapes.connect(my_mode_shapes)
op.inputs.lumped_mass.connect(my_lumped_mass)
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.field_coordinates.connect(my_field_coordinates)
op.inputs.nod.connect(my_nod)
op.inputs.constraint_mode_check.connect(my_constraint_mode_check)
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.compute_invariant_terms_rbd() # operator instantiation
op.inputs.rom_matrices.Connect(my_rom_matrices)
op.inputs.mode_shapes.Connect(my_mode_shapes)
op.inputs.lumped_mass.Connect(my_lumped_mass)
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.field_coordinates.Connect(my_field_coordinates)
op.inputs.nod.Connect(my_nod)
op.inputs.constraint_mode_check.Connect(my_constraint_mode_check)
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