Source code for Tests.Methods.Mesh.test_add_element

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

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


[docs]class unittest_add_element(TestCase): """unittest for add_element methods in Mesh and Element classes"""
[docs] def setUp(self): self.mesh = Mesh() self.mesh.element["Triangle3"] = ElementMat(nb_node_per_element=3) self.mesh.element["Segment2"] = ElementMat(nb_node_per_element=2)
[docs] def test_Mesh_ElementMat_1seg(self): """unittest with ElementMat and only 1 segment element""" node_tags = np.array([0, 1]) self.mesh.add_element(node_tags, "Segment2") # Check result testA = np.sum(abs(self.mesh.element["Segment2"].connectivity - node_tags)) msg = ( "Wrong result: returned " + str(self.mesh.element["Segment2"].connectivity) + ", expected: " + str(node_tags) ) DELTA = 1e-10 self.assertAlmostEqual(testA, 0, msg=msg, delta=DELTA) msg = ( "Wrong result: returned " + str(self.mesh.element["Segment2"].nb_elem) + ", expected: " + str(1) ) DELTA = 1e-10 self.assertAlmostEqual( self.mesh.element["Segment2"].nb_elem, 1, msg=msg, delta=DELTA )
[docs] def test_Mesh_ElementMat_2elem(self): """unittest with ElementMat and 2 segment element""" node_tags = np.array([0, 1]) self.mesh.add_element(node_tags, "Segment2") node_tags = np.array([1, 2]) self.mesh.add_element(node_tags, "Segment2") # Check result solution = np.array([[0, 1], [1, 2]]) testA = np.sum(abs(self.mesh.element["Segment2"].connectivity - solution)) msg = ( "Wrong result: returned " + str(self.mesh.element["Segment2"].connectivity) + ", expected: " + str(solution) ) DELTA = 1e-10 self.assertAlmostEqual(testA, 0, msg=msg, delta=DELTA)
[docs] def test_Mesh_ElementMat_2elem_1tgl(self): """unittest with ElementMat and 2 segment element and 1 triangle""" self.mesh.add_element(np.array([0, 1]), "Segment2") self.mesh.add_element(np.array([1, 2]), "Segment2") solution = np.array([1, 2, 3]) self.mesh.add_element(solution, "Triangle3") testA = np.sum(abs(self.mesh.element["Triangle3"].connectivity - solution)) msg = ( "Wrong result: returned " + str(self.mesh.element["Triangle3"].connectivity) + ", expected: " + str(solution) ) DELTA = 1e-10 self.assertAlmostEqual(testA, 0, msg=msg, delta=DELTA)
[docs] def test_Mesh_ElementMat_2elem_1tgl_add_seg_exist(self): """unittest with ElementMat and 2 segment element and 1 triangle, try to add an already existing segment.""" self.mesh.add_element(np.array([0, 1]), "Segment2") self.mesh.add_element(np.array([1, 2]), "Segment2") self.mesh.add_element(np.array([1, 2, 3]), "Triangle3") self.mesh.add_element(np.array([0, 1]), "Segment2") # already exist solution = np.array([[0, 1], [1, 2]]) testA = np.sum(abs(self.mesh.element["Segment2"].connectivity - solution)) msg = ( "Wrong result: returned " + str(self.mesh.element["Segment2"].connectivity) + ", expected: " + str(solution) ) DELTA = 1e-10 self.assertAlmostEqual(testA, 0, msg=msg, delta=DELTA)
[docs] def test_Mesh_ElementMat_2elem_1tgl_add_tgl_exist(self): """unittest with ElementMat and 2 segment element and 1 triangle, try to add an already existing triangle.""" self.mesh.add_element(np.array([0, 1]), "Segment2") self.mesh.add_element(np.array([1, 2]), "Segment2") self.mesh.add_element(np.array([1, 2, 3]), "Triangle3") self.mesh.add_element(np.array([2, 3, 1]), "Triangle3") # already exist solution = np.array([1, 2, 3]) testA = np.sum(abs(self.mesh.element["Triangle3"].connectivity - solution)) msg = ( "Wrong result: returned " + str(self.mesh.element["Triangle3"].connectivity) + ", expected: " + str(solution) ) DELTA = 1e-10 self.assertAlmostEqual(testA, 0, msg=msg, delta=DELTA)
[docs] def test_Mesh_ElementMat_2elem_2tgl(self): """unittest with ElementMat and 2 segment element and 1 triangle, add 1 triangle.""" self.mesh.add_element(np.array([0, 1]), "Segment2") self.mesh.add_element(np.array([1, 2]), "Segment2") self.mesh.add_element(np.array([1, 2, 3]), "Triangle3") self.mesh.add_element(np.array([2, 3, 0]), "Triangle3") # already exist solution = np.array([[1, 2, 3], [2, 3, 0]]) testA = np.sum(abs(self.mesh.element["Triangle3"].connectivity - solution)) msg = ( "Wrong result: returned " + str(self.mesh.element["Triangle3"].connectivity) + ", expected: " + str(solution) ) DELTA = 1e-10 self.assertAlmostEqual(testA, 0, msg=msg, delta=DELTA)
[docs] def test_Mesh_ElementMat_2elem_2tgl_add_tgl_group(self): """unittest with ElementMat and 2 segment element and 1 triangle, add 1 triangle with a group number.""" self.mesh.add_element(np.array([0, 1]), "Segment2") self.mesh.add_element(np.array([1, 2]), "Segment2") self.mesh.add_element(np.array([1, 2, 3]), "Triangle3") self.mesh.add_element(np.array([2, 3, 0]), "Triangle3") # already exist self.mesh.add_element(np.array([2, 0, 1]), "Triangle3", group=3) solution = np.array([-1, -1, 3], dtype=int) result = self.mesh.element["Triangle3"].group testA = (result == solution).all() msg = "Wrong result: returned " + str(result) + ", expected: " + str(solution) self.assertTrue(testA, msg=msg)
[docs] def test_Mesh_ElementMat_add_stupid(self): """unittest with ElementMat and 2 segment element and 1 triangle, add 1 triangle with a group number.""" self.mesh.add_element(np.array([0, 1]), "Segment2") self.mesh.add_element(None, "Segment2") self.mesh.add_element(np.array([0, 1, 2]), "Segment2") self.mesh.add_element(np.array([1, 1]), "Segment2") solution = np.array([0, 1], dtype=int) result = self.mesh.element["Segment2"].connectivity testA = np.sum(abs(result - solution)) msg = "Wrong result: returned " + str(result) + ", expected: " + str(solution) DELTA = 1e-10 self.assertAlmostEqual(testA, 0, msg=msg, delta=DELTA)