Source code for pyleecan.Methods.Mesh.Mesh.set_submesh
# -*- coding: utf-8 -*-
from ....definitions import PACKAGE_NAME
[docs]def set_submesh(self, group_number):
"""Define a mesh object as submesh of parent mesh object
Parameters
----------
self : Mesh
an Mesh object
group_number : numpy.array
a group number which define the elements which constitute the submesh
Returns
-------
"""
# Dynamic import of MeshFEMM
module = __import__(PACKAGE_NAME + ".Classes." + "Mesh", fromlist=["Mesh"])
submesh = getattr(module, "Mesh")()
for i_group in range(len(group_number)):
submesh_tmp = getattr(module, "Mesh")()
for key in self.element:
element = self.element[key]
# Create a new Element object which is restrained to group_number
submesh_tmp.element[key] = element.get_group(group_number[i_group])
# Create a new Node object which corresponds to selection of element
submesh_tmp.node = self.node.get_group(submesh_tmp.element[key])
if i_group > 0:
# TODO: This part is not tested
# Keep only the common elements (and create interface ones)
submesh = submesh.interface(submesh_tmp)
# # Create a new Node object which corresponds to selection of element
# submesh.node = self.node.get_group(element=submesh.element)
else:
submesh = submesh_tmp
self.submesh.append(submesh)
return submesh