diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..61735914 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +examples/linelast/meshes/octet_truss_hd.mesh filter=lfs diff=lfs merge=lfs -text diff --git a/examples/linelast/CMakeLists.txt b/examples/linelast/CMakeLists.txt index 7f9e498d..d7f72d9d 100644 --- a/examples/linelast/CMakeLists.txt +++ b/examples/linelast/CMakeLists.txt @@ -12,6 +12,35 @@ file(COPY config/linelast.comp_train.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples file(COPY linelast.opt_comp_train.yml DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast) file(COPY linelast.opt_comp_fom.yml DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast) file(COPY config/linelast.optfom.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.simpleL3D.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY linelast.simpleL3D.yml DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast) +file(COPY config/linelast.3dcwfom.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.3dcw_train0.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.3dcw_train1.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.3dcw_train2.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.3dcw_train3.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY linelast.3dcw_fom.yml DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast) +file(COPY linelast.3dcw_comp_train.yml DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast) +file(COPY linelast.octet_truss_comp_train.yml DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast) +file(COPY config/linelast.octet_truss_train0.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_train1.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_train2.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_train3.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_train4.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_train5.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_cube.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_beam1.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_beam2.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_beam3.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_beam4.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_top.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY linelast.octet_truss_fom.yml DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast) +file(COPY config/linelast.octet_truss_unittrain0.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_unittrain1.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_unittrain2.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_unittrain3.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_unittrain4.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) +file(COPY config/linelast.octet_truss_unittrain5.h5 DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/config) file(COPY meshes/beam-tri.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) file(COPY meshes/beam-tet.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) @@ -21,3 +50,11 @@ file(COPY meshes/rod2D_V.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/ file(COPY meshes/optjoint.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) file(COPY meshes/optbeam.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) file(COPY meshes/optcol.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) +file(COPY meshes/3d_joint.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) +file(COPY meshes/3d_beam.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) +file(COPY meshes/3d_col.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) +file(COPY meshes/3dcw_joint.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) +file(COPY meshes/3dcw_beamH.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) +file(COPY meshes/3dcw_beamV.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) +file(COPY meshes/octet_truss.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) +file(COPY meshes/octet_truss_hd.mesh DESTINATION ${CMAKE_BINARY_DIR}/examples/linelast/meshes) diff --git a/examples/linelast/apply_warp_by_vector.py b/examples/linelast/apply_warp_by_vector.py new file mode 100644 index 00000000..ef0a0e46 --- /dev/null +++ b/examples/linelast/apply_warp_by_vector.py @@ -0,0 +1,89 @@ +# trace generated using paraview version 5.11.2 +#import paraview +#paraview.compatibility.major = 5 +#paraview.compatibility.minor = 11 + + +def apply_warpvector(filename): + # find source + srcsol = FindSource(filename) + # set active source + SetActiveSource(srcsol) + + # get color transfer function/color map for 'solution' + solutionLUT = GetColorTransferFunction('solution') + + # get opacity transfer function/opacity map for 'solution' + solutionPWF = GetOpacityTransferFunction('solution') + + # get 2D transfer function for 'solution' + solutionTF2D = GetTransferFunction2D('solution') + + # get active view + renderView1 = GetActiveViewOrCreate('RenderView') + + # get display properties + srcsolDisplay = GetDisplayProperties(srcsol, view=renderView1) + + # create a new 'Warp By Vector' + warpByVector = WarpByVector(registrationName='WarpByVector_'+filename, Input=srcsol) + warpByVector.Vectors = ['POINTS', 'solution'] + + # set active source + SetActiveSource(warpByVector) + + # show data in view + warpByVectorDisplay = Show(warpByVector, renderView1, 'UnstructuredGridRepresentation') + + # trace defaults for the display properties. + warpByVectorDisplay.Representation = 'Surface' + warpByVectorDisplay.ColorArrayName = ['POINTS', 'solution'] + warpByVectorDisplay.LookupTable = solutionLUT + warpByVectorDisplay.SelectTCoordArray = 'None' + warpByVectorDisplay.SelectNormalArray = 'None' + warpByVectorDisplay.SelectTangentArray = 'None' + warpByVectorDisplay.OSPRayScaleArray = 'solution' + warpByVectorDisplay.OSPRayScaleFunction = 'PiecewiseFunction' + warpByVectorDisplay.SelectOrientationVectors = 'None' + warpByVectorDisplay.ScaleFactor = 1.0034994557994217 + warpByVectorDisplay.SelectScaleArray = 'None' + warpByVectorDisplay.GlyphType = 'Arrow' + warpByVectorDisplay.GlyphTableIndexArray = 'None' + warpByVectorDisplay.GaussianRadius = 0.05017497278997109 + warpByVectorDisplay.SetScaleArray = ['POINTS', 'solution'] + warpByVectorDisplay.ScaleTransferFunction = 'PiecewiseFunction' + warpByVectorDisplay.OpacityArray = ['POINTS', 'solution'] + warpByVectorDisplay.OpacityTransferFunction = 'PiecewiseFunction' + warpByVectorDisplay.DataAxesGrid = 'GridAxesRepresentation' + warpByVectorDisplay.PolarAxes = 'PolarAxesRepresentation' + warpByVectorDisplay.ScalarOpacityFunction = solutionPWF + warpByVectorDisplay.ScalarOpacityUnitDistance = 1.2815333878254977 + warpByVectorDisplay.OpacityArrayName = ['POINTS', 'solution'] + warpByVectorDisplay.SelectInputVectors = ['POINTS', 'solution'] + warpByVectorDisplay.WriteLog = '' + + # init the 'PiecewiseFunction' selected for 'ScaleTransferFunction' + warpByVectorDisplay.ScaleTransferFunction.Points = [-0.01822456776713409, 0.0, 0.5, 0.0, 0.01827591453119054, 1.0, 0.5, 0.0] + + # init the 'PiecewiseFunction' selected for 'OpacityTransferFunction' + warpByVectorDisplay.OpacityTransferFunction.Points = [-0.01822456776713409, 0.0, 0.5, 0.0, 0.01827591453119054, 1.0, 0.5, 0.0] + + # show color bar/color legend + warpByVectorDisplay.SetScalarBarVisibility(renderView1, True) + + # hide data in view + Hide(srcsol, renderView1) + +#### import the simple module from the paraview +from paraview.simple import * +import os +#### disable automatic camera reset on 'Show' +paraview.simple._DisableFirstRenderCameraReset() + +root_dir = '/Users/larsson4/repos/scaleupROM/build/examples/linelast' +prefix = "paraview_output" +os.chdir(root_dir) +filenames = [str(f)+'.pvd' for f in os.listdir('.') if os.path.isdir(f) and '_'.join(f.split('_')[0:-1]) == prefix] +for filename in filenames: + print(filename) + apply_warpvector(filename) diff --git a/examples/linelast/config/linelast.3dcw_train0.h5 b/examples/linelast/config/linelast.3dcw_train0.h5 new file mode 100644 index 00000000..c85bf178 Binary files /dev/null and b/examples/linelast/config/linelast.3dcw_train0.h5 differ diff --git a/examples/linelast/config/linelast.3dcw_train1.h5 b/examples/linelast/config/linelast.3dcw_train1.h5 new file mode 100644 index 00000000..13076884 Binary files /dev/null and b/examples/linelast/config/linelast.3dcw_train1.h5 differ diff --git a/examples/linelast/config/linelast.3dcw_train2.h5 b/examples/linelast/config/linelast.3dcw_train2.h5 new file mode 100644 index 00000000..4169307b Binary files /dev/null and b/examples/linelast/config/linelast.3dcw_train2.h5 differ diff --git a/examples/linelast/config/linelast.3dcw_train3.h5 b/examples/linelast/config/linelast.3dcw_train3.h5 new file mode 100644 index 00000000..53ba4431 Binary files /dev/null and b/examples/linelast/config/linelast.3dcw_train3.h5 differ diff --git a/examples/linelast/config/linelast.3dcwfom.h5 b/examples/linelast/config/linelast.3dcwfom.h5 new file mode 100644 index 00000000..6f95b65d Binary files /dev/null and b/examples/linelast/config/linelast.3dcwfom.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_beam1.h5 b/examples/linelast/config/linelast.octet_truss_beam1.h5 new file mode 100644 index 00000000..79118bc0 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_beam1.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_beam2.h5 b/examples/linelast/config/linelast.octet_truss_beam2.h5 new file mode 100644 index 00000000..112698e5 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_beam2.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_beam3.h5 b/examples/linelast/config/linelast.octet_truss_beam3.h5 new file mode 100644 index 00000000..c5cef277 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_beam3.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_beam4.h5 b/examples/linelast/config/linelast.octet_truss_beam4.h5 new file mode 100644 index 00000000..71437444 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_beam4.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_cube.h5 b/examples/linelast/config/linelast.octet_truss_cube.h5 new file mode 100644 index 00000000..6e8b1fe9 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_cube.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_top.h5 b/examples/linelast/config/linelast.octet_truss_top.h5 new file mode 100644 index 00000000..581f9916 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_top.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_train0.h5 b/examples/linelast/config/linelast.octet_truss_train0.h5 new file mode 100644 index 00000000..1fb7ef90 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_train0.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_train1.h5 b/examples/linelast/config/linelast.octet_truss_train1.h5 new file mode 100644 index 00000000..f7522ed5 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_train1.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_train2.h5 b/examples/linelast/config/linelast.octet_truss_train2.h5 new file mode 100644 index 00000000..d15cf2d6 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_train2.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_train3.h5 b/examples/linelast/config/linelast.octet_truss_train3.h5 new file mode 100644 index 00000000..b2357260 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_train3.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_train4.h5 b/examples/linelast/config/linelast.octet_truss_train4.h5 new file mode 100644 index 00000000..ec859eba Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_train4.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_train5.h5 b/examples/linelast/config/linelast.octet_truss_train5.h5 new file mode 100644 index 00000000..d2427c08 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_train5.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_unittrain0.h5 b/examples/linelast/config/linelast.octet_truss_unittrain0.h5 new file mode 100644 index 00000000..4e2649d1 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_unittrain0.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_unittrain1.h5 b/examples/linelast/config/linelast.octet_truss_unittrain1.h5 new file mode 100644 index 00000000..82d4af31 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_unittrain1.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_unittrain2.h5 b/examples/linelast/config/linelast.octet_truss_unittrain2.h5 new file mode 100644 index 00000000..b28e4aa3 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_unittrain2.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_unittrain3.h5 b/examples/linelast/config/linelast.octet_truss_unittrain3.h5 new file mode 100644 index 00000000..d631e505 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_unittrain3.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_unittrain4.h5 b/examples/linelast/config/linelast.octet_truss_unittrain4.h5 new file mode 100644 index 00000000..5f06a5ad Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_unittrain4.h5 differ diff --git a/examples/linelast/config/linelast.octet_truss_unittrain5.h5 b/examples/linelast/config/linelast.octet_truss_unittrain5.h5 new file mode 100644 index 00000000..f0b6edf3 Binary files /dev/null and b/examples/linelast/config/linelast.octet_truss_unittrain5.h5 differ diff --git a/examples/linelast/config/linelast.simpleL3D.h5 b/examples/linelast/config/linelast.simpleL3D.h5 new file mode 100644 index 00000000..f584cfec Binary files /dev/null and b/examples/linelast/config/linelast.simpleL3D.h5 differ diff --git a/examples/linelast/linelast.3dcw_comp_train.yml b/examples/linelast/linelast.3dcw_comp_train.yml new file mode 100644 index 00000000..db70b1d0 --- /dev/null +++ b/examples/linelast/linelast.3dcw_comp_train.yml @@ -0,0 +1,362 @@ +main: + mode: single_run + use_rom: true + solver: linelast + +mesh: + type: component-wise + component-wise: + global_config: "config/linelast.3dcw_train0.h5" + components: + - name: "3dcw_joint" + file: "meshes/3dcw_joint.mesh" + - name: "3dcw_beamH" + file: "meshes/3dcw_beamH.mesh" + - name: "3dcw_beamV" + file: "meshes/3dcw_beamV.mesh" + uniform_refinement: 0 + +domain-decomposition: + type: interior_penalty + +solver: + direct_solve: true + +discretization: + order: 1 + full-discrete-galerkin: true + +visualization: + enabled: false + unified_paraview: true + file_path: + prefix: paraview_output + +parameterized_problem: + name: linelast_cwtrain + +single_run: + linelast_cwtrain: + lambda: 384615384615.3846 + mu: 76923076923.07692 + lx: 0.5 + ly: 0.5 + lz: 0.5 + rx: 0.0 + ry: 0.0 + rz: 0.5 + dx: 0.0 + dy: 0.0 + dz: 0.0 + ux: 0.0 + uy: 0.0 + uz: 0.0 + bx: 0.0 + by: 0.0 + bz: 0.0 + l_ux: 0.0 + l_uy: 0.0 + l_uz: 0.0 + r_fx: 0.0 + r_fy: 0.0 + r_fz: -500.0 + u_fx: 0.0 + u_fy: 0.0 + u_fz: 0.0 + d_fx: 0.0 + d_fy: 0.0 + d_fz: 0.0 + b_fx: 0.0 + b_fy: 0.0 + b_fz: 0.0 + xu_amp: 1.0 + xf_amp: 0.0 + yu_amp: 0.0 + yf_amp: 0.0 + zu_amp: 0.0 + zf_amp: -500.0 + bxf_amp: 1.0 + byf_amp: 1.0 + bzf_amp: 1.0 + xu_freq: 1.0 + xf_freq: 0.0 + yu_freq: 0.0 + yf_freq: 0.0 + zu_freq: 0.0 + zf_freq: 1.0 + bxf_freq: 1.0 + byf_freq: 1.0 + bzf_freq: 1.0 + xu_offset: 0.0 + xf_offset: 0.0 + yu_offset: 0.0 + yf_offset: 0.0 + zu_offset: 0.0 + zf_offset: 0.0 + bxf_offset: 0.0 + byf_offset: 0.0 + bzf_offset: 0.0 + +sample_generation: + maximum_number_of_snapshots: 70000 + component_sampling: true + type: random + random_sample_generator: + number_of_samples: 100 + file_path: + prefix: "linelast_cwtrain" + parameters: + - key: single_run/linelast_cwtrain/rx + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/ry + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/rz + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/lx + type: double + minimum: 0.5 + maximum: 1.0 + - key: single_run/linelast_cwtrain/ly + type: double + minimum: 0.5 + maximum: 1.0 + - key: single_run/linelast_cwtrain/lz + type: double + minimum: 0.5 + maximum: 1.0 + - key: single_run/linelast_cwtrain/dx + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/dy + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/dz + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/ux + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/uy + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/uz + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/l_ux + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/l_uy + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/l_uz + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/r_fx + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/r_fy + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/r_fz + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/u_fx + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/u_fy + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/u_fz + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/d_fx + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/d_fy + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/d_fz + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/b_fx + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/b_fy + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/b_fz + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/xu_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/yu_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/zu_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/xf_amp + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/yf_amp + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/zf_amp + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/bxf_amp + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/byf_amp + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/bzf_amp + type: double + minimum: -50000.0 + maximum: 50000.0 + - key: single_run/linelast_cwtrain/xu_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain/yu_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain/zu_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain/xf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain/yf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain/zf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain/bxf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain/byf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain/bzf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain/xu_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/yu_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/zu_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/xf_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/yf_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/zf_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/bxf_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/byf_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/bzf_offset + type: double + minimum: 0.0 + maximum: 1.0 + +basis: + prefix: "linelast_cwtrain" + number_of_basis: 16 + tags: + - name: "3dcw_joint" + number_of_basis: 16 + snapshot_format: + minimum: 0 + maximum: 3 + format: "linelast_cwtrain_sample_3dcw_joint_snapshot%01d" + - name: "3dcw_beamH" + number_of_basis: 64 + snapshot_format: + minimum: 0 + maximum: 3 + format: "linelast_cwtrain_sample_3dcw_beamH_snapshot%01d" + - name: "3dcw_beamV" + number_of_basis: 64 + snapshot_format: + minimum: 0 + maximum: 3 + format: "linelast_cwtrain_sample_3dcw_beamV_snapshot%01d" + svd: + save_spectrum: true + update_right_sv: false + visualization: + enabled: false + +model_reduction: + rom_handler_type: mfem + subdomain_training: universal + linear_solver_type: direct + save_operator: + level: component + prefix: "linelast_cw.rom_elem" + compare_solution: + enabled: true diff --git a/examples/linelast/linelast.3dcw_comp_train_repro.yml b/examples/linelast/linelast.3dcw_comp_train_repro.yml new file mode 100644 index 00000000..4862e62f --- /dev/null +++ b/examples/linelast/linelast.3dcw_comp_train_repro.yml @@ -0,0 +1,350 @@ +main: + mode: single_run + use_rom: true + solver: linelast + +mesh: + type: component-wise + component-wise: + global_config: "config/linelast.3dcw_train0.h5" + components: + - name: "3dcw_joint" + file: "meshes/3dcw_joint.mesh" + - name: "3dcw_beamH" + file: "meshes/3dcw_beamH.mesh" + - name: "3dcw_beamV" + file: "meshes/3dcw_beamV.mesh" + uniform_refinement: 0 + +domain-decomposition: + type: interior_penalty + +solver: + direct_solve: true + +discretization: + order: 1 + full-discrete-galerkin: true + +visualization: + enabled: false + unified_paraview: true + file_path: + prefix: paraview_output + +parameterized_problem: + name: linelast_cwtrain + +single_run: + linelast_cwtrain: + lambda: 384615384615.3846 + mu: 76923076923.07692 + lx: 1.0 + ly: 1.0 + lz: 1.0 + rx: 0.0 + ry: 0.0 + rz: 1.0 + dx: 0.0 + dy: 0.0 + dz: 0.0 + ux: 0.0 + uy: 0.0 + uz: 0.0 + bx: 0.0 + by: 0.0 + bz: 0.0 + l_ux: 0.0 + l_uy: 0.0 + l_uz: 0.0 + r_fx: 0.0 + r_fy: 0.0 + r_fz: -500.0 + u_fx: 0.0 + u_fy: 0.0 + u_fz: 0.0 + d_fx: 0.0 + d_fy: 0.0 + d_fz: 0.0 + b_fx: 0.0 + b_fy: 0.0 + b_fz: 0.0 + xu_amp: 0.0 + xf_amp: 0.0 + yu_amp: 0.0 + yf_amp: 0.0 + zu_amp: 0.0 + zf_amp: 0.0 + bxf_amp: 0.0 + byf_amp: 0.0 + bzf_amp: 0.0 + xu_freq: 0.0 + xf_freq: 0.0 + yu_freq: 0.0 + yf_freq: 0.0 + zu_freq: 0.0 + zf_freq: 0.0 + bxf_freq: 0.0 + byf_freq: 0.0 + bzf_freq: 0.0 + xu_offset: 0.0 + xf_offset: 0.0 + yu_offset: 0.0 + yf_offset: 0.0 + zu_offset: 0.0 + zf_offset: 0.0 + bxf_offset: 0.0 + byf_offset: 0.0 + bzf_offset: 0.0 + +sample_generation: + maximum_number_of_snapshots: 70000 + component_sampling: false + type: random + random_sample_generator: + number_of_samples: 5 + file_path: + prefix: "linelast_cwtrain" + parameters: + - key: single_run/linelast_cwtrain/rx + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/ry + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/rz + type: double + minimum: 1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/lx + type: double + minimum: 1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/ly + type: double + minimum: 1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/lz + type: double + minimum: 1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain/dx + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/dy + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/dz + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/ux + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/uy + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/uz + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/l_ux + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/l_uy + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/l_uz + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/r_fx + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/r_fy + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/r_fz + type: double + minimum: -500.0 + maximum: -500.0 + - key: single_run/linelast_cwtrain/u_fx + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/u_fy + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/u_fz + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/d_fx + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/d_fy + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/d_fz + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/b_fx + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/b_fy + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/b_fz + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/xu_amp + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/yu_amp + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/zu_amp + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/xf_amp + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/yf_amp + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/zf_amp + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/bxf_amp + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/byf_amp + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/bzf_amp + type: double + minimum: -0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/xu_freq + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/yu_freq + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/zu_freq + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/xf_freq + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/yf_freq + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/zf_freq + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/bxf_freq + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/byf_freq + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/bzf_freq + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/xu_offset + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/yu_offset + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/zu_offset + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/xf_offset + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/yf_offset + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/zf_offset + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/bxf_offset + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/byf_offset + type: double + minimum: 0.0 + maximum: 0.0 + - key: single_run/linelast_cwtrain/bzf_offset + type: double + minimum: 0.0 + maximum: 0.0 + +basis: + prefix: "linelast_cwtrain" + number_of_basis: 5 + tags: + - name: "3dcw_joint" + number_of_basis: 9 + - name: "3dcw_beamH" + number_of_basis: 6 + - name: "3dcw_beamV" + number_of_basis: 6 + svd: + save_spectrum: true + update_right_sv: false + visualization: + enabled: false + +model_reduction: + rom_handler_type: mfem + subdomain_training: universal + linear_solver_type: direct + save_operator: + level: component + prefix: "linelast_cw.rom_elem" + compare_solution: + enabled: true diff --git a/examples/linelast/linelast.3dcw_fom.yml b/examples/linelast/linelast.3dcw_fom.yml new file mode 100644 index 00000000..1cf25ffb --- /dev/null +++ b/examples/linelast/linelast.3dcw_fom.yml @@ -0,0 +1,78 @@ +main: + mode: single_run + use_rom: false + solver: linelast + +mesh: + type: component-wise + component-wise: + global_config: "config/linelast.3dcwfom.h5" + components: + - name: "3dcw_joint" + file: "meshes/3dcw_joint.mesh" + - name: "3dcw_beamH" + file: "meshes/3dcw_beamH.mesh" + - name: "3dcw_beamV" + file: "meshes/3dcw_beamV.mesh" + uniform_refinement: 0 + +domain-decomposition: + type: interior_penalty + +solver: + direct_solve: true + +discretization: + order: 1 + full-discrete-galerkin: true + +visualization: + enabled: false + unified_paraview: true + file_path: + prefix: paraview_output + +parameterized_problem: + name: linelast_lattice_roof + +single_run: + linelast_lattice_roof: + qsnow_f : -2000.0 + +basis: + prefix: "linelast_cwtrain" + number_of_basis: 16 + tags: + - name: "3dcw_joint" + number_of_basis: 16 + snapshot_format: + minimum: 0 + maximum: 3 + format: "linelast_cwtrain_sample_3dcw_joint_snapshot%01d" + - name: "3dcw_beamH" + number_of_basis: 64 + snapshot_format: + minimum: 0 + maximum: 3 + format: "linelast_cwtrain_sample_3dcw_beamH_snapshot%01d" + - name: "3dcw_beamV" + number_of_basis: 64 + snapshot_format: + minimum: 0 + maximum: 3 + format: "linelast_cwtrain_sample_3dcw_beamV_snapshot%01d" + svd: + save_spectrum: true + update_right_sv: false + visualization: + enabled: false + +model_reduction: + rom_handler_type: mfem + subdomain_training: universal + linear_solver_type: direct + save_operator: + level: component + prefix: "linelast_cw.rom_elem" + compare_solution: + enabled: true diff --git a/examples/linelast/linelast.octet_truss_comp_train.yml b/examples/linelast/linelast.octet_truss_comp_train.yml new file mode 100644 index 00000000..692215eb --- /dev/null +++ b/examples/linelast/linelast.octet_truss_comp_train.yml @@ -0,0 +1,406 @@ +main: + mode: single_run + use_rom: true + solver: linelast + +mesh: + type: component-wise + component-wise: + global_config: "config/linelast.octet_truss_train0.h5" + components: + - name: "octet_truss_unitcell" + file: "meshes/octet_truss.mesh" + uniform_refinement: 0 + +domain-decomposition: + type: interior_penalty + +solver: + direct_solve: true + +discretization: + order: 1 + full-discrete-galerkin: true + +visualization: + enabled: false + unified_paraview: true + file_path: + prefix: octet_output + +parameterized_problem: + name: linelast_cwtrain3d + +single_run: + linelast_cwtrain3d: + lambda: 5.711538461538462 + mu: 3.8076923076923075 + lx: 0.5 + ly: 0.5 + lz: 0.5 + rx: 0.0 + ry: 0.0 + rz: 0.5 + dx: 0.0 + dy: 0.0 + dz: 0.0 + ux: 0.0 + uy: 0.0 + uz: 0.0 + ix: 0.0 + iy: 0.0 + iz: 0.0 + ox: 0.0 + oy: 0.0 + oz: 0.0 + bx: 0.0 + by: 0.0 + bz: 0.0 + l_ux: 0.0 + l_uy: 0.0 + l_uz: 0.0 + r_fx: 0.0 + r_fy: 0.0 + r_fz: -0.00500 + u_fx: 0.0 + u_fy: 0.0 + u_fz: 0.0 + d_fx: 0.0 + d_fy: 0.0 + d_fz: 0.0 + i_fx: 0.0 + i_fy: 0.0 + i_fz: 0.0 + o_fx: 0.0 + o_fy: 0.0 + o_fz: 0.0 + b_fx: 0.0 + b_fy: 0.0 + b_fz: 0.0 + xu_amp: 0.0 + xf_amp: 0.0 + yu_amp: 0.0 + yf_amp: 0.0 + zu_amp: 0.0 + zf_amp: 0.0 + bxf_amp: 0.0 + byf_amp: 0.0 + bzf_amp: 0.0 + xu_freq: 0.0 + xf_freq: 0.0 + yu_freq: 0.0 + yf_freq: 0.0 + zu_freq: 0.0 + zf_freq: 0.0 + bxf_freq: 0.0 + byf_freq: 0.0 + bzf_freq: 0.0 + xu_offset: 0.0 + xf_offset: 0.0 + yu_offset: 0.0 + yf_offset: 0.0 + zu_offset: 0.0 + zf_offset: 0.0 + bxf_offset: 0.0 + byf_offset: 0.0 + bzf_offset: 0.0 + +sample_generation: + maximum_number_of_snapshots: 70000 + component_sampling: true + type: random + random_sample_generator: + number_of_samples: 100 + file_path: + prefix: "linelast_cwtrain3d" + parameters: + - key: single_run/linelast_cwtrain3d/rx + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/ry + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/rz + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/lx + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/ly + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/lz + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/dx + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/dy + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/dz + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/ux + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/uy + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/uz + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/ix + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/iy + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/iz + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/ox + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/oy + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/oz + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/l_ux + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/l_uy + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/l_uz + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/r_fx + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/r_fy + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/r_fz + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/u_fx + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/u_fy + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/u_fz + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/d_fx + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/d_fy + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/d_fz + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/i_fx + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/i_fy + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/i_fz + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/o_fx + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/o_fy + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/o_fz + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/b_fx + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/b_fy + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/b_fz + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/xu_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/yu_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/zu_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/xf_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/yf_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/zf_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/bxf_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/byf_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/bzf_amp + type: double + minimum: -1.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/xu_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/yu_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/zu_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/xf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/yf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/zf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/bxf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/byf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/bzf_freq + type: double + minimum: 0.1 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/xu_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/yu_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/zu_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/xf_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/yf_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/zf_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/bxf_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/byf_offset + type: double + minimum: 0.0 + maximum: 1.0 + - key: single_run/linelast_cwtrain3d/bzf_offset + type: double + minimum: 0.0 + maximum: 1.0 + +basis: + prefix: "linelast_cwtrain3d" + number_of_basis: 16 + tags: + - name: "octet_truss_unitcell" + number_of_basis: 16 + snapshot_format: + minimum: 0 + maximum: 3 + format: "linelast_cwtrain_sample_octet_truss_snapshot%01d" + svd: + save_spectrum: true + update_right_sv: false + visualization: + enabled: false + +model_reduction: + rom_handler_type: mfem + subdomain_training: universal + linear_solver_type: direct + save_operator: + level: component + prefix: "linelast3d_cw.rom_elem" + compare_solution: + enabled: true diff --git a/examples/linelast/linelast.octet_truss_fom.yml b/examples/linelast/linelast.octet_truss_fom.yml new file mode 100644 index 00000000..a022151e --- /dev/null +++ b/examples/linelast/linelast.octet_truss_fom.yml @@ -0,0 +1,67 @@ +main: + mode: single_run + use_rom: true + solver: linelast + +mesh: + type: component-wise + component-wise: + global_config: "config/linelast.octet_truss_cube.h5" + components: + - name: "octet_truss_unitcell" + file: "meshes/octet_truss.mesh" + uniform_refinement: 0 + +domain-decomposition: + type: interior_penalty + +solver: + direct_solve: true + +discretization: + order: 1 + full-discrete-galerkin: true + +visualization: + enabled: false + unified_paraview: true + file_path: + prefix: octet_output + +parameterized_problem: + name: linelast_octet_cube + +single_run: + linelast_octet_cube: + disp_z: 0.5 + force_z: 0.0050 + density: 9.3e-4 + g: 9.81e-4 + lambda: 5.711538461538462 + mu: 3.8076923076923075 + +basis: + prefix: "linelast_cwtrain3d" + number_of_basis: 16 + tags: + - name: "octet_truss_unitcell" + number_of_basis: 16 + snapshot_format: + minimum: 0 + maximum: 3 + format: "linelast_cwtrain_sample_octet_truss_snapshot%01d" + svd: + save_spectrum: true + update_right_sv: false + visualization: + enabled: false + +model_reduction: + rom_handler_type: mfem + subdomain_training: universal + linear_solver_type: direct + save_operator: + level: component + prefix: "linelast3d_cw.rom_elem" + compare_solution: + enabled: true diff --git a/examples/linelast/linelast.simpleL3D.yml b/examples/linelast/linelast.simpleL3D.yml new file mode 100644 index 00000000..91e1a78c --- /dev/null +++ b/examples/linelast/linelast.simpleL3D.yml @@ -0,0 +1,69 @@ +main: + mode: single_run + use_rom: true + solver: linelast + +mesh: + type: component-wise + uniform_refinement: 1 + component-wise: + global_config: "config/linelast.simpleL3D.h5" + components: + - name: "3d_joint" + file: "meshes/3d_joint.mesh" + - name: "3d_beam" + file: "meshes/3d_beam.mesh" + - name: "3d_col" + file: "meshes/3d_col.mesh" + +domain-decomposition: + type: interior_penalty + +discretization: + order: 1 + full-discrete-galerkin: true + +visualization: + enabled: false + unified_paraview: true + file_path: + prefix: paraview_output + +parameterized_problem: + name: linelast_disp_lcantilever + +single_run: + linelast_disp_lcantilever: + rdisp_f: 0.5 + +sample_generation: + maximum_number_of_snapshots: 400 + component_sampling: false + file_path: + prefix: "linelast_Lbeam" + parameters: + - key: single_run/linelast_disp/rdisp_f + type: double + sample_size: 6 + minimum: 0.5 + maximum: 0.5 + +basis: + prefix: "linelast_Lbeam" + number_of_basis: 2 + tags: + - name: "comp0" + svd: + save_spectrum: true + update_right_sv: false + visualization: + enabled: false + +model_reduction: + rom_handler_type: mfem + subdomain_training: universal + save_operator: + level: component + prefix: "linelast.rom_elem" + compare_solution: + enabled: true diff --git a/examples/linelast/load_octet.py b/examples/linelast/load_octet.py new file mode 100644 index 00000000..ebaf4c47 --- /dev/null +++ b/examples/linelast/load_octet.py @@ -0,0 +1,139 @@ +### Set the root directory where paraview_output_0, ... are located. +root_dir = '/Users/AXLRSN/Desktop/PrincetonCourses/LLNL24/scaleupROM/build/examples/linelast' + +# trace generated using paraview version 5.11.2 +#import paraview +#paraview.compatibility.major = 5 +#paraview.compatibility.minor = 11 + +#### import the simple module from the paraview +from paraview.simple import * +#### disable automatic camera reset on 'Show' +paraview.simple._DisableFirstRenderCameraReset() + +import os + +prefix = "octet_output" +os.chdir(root_dir) +print(os.listdir('.')) +filenames = [f for f in os.listdir('.') if os.path.isdir(f) and '_'.join(f.split('_')[0:-1]) == prefix] +Nk = len(filenames) + +paraview_output_pvd = [] +paraview_output_pvdDisplay = [] + +# get active view +renderView1 = GetActiveViewOrCreate('RenderView') + +for k in range(Nk): + # create a new 'PVD Reader' + paraview_output_pvd += [PVDReader(registrationName='%s.pvd' % filenames[k], FileName='%s/%s/%s.pvd' % (root_dir, filenames[k], filenames[k]))] + paraview_output_pvd[-1].CellArrays = ['attribute'] + paraview_output_pvd[-1].PointArrays = ['solution'] + + renderView1 = GetActiveViewOrCreate('RenderView') + + # show data in view + paraview_output_pvdDisplay += [Show(paraview_output_pvd[-1], renderView1, 'UnstructuredGridRepresentation')] + + # trace defaults for the display properties. + paraview_output_pvdDisplay[-1].Representation = 'Surface' + paraview_output_pvdDisplay[-1].ColorArrayName = [None, ''] + paraview_output_pvdDisplay[-1].SelectTCoordArray = 'None' + paraview_output_pvdDisplay[-1].SelectNormalArray = 'None' + paraview_output_pvdDisplay[-1].SelectTangentArray = 'None' + paraview_output_pvdDisplay[-1].OSPRayScaleArray = 'solution' + paraview_output_pvdDisplay[-1].OSPRayScaleFunction = 'PiecewiseFunction' + paraview_output_pvdDisplay[-1].SelectOrientationVectors = 'None' + paraview_output_pvdDisplay[-1].ScaleFactor = 0.1 + paraview_output_pvdDisplay[-1].SelectScaleArray = 'None' + paraview_output_pvdDisplay[-1].GlyphType = 'Arrow' + paraview_output_pvdDisplay[-1].GlyphTableIndexArray = 'None' + paraview_output_pvdDisplay[-1].GaussianRadius = 0.005 + paraview_output_pvdDisplay[-1].SetScaleArray = ['POINTS', 'solution'] + paraview_output_pvdDisplay[-1].ScaleTransferFunction = 'PiecewiseFunction' + paraview_output_pvdDisplay[-1].OpacityArray = ['POINTS', 'solution'] + paraview_output_pvdDisplay[-1].OpacityTransferFunction = 'PiecewiseFunction' + paraview_output_pvdDisplay[-1].DataAxesGrid = 'GridAxesRepresentation' + paraview_output_pvdDisplay[-1].PolarAxes = 'PolarAxesRepresentation' + paraview_output_pvdDisplay[-1].ScalarOpacityUnitDistance = 0.10171193339768637 + paraview_output_pvdDisplay[-1].OpacityArrayName = ['POINTS', 'solution'] + paraview_output_pvdDisplay[-1].SelectInputVectors = [None, ''] + paraview_output_pvdDisplay[-1].WriteLog = '' + + # init the 'PiecewiseFunction' selected for 'ScaleTransferFunction' + paraview_output_pvdDisplay[-1].ScaleTransferFunction.Points = [-0.0030751066823493183, 0.0, 0.5, 0.0, 0.002953424556242068, 1.0, 0.5, 0.0] + + # init the 'PiecewiseFunction' selected for 'OpacityTransferFunction' + paraview_output_pvdDisplay[-1].OpacityTransferFunction.Points = [-0.0030751066823493183, 0.0, 0.5, 0.0, 0.002953424556242068, 1.0, 0.5, 0.0] + + # reset view to fit data + renderView1.ResetCamera(False) + + #changing interaction mode based on data extents + renderView1.InteractionMode = '3D' + renderView1.CameraPosition = [0.5, 0.5, 3.35] + renderView1.CameraFocalPoint = [0.5, 0.5, 0.0] + + # get the material library + materialLibrary1 = GetMaterialLibrary() + + # update the view to ensure updated data information + renderView1.Update() + + # set scalar coloring + ColorBy(paraview_output_pvdDisplay[-1], ('POINTS', 'solution')) + + # rescale color and/or opacity maps used to include current data range + paraview_output_pvdDisplay[-1].RescaleTransferFunctionToDataRange(True, False) + + # show color bar/color legend + paraview_output_pvdDisplay[-1].SetScalarBarVisibility(renderView1, True) + +# get 2D transfer function for 'solution' +solutionTF2D = GetTransferFunction2D('solution') + +# get color transfer function/color map for 'solution' +solutionLUT = GetColorTransferFunction('solution') +solutionLUT.TransferFunction2D = solutionTF2D +solutionLUT.RGBPoints = [-0.0030751066823493183, 0.231373, 0.298039, 0.752941, -6.08410630536251e-05, 0.865003, 0.865003, 0.865003, 0.002953424556242068, 0.705882, 0.0156863, 0.14902] +solutionLUT.ScalarRangeInitialized = 1.0 + +# get opacity transfer function/opacity map for 'solution' +solutionPWF = GetOpacityTransferFunction('solution') +solutionPWF.Points = [-0.0030751066823493183, 0.0, 0.5, 0.0, 0.002953424556242068, 1.0, 0.5, 0.0] +solutionPWF.ScalarRangeInitialized = 1 + +#================================================================ +# addendum: following script captures some of the application +# state to faithfully reproduce the visualization during playback +#================================================================ + +# get layout +layout1 = GetLayout() + +#-------------------------------- +# saving layout sizes for layouts + +# layout/tab size in pixels +layout1.SetSize(2410, 1482) + +#----------------------------------- +# saving camera placements for views + +# current camera placement for renderView1 +renderView1.InteractionMode = '3D' +#renderView1.CameraPosition = [0.5, 0.5, 3.35] +#renderView1.CameraFocalPoint = [0.5, 0.5, 0.0] +#renderView1.CameraParallelScale = 0.7071067811865476 + +# Set the camera position for an axonometric view (example: isometric-like) +renderView1.CameraPosition = [1, 1, 1] # Adjust as needed +renderView1.CameraFocalPoint = [0, 0, 0] # Look at the center of the data +renderView1.CameraViewUp = [0, 0, 1] # Keep the Z-axis pointing upwards + + +#-------------------------------------------- +# uncomment the following to render all views +# RenderAllViews() +# alternatively, if you want to write images, you can use SaveScreenshot(...). \ No newline at end of file diff --git a/examples/linelast/meshes/3d_beam.mesh b/examples/linelast/meshes/3d_beam.mesh new file mode 100644 index 00000000..2772aae7 --- /dev/null +++ b/examples/linelast/meshes/3d_beam.mesh @@ -0,0 +1,515 @@ +MFEM mesh v1.0 + +# +# MFEM Geometry Types (see mesh/geom.hpp): +# +# POINT = 0 +# SEGMENT = 1 +# TRIANGLE = 2 +# SQUARE = 3 +# TETRAHEDRON = 4 +# CUBE = 5 +# PRISM = 6 +# PYRAMID = 7 +# + +dimension +3 + +elements +82 +1 4 13 30 23 36 +1 4 19 30 36 27 +1 4 30 18 36 27 +1 4 13 28 34 20 +1 4 24 13 28 34 +1 4 25 11 33 21 +1 4 26 11 31 22 +1 4 11 26 35 22 +1 4 22 18 26 35 +1 4 29 11 25 21 +1 4 36 9 30 23 +1 4 26 9 22 31 +1 4 13 30 8 23 +1 4 26 30 9 15 +1 4 18 9 36 22 +1 4 26 9 31 15 +1 4 19 30 27 14 +1 4 30 13 19 36 +1 4 22 36 18 12 +1 4 28 13 8 20 +1 4 13 24 19 34 +1 4 13 14 24 28 +1 4 9 36 12 23 +1 4 30 26 18 15 +1 4 30 18 27 15 +1 4 26 29 11 17 +1 4 36 22 9 12 +1 4 10 26 16 29 +1 4 29 17 16 25 +1 4 22 18 35 12 +1 4 26 11 35 17 +1 4 11 25 33 17 +1 4 26 29 17 16 +1 4 18 9 26 30 +1 4 9 18 36 30 +1 4 10 26 11 31 +1 4 11 31 22 10 +1 4 18 9 22 26 +1 4 17 29 11 25 +1 4 26 10 16 31 +1 4 11 29 10 21 +1 4 10 26 29 11 +1 4 13 14 28 8 +1 4 13 14 30 19 +1 4 13 14 8 30 +1 4 14 13 24 19 +1 4 28 34 20 37 +1 4 34 28 24 37 +1 4 21 25 29 32 +1 4 25 21 33 32 +1 4 13 3 20 34 +1 4 12 13 23 36 +1 4 3 0 20 37 +1 4 7 3 34 37 +1 4 19 7 34 24 +1 4 18 19 36 27 +1 4 0 8 20 28 +1 4 4 7 24 37 +1 4 4 0 37 28 +1 4 4 14 28 24 +1 4 12 11 35 22 +1 4 5 6 32 25 +1 4 14 15 30 27 +1 4 16 15 26 31 +1 4 17 6 25 33 +1 4 18 17 26 35 +1 4 2 6 33 32 +1 4 11 2 33 21 +1 4 10 1 21 29 +1 4 9 10 22 31 +1 4 9 8 30 23 +1 4 5 16 25 29 +1 4 2 1 32 21 +1 4 5 1 29 32 +1 4 34 20 37 3 +1 4 34 24 7 37 +1 4 20 28 37 0 +1 4 28 24 37 4 +1 4 25 33 6 32 +1 4 33 2 32 21 +1 4 25 29 32 5 +1 4 29 21 32 1 + +boundary +72 +1 2 0 3 20 +1 2 8 0 20 +1 2 2 1 21 +1 2 1 10 21 +1 2 11 2 21 +1 2 3 13 20 +1 2 9 8 23 +1 2 13 8 20 +1 2 8 13 23 +1 2 10 9 22 +1 2 9 12 22 +1 2 12 9 23 +1 2 10 11 21 +1 2 11 10 22 +1 2 12 11 22 +1 2 13 12 23 +2 2 7 4 24 +2 2 4 14 24 +2 2 5 6 25 +2 2 16 5 25 +2 2 6 17 25 +2 2 19 7 24 +2 2 14 15 27 +2 2 14 19 24 +2 2 19 14 27 +2 2 15 16 26 +2 2 18 15 26 +2 2 15 18 27 +2 2 17 16 25 +2 2 16 17 26 +2 2 17 18 26 +2 2 18 19 27 +3 2 4 0 28 +3 2 0 8 28 +3 2 1 5 29 +3 2 10 1 29 +3 2 14 4 28 +3 2 5 16 29 +3 2 8 9 30 +3 2 8 14 28 +3 2 14 8 30 +3 2 9 10 31 +3 2 9 15 30 +3 2 15 9 31 +3 2 16 10 29 +3 2 10 16 31 +3 2 15 14 30 +3 2 16 15 31 +4 2 1 2 32 +4 2 5 1 32 +4 2 2 6 32 +4 2 6 5 32 +5 2 6 2 33 +5 2 2 11 33 +5 2 3 7 34 +5 2 13 3 34 +5 2 17 6 33 +5 2 7 19 34 +5 2 11 12 35 +5 2 11 17 33 +5 2 17 11 35 +5 2 12 13 36 +5 2 12 18 35 +5 2 18 12 36 +5 2 19 13 34 +5 2 13 19 36 +5 2 18 17 35 +5 2 19 18 36 +6 2 3 0 37 +6 2 0 4 37 +6 2 7 3 37 +6 2 4 7 37 + +vertices +38 + +nodes +FiniteElementSpace +FiniteElementCollection: L2_T1_3D_P1 +VDim: 3 +Ordering: 1 + +1 1 0 +1.5 0 0.5 +1.5 0.5 0 +1.5 1 0.5 +1 1 1 +1.5 0 0.5 +1.5 1 0.5 +1.5 0.5 1 +1.5 0 0.5 +2 1 1 +1.5 1 0.5 +1.5 0.5 1 +1 1 0 +0.5 0 0.5 +0.5 1 0.5 +0.5 0.5 0 +0.5 0.5 1 +1 1 0 +0.5 0 0.5 +0.5 1 0.5 +3.5 0.5 1 +3 1 0 +3.5 1 0.5 +3.5 0.5 0 +2.5 0.5 1 +3 1 0 +2.5 0 0.5 +2.5 0.5 0 +3 1 0 +2.5 0.5 1 +2.5 1 0.5 +2.5 0.5 0 +2.5 0.5 0 +2 1 1 +2.5 0.5 1 +2.5 1 0.5 +3.5 0 0.5 +3 1 0 +3.5 0.5 1 +3.5 0.5 0 +1.5 1 0.5 +2 0 0 +1.5 0 0.5 +1.5 0.5 0 +2.5 0.5 1 +2 0 0 +2.5 0.5 0 +2.5 0 0.5 +1 1 0 +1.5 0 0.5 +1 0 0 +1.5 0.5 0 +2.5 0.5 1 +1.5 0 0.5 +2 0 0 +2 0 1 +2 1 1 +2 0 0 +1.5 1 0.5 +2.5 0.5 0 +2.5 0.5 1 +2 0 0 +2.5 0 0.5 +2 0 1 +1 1 1 +1.5 0 0.5 +1.5 0.5 1 +1 0 1 +1.5 0 0.5 +1 1 0 +1 1 1 +1.5 1 0.5 +2.5 0.5 0 +1.5 1 0.5 +2 1 1 +2 1 0 +0.5 0 0.5 +1 1 0 +1 0 0 +0.5 0.5 0 +1 1 0 +0.5 0.5 1 +1 1 1 +0.5 1 0.5 +1 1 0 +1 0 1 +0.5 0.5 1 +0.5 0 0.5 +2 0 0 +1.5 1 0.5 +2 1 0 +1.5 0.5 0 +1.5 0 0.5 +2.5 0.5 1 +2 1 1 +2 0 1 +1.5 0 0.5 +2 1 1 +1.5 0.5 1 +2 0 1 +2.5 0.5 1 +3.5 0 0.5 +3 1 0 +3 1 1 +1.5 1 0.5 +2.5 0.5 0 +2 0 0 +2 1 0 +3 0 0 +2.5 0.5 1 +3 0 1 +3.5 0 0.5 +3.5 0 0.5 +3 1 1 +3 0 1 +3.5 0.5 1 +2.5 0.5 0 +2 1 1 +2.5 1 0.5 +2 1 0 +2.5 0.5 1 +3 1 0 +2.5 1 0.5 +3 1 1 +3 1 0 +3.5 0.5 1 +3.5 1 0.5 +3 1 1 +2.5 0.5 1 +3.5 0 0.5 +3 1 1 +3 0 1 +2 1 1 +2 0 0 +2.5 0.5 1 +1.5 0 0.5 +2 0 0 +2 1 1 +1.5 1 0.5 +1.5 0 0.5 +3 0 0 +2.5 0.5 1 +3 1 0 +2.5 0 0.5 +3 1 0 +2.5 0 0.5 +2.5 0.5 0 +3 0 0 +2 1 1 +2 0 0 +2.5 0.5 0 +2.5 0.5 1 +3 1 1 +3.5 0 0.5 +3 1 0 +3.5 0.5 1 +2.5 0.5 1 +3 0 0 +3 0 1 +2.5 0 0.5 +3 1 0 +3.5 0 0.5 +3 0 0 +3.5 0.5 0 +3 0 0 +2.5 0.5 1 +3.5 0 0.5 +3 1 0 +1 1 0 +1 0 1 +0.5 0 0.5 +1 0 0 +1 1 0 +1 0 1 +1.5 0 0.5 +1 1 1 +1 1 0 +1 0 1 +1 0 0 +1.5 0 0.5 +1 0 1 +1 1 0 +0.5 0.5 1 +1 1 1 +0.5 0 0.5 +0.5 1 0.5 +0.5 0.5 0 +0 0.5 0.5 +0.5 1 0.5 +0.5 0 0.5 +0.5 0.5 1 +0 0.5 0.5 +3.5 0.5 0 +3.5 0.5 1 +3.5 0 0.5 +4 0.5 0.5 +3.5 0.5 1 +3.5 0.5 0 +3.5 1 0.5 +4 0.5 0.5 +1 1 0 +0 1 0 +0.5 0.5 0 +0.5 1 0.5 +2 1 0 +1 1 0 +1.5 0.5 0 +1.5 1 0.5 +0 1 0 +0 0 0 +0.5 0.5 0 +0 0.5 0.5 +0 1 1 +0 1 0 +0.5 1 0.5 +0 0.5 0.5 +1 1 1 +0 1 1 +0.5 1 0.5 +0.5 0.5 1 +2 1 1 +1 1 1 +1.5 1 0.5 +1.5 0.5 1 +0 0 0 +1 0 0 +0.5 0.5 0 +0.5 0 0.5 +0 0 1 +0 1 1 +0.5 0.5 1 +0 0.5 0.5 +0 0 1 +0 0 0 +0 0.5 0.5 +0.5 0 0.5 +0 0 1 +1 0 1 +0.5 0 0.5 +0.5 0.5 1 +2 1 0 +3 1 0 +2.5 1 0.5 +2.5 0.5 0 +4 0 1 +4 1 1 +4 0.5 0.5 +3.5 0.5 1 +1 0 1 +2 0 1 +1.5 0 0.5 +1.5 0.5 1 +3 0 1 +2 0 1 +2.5 0.5 1 +2.5 0 0.5 +3 1 1 +4 1 1 +3.5 0.5 1 +3.5 1 0.5 +2 1 1 +3 1 1 +2.5 0.5 1 +2.5 1 0.5 +4 1 0 +4 1 1 +3.5 1 0.5 +4 0.5 0.5 +3 1 0 +4 1 0 +3.5 1 0.5 +3.5 0.5 0 +3 0 0 +4 0 0 +3.5 0.5 0 +3.5 0 0.5 +2 0 0 +3 0 0 +2.5 0.5 0 +2.5 0 0.5 +2 0 0 +1 0 0 +1.5 0 0.5 +1.5 0.5 0 +4 0 1 +3 0 1 +3.5 0.5 1 +3.5 0 0.5 +4 1 0 +4 0 0 +4 0.5 0.5 +3.5 0.5 0 +4 0 1 +4 0 0 +3.5 0 0.5 +4 0.5 0.5 +0.5 1 0.5 +0.5 0.5 0 +0 0.5 0.5 +0 1 0 +0.5 1 0.5 +0.5 0.5 1 +0 1 1 +0 0.5 0.5 +0.5 0.5 0 +0.5 0 0.5 +0 0.5 0.5 +0 0 0 +0.5 0 0.5 +0.5 0.5 1 +0 0.5 0.5 +0 0 1 +3.5 0.5 1 +3.5 1 0.5 +4 1 1 +4 0.5 0.5 +3.5 1 0.5 +4 1 0 +4 0.5 0.5 +3.5 0.5 0 +3.5 0.5 1 +3.5 0 0.5 +4 0.5 0.5 +4 0 1 +3.5 0 0.5 +3.5 0.5 0 +4 0.5 0.5 +4 0 0 diff --git a/examples/linelast/meshes/3d_col.mesh b/examples/linelast/meshes/3d_col.mesh new file mode 100644 index 00000000..854ec573 --- /dev/null +++ b/examples/linelast/meshes/3d_col.mesh @@ -0,0 +1,515 @@ +MFEM mesh v1.0 + +# +# MFEM Geometry Types (see mesh/geom.hpp): +# +# POINT = 0 +# SEGMENT = 1 +# TRIANGLE = 2 +# SQUARE = 3 +# TETRAHEDRON = 4 +# CUBE = 5 +# PRISM = 6 +# PYRAMID = 7 +# + +dimension +3 + +elements +82 +1 4 37 22 29 10 +1 4 27 17 35 31 +1 4 23 36 28 8 +1 4 28 8 36 24 +1 4 17 23 27 35 +1 4 17 28 23 36 +1 4 9 28 36 24 +1 4 32 9 28 36 +1 4 10 29 37 25 +1 4 22 16 37 29 +1 4 28 17 32 36 +1 4 29 9 37 25 +1 4 9 33 29 37 +1 4 34 16 22 26 +1 4 34 16 26 30 +1 4 37 16 33 29 +1 4 22 19 10 37 +1 4 19 22 16 37 +1 4 33 9 18 37 +1 4 9 32 18 36 +1 4 16 34 19 30 +1 4 23 14 17 27 +1 4 19 22 10 34 +1 4 17 23 8 36 +1 4 23 14 11 28 +1 4 23 17 8 35 +1 4 23 14 27 11 +1 4 8 28 11 24 +1 4 27 17 31 14 +1 4 28 23 8 11 +1 4 9 15 32 28 +1 4 14 23 17 28 +1 4 29 9 25 12 +1 4 17 28 32 14 +1 4 9 28 24 12 +1 4 19 22 34 16 +1 4 15 9 33 29 +1 4 37 16 19 33 +1 4 22 16 13 26 +1 4 22 29 10 13 +1 4 10 29 25 13 +1 4 22 16 29 13 +1 4 15 9 12 28 +1 4 9 15 18 32 +1 4 9 15 12 29 +1 4 9 15 33 18 +1 4 35 27 31 21 +1 4 27 35 23 21 +1 4 26 34 30 20 +1 4 34 26 22 20 +1 4 0 1 20 22 +1 4 0 3 34 20 +1 4 3 2 30 20 +1 4 0 10 22 34 +1 4 3 19 34 30 +1 4 8 4 23 35 +1 4 5 11 23 27 +1 4 9 10 37 25 +1 4 6 5 21 27 +1 4 7 4 35 21 +1 4 17 18 32 36 +1 4 8 9 36 24 +1 4 14 15 28 32 +1 4 17 7 35 31 +1 4 5 4 21 23 +1 4 19 18 37 33 +1 4 6 7 31 21 +1 4 6 14 27 31 +1 4 11 12 24 28 +1 4 16 15 33 29 +1 4 2 16 30 26 +1 4 13 12 29 25 +1 4 2 1 26 20 +1 4 13 1 22 26 +1 4 22 34 20 0 +1 4 4 21 23 35 +1 4 23 27 21 5 +1 4 35 7 21 31 +1 4 34 30 20 3 +1 4 26 30 2 20 +1 4 27 31 21 6 +1 4 26 22 20 1 + +boundary +72 +1 2 1 0 20 +1 2 0 3 20 +1 2 2 1 20 +1 2 3 2 20 +2 2 4 5 21 +2 2 7 4 21 +2 2 5 6 21 +2 2 6 7 21 +3 2 0 1 22 +3 2 10 0 22 +3 2 1 13 22 +3 2 5 4 23 +3 2 4 8 23 +3 2 11 5 23 +3 2 8 9 24 +3 2 8 11 23 +3 2 11 8 24 +3 2 9 10 25 +3 2 9 12 24 +3 2 12 9 25 +3 2 13 10 22 +3 2 10 13 25 +3 2 12 11 24 +3 2 13 12 25 +4 2 1 2 26 +4 2 13 1 26 +4 2 2 16 26 +4 2 6 5 27 +4 2 5 11 27 +4 2 14 6 27 +4 2 11 12 28 +4 2 11 14 27 +4 2 14 11 28 +4 2 12 13 29 +4 2 12 15 28 +4 2 15 12 29 +4 2 16 13 26 +4 2 13 16 29 +4 2 15 14 28 +4 2 16 15 29 +5 2 2 3 30 +5 2 16 2 30 +5 2 3 19 30 +5 2 7 6 31 +5 2 6 14 31 +5 2 17 7 31 +5 2 14 15 32 +5 2 14 17 31 +5 2 17 14 32 +5 2 15 16 33 +5 2 15 18 32 +5 2 18 15 33 +5 2 19 16 30 +5 2 16 19 33 +5 2 18 17 32 +5 2 19 18 33 +6 2 3 0 34 +6 2 0 10 34 +6 2 19 3 34 +6 2 4 7 35 +6 2 8 4 35 +6 2 7 17 35 +6 2 9 8 36 +6 2 17 8 35 +6 2 8 17 36 +6 2 10 9 37 +6 2 18 9 36 +6 2 9 18 37 +6 2 10 19 34 +6 2 19 10 37 +6 2 17 18 36 +6 2 18 19 37 + +vertices +38 + +nodes +FiniteElementSpace +FiniteElementCollection: L2_T1_3D_P1 +VDim: 3 +Ordering: 1 + +0 0.5 1.5 +0.5 0 0.5 +1 0.5 1.5 +0 0 1 +1 0.5 3.5 +0 1 3 +0 0.5 3.5 +0.5 1 3.5 +0.5 0 3.5 +0 0.5 2.5 +1 0.5 2.5 +0 0 3 +1 0.5 2.5 +0 0 3 +0 0.5 2.5 +0.5 0 2.5 +0 1 3 +0.5 0 3.5 +1 0.5 3.5 +0 0.5 3.5 +0 1 3 +1 0.5 2.5 +0.5 0 3.5 +0 0.5 2.5 +0 0 2 +1 0.5 2.5 +0 0.5 2.5 +0.5 0 2.5 +0.5 1 2.5 +0 0 2 +1 0.5 2.5 +0 0.5 2.5 +0 0 1 +1 0.5 1.5 +0 0.5 1.5 +0.5 0 1.5 +0.5 0 0.5 +1 1 1 +0 0.5 1.5 +1 0.5 1.5 +1 0.5 2.5 +0 1 3 +0.5 1 2.5 +0 0.5 2.5 +1 0.5 1.5 +0 0 2 +0 0.5 1.5 +0.5 0 1.5 +0 0 2 +0.5 1 1.5 +1 0.5 1.5 +0 0.5 1.5 +0 0.5 0.5 +1 1 1 +0.5 0 0.5 +1 0.5 0.5 +0 0.5 0.5 +1 1 1 +1 0.5 0.5 +0.5 1 0.5 +0 0.5 1.5 +1 1 1 +0.5 1 1.5 +1 0.5 1.5 +0.5 0 0.5 +0 1 1 +0 0 1 +0 0.5 1.5 +0 1 1 +0.5 0 0.5 +1 1 1 +0 0.5 1.5 +0.5 1 1.5 +0 0 2 +0 1 2 +0 0.5 1.5 +0 0 2 +0.5 1 2.5 +0 1 2 +0 0.5 2.5 +1 1 1 +0 0.5 0.5 +0 1 1 +0.5 1 0.5 +0.5 0 3.5 +1 1 3 +0 1 3 +1 0.5 3.5 +0 1 1 +0.5 0 0.5 +0 0 1 +0 0.5 0.5 +0 1 3 +0.5 0 3.5 +0 0 3 +0 0.5 2.5 +0.5 0 3.5 +1 1 3 +1 0 3 +1 0.5 2.5 +0.5 0 3.5 +0 1 3 +0 0 3 +0 0.5 3.5 +0.5 0 3.5 +1 1 3 +1 0.5 3.5 +1 0 3 +0 0 3 +1 0.5 2.5 +1 0 3 +0.5 0 2.5 +1 0.5 3.5 +0 1 3 +0.5 1 3.5 +1 1 3 +1 0.5 2.5 +0.5 0 3.5 +0 0 3 +1 0 3 +0 0 2 +1 1 2 +0.5 1 2.5 +1 0.5 2.5 +1 1 3 +0.5 0 3.5 +0 1 3 +1 0.5 2.5 +1 0.5 1.5 +0 0 2 +0.5 0 1.5 +1 0 2 +0 1 3 +1 0.5 2.5 +0.5 1 2.5 +1 1 3 +0 0 2 +1 0.5 2.5 +0.5 0 2.5 +1 0 2 +0 1 1 +0.5 0 0.5 +0 0.5 0.5 +1 1 1 +1 1 2 +0 0 2 +0.5 1 1.5 +1 0.5 1.5 +0 0.5 1.5 +1 1 1 +0 1 1 +0.5 1 1.5 +0.5 0 0.5 +1 1 1 +1 0 1 +1 0.5 0.5 +0.5 0 0.5 +1 0.5 1.5 +0 0 1 +1 0 1 +0 0 1 +1 0.5 1.5 +0.5 0 1.5 +1 0 1 +0.5 0 0.5 +1 1 1 +1 0.5 1.5 +1 0 1 +1 1 2 +0 0 2 +1 0 2 +1 0.5 2.5 +0 0 2 +1 1 2 +0 1 2 +0.5 1 2.5 +0 0 2 +1 1 2 +1 0 2 +1 0.5 1.5 +0 0 2 +1 1 2 +0.5 1 1.5 +0 1 2 +0 0.5 3.5 +1 0.5 3.5 +0.5 1 3.5 +0.5 0.5 4 +1 0.5 3.5 +0 0.5 3.5 +0.5 0 3.5 +0.5 0.5 4 +1 0.5 0.5 +0 0.5 0.5 +0.5 1 0.5 +0.5 0.5 0 +0 0.5 0.5 +1 0.5 0.5 +0.5 0 0.5 +0.5 0.5 0 +0 0 0 +1 0 0 +0.5 0.5 0 +0.5 0 0.5 +0 0 0 +0 1 0 +0 0.5 0.5 +0.5 0.5 0 +0 1 0 +1 1 0 +0.5 1 0.5 +0.5 0.5 0 +0 0 0 +0 0 1 +0.5 0 0.5 +0 0.5 0.5 +0 1 0 +0 1 1 +0 0.5 0.5 +0.5 1 0.5 +0 0 3 +0 0 4 +0.5 0 3.5 +0 0.5 3.5 +1 0 4 +1 0 3 +0.5 0 3.5 +1 0.5 3.5 +0 0 2 +0 0 1 +0 0.5 1.5 +0.5 0 1.5 +1 1 4 +1 0 4 +0.5 0.5 4 +1 0.5 3.5 +0 1 4 +0 0 4 +0 0.5 3.5 +0.5 0.5 4 +0 1 3 +0 1 2 +0.5 1 2.5 +0 0.5 2.5 +0 0 3 +0 0 2 +0 0.5 2.5 +0.5 0 2.5 +1 1 3 +1 1 2 +1 0.5 2.5 +0.5 1 2.5 +0 1 3 +0 1 4 +0 0.5 3.5 +0.5 1 3.5 +1 0 4 +0 0 4 +0.5 0.5 4 +0.5 0 3.5 +0 1 1 +0 1 2 +0 0.5 1.5 +0.5 1 1.5 +1 1 4 +0 1 4 +0.5 1 3.5 +0.5 0.5 4 +1 1 4 +1 1 3 +1 0.5 3.5 +0.5 1 3.5 +1 0 3 +1 0 2 +0.5 0 2.5 +1 0.5 2.5 +1 1 1 +1 1 2 +0.5 1 1.5 +1 0.5 1.5 +1 1 0 +1 1 1 +0.5 1 0.5 +1 0.5 0.5 +1 0 1 +1 0 2 +1 0.5 1.5 +0.5 0 1.5 +1 1 0 +1 0 0 +1 0.5 0.5 +0.5 0.5 0 +1 0 1 +1 0 0 +0.5 0 0.5 +1 0.5 0.5 +0.5 0 0.5 +0 0.5 0.5 +0.5 0.5 0 +0 0 0 +0 0 4 +0.5 0.5 4 +0.5 0 3.5 +0 0.5 3.5 +0.5 0 3.5 +1 0.5 3.5 +0.5 0.5 4 +1 0 4 +0 0.5 3.5 +0 1 4 +0.5 0.5 4 +0.5 1 3.5 +0 0.5 0.5 +0.5 1 0.5 +0.5 0.5 0 +0 1 0 +1 0.5 0.5 +0.5 1 0.5 +1 1 0 +0.5 0.5 0 +1 0.5 3.5 +0.5 1 3.5 +0.5 0.5 4 +1 1 4 +1 0.5 0.5 +0.5 0 0.5 +0.5 0.5 0 +1 0 0 diff --git a/examples/linelast/meshes/3d_joint.mesh b/examples/linelast/meshes/3d_joint.mesh new file mode 100644 index 00000000..795c6a5d --- /dev/null +++ b/examples/linelast/meshes/3d_joint.mesh @@ -0,0 +1,177 @@ +MFEM mesh v1.0 + +# +# MFEM Geometry Types (see mesh/geom.hpp): +# +# POINT = 0 +# SEGMENT = 1 +# TRIANGLE = 2 +# SQUARE = 3 +# TETRAHEDRON = 4 +# CUBE = 5 +# PRISM = 6 +# PYRAMID = 7 +# + +dimension +3 + +elements +24 +1 4 11 13 12 8 +1 4 13 11 10 8 +1 4 13 11 9 10 +1 4 11 13 9 12 +1 4 0 4 10 13 +1 4 4 5 10 9 +1 4 7 4 13 9 +1 4 0 3 13 8 +1 4 3 7 13 12 +1 4 1 0 10 8 +1 4 2 3 8 12 +1 4 6 5 9 11 +1 4 7 6 9 12 +1 4 6 2 11 12 +1 4 5 1 10 11 +1 4 1 2 8 11 +1 4 10 0 13 8 +1 4 4 10 13 9 +1 4 9 12 13 7 +1 4 12 9 11 6 +1 4 13 12 8 3 +1 4 8 12 11 2 +1 4 11 9 10 5 +1 4 11 10 8 1 + +boundary +24 +1 2 1 0 8 +1 2 0 3 8 +1 2 2 1 8 +1 2 3 2 8 +2 2 4 5 9 +2 2 7 4 9 +2 2 5 6 9 +2 2 6 7 9 +3 2 0 1 10 +3 2 4 0 10 +3 2 1 5 10 +3 2 5 4 10 +4 2 1 2 11 +4 2 5 1 11 +4 2 2 6 11 +4 2 6 5 11 +5 2 2 3 12 +5 2 6 2 12 +5 2 3 7 12 +5 2 7 6 12 +6 2 3 0 13 +6 2 0 4 13 +6 2 7 3 13 +6 2 4 7 13 + +vertices +14 + +nodes +FiniteElementSpace +FiniteElementCollection: L2_T1_3D_P1 +VDim: 3 +Ordering: 1 + +1 0.5 0.5 +0 0.5 0.5 +0.5 1 0.5 +0.5 0.5 0 +0 0.5 0.5 +1 0.5 0.5 +0.5 0 0.5 +0.5 0.5 0 +0 0.5 0.5 +1 0.5 0.5 +0.5 0.5 1 +0.5 0 0.5 +1 0.5 0.5 +0 0.5 0.5 +0.5 0.5 1 +0.5 1 0.5 +0 0 0 +0 0 1 +0.5 0 0.5 +0 0.5 0.5 +0 0 1 +1 0 1 +0.5 0 0.5 +0.5 0.5 1 +0 1 1 +0 0 1 +0 0.5 0.5 +0.5 0.5 1 +0 0 0 +0 1 0 +0 0.5 0.5 +0.5 0.5 0 +0 1 0 +0 1 1 +0 0.5 0.5 +0.5 1 0.5 +1 0 0 +0 0 0 +0.5 0 0.5 +0.5 0.5 0 +1 1 0 +0 1 0 +0.5 0.5 0 +0.5 1 0.5 +1 1 1 +1 0 1 +0.5 0.5 1 +1 0.5 0.5 +0 1 1 +1 1 1 +0.5 0.5 1 +0.5 1 0.5 +1 1 1 +1 1 0 +1 0.5 0.5 +0.5 1 0.5 +1 0 1 +1 0 0 +0.5 0 0.5 +1 0.5 0.5 +1 0 0 +1 1 0 +0.5 0.5 0 +1 0.5 0.5 +0.5 0 0.5 +0 0 0 +0 0.5 0.5 +0.5 0.5 0 +0 0 1 +0.5 0 0.5 +0 0.5 0.5 +0.5 0.5 1 +0.5 0.5 1 +0.5 1 0.5 +0 0.5 0.5 +0 1 1 +0.5 1 0.5 +0.5 0.5 1 +1 0.5 0.5 +1 1 1 +0 0.5 0.5 +0.5 1 0.5 +0.5 0.5 0 +0 1 0 +0.5 0.5 0 +0.5 1 0.5 +1 0.5 0.5 +1 1 0 +1 0.5 0.5 +0.5 0.5 1 +0.5 0 0.5 +1 0 1 +1 0.5 0.5 +0.5 0 0.5 +0.5 0.5 0 +1 0 0 diff --git a/examples/linelast/meshes/3dcw_beamH.mesh b/examples/linelast/meshes/3dcw_beamH.mesh new file mode 100644 index 00000000..5db11622 --- /dev/null +++ b/examples/linelast/meshes/3dcw_beamH.mesh @@ -0,0 +1,1966 @@ +MFEM mesh v1.0 +# +# MFEM Geometry Types (see mesh/geom.hpp): +# POINT = 0 +# SEGMENT = 1 +# TRIANGLE = 2 +# SQUARE = 3 +# TETRAHEDRON = 4 +# CUBE = 5 + +dimension +3 + +elements +360 +1 5 0 1 2 3 4 5 6 7 +1 5 1 8 9 2 5 10 11 6 +1 5 8 12 13 9 10 14 15 11 +1 5 12 16 17 13 14 18 19 15 +1 5 16 20 21 17 18 22 23 19 +1 5 20 24 25 21 22 26 27 23 +1 5 24 28 29 25 26 30 31 27 +1 5 28 32 33 29 30 34 35 31 +1 5 32 36 37 33 34 38 39 35 +1 5 36 40 41 37 38 42 43 39 +1 5 44 45 46 47 48 49 50 51 +1 5 52 53 54 55 56 57 58 59 +1 5 60 61 62 63 52 53 54 55 +1 5 64 65 66 67 68 69 70 71 +1 5 72 64 67 73 74 68 71 75 +1 5 76 72 73 77 78 74 75 79 +1 5 80 76 77 81 82 78 79 83 +1 5 84 80 81 85 86 82 83 87 +1 5 88 84 85 89 90 86 87 91 +1 5 92 88 89 93 94 90 91 95 +1 5 96 92 93 97 98 94 95 99 +1 5 100 96 97 101 102 98 99 103 +1 5 104 105 102 103 106 107 108 109 +1 5 106 107 108 109 110 111 112 113 +1 5 110 111 112 113 63 60 61 62 +1 5 59 56 57 58 47 44 45 46 +1 5 51 48 49 50 3 0 1 2 +1 5 114 100 101 115 105 102 103 104 +1 5 116 117 118 119 120 121 122 123 +1 5 124 125 126 127 128 129 130 131 +1 5 132 133 134 135 124 125 126 127 +1 5 71 68 69 70 136 137 138 139 +1 5 136 137 138 139 140 141 142 143 +1 5 140 141 142 143 135 132 133 134 +1 5 131 128 129 130 119 116 117 118 +1 5 123 120 121 122 37 36 40 41 +1 5 144 145 1 0 146 147 5 4 +1 5 145 148 8 1 147 149 10 5 +1 5 148 150 12 8 149 151 14 10 +1 5 150 152 16 12 151 153 18 14 +1 5 152 154 20 16 153 155 22 18 +1 5 154 156 24 20 155 157 26 22 +1 5 156 158 28 24 157 159 30 26 +1 5 158 160 32 28 159 161 34 30 +1 5 160 162 36 32 161 163 38 34 +1 5 162 164 40 36 163 165 42 38 +1 5 166 167 45 44 168 169 49 48 +1 5 170 171 53 52 172 173 57 56 +1 5 174 175 61 60 170 171 53 52 +1 5 176 177 65 64 178 179 69 68 +1 5 180 176 64 72 181 178 68 74 +1 5 182 180 72 76 183 181 74 78 +1 5 184 182 76 80 185 183 78 82 +1 5 186 184 80 84 187 185 82 86 +1 5 188 186 84 88 189 187 86 90 +1 5 190 188 88 92 191 189 90 94 +1 5 192 190 92 96 193 191 94 98 +1 5 194 192 96 100 195 193 98 102 +1 5 105 196 195 102 107 197 198 108 +1 5 107 197 198 108 111 199 200 112 +1 5 111 199 200 112 60 174 175 61 +1 5 56 172 173 57 44 166 167 45 +1 5 48 168 169 49 0 144 145 1 +1 5 201 194 100 114 196 195 102 105 +1 5 202 203 117 116 204 205 121 120 +1 5 206 207 125 124 208 209 129 128 +1 5 210 211 133 132 206 207 125 124 +1 5 68 178 179 69 137 212 213 138 +1 5 137 212 213 138 141 214 215 142 +1 5 141 214 215 142 132 210 211 133 +1 5 128 208 209 129 116 202 203 117 +1 5 120 204 205 121 36 162 164 40 +1 5 216 217 145 144 218 219 147 146 +1 5 217 220 148 145 219 221 149 147 +1 5 220 222 150 148 221 223 151 149 +1 5 222 224 152 150 223 225 153 151 +1 5 224 226 154 152 225 227 155 153 +1 5 226 228 156 154 227 229 157 155 +1 5 228 230 158 156 229 231 159 157 +1 5 230 232 160 158 231 233 161 159 +1 5 232 234 162 160 233 235 163 161 +1 5 234 236 164 162 235 237 165 163 +1 5 238 239 167 166 240 241 169 168 +1 5 242 243 171 170 244 245 173 172 +1 5 246 247 175 174 242 243 171 170 +1 5 248 249 177 176 250 251 179 178 +1 5 252 248 176 180 253 250 178 181 +1 5 254 252 180 182 255 253 181 183 +1 5 256 254 182 184 257 255 183 185 +1 5 258 256 184 186 259 257 185 187 +1 5 260 258 186 188 261 259 187 189 +1 5 262 260 188 190 263 261 189 191 +1 5 264 262 190 192 265 263 191 193 +1 5 266 264 192 194 267 265 193 195 +1 5 196 268 267 195 197 269 270 198 +1 5 197 269 270 198 199 271 272 200 +1 5 199 271 272 200 174 246 247 175 +1 5 172 244 245 173 166 238 239 167 +1 5 168 240 241 169 144 216 217 145 +1 5 273 266 194 201 268 267 195 196 +1 5 274 275 203 202 276 277 205 204 +1 5 278 279 207 206 280 281 209 208 +1 5 282 283 211 210 278 279 207 206 +1 5 178 250 251 179 212 284 285 213 +1 5 212 284 285 213 214 286 287 215 +1 5 214 286 287 215 210 282 283 211 +1 5 208 280 281 209 202 274 275 203 +1 5 204 276 277 205 162 234 236 164 +1 5 288 289 217 216 290 291 219 218 +1 5 289 292 220 217 291 293 221 219 +1 5 292 294 222 220 293 295 223 221 +1 5 294 296 224 222 295 297 225 223 +1 5 296 298 226 224 297 299 227 225 +1 5 298 300 228 226 299 301 229 227 +1 5 300 302 230 228 301 303 231 229 +1 5 302 304 232 230 303 305 233 231 +1 5 304 306 234 232 305 307 235 233 +1 5 306 308 236 234 307 309 237 235 +1 5 310 311 239 238 312 313 241 240 +1 5 314 315 243 242 316 317 245 244 +1 5 318 319 247 246 314 315 243 242 +1 5 320 321 249 248 322 323 251 250 +1 5 324 320 248 252 325 322 250 253 +1 5 326 324 252 254 327 325 253 255 +1 5 328 326 254 256 329 327 255 257 +1 5 330 328 256 258 331 329 257 259 +1 5 332 330 258 260 333 331 259 261 +1 5 334 332 260 262 335 333 261 263 +1 5 336 334 262 264 337 335 263 265 +1 5 338 336 264 266 339 337 265 267 +1 5 268 340 339 267 269 341 342 270 +1 5 269 341 342 270 271 343 344 272 +1 5 271 343 344 272 246 318 319 247 +1 5 244 316 317 245 238 310 311 239 +1 5 240 312 313 241 216 288 289 217 +1 5 345 338 266 273 340 339 267 268 +1 5 346 347 275 274 348 349 277 276 +1 5 350 351 279 278 352 353 281 280 +1 5 354 355 283 282 350 351 279 278 +1 5 250 322 323 251 284 356 357 285 +1 5 284 356 357 285 286 358 359 287 +1 5 286 358 359 287 282 354 355 283 +1 5 280 352 353 281 274 346 347 275 +1 5 276 348 349 277 234 306 308 236 +1 5 360 361 289 288 362 363 291 290 +1 5 361 364 292 289 363 365 293 291 +1 5 364 366 294 292 365 367 295 293 +1 5 366 368 296 294 367 369 297 295 +1 5 368 370 298 296 369 371 299 297 +1 5 370 372 300 298 371 373 301 299 +1 5 372 374 302 300 373 375 303 301 +1 5 374 376 304 302 375 377 305 303 +1 5 376 378 306 304 377 379 307 305 +1 5 378 380 308 306 379 381 309 307 +1 5 382 383 311 310 384 385 313 312 +1 5 386 387 315 314 388 389 317 316 +1 5 390 391 319 318 386 387 315 314 +1 5 392 393 321 320 394 395 323 322 +1 5 396 392 320 324 397 394 322 325 +1 5 398 396 324 326 399 397 325 327 +1 5 400 398 326 328 401 399 327 329 +1 5 402 400 328 330 403 401 329 331 +1 5 404 402 330 332 405 403 331 333 +1 5 406 404 332 334 407 405 333 335 +1 5 408 406 334 336 409 407 335 337 +1 5 410 408 336 338 411 409 337 339 +1 5 340 412 411 339 341 413 414 342 +1 5 341 413 414 342 343 415 416 344 +1 5 343 415 416 344 318 390 391 319 +1 5 316 388 389 317 310 382 383 311 +1 5 312 384 385 313 288 360 361 289 +1 5 417 410 338 345 412 411 339 340 +1 5 418 419 347 346 420 421 349 348 +1 5 422 423 351 350 424 425 353 352 +1 5 426 427 355 354 422 423 351 350 +1 5 322 394 395 323 356 428 429 357 +1 5 356 428 429 357 358 430 431 359 +1 5 358 430 431 359 354 426 427 355 +1 5 352 424 425 353 346 418 419 347 +1 5 348 420 421 349 306 378 380 308 +1 5 432 433 361 360 434 435 363 362 +1 5 433 436 364 361 435 437 365 363 +1 5 436 438 366 364 437 439 367 365 +1 5 438 440 368 366 439 441 369 367 +1 5 440 442 370 368 441 443 371 369 +1 5 442 444 372 370 443 445 373 371 +1 5 444 446 374 372 445 447 375 373 +1 5 446 448 376 374 447 449 377 375 +1 5 448 450 378 376 449 451 379 377 +1 5 450 452 380 378 451 453 381 379 +1 5 454 455 383 382 456 457 385 384 +1 5 458 459 387 386 460 461 389 388 +1 5 462 463 391 390 458 459 387 386 +1 5 464 465 393 392 466 467 395 394 +1 5 468 464 392 396 469 466 394 397 +1 5 470 468 396 398 471 469 397 399 +1 5 472 470 398 400 473 471 399 401 +1 5 474 472 400 402 475 473 401 403 +1 5 476 474 402 404 477 475 403 405 +1 5 478 476 404 406 479 477 405 407 +1 5 480 478 406 408 481 479 407 409 +1 5 482 480 408 410 483 481 409 411 +1 5 412 484 483 411 413 485 486 414 +1 5 413 485 486 414 415 487 488 416 +1 5 415 487 488 416 390 462 463 391 +1 5 388 460 461 389 382 454 455 383 +1 5 384 456 457 385 360 432 433 361 +1 5 489 482 410 417 484 483 411 412 +1 5 490 491 419 418 492 493 421 420 +1 5 494 495 423 422 496 497 425 424 +1 5 498 499 427 426 494 495 423 422 +1 5 394 466 467 395 428 500 501 429 +1 5 428 500 501 429 430 502 503 431 +1 5 430 502 503 431 426 498 499 427 +1 5 424 496 497 425 418 490 491 419 +1 5 420 492 493 421 378 450 452 380 +1 5 504 505 433 432 506 507 435 434 +1 5 505 508 436 433 507 509 437 435 +1 5 508 510 438 436 509 511 439 437 +1 5 510 512 440 438 511 513 441 439 +1 5 512 514 442 440 513 515 443 441 +1 5 514 516 444 442 515 517 445 443 +1 5 516 518 446 444 517 519 447 445 +1 5 518 520 448 446 519 521 449 447 +1 5 520 522 450 448 521 523 451 449 +1 5 522 524 452 450 523 525 453 451 +1 5 526 527 455 454 528 529 457 456 +1 5 530 531 459 458 532 533 461 460 +1 5 534 535 463 462 530 531 459 458 +1 5 536 537 465 464 538 539 467 466 +1 5 540 536 464 468 541 538 466 469 +1 5 542 540 468 470 543 541 469 471 +1 5 544 542 470 472 545 543 471 473 +1 5 546 544 472 474 547 545 473 475 +1 5 548 546 474 476 549 547 475 477 +1 5 550 548 476 478 551 549 477 479 +1 5 552 550 478 480 553 551 479 481 +1 5 554 552 480 482 555 553 481 483 +1 5 484 556 555 483 485 557 558 486 +1 5 485 557 558 486 487 559 560 488 +1 5 487 559 560 488 462 534 535 463 +1 5 460 532 533 461 454 526 527 455 +1 5 456 528 529 457 432 504 505 433 +1 5 561 554 482 489 556 555 483 484 +1 5 562 563 491 490 564 565 493 492 +1 5 566 567 495 494 568 569 497 496 +1 5 570 571 499 498 566 567 495 494 +1 5 466 538 539 467 500 572 573 501 +1 5 500 572 573 501 502 574 575 503 +1 5 502 574 575 503 498 570 571 499 +1 5 496 568 569 497 490 562 563 491 +1 5 492 564 565 493 450 522 524 452 +1 5 576 577 505 504 578 579 507 506 +1 5 577 580 508 505 579 581 509 507 +1 5 580 582 510 508 581 583 511 509 +1 5 582 584 512 510 583 585 513 511 +1 5 584 586 514 512 585 587 515 513 +1 5 586 588 516 514 587 589 517 515 +1 5 588 590 518 516 589 591 519 517 +1 5 590 592 520 518 591 593 521 519 +1 5 592 594 522 520 593 595 523 521 +1 5 594 596 524 522 595 597 525 523 +1 5 598 599 527 526 600 601 529 528 +1 5 602 603 531 530 604 605 533 532 +1 5 606 607 535 534 602 603 531 530 +1 5 608 609 537 536 610 611 539 538 +1 5 612 608 536 540 613 610 538 541 +1 5 614 612 540 542 615 613 541 543 +1 5 616 614 542 544 617 615 543 545 +1 5 618 616 544 546 619 617 545 547 +1 5 620 618 546 548 621 619 547 549 +1 5 622 620 548 550 623 621 549 551 +1 5 624 622 550 552 625 623 551 553 +1 5 626 624 552 554 627 625 553 555 +1 5 556 628 627 555 557 629 630 558 +1 5 557 629 630 558 559 631 632 560 +1 5 559 631 632 560 534 606 607 535 +1 5 532 604 605 533 526 598 599 527 +1 5 528 600 601 529 504 576 577 505 +1 5 633 626 554 561 628 627 555 556 +1 5 634 635 563 562 636 637 565 564 +1 5 638 639 567 566 640 641 569 568 +1 5 642 643 571 570 638 639 567 566 +1 5 538 610 611 539 572 644 645 573 +1 5 572 644 645 573 574 646 647 575 +1 5 574 646 647 575 570 642 643 571 +1 5 568 640 641 569 562 634 635 563 +1 5 564 636 637 565 522 594 596 524 +1 5 648 649 577 576 650 651 579 578 +1 5 649 652 580 577 651 653 581 579 +1 5 652 654 582 580 653 655 583 581 +1 5 654 656 584 582 655 657 585 583 +1 5 656 658 586 584 657 659 587 585 +1 5 658 660 588 586 659 661 589 587 +1 5 660 662 590 588 661 663 591 589 +1 5 662 664 592 590 663 665 593 591 +1 5 664 666 594 592 665 667 595 593 +1 5 666 668 596 594 667 669 597 595 +1 5 670 671 599 598 672 673 601 600 +1 5 674 675 603 602 676 677 605 604 +1 5 678 679 607 606 674 675 603 602 +1 5 680 681 609 608 682 683 611 610 +1 5 684 680 608 612 685 682 610 613 +1 5 686 684 612 614 687 685 613 615 +1 5 688 686 614 616 689 687 615 617 +1 5 690 688 616 618 691 689 617 619 +1 5 692 690 618 620 693 691 619 621 +1 5 694 692 620 622 695 693 621 623 +1 5 696 694 622 624 697 695 623 625 +1 5 698 696 624 626 699 697 625 627 +1 5 628 700 699 627 629 701 702 630 +1 5 629 701 702 630 631 703 704 632 +1 5 631 703 704 632 606 678 679 607 +1 5 604 676 677 605 598 670 671 599 +1 5 600 672 673 601 576 648 649 577 +1 5 705 698 626 633 700 699 627 628 +1 5 706 707 635 634 708 709 637 636 +1 5 710 711 639 638 712 713 641 640 +1 5 714 715 643 642 710 711 639 638 +1 5 610 682 683 611 644 716 717 645 +1 5 644 716 717 645 646 718 719 647 +1 5 646 718 719 647 642 714 715 643 +1 5 640 712 713 641 634 706 707 635 +1 5 636 708 709 637 594 666 668 596 +1 5 720 721 649 648 722 723 651 650 +1 5 721 724 652 649 723 725 653 651 +1 5 724 726 654 652 725 727 655 653 +1 5 726 728 656 654 727 729 657 655 +1 5 728 730 658 656 729 731 659 657 +1 5 730 732 660 658 731 733 661 659 +1 5 732 734 662 660 733 735 663 661 +1 5 734 736 664 662 735 737 665 663 +1 5 736 738 666 664 737 739 667 665 +1 5 738 740 668 666 739 741 669 667 +1 5 742 743 671 670 744 745 673 672 +1 5 746 747 675 674 748 749 677 676 +1 5 750 751 679 678 746 747 675 674 +1 5 752 753 681 680 754 755 683 682 +1 5 756 752 680 684 757 754 682 685 +1 5 758 756 684 686 759 757 685 687 +1 5 760 758 686 688 761 759 687 689 +1 5 762 760 688 690 763 761 689 691 +1 5 764 762 690 692 765 763 691 693 +1 5 766 764 692 694 767 765 693 695 +1 5 768 766 694 696 769 767 695 697 +1 5 770 768 696 698 771 769 697 699 +1 5 700 772 771 699 701 773 774 702 +1 5 701 773 774 702 703 775 776 704 +1 5 703 775 776 704 678 750 751 679 +1 5 676 748 749 677 670 742 743 671 +1 5 672 744 745 673 648 720 721 649 +1 5 777 770 698 705 772 771 699 700 +1 5 778 779 707 706 780 781 709 708 +1 5 782 783 711 710 784 785 713 712 +1 5 786 787 715 714 782 783 711 710 +1 5 682 754 755 683 716 788 789 717 +1 5 716 788 789 717 718 790 791 719 +1 5 718 790 791 719 714 786 787 715 +1 5 712 784 785 713 706 778 779 707 +1 5 708 780 781 709 666 738 740 668 + +boundary +792 +2 3 2 3 7 6 +3 3 3 0 4 7 +5 3 4 5 6 7 +2 3 9 2 6 11 +5 3 1 2 9 8 +5 3 5 10 11 6 +2 3 13 9 11 15 +5 3 8 9 13 12 +5 3 10 14 15 11 +2 3 17 13 15 19 +5 3 12 13 17 16 +5 3 14 18 19 15 +2 3 21 17 19 23 +5 3 16 17 21 20 +5 3 18 22 23 19 +2 3 25 21 23 27 +5 3 20 21 25 24 +5 3 22 26 27 23 +2 3 29 25 27 31 +5 3 24 25 29 28 +5 3 26 30 31 27 +2 3 33 29 31 35 +5 3 28 29 33 32 +5 3 30 34 35 31 +2 3 37 33 35 39 +5 3 32 33 37 36 +5 3 34 38 39 35 +1 3 40 41 43 42 +2 3 41 37 39 43 +5 3 38 42 43 39 +5 3 45 46 50 49 +2 3 46 47 51 50 +3 3 47 44 48 51 +5 3 53 54 58 57 +2 3 54 55 59 58 +3 3 55 52 56 59 +5 3 61 62 54 53 +2 3 62 63 55 54 +3 3 63 60 52 55 +1 3 65 66 70 69 +2 3 66 67 71 70 +5 3 64 67 66 65 +2 3 67 73 75 71 +5 3 72 73 67 64 +5 3 74 68 71 75 +2 3 73 77 79 75 +5 3 76 77 73 72 +5 3 78 74 75 79 +2 3 77 81 83 79 +5 3 80 81 77 76 +5 3 82 78 79 83 +2 3 81 85 87 83 +5 3 84 85 81 80 +5 3 86 82 83 87 +2 3 85 89 91 87 +5 3 88 89 85 84 +5 3 90 86 87 91 +2 3 89 93 95 91 +5 3 92 93 89 88 +5 3 94 90 91 95 +2 3 93 97 99 95 +5 3 96 97 93 92 +5 3 98 94 95 99 +2 3 97 101 103 99 +5 3 100 101 97 96 +5 3 102 98 99 103 +3 3 104 105 107 106 +5 3 102 103 109 108 +2 3 103 104 106 109 +3 3 106 107 111 110 +5 3 108 109 113 112 +2 3 109 106 110 113 +3 3 110 111 60 63 +5 3 112 113 62 61 +2 3 113 110 63 62 +3 3 59 56 44 47 +5 3 57 58 46 45 +2 3 58 59 47 46 +3 3 51 48 0 3 +5 3 49 50 2 1 +2 3 50 51 3 2 +2 3 101 115 104 103 +3 3 115 114 105 104 +5 3 114 115 101 100 +1 3 117 118 122 121 +2 3 118 119 123 122 +5 3 119 116 120 123 +1 3 125 126 130 129 +2 3 126 127 131 130 +5 3 127 124 128 131 +1 3 133 134 126 125 +2 3 134 135 127 126 +5 3 135 132 124 127 +5 3 71 68 137 136 +1 3 69 70 139 138 +2 3 70 71 136 139 +5 3 136 137 141 140 +1 3 138 139 143 142 +2 3 139 136 140 143 +5 3 140 141 132 135 +1 3 142 143 134 133 +2 3 143 140 135 134 +5 3 131 128 116 119 +1 3 129 130 118 117 +2 3 130 131 119 118 +5 3 123 120 36 37 +1 3 121 122 41 40 +2 3 122 123 37 41 +3 3 0 144 146 4 +5 3 146 147 5 4 +5 3 145 1 8 148 +5 3 147 149 10 5 +5 3 148 8 12 150 +5 3 149 151 14 10 +5 3 150 12 16 152 +5 3 151 153 18 14 +5 3 152 16 20 154 +5 3 153 155 22 18 +5 3 154 20 24 156 +5 3 155 157 26 22 +5 3 156 24 28 158 +5 3 157 159 30 26 +5 3 158 28 32 160 +5 3 159 161 34 30 +5 3 160 32 36 162 +5 3 161 163 38 34 +1 3 164 40 42 165 +5 3 163 165 42 38 +5 3 167 45 49 169 +3 3 44 166 168 48 +5 3 171 53 57 173 +3 3 52 170 172 56 +5 3 175 61 53 171 +3 3 60 174 170 52 +1 3 177 65 69 179 +5 3 176 64 65 177 +5 3 180 72 64 176 +5 3 181 178 68 74 +5 3 182 76 72 180 +5 3 183 181 74 78 +5 3 184 80 76 182 +5 3 185 183 78 82 +5 3 186 84 80 184 +5 3 187 185 82 86 +5 3 188 88 84 186 +5 3 189 187 86 90 +5 3 190 92 88 188 +5 3 191 189 90 94 +5 3 192 96 92 190 +5 3 193 191 94 98 +5 3 194 100 96 192 +5 3 195 193 98 102 +3 3 105 196 197 107 +5 3 195 102 108 198 +3 3 107 197 199 111 +5 3 198 108 112 200 +3 3 111 199 174 60 +5 3 200 112 61 175 +3 3 56 172 166 44 +5 3 173 57 45 167 +3 3 48 168 144 0 +5 3 169 49 1 145 +3 3 114 201 196 105 +5 3 201 114 100 194 +1 3 203 117 121 205 +5 3 116 202 204 120 +1 3 207 125 129 209 +5 3 124 206 208 128 +1 3 211 133 125 207 +5 3 132 210 206 124 +5 3 68 178 212 137 +1 3 179 69 138 213 +5 3 137 212 214 141 +1 3 213 138 142 215 +5 3 141 214 210 132 +1 3 215 142 133 211 +5 3 128 208 202 116 +1 3 209 129 117 203 +5 3 120 204 162 36 +1 3 205 121 40 164 +3 3 144 216 218 146 +5 3 218 219 147 146 +5 3 217 145 148 220 +5 3 219 221 149 147 +5 3 220 148 150 222 +5 3 221 223 151 149 +5 3 222 150 152 224 +5 3 223 225 153 151 +5 3 224 152 154 226 +5 3 225 227 155 153 +5 3 226 154 156 228 +5 3 227 229 157 155 +5 3 228 156 158 230 +5 3 229 231 159 157 +5 3 230 158 160 232 +5 3 231 233 161 159 +5 3 232 160 162 234 +5 3 233 235 163 161 +1 3 236 164 165 237 +5 3 235 237 165 163 +5 3 239 167 169 241 +3 3 166 238 240 168 +5 3 243 171 173 245 +3 3 170 242 244 172 +5 3 247 175 171 243 +3 3 174 246 242 170 +1 3 249 177 179 251 +5 3 248 176 177 249 +5 3 252 180 176 248 +5 3 253 250 178 181 +5 3 254 182 180 252 +5 3 255 253 181 183 +5 3 256 184 182 254 +5 3 257 255 183 185 +5 3 258 186 184 256 +5 3 259 257 185 187 +5 3 260 188 186 258 +5 3 261 259 187 189 +5 3 262 190 188 260 +5 3 263 261 189 191 +5 3 264 192 190 262 +5 3 265 263 191 193 +5 3 266 194 192 264 +5 3 267 265 193 195 +3 3 196 268 269 197 +5 3 267 195 198 270 +3 3 197 269 271 199 +5 3 270 198 200 272 +3 3 199 271 246 174 +5 3 272 200 175 247 +3 3 172 244 238 166 +5 3 245 173 167 239 +3 3 168 240 216 144 +5 3 241 169 145 217 +3 3 201 273 268 196 +5 3 273 201 194 266 +1 3 275 203 205 277 +5 3 202 274 276 204 +1 3 279 207 209 281 +5 3 206 278 280 208 +1 3 283 211 207 279 +5 3 210 282 278 206 +5 3 178 250 284 212 +1 3 251 179 213 285 +5 3 212 284 286 214 +1 3 285 213 215 287 +5 3 214 286 282 210 +1 3 287 215 211 283 +5 3 208 280 274 202 +1 3 281 209 203 275 +5 3 204 276 234 162 +1 3 277 205 164 236 +3 3 216 288 290 218 +5 3 290 291 219 218 +5 3 289 217 220 292 +5 3 291 293 221 219 +5 3 292 220 222 294 +5 3 293 295 223 221 +5 3 294 222 224 296 +5 3 295 297 225 223 +5 3 296 224 226 298 +5 3 297 299 227 225 +5 3 298 226 228 300 +5 3 299 301 229 227 +5 3 300 228 230 302 +5 3 301 303 231 229 +5 3 302 230 232 304 +5 3 303 305 233 231 +5 3 304 232 234 306 +5 3 305 307 235 233 +1 3 308 236 237 309 +5 3 307 309 237 235 +5 3 311 239 241 313 +3 3 238 310 312 240 +5 3 315 243 245 317 +3 3 242 314 316 244 +5 3 319 247 243 315 +3 3 246 318 314 242 +1 3 321 249 251 323 +5 3 320 248 249 321 +5 3 324 252 248 320 +5 3 325 322 250 253 +5 3 326 254 252 324 +5 3 327 325 253 255 +5 3 328 256 254 326 +5 3 329 327 255 257 +5 3 330 258 256 328 +5 3 331 329 257 259 +5 3 332 260 258 330 +5 3 333 331 259 261 +5 3 334 262 260 332 +5 3 335 333 261 263 +5 3 336 264 262 334 +5 3 337 335 263 265 +5 3 338 266 264 336 +5 3 339 337 265 267 +3 3 268 340 341 269 +5 3 339 267 270 342 +3 3 269 341 343 271 +5 3 342 270 272 344 +3 3 271 343 318 246 +5 3 344 272 247 319 +3 3 244 316 310 238 +5 3 317 245 239 311 +3 3 240 312 288 216 +5 3 313 241 217 289 +3 3 273 345 340 268 +5 3 345 273 266 338 +1 3 347 275 277 349 +5 3 274 346 348 276 +1 3 351 279 281 353 +5 3 278 350 352 280 +1 3 355 283 279 351 +5 3 282 354 350 278 +5 3 250 322 356 284 +1 3 323 251 285 357 +5 3 284 356 358 286 +1 3 357 285 287 359 +5 3 286 358 354 282 +1 3 359 287 283 355 +5 3 280 352 346 274 +1 3 353 281 275 347 +5 3 276 348 306 234 +1 3 349 277 236 308 +3 3 288 360 362 290 +5 3 362 363 291 290 +5 3 361 289 292 364 +5 3 363 365 293 291 +5 3 364 292 294 366 +5 3 365 367 295 293 +5 3 366 294 296 368 +5 3 367 369 297 295 +5 3 368 296 298 370 +5 3 369 371 299 297 +5 3 370 298 300 372 +5 3 371 373 301 299 +5 3 372 300 302 374 +5 3 373 375 303 301 +5 3 374 302 304 376 +5 3 375 377 305 303 +5 3 376 304 306 378 +5 3 377 379 307 305 +1 3 380 308 309 381 +5 3 379 381 309 307 +5 3 383 311 313 385 +3 3 310 382 384 312 +5 3 387 315 317 389 +3 3 314 386 388 316 +5 3 391 319 315 387 +3 3 318 390 386 314 +1 3 393 321 323 395 +5 3 392 320 321 393 +5 3 396 324 320 392 +5 3 397 394 322 325 +5 3 398 326 324 396 +5 3 399 397 325 327 +5 3 400 328 326 398 +5 3 401 399 327 329 +5 3 402 330 328 400 +5 3 403 401 329 331 +5 3 404 332 330 402 +5 3 405 403 331 333 +5 3 406 334 332 404 +5 3 407 405 333 335 +5 3 408 336 334 406 +5 3 409 407 335 337 +5 3 410 338 336 408 +5 3 411 409 337 339 +3 3 340 412 413 341 +5 3 411 339 342 414 +3 3 341 413 415 343 +5 3 414 342 344 416 +3 3 343 415 390 318 +5 3 416 344 319 391 +3 3 316 388 382 310 +5 3 389 317 311 383 +3 3 312 384 360 288 +5 3 385 313 289 361 +3 3 345 417 412 340 +5 3 417 345 338 410 +1 3 419 347 349 421 +5 3 346 418 420 348 +1 3 423 351 353 425 +5 3 350 422 424 352 +1 3 427 355 351 423 +5 3 354 426 422 350 +5 3 322 394 428 356 +1 3 395 323 357 429 +5 3 356 428 430 358 +1 3 429 357 359 431 +5 3 358 430 426 354 +1 3 431 359 355 427 +5 3 352 424 418 346 +1 3 425 353 347 419 +5 3 348 420 378 306 +1 3 421 349 308 380 +3 3 360 432 434 362 +5 3 434 435 363 362 +5 3 433 361 364 436 +5 3 435 437 365 363 +5 3 436 364 366 438 +5 3 437 439 367 365 +5 3 438 366 368 440 +5 3 439 441 369 367 +5 3 440 368 370 442 +5 3 441 443 371 369 +5 3 442 370 372 444 +5 3 443 445 373 371 +5 3 444 372 374 446 +5 3 445 447 375 373 +5 3 446 374 376 448 +5 3 447 449 377 375 +5 3 448 376 378 450 +5 3 449 451 379 377 +1 3 452 380 381 453 +5 3 451 453 381 379 +5 3 455 383 385 457 +3 3 382 454 456 384 +5 3 459 387 389 461 +3 3 386 458 460 388 +5 3 463 391 387 459 +3 3 390 462 458 386 +1 3 465 393 395 467 +5 3 464 392 393 465 +5 3 468 396 392 464 +5 3 469 466 394 397 +5 3 470 398 396 468 +5 3 471 469 397 399 +5 3 472 400 398 470 +5 3 473 471 399 401 +5 3 474 402 400 472 +5 3 475 473 401 403 +5 3 476 404 402 474 +5 3 477 475 403 405 +5 3 478 406 404 476 +5 3 479 477 405 407 +5 3 480 408 406 478 +5 3 481 479 407 409 +5 3 482 410 408 480 +5 3 483 481 409 411 +3 3 412 484 485 413 +5 3 483 411 414 486 +3 3 413 485 487 415 +5 3 486 414 416 488 +3 3 415 487 462 390 +5 3 488 416 391 463 +3 3 388 460 454 382 +5 3 461 389 383 455 +3 3 384 456 432 360 +5 3 457 385 361 433 +3 3 417 489 484 412 +5 3 489 417 410 482 +1 3 491 419 421 493 +5 3 418 490 492 420 +1 3 495 423 425 497 +5 3 422 494 496 424 +1 3 499 427 423 495 +5 3 426 498 494 422 +5 3 394 466 500 428 +1 3 467 395 429 501 +5 3 428 500 502 430 +1 3 501 429 431 503 +5 3 430 502 498 426 +1 3 503 431 427 499 +5 3 424 496 490 418 +1 3 497 425 419 491 +5 3 420 492 450 378 +1 3 493 421 380 452 +3 3 432 504 506 434 +5 3 506 507 435 434 +5 3 505 433 436 508 +5 3 507 509 437 435 +5 3 508 436 438 510 +5 3 509 511 439 437 +5 3 510 438 440 512 +5 3 511 513 441 439 +5 3 512 440 442 514 +5 3 513 515 443 441 +5 3 514 442 444 516 +5 3 515 517 445 443 +5 3 516 444 446 518 +5 3 517 519 447 445 +5 3 518 446 448 520 +5 3 519 521 449 447 +5 3 520 448 450 522 +5 3 521 523 451 449 +1 3 524 452 453 525 +5 3 523 525 453 451 +5 3 527 455 457 529 +3 3 454 526 528 456 +5 3 531 459 461 533 +3 3 458 530 532 460 +5 3 535 463 459 531 +3 3 462 534 530 458 +1 3 537 465 467 539 +5 3 536 464 465 537 +5 3 540 468 464 536 +5 3 541 538 466 469 +5 3 542 470 468 540 +5 3 543 541 469 471 +5 3 544 472 470 542 +5 3 545 543 471 473 +5 3 546 474 472 544 +5 3 547 545 473 475 +5 3 548 476 474 546 +5 3 549 547 475 477 +5 3 550 478 476 548 +5 3 551 549 477 479 +5 3 552 480 478 550 +5 3 553 551 479 481 +5 3 554 482 480 552 +5 3 555 553 481 483 +3 3 484 556 557 485 +5 3 555 483 486 558 +3 3 485 557 559 487 +5 3 558 486 488 560 +3 3 487 559 534 462 +5 3 560 488 463 535 +3 3 460 532 526 454 +5 3 533 461 455 527 +3 3 456 528 504 432 +5 3 529 457 433 505 +3 3 489 561 556 484 +5 3 561 489 482 554 +1 3 563 491 493 565 +5 3 490 562 564 492 +1 3 567 495 497 569 +5 3 494 566 568 496 +1 3 571 499 495 567 +5 3 498 570 566 494 +5 3 466 538 572 500 +1 3 539 467 501 573 +5 3 500 572 574 502 +1 3 573 501 503 575 +5 3 502 574 570 498 +1 3 575 503 499 571 +5 3 496 568 562 490 +1 3 569 497 491 563 +5 3 492 564 522 450 +1 3 565 493 452 524 +3 3 504 576 578 506 +5 3 578 579 507 506 +5 3 577 505 508 580 +5 3 579 581 509 507 +5 3 580 508 510 582 +5 3 581 583 511 509 +5 3 582 510 512 584 +5 3 583 585 513 511 +5 3 584 512 514 586 +5 3 585 587 515 513 +5 3 586 514 516 588 +5 3 587 589 517 515 +5 3 588 516 518 590 +5 3 589 591 519 517 +5 3 590 518 520 592 +5 3 591 593 521 519 +5 3 592 520 522 594 +5 3 593 595 523 521 +1 3 596 524 525 597 +5 3 595 597 525 523 +5 3 599 527 529 601 +3 3 526 598 600 528 +5 3 603 531 533 605 +3 3 530 602 604 532 +5 3 607 535 531 603 +3 3 534 606 602 530 +1 3 609 537 539 611 +5 3 608 536 537 609 +5 3 612 540 536 608 +5 3 613 610 538 541 +5 3 614 542 540 612 +5 3 615 613 541 543 +5 3 616 544 542 614 +5 3 617 615 543 545 +5 3 618 546 544 616 +5 3 619 617 545 547 +5 3 620 548 546 618 +5 3 621 619 547 549 +5 3 622 550 548 620 +5 3 623 621 549 551 +5 3 624 552 550 622 +5 3 625 623 551 553 +5 3 626 554 552 624 +5 3 627 625 553 555 +3 3 556 628 629 557 +5 3 627 555 558 630 +3 3 557 629 631 559 +5 3 630 558 560 632 +3 3 559 631 606 534 +5 3 632 560 535 607 +3 3 532 604 598 526 +5 3 605 533 527 599 +3 3 528 600 576 504 +5 3 601 529 505 577 +3 3 561 633 628 556 +5 3 633 561 554 626 +1 3 635 563 565 637 +5 3 562 634 636 564 +1 3 639 567 569 641 +5 3 566 638 640 568 +1 3 643 571 567 639 +5 3 570 642 638 566 +5 3 538 610 644 572 +1 3 611 539 573 645 +5 3 572 644 646 574 +1 3 645 573 575 647 +5 3 574 646 642 570 +1 3 647 575 571 643 +5 3 568 640 634 562 +1 3 641 569 563 635 +5 3 564 636 594 522 +1 3 637 565 524 596 +3 3 576 648 650 578 +5 3 650 651 579 578 +5 3 649 577 580 652 +5 3 651 653 581 579 +5 3 652 580 582 654 +5 3 653 655 583 581 +5 3 654 582 584 656 +5 3 655 657 585 583 +5 3 656 584 586 658 +5 3 657 659 587 585 +5 3 658 586 588 660 +5 3 659 661 589 587 +5 3 660 588 590 662 +5 3 661 663 591 589 +5 3 662 590 592 664 +5 3 663 665 593 591 +5 3 664 592 594 666 +5 3 665 667 595 593 +1 3 668 596 597 669 +5 3 667 669 597 595 +5 3 671 599 601 673 +3 3 598 670 672 600 +5 3 675 603 605 677 +3 3 602 674 676 604 +5 3 679 607 603 675 +3 3 606 678 674 602 +1 3 681 609 611 683 +5 3 680 608 609 681 +5 3 684 612 608 680 +5 3 685 682 610 613 +5 3 686 614 612 684 +5 3 687 685 613 615 +5 3 688 616 614 686 +5 3 689 687 615 617 +5 3 690 618 616 688 +5 3 691 689 617 619 +5 3 692 620 618 690 +5 3 693 691 619 621 +5 3 694 622 620 692 +5 3 695 693 621 623 +5 3 696 624 622 694 +5 3 697 695 623 625 +5 3 698 626 624 696 +5 3 699 697 625 627 +3 3 628 700 701 629 +5 3 699 627 630 702 +3 3 629 701 703 631 +5 3 702 630 632 704 +3 3 631 703 678 606 +5 3 704 632 607 679 +3 3 604 676 670 598 +5 3 677 605 599 671 +3 3 600 672 648 576 +5 3 673 601 577 649 +3 3 633 705 700 628 +5 3 705 633 626 698 +1 3 707 635 637 709 +5 3 634 706 708 636 +1 3 711 639 641 713 +5 3 638 710 712 640 +1 3 715 643 639 711 +5 3 642 714 710 638 +5 3 610 682 716 644 +1 3 683 611 645 717 +5 3 644 716 718 646 +1 3 717 645 647 719 +5 3 646 718 714 642 +1 3 719 647 643 715 +5 3 640 712 706 634 +1 3 713 641 635 707 +5 3 636 708 666 594 +1 3 709 637 596 668 +4 3 720 721 723 722 +3 3 648 720 722 650 +5 3 722 723 651 650 +4 3 721 724 725 723 +5 3 721 649 652 724 +5 3 723 725 653 651 +4 3 724 726 727 725 +5 3 724 652 654 726 +5 3 725 727 655 653 +4 3 726 728 729 727 +5 3 726 654 656 728 +5 3 727 729 657 655 +4 3 728 730 731 729 +5 3 728 656 658 730 +5 3 729 731 659 657 +4 3 730 732 733 731 +5 3 730 658 660 732 +5 3 731 733 661 659 +4 3 732 734 735 733 +5 3 732 660 662 734 +5 3 733 735 663 661 +4 3 734 736 737 735 +5 3 734 662 664 736 +5 3 735 737 665 663 +4 3 736 738 739 737 +5 3 736 664 666 738 +5 3 737 739 667 665 +4 3 738 740 741 739 +1 3 740 668 669 741 +5 3 739 741 669 667 +4 3 742 743 745 744 +5 3 743 671 673 745 +3 3 670 742 744 672 +4 3 746 747 749 748 +5 3 747 675 677 749 +3 3 674 746 748 676 +4 3 750 751 747 746 +5 3 751 679 675 747 +3 3 678 750 746 674 +4 3 752 753 755 754 +1 3 753 681 683 755 +5 3 752 680 681 753 +4 3 756 752 754 757 +5 3 756 684 680 752 +5 3 757 754 682 685 +4 3 758 756 757 759 +5 3 758 686 684 756 +5 3 759 757 685 687 +4 3 760 758 759 761 +5 3 760 688 686 758 +5 3 761 759 687 689 +4 3 762 760 761 763 +5 3 762 690 688 760 +5 3 763 761 689 691 +4 3 764 762 763 765 +5 3 764 692 690 762 +5 3 765 763 691 693 +4 3 766 764 765 767 +5 3 766 694 692 764 +5 3 767 765 693 695 +4 3 768 766 767 769 +5 3 768 696 694 766 +5 3 769 767 695 697 +4 3 770 768 769 771 +5 3 770 698 696 768 +5 3 771 769 697 699 +3 3 700 772 773 701 +4 3 772 771 774 773 +5 3 771 699 702 774 +3 3 701 773 775 703 +4 3 773 774 776 775 +5 3 774 702 704 776 +3 3 703 775 750 678 +4 3 775 776 751 750 +5 3 776 704 679 751 +3 3 676 748 742 670 +4 3 748 749 743 742 +5 3 749 677 671 743 +3 3 672 744 720 648 +4 3 744 745 721 720 +5 3 745 673 649 721 +4 3 777 770 771 772 +3 3 705 777 772 700 +5 3 777 705 698 770 +4 3 778 779 781 780 +1 3 779 707 709 781 +5 3 706 778 780 708 +4 3 782 783 785 784 +1 3 783 711 713 785 +5 3 710 782 784 712 +4 3 786 787 783 782 +1 3 787 715 711 783 +5 3 714 786 782 710 +5 3 682 754 788 716 +4 3 754 755 789 788 +1 3 755 683 717 789 +5 3 716 788 790 718 +4 3 788 789 791 790 +1 3 789 717 719 791 +5 3 718 790 786 714 +4 3 790 791 787 786 +1 3 791 719 715 787 +5 3 712 784 778 706 +4 3 784 785 779 778 +1 3 785 713 707 779 +5 3 708 780 738 666 +4 3 780 781 740 738 +1 3 781 709 668 740 + +vertices +792 +3 +0.45 0.1 0.09 +0.45 0.09 0.09 +0.5 0.09 0.09 +0.5 0.1 0.09 +0.45 0.1 0.1 +0.45 0.09 0.1 +0.5 0.09 0.1 +0.5 0.1 0.1 +0.45 0.08 0.09 +0.5 0.08 0.09 +0.45 0.08 0.1 +0.5 0.08 0.1 +0.45 0.07 0.09 +0.5 0.07 0.09 +0.45 0.07 0.1 +0.5 0.07 0.1 +0.45 0.06 0.09 +0.5 0.06 0.09 +0.45 0.06 0.1 +0.5 0.06 0.1 +0.45 0.05 0.09 +0.5 0.05 0.09 +0.45 0.05 0.1 +0.5 0.05 0.1 +0.45 0.04 0.09 +0.5 0.04 0.09 +0.45 0.04 0.1 +0.5 0.04 0.1 +0.45 0.03 0.09 +0.5 0.03 0.09 +0.45 0.03 0.1 +0.5 0.03 0.1 +0.45 0.02 0.09 +0.5 0.02 0.09 +0.45 0.02 0.1 +0.5 0.02 0.1 +0.45 0.01 0.09 +0.5 0.01 0.09 +0.45 0.01 0.1 +0.5 0.01 0.1 +0.45 0.0 0.09 +0.5 0.0 0.09 +0.45 0.0 0.1 +0.5 0.0 0.1 +0.45 0.1 0.07 +0.45 0.09 0.07 +0.5 0.09 0.07 +0.5 0.1 0.07 +0.45 0.1 0.08 +0.45 0.09 0.08 +0.5 0.09 0.08 +0.5 0.1 0.08 +0.45 0.1 0.05 +0.45 0.09 0.05 +0.5 0.09 0.05 +0.5 0.1 0.05 +0.45 0.1 0.06 +0.45 0.09 0.06 +0.5 0.09 0.06 +0.5 0.1 0.06 +0.45 0.1 0.04 +0.45 0.09 0.04 +0.5 0.09 0.04 +0.5 0.1 0.04 +0.45 0.01 0.0 +0.45 0.0 0.0 +0.5 0.0 0.0 +0.5 0.01 0.0 +0.45 0.01 0.01 +0.45 0.0 0.01 +0.5 0.0 0.01 +0.5 0.01 0.01 +0.45 0.02 0.0 +0.5 0.02 0.0 +0.45 0.02 0.01 +0.5 0.02 0.01 +0.45 0.03 0.0 +0.5 0.03 0.0 +0.45 0.03 0.01 +0.5 0.03 0.01 +0.45 0.04 0.0 +0.5 0.04 0.0 +0.45 0.04 0.01 +0.5 0.04 0.01 +0.45 0.05 0.0 +0.5 0.05 0.0 +0.45 0.05 0.01 +0.5 0.05 0.01 +0.45 0.06 0.0 +0.5 0.06 0.0 +0.45 0.06 0.01 +0.5 0.06 0.01 +0.45 0.07 0.0 +0.5 0.07 0.0 +0.45 0.07 0.01 +0.5 0.07 0.01 +0.45 0.08 0.0 +0.5 0.08 0.0 +0.45 0.08 0.01 +0.5 0.08 0.01 +0.45 0.09 0.0 +0.5 0.09 0.0 +0.45 0.09 0.01 +0.5 0.09 0.01 +0.5 0.1 0.01 +0.45 0.1 0.01 +0.5 0.1 0.02 +0.45 0.1 0.02 +0.45 0.09 0.02 +0.5 0.09 0.02 +0.5 0.1 0.03 +0.45 0.1 0.03 +0.45 0.09 0.03 +0.5 0.09 0.03 +0.45 0.1 0.0 +0.5 0.1 0.0 +0.45 0.01 0.07 +0.45 -0.0 0.07 +0.5 -0.0 0.07 +0.5 0.01 0.07 +0.45 0.01 0.08 +0.45 -0.0 0.08 +0.5 -0.0 0.08 +0.5 0.01 0.08 +0.45 0.01 0.05 +0.45 -0.0 0.05 +0.5 -0.0 0.05 +0.5 0.01 0.05 +0.45 0.01 0.06 +0.45 -0.0 0.06 +0.5 -0.0 0.06 +0.5 0.01 0.06 +0.45 0.01 0.04 +0.45 -0.0 0.04 +0.5 -0.0 0.04 +0.5 0.01 0.04 +0.5 0.01 0.02 +0.45 0.01 0.02 +0.45 0.0 0.02 +0.5 -0.0 0.02 +0.5 0.01 0.03 +0.45 0.01 0.03 +0.45 0.0 0.03 +0.5 -0.0 0.03 +0.4 0.1 0.09 +0.4 0.09 0.09 +0.4 0.1 0.1 +0.4 0.09 0.1 +0.4 0.08 0.09 +0.4 0.08 0.1 +0.4 0.07 0.09 +0.4 0.07 0.1 +0.4 0.06 0.09 +0.4 0.06 0.1 +0.4 0.05 0.09 +0.4 0.05 0.1 +0.4 0.04 0.09 +0.4 0.04 0.1 +0.4 0.03 0.09 +0.4 0.03 0.1 +0.4 0.02 0.09 +0.4 0.02 0.1 +0.4 0.01 0.09 +0.4 0.01 0.1 +0.4 0.0 0.09 +0.4 0.0 0.1 +0.4 0.1 0.07 +0.4 0.09 0.07 +0.4 0.1 0.08 +0.4 0.09 0.08 +0.4 0.1 0.05 +0.4 0.09 0.05 +0.4 0.1 0.06 +0.4 0.09 0.06 +0.4 0.1 0.04 +0.4 0.09 0.04 +0.4 0.01 0.0 +0.4 0.0 0.0 +0.4 0.01 0.01 +0.4 0.0 0.01 +0.4 0.02 0.0 +0.4 0.02 0.01 +0.4 0.03 0.0 +0.4 0.03 0.01 +0.4 0.04 0.0 +0.4 0.04 0.01 +0.4 0.05 0.0 +0.4 0.05 0.01 +0.4 0.06 0.0 +0.4 0.06 0.01 +0.4 0.07 0.0 +0.4 0.07 0.01 +0.4 0.08 0.0 +0.4 0.08 0.01 +0.4 0.09 0.0 +0.4 0.09 0.01 +0.4 0.1 0.01 +0.4 0.1 0.02 +0.4 0.09 0.02 +0.4 0.1 0.03 +0.4 0.09 0.03 +0.4 0.1 0.0 +0.4 0.01 0.07 +0.4 -0.0 0.07 +0.4 0.01 0.08 +0.4 -0.0 0.08 +0.4 0.01 0.05 +0.4 -0.0 0.05 +0.4 0.01 0.06 +0.4 -0.0 0.06 +0.4 0.01 0.04 +0.4 -0.0 0.04 +0.4 0.01 0.02 +0.4 0.0 0.02 +0.4 0.01 0.03 +0.4 0.0 0.03 +0.35 0.1 0.09 +0.35 0.09 0.09 +0.35 0.1 0.1 +0.35 0.09 0.1 +0.35 0.08 0.09 +0.35 0.08 0.1 +0.35 0.07 0.09 +0.35 0.07 0.1 +0.35 0.06 0.09 +0.35 0.06 0.1 +0.35 0.05 0.09 +0.35 0.05 0.1 +0.35 0.04 0.09 +0.35 0.04 0.1 +0.35 0.03 0.09 +0.35 0.03 0.1 +0.35 0.02 0.09 +0.35 0.02 0.1 +0.35 0.01 0.09 +0.35 0.01 0.1 +0.35 0.0 0.09 +0.35 0.0 0.1 +0.35 0.1 0.07 +0.35 0.09 0.07 +0.35 0.1 0.08 +0.35 0.09 0.08 +0.35 0.1 0.05 +0.35 0.09 0.05 +0.35 0.1 0.06 +0.35 0.09 0.06 +0.35 0.1 0.04 +0.35 0.09 0.04 +0.35 0.01 0.0 +0.35 0.0 0.0 +0.35 0.01 0.01 +0.35 0.0 0.01 +0.35 0.02 0.0 +0.35 0.02 0.01 +0.35 0.03 0.0 +0.35 0.03 0.01 +0.35 0.04 0.0 +0.35 0.04 0.01 +0.35 0.05 0.0 +0.35 0.05 0.01 +0.35 0.06 0.0 +0.35 0.06 0.01 +0.35 0.07 0.0 +0.35 0.07 0.01 +0.35 0.08 0.0 +0.35 0.08 0.01 +0.35 0.09 0.0 +0.35 0.09 0.01 +0.35 0.1 0.01 +0.35 0.1 0.02 +0.35 0.09 0.02 +0.35 0.1 0.03 +0.35 0.09 0.03 +0.35 0.1 0.0 +0.35 0.01 0.07 +0.35 -0.0 0.07 +0.35 0.01 0.08 +0.35 -0.0 0.08 +0.35 0.01 0.05 +0.35 -0.0 0.05 +0.35 0.01 0.06 +0.35 -0.0 0.06 +0.35 0.01 0.04 +0.35 -0.0 0.04 +0.35 0.01 0.02 +0.35 0.0 0.02 +0.35 0.01 0.03 +0.35 0.0 0.03 +0.3 0.1 0.09 +0.3 0.09 0.09 +0.3 0.1 0.1 +0.3 0.09 0.1 +0.3 0.08 0.09 +0.3 0.08 0.1 +0.3 0.07 0.09 +0.3 0.07 0.1 +0.3 0.06 0.09 +0.3 0.06 0.1 +0.3 0.05 0.09 +0.3 0.05 0.1 +0.3 0.04 0.09 +0.3 0.04 0.1 +0.3 0.03 0.09 +0.3 0.03 0.1 +0.3 0.02 0.09 +0.3 0.02 0.1 +0.3 0.01 0.09 +0.3 0.01 0.1 +0.3 0.0 0.09 +0.3 0.0 0.1 +0.3 0.1 0.07 +0.3 0.09 0.07 +0.3 0.1 0.08 +0.3 0.09 0.08 +0.3 0.1 0.05 +0.3 0.09 0.05 +0.3 0.1 0.06 +0.3 0.09 0.06 +0.3 0.1 0.04 +0.3 0.09 0.04 +0.3 0.01 0.0 +0.3 0.0 0.0 +0.3 0.01 0.01 +0.3 0.0 0.01 +0.3 0.02 0.0 +0.3 0.02 0.01 +0.3 0.03 0.0 +0.3 0.03 0.01 +0.3 0.04 0.0 +0.3 0.04 0.01 +0.3 0.05 0.0 +0.3 0.05 0.01 +0.3 0.06 0.0 +0.3 0.06 0.01 +0.3 0.07 0.0 +0.3 0.07 0.01 +0.3 0.08 0.0 +0.3 0.08 0.01 +0.3 0.09 0.0 +0.3 0.09 0.01 +0.3 0.1 0.01 +0.3 0.1 0.02 +0.3 0.09 0.02 +0.3 0.1 0.03 +0.3 0.09 0.03 +0.3 0.1 0.0 +0.3 0.01 0.07 +0.3 0.0 0.07 +0.3 0.01 0.08 +0.3 0.0 0.08 +0.3 0.01 0.05 +0.3 0.0 0.05 +0.3 0.01 0.06 +0.3 0.0 0.06 +0.3 0.01 0.04 +0.3 0.0 0.04 +0.3 0.01 0.02 +0.3 0.0 0.02 +0.3 0.01 0.03 +0.3 0.0 0.03 +0.25 0.1 0.09 +0.25 0.09 0.09 +0.25 0.1 0.1 +0.25 0.09 0.1 +0.25 0.08 0.09 +0.25 0.08 0.1 +0.25 0.07 0.09 +0.25 0.07 0.1 +0.25 0.06 0.09 +0.25 0.06 0.1 +0.25 0.05 0.09 +0.25 0.05 0.1 +0.25 0.04 0.09 +0.25 0.04 0.1 +0.25 0.03 0.09 +0.25 0.03 0.1 +0.25 0.02 0.09 +0.25 0.02 0.1 +0.25 0.01 0.09 +0.25 0.01 0.1 +0.25 0.0 0.09 +0.25 0.0 0.1 +0.25 0.1 0.07 +0.25 0.09 0.07 +0.25 0.1 0.08 +0.25 0.09 0.08 +0.25 0.1 0.05 +0.25 0.09 0.05 +0.25 0.1 0.06 +0.25 0.09 0.06 +0.25 0.1 0.04 +0.25 0.09 0.04 +0.25 0.01 0.0 +0.25 0.0 0.0 +0.25 0.01 0.01 +0.25 0.0 0.01 +0.25 0.02 0.0 +0.25 0.02 0.01 +0.25 0.03 0.0 +0.25 0.03 0.01 +0.25 0.04 0.0 +0.25 0.04 0.01 +0.25 0.05 0.0 +0.25 0.05 0.01 +0.25 0.06 0.0 +0.25 0.06 0.01 +0.25 0.07 0.0 +0.25 0.07 0.01 +0.25 0.08 0.0 +0.25 0.08 0.01 +0.25 0.09 0.0 +0.25 0.09 0.01 +0.25 0.1 0.01 +0.25 0.1 0.02 +0.25 0.09 0.02 +0.25 0.1 0.03 +0.25 0.09 0.03 +0.25 0.1 0.0 +0.25 0.01 0.07 +0.25 0.0 0.07 +0.25 0.01 0.08 +0.25 0.0 0.08 +0.25 0.01 0.05 +0.25 0.0 0.05 +0.25 0.01 0.06 +0.25 0.0 0.06 +0.25 0.01 0.04 +0.25 0.0 0.04 +0.25 0.01 0.02 +0.25 0.0 0.02 +0.25 0.01 0.03 +0.25 0.0 0.03 +0.2 0.1 0.09 +0.2 0.09 0.09 +0.2 0.1 0.1 +0.2 0.09 0.1 +0.2 0.08 0.09 +0.2 0.08 0.1 +0.2 0.07 0.09 +0.2 0.07 0.1 +0.2 0.06 0.09 +0.2 0.06 0.1 +0.2 0.05 0.09 +0.2 0.05 0.1 +0.2 0.04 0.09 +0.2 0.04 0.1 +0.2 0.03 0.09 +0.2 0.03 0.1 +0.2 0.02 0.09 +0.2 0.02 0.1 +0.2 0.01 0.09 +0.2 0.01 0.1 +0.2 0.0 0.09 +0.2 0.0 0.1 +0.2 0.1 0.07 +0.2 0.09 0.07 +0.2 0.1 0.08 +0.2 0.09 0.08 +0.2 0.1 0.05 +0.2 0.09 0.05 +0.2 0.1 0.06 +0.2 0.09 0.06 +0.2 0.1 0.04 +0.2 0.09 0.04 +0.2 0.01 0.0 +0.2 0.0 0.0 +0.2 0.01 0.01 +0.2 0.0 0.01 +0.2 0.02 0.0 +0.2 0.02 0.01 +0.2 0.03 0.0 +0.2 0.03 0.01 +0.2 0.04 0.0 +0.2 0.04 0.01 +0.2 0.05 0.0 +0.2 0.05 0.01 +0.2 0.06 0.0 +0.2 0.06 0.01 +0.2 0.07 0.0 +0.2 0.07 0.01 +0.2 0.08 0.0 +0.2 0.08 0.01 +0.2 0.09 0.0 +0.2 0.09 0.01 +0.2 0.1 0.01 +0.2 0.1 0.02 +0.2 0.09 0.02 +0.2 0.1 0.03 +0.2 0.09 0.03 +0.2 0.1 0.0 +0.2 0.01 0.07 +0.2 -0.0 0.07 +0.2 0.01 0.08 +0.2 -0.0 0.08 +0.2 0.01 0.05 +0.2 -0.0 0.05 +0.2 0.01 0.06 +0.2 -0.0 0.06 +0.2 0.01 0.04 +0.2 -0.0 0.04 +0.2 0.01 0.02 +0.2 0.0 0.02 +0.2 0.01 0.03 +0.2 0.0 0.03 +0.15 0.1 0.09 +0.15 0.09 0.09 +0.15 0.1 0.1 +0.15 0.09 0.1 +0.15 0.08 0.09 +0.15 0.08 0.1 +0.15 0.07 0.09 +0.15 0.07 0.1 +0.15 0.06 0.09 +0.15 0.06 0.1 +0.15 0.05 0.09 +0.15 0.05 0.1 +0.15 0.04 0.09 +0.15 0.04 0.1 +0.15 0.03 0.09 +0.15 0.03 0.1 +0.15 0.02 0.09 +0.15 0.02 0.1 +0.15 0.01 0.09 +0.15 0.01 0.1 +0.15 0.0 0.09 +0.15 0.0 0.1 +0.15 0.1 0.07 +0.15 0.09 0.07 +0.15 0.1 0.08 +0.15 0.09 0.08 +0.15 0.1 0.05 +0.15 0.09 0.05 +0.15 0.1 0.06 +0.15 0.09 0.06 +0.15 0.1 0.04 +0.15 0.09 0.04 +0.15 0.01 0.0 +0.15 0.0 0.0 +0.15 0.01 0.01 +0.15 0.0 0.01 +0.15 0.02 0.0 +0.15 0.02 0.01 +0.15 0.03 0.0 +0.15 0.03 0.01 +0.15 0.04 0.0 +0.15 0.04 0.01 +0.15 0.05 0.0 +0.15 0.05 0.01 +0.15 0.06 0.0 +0.15 0.06 0.01 +0.15 0.07 0.0 +0.15 0.07 0.01 +0.15 0.08 0.0 +0.15 0.08 0.01 +0.15 0.09 0.0 +0.15 0.09 0.01 +0.15 0.1 0.01 +0.15 0.1 0.02 +0.15 0.09 0.02 +0.15 0.1 0.03 +0.15 0.09 0.03 +0.15 0.1 0.0 +0.15 0.01 0.07 +0.15 -0.0 0.07 +0.15 0.01 0.08 +0.15 -0.0 0.08 +0.15 0.01 0.05 +0.15 -0.0 0.05 +0.15 0.01 0.06 +0.15 -0.0 0.06 +0.15 0.01 0.04 +0.15 -0.0 0.04 +0.15 0.01 0.02 +0.15 0.0 0.02 +0.15 0.01 0.03 +0.15 0.0 0.03 +0.1 0.1 0.09 +0.1 0.09 0.09 +0.1 0.1 0.1 +0.1 0.09 0.1 +0.1 0.08 0.09 +0.1 0.08 0.1 +0.1 0.07 0.09 +0.1 0.07 0.1 +0.1 0.06 0.09 +0.1 0.06 0.1 +0.1 0.05 0.09 +0.1 0.05 0.1 +0.1 0.04 0.09 +0.1 0.04 0.1 +0.1 0.03 0.09 +0.1 0.03 0.1 +0.1 0.02 0.09 +0.1 0.02 0.1 +0.1 0.01 0.09 +0.1 0.01 0.1 +0.1 0.0 0.09 +0.1 0.0 0.1 +0.1 0.1 0.07 +0.1 0.09 0.07 +0.1 0.1 0.08 +0.1 0.09 0.08 +0.1 0.1 0.05 +0.1 0.09 0.05 +0.1 0.1 0.06 +0.1 0.09 0.06 +0.1 0.1 0.04 +0.1 0.09 0.04 +0.1 0.01 0.0 +0.1 0.0 0.0 +0.1 0.01 0.01 +0.1 0.0 0.01 +0.1 0.02 0.0 +0.1 0.02 0.01 +0.1 0.03 0.0 +0.1 0.03 0.01 +0.1 0.04 0.0 +0.1 0.04 0.01 +0.1 0.05 0.0 +0.1 0.05 0.01 +0.1 0.06 0.0 +0.1 0.06 0.01 +0.1 0.07 0.0 +0.1 0.07 0.01 +0.1 0.08 0.0 +0.1 0.08 0.01 +0.1 0.09 0.0 +0.1 0.09 0.01 +0.1 0.1 0.01 +0.1 0.1 0.02 +0.1 0.09 0.02 +0.1 0.1 0.03 +0.1 0.09 0.03 +0.1 0.1 0.0 +0.1 0.01 0.07 +0.1 -0.0 0.07 +0.1 0.01 0.08 +0.1 -0.0 0.08 +0.1 0.01 0.05 +0.1 -0.0 0.05 +0.1 0.01 0.06 +0.1 -0.0 0.06 +0.1 0.01 0.04 +0.1 -0.0 0.04 +0.1 0.01 0.02 +0.1 0.0 0.02 +0.1 0.01 0.03 +0.1 0.0 0.03 +0.05 0.1 0.09 +0.05 0.09 0.09 +0.05 0.1 0.1 +0.05 0.09 0.1 +0.05 0.08 0.09 +0.05 0.08 0.1 +0.05 0.07 0.09 +0.05 0.07 0.1 +0.05 0.06 0.09 +0.05 0.06 0.1 +0.05 0.05 0.09 +0.05 0.05 0.1 +0.05 0.04 0.09 +0.05 0.04 0.1 +0.05 0.03 0.09 +0.05 0.03 0.1 +0.05 0.02 0.09 +0.05 0.02 0.1 +0.05 0.01 0.09 +0.05 0.01 0.1 +0.05 0.0 0.09 +0.05 0.0 0.1 +0.05 0.1 0.07 +0.05 0.09 0.07 +0.05 0.1 0.08 +0.05 0.09 0.08 +0.05 0.1 0.05 +0.05 0.09 0.05 +0.05 0.1 0.06 +0.05 0.09 0.06 +0.05 0.1 0.04 +0.05 0.09 0.04 +0.05 0.01 0.0 +0.05 0.0 0.0 +0.05 0.01 0.01 +0.05 0.0 0.01 +0.05 0.02 0.0 +0.05 0.02 0.01 +0.05 0.03 0.0 +0.05 0.03 0.01 +0.05 0.04 0.0 +0.05 0.04 0.01 +0.05 0.05 0.0 +0.05 0.05 0.01 +0.05 0.06 0.0 +0.05 0.06 0.01 +0.05 0.07 0.0 +0.05 0.07 0.01 +0.05 0.08 0.0 +0.05 0.08 0.01 +0.05 0.09 0.0 +0.05 0.09 0.01 +0.05 0.1 0.01 +0.05 0.1 0.02 +0.05 0.09 0.02 +0.05 0.1 0.03 +0.05 0.09 0.03 +0.05 0.1 0.0 +0.05 0.01 0.07 +0.05 0.0 0.07 +0.05 0.01 0.08 +0.05 0.0 0.08 +0.05 0.01 0.05 +0.05 0.0 0.05 +0.05 0.01 0.06 +0.05 0.0 0.06 +0.05 0.01 0.04 +0.05 0.0 0.04 +0.05 0.01 0.02 +0.05 0.0 0.02 +0.05 0.01 0.03 +0.05 0.0 0.03 +0.0 0.1 0.09 +-0.0 0.09 0.09 +0.0 0.1 0.1 +-0.0 0.09 0.1 +-0.0 0.08 0.09 +-0.0 0.08 0.1 +-0.0 0.07 0.09 +-0.0 0.07 0.1 +-0.0 0.06 0.09 +-0.0 0.06 0.1 +-0.0 0.05 0.09 +-0.0 0.05 0.1 +-0.0 0.04 0.09 +-0.0 0.04 0.1 +-0.0 0.03 0.09 +-0.0 0.03 0.1 +-0.0 0.02 0.09 +-0.0 0.02 0.1 +-0.0 0.01 0.09 +-0.0 0.01 0.1 +-0.0 0.0 0.09 +-0.0 0.0 0.1 +0.0 0.1 0.07 +-0.0 0.09 0.07 +0.0 0.1 0.08 +-0.0 0.09 0.08 +0.0 0.1 0.05 +-0.0 0.09 0.05 +0.0 0.1 0.06 +-0.0 0.09 0.06 +0.0 0.1 0.04 +-0.0 0.09 0.04 +0.0 0.01 0.0 +-0.0 0.0 0.0 +0.0 0.01 0.01 +-0.0 0.0 0.01 +0.0 0.02 0.0 +0.0 0.02 0.01 +0.0 0.03 0.0 +0.0 0.03 0.01 +0.0 0.04 0.0 +0.0 0.04 0.01 +0.0 0.05 0.0 +0.0 0.05 0.01 +0.0 0.06 0.0 +0.0 0.06 0.01 +0.0 0.07 0.0 +0.0 0.07 0.01 +0.0 0.08 0.0 +0.0 0.08 0.01 +0.0 0.09 0.0 +0.0 0.09 0.01 +0.0 0.1 0.01 +0.0 0.1 0.02 +0.0 0.09 0.02 +0.0 0.1 0.03 +0.0 0.09 0.03 +0.0 0.1 0.0 +-0.0 0.01 0.07 +-0.0 0.0 0.07 +-0.0 0.01 0.08 +-0.0 0.0 0.08 +-0.0 0.01 0.05 +-0.0 0.0 0.05 +-0.0 0.01 0.06 +-0.0 0.0 0.06 +-0.0 0.01 0.04 +-0.0 0.0 0.04 +0.0 0.01 0.02 +0.0 0.0 0.02 +0.0 0.01 0.03 +0.0 0.0 0.03 diff --git a/examples/linelast/meshes/3dcw_beamV.mesh b/examples/linelast/meshes/3dcw_beamV.mesh new file mode 100644 index 00000000..f77f588d --- /dev/null +++ b/examples/linelast/meshes/3dcw_beamV.mesh @@ -0,0 +1,1966 @@ +MFEM mesh v1.0 +# +# MFEM Geometry Types (see mesh/geom.hpp): +# POINT = 0 +# SEGMENT = 1 +# TRIANGLE = 2 +# SQUARE = 3 +# TETRAHEDRON = 4 +# CUBE = 5 + +dimension +3 + +elements +360 +1 5 0 1 2 3 4 5 6 7 +1 5 8 9 10 11 12 13 14 15 +1 5 16 17 18 19 20 21 22 23 +1 5 24 25 26 27 16 17 18 19 +1 5 28 29 30 31 24 25 26 27 +1 5 21 22 23 20 32 33 34 35 +1 5 32 33 34 35 9 10 11 8 +1 5 13 14 15 12 1 2 3 0 +1 5 36 37 38 39 40 41 42 43 +1 5 44 45 46 47 48 49 50 51 +1 5 52 53 54 55 56 57 58 59 +1 5 60 61 62 63 64 65 66 67 +1 5 68 69 70 71 60 61 62 63 +1 5 43 40 41 42 68 69 70 71 +1 5 37 72 73 38 41 74 75 42 +1 5 72 76 77 73 74 78 79 75 +1 5 76 80 81 77 78 82 83 79 +1 5 80 84 85 81 82 86 87 83 +1 5 84 88 89 85 86 90 91 87 +1 5 88 92 93 89 90 94 95 91 +1 5 92 96 97 93 94 98 99 95 +1 5 96 100 101 97 98 29 28 99 +1 5 100 102 103 101 29 30 31 28 +1 5 65 66 67 64 104 105 106 107 +1 5 104 105 106 107 53 54 55 52 +1 5 57 58 59 56 45 46 47 44 +1 5 5 6 7 4 108 109 110 111 +1 5 112 5 4 113 114 108 111 115 +1 5 116 112 113 117 118 114 115 119 +1 5 120 116 117 121 122 118 119 123 +1 5 124 120 121 125 126 122 123 127 +1 5 128 124 125 129 130 126 127 131 +1 5 132 128 129 133 134 130 131 135 +1 5 136 132 133 137 138 134 135 139 +1 5 50 136 137 51 140 138 139 141 +1 5 49 50 51 48 142 140 141 143 +1 5 144 0 3 145 146 4 7 147 +1 5 148 8 11 149 150 12 15 151 +1 5 152 16 19 153 154 20 23 155 +1 5 156 24 27 157 152 16 19 153 +1 5 158 28 31 159 156 24 27 157 +1 5 20 23 155 154 35 34 160 161 +1 5 35 34 160 161 8 11 149 148 +1 5 12 15 151 150 0 3 145 144 +1 5 39 38 162 163 43 42 164 165 +1 5 166 44 47 167 168 48 51 169 +1 5 170 52 55 171 172 56 59 173 +1 5 174 60 63 175 176 64 67 177 +1 5 178 68 71 179 174 60 63 175 +1 5 165 43 42 164 178 68 71 179 +1 5 38 73 180 162 42 75 181 164 +1 5 73 77 182 180 75 79 183 181 +1 5 77 81 184 182 79 83 185 183 +1 5 81 85 186 184 83 87 187 185 +1 5 85 89 188 186 87 91 189 187 +1 5 89 93 190 188 91 95 191 189 +1 5 93 97 192 190 95 99 193 191 +1 5 97 101 194 192 99 28 158 193 +1 5 101 103 195 194 28 31 159 158 +1 5 64 67 177 176 107 106 196 197 +1 5 107 106 196 197 52 55 171 170 +1 5 56 59 173 172 44 47 167 166 +1 5 4 7 147 146 111 110 198 199 +1 5 113 4 146 200 115 111 199 201 +1 5 117 113 200 202 119 115 201 203 +1 5 121 117 202 204 123 119 203 205 +1 5 125 121 204 206 127 123 205 207 +1 5 129 125 206 208 131 127 207 209 +1 5 133 129 208 210 135 131 209 211 +1 5 137 133 210 212 139 135 211 213 +1 5 51 137 212 169 141 139 213 214 +1 5 48 51 169 168 143 141 214 215 +1 5 216 144 145 217 218 146 147 219 +1 5 220 148 149 221 222 150 151 223 +1 5 224 152 153 225 226 154 155 227 +1 5 228 156 157 229 224 152 153 225 +1 5 230 158 159 231 228 156 157 229 +1 5 154 155 227 226 161 160 232 233 +1 5 161 160 232 233 148 149 221 220 +1 5 150 151 223 222 144 145 217 216 +1 5 163 162 234 235 165 164 236 237 +1 5 238 166 167 239 240 168 169 241 +1 5 242 170 171 243 244 172 173 245 +1 5 246 174 175 247 248 176 177 249 +1 5 250 178 179 251 246 174 175 247 +1 5 237 165 164 236 250 178 179 251 +1 5 162 180 252 234 164 181 253 236 +1 5 180 182 254 252 181 183 255 253 +1 5 182 184 256 254 183 185 257 255 +1 5 184 186 258 256 185 187 259 257 +1 5 186 188 260 258 187 189 261 259 +1 5 188 190 262 260 189 191 263 261 +1 5 190 192 264 262 191 193 265 263 +1 5 192 194 266 264 193 158 230 265 +1 5 194 195 267 266 158 159 231 230 +1 5 176 177 249 248 197 196 268 269 +1 5 197 196 268 269 170 171 243 242 +1 5 172 173 245 244 166 167 239 238 +1 5 146 147 219 218 199 198 270 271 +1 5 200 146 218 272 201 199 271 273 +1 5 202 200 272 274 203 201 273 275 +1 5 204 202 274 276 205 203 275 277 +1 5 206 204 276 278 207 205 277 279 +1 5 208 206 278 280 209 207 279 281 +1 5 210 208 280 282 211 209 281 283 +1 5 212 210 282 284 213 211 283 285 +1 5 169 212 284 241 214 213 285 286 +1 5 168 169 241 240 215 214 286 287 +1 5 288 216 217 289 290 218 219 291 +1 5 292 220 221 293 294 222 223 295 +1 5 296 224 225 297 298 226 227 299 +1 5 300 228 229 301 296 224 225 297 +1 5 302 230 231 303 300 228 229 301 +1 5 226 227 299 298 233 232 304 305 +1 5 233 232 304 305 220 221 293 292 +1 5 222 223 295 294 216 217 289 288 +1 5 235 234 306 307 237 236 308 309 +1 5 310 238 239 311 312 240 241 313 +1 5 314 242 243 315 316 244 245 317 +1 5 318 246 247 319 320 248 249 321 +1 5 322 250 251 323 318 246 247 319 +1 5 309 237 236 308 322 250 251 323 +1 5 234 252 324 306 236 253 325 308 +1 5 252 254 326 324 253 255 327 325 +1 5 254 256 328 326 255 257 329 327 +1 5 256 258 330 328 257 259 331 329 +1 5 258 260 332 330 259 261 333 331 +1 5 260 262 334 332 261 263 335 333 +1 5 262 264 336 334 263 265 337 335 +1 5 264 266 338 336 265 230 302 337 +1 5 266 267 339 338 230 231 303 302 +1 5 248 249 321 320 269 268 340 341 +1 5 269 268 340 341 242 243 315 314 +1 5 244 245 317 316 238 239 311 310 +1 5 218 219 291 290 271 270 342 343 +1 5 272 218 290 344 273 271 343 345 +1 5 274 272 344 346 275 273 345 347 +1 5 276 274 346 348 277 275 347 349 +1 5 278 276 348 350 279 277 349 351 +1 5 280 278 350 352 281 279 351 353 +1 5 282 280 352 354 283 281 353 355 +1 5 284 282 354 356 285 283 355 357 +1 5 241 284 356 313 286 285 357 358 +1 5 240 241 313 312 287 286 358 359 +1 5 360 288 289 361 362 290 291 363 +1 5 364 292 293 365 366 294 295 367 +1 5 368 296 297 369 370 298 299 371 +1 5 372 300 301 373 368 296 297 369 +1 5 374 302 303 375 372 300 301 373 +1 5 298 299 371 370 305 304 376 377 +1 5 305 304 376 377 292 293 365 364 +1 5 294 295 367 366 288 289 361 360 +1 5 307 306 378 379 309 308 380 381 +1 5 382 310 311 383 384 312 313 385 +1 5 386 314 315 387 388 316 317 389 +1 5 390 318 319 391 392 320 321 393 +1 5 394 322 323 395 390 318 319 391 +1 5 381 309 308 380 394 322 323 395 +1 5 306 324 396 378 308 325 397 380 +1 5 324 326 398 396 325 327 399 397 +1 5 326 328 400 398 327 329 401 399 +1 5 328 330 402 400 329 331 403 401 +1 5 330 332 404 402 331 333 405 403 +1 5 332 334 406 404 333 335 407 405 +1 5 334 336 408 406 335 337 409 407 +1 5 336 338 410 408 337 302 374 409 +1 5 338 339 411 410 302 303 375 374 +1 5 320 321 393 392 341 340 412 413 +1 5 341 340 412 413 314 315 387 386 +1 5 316 317 389 388 310 311 383 382 +1 5 290 291 363 362 343 342 414 415 +1 5 344 290 362 416 345 343 415 417 +1 5 346 344 416 418 347 345 417 419 +1 5 348 346 418 420 349 347 419 421 +1 5 350 348 420 422 351 349 421 423 +1 5 352 350 422 424 353 351 423 425 +1 5 354 352 424 426 355 353 425 427 +1 5 356 354 426 428 357 355 427 429 +1 5 313 356 428 385 358 357 429 430 +1 5 312 313 385 384 359 358 430 431 +1 5 432 360 361 433 434 362 363 435 +1 5 436 364 365 437 438 366 367 439 +1 5 440 368 369 441 442 370 371 443 +1 5 444 372 373 445 440 368 369 441 +1 5 446 374 375 447 444 372 373 445 +1 5 370 371 443 442 377 376 448 449 +1 5 377 376 448 449 364 365 437 436 +1 5 366 367 439 438 360 361 433 432 +1 5 379 378 450 451 381 380 452 453 +1 5 454 382 383 455 456 384 385 457 +1 5 458 386 387 459 460 388 389 461 +1 5 462 390 391 463 464 392 393 465 +1 5 466 394 395 467 462 390 391 463 +1 5 453 381 380 452 466 394 395 467 +1 5 378 396 468 450 380 397 469 452 +1 5 396 398 470 468 397 399 471 469 +1 5 398 400 472 470 399 401 473 471 +1 5 400 402 474 472 401 403 475 473 +1 5 402 404 476 474 403 405 477 475 +1 5 404 406 478 476 405 407 479 477 +1 5 406 408 480 478 407 409 481 479 +1 5 408 410 482 480 409 374 446 481 +1 5 410 411 483 482 374 375 447 446 +1 5 392 393 465 464 413 412 484 485 +1 5 413 412 484 485 386 387 459 458 +1 5 388 389 461 460 382 383 455 454 +1 5 362 363 435 434 415 414 486 487 +1 5 416 362 434 488 417 415 487 489 +1 5 418 416 488 490 419 417 489 491 +1 5 420 418 490 492 421 419 491 493 +1 5 422 420 492 494 423 421 493 495 +1 5 424 422 494 496 425 423 495 497 +1 5 426 424 496 498 427 425 497 499 +1 5 428 426 498 500 429 427 499 501 +1 5 385 428 500 457 430 429 501 502 +1 5 384 385 457 456 431 430 502 503 +1 5 504 432 433 505 506 434 435 507 +1 5 508 436 437 509 510 438 439 511 +1 5 512 440 441 513 514 442 443 515 +1 5 516 444 445 517 512 440 441 513 +1 5 518 446 447 519 516 444 445 517 +1 5 442 443 515 514 449 448 520 521 +1 5 449 448 520 521 436 437 509 508 +1 5 438 439 511 510 432 433 505 504 +1 5 451 450 522 523 453 452 524 525 +1 5 526 454 455 527 528 456 457 529 +1 5 530 458 459 531 532 460 461 533 +1 5 534 462 463 535 536 464 465 537 +1 5 538 466 467 539 534 462 463 535 +1 5 525 453 452 524 538 466 467 539 +1 5 450 468 540 522 452 469 541 524 +1 5 468 470 542 540 469 471 543 541 +1 5 470 472 544 542 471 473 545 543 +1 5 472 474 546 544 473 475 547 545 +1 5 474 476 548 546 475 477 549 547 +1 5 476 478 550 548 477 479 551 549 +1 5 478 480 552 550 479 481 553 551 +1 5 480 482 554 552 481 446 518 553 +1 5 482 483 555 554 446 447 519 518 +1 5 464 465 537 536 485 484 556 557 +1 5 485 484 556 557 458 459 531 530 +1 5 460 461 533 532 454 455 527 526 +1 5 434 435 507 506 487 486 558 559 +1 5 488 434 506 560 489 487 559 561 +1 5 490 488 560 562 491 489 561 563 +1 5 492 490 562 564 493 491 563 565 +1 5 494 492 564 566 495 493 565 567 +1 5 496 494 566 568 497 495 567 569 +1 5 498 496 568 570 499 497 569 571 +1 5 500 498 570 572 501 499 571 573 +1 5 457 500 572 529 502 501 573 574 +1 5 456 457 529 528 503 502 574 575 +1 5 576 504 505 577 578 506 507 579 +1 5 580 508 509 581 582 510 511 583 +1 5 584 512 513 585 586 514 515 587 +1 5 588 516 517 589 584 512 513 585 +1 5 590 518 519 591 588 516 517 589 +1 5 514 515 587 586 521 520 592 593 +1 5 521 520 592 593 508 509 581 580 +1 5 510 511 583 582 504 505 577 576 +1 5 523 522 594 595 525 524 596 597 +1 5 598 526 527 599 600 528 529 601 +1 5 602 530 531 603 604 532 533 605 +1 5 606 534 535 607 608 536 537 609 +1 5 610 538 539 611 606 534 535 607 +1 5 597 525 524 596 610 538 539 611 +1 5 522 540 612 594 524 541 613 596 +1 5 540 542 614 612 541 543 615 613 +1 5 542 544 616 614 543 545 617 615 +1 5 544 546 618 616 545 547 619 617 +1 5 546 548 620 618 547 549 621 619 +1 5 548 550 622 620 549 551 623 621 +1 5 550 552 624 622 551 553 625 623 +1 5 552 554 626 624 553 518 590 625 +1 5 554 555 627 626 518 519 591 590 +1 5 536 537 609 608 557 556 628 629 +1 5 557 556 628 629 530 531 603 602 +1 5 532 533 605 604 526 527 599 598 +1 5 506 507 579 578 559 558 630 631 +1 5 560 506 578 632 561 559 631 633 +1 5 562 560 632 634 563 561 633 635 +1 5 564 562 634 636 565 563 635 637 +1 5 566 564 636 638 567 565 637 639 +1 5 568 566 638 640 569 567 639 641 +1 5 570 568 640 642 571 569 641 643 +1 5 572 570 642 644 573 571 643 645 +1 5 529 572 644 601 574 573 645 646 +1 5 528 529 601 600 575 574 646 647 +1 5 648 576 577 649 650 578 579 651 +1 5 652 580 581 653 654 582 583 655 +1 5 656 584 585 657 658 586 587 659 +1 5 660 588 589 661 656 584 585 657 +1 5 662 590 591 663 660 588 589 661 +1 5 586 587 659 658 593 592 664 665 +1 5 593 592 664 665 580 581 653 652 +1 5 582 583 655 654 576 577 649 648 +1 5 595 594 666 667 597 596 668 669 +1 5 670 598 599 671 672 600 601 673 +1 5 674 602 603 675 676 604 605 677 +1 5 678 606 607 679 680 608 609 681 +1 5 682 610 611 683 678 606 607 679 +1 5 669 597 596 668 682 610 611 683 +1 5 594 612 684 666 596 613 685 668 +1 5 612 614 686 684 613 615 687 685 +1 5 614 616 688 686 615 617 689 687 +1 5 616 618 690 688 617 619 691 689 +1 5 618 620 692 690 619 621 693 691 +1 5 620 622 694 692 621 623 695 693 +1 5 622 624 696 694 623 625 697 695 +1 5 624 626 698 696 625 590 662 697 +1 5 626 627 699 698 590 591 663 662 +1 5 608 609 681 680 629 628 700 701 +1 5 629 628 700 701 602 603 675 674 +1 5 604 605 677 676 598 599 671 670 +1 5 578 579 651 650 631 630 702 703 +1 5 632 578 650 704 633 631 703 705 +1 5 634 632 704 706 635 633 705 707 +1 5 636 634 706 708 637 635 707 709 +1 5 638 636 708 710 639 637 709 711 +1 5 640 638 710 712 641 639 711 713 +1 5 642 640 712 714 643 641 713 715 +1 5 644 642 714 716 645 643 715 717 +1 5 601 644 716 673 646 645 717 718 +1 5 600 601 673 672 647 646 718 719 +1 5 720 648 649 721 722 650 651 723 +1 5 724 652 653 725 726 654 655 727 +1 5 728 656 657 729 730 658 659 731 +1 5 732 660 661 733 728 656 657 729 +1 5 734 662 663 735 732 660 661 733 +1 5 658 659 731 730 665 664 736 737 +1 5 665 664 736 737 652 653 725 724 +1 5 654 655 727 726 648 649 721 720 +1 5 667 666 738 739 669 668 740 741 +1 5 742 670 671 743 744 672 673 745 +1 5 746 674 675 747 748 676 677 749 +1 5 750 678 679 751 752 680 681 753 +1 5 754 682 683 755 750 678 679 751 +1 5 741 669 668 740 754 682 683 755 +1 5 666 684 756 738 668 685 757 740 +1 5 684 686 758 756 685 687 759 757 +1 5 686 688 760 758 687 689 761 759 +1 5 688 690 762 760 689 691 763 761 +1 5 690 692 764 762 691 693 765 763 +1 5 692 694 766 764 693 695 767 765 +1 5 694 696 768 766 695 697 769 767 +1 5 696 698 770 768 697 662 734 769 +1 5 698 699 771 770 662 663 735 734 +1 5 680 681 753 752 701 700 772 773 +1 5 701 700 772 773 674 675 747 746 +1 5 676 677 749 748 670 671 743 742 +1 5 650 651 723 722 703 702 774 775 +1 5 704 650 722 776 705 703 775 777 +1 5 706 704 776 778 707 705 777 779 +1 5 708 706 778 780 709 707 779 781 +1 5 710 708 780 782 711 709 781 783 +1 5 712 710 782 784 713 711 783 785 +1 5 714 712 784 786 715 713 785 787 +1 5 716 714 786 788 717 715 787 789 +1 5 673 716 788 745 718 717 789 790 +1 5 672 673 745 744 719 718 790 791 + +boundary +792 +5 3 0 1 5 4 +1 3 1 2 6 5 +2 3 2 3 7 6 +5 3 8 9 13 12 +1 3 9 10 14 13 +2 3 10 11 15 14 +5 3 16 17 21 20 +1 3 17 18 22 21 +2 3 18 19 23 22 +5 3 24 25 17 16 +1 3 25 26 18 17 +2 3 26 27 19 18 +5 3 28 29 25 24 +1 3 29 30 26 25 +2 3 30 31 27 26 +1 3 21 22 33 32 +2 3 22 23 34 33 +5 3 20 21 32 35 +1 3 32 33 10 9 +2 3 33 34 11 10 +5 3 35 32 9 8 +1 3 13 14 2 1 +2 3 14 15 3 2 +5 3 12 13 1 0 +1 3 36 37 41 40 +4 3 39 36 40 43 +5 3 36 39 38 37 +4 3 44 45 49 48 +1 3 45 46 50 49 +5 3 46 47 51 50 +4 3 52 53 57 56 +1 3 53 54 58 57 +5 3 54 55 59 58 +4 3 60 61 65 64 +1 3 61 62 66 65 +5 3 62 63 67 66 +4 3 68 69 61 60 +1 3 69 70 62 61 +5 3 70 71 63 62 +4 3 43 40 69 68 +1 3 40 41 70 69 +5 3 41 42 71 70 +1 3 37 72 74 41 +5 3 37 38 73 72 +5 3 41 74 75 42 +1 3 72 76 78 74 +5 3 72 73 77 76 +5 3 74 78 79 75 +1 3 76 80 82 78 +5 3 76 77 81 80 +5 3 78 82 83 79 +1 3 80 84 86 82 +5 3 80 81 85 84 +5 3 82 86 87 83 +1 3 84 88 90 86 +5 3 84 85 89 88 +5 3 86 90 91 87 +1 3 88 92 94 90 +5 3 88 89 93 92 +5 3 90 94 95 91 +1 3 92 96 98 94 +5 3 92 93 97 96 +5 3 94 98 99 95 +1 3 96 100 29 98 +5 3 96 97 101 100 +5 3 98 29 28 99 +1 3 100 102 30 29 +2 3 102 103 31 30 +5 3 100 101 103 102 +1 3 65 66 105 104 +5 3 66 67 106 105 +4 3 64 65 104 107 +1 3 104 105 54 53 +5 3 105 106 55 54 +4 3 107 104 53 52 +1 3 57 58 46 45 +5 3 58 59 47 46 +4 3 56 57 45 44 +1 3 5 6 109 108 +2 3 6 7 110 109 +5 3 108 109 110 111 +1 3 112 5 108 114 +5 3 112 113 4 5 +5 3 114 108 111 115 +1 3 116 112 114 118 +5 3 116 117 113 112 +5 3 118 114 115 119 +1 3 120 116 118 122 +5 3 120 121 117 116 +5 3 122 118 119 123 +1 3 124 120 122 126 +5 3 124 125 121 120 +5 3 126 122 123 127 +1 3 128 124 126 130 +5 3 128 129 125 124 +5 3 130 126 127 131 +1 3 132 128 130 134 +5 3 132 133 129 128 +5 3 134 130 131 135 +1 3 136 132 134 138 +5 3 136 137 133 132 +5 3 138 134 135 139 +1 3 50 136 138 140 +5 3 50 51 137 136 +5 3 140 138 139 141 +1 3 49 50 140 142 +4 3 48 49 142 143 +5 3 142 140 141 143 +5 3 144 0 4 146 +2 3 3 145 147 7 +5 3 148 8 12 150 +2 3 11 149 151 15 +5 3 152 16 20 154 +2 3 19 153 155 23 +5 3 156 24 16 152 +2 3 27 157 153 19 +5 3 158 28 24 156 +2 3 31 159 157 27 +2 3 23 155 160 34 +5 3 154 20 35 161 +2 3 34 160 149 11 +5 3 161 35 8 148 +2 3 15 151 145 3 +5 3 150 12 0 144 +4 3 163 39 43 165 +5 3 39 163 162 38 +4 3 166 44 48 168 +5 3 47 167 169 51 +4 3 170 52 56 172 +5 3 55 171 173 59 +4 3 174 60 64 176 +5 3 63 175 177 67 +4 3 178 68 60 174 +5 3 71 179 175 63 +4 3 165 43 68 178 +5 3 42 164 179 71 +5 3 38 162 180 73 +5 3 42 75 181 164 +5 3 73 180 182 77 +5 3 75 79 183 181 +5 3 77 182 184 81 +5 3 79 83 185 183 +5 3 81 184 186 85 +5 3 83 87 187 185 +5 3 85 186 188 89 +5 3 87 91 189 187 +5 3 89 188 190 93 +5 3 91 95 191 189 +5 3 93 190 192 97 +5 3 95 99 193 191 +5 3 97 192 194 101 +5 3 99 28 158 193 +2 3 103 195 159 31 +5 3 101 194 195 103 +5 3 67 177 196 106 +4 3 176 64 107 197 +5 3 106 196 171 55 +4 3 197 107 52 170 +5 3 59 173 167 47 +4 3 172 56 44 166 +2 3 7 147 198 110 +5 3 111 110 198 199 +5 3 113 200 146 4 +5 3 115 111 199 201 +5 3 117 202 200 113 +5 3 119 115 201 203 +5 3 121 204 202 117 +5 3 123 119 203 205 +5 3 125 206 204 121 +5 3 127 123 205 207 +5 3 129 208 206 125 +5 3 131 127 207 209 +5 3 133 210 208 129 +5 3 135 131 209 211 +5 3 137 212 210 133 +5 3 139 135 211 213 +5 3 51 169 212 137 +5 3 141 139 213 214 +4 3 168 48 143 215 +5 3 143 141 214 215 +5 3 216 144 146 218 +2 3 145 217 219 147 +5 3 220 148 150 222 +2 3 149 221 223 151 +5 3 224 152 154 226 +2 3 153 225 227 155 +5 3 228 156 152 224 +2 3 157 229 225 153 +5 3 230 158 156 228 +2 3 159 231 229 157 +2 3 155 227 232 160 +5 3 226 154 161 233 +2 3 160 232 221 149 +5 3 233 161 148 220 +2 3 151 223 217 145 +5 3 222 150 144 216 +4 3 235 163 165 237 +5 3 163 235 234 162 +4 3 238 166 168 240 +5 3 167 239 241 169 +4 3 242 170 172 244 +5 3 171 243 245 173 +4 3 246 174 176 248 +5 3 175 247 249 177 +4 3 250 178 174 246 +5 3 179 251 247 175 +4 3 237 165 178 250 +5 3 164 236 251 179 +5 3 162 234 252 180 +5 3 164 181 253 236 +5 3 180 252 254 182 +5 3 181 183 255 253 +5 3 182 254 256 184 +5 3 183 185 257 255 +5 3 184 256 258 186 +5 3 185 187 259 257 +5 3 186 258 260 188 +5 3 187 189 261 259 +5 3 188 260 262 190 +5 3 189 191 263 261 +5 3 190 262 264 192 +5 3 191 193 265 263 +5 3 192 264 266 194 +5 3 193 158 230 265 +2 3 195 267 231 159 +5 3 194 266 267 195 +5 3 177 249 268 196 +4 3 248 176 197 269 +5 3 196 268 243 171 +4 3 269 197 170 242 +5 3 173 245 239 167 +4 3 244 172 166 238 +2 3 147 219 270 198 +5 3 199 198 270 271 +5 3 200 272 218 146 +5 3 201 199 271 273 +5 3 202 274 272 200 +5 3 203 201 273 275 +5 3 204 276 274 202 +5 3 205 203 275 277 +5 3 206 278 276 204 +5 3 207 205 277 279 +5 3 208 280 278 206 +5 3 209 207 279 281 +5 3 210 282 280 208 +5 3 211 209 281 283 +5 3 212 284 282 210 +5 3 213 211 283 285 +5 3 169 241 284 212 +5 3 214 213 285 286 +4 3 240 168 215 287 +5 3 215 214 286 287 +5 3 288 216 218 290 +2 3 217 289 291 219 +5 3 292 220 222 294 +2 3 221 293 295 223 +5 3 296 224 226 298 +2 3 225 297 299 227 +5 3 300 228 224 296 +2 3 229 301 297 225 +5 3 302 230 228 300 +2 3 231 303 301 229 +2 3 227 299 304 232 +5 3 298 226 233 305 +2 3 232 304 293 221 +5 3 305 233 220 292 +2 3 223 295 289 217 +5 3 294 222 216 288 +4 3 307 235 237 309 +5 3 235 307 306 234 +4 3 310 238 240 312 +5 3 239 311 313 241 +4 3 314 242 244 316 +5 3 243 315 317 245 +4 3 318 246 248 320 +5 3 247 319 321 249 +4 3 322 250 246 318 +5 3 251 323 319 247 +4 3 309 237 250 322 +5 3 236 308 323 251 +5 3 234 306 324 252 +5 3 236 253 325 308 +5 3 252 324 326 254 +5 3 253 255 327 325 +5 3 254 326 328 256 +5 3 255 257 329 327 +5 3 256 328 330 258 +5 3 257 259 331 329 +5 3 258 330 332 260 +5 3 259 261 333 331 +5 3 260 332 334 262 +5 3 261 263 335 333 +5 3 262 334 336 264 +5 3 263 265 337 335 +5 3 264 336 338 266 +5 3 265 230 302 337 +2 3 267 339 303 231 +5 3 266 338 339 267 +5 3 249 321 340 268 +4 3 320 248 269 341 +5 3 268 340 315 243 +4 3 341 269 242 314 +5 3 245 317 311 239 +4 3 316 244 238 310 +2 3 219 291 342 270 +5 3 271 270 342 343 +5 3 272 344 290 218 +5 3 273 271 343 345 +5 3 274 346 344 272 +5 3 275 273 345 347 +5 3 276 348 346 274 +5 3 277 275 347 349 +5 3 278 350 348 276 +5 3 279 277 349 351 +5 3 280 352 350 278 +5 3 281 279 351 353 +5 3 282 354 352 280 +5 3 283 281 353 355 +5 3 284 356 354 282 +5 3 285 283 355 357 +5 3 241 313 356 284 +5 3 286 285 357 358 +4 3 312 240 287 359 +5 3 287 286 358 359 +5 3 360 288 290 362 +2 3 289 361 363 291 +5 3 364 292 294 366 +2 3 293 365 367 295 +5 3 368 296 298 370 +2 3 297 369 371 299 +5 3 372 300 296 368 +2 3 301 373 369 297 +5 3 374 302 300 372 +2 3 303 375 373 301 +2 3 299 371 376 304 +5 3 370 298 305 377 +2 3 304 376 365 293 +5 3 377 305 292 364 +2 3 295 367 361 289 +5 3 366 294 288 360 +4 3 379 307 309 381 +5 3 307 379 378 306 +4 3 382 310 312 384 +5 3 311 383 385 313 +4 3 386 314 316 388 +5 3 315 387 389 317 +4 3 390 318 320 392 +5 3 319 391 393 321 +4 3 394 322 318 390 +5 3 323 395 391 319 +4 3 381 309 322 394 +5 3 308 380 395 323 +5 3 306 378 396 324 +5 3 308 325 397 380 +5 3 324 396 398 326 +5 3 325 327 399 397 +5 3 326 398 400 328 +5 3 327 329 401 399 +5 3 328 400 402 330 +5 3 329 331 403 401 +5 3 330 402 404 332 +5 3 331 333 405 403 +5 3 332 404 406 334 +5 3 333 335 407 405 +5 3 334 406 408 336 +5 3 335 337 409 407 +5 3 336 408 410 338 +5 3 337 302 374 409 +2 3 339 411 375 303 +5 3 338 410 411 339 +5 3 321 393 412 340 +4 3 392 320 341 413 +5 3 340 412 387 315 +4 3 413 341 314 386 +5 3 317 389 383 311 +4 3 388 316 310 382 +2 3 291 363 414 342 +5 3 343 342 414 415 +5 3 344 416 362 290 +5 3 345 343 415 417 +5 3 346 418 416 344 +5 3 347 345 417 419 +5 3 348 420 418 346 +5 3 349 347 419 421 +5 3 350 422 420 348 +5 3 351 349 421 423 +5 3 352 424 422 350 +5 3 353 351 423 425 +5 3 354 426 424 352 +5 3 355 353 425 427 +5 3 356 428 426 354 +5 3 357 355 427 429 +5 3 313 385 428 356 +5 3 358 357 429 430 +4 3 384 312 359 431 +5 3 359 358 430 431 +5 3 432 360 362 434 +2 3 361 433 435 363 +5 3 436 364 366 438 +2 3 365 437 439 367 +5 3 440 368 370 442 +2 3 369 441 443 371 +5 3 444 372 368 440 +2 3 373 445 441 369 +5 3 446 374 372 444 +2 3 375 447 445 373 +2 3 371 443 448 376 +5 3 442 370 377 449 +2 3 376 448 437 365 +5 3 449 377 364 436 +2 3 367 439 433 361 +5 3 438 366 360 432 +4 3 451 379 381 453 +5 3 379 451 450 378 +4 3 454 382 384 456 +5 3 383 455 457 385 +4 3 458 386 388 460 +5 3 387 459 461 389 +4 3 462 390 392 464 +5 3 391 463 465 393 +4 3 466 394 390 462 +5 3 395 467 463 391 +4 3 453 381 394 466 +5 3 380 452 467 395 +5 3 378 450 468 396 +5 3 380 397 469 452 +5 3 396 468 470 398 +5 3 397 399 471 469 +5 3 398 470 472 400 +5 3 399 401 473 471 +5 3 400 472 474 402 +5 3 401 403 475 473 +5 3 402 474 476 404 +5 3 403 405 477 475 +5 3 404 476 478 406 +5 3 405 407 479 477 +5 3 406 478 480 408 +5 3 407 409 481 479 +5 3 408 480 482 410 +5 3 409 374 446 481 +2 3 411 483 447 375 +5 3 410 482 483 411 +5 3 393 465 484 412 +4 3 464 392 413 485 +5 3 412 484 459 387 +4 3 485 413 386 458 +5 3 389 461 455 383 +4 3 460 388 382 454 +2 3 363 435 486 414 +5 3 415 414 486 487 +5 3 416 488 434 362 +5 3 417 415 487 489 +5 3 418 490 488 416 +5 3 419 417 489 491 +5 3 420 492 490 418 +5 3 421 419 491 493 +5 3 422 494 492 420 +5 3 423 421 493 495 +5 3 424 496 494 422 +5 3 425 423 495 497 +5 3 426 498 496 424 +5 3 427 425 497 499 +5 3 428 500 498 426 +5 3 429 427 499 501 +5 3 385 457 500 428 +5 3 430 429 501 502 +4 3 456 384 431 503 +5 3 431 430 502 503 +5 3 504 432 434 506 +2 3 433 505 507 435 +5 3 508 436 438 510 +2 3 437 509 511 439 +5 3 512 440 442 514 +2 3 441 513 515 443 +5 3 516 444 440 512 +2 3 445 517 513 441 +5 3 518 446 444 516 +2 3 447 519 517 445 +2 3 443 515 520 448 +5 3 514 442 449 521 +2 3 448 520 509 437 +5 3 521 449 436 508 +2 3 439 511 505 433 +5 3 510 438 432 504 +4 3 523 451 453 525 +5 3 451 523 522 450 +4 3 526 454 456 528 +5 3 455 527 529 457 +4 3 530 458 460 532 +5 3 459 531 533 461 +4 3 534 462 464 536 +5 3 463 535 537 465 +4 3 538 466 462 534 +5 3 467 539 535 463 +4 3 525 453 466 538 +5 3 452 524 539 467 +5 3 450 522 540 468 +5 3 452 469 541 524 +5 3 468 540 542 470 +5 3 469 471 543 541 +5 3 470 542 544 472 +5 3 471 473 545 543 +5 3 472 544 546 474 +5 3 473 475 547 545 +5 3 474 546 548 476 +5 3 475 477 549 547 +5 3 476 548 550 478 +5 3 477 479 551 549 +5 3 478 550 552 480 +5 3 479 481 553 551 +5 3 480 552 554 482 +5 3 481 446 518 553 +2 3 483 555 519 447 +5 3 482 554 555 483 +5 3 465 537 556 484 +4 3 536 464 485 557 +5 3 484 556 531 459 +4 3 557 485 458 530 +5 3 461 533 527 455 +4 3 532 460 454 526 +2 3 435 507 558 486 +5 3 487 486 558 559 +5 3 488 560 506 434 +5 3 489 487 559 561 +5 3 490 562 560 488 +5 3 491 489 561 563 +5 3 492 564 562 490 +5 3 493 491 563 565 +5 3 494 566 564 492 +5 3 495 493 565 567 +5 3 496 568 566 494 +5 3 497 495 567 569 +5 3 498 570 568 496 +5 3 499 497 569 571 +5 3 500 572 570 498 +5 3 501 499 571 573 +5 3 457 529 572 500 +5 3 502 501 573 574 +4 3 528 456 503 575 +5 3 503 502 574 575 +5 3 576 504 506 578 +2 3 505 577 579 507 +5 3 580 508 510 582 +2 3 509 581 583 511 +5 3 584 512 514 586 +2 3 513 585 587 515 +5 3 588 516 512 584 +2 3 517 589 585 513 +5 3 590 518 516 588 +2 3 519 591 589 517 +2 3 515 587 592 520 +5 3 586 514 521 593 +2 3 520 592 581 509 +5 3 593 521 508 580 +2 3 511 583 577 505 +5 3 582 510 504 576 +4 3 595 523 525 597 +5 3 523 595 594 522 +4 3 598 526 528 600 +5 3 527 599 601 529 +4 3 602 530 532 604 +5 3 531 603 605 533 +4 3 606 534 536 608 +5 3 535 607 609 537 +4 3 610 538 534 606 +5 3 539 611 607 535 +4 3 597 525 538 610 +5 3 524 596 611 539 +5 3 522 594 612 540 +5 3 524 541 613 596 +5 3 540 612 614 542 +5 3 541 543 615 613 +5 3 542 614 616 544 +5 3 543 545 617 615 +5 3 544 616 618 546 +5 3 545 547 619 617 +5 3 546 618 620 548 +5 3 547 549 621 619 +5 3 548 620 622 550 +5 3 549 551 623 621 +5 3 550 622 624 552 +5 3 551 553 625 623 +5 3 552 624 626 554 +5 3 553 518 590 625 +2 3 555 627 591 519 +5 3 554 626 627 555 +5 3 537 609 628 556 +4 3 608 536 557 629 +5 3 556 628 603 531 +4 3 629 557 530 602 +5 3 533 605 599 527 +4 3 604 532 526 598 +2 3 507 579 630 558 +5 3 559 558 630 631 +5 3 560 632 578 506 +5 3 561 559 631 633 +5 3 562 634 632 560 +5 3 563 561 633 635 +5 3 564 636 634 562 +5 3 565 563 635 637 +5 3 566 638 636 564 +5 3 567 565 637 639 +5 3 568 640 638 566 +5 3 569 567 639 641 +5 3 570 642 640 568 +5 3 571 569 641 643 +5 3 572 644 642 570 +5 3 573 571 643 645 +5 3 529 601 644 572 +5 3 574 573 645 646 +4 3 600 528 575 647 +5 3 575 574 646 647 +5 3 648 576 578 650 +2 3 577 649 651 579 +5 3 652 580 582 654 +2 3 581 653 655 583 +5 3 656 584 586 658 +2 3 585 657 659 587 +5 3 660 588 584 656 +2 3 589 661 657 585 +5 3 662 590 588 660 +2 3 591 663 661 589 +2 3 587 659 664 592 +5 3 658 586 593 665 +2 3 592 664 653 581 +5 3 665 593 580 652 +2 3 583 655 649 577 +5 3 654 582 576 648 +4 3 667 595 597 669 +5 3 595 667 666 594 +4 3 670 598 600 672 +5 3 599 671 673 601 +4 3 674 602 604 676 +5 3 603 675 677 605 +4 3 678 606 608 680 +5 3 607 679 681 609 +4 3 682 610 606 678 +5 3 611 683 679 607 +4 3 669 597 610 682 +5 3 596 668 683 611 +5 3 594 666 684 612 +5 3 596 613 685 668 +5 3 612 684 686 614 +5 3 613 615 687 685 +5 3 614 686 688 616 +5 3 615 617 689 687 +5 3 616 688 690 618 +5 3 617 619 691 689 +5 3 618 690 692 620 +5 3 619 621 693 691 +5 3 620 692 694 622 +5 3 621 623 695 693 +5 3 622 694 696 624 +5 3 623 625 697 695 +5 3 624 696 698 626 +5 3 625 590 662 697 +2 3 627 699 663 591 +5 3 626 698 699 627 +5 3 609 681 700 628 +4 3 680 608 629 701 +5 3 628 700 675 603 +4 3 701 629 602 674 +5 3 605 677 671 599 +4 3 676 604 598 670 +2 3 579 651 702 630 +5 3 631 630 702 703 +5 3 632 704 650 578 +5 3 633 631 703 705 +5 3 634 706 704 632 +5 3 635 633 705 707 +5 3 636 708 706 634 +5 3 637 635 707 709 +5 3 638 710 708 636 +5 3 639 637 709 711 +5 3 640 712 710 638 +5 3 641 639 711 713 +5 3 642 714 712 640 +5 3 643 641 713 715 +5 3 644 716 714 642 +5 3 645 643 715 717 +5 3 601 673 716 644 +5 3 646 645 717 718 +4 3 672 600 647 719 +5 3 647 646 718 719 +5 3 720 648 650 722 +2 3 649 721 723 651 +3 3 721 720 722 723 +5 3 724 652 654 726 +2 3 653 725 727 655 +3 3 725 724 726 727 +5 3 728 656 658 730 +2 3 657 729 731 659 +3 3 729 728 730 731 +5 3 732 660 656 728 +2 3 661 733 729 657 +3 3 733 732 728 729 +5 3 734 662 660 732 +2 3 663 735 733 661 +3 3 735 734 732 733 +2 3 659 731 736 664 +3 3 731 730 737 736 +5 3 730 658 665 737 +2 3 664 736 725 653 +3 3 736 737 724 725 +5 3 737 665 652 724 +2 3 655 727 721 649 +3 3 727 726 720 721 +5 3 726 654 648 720 +3 3 738 739 741 740 +4 3 739 667 669 741 +5 3 667 739 738 666 +4 3 742 670 672 744 +5 3 671 743 745 673 +3 3 743 742 744 745 +4 3 746 674 676 748 +5 3 675 747 749 677 +3 3 747 746 748 749 +4 3 750 678 680 752 +5 3 679 751 753 681 +3 3 751 750 752 753 +4 3 754 682 678 750 +5 3 683 755 751 679 +3 3 755 754 750 751 +4 3 741 669 682 754 +5 3 668 740 755 683 +3 3 740 741 754 755 +3 3 756 738 740 757 +5 3 666 738 756 684 +5 3 668 685 757 740 +3 3 758 756 757 759 +5 3 684 756 758 686 +5 3 685 687 759 757 +3 3 760 758 759 761 +5 3 686 758 760 688 +5 3 687 689 761 759 +3 3 762 760 761 763 +5 3 688 760 762 690 +5 3 689 691 763 761 +3 3 764 762 763 765 +5 3 690 762 764 692 +5 3 691 693 765 763 +3 3 766 764 765 767 +5 3 692 764 766 694 +5 3 693 695 767 765 +3 3 768 766 767 769 +5 3 694 766 768 696 +5 3 695 697 769 767 +3 3 770 768 769 734 +5 3 696 768 770 698 +5 3 697 662 734 769 +2 3 699 771 735 663 +3 3 771 770 734 735 +5 3 698 770 771 699 +5 3 681 753 772 700 +3 3 753 752 773 772 +4 3 752 680 701 773 +5 3 700 772 747 675 +3 3 772 773 746 747 +4 3 773 701 674 746 +5 3 677 749 743 671 +3 3 749 748 742 743 +4 3 748 676 670 742 +2 3 651 723 774 702 +3 3 723 722 775 774 +5 3 703 702 774 775 +3 3 722 776 777 775 +5 3 704 776 722 650 +5 3 705 703 775 777 +3 3 776 778 779 777 +5 3 706 778 776 704 +5 3 707 705 777 779 +3 3 778 780 781 779 +5 3 708 780 778 706 +5 3 709 707 779 781 +3 3 780 782 783 781 +5 3 710 782 780 708 +5 3 711 709 781 783 +3 3 782 784 785 783 +5 3 712 784 782 710 +5 3 713 711 783 785 +3 3 784 786 787 785 +5 3 714 786 784 712 +5 3 715 713 785 787 +3 3 786 788 789 787 +5 3 716 788 786 714 +5 3 717 715 787 789 +3 3 788 745 790 789 +5 3 673 745 788 716 +5 3 718 717 789 790 +3 3 745 744 791 790 +4 3 744 672 719 791 +5 3 719 718 790 791 + +vertices +792 +3 +0.09 0.05 0.08 +0.09 0.0 0.08 +0.1 0.0 0.08 +0.1 0.05 0.08 +0.09 0.05 0.09 +0.09 0.0 0.09 +0.1 0.0 0.09 +0.1 0.05 0.09 +0.09 0.05 0.06 +0.09 0.0 0.06 +0.1 0.0 0.06 +0.1 0.05 0.06 +0.09 0.05 0.07 +0.09 0.0 0.07 +0.1 0.0 0.07 +0.1 0.05 0.07 +0.09 0.05 0.03 +0.09 0.0 0.03 +0.1 0.0 0.03 +0.1 0.05 0.03 +0.09 0.05 0.04 +0.09 0.0 0.04 +0.1 0.0 0.04 +0.1 0.05 0.04 +0.09 0.05 0.02 +0.09 0.0 0.02 +0.1 0.0 0.02 +0.1 0.05 0.02 +0.09 0.05 0.01 +0.09 0.0 0.01 +0.1 0.0 0.01 +0.1 0.05 0.01 +0.09 -0.0 0.05 +0.1 -0.0 0.05 +0.1 0.05 0.05 +0.09 0.05 0.05 +0.0 0.0 0.0 +0.01 0.0 0.0 +0.01 0.05 0.0 +0.0 0.05 0.0 +0.0 0.0 0.01 +0.01 0.0 0.01 +0.01 0.05 0.01 +0.0 0.05 0.01 +0.0 0.05 0.08 +0.0 0.0 0.08 +0.01 0.0 0.08 +0.01 0.05 0.08 +0.0 0.05 0.09 +0.0 0.0 0.09 +0.01 0.0 0.09 +0.01 0.05 0.09 +0.0 0.05 0.06 +0.0 0.0 0.06 +0.01 0.0 0.06 +0.01 0.05 0.06 +0.0 0.05 0.07 +0.0 0.0 0.07 +0.01 0.0 0.07 +0.01 0.05 0.07 +0.0 0.05 0.03 +0.0 0.0 0.03 +0.01 0.0 0.03 +0.01 0.05 0.03 +0.0 0.05 0.04 +0.0 0.0 0.04 +0.01 0.0 0.04 +0.01 0.05 0.04 +0.0 0.05 0.02 +0.0 0.0 0.02 +0.01 0.0 0.02 +0.01 0.05 0.02 +0.02 0.0 0.0 +0.02 0.05 0.0 +0.02 0.0 0.01 +0.02 0.05 0.01 +0.03 0.0 0.0 +0.03 0.05 0.0 +0.03 0.0 0.01 +0.03 0.05 0.01 +0.04 0.0 0.0 +0.04 0.05 0.0 +0.04 0.0 0.01 +0.04 0.05 0.01 +0.05 0.0 0.0 +0.05 0.05 0.0 +0.05 0.0 0.01 +0.05 0.05 0.01 +0.06 0.0 0.0 +0.06 0.05 0.0 +0.06 0.0 0.01 +0.06 0.05 0.01 +0.07 0.0 0.0 +0.07 0.05 0.0 +0.07 0.0 0.01 +0.07 0.05 0.01 +0.08 0.0 0.0 +0.08 0.05 0.0 +0.08 0.0 0.01 +0.08 0.05 0.01 +0.09 0.0 0.0 +0.09 0.05 0.0 +0.1 0.0 0.0 +0.1 0.05 0.0 +0.0 0.0 0.05 +0.01 0.0 0.05 +0.01 0.05 0.05 +0.0 0.05 0.05 +0.09 0.0 0.1 +0.1 0.0 0.1 +0.1 0.05 0.1 +0.09 0.05 0.1 +0.08 0.0 0.09 +0.08 0.05 0.09 +0.08 0.0 0.1 +0.08 0.05 0.1 +0.07 0.0 0.09 +0.07 0.05 0.09 +0.07 0.0 0.1 +0.07 0.05 0.1 +0.06 0.0 0.09 +0.06 0.05 0.09 +0.06 0.0 0.1 +0.06 0.05 0.1 +0.05 0.0 0.09 +0.05 0.05 0.09 +0.05 0.0 0.1 +0.05 0.05 0.1 +0.04 0.0 0.09 +0.04 0.05 0.09 +0.04 0.0 0.1 +0.04 0.05 0.1 +0.03 0.0 0.09 +0.03 0.05 0.09 +0.03 0.0 0.1 +0.03 0.05 0.1 +0.02 0.0 0.09 +0.02 0.05 0.09 +0.02 0.0 0.1 +0.02 0.05 0.1 +0.01 0.0 0.1 +0.01 0.05 0.1 +0.0 0.0 0.1 +0.0 0.05 0.1 +0.09 0.1 0.08 +0.1 0.1 0.08 +0.09 0.1 0.09 +0.1 0.1 0.09 +0.09 0.1 0.06 +0.1 0.1 0.06 +0.09 0.1 0.07 +0.1 0.1 0.07 +0.09 0.1 0.03 +0.1 0.1 0.03 +0.09 0.1 0.04 +0.1 0.1 0.04 +0.09 0.1 0.02 +0.1 0.1 0.02 +0.09 0.1 0.01 +0.1 0.1 0.01 +0.1 0.1 0.05 +0.09 0.1 0.05 +0.01 0.1 0.0 +0.0 0.1 0.0 +0.01 0.1 0.01 +0.0 0.1 0.01 +0.0 0.1 0.08 +0.01 0.1 0.08 +0.0 0.1 0.09 +0.01 0.1 0.09 +0.0 0.1 0.06 +0.01 0.1 0.06 +0.0 0.1 0.07 +0.01 0.1 0.07 +0.0 0.1 0.03 +0.01 0.1 0.03 +0.0 0.1 0.04 +0.01 0.1 0.04 +0.0 0.1 0.02 +0.01 0.1 0.02 +0.02 0.1 0.0 +0.02 0.1 0.01 +0.03 0.1 0.0 +0.03 0.1 0.01 +0.04 0.1 0.0 +0.04 0.1 0.01 +0.05 0.1 0.0 +0.05 0.1 0.01 +0.06 0.1 0.0 +0.06 0.1 0.01 +0.07 0.1 0.0 +0.07 0.1 0.01 +0.08 0.1 0.0 +0.08 0.1 0.01 +0.09 0.1 0.0 +0.1 0.1 0.0 +0.01 0.1 0.05 +0.0 0.1 0.05 +0.1 0.1 0.1 +0.09 0.1 0.1 +0.08 0.1 0.09 +0.08 0.1 0.1 +0.07 0.1 0.09 +0.07 0.1 0.1 +0.06 0.1 0.09 +0.06 0.1 0.1 +0.05 0.1 0.09 +0.05 0.1 0.1 +0.04 0.1 0.09 +0.04 0.1 0.1 +0.03 0.1 0.09 +0.03 0.1 0.1 +0.02 0.1 0.09 +0.02 0.1 0.1 +0.01 0.1 0.1 +0.0 0.1 0.1 +0.09 0.15 0.08 +0.1 0.15 0.08 +0.09 0.15 0.09 +0.1 0.15 0.09 +0.09 0.15 0.06 +0.1 0.15 0.06 +0.09 0.15 0.07 +0.1 0.15 0.07 +0.09 0.15 0.03 +0.1 0.15 0.03 +0.09 0.15 0.04 +0.1 0.15 0.04 +0.09 0.15 0.02 +0.1 0.15 0.02 +0.09 0.15 0.01 +0.1 0.15 0.01 +0.1 0.15 0.05 +0.09 0.15 0.05 +0.01 0.15 0.0 +0.0 0.15 0.0 +0.01 0.15 0.01 +0.0 0.15 0.01 +0.0 0.15 0.08 +0.01 0.15 0.08 +0.0 0.15 0.09 +0.01 0.15 0.09 +0.0 0.15 0.06 +0.01 0.15 0.06 +0.0 0.15 0.07 +0.01 0.15 0.07 +0.0 0.15 0.03 +0.01 0.15 0.03 +0.0 0.15 0.04 +0.01 0.15 0.04 +0.0 0.15 0.02 +0.01 0.15 0.02 +0.02 0.15 0.0 +0.02 0.15 0.01 +0.03 0.15 0.0 +0.03 0.15 0.01 +0.04 0.15 0.0 +0.04 0.15 0.01 +0.05 0.15 0.0 +0.05 0.15 0.01 +0.06 0.15 0.0 +0.06 0.15 0.01 +0.07 0.15 0.0 +0.07 0.15 0.01 +0.08 0.15 0.0 +0.08 0.15 0.01 +0.09 0.15 0.0 +0.1 0.15 0.0 +0.01 0.15 0.05 +0.0 0.15 0.05 +0.1 0.15 0.1 +0.09 0.15 0.1 +0.08 0.15 0.09 +0.08 0.15 0.1 +0.07 0.15 0.09 +0.07 0.15 0.1 +0.06 0.15 0.09 +0.06 0.15 0.1 +0.05 0.15 0.09 +0.05 0.15 0.1 +0.04 0.15 0.09 +0.04 0.15 0.1 +0.03 0.15 0.09 +0.03 0.15 0.1 +0.02 0.15 0.09 +0.02 0.15 0.1 +0.01 0.15 0.1 +0.0 0.15 0.1 +0.09 0.2 0.08 +0.1 0.2 0.08 +0.09 0.2 0.09 +0.1 0.2 0.09 +0.09 0.2 0.06 +0.1 0.2 0.06 +0.09 0.2 0.07 +0.1 0.2 0.07 +0.09 0.2 0.03 +0.1 0.2 0.03 +0.09 0.2 0.04 +0.1 0.2 0.04 +0.09 0.2 0.02 +0.1 0.2 0.02 +0.09 0.2 0.01 +0.1 0.2 0.01 +0.1 0.2 0.05 +0.09 0.2 0.05 +0.01 0.2 0.0 +0.0 0.2 0.0 +0.01 0.2 0.01 +0.0 0.2 0.01 +0.0 0.2 0.08 +0.01 0.2 0.08 +0.0 0.2 0.09 +0.01 0.2 0.09 +0.0 0.2 0.06 +0.01 0.2 0.06 +0.0 0.2 0.07 +0.01 0.2 0.07 +0.0 0.2 0.03 +0.01 0.2 0.03 +0.0 0.2 0.04 +0.01 0.2 0.04 +0.0 0.2 0.02 +0.01 0.2 0.02 +0.02 0.2 0.0 +0.02 0.2 0.01 +0.03 0.2 0.0 +0.03 0.2 0.01 +0.04 0.2 0.0 +0.04 0.2 0.01 +0.05 0.2 0.0 +0.05 0.2 0.01 +0.06 0.2 0.0 +0.06 0.2 0.01 +0.07 0.2 0.0 +0.07 0.2 0.01 +0.08 0.2 0.0 +0.08 0.2 0.01 +0.09 0.2 0.0 +0.1 0.2 0.0 +0.01 0.2 0.05 +0.0 0.2 0.05 +0.1 0.2 0.1 +0.09 0.2 0.1 +0.08 0.2 0.09 +0.08 0.2 0.1 +0.07 0.2 0.09 +0.07 0.2 0.1 +0.06 0.2 0.09 +0.06 0.2 0.1 +0.05 0.2 0.09 +0.05 0.2 0.1 +0.04 0.2 0.09 +0.04 0.2 0.1 +0.03 0.2 0.09 +0.03 0.2 0.1 +0.02 0.2 0.09 +0.02 0.2 0.1 +0.01 0.2 0.1 +0.0 0.2 0.1 +0.09 0.25 0.08 +0.1 0.25 0.08 +0.09 0.25 0.09 +0.1 0.25 0.09 +0.09 0.25 0.06 +0.1 0.25 0.06 +0.09 0.25 0.07 +0.1 0.25 0.07 +0.09 0.25 0.03 +0.1 0.25 0.03 +0.09 0.25 0.04 +0.1 0.25 0.04 +0.09 0.25 0.02 +0.1 0.25 0.02 +0.09 0.25 0.01 +0.1 0.25 0.01 +0.1 0.25 0.05 +0.09 0.25 0.05 +0.01 0.25 0.0 +0.0 0.25 0.0 +0.01 0.25 0.01 +0.0 0.25 0.01 +0.0 0.25 0.08 +0.01 0.25 0.08 +0.0 0.25 0.09 +0.01 0.25 0.09 +0.0 0.25 0.06 +0.01 0.25 0.06 +0.0 0.25 0.07 +0.01 0.25 0.07 +0.0 0.25 0.03 +0.01 0.25 0.03 +0.0 0.25 0.04 +0.01 0.25 0.04 +0.0 0.25 0.02 +0.01 0.25 0.02 +0.02 0.25 0.0 +0.02 0.25 0.01 +0.03 0.25 0.0 +0.03 0.25 0.01 +0.04 0.25 0.0 +0.04 0.25 0.01 +0.05 0.25 0.0 +0.05 0.25 0.01 +0.06 0.25 0.0 +0.06 0.25 0.01 +0.07 0.25 0.0 +0.07 0.25 0.01 +0.08 0.25 0.0 +0.08 0.25 0.01 +0.09 0.25 0.0 +0.1 0.25 0.0 +0.01 0.25 0.05 +0.0 0.25 0.05 +0.1 0.25 0.1 +0.09 0.25 0.1 +0.08 0.25 0.09 +0.08 0.25 0.1 +0.07 0.25 0.09 +0.07 0.25 0.1 +0.06 0.25 0.09 +0.06 0.25 0.1 +0.05 0.25 0.09 +0.05 0.25 0.1 +0.04 0.25 0.09 +0.04 0.25 0.1 +0.03 0.25 0.09 +0.03 0.25 0.1 +0.02 0.25 0.09 +0.02 0.25 0.1 +0.01 0.25 0.1 +0.0 0.25 0.1 +0.09 0.3 0.08 +0.1 0.3 0.08 +0.09 0.3 0.09 +0.1 0.3 0.09 +0.09 0.3 0.06 +0.1 0.3 0.06 +0.09 0.3 0.07 +0.1 0.3 0.07 +0.09 0.3 0.03 +0.1 0.3 0.03 +0.09 0.3 0.04 +0.1 0.3 0.04 +0.09 0.3 0.02 +0.1 0.3 0.02 +0.09 0.3 0.01 +0.1 0.3 0.01 +0.1 0.3 0.05 +0.09 0.3 0.05 +0.01 0.3 0.0 +0.0 0.3 0.0 +0.01 0.3 0.01 +0.0 0.3 0.01 +0.0 0.3 0.08 +0.01 0.3 0.08 +0.0 0.3 0.09 +0.01 0.3 0.09 +0.0 0.3 0.06 +0.01 0.3 0.06 +0.0 0.3 0.07 +0.01 0.3 0.07 +0.0 0.3 0.03 +0.01 0.3 0.03 +0.0 0.3 0.04 +0.01 0.3 0.04 +0.0 0.3 0.02 +0.01 0.3 0.02 +0.02 0.3 0.0 +0.02 0.3 0.01 +0.03 0.3 0.0 +0.03 0.3 0.01 +0.04 0.3 0.0 +0.04 0.3 0.01 +0.05 0.3 0.0 +0.05 0.3 0.01 +0.06 0.3 0.0 +0.06 0.3 0.01 +0.07 0.3 0.0 +0.07 0.3 0.01 +0.08 0.3 0.0 +0.08 0.3 0.01 +0.09 0.3 0.0 +0.1 0.3 0.0 +0.01 0.3 0.05 +0.0 0.3 0.05 +0.1 0.3 0.1 +0.09 0.3 0.1 +0.08 0.3 0.09 +0.08 0.3 0.1 +0.07 0.3 0.09 +0.07 0.3 0.1 +0.06 0.3 0.09 +0.06 0.3 0.1 +0.05 0.3 0.09 +0.05 0.3 0.1 +0.04 0.3 0.09 +0.04 0.3 0.1 +0.03 0.3 0.09 +0.03 0.3 0.1 +0.02 0.3 0.09 +0.02 0.3 0.1 +0.01 0.3 0.1 +0.0 0.3 0.1 +0.09 0.35 0.08 +0.1 0.35 0.08 +0.09 0.35 0.09 +0.1 0.35 0.09 +0.09 0.35 0.06 +0.1 0.35 0.06 +0.09 0.35 0.07 +0.1 0.35 0.07 +0.09 0.35 0.03 +0.1 0.35 0.03 +0.09 0.35 0.04 +0.1 0.35 0.04 +0.09 0.35 0.02 +0.1 0.35 0.02 +0.09 0.35 0.01 +0.1 0.35 0.01 +0.1 0.35 0.05 +0.09 0.35 0.05 +0.01 0.35 0.0 +0.0 0.35 0.0 +0.01 0.35 0.01 +0.0 0.35 0.01 +0.0 0.35 0.08 +0.01 0.35 0.08 +0.0 0.35 0.09 +0.01 0.35 0.09 +0.0 0.35 0.06 +0.01 0.35 0.06 +0.0 0.35 0.07 +0.01 0.35 0.07 +0.0 0.35 0.03 +0.01 0.35 0.03 +0.0 0.35 0.04 +0.01 0.35 0.04 +0.0 0.35 0.02 +0.01 0.35 0.02 +0.02 0.35 0.0 +0.02 0.35 0.01 +0.03 0.35 0.0 +0.03 0.35 0.01 +0.04 0.35 0.0 +0.04 0.35 0.01 +0.05 0.35 0.0 +0.05 0.35 0.01 +0.06 0.35 0.0 +0.06 0.35 0.01 +0.07 0.35 0.0 +0.07 0.35 0.01 +0.08 0.35 0.0 +0.08 0.35 0.01 +0.09 0.35 0.0 +0.1 0.35 0.0 +0.01 0.35 0.05 +0.0 0.35 0.05 +0.1 0.35 0.1 +0.09 0.35 0.1 +0.08 0.35 0.09 +0.08 0.35 0.1 +0.07 0.35 0.09 +0.07 0.35 0.1 +0.06 0.35 0.09 +0.06 0.35 0.1 +0.05 0.35 0.09 +0.05 0.35 0.1 +0.04 0.35 0.09 +0.04 0.35 0.1 +0.03 0.35 0.09 +0.03 0.35 0.1 +0.02 0.35 0.09 +0.02 0.35 0.1 +0.01 0.35 0.1 +0.0 0.35 0.1 +0.09 0.4 0.08 +0.1 0.4 0.08 +0.09 0.4 0.09 +0.1 0.4 0.09 +0.09 0.4 0.06 +0.1 0.4 0.06 +0.09 0.4 0.07 +0.1 0.4 0.07 +0.09 0.4 0.03 +0.1 0.4 0.03 +0.09 0.4 0.04 +0.1 0.4 0.04 +0.09 0.4 0.02 +0.1 0.4 0.02 +0.09 0.4 0.01 +0.1 0.4 0.01 +0.1 0.4 0.05 +0.09 0.4 0.05 +0.01 0.4 0.0 +0.0 0.4 0.0 +0.01 0.4 0.01 +0.0 0.4 0.01 +0.0 0.4 0.08 +0.01 0.4 0.08 +0.0 0.4 0.09 +0.01 0.4 0.09 +0.0 0.4 0.06 +0.01 0.4 0.06 +0.0 0.4 0.07 +0.01 0.4 0.07 +0.0 0.4 0.03 +0.01 0.4 0.03 +0.0 0.4 0.04 +0.01 0.4 0.04 +0.0 0.4 0.02 +0.01 0.4 0.02 +0.02 0.4 0.0 +0.02 0.4 0.01 +0.03 0.4 0.0 +0.03 0.4 0.01 +0.04 0.4 0.0 +0.04 0.4 0.01 +0.05 0.4 0.0 +0.05 0.4 0.01 +0.06 0.4 0.0 +0.06 0.4 0.01 +0.07 0.4 0.0 +0.07 0.4 0.01 +0.08 0.4 0.0 +0.08 0.4 0.01 +0.09 0.4 0.0 +0.1 0.4 0.0 +0.01 0.4 0.05 +0.0 0.4 0.05 +0.1 0.4 0.1 +0.09 0.4 0.1 +0.08 0.4 0.09 +0.08 0.4 0.1 +0.07 0.4 0.09 +0.07 0.4 0.1 +0.06 0.4 0.09 +0.06 0.4 0.1 +0.05 0.4 0.09 +0.05 0.4 0.1 +0.04 0.4 0.09 +0.04 0.4 0.1 +0.03 0.4 0.09 +0.03 0.4 0.1 +0.02 0.4 0.09 +0.02 0.4 0.1 +0.01 0.4 0.1 +0.0 0.4 0.1 +0.09 0.45 0.08 +0.1 0.45 0.08 +0.09 0.45 0.09 +0.1 0.45 0.09 +0.09 0.45 0.06 +0.1 0.45 0.06 +0.09 0.45 0.07 +0.1 0.45 0.07 +0.09 0.45 0.03 +0.1 0.45 0.03 +0.09 0.45 0.04 +0.1 0.45 0.04 +0.09 0.45 0.02 +0.1 0.45 0.02 +0.09 0.45 0.01 +0.1 0.45 0.01 +0.1 0.45 0.05 +0.09 0.45 0.05 +0.01 0.45 0.0 +0.0 0.45 0.0 +0.01 0.45 0.01 +0.0 0.45 0.01 +0.0 0.45 0.08 +0.01 0.45 0.08 +0.0 0.45 0.09 +0.01 0.45 0.09 +0.0 0.45 0.06 +0.01 0.45 0.06 +0.0 0.45 0.07 +0.01 0.45 0.07 +0.0 0.45 0.03 +0.01 0.45 0.03 +0.0 0.45 0.04 +0.01 0.45 0.04 +0.0 0.45 0.02 +0.01 0.45 0.02 +0.02 0.45 0.0 +0.02 0.45 0.01 +0.03 0.45 0.0 +0.03 0.45 0.01 +0.04 0.45 0.0 +0.04 0.45 0.01 +0.05 0.45 0.0 +0.05 0.45 0.01 +0.06 0.45 0.0 +0.06 0.45 0.01 +0.07 0.45 0.0 +0.07 0.45 0.01 +0.08 0.45 0.0 +0.08 0.45 0.01 +0.09 0.45 0.0 +0.1 0.45 0.0 +0.01 0.45 0.05 +0.0 0.45 0.05 +0.1 0.45 0.1 +0.09 0.45 0.1 +0.08 0.45 0.09 +0.08 0.45 0.1 +0.07 0.45 0.09 +0.07 0.45 0.1 +0.06 0.45 0.09 +0.06 0.45 0.1 +0.05 0.45 0.09 +0.05 0.45 0.1 +0.04 0.45 0.09 +0.04 0.45 0.1 +0.03 0.45 0.09 +0.03 0.45 0.1 +0.02 0.45 0.09 +0.02 0.45 0.1 +0.01 0.45 0.1 +0.0 0.45 0.1 +0.09 0.5 0.08 +0.1 0.5 0.08 +0.09 0.5 0.09 +0.1 0.5 0.09 +0.09 0.5 0.06 +0.1 0.5 0.06 +0.09 0.5 0.07 +0.1 0.5 0.07 +0.09 0.5 0.03 +0.1 0.5 0.03 +0.09 0.5 0.04 +0.1 0.5 0.04 +0.09 0.5 0.02 +0.1 0.5 0.02 +0.09 0.5 0.01 +0.1 0.5 0.01 +0.1 0.5 0.05 +0.09 0.5 0.05 +0.01 0.5 0.0 +0.0 0.5 0.0 +0.01 0.5 0.01 +0.0 0.5 0.01 +0.0 0.5 0.08 +0.01 0.5 0.08 +0.0 0.5 0.09 +0.01 0.5 0.09 +0.0 0.5 0.06 +0.01 0.5 0.06 +0.0 0.5 0.07 +0.01 0.5 0.07 +0.0 0.5 0.03 +0.01 0.5 0.03 +0.0 0.5 0.04 +0.01 0.5 0.04 +0.0 0.5 0.02 +0.01 0.5 0.02 +0.02 0.5 0.0 +0.02 0.5 0.01 +0.03 0.5 0.0 +0.03 0.5 0.01 +0.04 0.5 0.0 +0.04 0.5 0.01 +0.05 0.5 0.0 +0.05 0.5 0.01 +0.06 0.5 0.0 +0.06 0.5 0.01 +0.07 0.5 0.0 +0.07 0.5 0.01 +0.08 0.5 0.0 +0.08 0.5 0.01 +0.09 0.5 0.0 +0.1 0.5 0.0 +0.01 0.5 0.05 +0.0 0.5 0.05 +0.1 0.5 0.1 +0.09 0.5 0.1 +0.08 0.5 0.09 +0.08 0.5 0.1 +0.07 0.5 0.09 +0.07 0.5 0.1 +0.06 0.5 0.09 +0.06 0.5 0.1 +0.05 0.5 0.09 +0.05 0.5 0.1 +0.04 0.5 0.09 +0.04 0.5 0.1 +0.03 0.5 0.09 +0.03 0.5 0.1 +0.02 0.5 0.09 +0.02 0.5 0.1 +0.01 0.5 0.1 +0.0 0.5 0.1 diff --git a/examples/linelast/meshes/3dcw_joint.mesh b/examples/linelast/meshes/3dcw_joint.mesh new file mode 100644 index 00000000..043a3ff1 --- /dev/null +++ b/examples/linelast/meshes/3dcw_joint.mesh @@ -0,0 +1,1450 @@ +MFEM mesh v1.0 +# +# MFEM Geometry Types (see mesh/geom.hpp): +# POINT = 0 +# SEGMENT = 1 +# TRIANGLE = 2 +# SQUARE = 3 +# TETRAHEDRON = 4 +# CUBE = 5 + +dimension +3 + +elements +232 +1 5 0 1 2 3 4 5 6 7 +1 5 1 8 9 2 5 10 11 6 +1 5 8 12 13 9 10 14 15 11 +1 5 12 16 17 13 14 18 19 15 +1 5 16 20 21 17 18 22 23 19 +1 5 20 24 25 21 22 26 27 23 +1 5 24 28 29 25 26 30 31 27 +1 5 28 32 33 29 30 34 35 31 +1 5 32 36 37 33 34 38 39 35 +1 5 36 40 41 37 38 42 43 39 +1 5 37 41 44 45 39 43 46 47 +1 5 33 37 45 48 35 39 47 49 +1 5 29 33 48 50 31 35 49 51 +1 5 25 29 50 52 27 31 51 53 +1 5 21 25 52 54 23 27 53 55 +1 5 17 21 54 56 19 23 55 57 +1 5 13 17 56 58 15 19 57 59 +1 5 9 13 58 60 11 15 59 61 +1 5 2 9 60 62 6 11 61 63 +1 5 3 2 62 64 7 6 63 65 +1 5 66 67 68 69 70 71 72 73 +1 5 74 66 69 75 76 70 73 77 +1 5 78 74 75 79 80 76 77 81 +1 5 82 78 79 83 84 80 81 85 +1 5 86 82 83 87 88 84 85 89 +1 5 90 86 87 91 92 88 89 93 +1 5 94 90 91 95 96 92 93 97 +1 5 98 94 95 99 100 96 97 101 +1 5 102 98 99 103 104 100 101 105 +1 5 106 102 103 107 108 104 105 109 +1 5 107 103 110 111 109 105 112 113 +1 5 103 99 114 110 105 101 115 112 +1 5 99 95 116 114 101 97 117 115 +1 5 95 91 118 116 97 93 119 117 +1 5 91 87 120 118 93 89 121 119 +1 5 87 83 122 120 89 85 123 121 +1 5 83 79 124 122 85 81 125 123 +1 5 79 75 126 124 81 77 127 125 +1 5 75 69 128 126 77 73 129 127 +1 5 69 68 130 128 73 72 131 129 +1 5 45 44 67 66 47 46 71 70 +1 5 48 45 66 74 49 47 70 76 +1 5 50 48 74 78 51 49 76 80 +1 5 52 50 78 82 53 51 80 84 +1 5 54 52 82 86 55 53 84 88 +1 5 56 54 86 90 57 55 88 92 +1 5 58 56 90 94 59 57 92 96 +1 5 60 58 94 98 61 59 96 100 +1 5 62 60 98 102 63 61 100 104 +1 5 64 62 102 106 65 63 104 108 +1 5 111 110 132 133 113 112 134 135 +1 5 110 114 136 132 112 115 137 134 +1 5 114 116 138 136 115 117 139 137 +1 5 116 118 140 138 117 119 141 139 +1 5 118 120 142 140 119 121 143 141 +1 5 120 122 144 142 121 123 145 143 +1 5 122 124 146 144 123 125 147 145 +1 5 124 126 148 146 125 127 149 147 +1 5 126 128 150 148 127 129 151 149 +1 5 128 130 152 150 129 131 153 151 +1 5 150 152 154 155 151 153 156 157 +1 5 148 150 155 158 149 151 157 159 +1 5 146 148 158 160 147 149 159 161 +1 5 144 146 160 162 145 147 161 163 +1 5 142 144 162 164 143 145 163 165 +1 5 140 142 164 166 141 143 165 167 +1 5 138 140 166 168 139 141 167 169 +1 5 136 138 168 170 137 139 169 171 +1 5 132 136 170 172 134 137 171 173 +1 5 133 132 172 174 135 134 173 175 +1 5 174 172 176 177 175 173 178 179 +1 5 172 170 180 176 173 171 181 178 +1 5 170 168 182 180 171 169 183 181 +1 5 168 166 184 182 169 167 185 183 +1 5 166 164 186 184 167 165 187 185 +1 5 164 162 188 186 165 163 189 187 +1 5 162 160 190 188 163 161 191 189 +1 5 160 158 192 190 161 159 193 191 +1 5 158 155 194 192 159 157 195 193 +1 5 155 154 196 194 157 156 197 195 +1 5 194 196 198 199 195 197 200 201 +1 5 192 194 199 202 193 195 201 203 +1 5 190 192 202 204 191 193 203 205 +1 5 188 190 204 206 189 191 205 207 +1 5 186 188 206 208 187 189 207 209 +1 5 184 186 208 210 185 187 209 211 +1 5 182 184 210 212 183 185 211 213 +1 5 180 182 212 214 181 183 213 215 +1 5 176 180 214 216 178 181 215 217 +1 5 177 176 216 218 179 178 217 219 +1 5 218 216 220 221 219 217 222 223 +1 5 216 214 224 220 217 215 225 222 +1 5 214 212 226 224 215 213 227 225 +1 5 212 210 228 226 213 211 229 227 +1 5 210 208 230 228 211 209 231 229 +1 5 208 206 232 230 209 207 233 231 +1 5 206 204 234 232 207 205 235 233 +1 5 204 202 236 234 205 203 237 235 +1 5 202 199 238 236 203 201 239 237 +1 5 199 198 240 238 201 200 241 239 +1 5 242 243 244 245 246 247 248 249 +1 5 246 247 248 249 250 251 252 253 +1 5 254 255 256 257 258 259 260 261 +1 5 262 263 264 265 266 267 268 269 +1 5 270 262 265 271 272 266 269 273 +1 5 274 270 271 275 276 272 273 277 +1 5 278 274 275 279 280 276 277 281 +1 5 282 278 279 283 284 280 281 285 +1 5 286 282 283 287 288 284 285 289 +1 5 290 286 287 291 292 288 289 293 +1 5 294 290 291 295 296 292 293 297 +1 5 298 294 295 299 300 296 297 301 +1 5 302 298 299 303 304 300 301 305 +1 5 306 307 298 302 308 309 300 304 +1 5 307 310 294 298 309 311 296 300 +1 5 310 312 290 294 311 313 292 296 +1 5 312 314 286 290 313 315 288 292 +1 5 314 316 282 286 315 317 284 288 +1 5 316 318 278 282 317 319 280 284 +1 5 318 320 274 278 319 321 276 280 +1 5 320 322 270 274 321 323 272 276 +1 5 322 324 262 270 323 325 266 272 +1 5 324 326 263 262 325 327 267 266 +1 5 328 329 326 324 330 331 327 325 +1 5 332 328 324 322 333 330 325 323 +1 5 334 332 322 320 335 333 323 321 +1 5 336 334 320 318 337 335 321 319 +1 5 338 336 318 316 339 337 319 317 +1 5 340 338 316 314 341 339 317 315 +1 5 342 340 314 312 343 341 315 313 +1 5 344 342 312 310 345 343 313 311 +1 5 346 344 310 307 347 345 311 309 +1 5 348 346 307 306 349 347 309 308 +1 5 350 351 346 348 352 353 347 349 +1 5 351 354 344 346 353 355 345 347 +1 5 354 356 342 344 355 357 343 345 +1 5 356 358 340 342 357 359 341 343 +1 5 358 360 338 340 359 361 339 341 +1 5 360 362 336 338 361 363 337 339 +1 5 362 364 334 336 363 365 335 337 +1 5 364 366 332 334 365 367 333 335 +1 5 366 368 328 332 367 369 330 333 +1 5 368 370 329 328 369 371 331 330 +1 5 372 373 370 368 374 375 371 369 +1 5 376 372 368 366 377 374 369 367 +1 5 378 376 366 364 379 377 367 365 +1 5 380 378 364 362 381 379 365 363 +1 5 382 380 362 360 383 381 363 361 +1 5 384 382 360 358 385 383 361 359 +1 5 386 384 358 356 387 385 359 357 +1 5 388 386 356 354 389 387 357 355 +1 5 390 388 354 351 391 389 355 353 +1 5 392 390 351 350 393 391 353 352 +1 5 394 395 396 397 398 399 400 401 +1 5 395 402 403 396 399 404 405 400 +1 5 402 406 407 403 404 408 409 405 +1 5 406 410 411 407 408 412 413 409 +1 5 410 414 415 411 412 416 417 413 +1 5 414 418 419 415 416 420 421 417 +1 5 418 422 423 419 420 424 425 421 +1 5 422 426 427 423 424 428 429 425 +1 5 426 430 431 427 428 432 433 429 +1 5 430 434 435 431 432 436 437 433 +1 5 438 439 373 372 440 441 375 374 +1 5 442 438 372 376 443 440 374 377 +1 5 444 442 376 378 445 443 377 379 +1 5 446 444 378 380 447 445 379 381 +1 5 448 446 380 382 449 447 381 383 +1 5 450 448 382 384 451 449 383 385 +1 5 452 450 384 386 453 451 385 387 +1 5 454 452 386 388 455 453 387 389 +1 5 456 454 388 390 457 455 389 391 +1 5 458 456 390 392 459 457 391 393 +1 5 397 396 456 458 401 400 457 459 +1 5 396 403 454 456 400 405 455 457 +1 5 403 407 452 454 405 409 453 455 +1 5 407 411 450 452 409 413 451 453 +1 5 411 415 448 450 413 417 449 451 +1 5 415 419 446 448 417 421 447 449 +1 5 419 423 444 446 421 425 445 447 +1 5 423 427 442 444 425 429 443 445 +1 5 427 431 438 442 429 433 440 443 +1 5 431 435 439 438 433 437 441 440 +1 5 460 461 395 394 462 463 399 398 +1 5 461 464 402 395 463 465 404 399 +1 5 464 466 406 402 465 467 408 404 +1 5 466 468 410 406 467 469 412 408 +1 5 468 470 414 410 469 471 416 412 +1 5 470 472 418 414 471 473 420 416 +1 5 472 474 422 418 473 475 424 420 +1 5 474 476 426 422 475 477 428 424 +1 5 476 478 430 426 477 479 432 428 +1 5 478 480 434 430 479 481 436 432 +1 5 482 483 480 478 484 485 481 479 +1 5 486 482 478 476 487 484 479 477 +1 5 488 486 476 474 489 487 477 475 +1 5 490 488 474 472 491 489 475 473 +1 5 492 490 472 470 493 491 473 471 +1 5 494 492 470 468 495 493 471 469 +1 5 496 494 468 466 497 495 469 467 +1 5 498 496 466 464 499 497 467 465 +1 5 500 498 464 461 501 499 465 463 +1 5 502 500 461 460 503 501 463 462 +1 5 7 4 5 6 504 505 506 507 +1 5 504 505 506 507 508 509 510 511 +1 5 508 509 510 511 245 242 243 244 +1 5 253 250 251 252 257 254 255 256 +1 5 261 258 259 260 460 502 500 461 +1 5 512 513 514 515 516 517 518 519 +1 5 520 521 522 523 524 525 526 527 +1 5 528 529 530 531 520 521 522 523 +1 5 223 219 217 222 532 533 534 535 +1 5 532 533 534 535 536 537 538 539 +1 5 536 537 538 539 531 528 529 530 +1 5 527 524 525 526 515 512 513 514 +1 5 519 516 517 518 303 302 298 299 +1 5 540 541 542 543 544 545 546 547 +1 5 548 549 550 551 552 553 554 555 +1 5 556 557 558 559 548 549 550 551 +1 5 239 201 200 241 560 561 562 563 +1 5 560 561 562 563 564 565 566 567 +1 5 564 565 566 567 559 556 557 558 +1 5 555 552 553 554 543 540 541 542 +1 5 547 544 545 546 265 262 263 264 +1 5 568 569 570 571 572 573 574 575 +1 5 576 577 578 579 580 581 582 583 +1 5 584 585 586 587 576 577 578 579 +1 5 39 38 42 43 588 589 590 591 +1 5 588 589 590 591 592 593 594 595 +1 5 592 593 594 595 587 584 585 586 +1 5 583 580 581 582 571 568 569 570 +1 5 575 572 573 574 478 482 483 480 + +boundary +600 +1 3 0 1 5 4 +4 3 3 0 4 7 +5 3 0 3 2 1 +1 3 1 8 10 5 +5 3 1 2 9 8 +5 3 5 10 11 6 +1 3 8 12 14 10 +5 3 8 9 13 12 +5 3 10 14 15 11 +1 3 12 16 18 14 +5 3 12 13 17 16 +5 3 14 18 19 15 +1 3 16 20 22 18 +5 3 16 17 21 20 +5 3 18 22 23 19 +1 3 20 24 26 22 +5 3 20 21 25 24 +5 3 22 26 27 23 +1 3 24 28 30 26 +5 3 24 25 29 28 +5 3 26 30 31 27 +1 3 28 32 34 30 +5 3 28 29 33 32 +5 3 30 34 35 31 +1 3 32 36 38 34 +5 3 32 33 37 36 +5 3 34 38 39 35 +1 3 36 40 42 38 +2 3 40 41 43 42 +5 3 36 37 41 40 +2 3 41 44 46 43 +5 3 37 45 44 41 +5 3 39 43 46 47 +5 3 33 48 45 37 +5 3 35 39 47 49 +5 3 29 50 48 33 +5 3 31 35 49 51 +5 3 25 52 50 29 +5 3 27 31 51 53 +5 3 21 54 52 25 +5 3 23 27 53 55 +5 3 17 56 54 21 +5 3 19 23 55 57 +5 3 13 58 56 17 +5 3 15 19 57 59 +5 3 9 60 58 13 +5 3 11 15 59 61 +5 3 2 62 60 9 +5 3 6 11 61 63 +4 3 64 3 7 65 +5 3 3 64 62 2 +5 3 7 6 63 65 +2 3 67 68 72 71 +5 3 66 69 68 67 +5 3 70 71 72 73 +5 3 74 75 69 66 +5 3 76 70 73 77 +5 3 78 79 75 74 +5 3 80 76 77 81 +5 3 82 83 79 78 +5 3 84 80 81 85 +5 3 86 87 83 82 +5 3 88 84 85 89 +5 3 90 91 87 86 +5 3 92 88 89 93 +5 3 94 95 91 90 +5 3 96 92 93 97 +5 3 98 99 95 94 +5 3 100 96 97 101 +5 3 102 103 99 98 +5 3 104 100 101 105 +4 3 107 106 108 109 +5 3 106 107 103 102 +5 3 108 104 105 109 +4 3 111 107 109 113 +5 3 107 111 110 103 +5 3 109 105 112 113 +5 3 103 110 114 99 +5 3 105 101 115 112 +5 3 99 114 116 95 +5 3 101 97 117 115 +5 3 95 116 118 91 +5 3 97 93 119 117 +5 3 91 118 120 87 +5 3 93 89 121 119 +5 3 87 120 122 83 +5 3 89 85 123 121 +5 3 83 122 124 79 +5 3 85 81 125 123 +5 3 79 124 126 75 +5 3 81 77 127 125 +5 3 75 126 128 69 +5 3 77 73 129 127 +2 3 68 130 131 72 +5 3 69 128 130 68 +5 3 73 72 131 129 +2 3 44 67 71 46 +5 3 45 66 67 44 +5 3 47 46 71 70 +5 3 48 74 66 45 +5 3 49 47 70 76 +5 3 50 78 74 48 +5 3 51 49 76 80 +5 3 52 82 78 50 +5 3 53 51 80 84 +5 3 54 86 82 52 +5 3 55 53 84 88 +5 3 56 90 86 54 +5 3 57 55 88 92 +5 3 58 94 90 56 +5 3 59 57 92 96 +5 3 60 98 94 58 +5 3 61 59 96 100 +5 3 62 102 98 60 +5 3 63 61 100 104 +4 3 106 64 65 108 +5 3 64 106 102 62 +5 3 65 63 104 108 +4 3 133 111 113 135 +5 3 111 133 132 110 +5 3 113 112 134 135 +5 3 110 132 136 114 +5 3 112 115 137 134 +5 3 114 136 138 116 +5 3 115 117 139 137 +5 3 116 138 140 118 +5 3 117 119 141 139 +5 3 118 140 142 120 +5 3 119 121 143 141 +5 3 120 142 144 122 +5 3 121 123 145 143 +5 3 122 144 146 124 +5 3 123 125 147 145 +5 3 124 146 148 126 +5 3 125 127 149 147 +5 3 126 148 150 128 +5 3 127 129 151 149 +2 3 130 152 153 131 +5 3 128 150 152 130 +5 3 129 131 153 151 +2 3 152 154 156 153 +5 3 150 155 154 152 +5 3 151 153 156 157 +5 3 148 158 155 150 +5 3 149 151 157 159 +5 3 146 160 158 148 +5 3 147 149 159 161 +5 3 144 162 160 146 +5 3 145 147 161 163 +5 3 142 164 162 144 +5 3 143 145 163 165 +5 3 140 166 164 142 +5 3 141 143 165 167 +5 3 138 168 166 140 +5 3 139 141 167 169 +5 3 136 170 168 138 +5 3 137 139 169 171 +5 3 132 172 170 136 +5 3 134 137 171 173 +4 3 174 133 135 175 +5 3 133 174 172 132 +5 3 135 134 173 175 +4 3 177 174 175 179 +5 3 174 177 176 172 +5 3 175 173 178 179 +5 3 172 176 180 170 +5 3 173 171 181 178 +5 3 170 180 182 168 +5 3 171 169 183 181 +5 3 168 182 184 166 +5 3 169 167 185 183 +5 3 166 184 186 164 +5 3 167 165 187 185 +5 3 164 186 188 162 +5 3 165 163 189 187 +5 3 162 188 190 160 +5 3 163 161 191 189 +5 3 160 190 192 158 +5 3 161 159 193 191 +5 3 158 192 194 155 +5 3 159 157 195 193 +2 3 154 196 197 156 +5 3 155 194 196 154 +5 3 157 156 197 195 +2 3 196 198 200 197 +5 3 194 199 198 196 +5 3 195 197 200 201 +5 3 192 202 199 194 +5 3 193 195 201 203 +5 3 190 204 202 192 +5 3 191 193 203 205 +5 3 188 206 204 190 +5 3 189 191 205 207 +5 3 186 208 206 188 +5 3 187 189 207 209 +5 3 184 210 208 186 +5 3 185 187 209 211 +5 3 182 212 210 184 +5 3 183 185 211 213 +5 3 180 214 212 182 +5 3 181 183 213 215 +5 3 176 216 214 180 +5 3 178 181 215 217 +4 3 218 177 179 219 +5 3 177 218 216 176 +5 3 179 178 217 219 +3 3 220 221 223 222 +4 3 221 218 219 223 +5 3 218 221 220 216 +3 3 224 220 222 225 +5 3 216 220 224 214 +5 3 217 215 225 222 +3 3 226 224 225 227 +5 3 214 224 226 212 +5 3 215 213 227 225 +3 3 228 226 227 229 +5 3 212 226 228 210 +5 3 213 211 229 227 +3 3 230 228 229 231 +5 3 210 228 230 208 +5 3 211 209 231 229 +3 3 232 230 231 233 +5 3 208 230 232 206 +5 3 209 207 233 231 +3 3 234 232 233 235 +5 3 206 232 234 204 +5 3 207 205 235 233 +3 3 236 234 235 237 +5 3 204 234 236 202 +5 3 205 203 237 235 +3 3 238 236 237 239 +5 3 202 236 238 199 +5 3 203 201 239 237 +2 3 198 240 241 200 +3 3 240 238 239 241 +5 3 199 238 240 198 +1 3 242 243 247 246 +5 3 243 244 248 247 +5 3 244 245 249 248 +4 3 245 242 246 249 +1 3 246 247 251 250 +5 3 247 248 252 251 +5 3 248 249 253 252 +4 3 249 246 250 253 +1 3 254 255 259 258 +5 3 255 256 260 259 +5 3 256 257 261 260 +4 3 257 254 258 261 +2 3 263 264 268 267 +3 3 264 265 269 268 +5 3 266 267 268 269 +3 3 265 271 273 269 +5 3 270 271 265 262 +5 3 272 266 269 273 +3 3 271 275 277 273 +5 3 274 275 271 270 +5 3 276 272 273 277 +3 3 275 279 281 277 +5 3 278 279 275 274 +5 3 280 276 277 281 +3 3 279 283 285 281 +5 3 282 283 279 278 +5 3 284 280 281 285 +3 3 283 287 289 285 +5 3 286 287 283 282 +5 3 288 284 285 289 +3 3 287 291 293 289 +5 3 290 291 287 286 +5 3 292 288 289 293 +3 3 291 295 297 293 +5 3 294 295 291 290 +5 3 296 292 293 297 +3 3 295 299 301 297 +5 3 298 299 295 294 +5 3 300 296 297 301 +3 3 299 303 305 301 +4 3 303 302 304 305 +5 3 304 300 301 305 +4 3 302 306 308 304 +5 3 306 302 298 307 +5 3 308 309 300 304 +5 3 307 298 294 310 +5 3 309 311 296 300 +5 3 310 294 290 312 +5 3 311 313 292 296 +5 3 312 290 286 314 +5 3 313 315 288 292 +5 3 314 286 282 316 +5 3 315 317 284 288 +5 3 316 282 278 318 +5 3 317 319 280 284 +5 3 318 278 274 320 +5 3 319 321 276 280 +5 3 320 274 270 322 +5 3 321 323 272 276 +5 3 322 270 262 324 +5 3 323 325 266 272 +2 3 326 263 267 327 +5 3 324 262 263 326 +5 3 325 327 267 266 +2 3 329 326 327 331 +5 3 328 324 326 329 +5 3 330 331 327 325 +5 3 332 322 324 328 +5 3 333 330 325 323 +5 3 334 320 322 332 +5 3 335 333 323 321 +5 3 336 318 320 334 +5 3 337 335 321 319 +5 3 338 316 318 336 +5 3 339 337 319 317 +5 3 340 314 316 338 +5 3 341 339 317 315 +5 3 342 312 314 340 +5 3 343 341 315 313 +5 3 344 310 312 342 +5 3 345 343 313 311 +5 3 346 307 310 344 +5 3 347 345 311 309 +4 3 306 348 349 308 +5 3 348 306 307 346 +5 3 349 347 309 308 +4 3 348 350 352 349 +5 3 350 348 346 351 +5 3 352 353 347 349 +5 3 351 346 344 354 +5 3 353 355 345 347 +5 3 354 344 342 356 +5 3 355 357 343 345 +5 3 356 342 340 358 +5 3 357 359 341 343 +5 3 358 340 338 360 +5 3 359 361 339 341 +5 3 360 338 336 362 +5 3 361 363 337 339 +5 3 362 336 334 364 +5 3 363 365 335 337 +5 3 364 334 332 366 +5 3 365 367 333 335 +5 3 366 332 328 368 +5 3 367 369 330 333 +2 3 370 329 331 371 +5 3 368 328 329 370 +5 3 369 371 331 330 +2 3 373 370 371 375 +5 3 372 368 370 373 +5 3 374 375 371 369 +5 3 376 366 368 372 +5 3 377 374 369 367 +5 3 378 364 366 376 +5 3 379 377 367 365 +5 3 380 362 364 378 +5 3 381 379 365 363 +5 3 382 360 362 380 +5 3 383 381 363 361 +5 3 384 358 360 382 +5 3 385 383 361 359 +5 3 386 356 358 384 +5 3 387 385 359 357 +5 3 388 354 356 386 +5 3 389 387 357 355 +5 3 390 351 354 388 +5 3 391 389 355 353 +4 3 350 392 393 352 +5 3 392 350 351 390 +5 3 393 391 353 352 +4 3 397 394 398 401 +5 3 394 397 396 395 +5 3 398 399 400 401 +5 3 395 396 403 402 +5 3 399 404 405 400 +5 3 402 403 407 406 +5 3 404 408 409 405 +5 3 406 407 411 410 +5 3 408 412 413 409 +5 3 410 411 415 414 +5 3 412 416 417 413 +5 3 414 415 419 418 +5 3 416 420 421 417 +5 3 418 419 423 422 +5 3 420 424 425 421 +5 3 422 423 427 426 +5 3 424 428 429 425 +5 3 426 427 431 430 +5 3 428 432 433 429 +2 3 434 435 437 436 +5 3 430 431 435 434 +5 3 432 436 437 433 +2 3 439 373 375 441 +5 3 438 372 373 439 +5 3 440 441 375 374 +5 3 442 376 372 438 +5 3 443 440 374 377 +5 3 444 378 376 442 +5 3 445 443 377 379 +5 3 446 380 378 444 +5 3 447 445 379 381 +5 3 448 382 380 446 +5 3 449 447 381 383 +5 3 450 384 382 448 +5 3 451 449 383 385 +5 3 452 386 384 450 +5 3 453 451 385 387 +5 3 454 388 386 452 +5 3 455 453 387 389 +5 3 456 390 388 454 +5 3 457 455 389 391 +4 3 392 458 459 393 +5 3 458 392 390 456 +5 3 459 457 391 393 +4 3 458 397 401 459 +5 3 397 458 456 396 +5 3 401 400 457 459 +5 3 396 456 454 403 +5 3 400 405 455 457 +5 3 403 454 452 407 +5 3 405 409 453 455 +5 3 407 452 450 411 +5 3 409 413 451 453 +5 3 411 450 448 415 +5 3 413 417 449 451 +5 3 415 448 446 419 +5 3 417 421 447 449 +5 3 419 446 444 423 +5 3 421 425 445 447 +5 3 423 444 442 427 +5 3 425 429 443 445 +5 3 427 442 438 431 +5 3 429 433 440 443 +2 3 435 439 441 437 +5 3 431 438 439 435 +5 3 433 437 441 440 +4 3 394 460 462 398 +5 3 460 394 395 461 +5 3 462 463 399 398 +5 3 461 395 402 464 +5 3 463 465 404 399 +5 3 464 402 406 466 +5 3 465 467 408 404 +5 3 466 406 410 468 +5 3 467 469 412 408 +5 3 468 410 414 470 +5 3 469 471 416 412 +5 3 470 414 418 472 +5 3 471 473 420 416 +5 3 472 418 422 474 +5 3 473 475 424 420 +5 3 474 422 426 476 +5 3 475 477 428 424 +5 3 476 426 430 478 +5 3 477 479 432 428 +2 3 480 434 436 481 +5 3 478 430 434 480 +5 3 479 481 436 432 +1 3 482 483 485 484 +2 3 483 480 481 485 +5 3 484 485 481 479 +1 3 486 482 484 487 +5 3 486 476 478 482 +5 3 487 484 479 477 +1 3 488 486 487 489 +5 3 488 474 476 486 +5 3 489 487 477 475 +1 3 490 488 489 491 +5 3 490 472 474 488 +5 3 491 489 475 473 +1 3 492 490 491 493 +5 3 492 470 472 490 +5 3 493 491 473 471 +1 3 494 492 493 495 +5 3 494 468 470 492 +5 3 495 493 471 469 +1 3 496 494 495 497 +5 3 496 466 468 494 +5 3 497 495 469 467 +1 3 498 496 497 499 +5 3 498 464 466 496 +5 3 499 497 467 465 +1 3 500 498 499 501 +5 3 500 461 464 498 +5 3 501 499 465 463 +1 3 502 500 501 503 +4 3 460 502 503 462 +5 3 503 501 463 462 +4 3 7 4 505 504 +1 3 4 5 506 505 +5 3 5 6 507 506 +5 3 6 7 504 507 +4 3 504 505 509 508 +1 3 505 506 510 509 +5 3 506 507 511 510 +5 3 507 504 508 511 +4 3 508 509 242 245 +1 3 509 510 243 242 +5 3 510 511 244 243 +5 3 511 508 245 244 +4 3 253 250 254 257 +1 3 250 251 255 254 +5 3 251 252 256 255 +5 3 252 253 257 256 +4 3 261 258 502 460 +1 3 258 259 500 502 +5 3 259 260 461 500 +5 3 260 261 460 461 +5 3 512 513 517 516 +5 3 513 514 518 517 +3 3 514 515 519 518 +4 3 515 512 516 519 +5 3 520 521 525 524 +5 3 521 522 526 525 +3 3 522 523 527 526 +4 3 523 520 524 527 +5 3 528 529 521 520 +5 3 529 530 522 521 +3 3 530 531 523 522 +4 3 531 528 520 523 +4 3 223 219 533 532 +5 3 219 217 534 533 +5 3 217 222 535 534 +3 3 222 223 532 535 +4 3 532 533 537 536 +5 3 533 534 538 537 +5 3 534 535 539 538 +3 3 535 532 536 539 +4 3 536 537 528 531 +5 3 537 538 529 528 +5 3 538 539 530 529 +3 3 539 536 531 530 +4 3 527 524 512 515 +5 3 524 525 513 512 +5 3 525 526 514 513 +3 3 526 527 515 514 +4 3 519 516 302 303 +5 3 516 517 298 302 +5 3 517 518 299 298 +3 3 518 519 303 299 +5 3 540 541 545 544 +2 3 541 542 546 545 +3 3 542 543 547 546 +5 3 543 540 544 547 +5 3 548 549 553 552 +2 3 549 550 554 553 +3 3 550 551 555 554 +5 3 551 548 552 555 +5 3 556 557 549 548 +2 3 557 558 550 549 +3 3 558 559 551 550 +5 3 559 556 548 551 +5 3 239 201 561 560 +5 3 201 200 562 561 +2 3 200 241 563 562 +3 3 241 239 560 563 +5 3 560 561 565 564 +5 3 561 562 566 565 +2 3 562 563 567 566 +3 3 563 560 564 567 +5 3 564 565 556 559 +5 3 565 566 557 556 +2 3 566 567 558 557 +3 3 567 564 559 558 +5 3 555 552 540 543 +5 3 552 553 541 540 +2 3 553 554 542 541 +3 3 554 555 543 542 +5 3 547 544 262 265 +5 3 544 545 263 262 +2 3 545 546 264 263 +3 3 546 547 265 264 +1 3 568 569 573 572 +2 3 569 570 574 573 +5 3 570 571 575 574 +5 3 571 568 572 575 +1 3 576 577 581 580 +2 3 577 578 582 581 +5 3 578 579 583 582 +5 3 579 576 580 583 +1 3 584 585 577 576 +2 3 585 586 578 577 +5 3 586 587 579 578 +5 3 587 584 576 579 +5 3 39 38 589 588 +1 3 38 42 590 589 +2 3 42 43 591 590 +5 3 43 39 588 591 +5 3 588 589 593 592 +1 3 589 590 594 593 +2 3 590 591 595 594 +5 3 591 588 592 595 +5 3 592 593 584 587 +1 3 593 594 585 584 +2 3 594 595 586 585 +5 3 595 592 587 586 +5 3 583 580 568 571 +1 3 580 581 569 568 +2 3 581 582 570 569 +5 3 582 583 571 570 +5 3 575 572 482 478 +1 3 572 573 483 482 +2 3 573 574 480 483 +5 3 574 575 478 480 + +vertices +596 +3 +0.0 0.0 0.0 +0.01 0.0 0.0 +0.01 0.01 0.0 +0.0 0.01 0.0 +0.0 0.0 0.01 +0.01 0.0 0.01 +0.01 0.01 0.01 +0.0 0.01 0.01 +0.02 0.0 0.0 +0.02 0.01 0.0 +0.02 0.0 0.01 +0.02 0.01 0.01 +0.03 0.0 0.0 +0.03 0.01 0.0 +0.03 0.0 0.01 +0.03 0.01 0.01 +0.04 0.0 0.0 +0.04 0.01 0.0 +0.04 0.0 0.01 +0.04 0.01 0.01 +0.05 0.0 0.0 +0.05 0.01 0.0 +0.05 0.0 0.01 +0.05 0.01 0.01 +0.06 0.0 0.0 +0.06 0.01 0.0 +0.06 0.0 0.01 +0.06 0.01 0.01 +0.07 0.0 0.0 +0.07 0.01 0.0 +0.07 0.0 0.01 +0.07 0.01 0.01 +0.08 0.0 0.0 +0.08 0.01 0.0 +0.08 0.0 0.01 +0.08 0.01 0.01 +0.09 0.0 0.0 +0.09 0.01 0.0 +0.09 0.0 0.01 +0.09 0.01 0.01 +0.1 0.0 0.0 +0.1 0.01 0.0 +0.1 0.0 0.01 +0.1 0.01 0.01 +0.1 0.02 0.0 +0.09 0.02 0.0 +0.1 0.02 0.01 +0.09 0.02 0.01 +0.08 0.02 0.0 +0.08 0.02 0.01 +0.07 0.02 0.0 +0.07 0.02 0.01 +0.06 0.02 0.0 +0.06 0.02 0.01 +0.05 0.02 0.0 +0.05 0.02 0.01 +0.04 0.02 0.0 +0.04 0.02 0.01 +0.03 0.02 0.0 +0.03 0.02 0.01 +0.02 0.02 0.0 +0.02 0.02 0.01 +0.01 0.02 0.0 +0.01 0.02 0.01 +0.0 0.02 0.0 +0.0 0.02 0.01 +0.09 0.03 0.0 +0.1 0.03 0.0 +0.1 0.04 0.0 +0.09 0.04 0.0 +0.09 0.03 0.01 +0.1 0.03 0.01 +0.1 0.04 0.01 +0.09 0.04 0.01 +0.08 0.03 0.0 +0.08 0.04 0.0 +0.08 0.03 0.01 +0.08 0.04 0.01 +0.07 0.03 0.0 +0.07 0.04 0.0 +0.07 0.03 0.01 +0.07 0.04 0.01 +0.06 0.03 0.0 +0.06 0.04 0.0 +0.06 0.03 0.01 +0.06 0.04 0.01 +0.05 0.03 0.0 +0.05 0.04 0.0 +0.05 0.03 0.01 +0.05 0.04 0.01 +0.04 0.03 0.0 +0.04 0.04 0.0 +0.04 0.03 0.01 +0.04 0.04 0.01 +0.03 0.03 0.0 +0.03 0.04 0.0 +0.03 0.03 0.01 +0.03 0.04 0.01 +0.02 0.03 0.0 +0.02 0.04 0.0 +0.02 0.03 0.01 +0.02 0.04 0.01 +0.01 0.03 0.0 +0.01 0.04 0.0 +0.01 0.03 0.01 +0.01 0.04 0.01 +0.0 0.03 0.0 +0.0 0.04 0.0 +0.0 0.03 0.01 +0.0 0.04 0.01 +0.01 0.05 0.0 +0.0 0.05 0.0 +0.01 0.05 0.01 +0.0 0.05 0.01 +0.02 0.05 0.0 +0.02 0.05 0.01 +0.03 0.05 0.0 +0.03 0.05 0.01 +0.04 0.05 0.0 +0.04 0.05 0.01 +0.05 0.05 0.0 +0.05 0.05 0.01 +0.06 0.05 0.0 +0.06 0.05 0.01 +0.07 0.05 0.0 +0.07 0.05 0.01 +0.08 0.05 0.0 +0.08 0.05 0.01 +0.09 0.05 0.0 +0.09 0.05 0.01 +0.1 0.05 0.0 +0.1 0.05 0.01 +0.01 0.06 0.0 +0.0 0.06 0.0 +0.01 0.06 0.01 +0.0 0.06 0.01 +0.02 0.06 0.0 +0.02 0.06 0.01 +0.03 0.06 0.0 +0.03 0.06 0.01 +0.04 0.06 0.0 +0.04 0.06 0.01 +0.05 0.06 0.0 +0.05 0.06 0.01 +0.06 0.06 0.0 +0.06 0.06 0.01 +0.07 0.06 0.0 +0.07 0.06 0.01 +0.08 0.06 0.0 +0.08 0.06 0.01 +0.09 0.06 0.0 +0.09 0.06 0.01 +0.1 0.06 0.0 +0.1 0.06 0.01 +0.1 0.07 0.0 +0.09 0.07 0.0 +0.1 0.07 0.01 +0.09 0.07 0.01 +0.08 0.07 0.0 +0.08 0.07 0.01 +0.07 0.07 0.0 +0.07 0.07 0.01 +0.06 0.07 0.0 +0.06 0.07 0.01 +0.05 0.07 0.0 +0.05 0.07 0.01 +0.04 0.07 0.0 +0.04 0.07 0.01 +0.03 0.07 0.0 +0.03 0.07 0.01 +0.02 0.07 0.0 +0.02 0.07 0.01 +0.01 0.07 0.0 +0.01 0.07 0.01 +0.0 0.07 0.0 +0.0 0.07 0.01 +0.01 0.08 0.0 +0.0 0.08 0.0 +0.01 0.08 0.01 +0.0 0.08 0.01 +0.02 0.08 0.0 +0.02 0.08 0.01 +0.03 0.08 0.0 +0.03 0.08 0.01 +0.04 0.08 0.0 +0.04 0.08 0.01 +0.05 0.08 0.0 +0.05 0.08 0.01 +0.06 0.08 0.0 +0.06 0.08 0.01 +0.07 0.08 0.0 +0.07 0.08 0.01 +0.08 0.08 0.0 +0.08 0.08 0.01 +0.09 0.08 0.0 +0.09 0.08 0.01 +0.1 0.08 0.0 +0.1 0.08 0.01 +0.1 0.09 0.0 +0.09 0.09 0.0 +0.1 0.09 0.01 +0.09 0.09 0.01 +0.08 0.09 0.0 +0.08 0.09 0.01 +0.07 0.09 0.0 +0.07 0.09 0.01 +0.06 0.09 0.0 +0.06 0.09 0.01 +0.05 0.09 0.0 +0.05 0.09 0.01 +0.04 0.09 0.0 +0.04 0.09 0.01 +0.03 0.09 0.0 +0.03 0.09 0.01 +0.02 0.09 0.0 +0.02 0.09 0.01 +0.01 0.09 0.0 +0.01 0.09 0.01 +0.0 0.09 0.0 +0.0 0.09 0.01 +0.01 0.1 0.0 +0.0 0.1 0.0 +0.01 0.1 0.01 +0.0 0.1 0.01 +0.02 0.1 0.0 +0.02 0.1 0.01 +0.03 0.1 0.0 +0.03 0.1 0.01 +0.04 0.1 0.0 +0.04 0.1 0.01 +0.05 0.1 0.0 +0.05 0.1 0.01 +0.06 0.1 0.0 +0.06 0.1 0.01 +0.07 0.1 0.0 +0.07 0.1 0.01 +0.08 0.1 0.0 +0.08 0.1 0.01 +0.09 0.1 0.0 +0.09 0.1 0.01 +0.1 0.1 0.0 +0.1 0.1 0.01 +0.0 0.0 0.04 +0.01 0.0 0.04 +0.01 0.01 0.04 +0.0 0.01 0.04 +0.0 0.0 0.05 +0.01 0.0 0.05 +0.01 0.01 0.05 +0.0 0.01 0.05 +0.0 0.0 0.06 +0.01 0.0 0.06 +0.01 0.01 0.06 +0.0 0.01 0.06 +0.0 0.0 0.07 +0.01 0.0 0.07 +0.01 0.01 0.07 +0.0 0.01 0.07 +0.0 0.0 0.08 +0.01 0.0 0.08 +0.01 0.01 0.08 +0.0 0.01 0.08 +0.09 0.09 0.09 +0.1 0.09 0.09 +0.1 0.1 0.09 +0.09 0.1 0.09 +0.09 0.09 0.1 +0.1 0.09 0.1 +0.1 0.1 0.1 +0.09 0.1 0.1 +0.08 0.09 0.09 +0.08 0.1 0.09 +0.08 0.09 0.1 +0.08 0.1 0.1 +0.07 0.09 0.09 +0.07 0.1 0.09 +0.07 0.09 0.1 +0.07 0.1 0.1 +0.06 0.09 0.09 +0.06 0.1 0.09 +0.06 0.09 0.1 +0.06 0.1 0.1 +0.05 0.09 0.09 +0.05 0.1 0.09 +0.05 0.09 0.1 +0.05 0.1 0.1 +0.04 0.09 0.09 +0.04 0.1 0.09 +0.04 0.09 0.1 +0.04 0.1 0.1 +0.03 0.09 0.09 +0.03 0.1 0.09 +0.03 0.09 0.1 +0.03 0.1 0.1 +0.02 0.09 0.09 +0.02 0.1 0.09 +0.02 0.09 0.1 +0.02 0.1 0.1 +0.01 0.09 0.09 +0.01 0.1 0.09 +0.01 0.09 0.1 +0.01 0.1 0.1 +0.0 0.09 0.09 +0.0 0.1 0.09 +0.0 0.09 0.1 +0.0 0.1 0.1 +0.0 0.08 0.09 +0.01 0.08 0.09 +0.0 0.08 0.1 +0.01 0.08 0.1 +0.02 0.08 0.09 +0.02 0.08 0.1 +0.03 0.08 0.09 +0.03 0.08 0.1 +0.04 0.08 0.09 +0.04 0.08 0.1 +0.05 0.08 0.09 +0.05 0.08 0.1 +0.06 0.08 0.09 +0.06 0.08 0.1 +0.07 0.08 0.09 +0.07 0.08 0.1 +0.08 0.08 0.09 +0.08 0.08 0.1 +0.09 0.08 0.09 +0.09 0.08 0.1 +0.1 0.08 0.09 +0.1 0.08 0.1 +0.09 0.07 0.09 +0.1 0.07 0.09 +0.09 0.07 0.1 +0.1 0.07 0.1 +0.08 0.07 0.09 +0.08 0.07 0.1 +0.07 0.07 0.09 +0.07 0.07 0.1 +0.06 0.07 0.09 +0.06 0.07 0.1 +0.05 0.07 0.09 +0.05 0.07 0.1 +0.04 0.07 0.09 +0.04 0.07 0.1 +0.03 0.07 0.09 +0.03 0.07 0.1 +0.02 0.07 0.09 +0.02 0.07 0.1 +0.01 0.07 0.09 +0.01 0.07 0.1 +0.0 0.07 0.09 +0.0 0.07 0.1 +0.0 0.06 0.09 +0.01 0.06 0.09 +0.0 0.06 0.1 +0.01 0.06 0.1 +0.02 0.06 0.09 +0.02 0.06 0.1 +0.03 0.06 0.09 +0.03 0.06 0.1 +0.04 0.06 0.09 +0.04 0.06 0.1 +0.05 0.06 0.09 +0.05 0.06 0.1 +0.06 0.06 0.09 +0.06 0.06 0.1 +0.07 0.06 0.09 +0.07 0.06 0.1 +0.08 0.06 0.09 +0.08 0.06 0.1 +0.09 0.06 0.09 +0.09 0.06 0.1 +0.1 0.06 0.09 +0.1 0.06 0.1 +0.09 0.05 0.09 +0.1 0.05 0.09 +0.09 0.05 0.1 +0.1 0.05 0.1 +0.08 0.05 0.09 +0.08 0.05 0.1 +0.07 0.05 0.09 +0.07 0.05 0.1 +0.06 0.05 0.09 +0.06 0.05 0.1 +0.05 0.05 0.09 +0.05 0.05 0.1 +0.04 0.05 0.09 +0.04 0.05 0.1 +0.03 0.05 0.09 +0.03 0.05 0.1 +0.02 0.05 0.09 +0.02 0.05 0.1 +0.01 0.05 0.09 +0.01 0.05 0.1 +0.0 0.05 0.09 +0.0 0.05 0.1 +0.0 0.02 0.09 +0.01 0.02 0.09 +0.01 0.03 0.09 +0.0 0.03 0.09 +0.0 0.02 0.1 +0.01 0.02 0.1 +0.01 0.03 0.1 +0.0 0.03 0.1 +0.02 0.02 0.09 +0.02 0.03 0.09 +0.02 0.02 0.1 +0.02 0.03 0.1 +0.03 0.02 0.09 +0.03 0.03 0.09 +0.03 0.02 0.1 +0.03 0.03 0.1 +0.04 0.02 0.09 +0.04 0.03 0.09 +0.04 0.02 0.1 +0.04 0.03 0.1 +0.05 0.02 0.09 +0.05 0.03 0.09 +0.05 0.02 0.1 +0.05 0.03 0.1 +0.06 0.02 0.09 +0.06 0.03 0.09 +0.06 0.02 0.1 +0.06 0.03 0.1 +0.07 0.02 0.09 +0.07 0.03 0.09 +0.07 0.02 0.1 +0.07 0.03 0.1 +0.08 0.02 0.09 +0.08 0.03 0.09 +0.08 0.02 0.1 +0.08 0.03 0.1 +0.09 0.02 0.09 +0.09 0.03 0.09 +0.09 0.02 0.1 +0.09 0.03 0.1 +0.1 0.02 0.09 +0.1 0.03 0.09 +0.1 0.02 0.1 +0.1 0.03 0.1 +0.09 0.04 0.09 +0.1 0.04 0.09 +0.09 0.04 0.1 +0.1 0.04 0.1 +0.08 0.04 0.09 +0.08 0.04 0.1 +0.07 0.04 0.09 +0.07 0.04 0.1 +0.06 0.04 0.09 +0.06 0.04 0.1 +0.05 0.04 0.09 +0.05 0.04 0.1 +0.04 0.04 0.09 +0.04 0.04 0.1 +0.03 0.04 0.09 +0.03 0.04 0.1 +0.02 0.04 0.09 +0.02 0.04 0.1 +0.01 0.04 0.09 +0.01 0.04 0.1 +0.0 0.04 0.09 +0.0 0.04 0.1 +0.0 0.01 0.09 +0.01 0.01 0.09 +0.0 0.01 0.1 +0.01 0.01 0.1 +0.02 0.01 0.09 +0.02 0.01 0.1 +0.03 0.01 0.09 +0.03 0.01 0.1 +0.04 0.01 0.09 +0.04 0.01 0.1 +0.05 0.01 0.09 +0.05 0.01 0.1 +0.06 0.01 0.09 +0.06 0.01 0.1 +0.07 0.01 0.09 +0.07 0.01 0.1 +0.08 0.01 0.09 +0.08 0.01 0.1 +0.09 0.01 0.09 +0.09 0.01 0.1 +0.1 0.01 0.09 +0.1 0.01 0.1 +0.09 0.0 0.09 +0.1 0.0 0.09 +0.09 0.0 0.1 +0.1 0.0 0.1 +0.08 0.0 0.09 +0.08 0.0 0.1 +0.07 0.0 0.09 +0.07 0.0 0.1 +0.06 0.0 0.09 +0.06 0.0 0.1 +0.05 0.0 0.09 +0.05 0.0 0.1 +0.04 0.0 0.09 +0.04 0.0 0.1 +0.03 0.0 0.09 +0.03 0.0 0.1 +0.02 0.0 0.09 +0.02 0.0 0.1 +0.01 0.0 0.09 +0.01 0.0 0.1 +0.0 0.0 0.09 +0.0 0.0 0.1 +0.0 0.01 0.02 +0.0 0.0 0.02 +0.01 0.0 0.02 +0.01 0.01 0.02 +0.0 0.01 0.03 +0.0 0.0 0.03 +0.01 0.0 0.03 +0.01 0.01 0.03 +0.0 0.09 0.07 +0.01 0.09 0.07 +0.01 0.1 0.07 +0.0 0.1 0.07 +0.0 0.09 0.08 +0.01 0.09 0.08 +0.01 0.1 0.08 +0.0 0.1 0.08 +0.0 0.09 0.05 +0.01 0.09 0.05 +0.01 0.1 0.05 +0.0 0.1 0.05 +0.0 0.09 0.06 +0.01 0.09 0.06 +0.01 0.1 0.06 +0.0 0.1 0.06 +0.0 0.09 0.04 +0.01 0.09 0.04 +0.01 0.1 0.04 +0.0 0.1 0.04 +0.0 0.1 0.02 +0.0 0.09 0.02 +0.01 0.09 0.02 +0.01 0.1 0.02 +0.0 0.1 0.03 +0.0 0.09 0.03 +0.01 0.09 0.03 +0.01 0.1 0.03 +0.09 0.09 0.07 +0.1 0.09 0.07 +0.1 0.1 0.07 +0.09 0.1 0.07 +0.09 0.09 0.08 +0.1 0.09 0.08 +0.1 0.1 0.08 +0.09 0.1 0.08 +0.09 0.09 0.05 +0.1 0.09 0.05 +0.1 0.1 0.05 +0.09 0.1 0.05 +0.09 0.09 0.06 +0.1 0.09 0.06 +0.1 0.1 0.06 +0.09 0.1 0.06 +0.09 0.09 0.04 +0.1 0.09 0.04 +0.1 0.1 0.04 +0.09 0.1 0.04 +0.09 0.1 0.02 +0.09 0.09 0.02 +0.1 0.09 0.02 +0.1 0.1 0.02 +0.09 0.1 0.03 +0.09 0.09 0.03 +0.1 0.09 0.03 +0.1 0.1 0.03 +0.09 -0.0 0.07 +0.1 -0.0 0.07 +0.1 0.01 0.07 +0.09 0.01 0.07 +0.09 -0.0 0.08 +0.1 -0.0 0.08 +0.1 0.01 0.08 +0.09 0.01 0.08 +0.09 -0.0 0.05 +0.1 -0.0 0.05 +0.1 0.01 0.05 +0.09 0.01 0.05 +0.09 -0.0 0.06 +0.1 -0.0 0.06 +0.1 0.01 0.06 +0.09 0.01 0.06 +0.09 -0.0 0.04 +0.1 -0.0 0.04 +0.1 0.01 0.04 +0.09 0.01 0.04 +0.09 0.01 0.02 +0.09 0.0 0.02 +0.1 -0.0 0.02 +0.1 0.01 0.02 +0.09 0.01 0.03 +0.09 0.0 0.03 +0.1 -0.0 0.03 +0.1 0.01 0.03 diff --git a/examples/linelast/meshes/octet_truss.mesh b/examples/linelast/meshes/octet_truss.mesh new file mode 100644 index 00000000..971ac31e --- /dev/null +++ b/examples/linelast/meshes/octet_truss.mesh @@ -0,0 +1,3568 @@ +MFEM mesh v1.0 +# +# MFEM Geometry Types (see mesh/geom.hpp): +# POINT = 0 +# SEGMENT = 1 +# TRIANGLE = 2 +# SQUARE = 3 +# TETRAHEDRON = 4 +# CUBE = 5 + +dimension +3 + +elements +1704 +1 4 267 259 268 273 +1 4 311 351 303 305 +1 4 14 55 16 8 +1 4 155 159 154 166 +1 4 228 133 121 227 +1 4 265 253 266 71 +1 4 262 260 259 273 +1 4 24 25 26 38 +1 4 456 441 452 450 +1 4 492 493 483 573 +1 4 333 342 323 345 +1 4 327 318 314 336 +1 4 135 104 138 93 +1 4 84 273 260 72 +1 4 36 17 13 26 +1 4 466 465 464 461 +1 4 337 338 325 328 +1 4 148 104 103 107 +1 4 59 51 52 58 +1 4 352 351 354 358 +1 4 335 345 319 324 +1 4 354 465 308 541 +1 4 132 527 242 584 +1 4 532 537 566 352 +1 4 444 341 443 330 +1 4 251 269 258 255 +1 4 339 376 318 354 +1 4 455 450 445 453 +1 4 42 153 29 31 +1 4 447 328 448 338 +1 4 306 314 317 358 +1 4 474 490 499 479 +1 4 81 264 265 70 +1 4 312 335 319 324 +1 4 309 305 317 353 +1 4 553 551 557 554 +1 4 337 338 328 447 +1 4 445 443 442 455 +1 4 321 323 320 344 +1 4 115 114 124 137 +1 4 324 345 319 333 +1 4 532 529 561 531 +1 4 373 363 384 364 +1 4 58 77 61 66 +1 4 397 420 427 127 +1 4 383 381 374 373 +1 4 442 450 445 455 +1 4 446 450 445 441 +1 4 562 534 561 563 +1 4 382 357 51 86 +1 4 310 336 440 329 +1 4 333 324 323 319 +1 4 341 453 451 455 +1 4 354 352 308 463 +1 4 306 358 317 351 +1 4 358 353 317 351 +1 4 380 361 383 360 +1 4 78 92 86 382 +1 4 12 58 15 11 +1 4 341 332 320 322 +1 4 376 378 367 369 +1 4 370 544 368 377 +1 4 561 540 566 532 +1 4 86 91 89 92 +1 4 438 433 400 434 +1 4 20 24 37 27 +1 4 315 356 316 312 +1 4 364 373 359 384 +1 4 534 531 529 530 +1 4 305 314 307 310 +1 4 124 111 125 136 +1 4 36 26 13 28 +1 4 51 2 12 59 +1 4 463 465 308 354 +1 4 438 454 162 439 +1 4 86 385 89 51 +1 4 142 439 164 454 +1 4 320 321 344 341 +1 4 105 109 118 128 +1 4 206 214 213 215 +1 4 293 289 300 288 +1 4 246 252 251 243 +1 4 137 114 124 134 +1 4 128 130 118 120 +1 4 322 337 325 321 +1 4 339 376 354 541 +1 4 224 120 233 128 +1 4 523 526 520 515 +1 4 341 330 455 443 +1 4 330 328 443 337 +1 4 352 358 306 351 +1 4 129 113 116 112 +1 4 148 147 166 164 +1 4 444 332 442 341 +1 4 171 218 181 169 +1 4 346 302 313 343 +1 4 440 392 399 307 +1 4 88 87 85 65 +1 4 84 62 74 76 +1 4 321 328 330 337 +1 4 231 233 232 130 +1 4 13 9 6 60 +1 4 105 98 108 149 +1 4 234 226 229 240 +1 4 219 220 172 183 +1 4 313 2 357 316 +1 4 25 13 26 28 +1 4 292 283 203 257 +1 4 238 241 234 236 +1 4 112 136 133 111 +1 4 514 415 416 417 +1 4 133 228 121 123 +1 4 99 9 7 6 +1 4 95 388 398 439 +1 4 12 59 15 58 +1 4 341 332 334 320 +1 4 38 37 24 27 +1 4 111 112 113 123 +1 4 82 89 90 585 +1 4 366 358 367 369 +1 4 133 240 121 227 +1 4 114 110 124 111 +1 4 321 337 325 328 +1 4 242 527 141 584 +1 4 384 356 357 382 +1 4 56 39 7 257 +1 4 81 264 266 265 +1 4 201 178 202 182 +1 4 376 318 354 358 +1 4 306 305 303 351 +1 4 357 355 350 356 +1 4 316 356 357 313 +1 4 281 255 282 252 +1 4 373 381 375 384 +1 4 490 497 499 467 +1 4 251 252 281 243 +1 4 272 255 251 252 +1 4 393 399 391 392 +1 4 199 189 190 185 +1 4 421 395 414 510 +1 4 551 546 557 554 +1 4 201 190 178 185 +1 4 85 77 75 76 +1 4 101 99 105 9 +1 4 467 471 490 202 +1 4 58 77 15 61 +1 4 497 210 468 202 +1 4 199 212 190 189 +1 4 169 221 181 177 +1 4 251 255 281 252 +1 4 95 132 93 388 +1 4 211 212 209 189 +1 4 278 244 280 277 +1 4 244 246 277 243 +1 4 509 217 524 239 +1 4 252 536 243 272 +1 4 192 194 205 191 +1 4 315 302 349 356 +1 4 411 406 410 413 +1 4 121 123 122 113 +1 4 245 276 559 565 +1 4 197 196 287 198 +1 4 15 58 14 11 +1 4 343 345 312 313 +1 4 360 380 374 383 +1 4 374 381 375 373 +1 4 344 342 323 333 +1 4 169 218 181 221 +1 4 492 480 476 483 +1 4 293 288 299 285 +1 4 432 430 141 584 +1 4 222 181 182 178 +1 4 376 537 369 354 +1 4 444 341 442 443 +1 4 335 333 319 345 +1 4 341 443 455 442 +1 4 433 457 439 454 +1 4 459 504 505 507 +1 4 537 531 352 532 +1 4 399 411 412 414 +1 4 394 402 400 436 +1 4 167 457 164 50 +1 4 143 96 93 94 +1 4 349 382 51 385 +1 4 355 315 356 353 +1 4 534 354 533 531 +1 4 525 526 523 515 +1 4 444 332 330 331 +1 4 341 332 330 444 +1 4 330 337 443 444 +1 4 390 434 389 400 +1 4 331 337 330 444 +1 4 551 546 554 556 +1 4 34 43 46 32 +1 4 330 332 322 331 +1 4 562 531 561 534 +1 4 337 331 330 322 +1 4 330 337 322 321 +1 4 448 328 326 338 +1 4 456 453 445 450 +1 4 330 341 322 332 +1 4 321 341 322 330 +1 4 456 450 445 446 +1 4 341 321 344 330 +1 4 443 337 447 444 +1 4 22 19 18 32 +1 4 443 448 447 328 +1 4 328 337 447 443 +1 4 467 497 499 468 +1 4 426 425 419 428 +1 4 321 341 320 322 +1 4 394 437 391 436 +1 4 455 450 453 451 +1 4 34 44 35 15 +1 4 313 356 349 302 +1 4 155 161 166 147 +1 4 162 50 164 454 +1 4 400 396 389 390 +1 4 551 546 556 543 +1 4 446 441 438 452 +1 4 442 332 451 341 +1 4 456 450 446 441 +1 4 562 534 533 531 +1 4 455 442 451 341 +1 4 450 442 451 455 +1 4 320 333 334 344 +1 4 344 341 334 320 +1 4 333 342 334 344 +1 4 51 58 14 52 +1 4 342 341 334 344 +1 4 454 456 439 438 +1 4 43 32 34 33 +1 4 12 2 15 59 +1 4 146 102 100 106 +1 4 336 449 403 440 +1 4 440 392 307 435 +1 4 455 456 453 445 +1 4 452 456 438 446 +1 4 160 159 161 163 +1 4 417 512 514 425 +1 4 513 518 517 413 +1 4 453 450 452 451 +1 4 450 453 452 456 +1 4 446 441 452 456 +1 4 391 402 394 436 +1 4 438 452 454 456 +1 4 0 44 47 12 +1 4 563 534 561 529 +1 4 453 454 452 456 +1 4 469 481 482 484 +1 4 107 127 95 104 +1 4 439 438 434 433 +1 4 308 463 395 465 +1 4 354 310 308 352 +1 4 442 441 445 450 +1 4 396 391 389 390 +1 4 318 317 314 358 +1 4 402 392 440 435 +1 4 412 411 410 423 +1 4 373 381 384 363 +1 4 378 366 365 367 +1 4 531 537 352 354 +1 4 333 345 323 324 +1 4 274 269 267 258 +1 4 436 440 435 402 +1 4 325 338 326 328 +1 4 469 465 395 463 +1 4 307 310 314 358 +1 4 139 131 242 584 +1 4 449 329 440 336 +1 4 333 320 323 344 +1 4 537 549 550 369 +1 4 354 318 308 310 +1 4 448 338 449 447 +1 4 338 336 327 329 +1 4 440 435 307 310 +1 4 329 338 449 448 +1 4 448 440 449 329 +1 4 310 336 314 318 +1 4 488 499 478 479 +1 4 310 318 314 358 +1 4 314 305 307 306 +1 4 306 351 317 305 +1 4 305 351 317 353 +1 4 336 329 314 327 +1 4 310 329 314 336 +1 4 380 381 374 383 +1 4 302 346 0 343 +1 4 23 34 18 11 +1 4 304 302 303 350 +1 4 345 344 342 323 +1 4 319 320 323 333 +1 4 78 58 15 59 +1 4 335 345 324 312 +1 4 382 349 51 357 +1 4 312 311 315 304 +1 4 60 79 56 71 +1 4 0 58 14 51 +1 4 349 2 357 313 +1 4 371 377 370 362 +1 4 46 32 18 34 +1 4 315 356 349 350 +1 4 303 302 349 350 +1 4 313 311 312 304 +1 4 313 302 312 356 +1 4 304 302 312 313 +1 4 359 364 375 356 +1 4 360 383 374 373 +1 4 156 153 37 152 +1 4 292 195 203 283 +1 4 61 77 75 88 +1 4 334 333 335 342 +1 4 302 2 349 313 +1 4 386 379 558 585 +1 4 77 58 88 66 +1 4 329 328 326 448 +1 4 350 302 349 315 +1 4 345 342 335 333 +1 4 348 457 49 50 +1 4 394 437 400 396 +1 4 159 165 163 160 +1 4 454 457 142 433 +1 4 14 52 1 3 +1 4 312 343 335 345 +1 4 343 342 335 345 +1 4 380 545 370 372 +1 4 329 338 326 327 +1 4 326 321 325 328 +1 4 448 338 326 329 +1 4 327 338 326 325 +1 4 102 146 97 94 +1 4 310 358 354 318 +1 4 295 255 298 281 +1 4 383 384 381 363 +1 4 311 355 351 353 +1 4 311 355 353 315 +1 4 311 305 353 351 +1 4 309 305 353 311 +1 4 314 358 306 307 +1 4 376 541 550 537 +1 4 353 309 315 317 +1 4 369 366 368 549 +1 4 563 529 561 560 +1 4 352 307 306 358 +1 4 307 358 352 310 +1 4 352 358 354 310 +1 4 377 544 548 545 +1 4 367 318 376 358 +1 4 464 467 466 470 +1 4 537 541 354 376 +1 4 369 376 550 537 +1 4 376 378 369 550 +1 4 372 543 552 380 +1 4 368 544 548 377 +1 4 568 567 571 576 +1 4 384 356 382 375 +1 4 32 19 45 22 +1 4 311 309 315 353 +1 4 355 315 350 356 +1 4 350 351 303 355 +1 4 355 303 315 311 +1 4 48 40 167 49 +1 4 276 298 565 282 +1 4 354 358 369 376 +1 4 555 528 558 536 +1 4 376 358 369 367 +1 4 349 356 357 350 +1 4 372 380 374 360 +1 4 314 326 327 329 +1 4 86 385 51 382 +1 4 305 314 310 309 +1 4 311 310 309 305 +1 4 378 368 365 366 +1 4 368 366 378 549 +1 4 378 549 548 368 +1 4 319 312 316 335 +1 4 362 361 365 377 +1 4 58 86 88 59 +1 4 543 544 380 545 +1 4 362 372 370 371 +1 4 384 364 375 359 +1 4 543 542 551 546 +1 4 543 545 380 372 +1 4 549 544 548 368 +1 4 549 366 378 369 +1 4 543 552 556 551 +1 4 500 213 216 215 +1 4 131 132 242 584 +1 4 361 372 370 362 +1 4 380 544 370 545 +1 4 371 372 370 545 +1 4 363 361 360 383 +1 4 372 361 370 380 +1 4 361 370 368 377 +1 4 361 380 383 370 +1 4 313 44 0 12 +1 4 74 84 63 62 +1 4 482 493 481 480 +1 4 370 544 377 545 +1 4 377 371 370 545 +1 4 362 361 377 370 +1 4 555 554 553 557 +1 4 552 543 556 380 +1 4 74 62 63 64 +1 4 362 372 360 361 +1 4 359 373 375 384 +1 4 369 550 378 549 +1 4 361 372 360 380 +1 4 378 550 548 549 +1 4 369 366 378 367 +1 4 378 377 368 548 +1 4 384 356 375 364 +1 4 368 377 365 361 +1 4 361 366 365 368 +1 4 552 551 554 556 +1 4 383 381 373 363 +1 4 383 363 373 360 +1 4 269 263 258 274 +1 4 138 139 140 584 +1 4 243 536 245 528 +1 4 565 276 580 298 +1 4 544 546 543 556 +1 4 543 544 556 380 +1 4 557 553 547 542 +1 4 536 530 535 528 +1 4 370 380 556 544 +1 4 552 551 553 554 +1 4 357 349 51 2 +1 4 553 542 557 551 +1 4 557 556 554 546 +1 4 491 465 469 484 +1 4 234 238 235 240 +1 4 312 356 316 313 +1 4 580 296 578 564 +1 4 180 184 203 176 +1 4 305 304 303 311 +1 4 551 546 547 557 +1 4 551 542 547 546 +1 4 557 542 547 551 +1 4 547 553 535 542 +1 4 555 557 535 536 +1 4 282 255 245 252 +1 4 536 534 535 530 +1 4 555 553 535 557 +1 4 547 557 535 553 +1 4 564 296 578 539 +1 4 567 564 578 539 +1 4 572 564 578 567 +1 4 251 249 250 254 +1 4 272 269 251 255 +1 4 81 79 69 71 +1 4 349 385 357 382 +1 4 86 357 59 78 +1 4 304 302 315 312 +1 4 51 2 59 357 +1 4 312 302 315 356 +1 4 51 52 14 0 +1 4 313 356 357 349 +1 4 302 304 315 350 +1 4 354 351 353 358 +1 4 272 269 274 251 +1 4 271 269 267 274 +1 4 303 350 315 304 +1 4 303 304 315 311 +1 4 60 53 55 56 +1 4 22 32 18 23 +1 4 363 373 359 364 +1 4 363 360 359 373 +1 4 49 457 167 50 +1 4 97 98 94 144 +1 4 11 8 10 14 +1 4 381 382 375 384 +1 4 86 85 77 88 +1 4 375 356 316 359 +1 4 60 9 56 17 +1 4 72 84 63 74 +1 4 357 86 59 51 +1 4 74 64 63 72 +1 4 77 66 88 61 +1 4 84 87 63 62 +1 4 78 86 77 58 +1 4 152 27 37 156 +1 4 86 51 89 59 +1 4 84 259 260 273 +1 4 78 357 59 2 +1 4 47 346 41 49 +1 4 86 78 59 58 +1 4 86 357 78 382 +1 4 316 375 78 356 +1 4 382 356 78 375 +1 4 2 302 0 313 +1 4 357 2 78 316 +1 4 357 316 78 356 +1 4 357 356 78 382 +1 4 16 53 4 55 +1 4 92 270 272 555 +1 4 77 86 88 58 +1 4 295 255 281 284 +1 4 382 385 92 86 +1 4 281 243 276 254 +1 4 41 49 40 47 +1 4 555 387 558 92 +1 4 75 76 87 85 +1 4 271 269 268 267 +1 4 267 271 262 273 +1 4 59 57 58 52 +1 4 260 264 80 70 +1 4 36 28 149 158 +1 4 60 54 6 5 +1 4 192 180 193 195 +1 4 89 86 92 385 +1 4 263 251 274 269 +1 4 485 492 477 476 +1 4 106 142 93 147 +1 4 147 161 166 164 +1 4 151 42 165 160 +1 4 58 78 15 77 +1 4 52 57 1 53 +1 4 34 44 15 11 +1 4 55 58 57 14 +1 4 0 52 1 51 +1 4 272 255 270 269 +1 4 258 263 267 274 +1 4 8 55 4 10 +1 4 295 289 281 300 +1 4 146 102 97 100 +1 4 379 349 83 385 +1 4 528 379 83 558 +1 4 101 128 105 120 +1 4 82 243 83 275 +1 4 89 385 83 51 +1 4 51 385 83 349 +1 4 239 140 242 141 +1 4 555 536 270 272 +1 4 555 553 270 535 +1 4 272 536 270 252 +1 4 252 255 270 272 +1 4 536 555 270 535 +1 4 272 275 243 252 +1 4 555 536 243 528 +1 4 272 536 243 555 +1 4 336 339 310 403 +1 4 83 558 243 528 +1 4 275 558 243 83 +1 4 245 207 559 276 +1 4 272 558 243 275 +1 4 555 558 243 272 +1 4 555 528 243 558 +1 4 71 79 253 266 +1 4 267 263 262 274 +1 4 278 250 280 244 +1 4 287 204 290 286 +1 4 36 9 149 28 +1 4 224 99 173 219 +1 4 263 269 258 251 +1 4 285 288 284 293 +1 4 271 272 269 274 +1 4 75 66 65 61 +1 4 85 88 75 77 +1 4 252 272 274 251 +1 4 0 346 47 44 +1 4 273 274 271 262 +1 4 265 70 68 81 +1 4 387 382 385 92 +1 4 275 558 92 272 +1 4 272 558 92 555 +1 4 50 346 47 49 +1 4 260 265 264 70 +1 4 10 55 4 53 +1 4 54 247 56 253 +1 4 88 66 75 61 +1 4 273 271 268 267 +1 4 151 152 165 42 +1 4 265 81 68 71 +1 4 81 70 68 67 +1 4 85 84 76 87 +1 4 81 69 68 71 +1 4 211 209 200 199 +1 4 54 9 56 60 +1 4 273 259 262 267 +1 4 123 133 228 226 +1 4 50 457 164 454 +1 4 267 259 262 258 +1 4 298 276 580 583 +1 4 84 72 63 87 +1 4 63 65 62 87 +1 4 75 76 62 87 +1 4 284 289 281 295 +1 4 80 67 63 70 +1 4 84 271 268 273 +1 4 62 76 84 87 +1 4 268 259 84 273 +1 4 80 81 67 70 +1 4 466 467 460 470 +1 4 204 286 287 196 +1 4 293 288 284 289 +1 4 80 64 63 67 +1 4 70 72 80 260 +1 4 177 179 178 171 +1 4 260 74 259 84 +1 4 524 432 141 527 +1 4 260 264 261 80 +1 4 80 72 63 64 +1 4 80 70 63 72 +1 4 73 80 64 72 +1 4 72 260 261 80 +1 4 72 73 74 64 +1 4 268 259 74 84 +1 4 261 73 74 72 +1 4 74 260 259 261 +1 4 72 260 74 261 +1 4 72 84 74 260 +1 4 267 274 262 271 +1 4 252 255 245 270 +1 4 565 296 580 564 +1 4 502 215 216 583 +1 4 174 54 248 7 +1 4 253 71 56 79 +1 4 267 258 262 263 +1 4 266 265 71 81 +1 4 21 24 37 20 +1 4 52 0 1 3 +1 4 75 88 65 66 +1 4 87 75 65 62 +1 4 249 279 247 250 +1 4 462 459 505 461 +1 4 221 220 172 219 +1 4 60 17 56 79 +1 4 69 79 60 71 +1 4 85 75 65 87 +1 4 146 145 97 144 +1 4 69 17 60 79 +1 4 176 283 278 174 +1 4 186 208 200 211 +1 4 400 437 438 434 +1 4 254 243 277 246 +1 4 62 75 65 61 +1 4 28 9 13 36 +1 4 240 226 133 235 +1 4 101 184 7 39 +1 4 71 70 68 265 +1 4 173 219 169 172 +1 4 227 226 133 240 +1 4 174 283 278 248 +1 4 279 281 280 254 +1 4 117 105 118 120 +1 4 68 63 67 70 +1 4 355 311 351 303 +1 4 439 148 164 162 +1 4 85 88 65 75 +1 4 457 348 49 347 +1 4 14 52 3 0 +1 4 81 67 68 69 +1 4 24 25 38 27 +1 4 36 9 13 17 +1 4 60 53 5 16 +1 4 31 151 42 153 +1 4 424 132 430 584 +1 4 43 44 34 46 +1 4 20 19 45 42 +1 4 10 53 4 1 +1 4 157 156 158 38 +1 4 10 1 4 3 +1 4 22 32 46 43 +1 4 347 457 41 49 +1 4 46 34 18 23 +1 4 42 152 165 29 +1 4 21 30 31 29 +1 4 346 340 41 347 +1 4 150 151 154 159 +1 4 166 165 163 154 +1 4 57 56 55 53 +1 4 42 19 45 33 +1 4 50 44 47 346 +1 4 45 22 43 32 +1 4 42 19 33 31 +1 4 165 160 159 151 +1 4 439 454 142 433 +1 4 152 153 42 151 +1 4 454 438 162 452 +1 4 32 33 45 19 +1 4 116 117 130 119 +1 4 167 148 164 142 +1 4 148 439 164 142 +1 4 157 25 28 27 +1 4 31 151 160 42 +1 4 37 153 29 152 +1 4 12 11 15 44 +1 4 29 20 42 31 +1 4 37 152 29 27 +1 4 37 27 29 20 +1 4 37 30 21 29 +1 4 37 20 29 21 +1 4 29 20 31 21 +1 4 30 153 31 29 +1 4 58 51 12 59 +1 4 153 42 29 152 +1 4 12 51 0 2 +1 4 31 20 19 21 +1 4 20 31 19 42 +1 4 40 49 48 47 +1 4 152 154 151 165 +1 4 29 20 45 42 +1 4 20 25 24 27 +1 4 22 20 19 45 +1 4 142 40 41 167 +1 4 42 43 33 45 +1 4 346 348 49 50 +1 4 46 22 23 32 +1 4 164 49 167 50 +1 4 32 33 43 45 +1 4 0 11 14 58 +1 4 343 348 346 50 +1 4 53 60 54 56 +1 4 0 11 3 14 +1 4 343 44 50 346 +1 4 346 347 41 49 +1 4 343 346 0 44 +1 4 340 433 41 457 +1 4 347 348 49 346 +1 4 166 161 150 159 +1 4 2 313 0 12 +1 4 159 165 154 163 +1 4 347 340 41 457 +1 4 582 564 580 578 +1 4 34 11 23 46 +1 4 59 2 15 78 +1 4 11 34 18 15 +1 4 23 32 18 46 +1 4 97 100 101 105 +1 4 343 44 0 313 +1 4 313 302 0 343 +1 4 12 44 46 11 +1 4 14 57 1 52 +1 4 34 11 46 44 +1 4 58 51 0 12 +1 4 12 11 0 58 +1 4 2 83 349 51 +1 4 2 41 0 302 +1 4 50 35 44 343 +1 4 316 15 2 78 +1 4 313 44 35 343 +1 4 312 335 35 316 +1 4 312 343 35 335 +1 4 316 2 35 313 +1 4 12 44 35 313 +1 4 15 44 35 12 +1 4 313 312 35 316 +1 4 313 343 35 312 +1 4 12 2 35 15 +1 4 12 313 35 2 +1 4 16 17 13 60 +1 4 529 534 561 531 +1 4 0 12 3 11 +1 4 16 55 4 8 +1 4 2 303 302 349 +1 4 17 9 13 60 +1 4 161 159 166 163 +1 4 1 14 10 57 +1 4 3 14 10 1 +1 4 1 57 10 53 +1 4 14 8 10 55 +1 4 14 55 10 57 +1 4 45 46 43 22 +1 4 55 53 10 57 +1 4 175 183 172 220 +1 4 47 0 41 346 +1 4 40 0 41 47 +1 4 439 438 401 162 +1 4 429 397 409 420 +1 4 501 215 583 207 +1 4 302 346 41 0 +1 4 162 454 164 439 +1 4 40 41 167 49 +1 4 457 49 167 41 +1 4 41 457 142 167 +1 4 41 433 142 457 +1 4 433 95 41 142 +1 4 401 107 95 162 +1 4 104 127 135 103 +1 4 16 60 13 5 +1 4 13 4 6 9 +1 4 401 420 397 127 +1 4 28 157 158 38 +1 4 386 385 379 585 +1 4 93 96 103 104 +1 4 104 102 96 103 +1 4 159 151 154 165 +1 4 38 27 157 156 +1 4 107 106 103 147 +1 4 232 227 231 119 +1 4 166 159 154 163 +1 4 142 454 164 457 +1 4 142 457 164 167 +1 4 146 145 106 100 +1 4 105 100 108 97 +1 4 157 152 156 27 +1 4 107 147 103 148 +1 4 147 161 150 155 +1 4 155 161 150 166 +1 4 166 159 150 155 +1 4 147 148 143 142 +1 4 175 220 181 183 +1 4 148 146 147 143 +1 4 25 27 157 38 +1 4 119 117 232 120 +1 4 56 79 257 253 +1 4 97 98 108 105 +1 4 159 155 154 150 +1 4 247 279 278 250 +1 4 36 38 26 28 +1 4 4 9 8 10 +1 4 60 68 69 71 +1 4 58 57 14 52 +1 4 5 1 4 53 +1 4 394 397 396 400 +1 4 224 128 184 101 +1 4 99 98 97 105 +1 4 158 109 149 36 +1 4 146 9 145 144 +1 4 488 498 478 496 +1 4 282 280 281 277 +1 4 224 220 219 183 +1 4 38 25 28 157 +1 4 26 25 28 38 +1 4 8 13 4 16 +1 4 118 120 130 117 +1 4 94 142 93 143 +1 4 60 9 6 54 +1 4 97 145 100 108 +1 4 145 147 146 106 +1 4 5 4 6 13 +1 4 60 5 6 13 +1 4 79 39 17 56 +1 4 97 146 100 145 +1 4 5 53 4 16 +1 4 149 157 158 28 +1 4 4 16 13 5 +1 4 36 109 149 9 +1 4 256 247 278 248 +1 4 7 56 174 54 +1 4 462 461 505 472 +1 4 140 141 138 584 +1 4 144 149 6 9 +1 4 184 101 180 224 +1 4 176 172 180 174 +1 4 294 293 295 297 +1 4 164 147 107 148 +1 4 224 232 233 120 +1 4 298 297 295 300 +1 4 149 109 105 9 +1 4 56 253 283 54 +1 4 128 120 101 224 +1 4 39 36 17 9 +1 4 227 228 231 129 +1 4 180 176 203 195 +1 4 108 109 105 149 +1 4 79 266 257 253 +1 4 145 144 108 97 +1 4 148 147 93 142 +1 4 401 438 397 400 +1 4 230 225 236 222 +1 4 101 109 105 128 +1 4 101 9 105 109 +1 4 6 98 105 149 +1 4 99 98 105 6 +1 4 99 6 105 9 +1 4 149 9 105 6 +1 4 172 183 173 219 +1 4 219 183 173 224 +1 4 183 184 180 224 +1 4 176 56 174 7 +1 4 6 98 7 99 +1 4 101 224 219 99 +1 4 225 222 182 236 +1 4 223 241 239 222 +1 4 238 241 229 234 +1 4 162 161 107 164 +1 4 105 128 118 120 +1 4 97 144 108 98 +1 4 101 99 97 105 +1 4 306 352 308 307 +1 4 149 144 6 98 +1 4 144 143 94 146 +1 4 144 149 9 145 +1 4 93 106 103 96 +1 4 102 106 96 103 +1 4 203 205 193 195 +1 4 283 56 174 176 +1 4 257 253 283 56 +1 4 401 162 95 439 +1 4 144 146 94 97 +1 4 388 400 397 438 +1 4 140 242 141 584 +1 4 96 97 94 102 +1 4 107 104 103 127 +1 4 145 108 106 100 +1 4 147 146 106 143 +1 4 102 94 106 146 +1 4 432 141 527 584 +1 4 397 127 398 401 +1 4 94 143 106 146 +1 4 96 143 106 94 +1 4 433 439 95 142 +1 4 142 147 106 143 +1 4 106 96 93 143 +1 4 106 143 93 142 +1 4 150 147 107 161 +1 4 388 439 95 433 +1 4 164 161 107 147 +1 4 164 148 107 162 +1 4 103 137 135 104 +1 4 293 288 297 299 +1 4 147 106 103 93 +1 4 148 93 103 104 +1 4 148 147 103 93 +1 4 397 401 398 439 +1 4 437 396 391 389 +1 4 135 127 126 103 +1 4 115 110 126 137 +1 4 437 389 400 396 +1 4 291 192 205 195 +1 4 126 110 124 137 +1 4 103 110 126 115 +1 4 107 110 126 103 +1 4 103 127 126 107 +1 4 135 103 126 137 +1 4 115 137 126 103 +1 4 193 195 205 192 +1 4 204 194 286 196 +1 4 223 222 182 178 +1 4 239 223 217 242 +1 4 525 415 513 425 +1 4 282 298 301 276 +1 4 205 292 290 291 +1 4 179 178 168 223 +1 4 219 221 169 172 +1 4 499 474 488 490 +1 4 126 137 124 134 +1 4 308 310 339 403 +1 4 239 238 236 241 +1 4 239 241 236 222 +1 4 39 128 109 101 +1 4 222 241 236 230 +1 4 230 225 229 234 +1 4 234 241 229 230 +1 4 237 522 524 508 +1 4 178 212 190 201 +1 4 134 135 126 137 +1 4 223 221 222 218 +1 4 219 218 169 221 +1 4 171 178 168 179 +1 4 230 241 236 225 +1 4 459 460 504 470 +1 4 525 523 520 515 +1 4 535 536 539 270 +1 4 185 212 190 199 +1 4 200 209 201 199 +1 4 458 497 500 168 +1 4 222 218 217 223 +1 4 579 580 578 582 +1 4 502 580 583 216 +1 4 137 110 124 115 +1 4 123 112 121 133 +1 4 111 136 124 114 +1 4 387 558 92 585 +1 4 134 114 124 136 +1 4 125 111 133 136 +1 4 115 110 124 114 +1 4 236 241 234 225 +1 4 225 241 234 230 +1 4 429 408 418 409 +1 4 113 112 121 123 +1 4 236 238 235 234 +1 4 136 137 134 114 +1 4 227 229 226 240 +1 4 134 126 125 124 +1 4 240 226 235 234 +1 4 238 133 235 240 +1 4 133 226 123 235 +1 4 130 117 232 119 +1 4 130 233 232 120 +1 4 130 119 232 231 +1 4 124 136 125 134 +1 4 133 112 121 136 +1 4 112 133 123 111 +1 4 125 111 123 133 +1 4 83 379 385 585 +1 4 429 409 418 404 +1 4 227 226 228 133 +1 4 187 191 188 204 +1 4 228 123 122 121 +1 4 118 117 130 116 +1 4 424 503 132 527 +1 4 234 225 229 226 +1 4 175 220 172 221 +1 4 175 221 172 177 +1 4 240 238 229 234 +1 4 119 227 129 121 +1 4 121 112 129 119 +1 4 129 122 113 121 +1 4 121 227 129 228 +1 4 121 113 129 112 +1 4 112 119 116 129 +1 4 112 117 116 119 +1 4 114 112 111 136 +1 4 129 119 231 227 +1 4 130 129 116 119 +1 4 130 120 232 117 +1 4 178 185 182 201 +1 4 276 206 207 301 +1 4 499 479 488 474 +1 4 199 212 201 185 +1 4 248 283 278 256 +1 4 572 567 578 582 +1 4 270 536 245 252 +1 4 199 209 201 212 +1 4 199 189 185 186 +1 4 198 196 287 286 +1 4 101 9 7 99 +1 4 56 54 7 9 +1 4 283 54 174 56 +1 4 176 101 180 184 +1 4 195 194 291 192 +1 4 54 5 7 6 +1 4 109 9 7 101 +1 4 39 9 7 109 +1 4 233 128 184 224 +1 4 7 101 176 184 +1 4 176 175 172 177 +1 4 109 101 7 39 +1 4 6 9 7 54 +1 4 276 281 277 282 +1 4 205 291 290 194 +1 4 7 173 174 99 +1 4 283 291 292 195 +1 4 7 184 176 39 +1 4 176 7 174 101 +1 4 7 39 176 257 +1 4 298 255 282 281 +1 4 39 17 7 9 +1 4 56 17 7 39 +1 4 56 9 7 17 +1 4 39 203 184 176 +1 4 56 257 176 283 +1 4 7 257 176 56 +1 4 203 180 193 184 +1 4 176 279 278 283 +1 4 205 204 191 194 +1 4 432 527 431 584 +1 4 99 101 174 7 +1 4 256 279 278 247 +1 4 247 249 256 279 +1 4 173 183 180 224 +1 4 174 101 180 176 +1 4 172 173 180 174 +1 4 172 183 180 173 +1 4 173 99 180 174 +1 4 173 224 180 99 +1 4 99 101 180 174 +1 4 99 224 180 101 +1 4 253 249 256 247 +1 4 580 276 559 583 +1 4 204 197 188 196 +1 4 494 500 501 207 +1 4 283 54 248 174 +1 4 247 253 248 256 +1 4 247 54 248 253 +1 4 283 253 248 54 +1 4 256 253 248 283 +1 4 195 176 203 283 +1 4 195 180 193 203 +1 4 198 285 294 208 +1 4 208 187 211 186 +1 4 222 223 182 239 +1 4 204 196 188 187 +1 4 176 257 203 283 +1 4 185 212 201 190 +1 4 180 175 183 172 +1 4 38 37 27 156 +1 4 202 210 468 179 +1 4 144 149 145 108 +1 4 284 295 300 289 +1 4 249 250 254 279 +1 4 193 192 205 191 +1 4 250 252 251 246 +1 4 284 289 300 293 +1 4 286 288 285 299 +1 4 187 192 191 194 +1 4 189 187 186 211 +1 4 276 282 565 245 +1 4 294 285 299 208 +1 4 204 196 187 194 +1 4 204 194 187 191 +1 4 168 497 468 458 +1 4 198 286 287 285 +1 4 186 211 200 199 +1 4 195 292 205 291 +1 4 208 286 198 285 +1 4 188 197 198 196 +1 4 198 208 186 187 +1 4 187 188 186 198 +1 4 208 196 211 187 +1 4 208 196 198 286 +1 4 560 529 559 528 +1 4 198 208 200 186 +1 4 291 194 205 192 +1 4 294 293 297 299 +1 4 188 196 198 187 +1 4 208 187 198 196 +1 4 178 175 177 181 +1 4 237 508 509 471 +1 4 291 286 290 194 +1 4 293 297 300 295 +1 4 293 295 300 284 +1 4 286 204 290 194 +1 4 293 288 300 297 +1 4 212 189 199 209 +1 4 211 209 199 189 +1 4 211 189 199 186 +1 4 484 574 481 493 +1 4 301 214 206 215 +1 4 285 294 299 293 +1 4 497 502 500 216 +1 4 296 282 565 298 +1 4 208 285 299 286 +1 4 297 208 294 299 +1 4 296 245 565 282 +1 4 563 534 538 562 +1 4 286 196 299 208 +1 4 493 483 481 480 +1 4 178 212 210 179 +1 4 487 475 495 476 +1 4 175 177 181 221 +1 4 477 475 487 476 +1 4 281 300 298 295 +1 4 249 279 254 256 +1 4 132 131 138 584 +1 4 281 300 282 298 +1 4 254 255 281 251 +1 4 251 243 281 254 +1 4 202 497 490 467 +1 4 281 252 282 276 +1 4 243 246 254 251 +1 4 247 248 244 278 +1 4 490 467 499 479 +1 4 222 221 181 218 +1 4 244 245 243 276 +1 4 300 299 297 288 +1 4 501 215 502 583 +1 4 295 255 296 298 +1 4 553 542 539 535 +1 4 276 254 277 281 +1 4 281 252 276 243 +1 4 217 222 181 218 +1 4 244 254 277 246 +1 4 243 276 277 244 +1 4 276 243 277 254 +1 4 250 247 244 278 +1 4 250 246 244 247 +1 4 278 279 280 250 +1 4 246 250 244 254 +1 4 254 250 280 279 +1 4 244 254 280 277 +1 4 244 250 280 254 +1 4 206 215 207 301 +1 4 175 221 181 220 +1 4 169 177 181 171 +1 4 497 458 500 468 +1 4 509 239 524 237 +1 4 236 222 182 239 +1 4 499 490 488 496 +1 4 171 172 169 177 +1 4 221 177 169 172 +1 4 354 541 566 465 +1 4 207 500 501 215 +1 4 565 536 559 245 +1 4 562 465 561 566 +1 4 252 243 245 276 +1 4 296 255 539 245 +1 4 528 530 560 529 +1 4 209 210 201 212 +1 4 476 478 475 498 +1 4 217 239 509 223 +1 4 210 213 168 179 +1 4 210 178 202 201 +1 4 182 178 179 223 +1 4 459 458 504 460 +1 4 179 202 170 468 +1 4 565 276 559 580 +1 4 182 223 237 239 +1 4 131 93 132 138 +1 4 179 223 170 182 +1 4 296 216 298 580 +1 4 179 182 170 202 +1 4 202 471 468 467 +1 4 223 222 168 217 +1 4 178 222 168 223 +1 4 171 181 168 178 +1 4 237 471 509 170 +1 4 500 497 216 210 +1 4 181 222 168 178 +1 4 181 217 168 222 +1 4 181 171 168 218 +1 4 181 218 168 217 +1 4 218 171 168 169 +1 4 169 217 168 218 +1 4 207 215 583 301 +1 4 352 310 308 307 +1 4 532 531 561 540 +1 4 399 402 391 392 +1 4 473 510 421 519 +1 4 210 168 500 497 +1 4 491 541 566 575 +1 4 252 536 245 243 +1 4 210 213 500 168 +1 4 497 202 468 467 +1 4 467 490 474 479 +1 4 178 210 202 179 +1 4 179 182 202 178 +1 4 497 168 468 210 +1 4 179 210 468 168 +1 4 516 522 508 526 +1 4 168 179 170 468 +1 4 468 202 170 471 +1 4 560 564 565 563 +1 4 216 202 210 497 +1 4 93 148 95 104 +1 4 560 564 559 565 +1 4 467 471 474 490 +1 4 245 536 559 528 +1 4 579 576 577 581 +1 4 207 494 583 501 +1 4 564 560 559 538 +1 4 497 496 490 499 +1 4 488 479 478 474 +1 4 500 215 216 502 +1 4 468 466 467 460 +1 4 468 458 460 467 +1 4 252 276 245 282 +1 4 245 255 539 270 +1 4 245 270 539 536 +1 4 553 535 539 270 +1 4 516 522 526 511 +1 4 503 458 508 470 +1 4 182 471 170 202 +1 4 468 458 170 168 +1 4 168 223 170 179 +1 4 301 298 583 276 +1 4 503 217 527 524 +1 4 579 578 577 576 +1 4 140 139 242 584 +1 4 207 301 583 276 +1 4 60 53 54 5 +1 4 498 488 478 475 +1 4 138 131 139 584 +1 4 475 488 478 474 +1 4 213 215 207 206 +1 4 500 215 207 213 +1 4 206 168 207 213 +1 4 500 213 207 168 +1 4 396 397 390 400 +1 4 438 441 401 452 +1 4 458 494 207 500 +1 4 500 168 207 458 +1 4 298 215 301 216 +1 4 562 534 538 533 +1 4 539 535 538 564 +1 4 565 298 580 296 +1 4 245 282 296 255 +1 4 560 564 563 538 +1 4 298 255 296 282 +1 4 500 215 502 501 +1 4 431 424 430 584 +1 4 528 536 564 535 +1 4 580 583 559 565 +1 4 500 210 216 213 +1 4 533 562 540 538 +1 4 301 298 216 583 +1 4 508 506 507 470 +1 4 485 492 476 483 +1 4 564 536 539 535 +1 4 564 565 539 536 +1 4 296 565 539 564 +1 4 565 245 539 536 +1 4 296 245 539 565 +1 4 583 276 559 207 +1 4 564 528 559 536 +1 4 564 536 559 565 +1 4 245 529 528 559 +1 4 245 83 243 528 +1 4 533 535 534 538 +1 4 529 563 538 560 +1 4 529 534 538 563 +1 4 535 528 538 564 +1 4 535 530 538 528 +1 4 529 530 538 534 +1 4 560 530 538 529 +1 4 560 528 538 530 +1 4 559 528 538 560 +1 4 564 528 538 559 +1 4 310 308 395 403 +1 4 495 579 577 581 +1 4 541 540 537 566 +1 4 465 491 566 484 +1 4 580 583 216 298 +1 4 531 537 354 533 +1 4 308 307 393 392 +1 4 438 452 401 162 +1 4 583 215 216 301 +1 4 576 572 571 582 +1 4 481 476 480 483 +1 4 533 531 540 562 +1 4 496 495 489 498 +1 4 579 578 576 582 +1 4 567 582 576 578 +1 4 483 493 481 574 +1 4 496 489 488 498 +1 4 476 487 485 495 +1 4 572 582 576 567 +1 4 574 493 575 573 +1 4 496 490 488 489 +1 4 567 572 571 576 +1 4 489 475 495 487 +1 4 352 537 566 354 +1 4 310 440 399 307 +1 4 569 573 570 492 +1 4 574 566 575 484 +1 4 575 574 484 493 +1 4 476 498 495 485 +1 4 492 480 477 476 +1 4 484 493 481 482 +1 4 488 489 475 498 +1 4 576 579 571 581 +1 4 470 466 459 460 +1 4 477 485 487 486 +1 4 568 576 571 581 +1 4 540 531 561 562 +1 4 461 469 464 472 +1 4 483 574 481 484 +1 4 487 476 485 477 +1 4 489 498 495 475 +1 4 476 475 495 498 +1 4 576 581 568 577 +1 4 492 486 485 477 +1 4 491 484 469 482 +1 4 421 339 395 473 +1 4 148 439 95 162 +1 4 492 483 569 573 +1 4 483 492 569 485 +1 4 399 394 391 402 +1 4 495 581 569 485 +1 4 573 483 574 493 +1 4 486 492 485 570 +1 4 569 492 570 485 +1 4 485 486 570 487 +1 4 570 495 568 569 +1 4 485 495 570 569 +1 4 485 487 570 495 +1 4 571 569 568 581 +1 4 569 574 573 483 +1 4 495 581 568 569 +1 4 495 577 568 581 +1 4 495 487 568 577 +1 4 495 570 568 487 +1 4 532 540 566 537 +1 4 435 392 389 391 +1 4 484 491 566 575 +1 4 473 472 469 510 +1 4 576 582 571 579 +1 4 537 541 566 354 +1 4 430 432 431 584 +1 4 499 498 496 478 +1 4 506 464 472 461 +1 4 493 491 482 484 +1 4 493 491 484 575 +1 4 566 561 463 465 +1 4 532 561 463 566 +1 4 404 420 418 429 +1 4 275 558 83 585 +1 4 239 236 237 182 +1 4 310 308 393 395 +1 4 504 508 509 507 +1 4 496 499 478 488 +1 4 566 562 540 561 +1 4 491 465 566 541 +1 4 506 461 505 507 +1 4 504 508 507 470 +1 4 425 415 513 514 +1 4 308 403 339 395 +1 4 395 463 393 469 +1 4 435 437 389 434 +1 4 390 400 397 388 +1 4 141 127 135 427 +1 4 399 392 393 307 +1 4 566 352 463 532 +1 4 403 440 399 310 +1 4 336 339 318 310 +1 4 310 336 403 440 +1 4 354 352 463 566 +1 4 566 465 463 354 +1 4 397 420 429 427 +1 4 469 461 463 462 +1 4 461 469 463 465 +1 4 308 463 393 395 +1 4 470 458 504 503 +1 4 503 217 524 509 +1 4 182 471 237 170 +1 4 418 428 405 408 +1 4 482 491 473 469 +1 4 461 460 459 466 +1 4 393 463 462 469 +1 4 395 469 510 473 +1 4 354 318 339 308 +1 4 308 541 339 354 +1 4 237 141 239 524 +1 4 421 399 412 414 +1 4 217 223 170 168 +1 4 460 458 470 467 +1 4 507 461 505 459 +1 4 508 471 237 522 +1 4 402 436 391 435 +1 4 399 395 421 403 +1 4 403 310 399 395 +1 4 142 439 95 148 +1 4 396 395 394 391 +1 4 170 223 237 182 +1 4 385 89 83 585 +1 4 308 463 462 393 +1 4 472 510 462 469 +1 4 385 387 92 585 +1 4 237 508 524 509 +1 4 523 524 522 526 +1 4 237 223 509 239 +1 4 308 318 339 310 +1 4 400 437 436 438 +1 4 510 473 421 395 +1 4 503 458 504 459 +1 4 511 471 508 522 +1 4 467 471 508 470 +1 4 508 526 524 509 +1 4 470 458 508 467 +1 4 511 522 508 516 +1 4 237 170 509 223 +1 4 514 512 513 425 +1 4 508 522 524 526 +1 4 170 217 509 223 +1 4 503 217 509 170 +1 4 170 471 509 468 +1 4 170 468 509 458 +1 4 170 458 509 503 +1 4 503 458 509 508 +1 4 394 437 396 391 +1 4 524 509 527 503 +1 4 508 467 509 471 +1 4 468 471 509 467 +1 4 467 458 509 468 +1 4 508 458 509 467 +1 4 217 239 527 524 +1 4 217 242 527 239 +1 4 308 465 339 541 +1 4 419 426 418 420 +1 4 470 460 504 458 +1 4 431 527 424 584 +1 4 404 409 418 408 +1 4 170 207 168 458 +1 4 170 132 503 217 +1 4 148 162 95 107 +1 4 417 415 416 407 +1 4 169 170 168 217 +1 4 463 352 308 532 +1 4 459 466 507 461 +1 4 470 459 507 504 +1 4 470 466 507 459 +1 4 470 506 507 464 +1 4 470 464 507 466 +1 4 506 461 507 464 +1 4 466 464 507 461 +1 4 386 558 387 585 +1 4 91 90 89 585 +1 4 527 217 132 242 +1 4 217 131 132 242 +1 4 527 503 132 217 +1 4 421 403 412 399 +1 4 472 461 505 506 +1 4 510 393 505 462 +1 4 469 510 462 393 +1 4 402 392 399 440 +1 4 403 402 399 440 +1 4 395 399 391 393 +1 4 421 339 403 395 +1 4 395 469 393 510 +1 4 411 414 413 518 +1 4 491 339 473 465 +1 4 491 465 473 469 +1 4 491 339 465 541 +1 4 469 465 473 395 +1 4 339 308 473 465 +1 4 395 308 473 339 +1 4 395 465 473 308 +1 4 310 307 393 308 +1 4 310 395 393 399 +1 4 399 307 393 310 +1 4 470 464 472 506 +1 4 461 469 465 464 +1 4 422 423 410 413 +1 4 472 510 505 462 +1 4 510 395 505 393 +1 4 435 392 391 402 +1 4 430 132 138 584 +1 4 399 395 414 421 +1 4 422 416 415 407 +1 4 408 404 405 418 +1 4 518 510 519 414 +1 4 510 519 414 421 +1 4 510 506 472 505 +1 4 427 388 430 398 +1 4 391 437 389 435 +1 4 394 395 399 391 +1 4 436 437 391 435 +1 4 142 148 95 93 +1 4 426 408 418 429 +1 4 93 388 398 95 +1 4 407 425 405 417 +1 4 558 275 92 585 +1 4 525 521 425 512 +1 4 175 176 172 180 +1 4 388 438 397 439 +1 4 401 439 397 438 +1 4 389 388 433 434 +1 4 419 428 405 418 +1 4 428 408 418 426 +1 4 398 396 397 390 +1 4 397 427 429 398 +1 4 91 92 275 585 +1 4 433 438 388 439 +1 4 95 401 398 127 +1 4 401 107 127 95 +1 4 104 148 95 107 +1 4 397 439 398 388 +1 4 95 104 398 93 +1 4 94 95 93 142 +1 4 95 439 398 401 +1 4 438 433 388 400 +1 4 390 434 388 389 +1 4 427 127 398 397 +1 4 95 127 398 104 +1 4 425 407 405 406 +1 4 525 521 512 520 +1 4 400 434 388 390 +1 4 400 433 388 434 +1 4 388 390 398 397 +1 4 406 408 405 428 +1 4 427 426 420 429 +1 4 93 388 430 427 +1 4 82 83 89 585 +1 4 379 83 558 585 +1 4 83 82 275 585 +1 4 407 406 415 422 +1 4 82 90 275 585 +1 4 388 93 398 427 +1 4 386 387 385 585 +1 4 91 275 90 585 +1 4 135 127 398 427 +1 4 135 104 398 127 +1 4 93 135 398 427 +1 4 93 104 398 135 +1 4 132 93 430 138 +1 4 388 93 430 132 +1 4 93 135 430 138 +1 4 427 135 430 93 +1 4 520 515 512 525 +1 4 426 429 418 420 +1 4 425 512 513 525 +1 4 351 354 353 355 +1 4 91 89 92 585 +1 4 92 89 385 585 +1 4 409 420 404 429 +1 4 409 397 404 420 +1 4 401 420 404 397 +1 4 425 415 514 417 +1 4 135 138 141 430 +1 4 427 135 141 430 +1 4 427 432 430 141 +1 4 239 524 141 527 +1 4 527 242 141 239 +1 4 413 410 422 406 +1 4 406 410 422 407 +1 4 429 428 426 408 +1 4 521 523 520 525 +1 4 413 517 513 422 +1 4 521 522 520 523 +1 4 428 426 418 419 +1 4 526 522 520 511 +1 4 423 411 410 413 +1 4 523 522 520 526 +1 4 414 412 423 411 +1 4 508 504 503 470 +1 4 414 518 423 519 +1 4 411 518 423 414 +1 4 526 516 520 515 +1 4 511 516 520 526 +1 4 511 515 520 516 +1 4 423 421 412 414 +1 4 423 411 413 518 +1 4 520 511 512 515 +1 4 425 405 417 419 +1 4 73 80 72 261 +1 4 210 215 216 213 +1 4 518 423 517 413 +1 4 423 518 517 519 +1 4 515 513 512 525 +1 4 416 422 415 514 +1 4 406 413 415 422 +1 4 415 407 425 406 +1 4 425 523 521 525 +1 4 415 406 425 428 +1 4 100 97 101 102 +1 4 405 428 425 406 +1 4 405 419 425 428 +1 4 425 521 417 512 +1 4 415 407 417 425 +1 4 415 422 513 514 +1 4 413 422 513 415 +1 4 422 517 513 514 +1 4 135 140 141 138 +1 4 177 178 181 171 +1 4 102 106 103 100 +1 4 314 305 306 317 +1 4 138 141 430 584 +1 4 149 144 98 108 +1 4 272 91 92 275 +1 4 534 535 530 538 +1 4 309 312 311 315 +1 4 39 128 101 184 +1 4 170 459 458 503 +1 4 422 423 413 517 +1 4 39 36 9 109 +1 4 531 537 533 540 +1 4 94 102 106 96 +1 4 220 222 221 181 +1 4 129 122 121 228 +1 4 454 348 50 457 +1 4 504 508 503 509 +1 4 469 461 462 472 +1 4 281 280 254 277 +1 4 437 394 400 436 +1 4 389 437 400 434 +1 4 164 163 161 166 +1 4 132 424 527 584 +1 4 537 531 532 540 +1 4 578 582 564 572 +1 4 212 178 210 201 +1 4 44 49 50 47 +1 4 256 257 253 283 +1 4 494 559 207 583 +1 4 465 563 562 561 +1 4 564 582 580 565 +1 4 101 220 219 224 +1 4 221 101 220 219 +1 4 9 4 8 13 +1 4 563 538 564 562 +1 4 80 81 70 264 +1 4 37 30 29 153 +1 4 203 205 195 292 +1 4 163 42 160 165 +1 4 435 436 310 440 +1 4 436 435 310 437 +1 4 51 82 83 89 +1 4 128 130 120 233 +1 4 133 134 125 136 +1 4 208 209 200 211 +1 4 10 11 14 3 +1 4 305 314 309 317 +1 4 303 355 315 350 +1 4 338 336 329 449 +1 4 302 340 41 346 +1 4 283 279 278 256 +1 4 280 176 279 278 +1 4 250 251 254 246 +1 4 388 389 433 95 +1 4 241 240 238 229 +1 4 79 39 56 257 +1 4 247 249 56 253 +1 4 249 247 56 250 +1 4 36 38 28 158 +1 4 554 380 552 556 +1 4 505 395 506 507 +1 4 10 12 11 3 +1 4 378 377 365 368 +1 4 130 129 119 231 +1 4 316 15 35 2 +1 4 423 421 414 519 +1 4 1 2 0 51 +1 4 581 582 579 571 +1 4 395 505 506 510 +1 4 437 438 434 439 +1 4 205 204 194 290 +1 4 81 79 71 266 +1 4 39 203 176 257 +1 4 492 493 480 483 +1 4 60 53 16 55 +1 4 204 197 196 287 +1 4 388 424 132 430 + +boundary +1256 +7 2 2 0 1 +7 2 4 1 3 +7 2 4 5 1 +7 2 4 6 5 +7 2 6 7 5 +7 2 1 0 3 +7 2 10 8 9 +7 2 10 11 8 +7 2 10 12 11 +7 2 8 13 9 +7 2 11 15 14 +7 2 8 16 13 +7 2 8 14 16 +7 2 16 17 13 +7 2 11 14 8 +7 2 11 18 15 +7 2 20 21 19 +7 2 22 20 19 +7 2 19 18 22 +7 2 18 23 22 +7 2 18 11 23 +7 2 20 25 24 +7 2 17 26 13 +7 2 24 21 20 +7 2 25 26 24 +7 2 25 13 26 +7 2 20 27 25 +7 2 13 25 28 +7 2 20 29 27 +7 2 27 28 25 +7 2 28 9 13 +4 2 31 21 30 +4 2 33 34 32 +4 2 34 35 15 +4 2 18 34 15 +4 2 19 31 33 +4 2 31 19 21 +4 2 18 19 32 +4 2 32 19 33 +4 2 34 18 32 +6 2 26 17 36 +6 2 21 37 30 +6 2 36 38 26 +6 2 17 39 36 +6 2 21 24 37 +6 2 38 24 26 +6 2 24 38 37 +7 2 0 41 40 +7 2 2 41 0 +7 2 3 0 12 +7 2 10 3 12 +7 2 4 9 6 +7 2 3 10 4 +7 2 9 4 10 +7 2 43 33 42 +7 2 34 44 35 +7 2 34 43 44 +7 2 31 42 33 +7 2 33 43 34 +7 2 45 46 43 +7 2 46 44 43 +7 2 46 12 44 +7 2 29 45 42 +7 2 42 45 43 +7 2 11 46 23 +7 2 46 11 12 +7 2 20 45 29 +7 2 45 22 46 +7 2 45 20 22 +7 2 23 46 22 +7 2 0 47 12 +7 2 40 48 47 +7 2 40 47 0 +7 2 44 47 49 +7 2 47 48 49 +7 2 12 47 44 +7 2 35 44 50 +7 2 49 50 44 +7 2 1 51 2 +7 2 52 1 53 +7 2 5 53 1 +7 2 5 54 53 +7 2 7 54 5 +7 2 52 51 1 +7 2 56 55 57 +7 2 55 58 57 +7 2 58 59 57 +7 2 56 60 55 +7 2 15 58 14 +7 2 60 16 55 +7 2 14 55 16 +7 2 16 60 17 +7 2 55 14 58 +7 2 15 61 58 +7 2 62 64 63 +7 2 62 63 65 +7 2 65 61 62 +7 2 65 66 61 +7 2 66 58 61 +7 2 67 68 63 +7 2 60 69 17 +7 2 63 64 67 +7 2 67 69 68 +7 2 69 60 68 +7 2 68 70 63 +7 2 71 68 60 +7 2 70 72 63 +7 2 68 71 70 +7 2 60 56 71 +4 2 73 64 74 +4 2 75 77 76 +4 2 15 78 77 +4 2 15 77 61 +4 2 76 74 62 +4 2 64 62 74 +4 2 75 62 61 +4 2 76 62 75 +4 2 75 61 77 +6 2 79 17 69 +6 2 73 80 64 +6 2 69 81 79 +6 2 17 79 39 +6 2 80 67 64 +6 2 69 67 81 +6 2 80 81 67 +7 2 82 83 51 +7 2 51 83 2 +7 2 59 51 52 +7 2 59 52 57 +7 2 54 56 53 +7 2 53 57 52 +7 2 57 53 56 +7 2 84 76 85 +7 2 78 86 77 +7 2 86 85 77 +7 2 76 84 74 +7 2 77 85 76 +7 2 85 88 87 +7 2 85 86 88 +7 2 86 59 88 +7 2 84 87 72 +7 2 85 87 84 +7 2 66 88 58 +7 2 59 58 88 +7 2 72 87 63 +7 2 88 65 87 +7 2 65 63 87 +7 2 65 88 66 +7 2 59 89 51 +7 2 89 90 82 +7 2 51 89 82 +7 2 91 89 86 +7 2 91 90 89 +7 2 86 89 59 +7 2 92 86 78 +7 2 86 92 91 +7 2 95 93 94 +7 2 97 94 96 +7 2 97 98 94 +7 2 97 99 98 +7 2 99 7 98 +7 2 94 93 96 +7 2 102 100 101 +7 2 102 103 100 +7 2 102 104 103 +7 2 100 105 101 +7 2 103 107 106 +7 2 100 108 105 +7 2 100 106 108 +7 2 108 109 105 +7 2 103 106 100 +7 2 103 110 107 +7 2 112 113 111 +7 2 114 112 111 +7 2 111 110 114 +7 2 110 115 114 +7 2 110 103 115 +7 2 112 117 116 +7 2 109 118 105 +7 2 116 113 112 +7 2 117 118 116 +7 2 117 105 118 +7 2 112 119 117 +7 2 105 117 120 +7 2 112 121 119 +7 2 119 120 117 +7 2 120 101 105 +1 2 123 113 122 +1 2 125 126 124 +1 2 126 127 107 +1 2 110 126 107 +1 2 111 123 125 +1 2 123 111 113 +1 2 110 111 124 +1 2 124 111 125 +1 2 126 110 124 +6 2 118 109 128 +6 2 113 129 122 +6 2 128 130 118 +6 2 109 39 128 +6 2 113 116 129 +6 2 130 116 118 +6 2 116 130 129 +7 2 93 132 131 +7 2 95 132 93 +7 2 96 93 104 +7 2 102 96 104 +7 2 97 101 99 +7 2 96 102 97 +7 2 101 97 102 +7 2 134 125 133 +7 2 126 135 127 +7 2 126 134 135 +7 2 123 133 125 +7 2 125 134 126 +7 2 136 137 134 +7 2 137 135 134 +7 2 137 104 135 +7 2 121 136 133 +7 2 133 136 134 +7 2 103 137 115 +7 2 137 103 104 +7 2 112 136 121 +7 2 136 114 137 +7 2 136 112 114 +7 2 115 137 114 +7 2 93 138 104 +7 2 131 139 138 +7 2 131 138 93 +7 2 135 138 140 +7 2 138 139 140 +7 2 104 138 135 +7 2 127 135 141 +7 2 140 141 135 +7 2 94 142 95 +7 2 143 94 144 +7 2 98 144 94 +7 2 98 6 144 +7 2 6 98 7 +7 2 143 142 94 +7 2 9 145 146 +7 2 145 147 146 +7 2 147 148 146 +7 2 9 149 145 +7 2 107 147 106 +7 2 149 108 145 +7 2 106 145 108 +7 2 108 149 109 +7 2 145 106 147 +7 2 107 150 147 +7 2 151 153 152 +7 2 151 152 154 +7 2 154 150 151 +7 2 154 155 150 +7 2 155 147 150 +7 2 156 157 152 +7 2 149 158 109 +7 2 152 153 156 +7 2 156 158 157 +7 2 158 149 157 +7 2 157 27 152 +7 2 28 157 149 +7 2 29 152 27 +7 2 27 157 28 +7 2 28 149 9 +1 2 30 153 31 +1 2 159 161 160 +1 2 107 162 161 +1 2 107 161 150 +1 2 160 31 151 +1 2 153 151 31 +1 2 159 151 150 +1 2 160 151 159 +1 2 159 150 161 +6 2 36 109 158 +6 2 37 153 30 +6 2 36 158 38 +6 2 39 109 36 +6 2 37 156 153 +6 2 158 156 38 +6 2 38 156 37 +7 2 41 142 40 +7 2 142 41 95 +7 2 148 142 143 +7 2 148 143 146 +7 2 9 144 6 +7 2 144 146 143 +7 2 146 144 9 +7 2 42 160 163 +7 2 162 164 161 +7 2 164 163 161 +7 2 31 160 42 +7 2 161 163 160 +7 2 163 166 165 +7 2 163 164 166 +7 2 164 148 166 +7 2 42 165 29 +7 2 163 165 42 +7 2 155 166 147 +7 2 148 147 166 +7 2 29 165 152 +7 2 166 154 165 +7 2 154 152 165 +7 2 154 166 155 +7 2 148 167 142 +7 2 40 167 48 +7 2 142 167 40 +7 2 49 167 164 +7 2 48 167 49 +7 2 164 167 148 +7 2 50 164 162 +7 2 49 164 50 +7 2 170 168 169 +7 2 172 169 171 +7 2 172 173 169 +7 2 172 174 173 +7 2 174 7 173 +7 2 169 168 171 +7 2 177 175 176 +7 2 177 178 175 +7 2 177 179 178 +7 2 175 180 176 +7 2 178 182 181 +7 2 175 183 180 +7 2 175 181 183 +7 2 183 184 180 +7 2 178 181 175 +7 2 178 185 182 +7 2 187 188 186 +7 2 189 187 186 +7 2 186 185 189 +7 2 185 190 189 +7 2 185 178 190 +7 2 187 192 191 +7 2 184 193 180 +7 2 191 188 187 +7 2 192 193 191 +7 2 192 180 193 +7 2 187 194 192 +7 2 180 192 195 +7 2 187 196 194 +7 2 194 195 192 +7 2 195 176 180 +2 2 198 188 197 +2 2 200 201 199 +2 2 201 202 182 +2 2 185 201 182 +2 2 186 198 200 +2 2 198 186 188 +2 2 185 186 199 +2 2 199 186 200 +2 2 201 185 199 +6 2 193 184 203 +6 2 188 204 197 +6 2 203 205 193 +6 2 184 39 203 +6 2 188 191 204 +6 2 205 191 193 +6 2 191 205 204 +7 2 168 207 206 +7 2 170 207 168 +7 2 171 168 179 +7 2 177 171 179 +7 2 172 176 174 +7 2 171 177 172 +7 2 176 172 177 +7 2 209 200 208 +7 2 201 210 202 +7 2 201 209 210 +7 2 198 208 200 +7 2 200 209 201 +7 2 211 212 209 +7 2 212 210 209 +7 2 212 179 210 +7 2 196 211 208 +7 2 208 211 209 +7 2 178 212 190 +7 2 212 178 179 +7 2 187 211 196 +7 2 211 189 212 +7 2 211 187 189 +7 2 190 212 189 +7 2 168 213 179 +7 2 206 214 213 +7 2 206 213 168 +7 2 210 213 215 +7 2 213 214 215 +7 2 179 213 210 +7 2 202 210 216 +7 2 215 216 210 +7 2 169 217 170 +7 2 218 169 219 +7 2 173 219 169 +7 2 173 99 219 +7 2 99 173 7 +7 2 218 217 169 +7 2 101 220 221 +7 2 220 222 221 +7 2 222 223 221 +7 2 101 224 220 +7 2 182 222 181 +7 2 224 183 220 +7 2 181 220 183 +7 2 183 224 184 +7 2 220 181 222 +7 2 182 225 222 +7 2 226 228 227 +7 2 226 227 229 +7 2 229 225 226 +7 2 229 230 225 +7 2 230 222 225 +7 2 231 232 227 +7 2 224 233 184 +7 2 227 228 231 +7 2 231 233 232 +7 2 233 224 232 +7 2 232 119 227 +7 2 120 232 224 +7 2 121 227 119 +7 2 119 232 120 +7 2 120 224 101 +2 2 122 228 123 +2 2 234 236 235 +2 2 182 237 236 +2 2 182 236 225 +2 2 235 123 226 +2 2 228 226 123 +2 2 234 226 225 +2 2 235 226 234 +2 2 234 225 236 +6 2 128 184 233 +6 2 129 228 122 +6 2 128 233 130 +6 2 39 184 128 +6 2 129 231 228 +6 2 233 231 130 +6 2 130 231 129 +7 2 132 217 131 +7 2 217 132 170 +7 2 223 217 218 +7 2 223 218 221 +7 2 101 219 99 +7 2 219 221 218 +7 2 221 219 101 +7 2 133 235 238 +7 2 237 239 236 +7 2 239 238 236 +7 2 123 235 133 +7 2 236 238 235 +7 2 238 241 240 +7 2 238 239 241 +7 2 239 223 241 +7 2 133 240 121 +7 2 238 240 133 +7 2 230 241 222 +7 2 223 222 241 +7 2 121 240 227 +7 2 241 229 240 +7 2 229 227 240 +7 2 229 241 230 +7 2 223 242 217 +7 2 131 242 139 +7 2 217 242 131 +7 2 140 242 239 +7 2 139 242 140 +7 2 239 242 223 +7 2 141 239 237 +7 2 140 239 141 +7 2 245 243 244 +7 2 247 244 246 +7 2 247 248 244 +7 2 247 54 248 +7 2 7 248 54 +7 2 244 243 246 +7 2 250 249 56 +7 2 250 251 249 +7 2 250 252 251 +7 2 249 253 56 +7 2 251 255 254 +7 2 249 256 253 +7 2 249 254 256 +7 2 256 257 253 +7 2 251 254 249 +7 2 251 258 255 +7 2 260 261 259 +7 2 262 260 259 +7 2 259 258 262 +7 2 258 263 262 +7 2 258 251 263 +7 2 260 265 264 +7 2 257 266 253 +7 2 264 261 260 +7 2 265 266 264 +7 2 265 253 266 +7 2 260 70 265 +7 2 253 265 71 +7 2 70 260 72 +7 2 71 265 70 +7 2 56 253 71 +3 2 74 261 73 +3 2 268 269 267 +3 2 269 270 255 +3 2 258 269 255 +3 2 259 74 268 +3 2 74 259 261 +3 2 258 259 267 +3 2 267 259 268 +3 2 269 258 267 +6 2 266 257 79 +6 2 73 261 80 +6 2 81 266 79 +6 2 79 257 39 +6 2 261 264 80 +6 2 81 264 266 +6 2 80 264 81 +7 2 82 243 83 +7 2 245 83 243 +7 2 246 243 252 +7 2 250 246 252 +7 2 54 247 56 +7 2 246 250 247 +7 2 56 247 250 +7 2 271 268 84 +7 2 269 272 270 +7 2 269 271 272 +7 2 84 268 74 +7 2 268 271 269 +7 2 273 274 271 +7 2 274 272 271 +7 2 274 252 272 +7 2 72 273 84 +7 2 84 273 271 +7 2 251 274 263 +7 2 274 251 252 +7 2 260 273 72 +7 2 273 262 274 +7 2 273 260 262 +7 2 263 274 262 +7 2 243 275 252 +7 2 90 275 82 +7 2 82 275 243 +7 2 272 275 91 +7 2 91 275 90 +7 2 252 275 272 +7 2 270 272 92 +7 2 92 272 91 +7 2 244 276 245 +7 2 277 244 278 +7 2 248 278 244 +7 2 248 174 278 +7 2 174 248 7 +7 2 277 276 244 +7 2 176 279 280 +7 2 279 281 280 +7 2 281 282 280 +7 2 176 283 279 +7 2 255 281 254 +7 2 283 256 279 +7 2 254 279 256 +7 2 256 283 257 +7 2 279 254 281 +7 2 255 284 281 +7 2 285 287 286 +7 2 285 286 288 +7 2 288 284 285 +7 2 288 289 284 +7 2 289 281 284 +7 2 290 291 286 +7 2 283 292 257 +7 2 286 287 290 +7 2 290 292 291 +7 2 292 283 291 +7 2 291 194 286 +7 2 195 291 283 +7 2 196 286 194 +7 2 194 291 195 +7 2 195 283 176 +3 2 197 287 198 +3 2 293 295 294 +3 2 255 296 295 +3 2 255 295 284 +3 2 294 198 285 +3 2 287 285 198 +3 2 293 285 284 +3 2 294 285 293 +3 2 293 284 295 +6 2 203 257 292 +6 2 204 287 197 +6 2 203 292 205 +6 2 39 257 203 +6 2 204 290 287 +6 2 292 290 205 +6 2 205 290 204 +7 2 207 276 206 +7 2 276 207 245 +7 2 282 276 277 +7 2 282 277 280 +7 2 176 278 174 +7 2 278 280 277 +7 2 280 278 176 +7 2 208 294 297 +7 2 296 298 295 +7 2 298 297 295 +7 2 198 294 208 +7 2 295 297 294 +7 2 297 300 299 +7 2 297 298 300 +7 2 298 282 300 +7 2 208 299 196 +7 2 297 299 208 +7 2 289 300 281 +7 2 282 281 300 +7 2 196 299 286 +7 2 300 288 299 +7 2 288 286 299 +7 2 288 300 289 +7 2 282 301 276 +7 2 206 301 214 +7 2 276 301 206 +7 2 215 301 298 +7 2 214 301 215 +7 2 298 301 282 +7 2 216 298 296 +7 2 215 298 216 +7 2 303 302 2 +7 2 304 303 305 +7 2 303 306 305 +7 2 306 307 305 +7 2 306 308 307 +7 2 304 302 303 +7 2 310 309 311 +7 2 309 312 311 +7 2 312 313 311 +7 2 310 314 309 +7 2 315 316 312 +7 2 314 317 309 +7 2 317 315 309 +7 2 314 318 317 +7 2 309 315 312 +7 2 316 319 312 +7 2 320 322 321 +7 2 320 321 323 +7 2 323 319 320 +7 2 323 324 319 +7 2 324 312 319 +7 2 325 326 321 +7 2 314 327 318 +7 2 321 322 325 +7 2 325 327 326 +7 2 327 314 326 +7 2 326 328 321 +7 2 329 326 314 +7 2 328 330 321 +7 2 326 329 328 +7 2 314 310 329 +4 2 331 322 332 +4 2 333 335 334 +4 2 316 35 335 +4 2 316 335 319 +4 2 35 316 15 +4 2 334 332 320 +4 2 322 320 332 +4 2 333 320 319 +4 2 334 320 333 +4 2 333 319 335 +5 2 336 318 327 +5 2 331 337 322 +5 2 327 338 336 +5 2 336 339 318 +5 2 337 325 322 +5 2 327 325 338 +5 2 337 338 325 +7 2 340 41 302 +7 2 2 302 41 +7 2 313 302 304 +7 2 313 304 311 +7 2 307 310 305 +7 2 305 311 304 +7 2 311 305 310 +7 2 341 334 342 +7 2 35 343 335 +7 2 343 342 335 +7 2 334 341 332 +7 2 335 342 334 +7 2 342 345 344 +7 2 342 343 345 +7 2 343 313 345 +7 2 341 344 330 +7 2 342 344 341 +7 2 324 345 312 +7 2 313 312 345 +7 2 330 344 321 +7 2 345 323 344 +7 2 323 321 344 +7 2 323 345 324 +7 2 313 346 302 +7 2 346 347 340 +7 2 302 346 340 +7 2 348 346 343 +7 2 348 347 346 +7 2 343 346 313 +7 2 50 343 35 +7 2 343 50 348 +7 2 2 349 303 +7 2 351 303 350 +7 2 303 351 306 +7 2 351 352 306 +7 2 306 352 308 +7 2 303 349 350 +7 2 355 353 354 +7 2 355 356 353 +7 2 355 357 356 +7 2 353 358 354 +7 2 315 356 316 +7 2 353 317 358 +7 2 317 353 315 +7 2 318 358 317 +7 2 356 315 353 +7 2 356 359 316 +7 2 361 362 360 +7 2 363 361 360 +7 2 360 359 363 +7 2 359 364 363 +7 2 359 356 364 +7 2 361 366 365 +7 2 318 367 358 +7 2 365 362 361 +7 2 366 367 365 +7 2 366 358 367 +7 2 361 368 366 +7 2 358 366 369 +7 2 361 370 368 +7 2 368 369 366 +7 2 369 354 358 +4 2 372 362 371 +4 2 374 375 373 +4 2 375 78 316 +4 2 359 375 316 +4 2 15 316 78 +4 2 360 372 374 +4 2 372 360 362 +4 2 359 360 373 +4 2 373 360 374 +4 2 375 359 373 +5 2 367 318 376 +5 2 362 377 371 +5 2 376 378 367 +5 2 339 376 318 +5 2 362 365 377 +5 2 378 365 367 +5 2 365 378 377 +7 2 349 83 379 +7 2 83 349 2 +7 2 350 349 357 +7 2 355 350 357 +7 2 351 354 352 +7 2 350 355 351 +7 2 354 351 355 +7 2 381 374 380 +7 2 375 382 78 +7 2 375 381 382 +7 2 372 380 374 +7 2 374 381 375 +7 2 383 384 381 +7 2 384 382 381 +7 2 384 357 382 +7 2 370 383 380 +7 2 380 383 381 +7 2 356 384 364 +7 2 384 356 357 +7 2 361 383 370 +7 2 383 363 384 +7 2 383 361 363 +7 2 364 384 363 +7 2 349 385 357 +7 2 379 386 385 +7 2 379 385 349 +7 2 382 385 387 +7 2 385 386 387 +7 2 357 385 382 +7 2 78 382 92 +7 2 387 92 382 +7 2 389 388 95 +7 2 390 389 391 +7 2 389 392 391 +7 2 392 393 391 +7 2 392 308 393 +7 2 390 388 389 +7 2 395 394 396 +7 2 394 397 396 +7 2 397 398 396 +7 2 395 399 394 +7 2 400 401 397 +7 2 399 402 394 +7 2 402 400 394 +7 2 399 403 402 +7 2 394 400 397 +7 2 401 404 397 +7 2 405 407 406 +7 2 405 406 408 +7 2 408 404 405 +7 2 408 409 404 +7 2 409 397 404 +7 2 410 411 406 +7 2 399 412 403 +7 2 406 407 410 +7 2 410 412 411 +7 2 412 399 411 +7 2 411 413 406 +7 2 414 411 399 +7 2 413 415 406 +7 2 411 414 413 +7 2 399 395 414 +1 2 416 407 417 +1 2 418 420 419 +1 2 401 127 420 +1 2 401 420 404 +1 2 127 401 107 +1 2 419 417 405 +1 2 407 405 417 +1 2 418 405 404 +1 2 419 405 418 +1 2 418 404 420 +5 2 421 403 412 +5 2 416 422 407 +5 2 412 423 421 +5 2 421 339 403 +5 2 422 410 407 +5 2 412 410 423 +5 2 422 423 410 +7 2 424 132 388 +7 2 95 388 132 +7 2 398 388 390 +7 2 398 390 396 +7 2 393 395 391 +7 2 391 396 390 +7 2 396 391 395 +7 2 425 419 426 +7 2 127 427 420 +7 2 427 426 420 +7 2 419 425 417 +7 2 420 426 419 +7 2 426 429 428 +7 2 426 427 429 +7 2 427 398 429 +7 2 425 428 415 +7 2 426 428 425 +7 2 409 429 397 +7 2 398 397 429 +7 2 415 428 406 +7 2 429 408 428 +7 2 408 406 428 +7 2 408 429 409 +7 2 398 430 388 +7 2 430 431 424 +7 2 388 430 424 +7 2 432 430 427 +7 2 432 431 430 +7 2 427 430 398 +7 2 141 427 127 +7 2 427 141 432 +7 2 95 433 389 +7 2 435 389 434 +7 2 389 435 392 +7 2 435 307 392 +7 2 308 392 307 +7 2 389 433 434 +7 2 437 436 310 +7 2 437 438 436 +7 2 437 439 438 +7 2 436 440 310 +7 2 400 438 401 +7 2 436 402 440 +7 2 402 436 400 +7 2 403 440 402 +7 2 438 400 436 +7 2 438 441 401 +7 2 443 444 442 +7 2 445 443 442 +7 2 442 441 445 +7 2 441 446 445 +7 2 441 438 446 +7 2 443 448 447 +7 2 403 449 440 +7 2 447 444 443 +7 2 448 449 447 +7 2 448 440 449 +7 2 443 328 448 +7 2 440 448 329 +7 2 328 443 330 +7 2 329 448 328 +7 2 310 440 329 +1 2 332 444 331 +1 2 451 452 450 +1 2 452 162 401 +1 2 441 452 401 +1 2 107 401 162 +1 2 442 332 451 +1 2 332 442 444 +1 2 441 442 450 +1 2 450 442 451 +1 2 452 441 450 +5 2 449 403 336 +5 2 331 444 337 +5 2 338 449 336 +5 2 336 403 339 +5 2 444 447 337 +5 2 338 447 449 +5 2 337 447 338 +7 2 340 433 41 +7 2 41 433 95 +7 2 434 433 439 +7 2 437 434 439 +7 2 307 435 310 +7 2 434 437 435 +7 2 310 435 437 +7 2 453 451 341 +7 2 452 454 162 +7 2 452 453 454 +7 2 341 451 332 +7 2 451 453 452 +7 2 455 456 453 +7 2 456 454 453 +7 2 456 439 454 +7 2 330 455 341 +7 2 341 455 453 +7 2 438 456 446 +7 2 456 438 439 +7 2 443 455 330 +7 2 455 445 456 +7 2 455 443 445 +7 2 446 456 445 +7 2 433 457 439 +7 2 347 457 340 +7 2 340 457 433 +7 2 454 457 348 +7 2 348 457 347 +7 2 439 457 454 +7 2 162 454 50 +7 2 50 454 348 +7 2 459 458 170 +7 2 460 459 461 +7 2 459 462 461 +7 2 462 463 461 +7 2 462 308 463 +7 2 460 458 459 +7 2 465 464 466 +7 2 464 467 466 +7 2 467 468 466 +7 2 465 469 464 +7 2 470 471 467 +7 2 469 472 464 +7 2 472 470 464 +7 2 469 473 472 +7 2 464 470 467 +7 2 471 474 467 +7 2 475 477 476 +7 2 475 476 478 +7 2 478 474 475 +7 2 478 479 474 +7 2 479 467 474 +7 2 480 481 476 +7 2 469 482 473 +7 2 476 477 480 +7 2 480 482 481 +7 2 482 469 481 +7 2 481 483 476 +7 2 484 481 469 +7 2 483 485 476 +7 2 481 484 483 +7 2 469 465 484 +2 2 486 477 487 +2 2 488 490 489 +2 2 471 202 490 +2 2 471 490 474 +2 2 202 471 182 +2 2 489 487 475 +2 2 477 475 487 +2 2 488 475 474 +2 2 489 475 488 +2 2 488 474 490 +5 2 491 473 482 +5 2 486 492 477 +5 2 482 493 491 +5 2 491 339 473 +5 2 492 480 477 +5 2 482 480 493 +5 2 492 493 480 +7 2 494 207 458 +7 2 170 458 207 +7 2 468 458 460 +7 2 468 460 466 +7 2 463 465 461 +7 2 461 466 460 +7 2 466 461 465 +7 2 495 489 496 +7 2 202 497 490 +7 2 497 496 490 +7 2 489 495 487 +7 2 490 496 489 +7 2 496 499 498 +7 2 496 497 499 +7 2 497 468 499 +7 2 495 498 485 +7 2 496 498 495 +7 2 479 499 467 +7 2 468 467 499 +7 2 485 498 476 +7 2 499 478 498 +7 2 478 476 498 +7 2 478 499 479 +7 2 468 500 458 +7 2 500 501 494 +7 2 458 500 494 +7 2 502 500 497 +7 2 502 501 500 +7 2 497 500 468 +7 2 216 497 202 +7 2 497 216 502 +7 2 170 503 459 +7 2 505 459 504 +7 2 459 505 462 +7 2 505 393 462 +7 2 308 462 393 +7 2 459 503 504 +7 2 507 506 395 +7 2 507 508 506 +7 2 507 509 508 +7 2 506 510 395 +7 2 470 508 471 +7 2 506 472 510 +7 2 472 506 470 +7 2 473 510 472 +7 2 508 470 506 +7 2 508 511 471 +7 2 513 514 512 +7 2 515 513 512 +7 2 512 511 515 +7 2 511 516 515 +7 2 511 508 516 +7 2 513 518 517 +7 2 473 519 510 +7 2 517 514 513 +7 2 518 519 517 +7 2 518 510 519 +7 2 513 413 518 +7 2 510 518 414 +7 2 413 513 415 +7 2 414 518 413 +7 2 395 510 414 +2 2 417 514 416 +2 2 521 522 520 +2 2 522 237 471 +2 2 511 522 471 +2 2 182 471 237 +2 2 512 417 521 +2 2 417 512 514 +2 2 511 512 520 +2 2 520 512 521 +2 2 522 511 520 +5 2 519 473 421 +5 2 416 514 422 +5 2 423 519 421 +5 2 421 473 339 +5 2 514 517 422 +5 2 423 517 519 +5 2 422 517 423 +7 2 424 503 132 +7 2 132 503 170 +7 2 504 503 509 +7 2 507 504 509 +7 2 393 505 395 +7 2 504 507 505 +7 2 395 505 507 +7 2 523 521 425 +7 2 522 524 237 +7 2 522 523 524 +7 2 425 521 417 +7 2 521 523 522 +7 2 525 526 523 +7 2 526 524 523 +7 2 526 509 524 +7 2 415 525 425 +7 2 425 525 523 +7 2 508 526 516 +7 2 526 508 509 +7 2 513 525 415 +7 2 525 515 526 +7 2 525 513 515 +7 2 516 526 515 +7 2 503 527 509 +7 2 431 527 424 +7 2 424 527 503 +7 2 524 527 432 +7 2 432 527 431 +7 2 509 527 524 +7 2 237 524 141 +7 2 141 524 432 +7 2 529 528 245 +7 2 530 529 531 +7 2 529 532 531 +7 2 532 352 531 +7 2 352 532 308 +7 2 530 528 529 +7 2 354 533 534 +7 2 533 535 534 +7 2 535 536 534 +7 2 354 537 533 +7 2 538 539 535 +7 2 537 540 533 +7 2 540 538 533 +7 2 537 541 540 +7 2 533 538 535 +7 2 539 542 535 +7 2 543 545 544 +7 2 543 544 546 +7 2 546 542 543 +7 2 546 547 542 +7 2 547 535 542 +7 2 548 549 544 +7 2 537 550 541 +7 2 544 545 548 +7 2 548 550 549 +7 2 550 537 549 +7 2 549 368 544 +7 2 369 549 537 +7 2 370 544 368 +7 2 368 549 369 +7 2 369 537 354 +3 2 371 545 372 +3 2 551 553 552 +3 2 539 270 553 +3 2 539 553 542 +3 2 270 539 255 +3 2 552 372 543 +3 2 545 543 372 +3 2 551 543 542 +3 2 552 543 551 +3 2 551 542 553 +5 2 376 541 550 +5 2 377 545 371 +5 2 376 550 378 +5 2 339 541 376 +5 2 377 548 545 +5 2 550 548 378 +5 2 378 548 377 +7 2 83 528 379 +7 2 245 528 83 +7 2 536 528 530 +7 2 536 530 534 +7 2 354 531 352 +7 2 531 534 530 +7 2 534 531 354 +7 2 380 552 554 +7 2 270 555 553 +7 2 555 554 553 +7 2 372 552 380 +7 2 553 554 552 +7 2 554 557 556 +7 2 554 555 557 +7 2 555 536 557 +7 2 380 556 370 +7 2 554 556 380 +7 2 547 557 535 +7 2 536 535 557 +7 2 370 556 544 +7 2 557 546 556 +7 2 546 544 556 +7 2 546 557 547 +7 2 536 558 528 +7 2 379 558 386 +7 2 528 558 379 +7 2 387 558 555 +7 2 386 558 387 +7 2 555 558 536 +7 2 92 555 270 +7 2 387 555 92 +7 2 245 559 529 +7 2 561 529 560 +7 2 529 561 532 +7 2 561 463 532 +7 2 308 532 463 +7 2 529 559 560 +7 2 563 562 465 +7 2 563 564 562 +7 2 563 565 564 +7 2 562 566 465 +7 2 538 564 539 +7 2 562 540 566 +7 2 540 562 538 +7 2 541 566 540 +7 2 564 538 562 +7 2 564 567 539 +7 2 569 570 568 +7 2 571 569 568 +7 2 568 567 571 +7 2 567 572 571 +7 2 567 564 572 +7 2 569 574 573 +7 2 541 575 566 +7 2 573 570 569 +7 2 574 575 573 +7 2 574 566 575 +7 2 569 483 574 +7 2 566 574 484 +7 2 483 569 485 +7 2 484 574 483 +7 2 465 566 484 +3 2 487 570 486 +3 2 577 578 576 +3 2 578 296 539 +3 2 567 578 539 +3 2 255 539 296 +3 2 568 487 577 +3 2 487 568 570 +3 2 567 568 576 +3 2 576 568 577 +3 2 578 567 576 +5 2 575 541 491 +5 2 486 570 492 +5 2 493 575 491 +5 2 491 541 339 +5 2 570 573 492 +5 2 493 573 575 +5 2 492 573 493 +7 2 494 559 207 +7 2 207 559 245 +7 2 560 559 565 +7 2 563 560 565 +7 2 463 561 465 +7 2 560 563 561 +7 2 465 561 563 +7 2 579 577 495 +7 2 578 580 296 +7 2 578 579 580 +7 2 495 577 487 +7 2 577 579 578 +7 2 581 582 579 +7 2 582 580 579 +7 2 582 565 580 +7 2 485 581 495 +7 2 495 581 579 +7 2 564 582 572 +7 2 582 564 565 +7 2 569 581 485 +7 2 581 571 582 +7 2 581 569 571 +7 2 572 582 571 +7 2 559 583 565 +7 2 501 583 494 +7 2 494 583 559 +7 2 580 583 502 +7 2 502 583 501 +7 2 565 583 580 +7 2 296 580 216 +7 2 216 580 502 + +vertices +586 +3 +0.17071068287 0.63639611006 0.77781742811 +0.34149760008 0.70710676908 0.90718305111 +0.14142134786 0.70710676908 0.70710676908 +0.29464191198 0.63639611006 0.90174865723 +0.45739308 0.63639611006 1.06449985504 +0.52708530426 0.70710676908 1.09277069569 +0.63639611006 0.63639611006 1.2435028553 +0.70710676908 0.70710676908 1.27279222012 +0.31818574667 0.63639611006 1.1252925396 +0.60710680485 0.60710680485 1.31421351433 +0.30576854944 0.60710680485 1.01287531853 +0.07071067393 0.63639611006 0.87781745195 +0.10000000149 0.60710680485 0.80710679293 +0.53639614582 0.63639611006 1.34350287914 +0.14913631976 0.70710676908 0.9976644516 +0.0 0.70710676908 0.84852814674 +0.36548924446 0.70710676908 1.2140173912 +0.56568539143 0.70710676908 1.41421353817 +0.0 0.50554072857 1.05009412766 +0.0 0.28805971146 1.26757526398 +0.07071067393 0.17071068287 1.34350287914 +0.0 0.14142134786 1.41421353817 +0.07071067393 0.37584215403 1.13837146759 +0.07071067393 0.5058426857 1.00837087631 +0.18624351919 0.32766488194 1.41421353817 +0.30758076906 0.4075807631 1.34350287914 +0.38431400061 0.52573531866 1.41421353817 +0.26192444563 0.26192444563 1.31421351433 +0.44232457876 0.44232457876 1.31421351433 +0.10000000149 0.10000000149 1.31421351433 +0.0 -0.0 1.41421353817 +0.0 0.0 1.27279222012 +0.0 0.34230268002 1.07119894028 +0.0 0.16887068748 1.10392153263 +-0.0 0.39571240544 0.87707984447 +-0.0 0.56568539143 0.70710676908 +0.52889883518 0.52889883518 1.41421353817 +0.17089350522 0.17089350522 1.41421353817 +0.35057324171 0.35057324171 1.41421353817 +0.70710676908 0.70710676908 1.41421353817 +0.40355339646 0.40355339646 0.77781742811 +0.42426404357 0.42426404357 0.70710676908 +0.07071067393 0.07071067393 1.2435028553 +0.07071067393 0.30410942435 1.01010417938 +0.07071067393 0.53639614582 0.77781742811 +0.10000000149 0.25428086519 1.15993273258 +0.10000000149 0.45248746872 0.96172606945 +0.23288829625 0.47421851754 0.80710679293 +0.35355338454 0.35355338454 0.80710679293 +0.30355340242 0.30355340242 0.77781742811 +0.28284269571 0.28284269571 0.70710676908 +0.17071068287 0.77781742811 0.77781742811 +0.29464191198 0.77781742811 0.90174865723 +0.45739308 0.77781742811 1.06449985504 +0.63639611006 0.77781742811 1.2435028553 +0.31818574667 0.77781742811 1.1252925396 +0.60710680485 0.80710679293 1.31421351433 +0.30576854944 0.80710679293 1.01287531853 +0.07071067393 0.77781742811 0.87781745195 +0.10000000149 0.80710679293 0.80710679293 +0.53639614582 0.77781742811 1.34350287914 +0.0 0.9086728096 1.05009412766 +0.0 1.12615382671 1.26757526398 +0.07071067393 1.2435028553 1.34350287914 +0.0 1.27279222012 1.41421353817 +0.07071067393 1.03837144375 1.13837146759 +0.07071067393 0.90837085247 1.00837087631 +0.18624351919 1.08654868603 1.41421353817 +0.30758076906 1.00663280487 1.34350287914 +0.38431400061 0.88847821951 1.41421353817 +0.26192444563 1.15228915215 1.31421351433 +0.44232457876 0.97188895941 1.31421351433 +0.10000000149 1.31421351433 1.31421351433 +-0.0 1.41421353817 1.41421353817 +0.0 1.41421353817 1.27279222012 +0.0 1.07191085815 1.07119894028 +0.0 1.24534285069 1.10392153263 +-0.0 1.01850116253 0.87707984447 +-0.0 0.84852814674 0.70710676908 +0.52889883518 0.88531470299 1.41421353817 +0.17089350522 1.24332010746 1.41421353817 +0.35057324171 1.06364035606 1.41421353817 +0.40355339646 1.01066017151 0.77781742811 +0.42426404357 0.9899495244 0.70710676908 +0.07071067393 1.34350287914 1.2435028553 +0.07071067393 1.11010408401 1.01010417938 +0.07071067393 0.87781745195 0.77781742811 +0.10000000149 1.15993273258 1.15993273258 +0.10000000149 0.96172606945 0.96172606945 +0.23288829625 0.93999505043 0.80710679293 +0.35355338454 1.06066012383 0.80710679293 +0.30355340242 1.11066019535 0.77781742811 +0.28284269571 1.13137090206 0.70710676908 +0.77781742811 0.17071068287 0.77781742811 +0.70710676908 0.34149760008 0.90718305111 +0.70710676908 0.14142134786 0.70710676908 +0.77781742811 0.29464191198 0.90174865723 +0.77781742811 0.45739308 1.06449985504 +0.70710676908 0.52708530426 1.09277069569 +0.77781742811 0.63639611006 1.2435028553 +0.77781742811 0.31818574667 1.1252925396 +0.80710679293 0.60710680485 1.31421351433 +0.80710679293 0.30576854944 1.01287531853 +0.77781742811 0.07071067393 0.87781745195 +0.80710679293 0.10000000149 0.80710679293 +0.77781742811 0.53639614582 1.34350287914 +0.70710676908 0.14913631976 0.9976644516 +0.70710676908 0.0 0.84852814674 +0.70710676908 0.36548924446 1.2140173912 +0.70710676908 0.56568539143 1.41421353817 +0.9086728096 0.0 1.05009412766 +1.12615382671 0.0 1.26757526398 +1.2435028553 0.07071067393 1.34350287914 +1.27279222012 0.0 1.41421353817 +1.03837144375 0.07071067393 1.13837146759 +0.90837085247 0.07071067393 1.00837087631 +1.08654868603 0.18624351919 1.41421353817 +1.00663280487 0.30758076906 1.34350287914 +0.88847821951 0.38431400061 1.41421353817 +1.15228915215 0.26192444563 1.31421351433 +0.97188895941 0.44232457876 1.31421351433 +1.31421351433 0.10000000149 1.31421351433 +1.41421353817 0.0 1.41421353817 +1.41421353817 0.0 1.27279222012 +1.07191085815 0.0 1.07119894028 +1.24534285069 0.0 1.10392153263 +1.01850116253 -0.0 0.87707984447 +0.84852814674 -0.0 0.70710676908 +0.88531470299 0.52889883518 1.41421353817 +1.24332010746 0.17089350522 1.41421353817 +1.06364035606 0.35057324171 1.41421353817 +1.01066017151 0.40355339646 0.77781742811 +0.9899495244 0.42426404357 0.70710676908 +1.34350287914 0.07071067393 1.2435028553 +1.11010408401 0.07071067393 1.01010417938 +0.87781745195 0.07071067393 0.77781742811 +1.15993273258 0.10000000149 1.15993273258 +0.96172606945 0.10000000149 0.96172606945 +0.93999505043 0.23288829625 0.80710679293 +1.06066012383 0.35355338454 0.80710679293 +1.11066019535 0.30355340242 0.77781742811 +1.13137090206 0.28284269571 0.70710676908 +0.63639611006 0.17071068287 0.77781742811 +0.63639611006 0.29464191198 0.90174865723 +0.63639611006 0.45739308 1.06449985504 +0.63639611006 0.31818574667 1.1252925396 +0.60710680485 0.30576854944 1.01287531853 +0.63639611006 0.07071067393 0.87781745195 +0.60710680485 0.10000000149 0.80710679293 +0.63639611006 0.53639614582 1.34350287914 +0.50554072857 0.0 1.05009412766 +0.28805971146 0.0 1.26757526398 +0.17071068287 0.07071067393 1.34350287914 +0.14142134786 0.0 1.41421353817 +0.37584215403 0.07071067393 1.13837146759 +0.5058426857 0.07071067393 1.00837087631 +0.32766488194 0.18624351919 1.41421353817 +0.4075807631 0.30758076906 1.34350287914 +0.52573531866 0.38431400061 1.41421353817 +0.34230268002 0.0 1.07119894028 +0.16887068748 0.0 1.10392153263 +0.39571240544 -0.0 0.87707984447 +0.56568539143 -0.0 0.70710676908 +0.30410942435 0.07071067393 1.01010417938 +0.53639614582 0.07071067393 0.77781742811 +0.25428086519 0.10000000149 1.15993273258 +0.45248746872 0.10000000149 0.96172606945 +0.47421851754 0.23288829625 0.80710679293 +1.2435028553 0.77781742811 0.77781742811 +1.0727159977 0.70710676908 0.90718305111 +1.27279222012 0.70710676908 0.70710676908 +1.11957168579 0.77781742811 0.90174865723 +0.95682048798 0.77781742811 1.06449985504 +0.88712823391 0.70710676908 1.09277069569 +0.77781742811 0.77781742811 1.2435028553 +1.0960278511 0.77781742811 1.1252925396 +0.80710679293 0.80710679293 1.31421351433 +1.10844504833 0.80710679293 1.01287531853 +1.34350287914 0.77781742811 0.87781745195 +1.31421351433 0.80710679293 0.80710679293 +0.87781745195 0.77781742811 1.34350287914 +1.26507723331 0.70710676908 0.9976644516 +1.41421353817 0.70710676908 0.84852814674 +1.04872429371 0.70710676908 1.2140173912 +0.84852814674 0.70710676908 1.41421353817 +1.41421353817 0.9086728096 1.05009412766 +1.41421353817 1.12615382671 1.26757526398 +1.34350287914 1.2435028553 1.34350287914 +1.41421353817 1.27279222012 1.41421353817 +1.34350287914 1.03837144375 1.13837146759 +1.34350287914 0.90837085247 1.00837087631 +1.22797000408 1.08654868603 1.41421353817 +1.10663282871 1.00663280487 1.34350287914 +1.02989959717 0.88847821951 1.41421353817 +1.15228915215 1.15228915215 1.31421351433 +0.97188895941 0.97188895941 1.31421351433 +1.31421351433 1.31421351433 1.31421351433 +1.41421353817 1.41421353817 1.41421353817 +1.41421353817 1.41421353817 1.27279222012 +1.41421353817 1.07191085815 1.07119894028 +1.41421353817 1.24534285069 1.10392153263 +1.41421353817 1.01850116253 0.87707984447 +1.41421353817 0.84852814674 0.70710676908 +0.88531470299 0.88531470299 1.41421353817 +1.24332010746 1.24332010746 1.41421353817 +1.06364035606 1.06364035606 1.41421353817 +1.01066017151 1.01066017151 0.77781742811 +0.9899495244 0.9899495244 0.70710676908 +1.34350287914 1.34350287914 1.2435028553 +1.34350287914 1.11010408401 1.01010417938 +1.34350287914 0.87781745195 0.77781742811 +1.31421351433 1.15993273258 1.15993273258 +1.31421351433 0.96172606945 0.96172606945 +1.18132531643 0.93999505043 0.80710679293 +1.06066012383 1.06066012383 0.80710679293 +1.11066019535 1.11066019535 0.77781742811 +1.13137090206 1.13137090206 0.70710676908 +1.2435028553 0.63639611006 0.77781742811 +1.11957168579 0.63639611006 0.90174865723 +0.95682048798 0.63639611006 1.06449985504 +1.0960278511 0.63639611006 1.1252925396 +1.10844504833 0.60710680485 1.01287531853 +1.34350287914 0.63639611006 0.87781745195 +1.31421351433 0.60710680485 0.80710679293 +0.87781745195 0.63639611006 1.34350287914 +1.41421353817 0.50554072857 1.05009412766 +1.41421353817 0.28805971146 1.26757526398 +1.34350287914 0.17071068287 1.34350287914 +1.41421353817 0.14142134786 1.41421353817 +1.34350287914 0.37584215403 1.13837146759 +1.34350287914 0.5058426857 1.00837087631 +1.22797000408 0.32766488194 1.41421353817 +1.10663282871 0.4075807631 1.34350287914 +1.02989959717 0.52573531866 1.41421353817 +1.41421353817 0.34230268002 1.07119894028 +1.41421353817 0.16887068748 1.10392153263 +1.41421353817 0.39571240544 0.87707984447 +1.41421353817 0.56568539143 0.70710676908 +1.34350287914 0.30410942435 1.01010417938 +1.34350287914 0.53639614582 0.77781742811 +1.31421351433 0.25428086519 1.15993273258 +1.31421351433 0.45248746872 0.96172606945 +1.18132531643 0.47421851754 0.80710679293 +0.63639611006 1.2435028553 0.77781742811 +0.70710676908 1.0727159977 0.90718305111 +0.70710676908 1.27279222012 0.70710676908 +0.63639611006 1.11957168579 0.90174865723 +0.63639611006 0.95682048798 1.06449985504 +0.70710676908 0.88712823391 1.09277069569 +0.63639611006 1.0960278511 1.1252925396 +0.60710680485 1.10844504833 1.01287531853 +0.63639611006 1.34350287914 0.87781745195 +0.60710680485 1.31421351433 0.80710679293 +0.63639611006 0.87781745195 1.34350287914 +0.70710676908 1.26507723331 0.9976644516 +0.70710676908 1.41421353817 0.84852814674 +0.70710676908 1.04872429371 1.2140173912 +0.70710676908 0.84852814674 1.41421353817 +0.50554072857 1.41421353817 1.05009412766 +0.28805971146 1.41421353817 1.26757526398 +0.17071068287 1.34350287914 1.34350287914 +0.14142134786 1.41421353817 1.41421353817 +0.37584215403 1.34350287914 1.13837146759 +0.5058426857 1.34350287914 1.00837087631 +0.32766488194 1.22797000408 1.41421353817 +0.4075807631 1.10663282871 1.34350287914 +0.52573531866 1.02989959717 1.41421353817 +0.34230268002 1.41421353817 1.07119894028 +0.16887068748 1.41421353817 1.10392153263 +0.39571240544 1.41421353817 0.87707984447 +0.56568539143 1.41421353817 0.70710676908 +0.30410942435 1.34350287914 1.01010417938 +0.53639614582 1.34350287914 0.77781742811 +0.25428086519 1.31421351433 1.15993273258 +0.45248746872 1.31421351433 0.96172606945 +0.47421851754 1.18132531643 0.80710679293 +0.77781742811 1.2435028553 0.77781742811 +0.77781742811 1.11957168579 0.90174865723 +0.77781742811 0.95682048798 1.06449985504 +0.77781742811 1.0960278511 1.1252925396 +0.80710679293 1.10844504833 1.01287531853 +0.77781742811 1.34350287914 0.87781745195 +0.80710679293 1.31421351433 0.80710679293 +0.77781742811 0.87781745195 1.34350287914 +0.9086728096 1.41421353817 1.05009412766 +1.12615382671 1.41421353817 1.26757526398 +1.2435028553 1.34350287914 1.34350287914 +1.27279222012 1.41421353817 1.41421353817 +1.03837144375 1.34350287914 1.13837146759 +0.90837085247 1.34350287914 1.00837087631 +1.08654868603 1.22797000408 1.41421353817 +1.00663280487 1.10663282871 1.34350287914 +0.88847821951 1.02989959717 1.41421353817 +1.07191085815 1.41421353817 1.07119894028 +1.24534285069 1.41421353817 1.10392153263 +1.01850116253 1.41421353817 0.87707984447 +0.84852814674 1.41421353817 0.70710676908 +1.11010408401 1.34350287914 1.01010417938 +0.87781745195 1.34350287914 0.77781742811 +1.15993273258 1.31421351433 1.15993273258 +0.96172606945 1.31421351433 0.96172606945 +0.93999505043 1.18132531643 0.80710679293 +0.17071068287 0.63639611006 0.63639611006 +0.34149760008 0.70710676908 0.50703054667 +0.29464191198 0.63639611006 0.51246488094 +0.45739308 0.63639611006 0.34971371293 +0.52708530426 0.70710676908 0.32144284248 +0.63639611006 0.63639611006 0.17071068287 +0.70710676908 0.70710676908 0.14142134786 +0.31818574667 0.63639611006 0.28892105818 +0.60710680485 0.60710680485 0.10000000149 +0.30576854944 0.60710680485 0.40133824944 +0.07071067393 0.63639611006 0.53639614582 +0.10000000149 0.60710680485 0.60710680485 +0.53639614582 0.63639611006 0.07071067393 +0.14913631976 0.70710676908 0.41654911637 +0.0 0.70710676908 0.56568539143 +0.36548924446 0.70710676908 0.20019619167 +0.56568539143 0.70710676908 -0.0 +0.0 0.50554072857 0.36411938071 +0.0 0.28805971146 0.1466383636 +0.07071067393 0.17071068287 0.07071067393 +0.0 0.14142134786 0.0 +0.07071067393 0.37584215403 0.27584213018 +0.07071067393 0.5058426857 0.40584269166 +0.18624351919 0.32766488194 -0.0 +0.30758076906 0.4075807631 0.07071067393 +0.38431400061 0.52573531866 -0.0 +0.26192444563 0.26192444563 0.10000000149 +0.44232457876 0.44232457876 0.10000000149 +0.10000000149 0.10000000149 0.10000000149 +0.0 -0.0 -0.0 +0.0 0.0 0.14142134786 +0.0 0.34230268002 0.3430146277 +0.0 0.16887068748 0.31029206514 +-0.0 0.39571240544 0.5371337533 +0.52889883518 0.52889883518 0.0 +0.17089350522 0.17089350522 0.0 +0.35057324171 0.35057324171 0.0 +0.70710676908 0.70710676908 0.0 +0.40355339646 0.40355339646 0.63639611006 +0.07071067393 0.07071067393 0.17071068287 +0.07071067393 0.30410942435 0.40410941839 +0.07071067393 0.53639614582 0.63639611006 +0.10000000149 0.25428086519 0.25428086519 +0.10000000149 0.45248746872 0.45248746872 +0.23288829625 0.47421851754 0.60710680485 +0.35355338454 0.35355338454 0.60710680485 +0.30355340242 0.30355340242 0.63639611006 +0.17071068287 0.77781742811 0.63639611006 +0.29464191198 0.77781742811 0.51246488094 +0.45739308 0.77781742811 0.34971371293 +0.63639611006 0.77781742811 0.17071068287 +0.31818574667 0.77781742811 0.28892105818 +0.60710680485 0.80710679293 0.10000000149 +0.30576854944 0.80710679293 0.40133824944 +0.07071067393 0.77781742811 0.53639614582 +0.10000000149 0.80710679293 0.60710680485 +0.53639614582 0.77781742811 0.07071067393 +0.0 0.9086728096 0.36411938071 +0.0 1.12615382671 0.1466383636 +0.07071067393 1.2435028553 0.07071067393 +0.0 1.27279222012 0.0 +0.07071067393 1.03837144375 0.27584213018 +0.07071067393 0.90837085247 0.40584269166 +0.18624351919 1.08654868603 -0.0 +0.30758076906 1.00663280487 0.07071067393 +0.38431400061 0.88847821951 -0.0 +0.26192444563 1.15228915215 0.10000000149 +0.44232457876 0.97188895941 0.10000000149 +0.10000000149 1.31421351433 0.10000000149 +-0.0 1.41421353817 -0.0 +0.0 1.41421353817 0.14142134786 +0.0 1.07191085815 0.3430146277 +0.0 1.24534285069 0.31029206514 +-0.0 1.01850116253 0.5371337533 +0.52889883518 0.88531470299 0.0 +0.17089350522 1.24332010746 0.0 +0.35057324171 1.06364035606 0.0 +0.40355339646 1.01066017151 0.63639611006 +0.07071067393 1.34350287914 0.17071068287 +0.07071067393 1.11010408401 0.40410941839 +0.07071067393 0.87781745195 0.63639611006 +0.10000000149 1.15993273258 0.25428086519 +0.10000000149 0.96172606945 0.45248746872 +0.23288829625 0.93999505043 0.60710680485 +0.35355338454 1.06066012383 0.60710680485 +0.30355340242 1.11066019535 0.63639611006 +0.77781742811 0.17071068287 0.63639611006 +0.70710676908 0.34149760008 0.50703054667 +0.77781742811 0.29464191198 0.51246488094 +0.77781742811 0.45739308 0.34971371293 +0.70710676908 0.52708530426 0.32144284248 +0.77781742811 0.63639611006 0.17071068287 +0.77781742811 0.31818574667 0.28892105818 +0.80710679293 0.60710680485 0.10000000149 +0.80710679293 0.30576854944 0.40133824944 +0.77781742811 0.07071067393 0.53639614582 +0.80710679293 0.10000000149 0.60710680485 +0.77781742811 0.53639614582 0.07071067393 +0.70710676908 0.14913631976 0.41654911637 +0.70710676908 0.0 0.56568539143 +0.70710676908 0.36548924446 0.20019619167 +0.70710676908 0.56568539143 -0.0 +0.9086728096 0.0 0.36411938071 +1.12615382671 0.0 0.1466383636 +1.2435028553 0.07071067393 0.07071067393 +1.27279222012 0.0 0.0 +1.03837144375 0.07071067393 0.27584213018 +0.90837085247 0.07071067393 0.40584269166 +1.08654868603 0.18624351919 -0.0 +1.00663280487 0.30758076906 0.07071067393 +0.88847821951 0.38431400061 -0.0 +1.15228915215 0.26192444563 0.10000000149 +0.97188895941 0.44232457876 0.10000000149 +1.31421351433 0.10000000149 0.10000000149 +1.41421353817 0.0 -0.0 +1.41421353817 0.0 0.14142134786 +1.07191085815 0.0 0.3430146277 +1.24534285069 0.0 0.31029206514 +1.01850116253 -0.0 0.5371337533 +0.88531470299 0.52889883518 0.0 +1.24332010746 0.17089350522 0.0 +1.06364035606 0.35057324171 0.0 +1.01066017151 0.40355339646 0.63639611006 +1.34350287914 0.07071067393 0.17071068287 +1.11010408401 0.07071067393 0.40410941839 +0.87781745195 0.07071067393 0.63639611006 +1.15993273258 0.10000000149 0.25428086519 +0.96172606945 0.10000000149 0.45248746872 +0.93999505043 0.23288829625 0.60710680485 +1.06066012383 0.35355338454 0.60710680485 +1.11066019535 0.30355340242 0.63639611006 +0.63639611006 0.17071068287 0.63639611006 +0.63639611006 0.29464191198 0.51246488094 +0.63639611006 0.45739308 0.34971371293 +0.63639611006 0.31818574667 0.28892105818 +0.60710680485 0.30576854944 0.40133824944 +0.63639611006 0.07071067393 0.53639614582 +0.60710680485 0.10000000149 0.60710680485 +0.63639611006 0.53639614582 0.07071067393 +0.50554072857 0.0 0.36411938071 +0.28805971146 0.0 0.1466383636 +0.17071068287 0.07071067393 0.07071067393 +0.14142134786 0.0 0.0 +0.37584215403 0.07071067393 0.27584213018 +0.5058426857 0.07071067393 0.40584269166 +0.32766488194 0.18624351919 -0.0 +0.4075807631 0.30758076906 0.07071067393 +0.52573531866 0.38431400061 -0.0 +0.34230268002 0.0 0.3430146277 +0.16887068748 0.0 0.31029206514 +0.39571240544 -0.0 0.5371337533 +0.30410942435 0.07071067393 0.40410941839 +0.53639614582 0.07071067393 0.63639611006 +0.25428086519 0.10000000149 0.25428086519 +0.45248746872 0.10000000149 0.45248746872 +0.47421851754 0.23288829625 0.60710680485 +1.2435028553 0.77781742811 0.63639611006 +1.0727159977 0.70710676908 0.50703054667 +1.11957168579 0.77781742811 0.51246488094 +0.95682048798 0.77781742811 0.34971371293 +0.88712823391 0.70710676908 0.32144284248 +0.77781742811 0.77781742811 0.17071068287 +1.0960278511 0.77781742811 0.28892105818 +0.80710679293 0.80710679293 0.10000000149 +1.10844504833 0.80710679293 0.40133824944 +1.34350287914 0.77781742811 0.53639614582 +1.31421351433 0.80710679293 0.60710680485 +0.87781745195 0.77781742811 0.07071067393 +1.26507723331 0.70710676908 0.41654911637 +1.41421353817 0.70710676908 0.56568539143 +1.04872429371 0.70710676908 0.20019619167 +0.84852814674 0.70710676908 -0.0 +1.41421353817 0.9086728096 0.36411938071 +1.41421353817 1.12615382671 0.1466383636 +1.34350287914 1.2435028553 0.07071067393 +1.41421353817 1.27279222012 0.0 +1.34350287914 1.03837144375 0.27584213018 +1.34350287914 0.90837085247 0.40584269166 +1.22797000408 1.08654868603 -0.0 +1.10663282871 1.00663280487 0.07071067393 +1.02989959717 0.88847821951 -0.0 +1.15228915215 1.15228915215 0.10000000149 +0.97188895941 0.97188895941 0.10000000149 +1.31421351433 1.31421351433 0.10000000149 +1.41421353817 1.41421353817 -0.0 +1.41421353817 1.41421353817 0.14142134786 +1.41421353817 1.07191085815 0.3430146277 +1.41421353817 1.24534285069 0.31029206514 +1.41421353817 1.01850116253 0.5371337533 +0.88531470299 0.88531470299 0.0 +1.24332010746 1.24332010746 0.0 +1.06364035606 1.06364035606 0.0 +1.01066017151 1.01066017151 0.63639611006 +1.34350287914 1.34350287914 0.17071068287 +1.34350287914 1.11010408401 0.40410941839 +1.34350287914 0.87781745195 0.63639611006 +1.31421351433 1.15993273258 0.25428086519 +1.31421351433 0.96172606945 0.45248746872 +1.18132531643 0.93999505043 0.60710680485 +1.06066012383 1.06066012383 0.60710680485 +1.11066019535 1.11066019535 0.63639611006 +1.2435028553 0.63639611006 0.63639611006 +1.11957168579 0.63639611006 0.51246488094 +0.95682048798 0.63639611006 0.34971371293 +1.0960278511 0.63639611006 0.28892105818 +1.10844504833 0.60710680485 0.40133824944 +1.34350287914 0.63639611006 0.53639614582 +1.31421351433 0.60710680485 0.60710680485 +0.87781745195 0.63639611006 0.07071067393 +1.41421353817 0.50554072857 0.36411938071 +1.41421353817 0.28805971146 0.1466383636 +1.34350287914 0.17071068287 0.07071067393 +1.41421353817 0.14142134786 0.0 +1.34350287914 0.37584215403 0.27584213018 +1.34350287914 0.5058426857 0.40584269166 +1.22797000408 0.32766488194 -0.0 +1.10663282871 0.4075807631 0.07071067393 +1.02989959717 0.52573531866 -0.0 +1.41421353817 0.34230268002 0.3430146277 +1.41421353817 0.16887068748 0.31029206514 +1.41421353817 0.39571240544 0.5371337533 +1.34350287914 0.30410942435 0.40410941839 +1.34350287914 0.53639614582 0.63639611006 +1.31421351433 0.25428086519 0.25428086519 +1.31421351433 0.45248746872 0.45248746872 +1.18132531643 0.47421851754 0.60710680485 +0.63639611006 1.2435028553 0.63639611006 +0.70710676908 1.0727159977 0.50703054667 +0.63639611006 1.11957168579 0.51246488094 +0.63639611006 0.95682048798 0.34971371293 +0.70710676908 0.88712823391 0.32144284248 +0.63639611006 1.0960278511 0.28892105818 +0.60710680485 1.10844504833 0.40133824944 +0.63639611006 1.34350287914 0.53639614582 +0.60710680485 1.31421351433 0.60710680485 +0.63639611006 0.87781745195 0.07071067393 +0.70710676908 1.26507723331 0.41654911637 +0.70710676908 1.41421353817 0.56568539143 +0.70710676908 1.04872429371 0.20019619167 +0.70710676908 0.84852814674 -0.0 +0.50554072857 1.41421353817 0.36411938071 +0.28805971146 1.41421353817 0.1466383636 +0.17071068287 1.34350287914 0.07071067393 +0.14142134786 1.41421353817 0.0 +0.37584215403 1.34350287914 0.27584213018 +0.5058426857 1.34350287914 0.40584269166 +0.32766488194 1.22797000408 -0.0 +0.4075807631 1.10663282871 0.07071067393 +0.52573531866 1.02989959717 -0.0 +0.34230268002 1.41421353817 0.3430146277 +0.16887068748 1.41421353817 0.31029206514 +0.39571240544 1.41421353817 0.5371337533 +0.30410942435 1.34350287914 0.40410941839 +0.53639614582 1.34350287914 0.63639611006 +0.25428086519 1.31421351433 0.25428086519 +0.45248746872 1.31421351433 0.45248746872 +0.47421851754 1.18132531643 0.60710680485 +0.77781742811 1.2435028553 0.63639611006 +0.77781742811 1.11957168579 0.51246488094 +0.77781742811 0.95682048798 0.34971371293 +0.77781742811 1.0960278511 0.28892105818 +0.80710679293 1.10844504833 0.40133824944 +0.77781742811 1.34350287914 0.53639614582 +0.80710679293 1.31421351433 0.60710680485 +0.77781742811 0.87781745195 0.07071067393 +0.9086728096 1.41421353817 0.36411938071 +1.12615382671 1.41421353817 0.1466383636 +1.2435028553 1.34350287914 0.07071067393 +1.27279222012 1.41421353817 0.0 +1.03837144375 1.34350287914 0.27584213018 +0.90837085247 1.34350287914 0.40584269166 +1.08654868603 1.22797000408 -0.0 +1.00663280487 1.10663282871 0.07071067393 +0.88847821951 1.02989959717 -0.0 +1.07191085815 1.41421353817 0.3430146277 +1.24534285069 1.41421353817 0.31029206514 +1.01850116253 1.41421353817 0.5371337533 +1.11010408401 1.34350287914 0.40410941839 +0.87781745195 1.34350287914 0.63639611006 +1.15993273258 1.31421351433 0.25428086519 +0.96172606945 1.31421351433 0.45248746872 +0.93999505043 1.18132531643 0.60710680485 +1.06225521464 0.35514842911 0.70710678276 +0.35114244428 1.05824922898 0.70710678587 diff --git a/examples/linelast/meshes/octet_truss_hd.mesh b/examples/linelast/meshes/octet_truss_hd.mesh new file mode 100644 index 00000000..1b572eaa --- /dev/null +++ b/examples/linelast/meshes/octet_truss_hd.mesh @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98b5accc8d1f7f2bc3754923b9c1c4d5f75aee8386a19ab4c5a31a887fe97416 +size 1295668 diff --git a/include/linelast_solver.hpp b/include/linelast_solver.hpp index 2ea41596..5ea1269f 100644 --- a/include/linelast_solver.hpp +++ b/include/linelast_solver.hpp @@ -40,8 +40,8 @@ class LinElastSolver : public MultiBlockSolver Array as; // Lame constants for each subdomain, global boundary attribute ordering - Array lambda_c; - Array mu_c; + Array lambda_c; + Array mu_c; Array bdr_coeffs; Array rhs_coeffs; @@ -56,6 +56,10 @@ class LinElastSolver : public MultiBlockSolver // Initial positions VectorCoefficient *init_x = NULL; + // For unitizing load vector + bool scale_output = false; + double fnorm; + public: LinElastSolver(); @@ -82,6 +86,8 @@ class LinElastSolver : public MultiBlockSolver virtual void AssembleInterfaceMatrices(); bool Solve(SampleGenerator *sample_generator = NULL) override; + virtual void SolveROM() override; + virtual void ProjectRHSOnReducedBasis() override; virtual void SetupBCVariables() override; virtual void SetupIC(std::function F); diff --git a/include/parameterized_problem.hpp b/include/parameterized_problem.hpp index 70d287d9..f0a37e5f 100644 --- a/include/parameterized_problem.hpp +++ b/include/parameterized_problem.hpp @@ -121,61 +121,103 @@ extern double rforce_f; void tip_force(const Vector &x, double t, Vector &u); } + +namespace linelast_octet +{ + +extern double disp_z; +extern double force_z; +extern double density; +extern double g; + +void fixed_bc(const Vector &x, double t, Vector &u); + +void disp_z_bc(const Vector &x, double t, Vector &u); + +void force_z_bc(const Vector &x, double t, Vector &f); + +void fixed_yz_bc(const Vector &x, double t, Vector &u); + +void gravity_load(const Vector &x, double t, Vector &f); + +} // namespace linelast_octet + namespace linelast_cwtrain { // Probabilities extern double lx; extern double ly; + extern double lz; extern double rx; extern double ry; + extern double rz; extern double dx; extern double dy; + extern double dz; extern double ux; extern double uy; + extern double uz; extern double bx; extern double by; + extern double bz; // Constant force extern double l_ux; extern double l_uy; + extern double l_uz; extern double r_fx; extern double r_fy; + extern double r_fz; extern double u_fx; extern double u_fy; + extern double u_fz; extern double d_fx; extern double d_fy; + extern double d_fz; extern double b_fx; extern double b_fy; + extern double b_fz; // Amplitudes extern double xu_amp; -extern double xf_amp; extern double yu_amp; +extern double zu_amp; +extern double xf_amp; extern double yf_amp; +extern double zf_amp; extern double bxf_amp; extern double byf_amp; +extern double bzf_amp; // Frequencies extern double xu_freq; -extern double xf_freq; extern double yu_freq; +extern double zu_freq; +extern double xf_freq; extern double yf_freq; +extern double zf_freq; extern double bxf_freq; extern double byf_freq; +extern double bzf_freq; // Sine offsets extern double xu_offset; -extern double xf_offset; extern double yu_offset; +extern double zu_offset; +extern double xf_offset; extern double yf_offset; +extern double zf_offset; extern double bxf_offset; extern double byf_offset; +extern double bzf_offset; double perturb_func(const double x, const double amp, const double freq, const double offset); void left_disp(const Vector &x, double t, Vector &u); void up_disp(const Vector &x, double t, Vector &u); void down_disp(const Vector &x, double t, Vector &u); void right_disp(const Vector &x, double t, Vector &u); +void in_disp(const Vector &x, double t, Vector &u); +void out_disp(const Vector &x, double t, Vector &u); void body_force(const Vector &x, double t, Vector &u); } @@ -193,6 +235,23 @@ void dirichlet(const Vector &x, double t, Vector &u); } +namespace linelast_lattice_roof +{ +extern double qsnow_f; +extern double qpoint_f; +extern double density; +extern double g; + +void snow_load(const Vector &x, double t, Vector &f); + +void gravity_load(const Vector &x, double t, Vector &f); + +void point_load(const Vector &x, double t, Vector &f); + +void dirichlet(const Vector &x, double t, Vector &u); + +} + namespace advdiff_problem { @@ -406,6 +465,12 @@ class LinElastFrameWind : public LinElastProblem LinElastFrameWind(); }; +class LinElastLatticeRoof : public LinElastProblem +{ +public: + LinElastLatticeRoof(); +}; + namespace function_factory { @@ -449,6 +514,30 @@ class LinElastComponentWiseTrain : public LinElastProblem LinElastComponentWiseTrain(); }; +class LinElastComponentWiseTrain3D : public LinElastProblem +{ +public: +LinElastComponentWiseTrain3D(); +}; + +class LinElastOctetCube : public LinElastProblem +{ +public: +LinElastOctetCube(); +}; + +class LinElastOctetBeam : public LinElastProblem +{ +public: +LinElastOctetBeam(); +}; + +class LinElastOctetTop : public LinElastProblem +{ +public: +LinElastOctetTop(); +}; + ParameterizedProblem* InitParameterizedProblem(); #endif diff --git a/script/install_dane.bash b/script/install_dane.bash index 5834b174..36681993 100755 --- a/script/install_dane.bash +++ b/script/install_dane.bash @@ -89,7 +89,6 @@ fi cd $LIB_DIR if [ ! -d "mumps" ]; then git clone https://github.com/scivision/mumps.git - check_result $? mumps-clone cd ./mumps git checkout v5.6.2.1 export tempMKLROOT=$MKLROOT @@ -107,7 +106,6 @@ fi cd $LIB_DIR if [ ! -d "mfem" ]; then git clone https://github.com/mfem/mfem.git - check_result $? mfem-clone cd mfem git checkout v4.6 mkdir -p ./build && cd ./build @@ -123,7 +121,6 @@ fi cd $LIB_DIR if [ ! -d "yaml-cpp" ]; then git clone https://github.com/jbeder/yaml-cpp.git - check_result $? yaml-cpp-clone mkdir -p ./yaml-cpp/lib && cd ./yaml-cpp/lib cmake .. -DYAML_BUILD_SHARED_LIBS=on -DCMAKE_INSTALL_PREFIX=$LIB_DIR check_result $? yaml-config @@ -136,7 +133,6 @@ fi cd $LIB_DIR if [ ! -d "googletest" ]; then git clone https://github.com/google/googletest - check_result $? googletest-clone cd ./googletest git checkout tags/release-1.12.1 -b v1.12.1 mkdir ./build && cd ./build diff --git a/src/component_topology_handler.cpp b/src/component_topology_handler.cpp index 25a2a863..a0220363 100644 --- a/src/component_topology_handler.cpp +++ b/src/component_topology_handler.cpp @@ -134,6 +134,16 @@ void ComponentTopologyHandler::SetupComponents() ComponentBdrAttrCheck(components[idx]); } + + for (size_t i = 0; i < num_comp; i++) + { + if (!(components[i]->GetNodalFESpace())) + { + int _order = 1; + components[i]->SetCurvature(_order, false) ; + } + } + // Check all component meshes have the same FECollection name. std::string name(components[0]->GetNodalFESpace()->FEColl()->Name()); for (int c = 0; c < num_comp; c++) diff --git a/src/linelast_solver.cpp b/src/linelast_solver.cpp index b78b0f4c..2e630bcc 100644 --- a/src/linelast_solver.cpp +++ b/src/linelast_solver.cpp @@ -303,15 +303,86 @@ void LinElastSolver::AssembleInterfaceMatrices() a_itf->AssembleInterfaceMatrices(mats); } +void LinElastSolver::SolveROM() +{ + // View vector for U. + BlockVector *U_domain = NULL; + if (separate_variable_basis) + U_domain = new BlockVector(U->GetData(), var_offsets); + else + U_domain = new BlockVector(U->GetData(), domain_offsets); + + rom_handler->Solve(U_domain); + /* if (scale_output) + { + cout<<"previous norm is: "<Norml2()<Norml2()<("solver/scale_output_ROM", false); + fnorm = RHS->Norml2(); + /* if (scale_output) + { + *RHS /= fnorm; + cout<<"ROM input is scaled with norm: "<Norml2()<GetData(), var_offsets); + else + RHS_domain = new BlockVector(RHS->GetData(), domain_offsets); + + rom_handler->ProjectRHSOnReducedBasis(RHS_domain); + + delete RHS_domain; +} + bool LinElastSolver::Solve(SampleGenerator *sample_generator) { // If using direct solver, returns always true. bool converged = true; + cout<<"lambda is: "<constant<constant<("solver/max_iter", 10000); double rtol = config.GetOption("solver/relative_tolerance", 1.e-15); double atol = config.GetOption("solver/absolute_tolerance", 1.e-15); int print_level = config.GetOption("solver/print_level", 0); + scale_output = config.GetOption("solver/scale_output_FOM", false); + bool scale_input = config.GetOption("solver/scale_input_FOM", false); + bool rand_perturb = config.GetOption("solver/rand_perturb", false); + + if (scale_output == true) + {scale_input = true;} + + fnorm = RHS->Norml2(); + std::string mode = config.GetOption("main/mode", "run_example"); + if (mode == "sample_generation"){ + cout << "unmodified norm: " << fnorm << endl; + if (scale_input) + { + *RHS /= fnorm; + cout<<"FOM input is scaled with norm: "<Norml2()<Norml2()<Norml2()) || U->Norml2() > 1e16) // Check for NaN or divergent solutions + { + cout<<"FOUND NAN"<Norml2()<Norml2()<general_scalar_ptr[0]); - - mu_c[i] = new FunctionCoefficient(problem->general_scalar_ptr[1]); + double lambda_i = (problem->general_scalar_ptr[0])(_x,_t); + lambda = lambda_i; + lambda_c[i] = new ConstantCoefficient(lambda_i); + + double mu_i = (problem->general_scalar_ptr[1])(_x,_t); + mu = mu_i; + mu_c[i] = new ConstantCoefficient(mu_i); + } // Set BCs, the switch on BC type is done inside SetupRHSBCOperators diff --git a/src/main_workflow.cpp b/src/main_workflow.cpp index 6a1202c5..edbc989f 100644 --- a/src/main_workflow.cpp +++ b/src/main_workflow.cpp @@ -174,8 +174,9 @@ void GenerateSamples(MPI_Comm comm) test->BuildOperators(); test->SetupBCOperators(); test->Assemble(); - + bool converged = test->Solve(sample_generator); + cout<<"converged: "<SaveSolution(sol_file); test->SaveVisualization(); diff --git a/src/multiblock_solver.cpp b/src/multiblock_solver.cpp index d946c710..dfb26571 100644 --- a/src/multiblock_solver.cpp +++ b/src/multiblock_solver.cpp @@ -658,6 +658,7 @@ void MultiBlockSolver::SaveSnapshots(SampleGenerator *sample_generator) BlockVector *U_snapshots = PrepareSnapshots(basis_tags); Array col_idxs; + sample_generator->SaveSnapshot(U_snapshots, basis_tags, col_idxs); sample_generator->SaveSnapshotPorts(topol_handler, col_idxs); diff --git a/src/parameterized_problem.cpp b/src/parameterized_problem.cpp index 10699fc0..8afeb991 100644 --- a/src/parameterized_problem.cpp +++ b/src/parameterized_problem.cpp @@ -298,6 +298,76 @@ void dirichlet(const Vector &x, double t, Vector &u) } // namespace linelast_frame_wind +namespace linelast_lattice_roof +{ +double qsnow_f; +double qpoint_f; +double density; +double g; + +void gravity_load(const Vector &x, double t, Vector &f) +{ + f = 0.0; + f(f.Size()-1) = -density * g; +} + +void snow_load(const Vector &x, double t, Vector &f) +{ + f = 0.0; + f(f.Size()-1) = qsnow_f; +} + +void point_load(const Vector &x, double t, Vector &f) +{ + f = 0.0; + f(f.Size()-1) = qpoint_f; +} + +void dirichlet(const Vector &x, double t, Vector &u) +{ + u = 0.0; +} + +} //namespace linelast_lattice_roof + +namespace linelast_octet +{ + +double disp_z; +double force_z; +double density; +double g; + +void fixed_bc(const Vector &x, double t, Vector &u) // Fixed positions - Global attribute 1 +{ + u = 0.0; +} + +void disp_z_bc(const Vector &x, double t, Vector &u) // Prescribed vertical displacements - Global attribute 2 +{ + u = 0.0; + u(2) = -disp_z; +} + +void force_z_bc(const Vector &x, double t, Vector &f) // External vertical force - Global attribute 3 +{ + f = 0.0; + f(2) = -force_z; +} + +void fixed_yz_bc(const Vector &x, double t, Vector &u) // Fixed y and z positions - Global attribute 4 +{ + u(1) = 0.0; + u(2) = 0.0; +} + +void gravity_load(const Vector &x, double t, Vector &f) // Gravity load - Global attribute 5 +{ + f = 0.0; + f(2) = -density * g; +} + +} // namespace linelast_octet namespace advdiff_problem { @@ -330,50 +400,81 @@ namespace linelast_cwtrain // Probabilities double lx; double ly; + double lz; double rx; double ry; + double rz; double dx; double dy; + double dz; double ux; double uy; + double uz; + double ix; + double iy; + double iz; + double ox; + double oy; + double oz; double bx; double by; + double bz; // Constant force double l_ux; double l_uy; + double l_uz; double r_fx; double r_fy; + double r_fz; double u_fx; double u_fy; + double u_fz; double d_fx; double d_fy; + double d_fz; + double i_fx; + double i_fy; + double i_fz; + double o_fx; + double o_fy; + double o_fz; double b_fx; double b_fy; + double b_fz; // Amplitudes double xu_amp; - double xf_amp; double yu_amp; + double zu_amp; + double xf_amp; double yf_amp; + double zf_amp; double bxf_amp; double byf_amp; + double bzf_amp; // Frequencies double xu_freq; - double xf_freq; double yu_freq; + double zu_freq; + double xf_freq; double yf_freq; + double zf_freq; double bxf_freq; double byf_freq; + double bzf_freq; // Sine offsets double xu_offset; - double xf_offset; double yu_offset; + double zu_offset; + double xf_offset; double yf_offset; + double zf_offset; double bxf_offset; double byf_offset; + double bzf_offset; double perturb_func(const double x, const double amp, const double freq, const double offset) { @@ -382,42 +483,81 @@ double perturb_func(const double x, const double amp, const double freq, const d void left_disp(const Vector &x, double t, Vector &u) { - if (lx >= 0.5) - u(0) = l_ux + perturb_func(x(0), xu_amp, xu_freq, xu_offset); - if (ly >= 0.5) - u(1) = l_uy + perturb_func(x(1), yu_amp, yu_freq, yu_offset); + if (lx >= 0.0) + u(0) = l_ux; + 1.0*perturb_func(x(0), xu_amp, xu_freq, xu_offset); + if (ly >= 0.0) + u(1) = l_uy; + 1.0*perturb_func(x(1), yu_amp, yu_freq, yu_offset); + if (x.Size() == 3) + if (lz >= 0.0) + u(2) = l_uz; + 1.0*perturb_func(x(2), zu_amp, zu_freq, zu_offset); + + } void right_disp(const Vector &x, double t, Vector &u) { - if (rx >= 0.5) - u(0) = r_fx + perturb_func(x(0), xf_amp, xf_freq, xf_offset); - if (ry >= 0.5) - u(1) = r_fy + perturb_func(x(1), yf_amp, yf_freq, yf_offset); + if (rx >= 0.0) + u(0) = r_fx; + 1.0*perturb_func(x(0), xf_amp, xf_freq, xf_offset); + if (ry >= 0.0) + u(1) = r_fy; + 1.0*perturb_func(x(1), yf_amp, yf_freq, yf_offset); + if (x.Size() == 3) + if (rz >= 0.0) + u(2) = r_fz; + 1.0*perturb_func(x(2), zf_amp, zf_freq, zf_offset); } void up_disp(const Vector &x, double t, Vector &u) { - if (ux >= 0.5) - u(0) = u_fx + perturb_func(x(0), xf_amp, xf_freq, xf_offset); - if (uy >= 0.5) - u(1) = u_fy + perturb_func(x(1), yf_amp, yf_freq, yf_offset); + if (ux >= 0.0) + u(0) = u_fx; + 1.0*perturb_func(x(0), xf_amp, xf_freq, xf_offset); + if (uy >= 0.0) + u(1) = u_fy; + 1.0*perturb_func(x(1), yf_amp, yf_freq, yf_offset); + if (x.Size() == 3) + if (uz >= 0.0) + u(2) = u_fz; + 1.0*perturb_func(x(2), zf_amp, zf_freq, zf_offset); } void down_disp(const Vector &x, double t, Vector &u) { - if (dx >= 0.5) - u(0) = d_fx + perturb_func(x(0), xf_amp, xf_freq, xf_offset); - if (dy >= 0.5) - u(1) = d_fy + perturb_func(x(1), yf_amp, yf_freq, yf_offset); + if (dx >= 0.0) + u(0) = d_fx; + 1.0*perturb_func(x(0), xf_amp, xf_freq, xf_offset); + if (dy >= 0.0) + u(1) = d_fy; + 1.0*perturb_func(x(1), yf_amp, yf_freq, yf_offset); + if (x.Size() == 3) + if (dz >= 0.0) + u(2) = d_fz; + 1.0*perturb_func(x(2), zf_amp, zf_freq, zf_offset); +} + +void in_disp(const Vector &x, double t, Vector &u) +{ + if (ix >= 0.0) + u(0) = i_fx; + 1.0*perturb_func(x(0), xf_amp, xf_freq, xf_offset); + if (iy >= 0.0) + u(1) = i_fy; + 1.0*perturb_func(x(1), yf_amp, yf_freq, yf_offset); + if (x.Size() == 3) + if (iz >= 0.0) + u(2) = i_fz; + 1.0*perturb_func(x(2), zf_amp, zf_freq, zf_offset); +} + +void out_disp(const Vector &x, double t, Vector &u) +{ + if (ox >= 0.0) + u(0) = o_fx; + 1.0*perturb_func(x(0), xf_amp, xf_freq, xf_offset); + if (dy >= 0.0) + u(1) = o_fy; + 1.0*perturb_func(x(1), yf_amp, yf_freq, yf_offset); + if (x.Size() == 3) + if (oz >= 0.0) + u(2) = o_fz; + 1.0*perturb_func(x(2), zf_amp, zf_freq, zf_offset); } void body_force(const Vector &x, double t, Vector &u) { - if (bx >= 0.5) + if (bx >= 0.0) u(0) = b_fx + perturb_func(x(0), bxf_amp, bxf_freq, bxf_offset); - if (by >= 0.5) + if (by >= 0.0) u(1) = b_fy + perturb_func(x(1), byf_amp, byf_freq, byf_offset); + if (x.Size() == 3) + if (bz >= 0.0) + u(2) = b_fz + perturb_func(x(2), bzf_amp, bzf_freq, bzf_offset); } } // namespace linelast_cwtrain @@ -545,14 +685,34 @@ ParameterizedProblem* InitParameterizedProblem() { problem = new LinElastComponentWiseTrain(); } + else if (problem_name == "linelast_cwtrain3d") + { + problem = new LinElastComponentWiseTrain3D(); + } else if (problem_name == "linelast_frame_wind") { problem = new LinElastFrameWind(); } + else if (problem_name == "linelast_lattice_roof") + { + problem = new LinElastLatticeRoof(); + } else if (problem_name == "advdiff_flow_past_array") { problem = new AdvDiffFlowPastArray(); } + else if (problem_name == "linelast_octet_cube") + { + problem = new LinElastOctetCube(); + } + else if (problem_name == "linelast_octet_beam") + { + problem = new LinElastOctetBeam(); + } + else if (problem_name == "linelast_octet_top") + { + problem = new LinElastOctetTop(); + } else { mfem_error("Unknown parameterized problem name!\n"); @@ -1237,7 +1397,7 @@ LinElastFrameWind::LinElastFrameWind() vector_bdr_ptr[3] = &(function_factory::linelast_frame_wind::dirichlet); // battr 5: Unloaded - battr[4] = 3; + battr[4] = 5; // maybe change back to 3? bdr_type[4] = BoundaryType::NEUMANN; vector_bdr_ptr[4] = NULL; @@ -1270,8 +1430,284 @@ LinElastFrameWind::LinElastFrameWind() general_vector_ptr[0] = NULL; // for now, change if current params doesn't work well enough. vector_rhs_ptr = &(function_factory::linelast_frame_wind::gravity_load); + } +LinElastLatticeRoof::LinElastLatticeRoof() + : LinElastProblem() +{ + // pointer to static function. + bdr_type.SetSize(5); + battr.SetSize(5); + vector_bdr_ptr.SetSize(5); + + // battr 1: Dirichlet BCs + battr[0] = 1; + bdr_type[0] = BoundaryType::DIRICHLET; + vector_bdr_ptr[0] = &(function_factory::linelast_lattice_roof::dirichlet); + + // battr 2: Point load + battr[1] = 2; + bdr_type[1] = BoundaryType::NEUMANN; + vector_bdr_ptr[1] = &(function_factory::linelast_lattice_roof::point_load); + + // battr 3: Snow load + battr[2] = 3; + bdr_type[2] = BoundaryType::NEUMANN; + vector_bdr_ptr[2] = &(function_factory::linelast_lattice_roof::point_load); + + // battr 4: Unloaded + battr[3] = 4; + bdr_type[3] = BoundaryType::NEUMANN; + vector_bdr_ptr[3] = NULL; + + // battr 5: Unloaded + battr[4] = 5; // maybe change back to 3? + bdr_type[4] = BoundaryType::NEUMANN; + vector_bdr_ptr[4] = NULL; + + // Set materials + general_scalar_ptr.SetSize(2); + general_scalar_ptr[0] = function_factory::linelast_problem::lambda; + general_scalar_ptr[1] = function_factory::linelast_problem::mu; + + // Default values. + function_factory::linelast_problem::_lambda = 384615384615.3846; + function_factory::linelast_problem::_mu = 76923076923.07692; + function_factory::linelast_lattice_roof::qsnow_f = -2000.0; // [N/m2] + function_factory::linelast_lattice_roof::qpoint_f = -100000.0; // [N/m2] + function_factory::linelast_lattice_roof::density = 7800.0; //[kg/m3] + function_factory::linelast_lattice_roof::g = 9.81; + + param_map["lambda"] = 0; + param_map["mu"] = 1; + param_map["qsnow_f"] = 2; + param_map["qpoint_f"] = 3; + param_map["density"] = 4; + param_map["g"] = 5; + + param_ptr.SetSize(6); + param_ptr[0] = &(function_factory::linelast_problem::_lambda); + param_ptr[1] = &(function_factory::linelast_problem::_mu); + param_ptr[2] = &(function_factory::linelast_lattice_roof::qsnow_f); + param_ptr[3] = &(function_factory::linelast_lattice_roof::qpoint_f); + param_ptr[4] = &(function_factory::linelast_lattice_roof::density); + param_ptr[5] = &(function_factory::linelast_lattice_roof::g); + + general_vector_ptr.SetSize(1); + general_vector_ptr[0] = NULL; // for now, change if current params doesn't work well enough. + + vector_rhs_ptr = &(function_factory::linelast_lattice_roof::gravity_load); +} + +/* + LinElast Octet Truss classes +*/ + + +LinElastOctetCube::LinElastOctetCube() + : LinElastProblem() +{ +// Applied BCs: 1 fixed end (glob attr 1), prescribed displacements in end point (glob attr 2) +// Gravity not significant +bdr_type.SetSize(5); +battr.SetSize(5); +vector_bdr_ptr.SetSize(5); + +// Fixed end +battr[0] = 1; +bdr_type[0] = BoundaryType::DIRICHLET; +vector_bdr_ptr[0] = &(function_factory::linelast_octet::fixed_bc); + +// Prescribed displacements +battr[1] = 2; +bdr_type[1] = BoundaryType::DIRICHLET; +vector_bdr_ptr[1] = &(function_factory::linelast_octet::disp_z_bc); + +// Applied force (unused) +battr[2] = 3; +bdr_type[2] = BoundaryType::NEUMANN; +vector_bdr_ptr[2] = NULL; + +// Fixed yz (unused) +battr[3] = 4; +bdr_type[3] = BoundaryType::NEUMANN; +vector_bdr_ptr[3] = NULL; + +// Unloaded +battr[4] = 5; +bdr_type[4] = BoundaryType::NEUMANN; +vector_bdr_ptr[4] = NULL; + +// Set materials +general_scalar_ptr.SetSize(2); +general_scalar_ptr[0] = function_factory::linelast_problem::lambda; +general_scalar_ptr[1] = function_factory::linelast_problem::mu; + +// Default values. +function_factory::linelast_octet::disp_z = 0.5; +function_factory::linelast_octet::force_z = 0.0; +function_factory::linelast_problem::_lambda = 5.711538461538462; +function_factory::linelast_problem::_mu = 3.8076923076923075; +function_factory::linelast_octet::density = 0.0; +function_factory::linelast_octet::g = 0.0; + +param_map["force_z"] = 0; +param_map["lambda"] = 1; +param_map["mu"] = 2; +param_map["density"] = 3; +param_map["g"] = 4; +param_map["disp_z"] = 5; + +param_ptr.SetSize(6); +param_ptr[0] = &(function_factory::linelast_octet::force_z); +param_ptr[1] = &(function_factory::linelast_problem::_lambda); +param_ptr[2] = &(function_factory::linelast_problem::_mu); +param_ptr[3] = &(function_factory::linelast_octet::density); +param_ptr[4] = &(function_factory::linelast_octet::g); +param_ptr[5] = &(function_factory::linelast_octet::disp_z); + +general_vector_ptr.SetSize(1); +general_vector_ptr[0] = NULL; +}; + +LinElastOctetBeam::LinElastOctetBeam() + : LinElastProblem() +{ +// Applied BCs: 1 fixed end (glob attr 1), fixed yz in other end (glob attr 4) +// applied force in middle unit (glob attr 3) +// Gravity applied +bdr_type.SetSize(5); +battr.SetSize(5); +vector_bdr_ptr.SetSize(5); + +// Fixed end +battr[0] = 1; +bdr_type[0] = BoundaryType::DIRICHLET; +vector_bdr_ptr[0] = &(function_factory::linelast_octet::fixed_bc); + +// Prescribed displacements (unused) +battr[1] = 2; +bdr_type[1] = BoundaryType::NEUMANN; +vector_bdr_ptr[1] = NULL; + +// Applied force +battr[2] = 3; +bdr_type[2] = BoundaryType::NEUMANN; +vector_bdr_ptr[2] = &(function_factory::linelast_octet::force_z_bc); + +// Fixed yz +battr[3] = 4; +bdr_type[3] = BoundaryType::DIRICHLET; +vector_bdr_ptr[3] = &(function_factory::linelast_octet::fixed_yz_bc); + +// Unloaded +battr[4] = 5; +bdr_type[4] = BoundaryType::NEUMANN; +vector_bdr_ptr[4] = NULL; + +// Set materials +general_scalar_ptr.SetSize(2); +general_scalar_ptr[0] = function_factory::linelast_problem::lambda; +general_scalar_ptr[1] = function_factory::linelast_problem::mu; + +// Default values. +function_factory::linelast_octet::disp_z = 0.0; +function_factory::linelast_octet::force_z = 0.005; // 50 N +function_factory::linelast_problem::_lambda = 5.711538461538462; +function_factory::linelast_problem::_mu = 3.8076923076923075; +function_factory::linelast_octet::density = 9.3 * 1e-4; +function_factory::linelast_octet::g = 9.81 * 1e-4; + +param_map["force_z"] = 0; +param_map["lambda"] = 1; +param_map["mu"] = 2; +param_map["density"] = 3; +param_map["g"] = 4; +param_map["disp_z"] = 5; + +param_ptr.SetSize(6); +param_ptr[0] = &(function_factory::linelast_octet::force_z); +param_ptr[1] = &(function_factory::linelast_problem::_lambda); +param_ptr[2] = &(function_factory::linelast_problem::_mu); +param_ptr[3] = &(function_factory::linelast_octet::density); +param_ptr[4] = &(function_factory::linelast_octet::g); +param_ptr[5] = &(function_factory::linelast_octet::disp_z); + +general_vector_ptr.SetSize(1); +general_vector_ptr[0] = NULL; +vector_rhs_ptr = &(function_factory::linelast_octet::gravity_load); +}; + + +LinElastOctetTop::LinElastOctetTop() + : LinElastProblem() +{ +// Applied BCs: 1 fixed end (glob attr 1), applied force in end point (glob attr 3) +// Gravity applied +bdr_type.SetSize(5); +battr.SetSize(5); +vector_bdr_ptr.SetSize(5); + +// Fixed end +battr[0] = 1; +bdr_type[0] = BoundaryType::DIRICHLET; +vector_bdr_ptr[0] = &(function_factory::linelast_octet::fixed_bc); + +// Prescribed displacements (unused) +battr[1] = 2; +bdr_type[1] = BoundaryType::NEUMANN; +vector_bdr_ptr[1] = NULL; + +// Applied force +battr[2] = 3; +bdr_type[2] = BoundaryType::NEUMANN; +vector_bdr_ptr[2] = &(function_factory::linelast_octet::force_z_bc); + +// Fixed yz (unused) +battr[3] = 4; +bdr_type[3] = BoundaryType::NEUMANN; +vector_bdr_ptr[3] = NULL; + +// Unloaded +battr[4] = 5; +bdr_type[4] = BoundaryType::NEUMANN; +vector_bdr_ptr[4] = NULL; + +// Set materials +general_scalar_ptr.SetSize(2); +general_scalar_ptr[0] = function_factory::linelast_problem::lambda; +general_scalar_ptr[1] = function_factory::linelast_problem::mu; + +// Default values. +function_factory::linelast_octet::disp_z = 0.5; +function_factory::linelast_octet::force_z = 0.005; +function_factory::linelast_problem::_lambda = 5.711538461538462; +function_factory::linelast_problem::_mu = 3.8076923076923075; +function_factory::linelast_octet::density = 9.3 * 1e-4; +function_factory::linelast_octet::g = 9.81 * 1e-4; + +param_map["force_z"] = 0; +param_map["lambda"] = 1; +param_map["mu"] = 2; +param_map["density"] = 3; +param_map["g"] = 4; +param_map["disp_z"] = 5; + +param_ptr.SetSize(6); +param_ptr[0] = &(function_factory::linelast_octet::force_z); +param_ptr[1] = &(function_factory::linelast_problem::_lambda); +param_ptr[2] = &(function_factory::linelast_problem::_mu); +param_ptr[3] = &(function_factory::linelast_octet::density); +param_ptr[4] = &(function_factory::linelast_octet::g); +param_ptr[5] = &(function_factory::linelast_octet::disp_z); + +general_vector_ptr.SetSize(1); +general_vector_ptr[0] = NULL; + +vector_rhs_ptr = &(function_factory::linelast_octet::gravity_load); +}; + /* AdvDiffFlowPastArray */ @@ -1361,50 +1797,327 @@ LinElastComponentWiseTrain::LinElastComponentWiseTrain() // Probabilities default values function_factory::linelast_cwtrain::lx = 0.0; function_factory::linelast_cwtrain::ly = 0.0; + function_factory::linelast_cwtrain::lz = 0.0; function_factory::linelast_cwtrain::rx = 0.0; function_factory::linelast_cwtrain::ry = 0.0; + function_factory::linelast_cwtrain::rz = 0.0; function_factory::linelast_cwtrain::dx = 0.0; function_factory::linelast_cwtrain::dy = 0.0; + function_factory::linelast_cwtrain::dz = 0.0; function_factory::linelast_cwtrain::ux = 0.0; function_factory::linelast_cwtrain::uy = 0.0; + function_factory::linelast_cwtrain::uz = 0.0; function_factory::linelast_cwtrain::bx = 0.0; function_factory::linelast_cwtrain::by = 0.0; + function_factory::linelast_cwtrain::bz = 0.0; // Constant force default values function_factory::linelast_cwtrain::l_ux= 0.0; function_factory::linelast_cwtrain::l_uy = 0.0; + function_factory::linelast_cwtrain::l_uz = 0.0; function_factory::linelast_cwtrain::r_fx = 0.0; function_factory::linelast_cwtrain::r_fy = 0.0; + function_factory::linelast_cwtrain::r_fz = 0.0; function_factory::linelast_cwtrain::u_fx = 0.0; function_factory::linelast_cwtrain::u_fy = 0.0; + function_factory::linelast_cwtrain::u_fz = 0.0; function_factory::linelast_cwtrain::d_fx = 0.0; function_factory::linelast_cwtrain::d_fy = 0.0; + function_factory::linelast_cwtrain::d_fz = 0.0; function_factory::linelast_cwtrain::b_fx = 0.0; function_factory::linelast_cwtrain::b_fy = 0.0; + function_factory::linelast_cwtrain::b_fz = 0.0; // Amplitudes default values function_factory::linelast_cwtrain::xu_amp = 1.0; function_factory::linelast_cwtrain::yu_amp = 1.0; + function_factory::linelast_cwtrain::zu_amp = 1.0; function_factory::linelast_cwtrain::xf_amp = 1.0; function_factory::linelast_cwtrain::yf_amp = 1.0; + function_factory::linelast_cwtrain::zf_amp = 1.0; function_factory::linelast_cwtrain::bxf_amp = 1.0; function_factory::linelast_cwtrain::byf_amp = 1.0; + function_factory::linelast_cwtrain::bzf_amp = 1.0; // Frequencies default values function_factory::linelast_cwtrain::xu_freq = 1.0; function_factory::linelast_cwtrain::yu_freq = 1.0; + function_factory::linelast_cwtrain::zu_freq = 1.0; function_factory::linelast_cwtrain::xf_freq = 1.0; function_factory::linelast_cwtrain::yf_freq = 1.0; + function_factory::linelast_cwtrain::zf_freq = 1.0; function_factory::linelast_cwtrain::bxf_freq = 1.0; function_factory::linelast_cwtrain::byf_freq = 1.0; + function_factory::linelast_cwtrain::bzf_freq = 1.0; // Sine offsets default values + function_factory::linelast_cwtrain::xu_offset = 0.0; function_factory::linelast_cwtrain::yu_offset = 0.0; + function_factory::linelast_cwtrain::zu_offset = 0.0; + function_factory::linelast_cwtrain::xf_offset = 0.0; + function_factory::linelast_cwtrain::yf_offset = 0.0; + function_factory::linelast_cwtrain::zf_offset = 0.0; + function_factory::linelast_cwtrain::bxf_offset = 0.0; + function_factory::linelast_cwtrain::byf_offset = 0.0; + function_factory::linelast_cwtrain::bzf_offset = 0.0; + + // Material parameters default values + function_factory::linelast_problem::_lambda = 1.0; + function_factory::linelast_problem::_mu = 1.0; + + // Parameter map + param_map["l_ux"] = 0; + param_map["l_uy"] = 1; + param_map["l_uz"] = 2; + param_map["r_fx"] = 3; + param_map["r_fy"] = 4; + param_map["r_fz"] = 5; + param_map["u_fx"] = 6; + param_map["u_fy"] = 7; + param_map["u_fz"] = 8; + param_map["d_fx"] = 9; + param_map["d_fy"] = 10; + param_map["d_fz"] = 11; + param_map["lx"] = 12; + param_map["ly"] = 13; + param_map["lz"] = 14; + param_map["rx"] = 15; + param_map["ry"] = 16; + param_map["rz"] = 17; + param_map["dx"] = 18; + param_map["dy"] = 19; + param_map["dz"] = 20; + param_map["ux"] = 21; + param_map["uy"] = 22; + param_map["uz"] = 23; + param_map["lambda"] = 24; + param_map["mu"] = 25; + param_map["xu_amp"] = 26; + param_map["xu_freq"] = 27; + param_map["xu_offset"] = 28; + param_map["xf_amp"] = 29; + param_map["xf_freq"] = 30; + param_map["xf_offset"] = 31; + param_map["yu_amp"] = 32; + param_map["yu_freq"] = 33; + param_map["yu_offset"] = 34; + param_map["yf_amp"] = 35; + param_map["yf_freq"] = 36; + param_map["yf_offset"] = 37; + param_map["zu_amp"] = 38; + param_map["zu_freq"] = 39; + param_map["zu_offset"] = 40; + param_map["zf_amp"] = 41; + param_map["zf_freq"] = 42; + param_map["zf_offset"] = 43; + param_map["b_fx"] = 44; + param_map["b_fy"] = 45; + param_map["b_fz"] = 46; + param_map["bxf_amp"] = 47; + param_map["bxf_freq"] = 48; + param_map["bxf_offset"] = 49; + param_map["byf_amp"] = 50; + param_map["byf_freq"] = 51; + param_map["byf_offset"] = 52; + param_map["bzf_amp"] = 53; + param_map["bzf_freq"] = 54; + param_map["bzf_offset"] = 55; + param_map["bx"] = 56; + param_map["by"] = 57; + param_map["bz"] = 58; + + param_ptr.SetSize(59); + param_ptr[0] = &(function_factory::linelast_cwtrain::l_ux); + param_ptr[1] = &(function_factory::linelast_cwtrain::l_uy); + param_ptr[2] = &(function_factory::linelast_cwtrain::l_uz); + param_ptr[3] = &(function_factory::linelast_cwtrain::r_fx); + param_ptr[4] = &(function_factory::linelast_cwtrain::r_fy); + param_ptr[5] = &(function_factory::linelast_cwtrain::r_fz); + param_ptr[6] = &(function_factory::linelast_cwtrain::u_fx); + param_ptr[7] = &(function_factory::linelast_cwtrain::u_fy); + param_ptr[8] = &(function_factory::linelast_cwtrain::u_fz); + param_ptr[9] = &(function_factory::linelast_cwtrain::d_fx); + param_ptr[10] = &(function_factory::linelast_cwtrain::d_fy); + param_ptr[11] = &(function_factory::linelast_cwtrain::d_fz); + param_ptr[12] = &(function_factory::linelast_cwtrain::lx); + param_ptr[13] = &(function_factory::linelast_cwtrain::ly); + param_ptr[14] = &(function_factory::linelast_cwtrain::lz); + param_ptr[15] = &(function_factory::linelast_cwtrain::rx); + param_ptr[16] = &(function_factory::linelast_cwtrain::ry); + param_ptr[17] = &(function_factory::linelast_cwtrain::rz); + param_ptr[18] = &(function_factory::linelast_cwtrain::dx); + param_ptr[19] = &(function_factory::linelast_cwtrain::dy); + param_ptr[20] = &(function_factory::linelast_cwtrain::dz); + param_ptr[21] = &(function_factory::linelast_cwtrain::ux); + param_ptr[22] = &(function_factory::linelast_cwtrain::uy); + param_ptr[23] = &(function_factory::linelast_cwtrain::uz); + param_ptr[24] = &(function_factory::linelast_problem::_lambda); + param_ptr[25] = &(function_factory::linelast_problem::_mu); + param_ptr[26] = &(function_factory::linelast_cwtrain::xu_amp); + param_ptr[27] = &(function_factory::linelast_cwtrain::xu_freq); + param_ptr[28] = &(function_factory::linelast_cwtrain::xu_offset); + param_ptr[29] = &(function_factory::linelast_cwtrain::xf_amp); + param_ptr[30] = &(function_factory::linelast_cwtrain::xf_freq); + param_ptr[31] = &(function_factory::linelast_cwtrain::xf_offset); + param_ptr[32] = &(function_factory::linelast_cwtrain::yu_amp); + param_ptr[33] = &(function_factory::linelast_cwtrain::yu_freq); + param_ptr[34] = &(function_factory::linelast_cwtrain::yu_offset); + param_ptr[35] = &(function_factory::linelast_cwtrain::yf_amp); + param_ptr[36] = &(function_factory::linelast_cwtrain::yf_freq); + param_ptr[37] = &(function_factory::linelast_cwtrain::yf_offset); + param_ptr[38] = &(function_factory::linelast_cwtrain::zu_amp); + param_ptr[39] = &(function_factory::linelast_cwtrain::zu_freq); + param_ptr[40] = &(function_factory::linelast_cwtrain::zu_offset); + param_ptr[41] = &(function_factory::linelast_cwtrain::zf_amp); + param_ptr[42] = &(function_factory::linelast_cwtrain::zf_freq); + param_ptr[43] = &(function_factory::linelast_cwtrain::zf_offset); + + param_ptr[44] = &(function_factory::linelast_cwtrain::b_fx); + param_ptr[45] = &(function_factory::linelast_cwtrain::b_fy); + param_ptr[46] = &(function_factory::linelast_cwtrain::b_fz); + param_ptr[47] = &(function_factory::linelast_cwtrain::bxf_amp); + param_ptr[48] = &(function_factory::linelast_cwtrain::bxf_freq); + param_ptr[49] = &(function_factory::linelast_cwtrain::bxf_offset); + param_ptr[50] = &(function_factory::linelast_cwtrain::byf_amp); + param_ptr[51] = &(function_factory::linelast_cwtrain::byf_freq); + param_ptr[52] = &(function_factory::linelast_cwtrain::byf_offset); + param_ptr[53] = &(function_factory::linelast_cwtrain::bzf_amp); + param_ptr[54] = &(function_factory::linelast_cwtrain::bzf_freq); + param_ptr[55] = &(function_factory::linelast_cwtrain::bzf_offset); + param_ptr[56] = &(function_factory::linelast_cwtrain::bx); + param_ptr[57] = &(function_factory::linelast_cwtrain::by); + param_ptr[58] = &(function_factory::linelast_cwtrain::bz); + + general_vector_ptr.SetSize(1); + general_vector_ptr[0] = &(function_factory::linelast_cwtrain::body_force); +} + +LinElastComponentWiseTrain3D::LinElastComponentWiseTrain3D() + : LinElastProblem() +{ + // pointer to static function. + bdr_type.SetSize(7); + battr.SetSize(7); + vector_bdr_ptr.SetSize(7); + + // -y + battr[0] = 1; + bdr_type[0] = BoundaryType::NEUMANN; + vector_bdr_ptr[0] = &(function_factory::linelast_cwtrain::down_disp); + + // x + battr[1] = 2; + bdr_type[1] = BoundaryType::NEUMANN; + vector_bdr_ptr[1] = &(function_factory::linelast_cwtrain::right_disp); + + // y + battr[2] = 3; + bdr_type[2] = BoundaryType::NEUMANN; + vector_bdr_ptr[2] = &(function_factory::linelast_cwtrain::up_disp); + + // -x + battr[3] = 4; + bdr_type[3] = BoundaryType::DIRICHLET; + vector_bdr_ptr[3] = &(function_factory::linelast_cwtrain::left_disp); + + // -z + battr[4] = 5; + bdr_type[4] = BoundaryType::NEUMANN; + vector_bdr_ptr[4] = &(function_factory::linelast_cwtrain::in_disp); + + // z + battr[5] = 6; + bdr_type[5] = BoundaryType::NEUMANN; + vector_bdr_ptr[5] = &(function_factory::linelast_cwtrain::out_disp); + + // None + battr[6] = 7; + bdr_type[6] = BoundaryType::NEUMANN; + vector_bdr_ptr[6] = NULL; + + // Set materials + general_scalar_ptr.SetSize(2); + general_scalar_ptr[0] = function_factory::linelast_problem::lambda; + general_scalar_ptr[1] = function_factory::linelast_problem::mu; + + // Probabilities default values + function_factory::linelast_cwtrain::lx = 0.0; + function_factory::linelast_cwtrain::ly = 0.0; + function_factory::linelast_cwtrain::lz = 0.0; + function_factory::linelast_cwtrain::rx = 0.0; + function_factory::linelast_cwtrain::ry = 0.0; + function_factory::linelast_cwtrain::rz = 0.0; + function_factory::linelast_cwtrain::dx = 0.0; + function_factory::linelast_cwtrain::dy = 0.0; + function_factory::linelast_cwtrain::dz = 0.0; + function_factory::linelast_cwtrain::ux = 0.0; + function_factory::linelast_cwtrain::uy = 0.0; + function_factory::linelast_cwtrain::uz = 0.0; + function_factory::linelast_cwtrain::ix = 0.0; + function_factory::linelast_cwtrain::iy = 0.0; + function_factory::linelast_cwtrain::iz = 0.0; + function_factory::linelast_cwtrain::ox = 0.0; + function_factory::linelast_cwtrain::oy = 0.0; + function_factory::linelast_cwtrain::oz = 0.0; + function_factory::linelast_cwtrain::bx = 0.0; + function_factory::linelast_cwtrain::by = 0.0; + function_factory::linelast_cwtrain::bz = 0.0; + + // Constant force default values + function_factory::linelast_cwtrain::l_ux= 0.0; + function_factory::linelast_cwtrain::l_uy = 0.0; + function_factory::linelast_cwtrain::l_uz = 0.0; + function_factory::linelast_cwtrain::r_fx = 0.0; + function_factory::linelast_cwtrain::r_fy = 0.0; + function_factory::linelast_cwtrain::r_fz = 0.0; + function_factory::linelast_cwtrain::u_fx = 0.0; + function_factory::linelast_cwtrain::u_fy = 0.0; + function_factory::linelast_cwtrain::u_fz = 0.0; + function_factory::linelast_cwtrain::d_fx = 0.0; + function_factory::linelast_cwtrain::d_fy = 0.0; + function_factory::linelast_cwtrain::d_fz = 0.0; + function_factory::linelast_cwtrain::i_fx = 0.0; + function_factory::linelast_cwtrain::i_fy = 0.0; + function_factory::linelast_cwtrain::i_fz = 0.0; + function_factory::linelast_cwtrain::o_fx = 0.0; + function_factory::linelast_cwtrain::o_fy = 0.0; + function_factory::linelast_cwtrain::o_fz = 0.0; + function_factory::linelast_cwtrain::b_fx = 0.0; + function_factory::linelast_cwtrain::b_fy = 0.0; + function_factory::linelast_cwtrain::b_fz = 0.0; + + // Amplitudes default values + function_factory::linelast_cwtrain::xu_amp = 1.0; + function_factory::linelast_cwtrain::yu_amp = 1.0; + function_factory::linelast_cwtrain::zu_amp = 1.0; + function_factory::linelast_cwtrain::xf_amp = 1.0; + function_factory::linelast_cwtrain::yf_amp = 1.0; + function_factory::linelast_cwtrain::zf_amp = 1.0; + function_factory::linelast_cwtrain::bxf_amp = 1.0; + function_factory::linelast_cwtrain::byf_amp = 1.0; + function_factory::linelast_cwtrain::bzf_amp = 1.0; + + // Frequencies default values + function_factory::linelast_cwtrain::xu_freq = 1.0; + function_factory::linelast_cwtrain::yu_freq = 1.0; + function_factory::linelast_cwtrain::zu_freq = 1.0; + function_factory::linelast_cwtrain::xf_freq = 1.0; + function_factory::linelast_cwtrain::yf_freq = 1.0; + function_factory::linelast_cwtrain::zf_freq = 1.0; + function_factory::linelast_cwtrain::bxf_freq = 1.0; + function_factory::linelast_cwtrain::byf_freq = 1.0; + function_factory::linelast_cwtrain::bzf_freq = 1.0; + + // Sine offsets default values function_factory::linelast_cwtrain::xu_offset = 0.0; + function_factory::linelast_cwtrain::yu_offset = 0.0; + function_factory::linelast_cwtrain::zu_offset = 0.0; function_factory::linelast_cwtrain::xf_offset = 0.0; function_factory::linelast_cwtrain::yf_offset = 0.0; + function_factory::linelast_cwtrain::zf_offset = 0.0; function_factory::linelast_cwtrain::bxf_offset = 0.0; function_factory::linelast_cwtrain::byf_offset = 0.0; + function_factory::linelast_cwtrain::bzf_offset = 0.0; // Material parameters default values function_factory::linelast_problem::_lambda = 1.0; @@ -1413,87 +2126,153 @@ LinElastComponentWiseTrain::LinElastComponentWiseTrain() // Parameter map param_map["l_ux"] = 0; param_map["l_uy"] = 1; - param_map["r_fx"] = 2; - param_map["r_fy"] = 3; - param_map["u_fx"] = 4; - param_map["u_fy"] = 5; - param_map["d_fx"] = 6; - param_map["d_fy"] = 7; - param_map["lx"] = 8; - param_map["ly"] = 9; - param_map["rx"] = 10; - param_map["ry"] = 11; - param_map["dx"] = 12; - param_map["dy"] = 13; - param_map["ux"] = 14; - param_map["uy"] = 15; - param_map["lambda"] = 16; - param_map["mu"] = 17; - param_map["xu_amp"] = 18; - param_map["xu_freq"] = 19; - param_map["xu_offset"] = 20; - param_map["xf_amp"] = 21; - param_map["xf_freq"] = 22; - param_map["xf_offset"] = 23; - param_map["yu_amp"] = 24; - param_map["yu_freq"] = 25; - param_map["yu_offset"] = 26; - param_map["yf_amp"] = 27; - param_map["yf_freq"] = 28; - param_map["yf_offset"] = 29; - param_map["b_fx"] = 30; - param_map["b_fy"] = 31; - param_map["bxf_amp"] = 32; - param_map["bxf_freq"] = 33; - param_map["bxf_offset"] = 34; - param_map["byf_amp"] = 35; - param_map["byf_freq"] = 36; - param_map["byf_offset"] = 37; - param_map["bx"] = 38; - param_map["by"] = 39; - - param_ptr.SetSize(40); + param_map["l_uz"] = 2; + param_map["r_fx"] = 3; + param_map["r_fy"] = 4; + param_map["r_fz"] = 5; + param_map["u_fx"] = 6; + param_map["u_fy"] = 7; + param_map["u_fz"] = 8; + param_map["d_fx"] = 9; + param_map["d_fy"] = 10; + param_map["d_fz"] = 11; + param_map["i_fx"] = 12; + param_map["i_fy"] = 13; + param_map["i_fz"] = 14; + param_map["o_fx"] = 15; + param_map["o_fy"] = 16; + param_map["o_fz"] = 17; + + param_map["lx"] = 18; + param_map["ly"] = 19; + param_map["lz"] = 20; + param_map["rx"] = 21; + param_map["ry"] = 22; + param_map["rz"] = 23; + param_map["dx"] = 24; + param_map["dy"] = 25; + param_map["dz"] = 26; + param_map["ux"] = 27; + param_map["uy"] = 28; + param_map["uz"] = 29; + param_map["ix"] = 30; + param_map["iy"] = 31; + param_map["iz"] = 32; + param_map["ox"] = 33; + param_map["oy"] = 34; + param_map["oz"] = 35; + + param_map["lambda"] = 36; + param_map["mu"] = 37; + param_map["xu_amp"] = 38; + param_map["xu_freq"] = 39; + param_map["xu_offset"] = 40; + param_map["xf_amp"] = 41; + param_map["xf_freq"] = 42; + param_map["xf_offset"] = 43; + param_map["yu_amp"] = 44; + param_map["yu_freq"] = 45; + param_map["yu_offset"] = 46; + param_map["yf_amp"] = 47; + param_map["yf_freq"] = 48; + param_map["yf_offset"] = 49; + param_map["zu_amp"] = 50; + param_map["zu_freq"] = 51; + param_map["zu_offset"] = 52; + param_map["zf_amp"] = 53; + param_map["zf_freq"] = 54; + param_map["zf_offset"] = 55; + + param_map["b_fx"] = 56; + param_map["b_fy"] = 57; + param_map["b_fz"] = 58; + param_map["bxf_amp"] = 59; + param_map["bxf_freq"] = 60; + param_map["bxf_offset"] = 61; + param_map["byf_amp"] = 62; + param_map["byf_freq"] = 63; + param_map["byf_offset"] = 64; + param_map["bzf_amp"] = 65; + param_map["bzf_freq"] = 66; + param_map["bzf_offset"] = 67; + param_map["bx"] = 68; + param_map["by"] = 69; + param_map["bz"] = 70; + + param_ptr.SetSize(71); param_ptr[0] = &(function_factory::linelast_cwtrain::l_ux); param_ptr[1] = &(function_factory::linelast_cwtrain::l_uy); - param_ptr[2] = &(function_factory::linelast_cwtrain::r_fx); - param_ptr[3] = &(function_factory::linelast_cwtrain::r_fy); - param_ptr[4] = &(function_factory::linelast_cwtrain::u_fx); - param_ptr[5] = &(function_factory::linelast_cwtrain::u_fy); - param_ptr[6] = &(function_factory::linelast_cwtrain::d_fx); - param_ptr[7] = &(function_factory::linelast_cwtrain::d_fy); - param_ptr[8] = &(function_factory::linelast_cwtrain::lx); - param_ptr[9] = &(function_factory::linelast_cwtrain::ly); - param_ptr[10] = &(function_factory::linelast_cwtrain::rx); - param_ptr[11] = &(function_factory::linelast_cwtrain::ry); - param_ptr[12] = &(function_factory::linelast_cwtrain::dx); - param_ptr[13] = &(function_factory::linelast_cwtrain::dy); - param_ptr[14] = &(function_factory::linelast_cwtrain::ux); - param_ptr[15] = &(function_factory::linelast_cwtrain::uy); - param_ptr[16] = &(function_factory::linelast_problem::_lambda); - param_ptr[17] = &(function_factory::linelast_problem::_mu); - param_ptr[18] = &(function_factory::linelast_cwtrain::xu_amp); - param_ptr[19] = &(function_factory::linelast_cwtrain::xu_freq); - param_ptr[20] = &(function_factory::linelast_cwtrain::xu_offset); - param_ptr[21] = &(function_factory::linelast_cwtrain::xf_amp); - param_ptr[22] = &(function_factory::linelast_cwtrain::xf_freq); - param_ptr[23] = &(function_factory::linelast_cwtrain::xf_offset); - param_ptr[24] = &(function_factory::linelast_cwtrain::yu_amp); - param_ptr[25] = &(function_factory::linelast_cwtrain::yu_freq); - param_ptr[26] = &(function_factory::linelast_cwtrain::yu_offset); - param_ptr[27] = &(function_factory::linelast_cwtrain::yf_amp); - param_ptr[28] = &(function_factory::linelast_cwtrain::yf_freq); - param_ptr[29] = &(function_factory::linelast_cwtrain::yf_offset); - - param_ptr[30] = &(function_factory::linelast_cwtrain::b_fx); - param_ptr[31] = &(function_factory::linelast_cwtrain::b_fy); - param_ptr[32] = &(function_factory::linelast_cwtrain::bxf_amp); - param_ptr[33] = &(function_factory::linelast_cwtrain::bxf_freq); - param_ptr[34] = &(function_factory::linelast_cwtrain::bxf_offset); - param_ptr[35] = &(function_factory::linelast_cwtrain::byf_amp); - param_ptr[36] = &(function_factory::linelast_cwtrain::byf_freq); - param_ptr[37] = &(function_factory::linelast_cwtrain::byf_offset); - param_ptr[38] = &(function_factory::linelast_cwtrain::bx); - param_ptr[39] = &(function_factory::linelast_cwtrain::by); + param_ptr[2] = &(function_factory::linelast_cwtrain::l_uz); + param_ptr[3] = &(function_factory::linelast_cwtrain::r_fx); + param_ptr[4] = &(function_factory::linelast_cwtrain::r_fy); + param_ptr[5] = &(function_factory::linelast_cwtrain::r_fz); + param_ptr[6] = &(function_factory::linelast_cwtrain::u_fx); + param_ptr[7] = &(function_factory::linelast_cwtrain::u_fy); + param_ptr[8] = &(function_factory::linelast_cwtrain::u_fz); + param_ptr[9] = &(function_factory::linelast_cwtrain::d_fx); + param_ptr[10] = &(function_factory::linelast_cwtrain::d_fy); + param_ptr[11] = &(function_factory::linelast_cwtrain::d_fz); + param_ptr[12] = &(function_factory::linelast_cwtrain::i_fx); + param_ptr[13] = &(function_factory::linelast_cwtrain::i_fy); + param_ptr[14] = &(function_factory::linelast_cwtrain::i_fz); + param_ptr[15] = &(function_factory::linelast_cwtrain::o_fx); + param_ptr[16] = &(function_factory::linelast_cwtrain::o_fy); + param_ptr[17] = &(function_factory::linelast_cwtrain::o_fz); + + param_ptr[18] = &(function_factory::linelast_cwtrain::lx); + param_ptr[19] = &(function_factory::linelast_cwtrain::ly); + param_ptr[20] = &(function_factory::linelast_cwtrain::lz); + param_ptr[21] = &(function_factory::linelast_cwtrain::rx); + param_ptr[22] = &(function_factory::linelast_cwtrain::ry); + param_ptr[23] = &(function_factory::linelast_cwtrain::rz); + param_ptr[24] = &(function_factory::linelast_cwtrain::dx); + param_ptr[25] = &(function_factory::linelast_cwtrain::dy); + param_ptr[26] = &(function_factory::linelast_cwtrain::dz); + param_ptr[27] = &(function_factory::linelast_cwtrain::ux); + param_ptr[28] = &(function_factory::linelast_cwtrain::uy); + param_ptr[29] = &(function_factory::linelast_cwtrain::uz); + param_ptr[30] = &(function_factory::linelast_cwtrain::ix); + param_ptr[31] = &(function_factory::linelast_cwtrain::iy); + param_ptr[32] = &(function_factory::linelast_cwtrain::iz); + param_ptr[33] = &(function_factory::linelast_cwtrain::ox); + param_ptr[34] = &(function_factory::linelast_cwtrain::oy); + param_ptr[35] = &(function_factory::linelast_cwtrain::oz); + + param_ptr[36] = &(function_factory::linelast_problem::_lambda); + param_ptr[37] = &(function_factory::linelast_problem::_mu); + param_ptr[38] = &(function_factory::linelast_cwtrain::xu_amp); + param_ptr[39] = &(function_factory::linelast_cwtrain::xu_freq); + param_ptr[40] = &(function_factory::linelast_cwtrain::xu_offset); + param_ptr[41] = &(function_factory::linelast_cwtrain::xf_amp); + param_ptr[42] = &(function_factory::linelast_cwtrain::xf_freq); + param_ptr[43] = &(function_factory::linelast_cwtrain::xf_offset); + param_ptr[44] = &(function_factory::linelast_cwtrain::yu_amp); + param_ptr[45] = &(function_factory::linelast_cwtrain::yu_freq); + param_ptr[46] = &(function_factory::linelast_cwtrain::yu_offset); + param_ptr[47] = &(function_factory::linelast_cwtrain::yf_amp); + param_ptr[48] = &(function_factory::linelast_cwtrain::yf_freq); + param_ptr[49] = &(function_factory::linelast_cwtrain::yf_offset); + param_ptr[50] = &(function_factory::linelast_cwtrain::zu_amp); + param_ptr[51] = &(function_factory::linelast_cwtrain::zu_freq); + param_ptr[52] = &(function_factory::linelast_cwtrain::zu_offset); + param_ptr[53] = &(function_factory::linelast_cwtrain::zf_amp); + param_ptr[54] = &(function_factory::linelast_cwtrain::zf_freq); + param_ptr[55] = &(function_factory::linelast_cwtrain::zf_offset); + param_ptr[56] = &(function_factory::linelast_cwtrain::b_fx); + param_ptr[57] = &(function_factory::linelast_cwtrain::b_fy); + param_ptr[58] = &(function_factory::linelast_cwtrain::b_fz); + param_ptr[59] = &(function_factory::linelast_cwtrain::bxf_amp); + param_ptr[60] = &(function_factory::linelast_cwtrain::bxf_freq); + param_ptr[61] = &(function_factory::linelast_cwtrain::bxf_offset); + param_ptr[62] = &(function_factory::linelast_cwtrain::byf_amp); + param_ptr[63] = &(function_factory::linelast_cwtrain::byf_freq); + param_ptr[64] = &(function_factory::linelast_cwtrain::byf_offset); + param_ptr[65] = &(function_factory::linelast_cwtrain::bzf_amp); + param_ptr[66] = &(function_factory::linelast_cwtrain::bzf_freq); + param_ptr[67] = &(function_factory::linelast_cwtrain::bzf_offset); + param_ptr[68] = &(function_factory::linelast_cwtrain::bx); + param_ptr[69] = &(function_factory::linelast_cwtrain::by); + param_ptr[70] = &(function_factory::linelast_cwtrain::bz); general_vector_ptr.SetSize(1); general_vector_ptr[0] = &(function_factory::linelast_cwtrain::body_force); diff --git a/src/sample_generator.cpp b/src/sample_generator.cpp index d58c0e68..d7a52d72 100644 --- a/src/sample_generator.cpp +++ b/src/sample_generator.cpp @@ -180,23 +180,24 @@ const std::string SampleGenerator::GetSamplePath(const int &idx, const std::stri void SampleGenerator::SaveSnapshot(BlockVector *U_snapshots, std::vector &snapshot_basis_tags, Array &col_idxs) { assert(U_snapshots->NumBlocks() == snapshot_basis_tags.size()); + col_idxs.SetSize(U_snapshots->NumBlocks()); /* add snapshots according to their tags */ for (int s = 0; s < snapshot_basis_tags.size(); s++) { + /* if the tag was never seen before, create a new snapshot generator */ if (!basis_tag2idx.count(snapshot_basis_tags[s])) { const int fom_vdofs = U_snapshots->BlockSize(s); + AddSnapshotGenerator(fom_vdofs, GetSamplePrefix(), snapshot_basis_tags[s]); } /* add the snapshot into the corresponding snapshot generator */ int index = basis_tag2idx[snapshot_basis_tags[s]]; bool addSample = snapshot_generators[index]->takeSample(U_snapshots->GetBlock(s).GetData()); - assert(addSample); - /* save the column index in each snapshot matrix, for port data. */ /* 0-based index */ col_idxs[s] = snapshot_generators[index]->getNumSamples() - 1; @@ -269,6 +270,7 @@ void SampleGenerator::AddSnapshotGenerator(const int &fom_vdofs, const std::stri snapshot_options.Append(new CAROM::Options(fom_vdofs, max_num_snapshots, 1, update_right_SV)); snapshot_options.Last()->static_svd_preserve_snapshot = true; + snapshot_options.Last()->setSingularValueTol(1e-17); snapshot_generators.Append(new CAROM::BasisGenerator(*(snapshot_options.Last()), incremental, filename, CAROM::Database::formats::HDF5_MPIO)); basis_tag2idx[basis_tag] = basis_tags.size(); diff --git a/utils/Rhino/3DCW_Cubemeshcomp.3dm b/utils/Rhino/3DCW_Cubemeshcomp.3dm new file mode 100644 index 00000000..8d2618ce Binary files /dev/null and b/utils/Rhino/3DCW_Cubemeshcomp.3dm differ diff --git a/utils/Rhino/3DCW_Cubemeshcomp_coarse.3dm b/utils/Rhino/3DCW_Cubemeshcomp_coarse.3dm new file mode 100644 index 00000000..5994912f Binary files /dev/null and b/utils/Rhino/3DCW_Cubemeshcomp_coarse.3dm differ diff --git a/utils/Rhino/3DCW_fomconfig.3dm b/utils/Rhino/3DCW_fomconfig.3dm new file mode 100644 index 00000000..bb784a57 Binary files /dev/null and b/utils/Rhino/3DCW_fomconfig.3dm differ diff --git a/utils/Rhino/3DCW_fomconfig_battr.gh b/utils/Rhino/3DCW_fomconfig_battr.gh new file mode 100644 index 00000000..160bf283 Binary files /dev/null and b/utils/Rhino/3DCW_fomconfig_battr.gh differ diff --git a/utils/Rhino/3DCW_romconfig.3dm b/utils/Rhino/3DCW_romconfig.3dm new file mode 100644 index 00000000..498ebfbb Binary files /dev/null and b/utils/Rhino/3DCW_romconfig.3dm differ diff --git a/utils/Rhino/3DCW_romconfig_battr.gh b/utils/Rhino/3DCW_romconfig_battr.gh new file mode 100644 index 00000000..839c810b Binary files /dev/null and b/utils/Rhino/3DCW_romconfig_battr.gh differ diff --git a/utils/Rhino/ComponentDefinition.gh b/utils/Rhino/ComponentDefinition.gh new file mode 100644 index 00000000..997977b6 Binary files /dev/null and b/utils/Rhino/ComponentDefinition.gh differ diff --git a/utils/Rhino/JointGeometry.3dm b/utils/Rhino/JointGeometry.3dm new file mode 100644 index 00000000..46e57de6 Binary files /dev/null and b/utils/Rhino/JointGeometry.3dm differ diff --git a/utils/gmsh/3d_beam.geo b/utils/gmsh/3d_beam.geo new file mode 100644 index 00000000..a9b0dfa9 --- /dev/null +++ b/utils/gmsh/3d_beam.geo @@ -0,0 +1,62 @@ +// Gmsh project created on Tue Mar 26 09:53:47 2024 +SetFactory("OpenCASCADE"); + +l = 4.0; +w = 1.0; +h = 1.0; + +Point(1) = {0, 0, 0, 1.0}; +Point(2) = {l, 0, 0, 1.0}; +Point(3) = {l, w, 0, 1.0}; +Point(4) = {0, w, 0, 1.0}; +Point(5) = {0, 0, h, 1.0}; +Point(6) = {l, 0, h, 1.0}; +Point(7) = {l, w, h, 1.0}; +Point(8) = {0, w, h, 1.0}; + +Line(1) = {1, 2}; +Line(2) = {2, 3}; +Line(3) = {3, 4}; +Line(4) = {4, 1}; +Line(5) = {5, 6}; +Line(6) = {6, 7}; +Line(7) = {7, 8}; +Line(8) = {8, 5}; +Line(9) = {5, 1}; +Line(10) = {6, 2}; +Line(11) = {7, 3}; +Line(12) = {8, 4}; + +Curve Loop(1) = {1, 2, 3, 4}; +Curve Loop(2) = {5, 6, 7, 8}; +Curve Loop(3) = {1, 10, 5, 9}; +Curve Loop(4) = {2, 11, 6, 10}; +Curve Loop(5) = {3, 12, 7, 11}; +Curve Loop(6) = {4, 9, 8, 12}; + +Plane Surface(1) = {1}; +Plane Surface(2) = {2}; +Plane Surface(3) = {3}; +Plane Surface(4) = {4}; +Plane Surface(5) = {5}; +Plane Surface(6) = {6}; + +Physical Surface(1) = {1}; +Physical Surface(2) = {2}; +Physical Surface(3) = {3}; +Physical Surface(4) = {4}; +Physical Surface(5) = {5}; +Physical Surface(6) = {6}; + +Surface Loop(1) = {1, 2, 3, 4, 5, 6}; +Volume(1) = {1}; +Physical Volume(1) = {1}; + +Mesh.Algorithm3D = 1; +Mesh.AnisoMax = 0; +Mesh.MshFileVersion = 2.2; +//Mesh.MeshSizeFactor = 0.25; +Mesh 3; // This is important +Save "3d_beam.msh"; +Exit; + diff --git a/utils/gmsh/3d_col.geo b/utils/gmsh/3d_col.geo new file mode 100644 index 00000000..d354728f --- /dev/null +++ b/utils/gmsh/3d_col.geo @@ -0,0 +1,61 @@ +// Gmsh project created on Tue Mar 26 09:53:47 2024 +SetFactory("OpenCASCADE"); + +l = 1.0; +w = 1.0; +h = 4.0; + +Point(1) = {0, 0, 0, 1.0}; +Point(2) = {l, 0, 0, 1.0}; +Point(3) = {l, w, 0, 1.0}; +Point(4) = {0, w, 0, 1.0}; +Point(5) = {0, 0, h, 1.0}; +Point(6) = {l, 0, h, 1.0}; +Point(7) = {l, w, h, 1.0}; +Point(8) = {0, w, h, 1.0}; + +Line(1) = {1, 2}; +Line(2) = {2, 3}; +Line(3) = {3, 4}; +Line(4) = {4, 1}; +Line(5) = {5, 6}; +Line(6) = {6, 7}; +Line(7) = {7, 8}; +Line(8) = {8, 5}; +Line(9) = {5, 1}; +Line(10) = {6, 2}; +Line(11) = {7, 3}; +Line(12) = {8, 4}; + +Curve Loop(1) = {1, 2, 3, 4}; +Curve Loop(2) = {5, 6, 7, 8}; +Curve Loop(3) = {1, 10, 5, 9}; +Curve Loop(4) = {2, 11, 6, 10}; +Curve Loop(5) = {3, 12, 7, 11}; +Curve Loop(6) = {4, 9, 8, 12}; + +Plane Surface(1) = {1}; +Plane Surface(2) = {2}; +Plane Surface(3) = {3}; +Plane Surface(4) = {4}; +Plane Surface(5) = {5}; +Plane Surface(6) = {6}; + +Physical Surface(1) = {1}; +Physical Surface(2) = {2}; +Physical Surface(3) = {3}; +Physical Surface(4) = {4}; +Physical Surface(5) = {5}; +Physical Surface(6) = {6}; + +Surface Loop(1) = {1, 2, 3, 4, 5, 6}; +Volume(1) = {1}; +Physical Volume(1) = {1}; + +Mesh.Algorithm3D = 1; +Mesh.AnisoMax = 0; +Mesh.MshFileVersion = 2.2; +//Mesh.MeshSizeFactor = 0.25; +Mesh 3; // This is important +Save "3d_col.msh"; +Exit; diff --git a/utils/gmsh/3d_joint.geo b/utils/gmsh/3d_joint.geo new file mode 100644 index 00000000..179c05fa --- /dev/null +++ b/utils/gmsh/3d_joint.geo @@ -0,0 +1,61 @@ +// Gmsh project created on Tue Mar 26 09:53:47 2024 +SetFactory("OpenCASCADE"); + +l = 1.0; +w = 1.0; +h = 1.0; + +Point(1) = {0, 0, 0, 1.0}; +Point(2) = {l, 0, 0, 1.0}; +Point(3) = {l, w, 0, 1.0}; +Point(4) = {0, w, 0, 1.0}; +Point(5) = {0, 0, h, 1.0}; +Point(6) = {l, 0, h, 1.0}; +Point(7) = {l, w, h, 1.0}; +Point(8) = {0, w, h, 1.0}; + +Line(1) = {1, 2}; +Line(2) = {2, 3}; +Line(3) = {3, 4}; +Line(4) = {4, 1}; +Line(5) = {5, 6}; +Line(6) = {6, 7}; +Line(7) = {7, 8}; +Line(8) = {8, 5}; +Line(9) = {5, 1}; +Line(10) = {6, 2}; +Line(11) = {7, 3}; +Line(12) = {8, 4}; + +Curve Loop(1) = {1, 2, 3, 4}; +Curve Loop(2) = {5, 6, 7, 8}; +Curve Loop(3) = {1, 10, 5, 9}; +Curve Loop(4) = {2, 11, 6, 10}; +Curve Loop(5) = {3, 12, 7, 11}; +Curve Loop(6) = {4, 9, 8, 12}; + +Plane Surface(1) = {1}; +Plane Surface(2) = {2}; +Plane Surface(3) = {3}; +Plane Surface(4) = {4}; +Plane Surface(5) = {5}; +Plane Surface(6) = {6}; + +Physical Surface(1) = {1}; +Physical Surface(2) = {2}; +Physical Surface(3) = {3}; +Physical Surface(4) = {4}; +Physical Surface(5) = {5}; +Physical Surface(6) = {6}; + +Surface Loop(1) = {1, 2, 3, 4, 5, 6}; +Volume(1) = {1}; +Physical Volume(1) = {1}; + +Mesh.Algorithm3D = 1; +Mesh.AnisoMax = 0; +Mesh.MshFileVersion = 2.2; +//Mesh.MeshSizeFactor = 0.25; +Mesh 3; // This is important +Save "3d_joint.msh"; +Exit; \ No newline at end of file diff --git a/utils/gmsh2mfem.cpp b/utils/gmsh2mfem.cpp index 40122537..daf0a7d5 100644 --- a/utils/gmsh2mfem.cpp +++ b/utils/gmsh2mfem.cpp @@ -36,21 +36,21 @@ int main(int argc, char *argv[]) args.PrintOptions(cout); Mesh mesh(meshFileString); - + int dim = mesh.SpaceDimension(); // Promote to high order mesh if (order_ >1) - mesh.SetCurvature(order_, true, 2, Ordering::byVDIM); - + mesh.SetCurvature(order_, true, dim, Ordering::byVDIM); + // Force mesh to be nonconforming if (force_nc_) { if (mesh.GetNodalFESpace()) { - mesh.SetCurvature(mesh.GetNodalFESpace()->GetMaxElementOrder(), true, 2, Ordering::byVDIM); + mesh.SetCurvature(mesh.GetNodalFESpace()->GetMaxElementOrder(), true, dim, Ordering::byVDIM); } else { - mesh.SetCurvature(order_, true, 2, Ordering::byVDIM); + mesh.SetCurvature(order_, true, dim, Ordering::byVDIM); } } diff --git a/utils/python/linelast_comp.py b/utils/python/linelast_comp.py index fab9990f..4a87d4e5 100644 --- a/utils/python/linelast_comp.py +++ b/utils/python/linelast_comp.py @@ -77,6 +77,82 @@ def SimpleL(): f.create_dataset("boundary", bdr_data.shape, data=bdr_data) return +def SimpleL3D(): + n_mesh = 3 + mesh_type = [0, 1, 2] + mesh_configs = np.zeros([n_mesh, 6]) + mesh_configs[1,:] = [1., 0., 0., 0., 0., 0.] + mesh_configs[2,:] = [0., 0., 1., 0., 0., 0.] + + # interface data + # mesh1 / mesh2 / battr1 / battr2 / port_idx + if_data = np.zeros([2, 5]) + if_data[0, :] = [0, 1, 4, 6, 0] + if_data[1, :] = [0, 2, 2, 1, 1] + + # boundary attributes + # global_battr / mesh_idx / comp_battr + bdr_data = [] + + # applied loads and displacements + bdr_data += [[1, 1, 4]] + bdr_data += [[2, 2, 2]] + + # homogenous neumann + bdr_data += [[3, 0, 1]] + bdr_data += [[3, 0, 3]] + bdr_data += [[3, 0, 5]] + bdr_data += [[3, 0, 6]] + bdr_data += [[3, 1, 1]] + bdr_data += [[3, 1, 2]] + bdr_data += [[3, 1, 3]] + bdr_data += [[3, 1, 5]] + bdr_data += [[3, 2, 3]] + bdr_data += [[3, 2, 4]] + bdr_data += [[3, 2, 5]] + bdr_data += [[3, 2, 6]] + + bdr_data = np.array(bdr_data) + print(bdr_data.shape) + + filename = "linelast.simpleL3D.h5" + with h5py.File(filename, 'w') as f: + # c++ currently cannot read datasets of string. + # change to multiple attributes, only as a temporary implementation. + grp = f.create_group("components") + grp.attrs["number_of_components"] = 3 + grp.attrs["0"] = "3d_joint" + grp.attrs["1"] = "3d_beam" + grp.attrs["2"] = "3d_col" + # component index of each mesh + grp.create_dataset("meshes", (n_mesh,), data=mesh_type) + # 3-dimension vector for translation / rotation + grp.create_dataset("configuration", mesh_configs.shape, data=mesh_configs) + + grp = f.create_group("ports") + grp.attrs["number_of_references"] = 2 + grp.attrs["0"] = "port1" + grp.attrs["1"] = "port2" + grp.create_dataset("interface", if_data.shape, data=if_data) + + port = grp.create_group("port1") + port.attrs["comp1"] = "3d_joint" + port.attrs["comp2"] = "3d_beam" + port.attrs["attr1"] = 4 + port.attrs["attr2"] = 6 + port.create_dataset("comp2_configuration", (6,), data=[1., 0., 0., 0., 0., 0.]) + + port = grp.create_group("port2") + port.attrs["comp1"] = "3d_joint" + port.attrs["comp2"] = "3d_col" + port.attrs["attr1"] = 2 + port.attrs["attr2"] = 1 + port.create_dataset("comp2_configuration", (6,), data=[0., 0., 1., 0., 0., 0.]) + + # boundary attributes + f.create_dataset("boundary", bdr_data.shape, data=bdr_data) + return + def LatticeCantilever(nx, ny): nx = 2 ny = 2 @@ -106,4 +182,6 @@ def LatticeCantilever(nx, ny): elif name == "lattice_cantilever": nx = int(sys.argv[2]) ny = int(sys.argv[3]) - LatticeCantilever(nx, ny) \ No newline at end of file + LatticeCantilever(nx, ny) + elif name == "simple_l3d": + SimpleL3D() diff --git a/utils/python/linelast_cwtrain.py b/utils/python/linelast_cwtrain.py index c1926408..17804c97 100644 --- a/utils/python/linelast_cwtrain.py +++ b/utils/python/linelast_cwtrain.py @@ -3,6 +3,7 @@ # SPDX-License-Identifier: MIT import numpy as np +from scipy.interpolate import interp1d import h5py import os import matplotlib.pyplot as plt @@ -150,32 +151,107 @@ def get_results(samples, prefix): return np.array(res) -def create_scaling_plot(samples, res, scale_prefix, plt_name = "plot.png"): - fig, axs = plt.subplots(1,2, figsize=(15,5)) - - axs[0].plot(samples, res[:,0], label='FOM solve time') - axs[0].plot(samples, res[:,1], label='ROM solve time') - axs[0].plot(samples, res[:,2], label='Relative error') - axs[0].set_xlabel(scale_prefix) - axs[0].set_yscale('log') - axs[0].legend() +def solve_time_scaling_plot(samples, res, scale_prefix, plt_name = "scaling.png"): + plt.plot(samples, res[:,0], label='FOM') + plt.plot(samples, res[:,1], label='ROM') + plt.xscale('log') + plt.xlabel(scale_prefix) + plt.yscale('log') + plt.ylabel("Solve time [s]") + plt.legend() + plt.tight_layout() + plt.savefig("solve_time_" + plt_name, dpi=300) + plt.clf() + +def relerr_scaling_plot(samples, res, scale_prefix, opt_x, plt_name = "scaling.png"): + plt.plot(samples, res[:,2], label='Relative error') + plt.xscale('log') + plt.xlabel(scale_prefix) + plt.yscale('log') + plt.ylabel("Relative error [-]") + plt.hlines([1.0e-2],[0.0],[opt_x], colors=['lightgray'], linestyles=['dashed']) + plt.scatter([opt_x], [1.0e-2], c = 'red',zorder=10) + + + plt.tight_layout() + plt.savefig("relerr_" + plt_name, dpi=300) + plt.clf() - axs[1].plot(samples, res[:,3], label='Speedup factor', ) - axs[1].set_xlabel(scale_prefix) - axs[1].legend() +def speedup_scaling_plot(samples, res, scale_prefix, opt, plt_name = "scaling.png"): + plt.plot(samples, res[:,3]) + plt.xscale('log') + plt.xlabel(scale_prefix) + plt.ylabel("Speedup factor [-]") + plt.hlines([opt[1]],[0.0],[opt[0]], colors=['lightgray'], linestyles=['dashed']) + plt.scatter([opt[0]], [opt[1]], c = 'red',zorder=10) - fig.suptitle(scale_prefix+'-scaling', fontsize = 24) plt.tight_layout() - plt.savefig(plt_name) + plt.savefig("speedup_" + plt_name, dpi=300) + plt.clf() + +def export_opt_val(filename, opt_nb_a, opt_nb_i, opt_speedup): + f = open(filename, "w") + out_txt = "Optimal number of bases (interpolated) is: " + str(round(float(opt_nb_a), 4)) + " bases\nOptimal number of bases (rounded) is: " + str(opt_nb_i) + " bases\nSpeedup at rounded number of bases is: " + str(round(float(opt_speedup), 4)) + " x" + f.write(out_txt) + f.close() + print(out_txt) + +def create_scaling_plot(samples, res, scale_prefix, plt_name = "plot.png"): + plt.rc('axes', labelsize=14) + ferr_i = interp1d(res[:,2], samples) # Inverse correlation + x_star_a = ferr_i(1e-2) # Analytical x_star + x_star_i = np.ceil(x_star_a) # Next integer + + fspeed = interp1d(samples, res[:,3]) # speedup factor + opt_speedup = fspeed(x_star_a) + + solve_time_scaling_plot(samples, res, scale_prefix, plt_name) + relerr_scaling_plot(samples, res, scale_prefix, x_star_a, plt_name) + speedup_scaling_plot(samples, res, scale_prefix, (x_star_a,opt_speedup), plt_name) + export_opt_val("opt_vals.txt", x_star_a, x_star_i, opt_speedup) + +def get_nr(txt, split_txt = 'comparison'): + return int(txt.split('.')[0].split(split_txt)[1]) +def get_nrs(txts, split_txt = 'comparison'): + return [get_nr(txt, split_txt) for txt in txts] +def get_sorted_nrs(txts, split_txt = 'comparison'): + return sorted(zip(get_nrs(txts, split_txt),txts)) def basis_scaling_plot(prefix, plot_path): - scale_prefix = '$n_{basis}$' - #samples = (2, 4, 6, 8, 10, 12, 16, 20, 24, 28, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128) //regular - samples = (1, 2, 3, 4, 6, 7, 9, 12, 15, 20, 25, 32, 41, 53, 68, 87, 111, 142, 183, 234, 300, 384) #//complicated + cwd = os.getcwd() + abs_scaling_folder = os.path.join(cwd,prefix) + os.chdir(abs_scaling_folder) + txts = os.listdir() + samples = [i for i,_ in get_sorted_nrs(txts, split_txt = 'comparison')] + os.chdir(cwd) res = get_results(samples, prefix) + scale_prefix = '$n_{basis}$' create_scaling_plot(samples, res, scale_prefix, plot_path) +def get_svs(filename): + with open(filename, 'r') as file: + return [float(line.strip()) for line in file] + +def sv_plot(jointname, h_name, v_name, legend_names, plt_name = "sv_plot.png"): + plt.rc('axes', labelsize=18) + svs_j = get_svs(jointname) + plt.plot(range(len(svs_j)), svs_j, label=legend_names[0]) + if len(legend_names) > 1: + svs_b = get_svs(h_name) + svs_c = get_svs(v_name) + plt.plot(range(len(svs_b)), svs_b, label=legend_names[1]) + plt.plot(range(len(svs_c)), svs_c, label=legend_names[2]) + plt.xscale('log') + plt.xlabel('$n$') + plt.ylabel('$\sigma$') + plt.yscale('log') + plt.legend(title="Component name") + #plt.title('Advanced component SV spectrum') + plt.tight_layout() + #plt.savefig(os.path.join(os.getcwd(), plt_name)) + plt.savefig(os.path.join(os.getcwd(), plt_name), dpi=300) + if __name__ == "__main__": import sys if len(sys.argv) == 1: @@ -194,6 +270,29 @@ def basis_scaling_plot(prefix, plot_path): prefix = sys.argv[2] plot_path = sys.argv[3] basis_scaling_plot(prefix, plot_path) + elif name == "svplot": + prefix = sys.argv[2] + jointname = sys.argv[3] + h_name = sys.argv[4] + v_name = sys.argv[5] + legend_type = sys.argv[6] + + if legend_type == 'B': + legend_names = ["Unit Cell"] + jointname_file = prefix + "_" + jointname + "_sv.txt" + + sv_plot(jointname_file, "", "", legend_names) + else: + if legend_type == 'A': + legend_names = ["Joint", "Beam", "Column"] + else: + legend_names = ["Joint", "Beam, X", "Beam, Y"] + + jointname_file = prefix + "_" + jointname + "_sv.txt" + h_name_file = prefix + "_" + h_name + "_sv.txt" + v_name_file = prefix + "_" + v_name + "_sv.txt" + + sv_plot(jointname_file, h_name_file, v_name_file, legend_names) elif name == "cwtrain_mesh": prefix = sys.argv[2] create_training_meshes(prefix)