# How to calculate Elemental Mass using DPF?

Options
Member, Moderator, Employee Posts: 420
✭✭✭✭

How to calculate Elemental Mass using DPF?

Tagged:

• Member, Moderator, Employee Posts: 420
✭✭✭✭
Options

There is dedicated operator dpf.operators.result.elemental_mass() but in case there is an issue calculating via the operator; the following can be used:

from ansys.dpf import core as dpf

rst = r"\Path\to\file.rst"

ds = dpf.DataSources(rst)

model = dpf.Model(rst)

# List to store elemental densities
all_mats = []

mats = dpf_mesh.property_field("mat")
mat_prop = model.operator("mapdl_material_properties")
mat_prop.inputs.materials.connect(mats)

mat_prop.inputs.properties_name.connect("DENS")
mat_field = mat_prop.outputs.properties_value.get_data()[0]
for eid in dpf_mesh.elements.scoping.ids:
mat_id = mats.get_entity_data_by_id(eid)
density = mat_field.get_entity_data_by_id(mat_id[0])
all_mats.append(density)

# Create Density Field
density = dpf.fields_factory.create_scalar_field(num_entities=dpf_mesh.elements.n_elements)
density.location = dpf.locations.elemental
density.scoping.ids = dpf_mesh.elements.scoping.ids
density.data = all_mats

# Element volume
el_vol = dpf.operators.geo.elements_volume(mesh=dpf_mesh)

# Calculate elemental mass (density * volume)
elemental_mass = dpf.operators.math.generalized_inner_product(fieldA=el_vol, fieldB=density)