Source code for pyleecan.Tests.Methods.Mesh.test_set_submesh

# -*- coding: utf-8 -*-

from unittest import TestCase
from ....Classes.Mesh import Mesh
from ....Classes.ElementMat import ElementMat
from ....Classes.NodeMat import NodeMat
import numpy as np


[docs]class unittest_getnode2element(TestCase): """unittest to get elements containing specific node(s)"""
[docs] def test_ElementMat_NodeMat(self): # Init 1 # Init mesh = Mesh() mesh.element["Triangle3"] = ElementMat(nb_node_per_element=3) mesh.node = NodeMat() mesh.node.add_node(np.array([0, 0])) mesh.node.add_node(np.array([1, 0])) mesh.node.add_node(np.array([1, 2])) mesh.node.add_node(np.array([2, 3])) mesh.node.add_node(np.array([3, 3])) mesh.add_element(np.array([0, 1, 2]), "Triangle3", group=int(3)) mesh.add_element(np.array([1, 2, 3]), "Triangle3", group=int(3)) mesh.add_element(np.array([4, 2, 3]), "Triangle3", group=int(2)) # Method test 1 mesh_grp4 = mesh.set_submesh([3]) # Check results solution = np.array([[0, 1, 2], [1, 2, 3]]) results = mesh_grp4.element["Triangle3"].connectivity testA = np.sum(abs(solution - results)) msg = "Wrong result: returned " + str(results) + ", expected: " + str(solution) DELTA = 1e-10 self.assertAlmostEqual(testA, 0, msg=msg, delta=DELTA) # Method test 2 mesh_grp4 = mesh.set_submesh([3, 2]) # Check results solution = np.array([2, 3]) results = mesh_grp4.element["Segment2"].connectivity testA = np.sum(abs(solution - results)) msg = "Wrong result: returned " + str(results) + ", expected: " + str(solution) DELTA = 1e-10 self.assertAlmostEqual(testA, 0, msg=msg, delta=DELTA)