From b89a125516eb496ca11dd84947d9f909033c1e71 Mon Sep 17 00:00:00 2001 From: "Boeckenhoff, Daniel (dboe)" <daniel.boeckenhoff@ipp.mpg.de> Date: Tue, 14 Aug 2018 16:38:08 +0200 Subject: [PATCH] not converting the coordinate systems of the fields in core --- test/test_core.py | 30 ++++++++++++++++++++---------- tfields/core.py | 8 ++++---- tfields/mesh3D.py | 5 +++-- tfields/triangles3D.py | 6 ++++-- 4 files changed, 31 insertions(+), 18 deletions(-) diff --git a/test/test_core.py b/test/test_core.py index 4e5b824..70b07b6 100644 --- a/test/test_core.py +++ b/test/test_core.py @@ -3,6 +3,7 @@ import numpy as np from sympy.abc import x, y import unittest from tempfile import NamedTemporaryFile +import pickle import sympy # NOQA: F401 @@ -28,6 +29,7 @@ class Base_Test(object): """ transformer = self._inst.copy() transformer.transform(tfields.bases.CYLINDER) + self.assertTrue(tfields.Tensors(self._inst).equal(transformer, atol=ATOL)) self.assertTrue(self._inst.equal(transformer, atol=ATOL)) if len(self._inst) > 0: self.assertFalse(np.array_equal(self._inst, transformer)) @@ -67,11 +69,19 @@ class Base_Test(object): atol=ATOL) self.assertTrue(value) + def test_pickle(self): + with NamedTemporaryFile(suffix='.pickle') as out_file: + pickle.dump(self._inst, + out_file) + out_file.flush() + + reloaded = pickle.load(open(out_file.name, 'rb')) + self.assertTrue(self._inst.equal(reloaded)) + def tearDown(self): del self._inst - class Tensor_Fields_Test(object): def test_fields(self): # field is of type list @@ -83,6 +93,7 @@ class Tensor_Fields_Test(object): # fields are copied not reffered by a pointer self.assertFalse(field is target_field) + """ EMPTY TESTS """ @@ -97,6 +108,14 @@ class TensorFields_Empty_Test(Tensors_Empty_Test, Tensor_Fields_Test): def setUp(self): self._fields = [] self._inst = tfields.TensorFields([], dim=3) + + +class TensorMaps_Empty_Test(TensorFields_Empty_Test): + def setUp(self): + self._fields = [] + self._inst = tfields.TensorMaps([], dim=3) + self._maps = [] + self._maps_fields = [] class TensorFields_Copy_Test(TensorFields_Empty_Test): @@ -111,13 +130,6 @@ class TensorFields_Copy_Test(TensorFields_Empty_Test): self.assertTrue(self._fields[1].coord_sys, 'cartesian') -class TensorMaps_Empty_Test(TensorFields_Empty_Test): - def setUp(self): - self._fields = [] - self._inst = tfields.TensorMaps([], dim=3) - self._maps = [] - self._maps_fields = [] - class TensorMaps_Copy_Test(TensorMaps_Empty_Test): def setUp(self): base = [(-1, 1, 3)] * 3 @@ -140,7 +152,5 @@ class TensorMaps_Copy_Test(TensorMaps_Empty_Test): maps=self._maps) - - if __name__ == '__main__': unittest.main() diff --git a/tfields/core.py b/tfields/core.py index 4ef3863..97f3f83 100644 --- a/tfields/core.py +++ b/tfields/core.py @@ -1415,10 +1415,10 @@ class TensorFields(Tensors): inst = cls.__new__(cls, inst, *fields) return inst - def transform(self, coord_sys): - super(TensorFields, self).transform(coord_sys) - for field in self.fields: - field.transform(coord_sys) + # def transform(self, coord_sys): + # super(TensorFields, self).transform(coord_sys) + # # for field in self.fields: + # # field.transform(coord_sys) def equal(self, other, **kwargs): """ diff --git a/tfields/mesh3D.py b/tfields/mesh3D.py index e991267..5b83a6a 100644 --- a/tfields/mesh3D.py +++ b/tfields/mesh3D.py @@ -523,6 +523,7 @@ class Mesh3D(tfields.TensorMaps): def in_faces(self, points, delta, assign_multiple=False): """ Check whether points lie within triangles with Barycentric Technique + see Triangles3D.in_triangles """ masks = self.triangles().in_triangles(points, delta, assign_multiple=assign_multiple) @@ -536,7 +537,7 @@ class Mesh3D(tfields.TensorMaps): self.faces = self.faces[~face_delete_mask] self.faceScalars = self.faceScalars[~face_delete_mask] - def template(self, sub_mesh, delta=1e-9): + def template(self, sub_mesh): """ 'Manual' way to build a template that can be used with self.cut Returns: @@ -557,7 +558,7 @@ class Mesh3D(tfields.TensorMaps): """ face_indices = np.arange(self.maps[0].shape[0]) cents = tfields.Tensors(sub_mesh.centroids()) - mask = self.in_faces(cents, delta) + mask = self.in_faces(cents, delta=None) inst = sub_mesh.copy() if inst.maps: scalars = [] diff --git a/tfields/triangles3D.py b/tfields/triangles3D.py index c1cef3b..ccbe0e0 100644 --- a/tfields/triangles3D.py +++ b/tfields/triangles3D.py @@ -557,8 +557,10 @@ class Triangles3D(tfields.TensorFields): tensors (Points3D instance) optional: - delta (float): normal distance to a triangle, that the points - is concidered to be contained in the triangle. + delta (float / None): + float: normal distance to a triangle, that the points are + concidered to be contained in the triangle. + None: find the minimum distance assign_multiple (bool): if True, one point may belong to multiple triangles at the same time. In the other case the first occurence will be True the other False -- GitLab