Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Phillip Lino Rall
UGBlocks_V3
Commits
6318c60e
Commit
6318c60e
authored
Aug 26, 2020
by
Phillip Lino Rall
Browse files
rayspace interpolatir improved: added new efficient interpolation method, should work better
parent
fe3e6399
Changes
8
Hide whitespace changes
Inline
Side-by-side
program/source/extemp/variable.h
View file @
6318c60e
...
@@ -514,6 +514,18 @@ inline double Variable<double>::Give_data<hexahedronEl> ( params_in ) const {
...
@@ -514,6 +514,18 @@ inline double Variable<double>::Give_data<hexahedronEl> ( params_in ) const {
template
<
>
template
<
>
template
<
>
template
<
>
inline
void
Variable
<
double
>::
Set_data
<
hexahedronEl
>
(
params_in
,
double
value
)
{
inline
void
Variable
<
double
>::
Set_data
<
hexahedronEl
>
(
params_in
,
double
value
)
{
if
(
id
==
4
&&
i
==
8
&&
j
==
8
&&
k
==
8
)
{
std
::
cout
<<
"broh "
<<
std
::
endl
;
}
else
if
(
id
==
5
&&
i
==
0
&&
j
==
0
&&
k
==
8
)
{
std
::
cout
<<
"broh "
<<
std
::
endl
;
}
else
if
(
id
==
8
&&
i
==
0
&&
j
==
8
&&
k
==
8
)
{
std
::
cout
<<
"broh "
<<
std
::
endl
;
}
data_hexahedra
[
id
][
i
+
(
Nx
+
1
)
*
(
j
+
(
Ny
+
1
)
*
k
)
]
=
value
;
data_hexahedra
[
id
][
i
+
(
Nx
+
1
)
*
(
j
+
(
Ny
+
1
)
*
k
)
]
=
value
;
}
}
...
...
program/source/grid/blockgrid.cc
View file @
6318c60e
...
@@ -1082,7 +1082,8 @@ void Blockgrid_coordinates::init_blockgrid_coordinates_boundary()
...
@@ -1082,7 +1082,8 @@ void Blockgrid_coordinates::init_blockgrid_coordinates_boundary()
int
Ny
=
bg
->
Give_Ny_hexahedron
(
id_hex
)
+
1
;
int
Ny
=
bg
->
Give_Ny_hexahedron
(
id_hex
)
+
1
;
int
Nz
=
bg
->
Give_Nz_hexahedron
(
id_hex
)
+
1
;
int
Nz
=
bg
->
Give_Nz_hexahedron
(
id_hex
)
+
1
;
blockgrid_hexa_boundary
.
at
(
id_hex
).
resize
(
Nx
*
Ny
*
Nz
);
blockgrid_hexa_boundary
.
at
(
id_hex
).
resize
(
Nx
*
Ny
*
Nz
);
for
(
int
i
=
0
;
i
<
Nx
;
++
i
)
for
(
int
j
=
0
;
j
<
Ny
;
++
j
)
for
(
int
k
=
0
;
k
<
Nz
;
++
k
)
//for(int i=0;i<Nx;++i) for(int j=0;j<Ny;++j) for(int k=0;k<Nz;++k)
for
(
int
k
=
0
;
k
<
Nz
;
++
k
)
for
(
int
j
=
0
;
j
<
Ny
;
++
j
)
for
(
int
i
=
0
;
i
<
Nx
;
++
i
)
{
{
//if ((i > 0 || i < Nx-1) ^ (j > 0 || j < Ny-1) ^ (k > 0 || k < Nz-1))
//if ((i > 0 || i < Nx-1) ^ (j > 0 || j < Ny-1) ^ (k > 0 || k < Nz-1))
...
@@ -1102,13 +1103,14 @@ void Blockgrid_coordinates::init_blockgrid_coordinates_boundary()
...
@@ -1102,13 +1103,14 @@ void Blockgrid_coordinates::init_blockgrid_coordinates_boundary()
int
NxInner
=
bg
->
Give_Nx_hexahedron
(
id_hexInner
)
+
1
;
int
NxInner
=
bg
->
Give_Nx_hexahedron
(
id_hexInner
)
+
1
;
int
NyInner
=
bg
->
Give_Ny_hexahedron
(
id_hexInner
)
+
1
;
int
NyInner
=
bg
->
Give_Ny_hexahedron
(
id_hexInner
)
+
1
;
int
NzInner
=
bg
->
Give_Nz_hexahedron
(
id_hexInner
)
+
1
;
int
NzInner
=
bg
->
Give_Nz_hexahedron
(
id_hexInner
)
+
1
;
for
(
int
iInner
=
0
;
iInner
<
NxInner
;
++
iInner
)
for
(
int
jInner
=
0
;
jInner
<
NyInner
;
++
jInner
)
for
(
int
kInner
=
0
;
kInner
<
NzInner
;
++
kInner
)
//for(int iInner=0;iInner<NxInner;++iInner) for(int jInner=0;jInner<NyInner;++jInner) for(int kInner=0;kInner<NzInner;++kInner)
for
(
int
kInner
=
0
;
kInner
<
NzInner
;
++
kInner
)
for
(
int
jInner
=
0
;
jInner
<
NyInner
;
++
jInner
)
for
(
int
iInner
=
0
;
iInner
<
NxInner
;
++
iInner
)
{
{
// not sure which if loop is correct:
// not sure which if loop is correct:
//if ((iInner > 0 || iInner < NxInner-1) ^ (jInner > 0 || jInner < NyInner-1) ^ (kInner > 0 || kInner < NzInner-1))
//if ((iInner > 0 || iInner < NxInner-1) ^ (jInner > 0 || jInner < NyInner-1) ^ (kInner > 0 || kInner < NzInner-1))
if
(
true
||
(
iInner
==
0
||
iInner
==
NxInner
-
1
)
||
(
jInner
==
0
||
jInner
==
NyInner
-
1
)
||
(
kInner
==
0
||
kInner
==
NzInner
-
1
))
if
(
true
||
(
iInner
==
0
||
iInner
==
NxInner
-
1
)
||
(
jInner
==
0
||
jInner
==
NyInner
-
1
)
||
(
kInner
==
0
||
kInner
==
NzInner
-
1
))
{
{
if
(
bg
->
Give_coord_hexahedron
(
id_hex
,
i
,
j
,
k
)
==
bg
->
Give_coord_hexahedron
(
id_hexInner
,
iInner
,
jInner
,
kInner
)
)
if
(
D3VectorNormSquared
(
bg
->
Give_coord_hexahedron
(
id_hex
,
i
,
j
,
k
)
-
bg
->
Give_coord_hexahedron
(
id_hexInner
,
iInner
,
jInner
,
kInner
)
)
<
1e-10
)
{
{
int
convertedLocalIndex
=
i
+
(
Nx
)
*
(
j
+
(
Ny
)
*
k
);
int
convertedLocalIndex
=
i
+
(
Nx
)
*
(
j
+
(
Ny
)
*
k
);
...
...
program/source/grid/blockgrid.h
View file @
6318c60e
...
@@ -49,6 +49,7 @@ class Blockgrid_coordinates {
...
@@ -49,6 +49,7 @@ class Blockgrid_coordinates {
* */
* */
void
init_blockgrid_coordinates_boundary
();
void
init_blockgrid_coordinates_boundary
();
void
delete_blockgrid_coordinates
();
void
delete_blockgrid_coordinates
();
std
::
vector
<
std
::
vector
<
std
::
vector
<
int
>
>
>
getHexaCoordiantesBoundary
(){
return
blockgrid_hexa_boundary
;}
std
::
vector
<
std
::
vector
<
std
::
vector
<
int
>
>
>
blockgrid_hexa_boundary
;
std
::
vector
<
std
::
vector
<
std
::
vector
<
int
>
>
>
blockgrid_hexa_boundary
;
std
::
vector
<
std
::
vector
<
D3vector
>
>
blockgrid_hexa_coordinates
;
std
::
vector
<
std
::
vector
<
D3vector
>
>
blockgrid_hexa_coordinates
;
...
...
program/source/grid/examples_ug_optics.cc
View file @
6318c60e
...
@@ -1886,8 +1886,18 @@ Lens_Geometry_cutted_edges::Lens_Geometry_cutted_edges(double RadiusLeft, double
...
@@ -1886,8 +1886,18 @@ Lens_Geometry_cutted_edges::Lens_Geometry_cutted_edges(double RadiusLeft, double
}
}
constructionParameters
[
10
]
=
cutLeft
;
if
(
cutLeft
)
constructionParameters
[
11
]
=
cutRight
;
{
constructionParameters
[
10
]
=
Radius
;}
else
{
constructionParameters
[
10
]
=
0
;
}
if
(
cutRight
)
{
constructionParameters
[
11
]
=
Radius
;}
else
{
constructionParameters
[
11
]
=
0
;
}
// if (curvatureRight < 0 && curvatureLeft < 0)
// if (curvatureRight < 0 && curvatureLeft < 0)
...
@@ -2042,13 +2052,6 @@ Lens_Geometry_cutted_edges::Lens_Geometry_cutted_edges(double RadiusLeft, double
...
@@ -2042,13 +2052,6 @@ Lens_Geometry_cutted_edges::Lens_Geometry_cutted_edges(double RadiusLeft, double
Set_transformation_face
(
16
,
19
,
20
,
23
,
transform_outer_boundary_SE_cut
);
Set_transformation_face
(
16
,
19
,
20
,
23
,
transform_outer_boundary_SE_cut
);
Set_transformation_face
(
9
,
20
,
15
,
23
,
transform_right_lens_diag_SE_quad_cut
);
Set_transformation_face
(
9
,
20
,
15
,
23
,
transform_right_lens_diag_SE_quad_cut
);
//unteil here
//inner block: corner ids: 0 2 4 6 8 10 12 14
//inner block: corner ids: 0 2 4 6 8 10 12 14
Set_transformation_face
(
0
,
2
,
4
,
6
,
transform_left_lens_inner_quad
);
// z=0 plane transform_left_lens_inner_quad
Set_transformation_face
(
0
,
2
,
4
,
6
,
transform_left_lens_inner_quad
);
// z=0 plane transform_left_lens_inner_quad
...
@@ -2095,6 +2098,8 @@ Lens_Geometry_cutted_edges::Lens_Geometry_cutted_edges(double RadiusLeft, double
...
@@ -2095,6 +2098,8 @@ Lens_Geometry_cutted_edges::Lens_Geometry_cutted_edges(double RadiusLeft, double
// WSDdir3D, ESDdir3D, WNDdir3D, ENDdir3D, WSTdir3D, ESTdir3D, WNTdir3D, ENTdir3D
construction_done
();
construction_done
();
}
}
program/source/grid/marker.cc
View file @
6318c60e
...
@@ -476,11 +476,22 @@ Boundary_Marker::Boundary_Marker ( Unstructured_grid* ug_ ) : Marker ( ug_ )
...
@@ -476,11 +476,22 @@ Boundary_Marker::Boundary_Marker ( Unstructured_grid* ug_ ) : Marker ( ug_ )
Boundary_Marker
::~
Boundary_Marker
()
{}
Boundary_Marker
::~
Boundary_Marker
()
{}
void
Boundary_Marker
::
markBoundaryDir3D
(
dir3D
dir
)
void
Boundary_Marker
::
markBoundaryDir3D
(
dir3D
dir
,
int
blockRangeStart
,
int
blockRangeEnd
)
{
{
if
(
blockRangeStart
==
-
1
)
{
return
;}
if
(
blockRangeEnd
<
0
||
blockRangeEnd
>
ug
->
Give_number_hexahedra
())
{
blockRangeEnd
=
ug
->
Give_number_hexahedra
();
}
if
(
blockRangeStart
<
0
||
blockRangeStart
>
ug
->
Give_number_hexahedra
())
{
blockRangeStart
=
0
;
}
Quadrangle_el
*
quad
;
Quadrangle_el
*
quad
;
Hexahedron_el
*
hex
;
Hexahedron_el
*
hex
;
for
(
int
id
=
0
;
id
<
ug
->
Give_number_hexahedra
()
;
++
id
)
{
for
(
int
id
=
blockRangeStart
;
id
<
blockRangeEnd
;
++
id
)
{
hex
=
ug
->
Give_hexahedron
(
id
);
hex
=
ug
->
Give_hexahedron
(
id
);
if
(
ug
->
Give_quadrangle
(
hex
->
Give_id_quadrangle
(
dir
)
)
->
Give_exists_exterior
()
==
false
)
{
if
(
ug
->
Give_quadrangle
(
hex
->
Give_id_quadrangle
(
dir
)
)
->
Give_exists_exterior
()
==
false
)
{
...
@@ -492,14 +503,25 @@ void Boundary_Marker::markBoundaryDir3D(dir3D dir)
...
@@ -492,14 +503,25 @@ void Boundary_Marker::markBoundaryDir3D(dir3D dir)
for
(
int
i
=
0
;
i
<
4
;
++
i
)
for
(
int
i
=
0
;
i
<
4
;
++
i
)
Set_marker
<
pointEl
>
(
quad
->
Give_id_corner
(
(
dir2D_sons
)
i
),
yes_mark
);
Set_marker
<
pointEl
>
(
quad
->
Give_id_corner
(
(
dir2D_sons
)
i
),
yes_mark
);
}
}
}
}
}
}
void
Boundary_Marker
::
unmarkBoundaryDir3D
(
dir3D
dir
)
void
Boundary_Marker
::
unmarkBoundaryDir3D
(
dir3D
dir
,
int
blockRangeStart
,
int
blockRangeEnd
)
{
{
if
(
blockRangeStart
==
-
1
)
{
return
;}
if
(
blockRangeEnd
<
0
||
blockRangeEnd
>
ug
->
Give_number_hexahedra
())
{
blockRangeEnd
=
ug
->
Give_number_hexahedra
();
}
if
(
blockRangeStart
<
0
||
blockRangeStart
>
ug
->
Give_number_hexahedra
())
{
blockRangeStart
=
0
;
}
Quadrangle_el
*
quad
;
Quadrangle_el
*
quad
;
Hexahedron_el
*
hex
;
Hexahedron_el
*
hex
;
for
(
int
id
=
0
;
id
<
ug
->
Give_number_hexahedra
()
;
++
id
)
{
for
(
int
id
=
blockRangeStart
;
id
<
blockRangeStart
;
++
id
)
{
hex
=
ug
->
Give_hexahedron
(
id
);
hex
=
ug
->
Give_hexahedron
(
id
);
if
(
ug
->
Give_quadrangle
(
hex
->
Give_id_quadrangle
(
dir
)
)
->
Give_exists_exterior
()
==
false
)
{
if
(
ug
->
Give_quadrangle
(
hex
->
Give_id_quadrangle
(
dir
)
)
->
Give_exists_exterior
()
==
false
)
{
...
...
program/source/grid/marker.h
View file @
6318c60e
...
@@ -93,8 +93,8 @@ public:
...
@@ -93,8 +93,8 @@ public:
Boundary_Marker
(
Unstructured_grid
*
ug_
);
Boundary_Marker
(
Unstructured_grid
*
ug_
);
~
Boundary_Marker
();
~
Boundary_Marker
();
//* mark boundary in dirction dir3D (Ndir3D, Edir3D... )
//* mark boundary in dirction dir3D (Ndir3D, Edir3D... )
void
markBoundaryDir3D
(
dir3D
dir
);
void
markBoundaryDir3D
(
dir3D
dir
,
int
blockRangeStart
=
0
,
int
blockRangeEnd
=
-
1
);
void
unmarkBoundaryDir3D
(
dir3D
dir
);
void
unmarkBoundaryDir3D
(
dir3D
dir
,
int
blockRangeStart
=
0
,
int
blockRangeEnd
=
-
1
);
};
};
...
...
program/source/interpol/interpol.cc
View file @
6318c60e
...
@@ -2472,43 +2472,6 @@ std::vector<int> Interpolate_direct::calculateNeighbourIndex(std::vector<std::ve
...
@@ -2472,43 +2472,6 @@ std::vector<int> Interpolate_direct::calculateNeighbourIndex(std::vector<std::ve
int
indexConverted
=
convertedI
+
Nx
*
(
convertedJ
+
Ny
*
convertedK
);
int
indexConverted
=
convertedI
+
Nx
*
(
convertedJ
+
Ny
*
convertedK
);
//indexConverted = 0;
//indexConverted = 0;
//int indexTemp = iTemp +NxOuter*(jTemp +NyOuter* convertedK); // to be saved!!!
// D3vector boxWSDInner = arrayBoxWSDENT.at(id_hex_inside).at(indexConverted).at(0);
// D3vector boxENTInner = arrayBoxWSDENT.at(id_hex_inside).at(indexConverted).at(1);
// D3vector cWSD, cESD;
// D3vector cWND, cEND;
// D3vector cWST, cEST;
// D3vector cWNT, cENT;
// D3vector boxWSD, boxENT;
// cWSD = blockgrid->Give_coord_hexahedron(id_hex_outside,iTemp, jTemp, kTemp );
// cESD = blockgrid->Give_coord_hexahedron(id_hex_outside,iTemp+1,jTemp ,kTemp );
// cWND = blockgrid->Give_coord_hexahedron(id_hex_outside,iTemp, jTemp+1,kTemp );
// cEND = blockgrid->Give_coord_hexahedron(id_hex_outside,iTemp+1,jTemp+1,kTemp );
// cWST = blockgrid->Give_coord_hexahedron(id_hex_outside,iTemp, jTemp, kTemp+1);
// cEST = blockgrid->Give_coord_hexahedron(id_hex_outside,iTemp+1,jTemp ,kTemp+1);
// cWNT = blockgrid->Give_coord_hexahedron(id_hex_outside,iTemp, jTemp+1,kTemp+1);
// cENT = blockgrid->Give_coord_hexahedron(id_hex_outside,iTemp+1,jTemp+1,kTemp+1);
// // bounding box calculation
// boxWSD.x = MIN(MIN(MIN(cWSD.x,cESD.x),MIN(cWND.x,cEND.x)),
// MIN(MIN(cWST.x,cEST.x),MIN(cWNT.x,cENT.x)));// - factor *hx;
// boxWSD.y = MIN(MIN(MIN(cWSD.y,cESD.y),MIN(cWND.y,cEND.y)),
// MIN(MIN(cWST.y,cEST.y),MIN(cWNT.y,cENT.y)));// - factor *hy;
// boxWSD.z = MIN(MIN(MIN(cWSD.z,cESD.z),MIN(cWND.z,cEND.z)),
// MIN(MIN(cWST.z,cEST.z),MIN(cWNT.z,cENT.z)));// - factor *hz;
// boxENT.x = MAX(MAX(MAX(cWSD.x,cESD.x),MAX(cWND.x,cEND.x)),
// MAX(MAX(cWST.x,cEST.x),MAX(cWNT.x,cENT.x)));// + factor *hx;
// boxENT.y = MAX(MAX(MAX(cWSD.y,cESD.y),MAX(cWND.y,cEND.y)),
// MAX(MAX(cWST.y,cEST.y),MAX(cWNT.y,cENT.y)));// + factor *hy;
// boxENT.z = MAX(MAX(MAX(cWSD.z,cESD.z),MAX(cWND.z,cEND.z)),
// MAX(MAX(cWST.z,cEST.z),MAX(cWNT.z,cENT.z)));// + factor *hz;
//D3vector boxWSDOuter = arrayBoxWSDENT.at(idHexTempTest).at(indexTemp).at(0);
//D3vector boxENTOuter = arrayBoxWSDENT.at(idHexTempTest).at(indexTemp).at(1);
//check, if boundary already written here
//check, if boundary already written here
bool
write
=
true
;
bool
write
=
true
;
...
@@ -2521,6 +2484,10 @@ std::vector<int> Interpolate_direct::calculateNeighbourIndex(std::vector<std::ve
...
@@ -2521,6 +2484,10 @@ std::vector<int> Interpolate_direct::calculateNeighbourIndex(std::vector<std::ve
}
}
if
(
write
)
if
(
write
)
{
{
if
(
array_box_boundary
.
at
(
id_hex_inside
).
at
(
indexConverted
).
size
()
>
9
)
{
std
::
cout
<<
"4 edges?? "
<<
std
::
endl
;
}
array_box_boundary
.
at
(
id_hex_inside
).
at
(
indexConverted
).
push_back
(
id_hex_outside
);
array_box_boundary
.
at
(
id_hex_inside
).
at
(
indexConverted
).
push_back
(
id_hex_outside
);
array_box_boundary
.
at
(
id_hex_inside
).
at
(
indexConverted
).
push_back
(
iTemp
);
array_box_boundary
.
at
(
id_hex_inside
).
at
(
indexConverted
).
push_back
(
iTemp
);
array_box_boundary
.
at
(
id_hex_inside
).
at
(
indexConverted
).
push_back
(
jTemp
);
array_box_boundary
.
at
(
id_hex_inside
).
at
(
indexConverted
).
push_back
(
jTemp
);
...
@@ -3316,7 +3283,7 @@ void Interpolate_direct::writePoint(D3vector v, std::string str, int Counter)
...
@@ -3316,7 +3283,7 @@ void Interpolate_direct::writePoint(D3vector v, std::string str, int Counter)
ss
<<
std
::
setw
(
5
)
<<
std
::
setfill
(
'0'
)
<<
Counter
;
ss
<<
std
::
setw
(
5
)
<<
std
::
setfill
(
'0'
)
<<
Counter
;
std
::
string
s
=
ss
.
str
();
std
::
string
s
=
ss
.
str
();
ofstream
myfile
;
ofstream
myfile
;
myfile
.
open
(
"
C:/Users/rall/Documents/UG_Blocks_thermal/
testergebnisse/"
+
s
+
str
+
".vtk"
);
myfile
.
open
(
"testergebnisse/"
+
s
+
str
+
".vtk"
);
myfile
<<
"# vtk DataFile Version 4.2
\n
"
;
myfile
<<
"# vtk DataFile Version 4.2
\n
"
;
myfile
<<
"vtk output
\n
"
;
myfile
<<
"vtk output
\n
"
;
myfile
<<
"ASCII
\n
"
;
myfile
<<
"ASCII
\n
"
;
...
...
program/source/interpol/interpol.h
View file @
6318c60e
...
@@ -373,13 +373,15 @@ class Interpolate_direct {
...
@@ -373,13 +373,15 @@ class Interpolate_direct {
template
<
class
DTyp
>
template
<
class
DTyp
>
DTyp
evaluate
(
Variable
<
DTyp
>&
u
);
DTyp
evaluate
(
Variable
<
DTyp
>&
u
);
std
::
vector
<
std
::
vector
<
std
::
vector
<
int
>
>
>
getBoundaryBox
(){
return
array_box_boundary
;}
int
counterFast
{},
counterFastest
{},
counterSamePoint
{},
counterSecondTry
{},
counterThirdTry
{},
counterSlow
{},
counterHexa
{},
counterCorner
{},
counterEdge
{};
int
counterFast
{},
counterFastest
{},
counterSamePoint
{},
counterSecondTry
{},
counterThirdTry
{},
counterSlow
{},
counterHexa
{},
counterCorner
{},
counterEdge
{};
int
checkCounter
{};
int
checkCounter
{};
int
boxCounter
{};
int
boxCounter
{};
int
typCounter0
{},
typCounter1
{},
typCounter2
{},
typCounter3
{},
typCounter4
{},
typCounter5
{};
int
typCounter0
{},
typCounter1
{},
typCounter2
{},
typCounter3
{},
typCounter4
{},
typCounter5
{};
bool
debugTest
;
bool
debugTest
;
D3vector
lambda
;
D3vector
lambda
;
D3vector
vNow
{
9124
,
123
,
52143
},
vPrev
,
vPrevPrev
,
vPrevPrevPrev
;
D3vector
vNow
{
1e10
,
1e10
,
1e10
},
vPrev
,
vPrevPrev
,
vPrevPrevPrev
;
bool
vectorInBox
(
D3vector
vWSD
,
D3vector
vENT
,
D3vector
v
,
double
eps
=
1e-10
);
bool
vectorInBox
(
D3vector
vWSD
,
D3vector
vENT
,
D3vector
v
,
double
eps
=
1e-10
);
...
@@ -399,6 +401,7 @@ class Interpolate_direct {
...
@@ -399,6 +401,7 @@ class Interpolate_direct {
std
::
vector
<
std
::
vector
<
std
::
vector
<
D3vector
>
>
>
arrayBoxWSDENT
;
std
::
vector
<
std
::
vector
<
std
::
vector
<
D3vector
>
>
>
arrayBoxWSDENT
;
std
::
vector
<
std
::
vector
<
std
::
vector
<
int
>
>
>
array_box_boundary
;
std
::
vector
<
std
::
vector
<
std
::
vector
<
int
>
>
>
array_box_boundary
;
std
::
vector
<
std
::
vector
<
std
::
vector
<
int
>
>
>
array_point_boundary
;
private:
private:
/**
/**
* Necessary to calculate the neighbour relation.
* Necessary to calculate the neighbour relation.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment