-
Notifications
You must be signed in to change notification settings - Fork 62
/
t_python_blueprint_mesh.py
174 lines (153 loc) · 7.25 KB
/
t_python_blueprint_mesh.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# Copyright (c) Lawrence Livermore National Security, LLC and other Conduit
# Project developers. See top-level LICENSE AND COPYRIGHT files for dates and
# other details. No copyright assignment is required to contribute to Conduit.
"""
file: t_python_blueprint_mesh.py
description: Simple unit test for the conduit blueprint mesh python module.
"""
import sys
import unittest
import conduit.blueprint as blueprint
import conduit.blueprint.mesh
import conduit.blueprint.mesh.examples
from conduit import Node
class Test_Blueprint_Mesh(unittest.TestCase):
def has_empty_warning(self, info):
res = False
if info.dtype().is_object() and info.has_child("info"):
iinfo = info.fetch('info')
if iinfo.dtype().is_object() or iinfo.dtype().is_list():
iitr = iinfo.children()
for ival in iitr:
inode = ival.node()
res = res or (inode.dtype().is_string() and "is an empty mesh" in inode.to_string())
return res
def test_basic_and_verify(self):
n = Node()
info = Node()
self.assertTrue(blueprint.verify("mesh",n,info))
self.assertTrue(self.has_empty_warning(info))
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertTrue(self.has_empty_warning(info))
blueprint.mesh.examples.basic("hexs",2,2,2,n);
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertFalse(self.has_empty_warning(info))
n_idx = Node()
blueprint.mesh.generate_index(n,"",1,n_idx)
self.assertTrue(blueprint.verify("mesh/index",n_idx,info))
self.assertTrue(blueprint.mesh.verify(protocol="index",node=n_idx,info=info))
def test_braid_and_verify(self):
n = Node()
info = Node()
self.assertTrue(blueprint.verify("mesh",n,info))
self.assertTrue(self.has_empty_warning(info))
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertTrue(self.has_empty_warning(info))
blueprint.mesh.examples.braid("hexs",2,2,2,n);
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertFalse(self.has_empty_warning(info))
n_idx = Node()
blueprint.mesh.generate_index(n,"",1,n_idx)
self.assertTrue(blueprint.verify("mesh/index",n_idx,info))
self.assertTrue(blueprint.mesh.verify(protocol="index",node=n_idx,info=info))
def test_julia_and_verify(self):
n = Node()
info = Node()
self.assertTrue(blueprint.verify("mesh",n,info))
self.assertTrue(self.has_empty_warning(info))
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertTrue(self.has_empty_warning(info))
blueprint.mesh.examples.julia(200,200,
-2.0, 2.0,
-2.0, 2.0,
0.285, 0.01,
n);
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertFalse(self.has_empty_warning(info))
n_idx = Node()
blueprint.mesh.generate_index(n,"",1,n_idx)
self.assertTrue(blueprint.verify("mesh/index",n_idx,info))
self.assertTrue(blueprint.mesh.verify(protocol="index",node=n_idx,info=info))
def test_spiral_and_verify(self):
n = Node()
info = Node()
self.assertTrue(blueprint.verify("mesh",n,info))
self.assertTrue(self.has_empty_warning(info))
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertTrue(self.has_empty_warning(info))
blueprint.mesh.examples.spiral(4,n);
self.assertTrue(blueprint.mesh.verify(n["domain_000000"],info))
self.assertFalse(self.has_empty_warning(info))
n_idx = Node()
blueprint.mesh.generate_index(n["domain_000000"],"",4,n_idx)
self.assertTrue(blueprint.verify("mesh/index",n_idx,info))
self.assertTrue(blueprint.mesh.verify(protocol="index",node=n_idx,info=info))
def test_julia_nestsets(self):
n = Node()
info = Node()
self.assertTrue(blueprint.verify("mesh",n,info))
self.assertTrue(self.has_empty_warning(info))
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertTrue(self.has_empty_warning(info))
# simple case
blueprint.mesh.examples.julia_nestsets_simple(-2.0, 2.0,
-2.0, 2.0,
0.285, 0.01,
n);
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertFalse(self.has_empty_warning(info))
n_idx = Node()
blueprint.mesh.generate_index(n["domain_000000"],"",1,n_idx)
self.assertTrue(blueprint.verify("mesh/index",n_idx,info))
self.assertTrue(blueprint.mesh.verify(protocol="index",node=n_idx,info=info))
# complex case
blueprint.mesh.examples.julia_nestsets_complex(50,50,
-2.0, 2.0,
-2.0, 2.0,
0.285, 0.01,
3,
n);
self.assertTrue(blueprint.mesh.verify(n,info))
n_idx = Node()
blueprint.mesh.generate_index(n["domain_000000"],"",1,n_idx)
self.assertTrue(blueprint.verify("mesh/index",n_idx,info))
self.assertTrue(blueprint.mesh.verify(protocol="index",node=n_idx,info=info))
def test_venn(self):
n = Node()
info = Node()
self.assertTrue(blueprint.verify("mesh",n,info))
self.assertTrue(self.has_empty_warning(info))
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertTrue(self.has_empty_warning(info))
for matset_type in ['full',
'sparse_by_material',
'sparse_by_element' ]:
blueprint.mesh.examples.venn(matset_type,
10,10,
.5,
n);
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertFalse(self.has_empty_warning(info))
n_idx = Node()
blueprint.mesh.generate_index(n,"",1,n_idx)
self.assertTrue(blueprint.verify("mesh/index",n_idx,info))
print(info)
self.assertTrue(blueprint.mesh.verify(protocol="index",node=n_idx,info=info))
print(info)
def test_polytess(self):
n = Node()
info = Node()
self.assertTrue(blueprint.verify("mesh",n,info))
self.assertTrue(self.has_empty_warning(info))
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertTrue(self.has_empty_warning(info))
# simple case
blueprint.mesh.examples.polytess(3,n);
self.assertTrue(blueprint.mesh.verify(n,info))
self.assertFalse(self.has_empty_warning(info))
n_idx = Node()
blueprint.mesh.generate_index(n,"",1,n_idx)
self.assertTrue(blueprint.verify("mesh/index",n_idx,info))
self.assertTrue(blueprint.mesh.verify(protocol="index",node=n_idx,info=info))
if __name__ == '__main__':
unittest.main()