Skip to content

Commit e61a99c

Browse files
committed
Renamed FEMultiBlockMesh::UpdateMB to BuildMB, and UpdateMB now has a different purpose.
1 parent 46f74e6 commit e61a99c

17 files changed

+219
-161
lines changed

MeshTools/FEBox.cpp

+15-9
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ bool FEBox::CreateRegularBoxMesh()
127127
m_by = GetBoolValue(GY2);
128128
m_bz = GetBoolValue(GZ2);
129129

130-
FEMultiBlockMesh::Clear();
130+
ClearMB();
131131

132132
// create the MB nodes
133133
AddNode(vec3d(-w, -h, 0));
@@ -145,8 +145,8 @@ bool FEBox::CreateRegularBoxMesh()
145145
b1.SetSizes(m_nx, m_ny, m_nz);
146146
b1.SetZoning(m_gx, m_gy, m_gz, m_bx, m_by, m_bz);
147147

148-
// update the MB data
149-
UpdateMB();
148+
// build the MB data
149+
BuildMB();
150150

151151
// assign face ID's
152152
SetBlockFaceID(b1, 0, 1, 2, 3, 4, 5);
@@ -167,6 +167,8 @@ bool FEBox::CreateRegularBoxMesh()
167167
GetMBNode(6).SetID(6);
168168
GetMBNode(7).SetID(7);
169169

170+
UpdateMB();
171+
170172
return true;
171173
}
172174

@@ -246,7 +248,7 @@ bool FEBox::CreateButterfly3DMesh()
246248
b2.SetZoning(m_gr, m_gx, m_gz, m_br, m_bx, m_bz);
247249

248250
MBBlock& b3 = AddBlock(9, 1, 2, 10, 13, 5, 6, 14);
249-
b3.SetNodes(9, 1, 2, 10, 13, 5, 6, 14);
251+
b3.SetID(0);
250252
b3.SetSizes(m_ns, m_ny, m_nz);
251253
b3.SetZoning(m_gr, m_gy, m_gz, m_br, m_by, m_bz);
252254

@@ -271,7 +273,7 @@ bool FEBox::CreateButterfly3DMesh()
271273
b7.SetZoning(m_gx, m_gy, m_gr, m_bx, m_by, m_br);
272274

273275
// update the MB data
274-
UpdateMB();
276+
BuildMB();
275277

276278
// next, we assign the face ID's
277279
MBFace& F1 = GetBlockFace(1, 1); F1.SetID(0);
@@ -305,6 +307,8 @@ bool FEBox::CreateButterfly3DMesh()
305307
GetMBNode(6).SetID(6);
306308
GetMBNode(7).SetID(7);
307309

310+
UpdateMB();
311+
308312
return true;
309313
}
310314

@@ -397,7 +401,7 @@ bool FEBox::CreateButterfly2DMesh()
397401
b5.SetZoning(m_gr, (m_by ? m_gy : 1 / m_gy), m_gz, m_br, m_by, m_bz);
398402

399403
// update the MB data
400-
UpdateMB();
404+
BuildMB();
401405

402406
// next, we assign the face ID's
403407
MBFace& F1 = GetBlockFace(1, 1); F1.SetID(0);
@@ -441,6 +445,8 @@ bool FEBox::CreateButterfly2DMesh()
441445
GetMBNode(6).SetID(6);
442446
GetMBNode(7).SetID(7);
443447

448+
UpdateMB();
449+
444450
return true;
445451
}
446452

@@ -461,7 +467,7 @@ FEMesh* FEBox::CreateButterfly3D()
461467
}
462468

463469
// create the MB
464-
return BuildMesh();
470+
return FEMultiBlockMesh::BuildMesh();
465471
}
466472

467473
//-----------------------------------------------------------------------------
@@ -481,7 +487,7 @@ FEMesh* FEBox::CreateButterfly2D()
481487
}
482488

483489
// create the MB
484-
return BuildMesh();
490+
return FEMultiBlockMesh::BuildMesh();
485491
}
486492

487493
//-----------------------------------------------------------------------------
@@ -518,7 +524,7 @@ FEMesh* FEBox::CreateRegularHEX()
518524
break;
519525
}
520526

521-
return BuildMesh();
527+
return FEMultiBlockMesh::BuildMesh();
522528
}
523529

524530
//-----------------------------------------------------------------------------

MeshTools/FEBoxInBox.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ FEMesh* FEBoxInBox::BuildMesh()
165165
b6.SetZoning(gx, gy, gr, bx, by, br);
166166

167167
// update the MB data
168-
UpdateMB();
168+
BuildMB();
169169

170170
// next, we assign the face ID's
171171
MBFace& F1 = GetBlockFace(0, 0); F1.SetID(0);

MeshTools/FECone.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ FEMesh* FECone::BuildMesh()
227227
b12.SetZoning(fr, 1, fz, false, false, m_bz);
228228

229229
// update the MB data
230-
UpdateMB();
230+
BuildMB();
231231

232232
// assign face ID's
233233
SetBlockFaceID(b1, -1, -1, -1, -1, 4, 5);

MeshTools/FECylinder.cpp

+102-89
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ FEMesh* FECylinder::BuildMesh()
8383
}
8484

8585
//-----------------------------------------------------------------------------
86-
// Build a butterfly mesh
87-
FEMesh* FECylinder::BuildButterfly()
86+
bool FECylinder::BuildMultiBlock()
8887
{
8988
assert(m_pobj);
9089

@@ -122,122 +121,124 @@ FEMesh* FECylinder::BuildButterfly()
122121
double a = m_r * b;
123122
double c = R1;
124123

124+
ClearMB();
125+
125126
// create the MB nodes
126127
m_MBNode.resize(34);
127-
m_MBNode[ 0].m_r = vec3d( -a, -a, 0);
128-
m_MBNode[ 1].m_r = vec3d( 0, -a, 0);
129-
m_MBNode[ 2].m_r = vec3d( a, -a, 0);
130-
m_MBNode[ 3].m_r = vec3d( -a, 0, 0);
131-
m_MBNode[ 4].m_r = vec3d( 0, 0, 0);
132-
m_MBNode[ 5].m_r = vec3d( a, 0, 0);
133-
m_MBNode[ 6].m_r = vec3d( -a, a, 0);
134-
m_MBNode[ 7].m_r = vec3d( 0, a, 0);
135-
m_MBNode[ 8].m_r = vec3d( a, a, 0);
136-
137-
m_MBNode[ 9].m_r = vec3d(-a, -a, h);
138-
m_MBNode[10].m_r = vec3d( 0, -a, h);
139-
m_MBNode[11].m_r = vec3d( a, -a, h);
140-
m_MBNode[12].m_r = vec3d(-a, 0, h);
141-
m_MBNode[13].m_r = vec3d( 0, 0, h);
142-
m_MBNode[14].m_r = vec3d( a, 0, h);
143-
m_MBNode[15].m_r = vec3d(-a, a, h);
144-
m_MBNode[16].m_r = vec3d( 0, a, h);
145-
m_MBNode[17].m_r = vec3d( a, a, h);
128+
m_MBNode[0].m_r = vec3d(-a, -a, 0);
129+
m_MBNode[1].m_r = vec3d(0, -a, 0);
130+
m_MBNode[2].m_r = vec3d(a, -a, 0);
131+
m_MBNode[3].m_r = vec3d(-a, 0, 0);
132+
m_MBNode[4].m_r = vec3d(0, 0, 0);
133+
m_MBNode[5].m_r = vec3d(a, 0, 0);
134+
m_MBNode[6].m_r = vec3d(-a, a, 0);
135+
m_MBNode[7].m_r = vec3d(0, a, 0);
136+
m_MBNode[8].m_r = vec3d(a, a, 0);
137+
138+
m_MBNode[9].m_r = vec3d(-a, -a, h);
139+
m_MBNode[10].m_r = vec3d(0, -a, h);
140+
m_MBNode[11].m_r = vec3d(a, -a, h);
141+
m_MBNode[12].m_r = vec3d(-a, 0, h);
142+
m_MBNode[13].m_r = vec3d(0, 0, h);
143+
m_MBNode[14].m_r = vec3d(a, 0, h);
144+
m_MBNode[15].m_r = vec3d(-a, a, h);
145+
m_MBNode[16].m_r = vec3d(0, a, h);
146+
m_MBNode[17].m_r = vec3d(a, a, h);
146147

147148
m_MBNode[18].m_r = vec3d(-b, -b, 0);
148-
m_MBNode[19].m_r = vec3d( 0, -c, 0);
149-
m_MBNode[20].m_r = vec3d( b, -b, 0);
150-
m_MBNode[21].m_r = vec3d( c, 0, 0);
151-
m_MBNode[22].m_r = vec3d( b, b, 0);
152-
m_MBNode[23].m_r = vec3d( 0, c, 0);
153-
m_MBNode[24].m_r = vec3d(-b, b, 0);
154-
m_MBNode[25].m_r = vec3d(-c, 0, 0);
149+
m_MBNode[19].m_r = vec3d(0, -c, 0);
150+
m_MBNode[20].m_r = vec3d(b, -b, 0);
151+
m_MBNode[21].m_r = vec3d(c, 0, 0);
152+
m_MBNode[22].m_r = vec3d(b, b, 0);
153+
m_MBNode[23].m_r = vec3d(0, c, 0);
154+
m_MBNode[24].m_r = vec3d(-b, b, 0);
155+
m_MBNode[25].m_r = vec3d(-c, 0, 0);
155156

156157
m_MBNode[26].m_r = vec3d(-b, -b, h);
157-
m_MBNode[27].m_r = vec3d( 0, -c, h);
158-
m_MBNode[28].m_r = vec3d( b, -b, h);
159-
m_MBNode[29].m_r = vec3d( c, 0, h);
160-
m_MBNode[30].m_r = vec3d( b, b, h);
161-
m_MBNode[31].m_r = vec3d( 0, c, h);
162-
m_MBNode[32].m_r = vec3d(-b, b, h);
163-
m_MBNode[33].m_r = vec3d(-c, 0, h);
158+
m_MBNode[27].m_r = vec3d(0, -c, h);
159+
m_MBNode[28].m_r = vec3d(b, -b, h);
160+
m_MBNode[29].m_r = vec3d(c, 0, h);
161+
m_MBNode[30].m_r = vec3d(b, b, h);
162+
m_MBNode[31].m_r = vec3d(0, c, h);
163+
m_MBNode[32].m_r = vec3d(-b, b, h);
164+
m_MBNode[33].m_r = vec3d(-c, 0, h);
164165

165166
// create the MB blocks
166167
m_MBlock.resize(12);
167168
MBBlock& b1 = m_MBlock[0];
168169
b1.SetID(0);
169-
b1.SetNodes(0,1,4,3,9,10,13,12);
170-
b1.SetSizes(nd,nd,nz);
171-
b1.SetZoning(1,1,fz, false, false, m_bz);
170+
b1.SetNodes(0, 1, 4, 3, 9, 10, 13, 12);
171+
b1.SetSizes(nd, nd, nz);
172+
b1.SetZoning(1, 1, fz, false, false, m_bz);
172173

173174
MBBlock& b2 = m_MBlock[1];
174175
b2.SetID(0);
175-
b2.SetNodes(1,2,5,4,10,11,14,13);
176-
b2.SetSizes(nd,nd,nz);
177-
b2.SetZoning(1,1,fz, false, false, m_bz);
176+
b2.SetNodes(1, 2, 5, 4, 10, 11, 14, 13);
177+
b2.SetSizes(nd, nd, nz);
178+
b2.SetZoning(1, 1, fz, false, false, m_bz);
178179

179180
MBBlock& b3 = m_MBlock[2];
180181
b3.SetID(0);
181-
b3.SetNodes(3,4,7,6,12,13,16,15);
182-
b3.SetSizes(nd,nd,nz);
183-
b3.SetZoning(1,1,fz, false, false, m_bz);
182+
b3.SetNodes(3, 4, 7, 6, 12, 13, 16, 15);
183+
b3.SetSizes(nd, nd, nz);
184+
b3.SetZoning(1, 1, fz, false, false, m_bz);
184185

185186
MBBlock& b4 = m_MBlock[3];
186187
b4.SetID(0);
187-
b4.SetNodes(4,5,8,7,13,14,17,16);
188-
b4.SetSizes(nd,nd,nz);
189-
b4.SetZoning(1,1,fz, false, false, m_bz);
188+
b4.SetNodes(4, 5, 8, 7, 13, 14, 17, 16);
189+
b4.SetSizes(nd, nd, nz);
190+
b4.SetZoning(1, 1, fz, false, false, m_bz);
190191

191192
MBBlock& b5 = m_MBlock[4];
192193
b5.SetID(0);
193-
b5.SetNodes(0,18,19,1,9,26,27,10);
194-
b5.SetSizes(ns,nd,nz);
195-
b5.SetZoning(fr,1,fz, false, false, m_bz);
194+
b5.SetNodes(0, 18, 19, 1, 9, 26, 27, 10);
195+
b5.SetSizes(ns, nd, nz);
196+
b5.SetZoning(fr, 1, fz, false, false, m_bz);
196197

197198
MBBlock& b6 = m_MBlock[5];
198199
b6.SetID(0);
199-
b6.SetNodes(1,19,20,2,10,27,28,11);
200-
b6.SetSizes(ns,nd,nz);
201-
b6.SetZoning(fr,1,fz, false, false, m_bz);
200+
b6.SetNodes(1, 19, 20, 2, 10, 27, 28, 11);
201+
b6.SetSizes(ns, nd, nz);
202+
b6.SetZoning(fr, 1, fz, false, false, m_bz);
202203

203204
MBBlock& b7 = m_MBlock[6];
204205
b7.SetID(0);
205-
b7.SetNodes(2,20,21,5,11,28,29,14);
206-
b7.SetSizes(ns,nd,nz);
207-
b7.SetZoning(fr,1,fz, false, false, m_bz);
206+
b7.SetNodes(2, 20, 21, 5, 11, 28, 29, 14);
207+
b7.SetSizes(ns, nd, nz);
208+
b7.SetZoning(fr, 1, fz, false, false, m_bz);
208209

209210
MBBlock& b8 = m_MBlock[7];
210211
b8.SetID(0);
211-
b8.SetNodes(5,21,22,8,14,29,30,17);
212-
b8.SetSizes(ns,nd,nz);
213-
b8.SetZoning(fr,1,fz, false, false, m_bz);
212+
b8.SetNodes(5, 21, 22, 8, 14, 29, 30, 17);
213+
b8.SetSizes(ns, nd, nz);
214+
b8.SetZoning(fr, 1, fz, false, false, m_bz);
214215

215216
MBBlock& b9 = m_MBlock[8];
216217
b9.SetID(0);
217-
b9.SetNodes(8,22,23,7,17,30,31,16);
218-
b9.SetSizes(ns,nd,nz);
219-
b9.SetZoning(fr,1,fz, false, false, m_bz);
218+
b9.SetNodes(8, 22, 23, 7, 17, 30, 31, 16);
219+
b9.SetSizes(ns, nd, nz);
220+
b9.SetZoning(fr, 1, fz, false, false, m_bz);
220221

221222
MBBlock& b10 = m_MBlock[9];
222223
b10.SetID(0);
223-
b10.SetNodes(7,23,24,6,16,31,32,15);
224-
b10.SetSizes(ns,nd,nz);
225-
b10.SetZoning(fr,1,fz, false, false, m_bz);
224+
b10.SetNodes(7, 23, 24, 6, 16, 31, 32, 15);
225+
b10.SetSizes(ns, nd, nz);
226+
b10.SetZoning(fr, 1, fz, false, false, m_bz);
226227

227228
MBBlock& b11 = m_MBlock[10];
228229
b11.SetID(0);
229-
b11.SetNodes(6,24,25,3,15,32,33,12);
230-
b11.SetSizes(ns,nd,nz);
231-
b11.SetZoning(fr,1,fz, false, false, m_bz);
230+
b11.SetNodes(6, 24, 25, 3, 15, 32, 33, 12);
231+
b11.SetSizes(ns, nd, nz);
232+
b11.SetZoning(fr, 1, fz, false, false, m_bz);
232233

233234
MBBlock& b12 = m_MBlock[11];
234235
b12.SetID(0);
235-
b12.SetNodes(3,25,18,0,12,33,26,9);
236-
b12.SetSizes(ns,nd,nz);
237-
b12.SetZoning(fr,1,fz, false, false, m_bz);
236+
b12.SetNodes(3, 25, 18, 0, 12, 33, 26, 9);
237+
b12.SetSizes(ns, nd, nz);
238+
b12.SetZoning(fr, 1, fz, false, false, m_bz);
238239

239240
// update the MB data
240-
UpdateMB();
241+
BuildMB();
241242

242243
// assign face ID's
243244
/*
@@ -259,23 +260,23 @@ FEMesh* FECylinder::BuildButterfly()
259260
SetBlockFaceID(b2, -1, -1, -1, -1, 0, 5);
260261
SetBlockFaceID(b3, -1, -1, -1, -1, 0, 5);
261262
SetBlockFaceID(b4, -1, -1, -1, -1, 0, 5);
262-
SetBlockFaceID(b5, -1, 3, -1, -1, 0, 5);
263-
SetBlockFaceID(b6, -1, 4, -1, -1, 0, 5);
264-
SetBlockFaceID(b7, -1, 4, -1, -1, 0, 5);
265-
SetBlockFaceID(b8, -1, 1, -1, -1, 0, 5);
266-
SetBlockFaceID(b9, -1, 1, -1, -1, 0, 5);
267-
SetBlockFaceID(b10, -1, 2, -1, -1, 0, 5);
268-
SetBlockFaceID(b11, -1, 2, -1, -1, 0, 5);
269-
SetBlockFaceID(b12, -1, 3, -1, -1, 0, 5);
270-
271-
MBFace& F1 = GetBlockFace( 7, 1); SetFaceEdgeID(F1, 0, -1, 4, 8);
272-
MBFace& F2 = GetBlockFace( 8, 1); SetFaceEdgeID(F2, 0, 9, 4, -1);
273-
MBFace& F3 = GetBlockFace( 9, 1); SetFaceEdgeID(F3, 1, -1, 5, 9);
263+
SetBlockFaceID(b5, -1, 3, -1, -1, 0, 5);
264+
SetBlockFaceID(b6, -1, 4, -1, -1, 0, 5);
265+
SetBlockFaceID(b7, -1, 4, -1, -1, 0, 5);
266+
SetBlockFaceID(b8, -1, 1, -1, -1, 0, 5);
267+
SetBlockFaceID(b9, -1, 1, -1, -1, 0, 5);
268+
SetBlockFaceID(b10, -1, 2, -1, -1, 0, 5);
269+
SetBlockFaceID(b11, -1, 2, -1, -1, 0, 5);
270+
SetBlockFaceID(b12, -1, 3, -1, -1, 0, 5);
271+
272+
MBFace& F1 = GetBlockFace(7, 1); SetFaceEdgeID(F1, 0, -1, 4, 8);
273+
MBFace& F2 = GetBlockFace(8, 1); SetFaceEdgeID(F2, 0, 9, 4, -1);
274+
MBFace& F3 = GetBlockFace(9, 1); SetFaceEdgeID(F3, 1, -1, 5, 9);
274275
MBFace& F4 = GetBlockFace(10, 1); SetFaceEdgeID(F4, 1, 10, 5, -1);
275276
MBFace& F5 = GetBlockFace(11, 1); SetFaceEdgeID(F5, 2, -1, 6, 10);
276-
MBFace& F6 = GetBlockFace( 4, 1); SetFaceEdgeID(F6, 2, 11, 6, -1);
277-
MBFace& F7 = GetBlockFace( 5, 1); SetFaceEdgeID(F7, 3, -1, 7, 11);
278-
MBFace& F8 = GetBlockFace( 6, 1); SetFaceEdgeID(F8, 3, 8, 7, -1);
277+
MBFace& F6 = GetBlockFace(4, 1); SetFaceEdgeID(F6, 2, 11, 6, -1);
278+
MBFace& F7 = GetBlockFace(5, 1); SetFaceEdgeID(F7, 3, -1, 7, 11);
279+
MBFace& F8 = GetBlockFace(6, 1); SetFaceEdgeID(F8, 3, 8, 7, -1);
279280

280281
GetFaceEdge(F1, 0).edge.m_ntype = EDGE_ZARC;
281282
GetFaceEdge(F1, 2).edge.m_ntype = EDGE_ZARC; GetFaceEdge(F1, 2).m_winding = -1;
@@ -303,11 +304,23 @@ FEMesh* FECylinder::BuildButterfly()
303304
m_MBNode[33].SetID(6);
304305
m_MBNode[27].SetID(7);
305306

307+
UpdateMB();
308+
309+
return true;
310+
}
311+
312+
//-----------------------------------------------------------------------------
313+
// Build a butterfly mesh
314+
FEMesh* FECylinder::BuildButterfly()
315+
{
316+
// create the multiblock data
317+
BuildMultiBlock();
318+
306319
// set element type
307320
int nelem = GetIntValue(ELEM_TYPE);
308321
switch (nelem)
309322
{
310-
case 0: SetElementType(FE_HEX8 ); break;
323+
case 0: SetElementType(FE_HEX8); break;
311324
case 1: SetElementType(FE_HEX20); break;
312325
case 2: SetElementType(FE_HEX27); break;
313326
}
@@ -821,7 +834,7 @@ FEMesh* FECylinder2::BuildButterfly()
821834
b12.SetZoning(fr,1,fz, false, false, m_bz);
822835

823836
// update the MB data
824-
UpdateMB();
837+
BuildMB();
825838

826839
// assign face ID's
827840
SetBlockFaceID(b1, -1, -1, -1, -1, 0, 5);

0 commit comments

Comments
 (0)