From 3ade28708090a499805ea505d1828867f9198f0d Mon Sep 17 00:00:00 2001 From: abn Date: Wed, 1 Jul 2015 17:09:08 +0200 Subject: [PATCH] Documentation reorganization --- doc/CMakeLists.txt | 6 +- {src/MEDOP/doc => doc/dev}/CMakeLists.txt | 0 {src/MEDOP/doc => doc/dev}/models/medop.xmi | 0 .../doc => doc/dev}/sphinx/CMakeLists.txt | 4 +- ...A_VBERGEAUD_GuideutilisateurMEDMEMOIRE.pdf | Bin ...es_maillages_pour_le_couplage_de_codes.pdf | Bin ...20091218_EDF_VCANO_H-I2C-2009-03595-FR.pdf | Bin .../20100129_MAN_seminaireEDF-CEA_all.pdf | Bin .../documents/20101027_MAN_revueEDF-CEA.pdf | Bin .../documents/20110309_XMED_scan_notes.pdf | Bin .../20110309_XMED_scan_remarques_ELORENTZ.pdf | Bin ...20110310_seminaireEDF-CEA_maquetteXMED.pdf | Bin .../_static/documents/xmed-develguide.pdf | Bin .../_static/documents/xmed-specifications.pdf | Bin .../_static/documents/xmed-userguide.pdf | Bin .../doc => doc/dev}/sphinx/_static/medop.css | 2 +- ...0111115_JUS2011_manipulation_de_champs.pdf | Bin .../20111115_JUS2011_medop_exemple_1.ogv | Bin .../20111115_JUS2011_medop_exemple_3.ogv | Bin .../20111115_JUS2011_medop_exemple_4.ogv | Bin {src/MEDOP/doc => doc/dev}/sphinx/conf.py.in | 2 +- .../sphinx/fr/images/xmed-gui-withframe.png | Bin .../dev}/sphinx/fr/images/xmed-gui.png | Bin .../MEDOP/doc => doc/dev}/sphinx/fr/index.rst | 0 .../dev}/sphinx/fr/medop-definitions.rst | 0 .../dev}/sphinx/fr/medop-develguide.rst | 0 .../sphinx/fr/medop-prototype-develguide.rst | 0 .../dev}/sphinx/fr/medop-prototype-medmem.rst | 0 .../sphinx/fr/medop-prototype-overview.rst | 0 .../dev}/sphinx/fr/medop-references.rst | 0 .../dev}/sphinx/fr/medop-specifications.rst | 0 .../dev}/sphinx/fr/medop-userguide-gui.rst | 0 .../sphinx/fr/medop-workingnotes-2010.rst | 0 .../sphinx/fr/medop-workingnotes-2011.rst | 0 .../sphinx/fr/medop-workingnotes-2012.rst | 0 .../dev}/sphinx/images/champ_altitude_MAP.png | Bin .../doc => doc/dev}/sphinx/images/convert.sh | 0 .../dev}/sphinx/images/ico_datasource_add.png | Bin .../ico_datasource_changeUnderlyingMesh.png | Bin .../images/ico_datasource_expandfield.png | Bin .../dev}/sphinx/images/ico_datasource_use.png | Bin .../sphinx/images/ico_datasource_view.png | Bin .../dev}/sphinx/images/ico_imagesource.png | Bin .../dev}/sphinx/images/ico_workspace_save.png | Bin .../dev}/sphinx/images/ico_xmed.png | Bin .../dev}/sphinx/images/med-uml-main.png | Bin .../dev}/sphinx/images/med-uml-main_60pc.png | Bin .../sphinx/images}/medlayers.png | Bin .../sphinx/images}/medlayers_70pc.png | Bin .../sphinx/images/medmem-corba-layers.png | Bin .../dev}/sphinx/images/medmem-layers.png | Bin .../sphinx/images/medop-gui-aliasfield.png | Bin .../images/medop-gui-aliasfield_scale.png | Bin .../dev}/sphinx/images/medop-gui-result.png | Bin .../sphinx/images/medop-gui-result_scale.png | Bin .../sphinx/images/medop-gui-selectfield.png | Bin .../images/medop-gui-selectfield_scale.png | Bin .../sphinx/images/medop-gui-visufield.png | Bin .../images/medop-gui-visufield_scale.png | Bin .../sphinx/images/medop_exportparavis.png | Bin .../images/medop_exportparavis_result.png | Bin .../sphinx/images/medop_image2med_dialog.png | Bin .../images/medop_image2med_tomographie.png | Bin .../sphinx/images/medop_projection_inputs.png | Bin .../sphinx/images/medop_projection_result.png | Bin .../dev}/sphinx/images/partition_mesh.png | Bin .../dev}/sphinx/images/partition_skin.png | Bin .../dev}/sphinx/images/xmed-architecture.png | Bin .../dev}/sphinx/images/xmed-exploremed.png | Bin .../dev}/sphinx/images/xmed-functions.png | Bin ...ed-gui-datasource-changeUnderlyingMesh.png | Bin ...datasource-changeUnderlyingMesh_wsview.png | Bin .../xmed-gui-datasource-contextmenu.png | Bin .../xmed-gui-datasource-contextmenu_60pc.png | Bin .../xmed-gui-datasource-contextmenu_70pc.png | Bin .../xmed-gui-datasource-contextmenu_80pc.png | Bin .../xmed-gui-datasource-expand-zoom.png | Bin .../xmed-gui-datasource-explore-zoom.png | Bin .../images/xmed-gui-datasource-explore.png | Bin ...med-gui-datasource-menucontextuel-zoom.png | Bin .../images/xmed-gui-datasource-selectfile.png | Bin ...ed-gui-datasource-useinworkspace-alias.png | Bin ...d-gui-datasource-useinworkspace-result.png | Bin ...-datasource-useinworkspace-result_70pc.png | Bin .../xmed-gui-datasource-useinworkspace.png | Bin ...med-gui-datasource-useinworkspace_70pc.png | Bin .../xmed-gui-datasource-visualize-result.png | Bin ...d-gui-datasource-visualize-result_50pc.png | Bin ...d-gui-datasource-visualize-result_70pc.png | Bin .../xmed-gui-datasource-visualize-zoom.png | Bin .../images/xmed-gui-datasource-visualize.png | Bin .../xmed-gui-datasource-visualize_50pc.png | Bin .../xmed-gui-datasource-visualize_70pc.png | Bin .../dev}/sphinx/images/xmed-gui-start.png | Bin .../dev}/sphinx/images/xmed-gui-withframe.png | Bin .../sphinx/images/xmed-gui-workspace-view.png | Bin .../dev}/sphinx/images/xmed-gui-workspace.png | Bin .../dev}/sphinx/images/xmed-gui.png | Bin .../dev}/sphinx/images/xmed-gui_70pc.png | Bin .../dev}/sphinx/images/xmed-implantation.png | Bin .../dev}/sphinx/images/xmed-irm-diff.png | Bin .../dev}/sphinx/images/xmed-irm-field.png | Bin .../dev}/sphinx/images/xmed-irm.png | Bin .../xmed-userguide-example2-datasource.png | Bin ...xmed-userguide-example2-workspace-save.png | Bin .../xmed-userguide-example2-workspace.png | Bin .../images/xmed-visu-importtimestamps.png | Bin .../images/xmed-visu-scalarmaptimestamps.png | Bin {src/MEDOP/doc => doc/dev}/sphinx/index.rst | 0 .../dev}/sphinx/medop-definitions.rst | 0 .../dev}/sphinx/medop-develguide.rst | 0 .../sphinx/medop-prototype-develguide.rst | 0 .../dev}/sphinx/medop-prototype-medmem.rst | 0 .../dev}/sphinx/medop-prototype-overview.rst | 0 .../dev}/sphinx/medop-references.rst | 0 .../dev}/sphinx/medop-specifications.rst | 0 .../dev}/sphinx/medop-userguide-api.rst | 0 .../dev}/sphinx/medop-userguide-gui.rst | 0 .../dev}/sphinx/medop-workingnotes-2010.rst | 0 .../dev}/sphinx/medop-workingnotes-2011.rst | 0 .../dev}/sphinx/medop-workingnotes-2012.rst | 0 doc/doxygen/doxfiles/interptools.dox | 28 - doc/doxygen/doxfiles/intro.dox | 81 -- doc/doxygen/doxfiles/library.dox | 22 - doc/doxygen/doxfiles/medcoupling.dox | 37 - .../medcoupling/MEDCouplingMeshes.dox | 35 - doc/salome/tui/doxyfile.in | 264 ---- doc/salome/tui/images/head.png | Bin 78545 -> 0 bytes doc/salome/tui/input/index.doc | 13 - doc/salome/tui/static/footer.html | 14 - doc/salome/tui/static/header.html.in | 23 - doc/salome/tui/static/salome_extra.css | 29 - doc/{salome/tui => tutorial}/CMakeLists.txt | 22 +- doc/tutorial/atestMEDCouplingCorba1.rst | 37 + doc/tutorial/atestMEDCouplingCube.rst | 265 ++++ doc/tutorial/atestMEDCouplingDataArray1.rst | 64 + doc/tutorial/atestMEDCouplingFieldDouble1.rst | 74 ++ doc/tutorial/atestMEDCouplingLoaderEx1.rst | 124 ++ doc/tutorial/atestMEDCouplingLoaderEx2.rst | 115 ++ doc/tutorial/atestMEDCouplingNumPy.rst | 78 ++ doc/tutorial/atestMEDCouplingPoly.rst | 98 ++ doc/tutorial/atestMEDCouplingRead.rst | 47 + doc/tutorial/atestMEDCouplingRemapper.rst | 68 + doc/tutorial/atestMEDCouplingUMesh1.rst | 99 ++ doc/tutorial/atestMEDLoaderAdvancedAPI1.rst | 96 ++ doc/tutorial/atestMEDLoaderBasicAPI1.rst | 53 + doc/tutorial/atestMEDLoaderSplitAndMerge1.rst | 124 ++ doc/tutorial/conf.py.in | 187 +++ doc/tutorial/data/Fixe.med | Bin 0 -> 10957 bytes doc/tutorial/data/Mobile.med | Bin 0 -> 13773 bytes doc/tutorial/data/agitateur.med | Bin 0 -> 1871934 bytes doc/tutorial/images/DataArrayDouble_1.jpg | Bin 0 -> 40426 bytes doc/tutorial/images/FieldDouble1_1.png | Bin 0 -> 19991 bytes .../images/FieldDouble1_1_exploded.png | Bin 0 -> 10793 bytes doc/tutorial/images/FieldDouble1_2.png | Bin 0 -> 15148 bytes doc/tutorial/images/Field_Cube3D.jpg | Bin 0 -> 61652 bytes doc/tutorial/images/IndirectIndex.jpg | Bin 0 -> 44628 bytes doc/tutorial/images/LocationEx2.jpg | Bin 0 -> 17647 bytes doc/tutorial/images/Mesh_cube3D.jpg | Bin 0 -> 31176 bytes doc/tutorial/images/Mesh_polygons2D.jpg | Bin 0 -> 21326 bytes doc/tutorial/images/Remapper1.png | Bin 0 -> 4878 bytes doc/tutorial/images/SplitAndMerge2.jpg | Bin 0 -> 14465 bytes doc/tutorial/images/SplitAndMergeCell1.jpg | Bin 0 -> 48207 bytes doc/tutorial/images/SurjectionDataArray.png | Bin 0 -> 13240 bytes doc/tutorial/images/UMesh1.png | Bin 0 -> 11172 bytes doc/tutorial/images/agitateur.jpg | Bin 0 -> 95715 bytes doc/tutorial/images/blade.jpg | Bin 0 -> 29769 bytes doc/tutorial/images/captureCoarseMesh.png | Bin 0 -> 116414 bytes doc/tutorial/images/captureFineMesh.png | Bin 0 -> 114802 bytes doc/tutorial/images/cube.jpg | Bin 0 -> 10472 bytes doc/tutorial/images/face.jpg | Bin 0 -> 7914 bytes doc/tutorial/images/fixm.jpg | Bin 0 -> 44429 bytes doc/tutorial/images/mesh3DSurfInside.jpg | Bin 0 -> 92952 bytes doc/tutorial/images/mobm.jpg | Bin 0 -> 22167 bytes doc/tutorial/images/partFixmAndzone1Mobm.jpg | Bin 0 -> 24901 bytes .../images/partFixmWithoutZone1Mobm.jpg | Bin 0 -> 22311 bytes doc/tutorial/images/skinandnccells_numpy.png | Bin 0 -> 27015 bytes doc/tutorial/images/skinonly_numpy.png | Bin 0 -> 24403 bytes doc/tutorial/images/zone1Mobm.jpg | Bin 0 -> 21966 bytes doc/tutorial/images/zonesMobm.jpg | Bin 0 -> 28075 bytes doc/tutorial/index.rst | 57 + doc/tutorial/medcoupling_2Dpolygon.rst | 118 ++ doc/tutorial/medcoupling_3Dcube.rst | 348 +++++ doc/tutorial/medcoupling_Read.rst | 88 ++ doc/tutorial/medcoupling_dataarray1_en.rst | 260 ++++ doc/tutorial/medcoupling_dataarray1_fr.rst | 335 +++++ doc/tutorial/medcoupling_en.rst | 19 + doc/tutorial/medcoupling_fielddouble1_en.rst | 181 +++ doc/tutorial/medcoupling_fielddouble1_fr.rst | 246 ++++ doc/tutorial/medcoupling_fr.rst | 19 + doc/tutorial/medcoupling_umesh1_en.rst | 216 +++ doc/tutorial/medcoupling_umesh1_fr.rst | 291 ++++ doc/tutorial/medcouplingcorba_en.rst | 94 ++ doc/tutorial/medcouplingcorba_fr.rst | 100 ++ doc/tutorial/medcouplingloaderex1_en.rst | 162 +++ doc/tutorial/medcouplingloaderex1_fr.rst | 168 +++ doc/tutorial/medcouplingloaderex2_en.rst | 240 ++++ doc/tutorial/medcouplingloaderex2_fr.rst | 253 ++++ doc/tutorial/medcouplingnumpy_en.rst | 190 +++ doc/tutorial/medcouplingnumpy_fr.rst | 190 +++ doc/tutorial/medcouplingremapper_en.rst | 125 ++ doc/tutorial/medcouplingremapper_fr.rst | 150 +++ doc/tutorial/medloader_SplitAndMerge1_en.rst | 184 +++ doc/tutorial/medloader_SplitAndMerge1_fr.rst | 220 +++ doc/tutorial/medloader_advancedAPI1_en.rst | 152 +++ doc/tutorial/medloader_advancedAPI1_fr.rst | 189 +++ doc/tutorial/medloader_basicAPI1_en.rst | 98 ++ doc/tutorial/medloader_basicAPI1_fr.rst | 129 ++ doc/tutorial/medloader_en.rst | 23 + doc/tutorial/medloader_fr.rst | 23 + doc/{salome => user}/CMakeLists.txt | 2 +- .../doxygen/BuildPyExamplesFromCPP.py | 2 + doc/{ => user}/doxygen/CMakeLists.txt | 4 +- doc/{ => user}/doxygen/Doxyfile_med_user.in | 57 +- .../doxygen/doxfiles/appendix/appendix.dox | 17 + .../doxygen/doxfiles/appendix}/glossary.dox | 6 +- .../doxygen/doxfiles/appendix}/install.dox | 9 +- .../doxfiles/appendix}/interpkernel.dox | 12 +- .../doxygen/doxfiles/appendix/med-file.dox | 33 + .../doxygen/doxfiles/appendix/references.dox | 13 + .../doxygen/doxfiles/examples/examples.dox | 11 + .../examples/medcouplingexamplesarrays.doxy | 0 .../examples/medcouplingexamplesfields.doxy | 16 +- .../examples/medcouplingexamplesfooter.doxy | 0 .../examples/medcouplingexamplesheader.doxy | 0 .../examples/medcouplingexamplesmeshes.doxy | 0 .../examples/medcouplingexamplesother.doxy | 0 doc/user/doxygen/doxfiles/faq.dox | 174 +++ doc/{ => user}/doxygen/doxfiles/gui.dox | 11 +- doc/user/doxygen/doxfiles/index.dox | 59 + .../doxfiles/reference/arrays/arrays.dox} | 99 +- .../doxfiles/reference/arrays/numbering.dox | 113 ++ .../reference/cpp}/MEDCouplingTimeLabel.dox | 6 +- .../doxygen/doxfiles/reference/cpp/cpp.dox | 25 + .../reference/distrib/corba-distrib.dox | 16 + .../doxfiles/reference/distrib/distrib.dox | 10 + .../doxfiles/reference/distrib/parallel.dox | 33 + .../reference/fields}/MEDCouplingFields.dox | 37 +- .../reference/fields/discretization.dox | 21 + .../doxfiles/reference/fields/fields.dox | 21 + .../reference}/interpolation/Geometric2D.dox | 18 +- .../interpolation}/NatureOfField.dox | 12 +- .../reference}/interpolation/barycoords.dox | 0 .../reference/interpolation/interpolation.dox | 25 + .../reference}/interpolation/interptheory.dox | 2 +- .../interpolation/intersec-specifics.dox} | 22 +- .../reference/interpolation/intersectors.dox | 17 + .../reference/interpolation/intro-interp.dox | 52 + .../reference}/interpolation/remapper.dox | 6 +- .../doxfiles/reference/medcoupling.dox | 39 + .../medloader/MEDLoaderAdvancedAPI.dox | 48 +- .../medloader/MEDLoaderBasicAPI.dox | 2 +- .../reference/medloader/intro-medloader.dox} | 22 +- .../reference/medloader/medloader.dox | 16 + .../reference/meshes}/MEDCouplingCMesh.dox | 6 +- .../reference/meshes}/MEDCouplingExtruded.dox | 4 +- .../reference/meshes}/MEDCouplingPointSet.dox | 2 +- .../reference/meshes}/MEDCouplingUMesh.dox | 19 +- .../doxfiles/reference/meshes/meshes.dox | 47 + .../misc}/MEDCouplingFieldTemplates.dox | 8 +- .../doxygen/doxfiles/reference/misc/icoco.dox | 11 + .../doxygen/doxfiles/reference/misc/misc.dox | 12 + .../doxfiles/reference/misc}/tools.dox | 0 .../doxygen/doxfiles/reference/reference.dox | 23 + .../doxfiles/start}/functionalities.dox | 4 +- .../doxygen/doxfiles/start/intro-start.dox | 42 + doc/user/doxygen/doxfiles/start/library.dox | 50 + .../doxygen/doxfiles/start/python-api.dox | 35 + doc/user/doxygen/doxfiles/start/start.dox | 18 + .../doxygen/doxfiles/start/terminology.dox | 57 + doc/user/doxygen/doxfiles/tutorial.dox | 8 + .../doxygen/doxy2swig/MEDCoupling_doc.i.in | 0 .../doxygen/doxy2swig/MEDLoader_doc.i.in | 0 .../doxygen/doxy2swig/doxy2swig.cmake | 3 +- doc/{ => user}/doxygen/doxy2swig/doxy2swig.py | 0 .../doxygen/fakesources/MEDCouplingField.C | 0 .../fakesources/MEDCouplingFieldDouble.C | 18 +- .../doxygen/fakesources/MEDCouplingMemArray.C | 2 +- .../doxygen/fakesources/MEDCouplingMesh.C | 0 .../doxygen/fakesources/MEDCouplingPointSet.C | 0 .../doxygen/fakesources/MEDCouplingUMesh.C | 0 .../doxygen/fakesources/MEDFileField.C | 0 .../doxygen/fakesources/MEDFileMesh.C | 0 doc/user/doxygen/fakesources/namespaces.C | 37 + doc/user/doxygen/figures/IndirectIndex.jpg | Bin 0 -> 16749 bytes doc/{ => user}/doxygen/figures/MED.png | Bin .../doxygen/figures/MEDCouplingUMeshConn.eps | 0 .../doxygen/figures/MEDCouplingUMeshConn.fig | 0 .../doxygen/figures/MEDCouplingUMeshConn.png | Bin .../doxygen/figures/MEDFileConcepts.fig | 0 .../doxygen/figures/MEDFileConcepts.png | Bin doc/{ => user}/doxygen/figures/MED_small.eps | 0 doc/{ => user}/doxygen/figures/MED_small.png | Bin .../figures/MedCoupling_Architecture.png | Bin .../doxygen/figures/NonCoincident.png | Bin .../doxygen/figures/NonCoincident_small.eps | 0 .../doxygen/figures/NonCoincident_small.png | Bin .../doxygen/figures/NonOverlapping.fig | 0 .../doxygen/figures/NonOverlapping.png | Bin .../doxygen/figures/OverlapDEC1.fig | 0 .../doxygen/figures/OverlapDEC1.png | Bin doc/{ => user}/doxygen/figures/SampGeo2D1.eps | 0 doc/{ => user}/doxygen/figures/SampGeo2D1.png | Bin doc/{ => user}/doxygen/figures/SampGeo2D2.eps | 0 doc/{ => user}/doxygen/figures/SampGeo2D2.png | Bin doc/{ => user}/doxygen/figures/SampGeo2D3.eps | 0 doc/{ => user}/doxygen/figures/SampGeo2D3.png | Bin doc/{ => user}/doxygen/figures/SampGeo2D4.eps | 0 doc/{ => user}/doxygen/figures/SampGeo2D4.png | Bin doc/{ => user}/doxygen/figures/UML-0.png | Bin doc/{ => user}/doxygen/figures/UML-1.png | Bin doc/{ => user}/doxygen/figures/UML-2.png | Bin doc/{ => user}/doxygen/figures/UML-3.png | Bin doc/{ => user}/doxygen/figures/UML-4.png | Bin doc/{ => user}/doxygen/figures/UML-5.png | Bin doc/{ => user}/doxygen/figures/UML-6.png | Bin doc/{ => user}/doxygen/figures/UML-7.png | Bin doc/{ => user}/doxygen/figures/UML-8.png | Bin doc/{ => user}/doxygen/figures/UML.png | Bin doc/{ => user}/doxygen/figures/UML_light.png | Bin doc/{ => user}/doxygen/figures/UML_small.png | Bin .../doxygen/figures/connectivity_arrays.eps | 0 .../doxygen/figures/connectivity_arrays.png | Bin .../figures/connectivity_arrays_small.eps | 0 .../figures/connectivity_arrays_small.png | Bin .../doxygen/figures/connectivity_example.png | Bin .../figures/connectivity_example_small.png | Bin doc/user/doxygen/figures/fine_mesh.png | Bin 0 -> 33886 bytes doc/user/doxygen/figures/geom.png | Bin 0 -> 19218 bytes .../doxygen/figures/grid_example.png | Bin .../doxygen/figures/interpolationimage.png | Bin doc/user/doxygen/figures/med-file-uml.png | Bin 0 -> 172895 bytes .../figures/med-loader-adv-classes.png | Bin 0 -> 89996 bytes .../user/doxygen/figures}/medlayers.png | Bin .../user/doxygen/figures}/medlayers_70pc.png | Bin .../doxygen/figures/mesh_splitted.png | Bin .../doxygen/figures/mesh_unsplitted.png | Bin .../doxygen/figures/polygon_connectivity.png | Bin .../figures/polygon_connectivity_small.eps | 0 .../figures/polygon_connectivity_small.png | Bin .../figures/polyhedron_connectivity.png | Bin .../figures/polyhedron_connectivity_small.eps | 0 .../figures/polyhedron_connectivity_small.png | Bin .../doxygen/figures/projectionHQ.png | Bin .../doxygen/figures/projectionHQ_600.png | Bin .../doxygen/figures/source_field.png | Bin .../doxygen/figures/source_mesh.png | Bin .../doxygen/figures/target_field.png | Bin .../doxygen/figures/target_mesh.png | Bin .../figures/tetra_simplexize_24_48.jpg | Bin .../doxygen/figures/tetra_simplexize_5_6.jpg | Bin doc/{ => user}/doxygen/images/head.png | Bin doc/{ => user}/doxygen/static/footer.html | 0 doc/{ => user}/doxygen/static/header.html.in | 0 .../doxygen/static/salome_extra.css | 0 .../InterpKernelGeo2DComposedEdge.cxx | 2 + src/INTERP_KERNEL/Interpolation3D.cxx | 1 - src/INTERP_KERNEL/Interpolation3D.txx | 2 +- src/INTERP_KERNEL/Interpolation3D2D.cxx | 6 - src/INTERP_KERNEL/PlanarIntersector.hxx | 2 - src/INTERP_KERNEL/TargetIntersector.hxx | 7 +- src/MEDCoupling/MEDCoupling1GTUMesh.cxx | 4 +- src/MEDCoupling/MEDCouplingField.cxx | 5 +- src/MEDCoupling/MEDCouplingFieldDouble.cxx | 6 +- src/MEDCoupling/MEDCouplingMemArray.cxx | 80 +- src/MEDCoupling/MEDCouplingMemArrayChar.cxx | 18 +- src/MEDCoupling/MEDCouplingPointSet.cxx | 25 +- src/MEDCoupling/MEDCouplingUMesh.cxx | 126 +- .../MEDCouplingExamplesTest.py | 1181 ++++++++--------- src/MEDLoader/MEDFileField.cxx | 4 +- src/MEDLoader/MEDFileMesh.cxx | 2 + src/MEDLoader/MEDLoader.cxx | 9 + src/MEDOP/CMakeLists.txt | 4 - src/ParaMEDMEM/CommInterface.cxx | 11 +- src/ParaMEDMEM/DisjointDEC.cxx | 75 +- src/ParaMEDMEM/ExplicitCoincidentDEC.cxx | 18 +- src/ParaMEDMEM/InterpKernelDEC.cxx | 54 +- src/ParaMEDMEM/InterpolationMatrix.cxx | 110 +- src/ParaMEDMEM/InterpolationMatrix.hxx | 6 + src/ParaMEDMEM/MPIAccess.cxx | 7 +- src/ParaMEDMEM/MPIProcessorGroup.cxx | 58 +- src/ParaMEDMEM/NonCoincidentDEC.cxx | 20 +- src/ParaMEDMEM/OverlapDEC.cxx | 179 ++- src/ParaMEDMEM/ParaFIELD.cxx | 11 +- src/ParaMEDMEM/StructuredCoincidentDEC.cxx | 18 +- 385 files changed, 8722 insertions(+), 1802 deletions(-) rename {src/MEDOP/doc => doc/dev}/CMakeLists.txt (100%) rename {src/MEDOP/doc => doc/dev}/models/medop.xmi (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/CMakeLists.txt (89%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/documents/20070105_CEA_VBERGEAUD_GuideutilisateurMEDMEMOIRE.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/documents/20091211_CEA_AGEAY_09-017-RT-A_Normalisation_des_champs_et_des_maillages_pour_le_couplage_de_codes.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/documents/20091218_EDF_VCANO_H-I2C-2009-03595-FR.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/documents/20100129_MAN_seminaireEDF-CEA_all.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/documents/20101027_MAN_revueEDF-CEA.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/documents/20110309_XMED_scan_notes.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/documents/20110309_XMED_scan_remarques_ELORENTZ.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/documents/20110310_seminaireEDF-CEA_maquetteXMED.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/documents/xmed-develguide.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/documents/xmed-specifications.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/documents/xmed-userguide.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/medop.css (98%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_manipulation_de_champs.pdf (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_1.ogv (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_3.ogv (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_4.ogv (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/conf.py.in (99%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/images/xmed-gui-withframe.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/images/xmed-gui.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/index.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/medop-definitions.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/medop-develguide.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/medop-prototype-develguide.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/medop-prototype-medmem.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/medop-prototype-overview.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/medop-references.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/medop-specifications.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/medop-userguide-gui.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/medop-workingnotes-2010.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/medop-workingnotes-2011.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/fr/medop-workingnotes-2012.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/champ_altitude_MAP.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/convert.sh (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/ico_datasource_add.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/ico_datasource_changeUnderlyingMesh.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/ico_datasource_expandfield.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/ico_datasource_use.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/ico_datasource_view.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/ico_imagesource.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/ico_workspace_save.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/ico_xmed.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/med-uml-main.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/med-uml-main_60pc.png (100%) rename doc/{doxygen/figures => dev/sphinx/images}/medlayers.png (100%) rename doc/{doxygen/figures => dev/sphinx/images}/medlayers_70pc.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medmem-corba-layers.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medmem-layers.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop-gui-aliasfield.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop-gui-aliasfield_scale.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop-gui-result.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop-gui-result_scale.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop-gui-selectfield.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop-gui-selectfield_scale.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop-gui-visufield.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop-gui-visufield_scale.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop_exportparavis.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop_exportparavis_result.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop_image2med_dialog.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop_image2med_tomographie.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop_projection_inputs.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/medop_projection_result.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/partition_mesh.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/partition_skin.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-architecture.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-exploremed.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-functions.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-changeUnderlyingMesh.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-changeUnderlyingMesh_wsview.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-contextmenu.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-contextmenu_60pc.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-contextmenu_70pc.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-contextmenu_80pc.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-expand-zoom.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-explore-zoom.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-explore.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-menucontextuel-zoom.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-selectfile.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-useinworkspace-alias.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-useinworkspace-result.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-useinworkspace-result_70pc.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-useinworkspace.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-useinworkspace_70pc.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-visualize-result.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-visualize-result_50pc.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-visualize-result_70pc.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-visualize-zoom.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-visualize.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-visualize_50pc.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-datasource-visualize_70pc.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-start.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-withframe.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-workspace-view.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui-workspace.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-gui_70pc.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-implantation.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-irm-diff.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-irm-field.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-irm.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-userguide-example2-datasource.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-userguide-example2-workspace-save.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-userguide-example2-workspace.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-visu-importtimestamps.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/images/xmed-visu-scalarmaptimestamps.png (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/index.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-definitions.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-develguide.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-prototype-develguide.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-prototype-medmem.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-prototype-overview.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-references.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-specifications.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-userguide-api.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-userguide-gui.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-workingnotes-2010.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-workingnotes-2011.rst (100%) rename {src/MEDOP/doc => doc/dev}/sphinx/medop-workingnotes-2012.rst (100%) delete mode 100644 doc/doxygen/doxfiles/interptools.dox delete mode 100644 doc/doxygen/doxfiles/intro.dox delete mode 100644 doc/doxygen/doxfiles/library.dox delete mode 100644 doc/doxygen/doxfiles/medcoupling.dox delete mode 100644 doc/doxygen/doxfiles/medcoupling/MEDCouplingMeshes.dox delete mode 100755 doc/salome/tui/doxyfile.in delete mode 100755 doc/salome/tui/images/head.png delete mode 100644 doc/salome/tui/input/index.doc delete mode 100755 doc/salome/tui/static/footer.html delete mode 100755 doc/salome/tui/static/header.html.in delete mode 100644 doc/salome/tui/static/salome_extra.css rename doc/{salome/tui => tutorial}/CMakeLists.txt (53%) create mode 100644 doc/tutorial/atestMEDCouplingCorba1.rst create mode 100644 doc/tutorial/atestMEDCouplingCube.rst create mode 100644 doc/tutorial/atestMEDCouplingDataArray1.rst create mode 100644 doc/tutorial/atestMEDCouplingFieldDouble1.rst create mode 100644 doc/tutorial/atestMEDCouplingLoaderEx1.rst create mode 100644 doc/tutorial/atestMEDCouplingLoaderEx2.rst create mode 100644 doc/tutorial/atestMEDCouplingNumPy.rst create mode 100644 doc/tutorial/atestMEDCouplingPoly.rst create mode 100644 doc/tutorial/atestMEDCouplingRead.rst create mode 100644 doc/tutorial/atestMEDCouplingRemapper.rst create mode 100644 doc/tutorial/atestMEDCouplingUMesh1.rst create mode 100644 doc/tutorial/atestMEDLoaderAdvancedAPI1.rst create mode 100644 doc/tutorial/atestMEDLoaderBasicAPI1.rst create mode 100644 doc/tutorial/atestMEDLoaderSplitAndMerge1.rst create mode 100644 doc/tutorial/conf.py.in create mode 100644 doc/tutorial/data/Fixe.med create mode 100644 doc/tutorial/data/Mobile.med create mode 100644 doc/tutorial/data/agitateur.med create mode 100644 doc/tutorial/images/DataArrayDouble_1.jpg create mode 100644 doc/tutorial/images/FieldDouble1_1.png create mode 100644 doc/tutorial/images/FieldDouble1_1_exploded.png create mode 100644 doc/tutorial/images/FieldDouble1_2.png create mode 100644 doc/tutorial/images/Field_Cube3D.jpg create mode 100644 doc/tutorial/images/IndirectIndex.jpg create mode 100644 doc/tutorial/images/LocationEx2.jpg create mode 100644 doc/tutorial/images/Mesh_cube3D.jpg create mode 100644 doc/tutorial/images/Mesh_polygons2D.jpg create mode 100644 doc/tutorial/images/Remapper1.png create mode 100644 doc/tutorial/images/SplitAndMerge2.jpg create mode 100644 doc/tutorial/images/SplitAndMergeCell1.jpg create mode 100644 doc/tutorial/images/SurjectionDataArray.png create mode 100644 doc/tutorial/images/UMesh1.png create mode 100644 doc/tutorial/images/agitateur.jpg create mode 100644 doc/tutorial/images/blade.jpg create mode 100644 doc/tutorial/images/captureCoarseMesh.png create mode 100644 doc/tutorial/images/captureFineMesh.png create mode 100644 doc/tutorial/images/cube.jpg create mode 100644 doc/tutorial/images/face.jpg create mode 100644 doc/tutorial/images/fixm.jpg create mode 100644 doc/tutorial/images/mesh3DSurfInside.jpg create mode 100644 doc/tutorial/images/mobm.jpg create mode 100644 doc/tutorial/images/partFixmAndzone1Mobm.jpg create mode 100644 doc/tutorial/images/partFixmWithoutZone1Mobm.jpg create mode 100644 doc/tutorial/images/skinandnccells_numpy.png create mode 100644 doc/tutorial/images/skinonly_numpy.png create mode 100644 doc/tutorial/images/zone1Mobm.jpg create mode 100644 doc/tutorial/images/zonesMobm.jpg create mode 100644 doc/tutorial/index.rst create mode 100644 doc/tutorial/medcoupling_2Dpolygon.rst create mode 100644 doc/tutorial/medcoupling_3Dcube.rst create mode 100644 doc/tutorial/medcoupling_Read.rst create mode 100644 doc/tutorial/medcoupling_dataarray1_en.rst create mode 100644 doc/tutorial/medcoupling_dataarray1_fr.rst create mode 100644 doc/tutorial/medcoupling_en.rst create mode 100644 doc/tutorial/medcoupling_fielddouble1_en.rst create mode 100644 doc/tutorial/medcoupling_fielddouble1_fr.rst create mode 100644 doc/tutorial/medcoupling_fr.rst create mode 100644 doc/tutorial/medcoupling_umesh1_en.rst create mode 100644 doc/tutorial/medcoupling_umesh1_fr.rst create mode 100644 doc/tutorial/medcouplingcorba_en.rst create mode 100644 doc/tutorial/medcouplingcorba_fr.rst create mode 100644 doc/tutorial/medcouplingloaderex1_en.rst create mode 100644 doc/tutorial/medcouplingloaderex1_fr.rst create mode 100644 doc/tutorial/medcouplingloaderex2_en.rst create mode 100644 doc/tutorial/medcouplingloaderex2_fr.rst create mode 100644 doc/tutorial/medcouplingnumpy_en.rst create mode 100644 doc/tutorial/medcouplingnumpy_fr.rst create mode 100644 doc/tutorial/medcouplingremapper_en.rst create mode 100644 doc/tutorial/medcouplingremapper_fr.rst create mode 100644 doc/tutorial/medloader_SplitAndMerge1_en.rst create mode 100644 doc/tutorial/medloader_SplitAndMerge1_fr.rst create mode 100644 doc/tutorial/medloader_advancedAPI1_en.rst create mode 100644 doc/tutorial/medloader_advancedAPI1_fr.rst create mode 100644 doc/tutorial/medloader_basicAPI1_en.rst create mode 100644 doc/tutorial/medloader_basicAPI1_fr.rst create mode 100644 doc/tutorial/medloader_en.rst create mode 100644 doc/tutorial/medloader_fr.rst rename doc/{salome => user}/CMakeLists.txt (97%) rename doc/{ => user}/doxygen/BuildPyExamplesFromCPP.py (96%) rename doc/{ => user}/doxygen/CMakeLists.txt (98%) rename doc/{ => user}/doxygen/Doxyfile_med_user.in (82%) create mode 100644 doc/user/doxygen/doxfiles/appendix/appendix.dox rename doc/{doxygen/doxfiles => user/doxygen/doxfiles/appendix}/glossary.dox (90%) rename doc/{doxygen/doxfiles => user/doxygen/doxfiles/appendix}/install.dox (81%) rename doc/{doxygen/doxfiles/interpolation => user/doxygen/doxfiles/appendix}/interpkernel.dox (90%) create mode 100644 doc/user/doxygen/doxfiles/appendix/med-file.dox create mode 100644 doc/user/doxygen/doxfiles/appendix/references.dox create mode 100644 doc/user/doxygen/doxfiles/examples/examples.dox rename doc/{ => user}/doxygen/doxfiles/examples/medcouplingexamplesarrays.doxy (100%) rename doc/{ => user}/doxygen/doxfiles/examples/medcouplingexamplesfields.doxy (98%) rename doc/{ => user}/doxygen/doxfiles/examples/medcouplingexamplesfooter.doxy (100%) rename doc/{ => user}/doxygen/doxfiles/examples/medcouplingexamplesheader.doxy (100%) rename doc/{ => user}/doxygen/doxfiles/examples/medcouplingexamplesmeshes.doxy (100%) rename doc/{ => user}/doxygen/doxfiles/examples/medcouplingexamplesother.doxy (100%) create mode 100644 doc/user/doxygen/doxfiles/faq.dox rename doc/{ => user}/doxygen/doxfiles/gui.dox (69%) create mode 100644 doc/user/doxygen/doxfiles/index.dox rename doc/{doxygen/doxfiles/medcoupling/MEDCouplingArray.dox => user/doxygen/doxfiles/reference/arrays/arrays.dox} (74%) create mode 100644 doc/user/doxygen/doxfiles/reference/arrays/numbering.dox rename doc/{doxygen/doxfiles/medcoupling => user/doxygen/doxfiles/reference/cpp}/MEDCouplingTimeLabel.dox (82%) create mode 100644 doc/user/doxygen/doxfiles/reference/cpp/cpp.dox create mode 100644 doc/user/doxygen/doxfiles/reference/distrib/corba-distrib.dox create mode 100644 doc/user/doxygen/doxfiles/reference/distrib/distrib.dox create mode 100644 doc/user/doxygen/doxfiles/reference/distrib/parallel.dox rename doc/{doxygen/doxfiles/medcoupling => user/doxygen/doxfiles/reference/fields}/MEDCouplingFields.dox (74%) create mode 100644 doc/user/doxygen/doxfiles/reference/fields/discretization.dox create mode 100644 doc/user/doxygen/doxfiles/reference/fields/fields.dox rename doc/{doxygen/doxfiles => user/doxygen/doxfiles/reference}/interpolation/Geometric2D.dox (95%) rename doc/{doxygen/doxfiles/medcoupling => user/doxygen/doxfiles/reference/interpolation}/NatureOfField.dox (87%) rename doc/{doxygen/doxfiles => user/doxygen/doxfiles/reference}/interpolation/barycoords.dox (100%) create mode 100644 doc/user/doxygen/doxfiles/reference/interpolation/interpolation.dox rename doc/{doxygen/doxfiles => user/doxygen/doxfiles/reference}/interpolation/interptheory.dox (99%) rename doc/{doxygen/doxfiles/interpolation/intersectors.dox => user/doxygen/doxfiles/reference/interpolation/intersec-specifics.dox} (92%) create mode 100644 doc/user/doxygen/doxfiles/reference/interpolation/intersectors.dox create mode 100644 doc/user/doxygen/doxfiles/reference/interpolation/intro-interp.dox rename doc/{doxygen/doxfiles => user/doxygen/doxfiles/reference}/interpolation/remapper.dox (64%) create mode 100644 doc/user/doxygen/doxfiles/reference/medcoupling.dox rename doc/{doxygen/doxfiles => user/doxygen/doxfiles/reference}/medloader/MEDLoaderAdvancedAPI.dox (82%) rename doc/{doxygen/doxfiles => user/doxygen/doxfiles/reference}/medloader/MEDLoaderBasicAPI.dox (99%) rename doc/{doxygen/doxfiles/medloader.dox => user/doxygen/doxfiles/reference/medloader/intro-medloader.dox} (90%) create mode 100644 doc/user/doxygen/doxfiles/reference/medloader/medloader.dox rename doc/{doxygen/doxfiles/medcoupling => user/doxygen/doxfiles/reference/meshes}/MEDCouplingCMesh.dox (74%) rename doc/{doxygen/doxfiles/medcoupling => user/doxygen/doxfiles/reference/meshes}/MEDCouplingExtruded.dox (84%) rename doc/{doxygen/doxfiles/medcoupling => user/doxygen/doxfiles/reference/meshes}/MEDCouplingPointSet.dox (94%) rename doc/{doxygen/doxfiles/medcoupling => user/doxygen/doxfiles/reference/meshes}/MEDCouplingUMesh.dox (80%) create mode 100644 doc/user/doxygen/doxfiles/reference/meshes/meshes.dox rename doc/{doxygen/doxfiles/medcoupling => user/doxygen/doxfiles/reference/misc}/MEDCouplingFieldTemplates.dox (60%) create mode 100644 doc/user/doxygen/doxfiles/reference/misc/icoco.dox create mode 100644 doc/user/doxygen/doxfiles/reference/misc/misc.dox rename doc/{doxygen/doxfiles => user/doxygen/doxfiles/reference/misc}/tools.dox (100%) create mode 100644 doc/user/doxygen/doxfiles/reference/reference.dox rename doc/{doxygen/doxfiles => user/doxygen/doxfiles/start}/functionalities.dox (91%) create mode 100644 doc/user/doxygen/doxfiles/start/intro-start.dox create mode 100644 doc/user/doxygen/doxfiles/start/library.dox create mode 100644 doc/user/doxygen/doxfiles/start/python-api.dox create mode 100644 doc/user/doxygen/doxfiles/start/start.dox create mode 100644 doc/user/doxygen/doxfiles/start/terminology.dox create mode 100644 doc/user/doxygen/doxfiles/tutorial.dox rename doc/{ => user}/doxygen/doxy2swig/MEDCoupling_doc.i.in (100%) rename doc/{ => user}/doxygen/doxy2swig/MEDLoader_doc.i.in (100%) rename doc/{ => user}/doxygen/doxy2swig/doxy2swig.cmake (97%) rename doc/{ => user}/doxygen/doxy2swig/doxy2swig.py (100%) rename doc/{ => user}/doxygen/fakesources/MEDCouplingField.C (100%) rename doc/{ => user}/doxygen/fakesources/MEDCouplingFieldDouble.C (97%) rename doc/{ => user}/doxygen/fakesources/MEDCouplingMemArray.C (99%) rename doc/{ => user}/doxygen/fakesources/MEDCouplingMesh.C (100%) rename doc/{ => user}/doxygen/fakesources/MEDCouplingPointSet.C (100%) rename doc/{ => user}/doxygen/fakesources/MEDCouplingUMesh.C (100%) rename doc/{ => user}/doxygen/fakesources/MEDFileField.C (100%) rename doc/{ => user}/doxygen/fakesources/MEDFileMesh.C (100%) create mode 100644 doc/user/doxygen/fakesources/namespaces.C create mode 100644 doc/user/doxygen/figures/IndirectIndex.jpg rename doc/{ => user}/doxygen/figures/MED.png (100%) rename doc/{ => user}/doxygen/figures/MEDCouplingUMeshConn.eps (100%) rename doc/{ => user}/doxygen/figures/MEDCouplingUMeshConn.fig (100%) rename doc/{ => user}/doxygen/figures/MEDCouplingUMeshConn.png (100%) rename doc/{ => user}/doxygen/figures/MEDFileConcepts.fig (100%) rename doc/{ => user}/doxygen/figures/MEDFileConcepts.png (100%) rename doc/{ => user}/doxygen/figures/MED_small.eps (100%) rename doc/{ => user}/doxygen/figures/MED_small.png (100%) rename doc/{ => user}/doxygen/figures/MedCoupling_Architecture.png (100%) rename doc/{ => user}/doxygen/figures/NonCoincident.png (100%) rename doc/{ => user}/doxygen/figures/NonCoincident_small.eps (100%) rename doc/{ => user}/doxygen/figures/NonCoincident_small.png (100%) rename doc/{ => user}/doxygen/figures/NonOverlapping.fig (100%) rename doc/{ => user}/doxygen/figures/NonOverlapping.png (100%) rename doc/{ => user}/doxygen/figures/OverlapDEC1.fig (100%) rename doc/{ => user}/doxygen/figures/OverlapDEC1.png (100%) rename doc/{ => user}/doxygen/figures/SampGeo2D1.eps (100%) rename doc/{ => user}/doxygen/figures/SampGeo2D1.png (100%) rename doc/{ => user}/doxygen/figures/SampGeo2D2.eps (100%) rename doc/{ => user}/doxygen/figures/SampGeo2D2.png (100%) rename doc/{ => user}/doxygen/figures/SampGeo2D3.eps (100%) rename doc/{ => user}/doxygen/figures/SampGeo2D3.png (100%) rename doc/{ => user}/doxygen/figures/SampGeo2D4.eps (100%) rename doc/{ => user}/doxygen/figures/SampGeo2D4.png (100%) rename doc/{ => user}/doxygen/figures/UML-0.png (100%) rename doc/{ => user}/doxygen/figures/UML-1.png (100%) rename doc/{ => user}/doxygen/figures/UML-2.png (100%) rename doc/{ => user}/doxygen/figures/UML-3.png (100%) rename doc/{ => user}/doxygen/figures/UML-4.png (100%) rename doc/{ => user}/doxygen/figures/UML-5.png (100%) rename doc/{ => user}/doxygen/figures/UML-6.png (100%) rename doc/{ => user}/doxygen/figures/UML-7.png (100%) rename doc/{ => user}/doxygen/figures/UML-8.png (100%) rename doc/{ => user}/doxygen/figures/UML.png (100%) rename doc/{ => user}/doxygen/figures/UML_light.png (100%) rename doc/{ => user}/doxygen/figures/UML_small.png (100%) rename doc/{ => user}/doxygen/figures/connectivity_arrays.eps (100%) rename doc/{ => user}/doxygen/figures/connectivity_arrays.png (100%) rename doc/{ => user}/doxygen/figures/connectivity_arrays_small.eps (100%) rename doc/{ => user}/doxygen/figures/connectivity_arrays_small.png (100%) rename doc/{ => user}/doxygen/figures/connectivity_example.png (100%) rename doc/{ => user}/doxygen/figures/connectivity_example_small.png (100%) create mode 100644 doc/user/doxygen/figures/fine_mesh.png create mode 100644 doc/user/doxygen/figures/geom.png rename doc/{ => user}/doxygen/figures/grid_example.png (100%) rename doc/{ => user}/doxygen/figures/interpolationimage.png (100%) create mode 100644 doc/user/doxygen/figures/med-file-uml.png create mode 100644 doc/user/doxygen/figures/med-loader-adv-classes.png rename {src/MEDOP/doc/sphinx/images => doc/user/doxygen/figures}/medlayers.png (100%) rename {src/MEDOP/doc/sphinx/images => doc/user/doxygen/figures}/medlayers_70pc.png (100%) rename doc/{ => user}/doxygen/figures/mesh_splitted.png (100%) rename doc/{ => user}/doxygen/figures/mesh_unsplitted.png (100%) rename doc/{ => user}/doxygen/figures/polygon_connectivity.png (100%) rename doc/{ => user}/doxygen/figures/polygon_connectivity_small.eps (100%) rename doc/{ => user}/doxygen/figures/polygon_connectivity_small.png (100%) rename doc/{ => user}/doxygen/figures/polyhedron_connectivity.png (100%) rename doc/{ => user}/doxygen/figures/polyhedron_connectivity_small.eps (100%) rename doc/{ => user}/doxygen/figures/polyhedron_connectivity_small.png (100%) rename doc/{ => user}/doxygen/figures/projectionHQ.png (100%) rename doc/{ => user}/doxygen/figures/projectionHQ_600.png (100%) rename doc/{ => user}/doxygen/figures/source_field.png (100%) rename doc/{ => user}/doxygen/figures/source_mesh.png (100%) rename doc/{ => user}/doxygen/figures/target_field.png (100%) rename doc/{ => user}/doxygen/figures/target_mesh.png (100%) rename doc/{ => user}/doxygen/figures/tetra_simplexize_24_48.jpg (100%) rename doc/{ => user}/doxygen/figures/tetra_simplexize_5_6.jpg (100%) rename doc/{ => user}/doxygen/images/head.png (100%) rename doc/{ => user}/doxygen/static/footer.html (100%) rename doc/{ => user}/doxygen/static/header.html.in (100%) rename doc/{ => user}/doxygen/static/salome_extra.css (100%) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 9e605c8b2..a7ce86882 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -17,6 +17,6 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -ADD_SUBDIRECTORY(salome) -ADD_SUBDIRECTORY(doxygen) - +ADD_SUBDIRECTORY(user) +ADD_SUBDIRECTORY(tutorial) +ADD_SUBDIRECTORY(dev) diff --git a/src/MEDOP/doc/CMakeLists.txt b/doc/dev/CMakeLists.txt similarity index 100% rename from src/MEDOP/doc/CMakeLists.txt rename to doc/dev/CMakeLists.txt diff --git a/src/MEDOP/doc/models/medop.xmi b/doc/dev/models/medop.xmi similarity index 100% rename from src/MEDOP/doc/models/medop.xmi rename to doc/dev/models/medop.xmi diff --git a/src/MEDOP/doc/sphinx/CMakeLists.txt b/doc/dev/sphinx/CMakeLists.txt similarity index 89% rename from src/MEDOP/doc/sphinx/CMakeLists.txt rename to doc/dev/sphinx/CMakeLists.txt index 411eaefdf..7ebd6c6f6 100644 --- a/src/MEDOP/doc/sphinx/CMakeLists.txt +++ b/doc/dev/sphinx/CMakeLists.txt @@ -22,9 +22,9 @@ SALOME_CONFIGURE_FILE(conf.py.in conf.py) SET(_cmd_options -c ${CMAKE_CURRENT_BINARY_DIR} -b html -d doctrees -D latex_paper_size=a4 ${CMAKE_CURRENT_SOURCE_DIR} html) SALOME_GENERATE_ENVIRONMENT_SCRIPT(_cmd env_script "${SPHINX_EXECUTABLE}" "${_cmd_options}") -ADD_CUSTOM_TARGET(html_docs COMMAND ${_cmd}) +ADD_CUSTOM_TARGET(dev_docs ALL COMMAND ${_cmd}) -INSTALL(CODE "EXECUTE_PROCESS(COMMAND \"${CMAKE_COMMAND}\" --build ${PROJECT_BINARY_DIR} --target html_docs)") +#INSTALL(CODE "EXECUTE_PROCESS(COMMAND \"${CMAKE_COMMAND}\" --build ${PROJECT_BINARY_DIR} --target dev_docs)") INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/ DESTINATION ${SALOME_INSTALL_DOC}/dev/MED) SET(make_clean_files html doctrees) diff --git a/src/MEDOP/doc/sphinx/_static/documents/20070105_CEA_VBERGEAUD_GuideutilisateurMEDMEMOIRE.pdf b/doc/dev/sphinx/_static/documents/20070105_CEA_VBERGEAUD_GuideutilisateurMEDMEMOIRE.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/documents/20070105_CEA_VBERGEAUD_GuideutilisateurMEDMEMOIRE.pdf rename to doc/dev/sphinx/_static/documents/20070105_CEA_VBERGEAUD_GuideutilisateurMEDMEMOIRE.pdf diff --git a/src/MEDOP/doc/sphinx/_static/documents/20091211_CEA_AGEAY_09-017-RT-A_Normalisation_des_champs_et_des_maillages_pour_le_couplage_de_codes.pdf b/doc/dev/sphinx/_static/documents/20091211_CEA_AGEAY_09-017-RT-A_Normalisation_des_champs_et_des_maillages_pour_le_couplage_de_codes.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/documents/20091211_CEA_AGEAY_09-017-RT-A_Normalisation_des_champs_et_des_maillages_pour_le_couplage_de_codes.pdf rename to doc/dev/sphinx/_static/documents/20091211_CEA_AGEAY_09-017-RT-A_Normalisation_des_champs_et_des_maillages_pour_le_couplage_de_codes.pdf diff --git a/src/MEDOP/doc/sphinx/_static/documents/20091218_EDF_VCANO_H-I2C-2009-03595-FR.pdf b/doc/dev/sphinx/_static/documents/20091218_EDF_VCANO_H-I2C-2009-03595-FR.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/documents/20091218_EDF_VCANO_H-I2C-2009-03595-FR.pdf rename to doc/dev/sphinx/_static/documents/20091218_EDF_VCANO_H-I2C-2009-03595-FR.pdf diff --git a/src/MEDOP/doc/sphinx/_static/documents/20100129_MAN_seminaireEDF-CEA_all.pdf b/doc/dev/sphinx/_static/documents/20100129_MAN_seminaireEDF-CEA_all.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/documents/20100129_MAN_seminaireEDF-CEA_all.pdf rename to doc/dev/sphinx/_static/documents/20100129_MAN_seminaireEDF-CEA_all.pdf diff --git a/src/MEDOP/doc/sphinx/_static/documents/20101027_MAN_revueEDF-CEA.pdf b/doc/dev/sphinx/_static/documents/20101027_MAN_revueEDF-CEA.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/documents/20101027_MAN_revueEDF-CEA.pdf rename to doc/dev/sphinx/_static/documents/20101027_MAN_revueEDF-CEA.pdf diff --git a/src/MEDOP/doc/sphinx/_static/documents/20110309_XMED_scan_notes.pdf b/doc/dev/sphinx/_static/documents/20110309_XMED_scan_notes.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/documents/20110309_XMED_scan_notes.pdf rename to doc/dev/sphinx/_static/documents/20110309_XMED_scan_notes.pdf diff --git a/src/MEDOP/doc/sphinx/_static/documents/20110309_XMED_scan_remarques_ELORENTZ.pdf b/doc/dev/sphinx/_static/documents/20110309_XMED_scan_remarques_ELORENTZ.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/documents/20110309_XMED_scan_remarques_ELORENTZ.pdf rename to doc/dev/sphinx/_static/documents/20110309_XMED_scan_remarques_ELORENTZ.pdf diff --git a/src/MEDOP/doc/sphinx/_static/documents/20110310_seminaireEDF-CEA_maquetteXMED.pdf b/doc/dev/sphinx/_static/documents/20110310_seminaireEDF-CEA_maquetteXMED.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/documents/20110310_seminaireEDF-CEA_maquetteXMED.pdf rename to doc/dev/sphinx/_static/documents/20110310_seminaireEDF-CEA_maquetteXMED.pdf diff --git a/src/MEDOP/doc/sphinx/_static/documents/xmed-develguide.pdf b/doc/dev/sphinx/_static/documents/xmed-develguide.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/documents/xmed-develguide.pdf rename to doc/dev/sphinx/_static/documents/xmed-develguide.pdf diff --git a/src/MEDOP/doc/sphinx/_static/documents/xmed-specifications.pdf b/doc/dev/sphinx/_static/documents/xmed-specifications.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/documents/xmed-specifications.pdf rename to doc/dev/sphinx/_static/documents/xmed-specifications.pdf diff --git a/src/MEDOP/doc/sphinx/_static/documents/xmed-userguide.pdf b/doc/dev/sphinx/_static/documents/xmed-userguide.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/documents/xmed-userguide.pdf rename to doc/dev/sphinx/_static/documents/xmed-userguide.pdf diff --git a/src/MEDOP/doc/sphinx/_static/medop.css b/doc/dev/sphinx/_static/medop.css similarity index 98% rename from src/MEDOP/doc/sphinx/_static/medop.css rename to doc/dev/sphinx/_static/medop.css index 468256166..1d0a878f4 100644 --- a/src/MEDOP/doc/sphinx/_static/medop.css +++ b/doc/dev/sphinx/_static/medop.css @@ -1,4 +1,4 @@ -@import url("default.css"); +@import url("classic.css"); body { font-family: {{ 'Liberation', sans-serif }}; diff --git a/src/MEDOP/doc/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_manipulation_de_champs.pdf b/doc/dev/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_manipulation_de_champs.pdf similarity index 100% rename from src/MEDOP/doc/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_manipulation_de_champs.pdf rename to doc/dev/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_manipulation_de_champs.pdf diff --git a/src/MEDOP/doc/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_1.ogv b/doc/dev/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_1.ogv similarity index 100% rename from src/MEDOP/doc/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_1.ogv rename to doc/dev/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_1.ogv diff --git a/src/MEDOP/doc/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_3.ogv b/doc/dev/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_3.ogv similarity index 100% rename from src/MEDOP/doc/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_3.ogv rename to doc/dev/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_3.ogv diff --git a/src/MEDOP/doc/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_4.ogv b/doc/dev/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_4.ogv similarity index 100% rename from src/MEDOP/doc/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_4.ogv rename to doc/dev/sphinx/_static/presentations/20111115_JUS-2011/20111115_JUS2011_medop_exemple_4.ogv diff --git a/src/MEDOP/doc/sphinx/conf.py.in b/doc/dev/sphinx/conf.py.in similarity index 99% rename from src/MEDOP/doc/sphinx/conf.py.in rename to doc/dev/sphinx/conf.py.in index 9292409b4..bc94c6f51 100644 --- a/src/MEDOP/doc/sphinx/conf.py.in +++ b/doc/dev/sphinx/conf.py.in @@ -103,7 +103,7 @@ pygments_style = 'sphinx' # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. -#html_theme = 'omadoc' +html_theme = 'classic' html_theme_options = { "stickysidebar": "false", "rightsidebar": "false", diff --git a/src/MEDOP/doc/sphinx/fr/images/xmed-gui-withframe.png b/doc/dev/sphinx/fr/images/xmed-gui-withframe.png similarity index 100% rename from src/MEDOP/doc/sphinx/fr/images/xmed-gui-withframe.png rename to doc/dev/sphinx/fr/images/xmed-gui-withframe.png diff --git a/src/MEDOP/doc/sphinx/fr/images/xmed-gui.png b/doc/dev/sphinx/fr/images/xmed-gui.png similarity index 100% rename from src/MEDOP/doc/sphinx/fr/images/xmed-gui.png rename to doc/dev/sphinx/fr/images/xmed-gui.png diff --git a/src/MEDOP/doc/sphinx/fr/index.rst b/doc/dev/sphinx/fr/index.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/index.rst rename to doc/dev/sphinx/fr/index.rst diff --git a/src/MEDOP/doc/sphinx/fr/medop-definitions.rst b/doc/dev/sphinx/fr/medop-definitions.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/medop-definitions.rst rename to doc/dev/sphinx/fr/medop-definitions.rst diff --git a/src/MEDOP/doc/sphinx/fr/medop-develguide.rst b/doc/dev/sphinx/fr/medop-develguide.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/medop-develguide.rst rename to doc/dev/sphinx/fr/medop-develguide.rst diff --git a/src/MEDOP/doc/sphinx/fr/medop-prototype-develguide.rst b/doc/dev/sphinx/fr/medop-prototype-develguide.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/medop-prototype-develguide.rst rename to doc/dev/sphinx/fr/medop-prototype-develguide.rst diff --git a/src/MEDOP/doc/sphinx/fr/medop-prototype-medmem.rst b/doc/dev/sphinx/fr/medop-prototype-medmem.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/medop-prototype-medmem.rst rename to doc/dev/sphinx/fr/medop-prototype-medmem.rst diff --git a/src/MEDOP/doc/sphinx/fr/medop-prototype-overview.rst b/doc/dev/sphinx/fr/medop-prototype-overview.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/medop-prototype-overview.rst rename to doc/dev/sphinx/fr/medop-prototype-overview.rst diff --git a/src/MEDOP/doc/sphinx/fr/medop-references.rst b/doc/dev/sphinx/fr/medop-references.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/medop-references.rst rename to doc/dev/sphinx/fr/medop-references.rst diff --git a/src/MEDOP/doc/sphinx/fr/medop-specifications.rst b/doc/dev/sphinx/fr/medop-specifications.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/medop-specifications.rst rename to doc/dev/sphinx/fr/medop-specifications.rst diff --git a/src/MEDOP/doc/sphinx/fr/medop-userguide-gui.rst b/doc/dev/sphinx/fr/medop-userguide-gui.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/medop-userguide-gui.rst rename to doc/dev/sphinx/fr/medop-userguide-gui.rst diff --git a/src/MEDOP/doc/sphinx/fr/medop-workingnotes-2010.rst b/doc/dev/sphinx/fr/medop-workingnotes-2010.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/medop-workingnotes-2010.rst rename to doc/dev/sphinx/fr/medop-workingnotes-2010.rst diff --git a/src/MEDOP/doc/sphinx/fr/medop-workingnotes-2011.rst b/doc/dev/sphinx/fr/medop-workingnotes-2011.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/medop-workingnotes-2011.rst rename to doc/dev/sphinx/fr/medop-workingnotes-2011.rst diff --git a/src/MEDOP/doc/sphinx/fr/medop-workingnotes-2012.rst b/doc/dev/sphinx/fr/medop-workingnotes-2012.rst similarity index 100% rename from src/MEDOP/doc/sphinx/fr/medop-workingnotes-2012.rst rename to doc/dev/sphinx/fr/medop-workingnotes-2012.rst diff --git a/src/MEDOP/doc/sphinx/images/champ_altitude_MAP.png b/doc/dev/sphinx/images/champ_altitude_MAP.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/champ_altitude_MAP.png rename to doc/dev/sphinx/images/champ_altitude_MAP.png diff --git a/src/MEDOP/doc/sphinx/images/convert.sh b/doc/dev/sphinx/images/convert.sh similarity index 100% rename from src/MEDOP/doc/sphinx/images/convert.sh rename to doc/dev/sphinx/images/convert.sh diff --git a/src/MEDOP/doc/sphinx/images/ico_datasource_add.png b/doc/dev/sphinx/images/ico_datasource_add.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/ico_datasource_add.png rename to doc/dev/sphinx/images/ico_datasource_add.png diff --git a/src/MEDOP/doc/sphinx/images/ico_datasource_changeUnderlyingMesh.png b/doc/dev/sphinx/images/ico_datasource_changeUnderlyingMesh.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/ico_datasource_changeUnderlyingMesh.png rename to doc/dev/sphinx/images/ico_datasource_changeUnderlyingMesh.png diff --git a/src/MEDOP/doc/sphinx/images/ico_datasource_expandfield.png b/doc/dev/sphinx/images/ico_datasource_expandfield.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/ico_datasource_expandfield.png rename to doc/dev/sphinx/images/ico_datasource_expandfield.png diff --git a/src/MEDOP/doc/sphinx/images/ico_datasource_use.png b/doc/dev/sphinx/images/ico_datasource_use.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/ico_datasource_use.png rename to doc/dev/sphinx/images/ico_datasource_use.png diff --git a/src/MEDOP/doc/sphinx/images/ico_datasource_view.png b/doc/dev/sphinx/images/ico_datasource_view.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/ico_datasource_view.png rename to doc/dev/sphinx/images/ico_datasource_view.png diff --git a/src/MEDOP/doc/sphinx/images/ico_imagesource.png b/doc/dev/sphinx/images/ico_imagesource.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/ico_imagesource.png rename to doc/dev/sphinx/images/ico_imagesource.png diff --git a/src/MEDOP/doc/sphinx/images/ico_workspace_save.png b/doc/dev/sphinx/images/ico_workspace_save.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/ico_workspace_save.png rename to doc/dev/sphinx/images/ico_workspace_save.png diff --git a/src/MEDOP/doc/sphinx/images/ico_xmed.png b/doc/dev/sphinx/images/ico_xmed.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/ico_xmed.png rename to doc/dev/sphinx/images/ico_xmed.png diff --git a/src/MEDOP/doc/sphinx/images/med-uml-main.png b/doc/dev/sphinx/images/med-uml-main.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/med-uml-main.png rename to doc/dev/sphinx/images/med-uml-main.png diff --git a/src/MEDOP/doc/sphinx/images/med-uml-main_60pc.png b/doc/dev/sphinx/images/med-uml-main_60pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/med-uml-main_60pc.png rename to doc/dev/sphinx/images/med-uml-main_60pc.png diff --git a/doc/doxygen/figures/medlayers.png b/doc/dev/sphinx/images/medlayers.png similarity index 100% rename from doc/doxygen/figures/medlayers.png rename to doc/dev/sphinx/images/medlayers.png diff --git a/doc/doxygen/figures/medlayers_70pc.png b/doc/dev/sphinx/images/medlayers_70pc.png similarity index 100% rename from doc/doxygen/figures/medlayers_70pc.png rename to doc/dev/sphinx/images/medlayers_70pc.png diff --git a/src/MEDOP/doc/sphinx/images/medmem-corba-layers.png b/doc/dev/sphinx/images/medmem-corba-layers.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medmem-corba-layers.png rename to doc/dev/sphinx/images/medmem-corba-layers.png diff --git a/src/MEDOP/doc/sphinx/images/medmem-layers.png b/doc/dev/sphinx/images/medmem-layers.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medmem-layers.png rename to doc/dev/sphinx/images/medmem-layers.png diff --git a/src/MEDOP/doc/sphinx/images/medop-gui-aliasfield.png b/doc/dev/sphinx/images/medop-gui-aliasfield.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop-gui-aliasfield.png rename to doc/dev/sphinx/images/medop-gui-aliasfield.png diff --git a/src/MEDOP/doc/sphinx/images/medop-gui-aliasfield_scale.png b/doc/dev/sphinx/images/medop-gui-aliasfield_scale.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop-gui-aliasfield_scale.png rename to doc/dev/sphinx/images/medop-gui-aliasfield_scale.png diff --git a/src/MEDOP/doc/sphinx/images/medop-gui-result.png b/doc/dev/sphinx/images/medop-gui-result.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop-gui-result.png rename to doc/dev/sphinx/images/medop-gui-result.png diff --git a/src/MEDOP/doc/sphinx/images/medop-gui-result_scale.png b/doc/dev/sphinx/images/medop-gui-result_scale.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop-gui-result_scale.png rename to doc/dev/sphinx/images/medop-gui-result_scale.png diff --git a/src/MEDOP/doc/sphinx/images/medop-gui-selectfield.png b/doc/dev/sphinx/images/medop-gui-selectfield.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop-gui-selectfield.png rename to doc/dev/sphinx/images/medop-gui-selectfield.png diff --git a/src/MEDOP/doc/sphinx/images/medop-gui-selectfield_scale.png b/doc/dev/sphinx/images/medop-gui-selectfield_scale.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop-gui-selectfield_scale.png rename to doc/dev/sphinx/images/medop-gui-selectfield_scale.png diff --git a/src/MEDOP/doc/sphinx/images/medop-gui-visufield.png b/doc/dev/sphinx/images/medop-gui-visufield.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop-gui-visufield.png rename to doc/dev/sphinx/images/medop-gui-visufield.png diff --git a/src/MEDOP/doc/sphinx/images/medop-gui-visufield_scale.png b/doc/dev/sphinx/images/medop-gui-visufield_scale.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop-gui-visufield_scale.png rename to doc/dev/sphinx/images/medop-gui-visufield_scale.png diff --git a/src/MEDOP/doc/sphinx/images/medop_exportparavis.png b/doc/dev/sphinx/images/medop_exportparavis.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop_exportparavis.png rename to doc/dev/sphinx/images/medop_exportparavis.png diff --git a/src/MEDOP/doc/sphinx/images/medop_exportparavis_result.png b/doc/dev/sphinx/images/medop_exportparavis_result.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop_exportparavis_result.png rename to doc/dev/sphinx/images/medop_exportparavis_result.png diff --git a/src/MEDOP/doc/sphinx/images/medop_image2med_dialog.png b/doc/dev/sphinx/images/medop_image2med_dialog.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop_image2med_dialog.png rename to doc/dev/sphinx/images/medop_image2med_dialog.png diff --git a/src/MEDOP/doc/sphinx/images/medop_image2med_tomographie.png b/doc/dev/sphinx/images/medop_image2med_tomographie.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop_image2med_tomographie.png rename to doc/dev/sphinx/images/medop_image2med_tomographie.png diff --git a/src/MEDOP/doc/sphinx/images/medop_projection_inputs.png b/doc/dev/sphinx/images/medop_projection_inputs.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop_projection_inputs.png rename to doc/dev/sphinx/images/medop_projection_inputs.png diff --git a/src/MEDOP/doc/sphinx/images/medop_projection_result.png b/doc/dev/sphinx/images/medop_projection_result.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medop_projection_result.png rename to doc/dev/sphinx/images/medop_projection_result.png diff --git a/src/MEDOP/doc/sphinx/images/partition_mesh.png b/doc/dev/sphinx/images/partition_mesh.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/partition_mesh.png rename to doc/dev/sphinx/images/partition_mesh.png diff --git a/src/MEDOP/doc/sphinx/images/partition_skin.png b/doc/dev/sphinx/images/partition_skin.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/partition_skin.png rename to doc/dev/sphinx/images/partition_skin.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-architecture.png b/doc/dev/sphinx/images/xmed-architecture.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-architecture.png rename to doc/dev/sphinx/images/xmed-architecture.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-exploremed.png b/doc/dev/sphinx/images/xmed-exploremed.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-exploremed.png rename to doc/dev/sphinx/images/xmed-exploremed.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-functions.png b/doc/dev/sphinx/images/xmed-functions.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-functions.png rename to doc/dev/sphinx/images/xmed-functions.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-changeUnderlyingMesh.png b/doc/dev/sphinx/images/xmed-gui-datasource-changeUnderlyingMesh.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-changeUnderlyingMesh.png rename to doc/dev/sphinx/images/xmed-gui-datasource-changeUnderlyingMesh.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-changeUnderlyingMesh_wsview.png b/doc/dev/sphinx/images/xmed-gui-datasource-changeUnderlyingMesh_wsview.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-changeUnderlyingMesh_wsview.png rename to doc/dev/sphinx/images/xmed-gui-datasource-changeUnderlyingMesh_wsview.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-contextmenu.png b/doc/dev/sphinx/images/xmed-gui-datasource-contextmenu.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-contextmenu.png rename to doc/dev/sphinx/images/xmed-gui-datasource-contextmenu.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-contextmenu_60pc.png b/doc/dev/sphinx/images/xmed-gui-datasource-contextmenu_60pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-contextmenu_60pc.png rename to doc/dev/sphinx/images/xmed-gui-datasource-contextmenu_60pc.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-contextmenu_70pc.png b/doc/dev/sphinx/images/xmed-gui-datasource-contextmenu_70pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-contextmenu_70pc.png rename to doc/dev/sphinx/images/xmed-gui-datasource-contextmenu_70pc.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-contextmenu_80pc.png b/doc/dev/sphinx/images/xmed-gui-datasource-contextmenu_80pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-contextmenu_80pc.png rename to doc/dev/sphinx/images/xmed-gui-datasource-contextmenu_80pc.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-expand-zoom.png b/doc/dev/sphinx/images/xmed-gui-datasource-expand-zoom.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-expand-zoom.png rename to doc/dev/sphinx/images/xmed-gui-datasource-expand-zoom.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-explore-zoom.png b/doc/dev/sphinx/images/xmed-gui-datasource-explore-zoom.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-explore-zoom.png rename to doc/dev/sphinx/images/xmed-gui-datasource-explore-zoom.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-explore.png b/doc/dev/sphinx/images/xmed-gui-datasource-explore.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-explore.png rename to doc/dev/sphinx/images/xmed-gui-datasource-explore.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-menucontextuel-zoom.png b/doc/dev/sphinx/images/xmed-gui-datasource-menucontextuel-zoom.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-menucontextuel-zoom.png rename to doc/dev/sphinx/images/xmed-gui-datasource-menucontextuel-zoom.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-selectfile.png b/doc/dev/sphinx/images/xmed-gui-datasource-selectfile.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-selectfile.png rename to doc/dev/sphinx/images/xmed-gui-datasource-selectfile.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-useinworkspace-alias.png b/doc/dev/sphinx/images/xmed-gui-datasource-useinworkspace-alias.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-useinworkspace-alias.png rename to doc/dev/sphinx/images/xmed-gui-datasource-useinworkspace-alias.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-useinworkspace-result.png b/doc/dev/sphinx/images/xmed-gui-datasource-useinworkspace-result.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-useinworkspace-result.png rename to doc/dev/sphinx/images/xmed-gui-datasource-useinworkspace-result.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-useinworkspace-result_70pc.png b/doc/dev/sphinx/images/xmed-gui-datasource-useinworkspace-result_70pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-useinworkspace-result_70pc.png rename to doc/dev/sphinx/images/xmed-gui-datasource-useinworkspace-result_70pc.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-useinworkspace.png b/doc/dev/sphinx/images/xmed-gui-datasource-useinworkspace.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-useinworkspace.png rename to doc/dev/sphinx/images/xmed-gui-datasource-useinworkspace.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-useinworkspace_70pc.png b/doc/dev/sphinx/images/xmed-gui-datasource-useinworkspace_70pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-useinworkspace_70pc.png rename to doc/dev/sphinx/images/xmed-gui-datasource-useinworkspace_70pc.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize-result.png b/doc/dev/sphinx/images/xmed-gui-datasource-visualize-result.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize-result.png rename to doc/dev/sphinx/images/xmed-gui-datasource-visualize-result.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize-result_50pc.png b/doc/dev/sphinx/images/xmed-gui-datasource-visualize-result_50pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize-result_50pc.png rename to doc/dev/sphinx/images/xmed-gui-datasource-visualize-result_50pc.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize-result_70pc.png b/doc/dev/sphinx/images/xmed-gui-datasource-visualize-result_70pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize-result_70pc.png rename to doc/dev/sphinx/images/xmed-gui-datasource-visualize-result_70pc.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize-zoom.png b/doc/dev/sphinx/images/xmed-gui-datasource-visualize-zoom.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize-zoom.png rename to doc/dev/sphinx/images/xmed-gui-datasource-visualize-zoom.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize.png b/doc/dev/sphinx/images/xmed-gui-datasource-visualize.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize.png rename to doc/dev/sphinx/images/xmed-gui-datasource-visualize.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize_50pc.png b/doc/dev/sphinx/images/xmed-gui-datasource-visualize_50pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize_50pc.png rename to doc/dev/sphinx/images/xmed-gui-datasource-visualize_50pc.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize_70pc.png b/doc/dev/sphinx/images/xmed-gui-datasource-visualize_70pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-datasource-visualize_70pc.png rename to doc/dev/sphinx/images/xmed-gui-datasource-visualize_70pc.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-start.png b/doc/dev/sphinx/images/xmed-gui-start.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-start.png rename to doc/dev/sphinx/images/xmed-gui-start.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-withframe.png b/doc/dev/sphinx/images/xmed-gui-withframe.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-withframe.png rename to doc/dev/sphinx/images/xmed-gui-withframe.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-workspace-view.png b/doc/dev/sphinx/images/xmed-gui-workspace-view.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-workspace-view.png rename to doc/dev/sphinx/images/xmed-gui-workspace-view.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui-workspace.png b/doc/dev/sphinx/images/xmed-gui-workspace.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui-workspace.png rename to doc/dev/sphinx/images/xmed-gui-workspace.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui.png b/doc/dev/sphinx/images/xmed-gui.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui.png rename to doc/dev/sphinx/images/xmed-gui.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-gui_70pc.png b/doc/dev/sphinx/images/xmed-gui_70pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-gui_70pc.png rename to doc/dev/sphinx/images/xmed-gui_70pc.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-implantation.png b/doc/dev/sphinx/images/xmed-implantation.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-implantation.png rename to doc/dev/sphinx/images/xmed-implantation.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-irm-diff.png b/doc/dev/sphinx/images/xmed-irm-diff.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-irm-diff.png rename to doc/dev/sphinx/images/xmed-irm-diff.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-irm-field.png b/doc/dev/sphinx/images/xmed-irm-field.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-irm-field.png rename to doc/dev/sphinx/images/xmed-irm-field.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-irm.png b/doc/dev/sphinx/images/xmed-irm.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-irm.png rename to doc/dev/sphinx/images/xmed-irm.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-userguide-example2-datasource.png b/doc/dev/sphinx/images/xmed-userguide-example2-datasource.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-userguide-example2-datasource.png rename to doc/dev/sphinx/images/xmed-userguide-example2-datasource.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-userguide-example2-workspace-save.png b/doc/dev/sphinx/images/xmed-userguide-example2-workspace-save.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-userguide-example2-workspace-save.png rename to doc/dev/sphinx/images/xmed-userguide-example2-workspace-save.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-userguide-example2-workspace.png b/doc/dev/sphinx/images/xmed-userguide-example2-workspace.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-userguide-example2-workspace.png rename to doc/dev/sphinx/images/xmed-userguide-example2-workspace.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-visu-importtimestamps.png b/doc/dev/sphinx/images/xmed-visu-importtimestamps.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-visu-importtimestamps.png rename to doc/dev/sphinx/images/xmed-visu-importtimestamps.png diff --git a/src/MEDOP/doc/sphinx/images/xmed-visu-scalarmaptimestamps.png b/doc/dev/sphinx/images/xmed-visu-scalarmaptimestamps.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/xmed-visu-scalarmaptimestamps.png rename to doc/dev/sphinx/images/xmed-visu-scalarmaptimestamps.png diff --git a/src/MEDOP/doc/sphinx/index.rst b/doc/dev/sphinx/index.rst similarity index 100% rename from src/MEDOP/doc/sphinx/index.rst rename to doc/dev/sphinx/index.rst diff --git a/src/MEDOP/doc/sphinx/medop-definitions.rst b/doc/dev/sphinx/medop-definitions.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-definitions.rst rename to doc/dev/sphinx/medop-definitions.rst diff --git a/src/MEDOP/doc/sphinx/medop-develguide.rst b/doc/dev/sphinx/medop-develguide.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-develguide.rst rename to doc/dev/sphinx/medop-develguide.rst diff --git a/src/MEDOP/doc/sphinx/medop-prototype-develguide.rst b/doc/dev/sphinx/medop-prototype-develguide.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-prototype-develguide.rst rename to doc/dev/sphinx/medop-prototype-develguide.rst diff --git a/src/MEDOP/doc/sphinx/medop-prototype-medmem.rst b/doc/dev/sphinx/medop-prototype-medmem.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-prototype-medmem.rst rename to doc/dev/sphinx/medop-prototype-medmem.rst diff --git a/src/MEDOP/doc/sphinx/medop-prototype-overview.rst b/doc/dev/sphinx/medop-prototype-overview.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-prototype-overview.rst rename to doc/dev/sphinx/medop-prototype-overview.rst diff --git a/src/MEDOP/doc/sphinx/medop-references.rst b/doc/dev/sphinx/medop-references.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-references.rst rename to doc/dev/sphinx/medop-references.rst diff --git a/src/MEDOP/doc/sphinx/medop-specifications.rst b/doc/dev/sphinx/medop-specifications.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-specifications.rst rename to doc/dev/sphinx/medop-specifications.rst diff --git a/src/MEDOP/doc/sphinx/medop-userguide-api.rst b/doc/dev/sphinx/medop-userguide-api.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-userguide-api.rst rename to doc/dev/sphinx/medop-userguide-api.rst diff --git a/src/MEDOP/doc/sphinx/medop-userguide-gui.rst b/doc/dev/sphinx/medop-userguide-gui.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-userguide-gui.rst rename to doc/dev/sphinx/medop-userguide-gui.rst diff --git a/src/MEDOP/doc/sphinx/medop-workingnotes-2010.rst b/doc/dev/sphinx/medop-workingnotes-2010.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-workingnotes-2010.rst rename to doc/dev/sphinx/medop-workingnotes-2010.rst diff --git a/src/MEDOP/doc/sphinx/medop-workingnotes-2011.rst b/doc/dev/sphinx/medop-workingnotes-2011.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-workingnotes-2011.rst rename to doc/dev/sphinx/medop-workingnotes-2011.rst diff --git a/src/MEDOP/doc/sphinx/medop-workingnotes-2012.rst b/doc/dev/sphinx/medop-workingnotes-2012.rst similarity index 100% rename from src/MEDOP/doc/sphinx/medop-workingnotes-2012.rst rename to doc/dev/sphinx/medop-workingnotes-2012.rst diff --git a/doc/doxygen/doxfiles/interptools.dox b/doc/doxygen/doxfiles/interptools.dox deleted file mode 100644 index 6dc4fb55d..000000000 --- a/doc/doxygen/doxfiles/interptools.dox +++ /dev/null @@ -1,28 +0,0 @@ -/*! -\page interptools Interpolation algorithms - -\section Presentation -The InterpKernel algorithms are part of the MED tool suite. They -answer to the following basic problem : given a source mesh \f$M_s\f$, a -source field \f$F_s\f$ and a target mesh \f$M_t\f$, reconstruct a field \f$F_t\f$ -that uses \f$M_t\f$ as a support. The InterpKernel suite gives a number of -possibilities to compute the target field, depending on a variety of -user constraints. - -\image html interpolationimage.png "General interpolation scheme" width=10cm - -The starting point for using the tools is the description of the two main different APIs. -- \subpage RemapperClasses "remapper class" and the underlying \subpage interpkernel library for sequential codes using \ref medcoupling fields or other data structures. -- \ref paramedmem for parallel MPI based codes using \c ParaMEDMEM distributed fields, and the algorithms of the \ref interpkernel library. - -The possibilities encompass: -- 1D, 2D lines, 2D (\ref interpolation2D), 3D surfaces(\ref interpolation3Dsurf) and 3D(\ref interpolation3D) handling, -- computation via node localization (\ref pointlocator) or via cell intersection (\ref ConsInterp), -- treatment of extended polygons (where edges can be arcs or segments) -for 2D intersection computations via \subpage interpkernelGeo2D, -- management of fields with P0,P1 or P2 representations. P0<->P0, P1<->P0, P1<->P1 and P2->P0 (non conservative) interpolators are available. - -In case of non \ref MeshOverlap "overlapping meshes", it is important to specify whether the field represents an extensive or intensive physical quantity through -the \ref NatureOfField attribute of the \ref medcoupling field. - -*/ diff --git a/doc/doxygen/doxfiles/intro.dox b/doc/doxygen/doxfiles/intro.dox deleted file mode 100644 index dcbc33de6..000000000 --- a/doc/doxygen/doxfiles/intro.dox +++ /dev/null @@ -1,81 +0,0 @@ -/*! - -\mainpage Introduction - -Simulation studies require the manipulation of meshes and fields for data -pre-processing, in calculation schemes (including chaining and coupling -of codes), or even for results post-processing. - -Corresponding computer codes can be viewed as software components accessing -input meshes and fields (with specific constraints) along with parameters -(datasets), and producing result meshes and fields. Each code presents by -construction the specificities of its discipline. - -The MED module aims at pooling operations on meshes and fields, facilitating -their use by various codes involved in a simulation process. This includes -making codes communicate while preserving as much as possible the integrity of -their content. - -To fulfill its objective, the MED module includes: -- Handling meshes and fields to satisfy code input requirements. -- Extraction of field information to post-process computation results of -a code. -- Projections and serialization to exchange meshes and fields between codes. - -In addition, the MED module offers several interfacing levels; users can thus -benefit from an interaction level adapted to their codes. - -Main services offered by MEDCoupling are: -- Manipulation of fields and their support mesh, serialized with MED format. -- Operations on scalars, vectors, and second order tensors. -- 1D/2D/3D interpolation on nodes, cells, Gauss points and nodes by element. - -MEDCoupling thus considers: -- Data dimension. -- Nature of information on fields, as well as conservation laws. -- Field profiles and mesh connectivity. - - -\image html projectionHQ_600.png -
- -\section contents Contents -This document is organized as follows: -- Recall of some basic \ref glossary about mesh and field manipulation. -- \ref library to manipulate meshes and fields that conform - to the MED data model. This library can be used in C++ programs as - in python script for data processing on meshes and fields. -- Technical presentation of \ref medcoupling that describes DataStructures -used for cross process exchange of meshes and fields. -- Technical presentation of \ref medloader that provides I/O functions to the -MED file format. -- \ref interptools, from theory to practice using MEDCoupling. -- Summary of \ref functionalities "available functionalities". - \if ENABLE_EXAMPLES -- \ref medcouplingpyexamples and tutorials. - \endif -- \ref gui that exhibits some useful functions of the library for a graphical -manipulation of data in standard use cases. -- \ref tools based on MEDLoader that can be used to process MED data files -(conversion tools and splitting tools). - \if ENABLE_EXAMPLES -- \ref medcouplingcppexamples for advanced users. - \endif - - -\section install Installation -The install procedure of the %MED SALOME module can handle a variety of configurations -to suit the needs of its user. Instructions for configuring and -installing the module can be found in \ref paramedmem_install. - - -\section references References -Here follows a list of useful references : - --# \anchor RefManualMedFile Reference Manual for Med File, V. Lefebvre, E. Fayolle, Projet PAL: Définition du modèle d'échange de données MED V2.2, Note technique EDF/SINETICS, HI-26-03-012/A, https://hammi.extra.cea.fr/static/MED/web_med/index.html --# VTK home page: \c http://public.kitware.com/VTK --# Med File Data Model : V. Lefebvre, E. Fayolle, Définition du modèle d'échange de données MED v2.2, https://hammi.extra.cea.fr/static/MED/web_med/pdf/NOTE_HI_26_03_012_A.pdf --# Jeffrey Grandy, Conservative remapping and region overlays by intersecting arbitrary polyhedra, Journal of Computational Physics, vol 148, 433-466 (1999) --# F. Preparata and M. Shamos Computational Geometry. Springer-Verlag, New York, 1985 - -*/ diff --git a/doc/doxygen/doxfiles/library.dox b/doc/doxygen/doxfiles/library.dox deleted file mode 100644 index 867b7a311..000000000 --- a/doc/doxygen/doxfiles/library.dox +++ /dev/null @@ -1,22 +0,0 @@ -/*! -\page library A library of functions for data processing - -The figure below represents the layer structure of the packages of the -library.\n -Each element depends on the blocks it covers (fully or partially).\n -White blocks represent system or external dependencies.\n -MEDCalc block, with gray background color, is the \ref gui "Graphical User Interface". -\n -Red-colored text identifies code with Swig interfaces.\n -Blue-colored text identifies code with both Swig interfaces and CORBA layer. - -\image html MedCoupling_Architecture.png - -The fundamentals (blue background) consists in three atomic libraries: - -- \ref medcoupling that describes DataStructures used for cross process exchange of meshes and fields. -- \ref medloader and ParaMEDLoader that provides I/O functions to the MED file format with sequential and parallel processing, respectively. -- \ref interptools that provides mathematical structures and algorithms for interpolation and - localization. It concerns three blocks: \ref INTERP_KERNEL "InterpKernel", \ref ParaMEDMEM::MEDCouplingRemapper "Remapper" and ParaMEDMEM (Remapper with parallel processing). - -*/ diff --git a/doc/doxygen/doxfiles/medcoupling.dox b/doc/doxygen/doxfiles/medcoupling.dox deleted file mode 100644 index fdbbbe7b3..000000000 --- a/doc/doxygen/doxfiles/medcoupling.dox +++ /dev/null @@ -1,37 +0,0 @@ -/*! -\page medcoupling MEDCoupling - -\section MEDCouplingIntro Introduction - -MEDCoupling is a library (\b libmedcoupling.so or \b medcoupling.dll) fully written in C++ and wrapped to be called in Python too. - -MEDCoupling C++ library implements a data structure which is the result of the following tradeoff : - -- Compliant with coupling : - - Fields definition defined enough to perform well defined interpolation - - exchangeable through process as well in parallel case in SPMD paradigm ( \ref paramedmem "ParaMEDMEM" ), as in distributed paradigm using CORBA. -- minimize as much as possible the number of prerequisites needed to use it ; So MEDCoupling only depends on -\ref interpkernel "INTERP_KERNEL library" -- light enough to be agile in order to : - - maximize the amount of algorithms being applied on it - - to ease implementation of clients of MEDCoupling. -- large enough to be used for MED file I/O. -- compliant with VTK visualization DataStructure -- integrate HPC constraints (compact structures, limitation of copies and launching of CPU consuming algorithms only when absolutely needed ). -- compliant with ICOCO API - -MEDCoupling implements a set of algorithms linked to the data structure. - -\section MEDCouplingMainConc Main Concepts - -Here are listed basic concepts present into MEDCoupling. - -For beginners in MEDCoupling world, it is advisable to read the following concepts in the same order than the underlying list. - -- \subpage MEDCouplingArrayPage "DataArrays" -- \subpage MEDCouplingMeshesPage "Meshes" -- \subpage MEDCouplingFieldsPage "Fields" -- \subpage MEDCouplingFieldTemplatesPage "Field templates" -- \subpage MEDCouplingTimeLabelPage "Time labels" - -*/ diff --git a/doc/doxygen/doxfiles/medcoupling/MEDCouplingMeshes.dox b/doc/doxygen/doxfiles/medcoupling/MEDCouplingMeshes.dox deleted file mode 100644 index 246af144d..000000000 --- a/doc/doxygen/doxfiles/medcoupling/MEDCouplingMeshes.dox +++ /dev/null @@ -1,35 +0,0 @@ - -/*! - \page MEDCouplingMeshesPage Meshes in MEDCoupling - -\section MEDCouplingMeshes Common concept shared by all type of Meshes in MEDCoupling - -A mesh has the following properties : - -- name -- **a dimension (called mesh dimension) and only one** (it implies that \b all cells constituting -mesh have the same dimension) -- a space dimension (relative to coordinates) -- a number of nodes -- a number of cells - -In MEDCoupling library there is no presence of faces nor edges. - -As a mesh has one dimension and only once, that is to say every cells in -mesh have the same dimension called MeshDimension. - -For example a mesh with a meshDimension equal to 1, have \b cells of type -NORM_SEG2. Another example, a mesh with a meshDimension equal -to 2, have \b cells of type -NORM_TRI3 and NORM_POLYGON for example. - -The class that incarnates the concept described above is : -\ref ParaMEDMEM::MEDCouplingMesh. - -\section MEDCouplingMeshesAvailInstan Available instantiable mesh types in MEDCoupling - -- \subpage MEDCouplingUMeshPage "Unstructured meshes" -- \subpage MEDCouplingCMeshPage "Cartesian meshes" -- \subpage MEDCouplingExtrudedPage "3D Extruded meshes" - -*/ diff --git a/doc/salome/tui/doxyfile.in b/doc/salome/tui/doxyfile.in deleted file mode 100755 index 4e6656bcc..000000000 --- a/doc/salome/tui/doxyfile.in +++ /dev/null @@ -1,264 +0,0 @@ -# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE -# -# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = "SALOME MED Module Developer" -PROJECT_NUMBER = -OUTPUT_DIRECTORY = MED -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = NO -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@ @PROJECT_BINARY_DIR@ -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = YES -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = NO -INHERIT_DOCS = NO -DISTRIBUTE_GROUP_DOC = NO -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 5 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = YES -OPTIMIZE_OUTPUT_JAVA = YES -BUILTIN_STL_SUPPORT = @DOXYGEN_SUPPORT_STL@ -SUBGROUPING = YES - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = YES -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -HIDE_UNDOC_MEMBERS = YES -HIDE_UNDOC_CLASSES = YES -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = YES -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = NO -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 25 -SHOW_USED_FILES = NO -SHOW_DIRECTORIES = NO -FILE_VERSION_FILTER = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = @PROJECT_SOURCE_DIR@/src \ - @PROJECT_SOURCE_DIR@/bin \ - @PROJECT_SOURCE_DIR@/idl \ - @PROJECT_BINARY_DIR@/bin \ - @CMAKE_CURRENT_SOURCE_DIR@/input -FILE_PATTERNS = *.idl *.h *.hh *.hxx *.c *.cc *.cxx *.ixx *.jxx @DOXYGEN_PYTHON_EXTENSION@ *.doc -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = -EXAMPLE_RECURSIVE = YES -IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/images -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = YES - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = NO -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = NO -REFERENCES_RELATION = YES -USE_HTAGS = NO -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = YES -COLS_IN_ALPHA_INDEX = 3 -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = . -HTML_FILE_EXTENSION = .html -HTML_HEADER = @CMAKE_CURRENT_BINARY_DIR@/static/header.html -HTML_FOOTER = @CMAKE_CURRENT_SOURCE_DIR@/static/footer.html -HTML_EXTRA_STYLESHEET = @CMAKE_CURRENT_SOURCE_DIR@/static/salome_extra.css -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = YES -TOC_EXPAND = YES -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = YES -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = YES -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = NO - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = NO -HAVE_DOT = YES -CLASS_GRAPH = YES -COLLABORATION_GRAPH = NO -GROUP_GRAPHS = NO -UML_LOOK = NO -TEMPLATE_RELATIONS = YES -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = NO -CALL_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -DOT_FONTNAME = Arial -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 1024 -MAX_DOT_GRAPH_HEIGHT = 1200 -MAX_DOT_GRAPH_DEPTH = 0 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = NO -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO diff --git a/doc/salome/tui/images/head.png b/doc/salome/tui/images/head.png deleted file mode 100755 index 307d9ef9a4c07f8fba2c8721309a978433bcf63c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78545 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 D4zrO! diff --git a/doc/salome/tui/input/index.doc b/doc/salome/tui/input/index.doc deleted file mode 100644 index 50c09d9e0..000000000 --- a/doc/salome/tui/input/index.doc +++ /dev/null @@ -1,13 +0,0 @@ -/*! \mainpage - -To browse the \b SALOME Med module Developer Documentation, follow the links below or use navigation menu at the top of the page: -
    -
  • Modules - documentation of TUI functionality.
  • -
  • Name Spaces - list of TUI packages and scripts.
  • -
  • Data Structures - list of all data structures and classes with brief descriptions.
  • -
  • Files - list of all files with brief descriptions.
  • -
- -\note Documentation of 3D - part of intersection matrix calculation more or less complete - -*/ \ No newline at end of file diff --git a/doc/salome/tui/static/footer.html b/doc/salome/tui/static/footer.html deleted file mode 100755 index affd43d84..000000000 --- a/doc/salome/tui/static/footer.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - diff --git a/doc/salome/tui/static/header.html.in b/doc/salome/tui/static/header.html.in deleted file mode 100755 index 5b289ac9d..000000000 --- a/doc/salome/tui/static/header.html.in +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - -$projectname: $title -$title - - - -$treeview -$search -$mathjax - -$extrastylesheet - - -
- -
Version: @SALOMEMED_VERSION@
- diff --git a/doc/salome/tui/static/salome_extra.css b/doc/salome/tui/static/salome_extra.css deleted file mode 100644 index 3e8b838a6..000000000 --- a/doc/salome/tui/static/salome_extra.css +++ /dev/null @@ -1,29 +0,0 @@ -/* The extra CSS for doxygen 1.8.3.1 */ - -#titlearea { - background-image:url('head.png'); - background-color: #175783; - border: 1px solid; - height: 80px; - background-repeat: no-repeat; - padding: 0px; - margin: 0px; - width: 99.9%; - border-bottom: 1px solid #5373B4; -} - -div.version { - border:1px solid #0000FF; - color: #CCCCCC; - font-family: Arial, Helvetica, sans-serif; - font-size: 9pt; - text-align: center; - width:100px; - -moz-border-radius: 8px; - margin: 5px; -} - -.navpath li.footer { - line-height:15px; - text-align: right; -} \ No newline at end of file diff --git a/doc/salome/tui/CMakeLists.txt b/doc/tutorial/CMakeLists.txt similarity index 53% rename from doc/salome/tui/CMakeLists.txt rename to doc/tutorial/CMakeLists.txt index 1747e981f..5cc2cb60a 100644 --- a/doc/salome/tui/CMakeLists.txt +++ b/doc/tutorial/CMakeLists.txt @@ -17,16 +17,18 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -SALOME_CONFIGURE_FILE(doxyfile.in doxyfile) -SALOME_CONFIGURE_FILE(static/header.html.in static/header.html) +SALOME_CONFIGURE_FILE(conf.py.in conf.py) -ADD_CUSTOM_TARGET(dev_docs ${DOXYGEN_EXECUTABLE}) +SET(_cmd_options -c ${CMAKE_CURRENT_BINARY_DIR} -b html -d doctrees -D latex_paper_size=a4 ${CMAKE_CURRENT_SOURCE_DIR} html) +SALOME_GENERATE_ENVIRONMENT_SCRIPT(_cmd env_script "${SPHINX_EXECUTABLE}" "${_cmd_options}") -INSTALL(CODE "FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/MED)") -INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/MED - DESTINATION ${SALOME_INSTALL_DOC}/tui - PATTERN "*.md5" EXCLUDE - PATTERN "*.map" EXCLUDE) -INSTALL(FILES images/head.png DESTINATION ${SALOME_INSTALL_DOC}/tui/MED) +ADD_CUSTOM_TARGET(tutorial_doc COMMAND ${_cmd}) +ADD_DEPENDENCIES(usr_docs tutorial_doc) -SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES MED) +#INSTALL(CODE "EXECUTE_PROCESS(COMMAND \"${CMAKE_COMMAND}\" --build ${PROJECT_BINARY_DIR} --target tutorial_doc)") +INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/ DESTINATION ${SALOME_INSTALL_DOC}/gui/MED/tutorial) +INSTALL(DIRECTORY images/ DESTINATION ${SALOME_INSTALL_DOC}/gui/MED/tutorial/images) +INSTALL(DIRECTORY data/ DESTINATION ${SALOME_INSTALL_DOC}/gui/MED/tutorial/data) + +SET(make_clean_files html doctrees) +SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${make_clean_files}") diff --git a/doc/tutorial/atestMEDCouplingCorba1.rst b/doc/tutorial/atestMEDCouplingCorba1.rst new file mode 100644 index 000000000..ceeb689e2 --- /dev/null +++ b/doc/tutorial/atestMEDCouplingCorba1.rst @@ -0,0 +1,37 @@ + +.. _python_testMEDCouplingcorba1_solution: + +Visualiser une instance de MEDCoupling dans ParaViS à travers CORBA +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + import MEDCoupling as mc + from MEDCouplingCorba import MEDCouplingUMeshServant + + # Creating a mesh + arr = mc.DataArrayDouble(11) + arr.iota(0) + m = mc.MEDCouplingCMesh() + m.setCoords(arr,arr) + m = m.buildUnstructured() + + # Making it available on the CORBA bus + ref_m = MEDCouplingUMeshServant._this(m) + import CORBA + orb = CORBA.ORB_init() + ior = orb.object_to_string(ref_m) + print ior + + # Displaying it in ParaVis + import salome + salome.salome_init() + print "About to import module 'pvsimple' ..." + import pvsimple as pvs + print "Module 'pvsimple' was imported!" + + # From here, we use the standard ParaView API: + src1 = pvs.ParaMEDCorbaPluginSource() + src1.IORCorba = ior # This is where we need the CORBA reference of the object created + dr = pvs.Show(src1) + \ No newline at end of file diff --git a/doc/tutorial/atestMEDCouplingCube.rst b/doc/tutorial/atestMEDCouplingCube.rst new file mode 100644 index 000000000..a15c0d2fb --- /dev/null +++ b/doc/tutorial/atestMEDCouplingCube.rst @@ -0,0 +1,265 @@ + +.. _python_testMEDCouplingcube_solution: + +3D cube meshing +~~~~~~~~~~~~~~~ + +:: + + from MEDCoupling import * + from MEDLoader import * + import MEDLoaderDataForTest + + from math import * + + # Definition of environnement variables + spaceDimension = 3 + N = 4 + nbOfNodes = N*N*N + nbOfCells = (N-1)*(N-1)*(N-1) + nbOfCells2D = (N-1)*(N-1) + + print "1 ********************" + # Initialisation of coordinates + coordinates = [] + for k in range(N): + for j in range(N): + for i in range(N): + coordinates.append(float(i)) + coordinates.append(float(j)) + coordinates.append(float(k)) + + print "2 ********************" + # Creation of meshing : need following initialisations + # => Definition of the mesh dimension + # => Definition of number of cells + # => Definition of name of meshing + mesh=MEDCouplingUMesh.New() + mesh.setMeshDimension(3) + mesh.allocateCells(nbOfCells+nbOfCells2D) + mesh.setName("3Dcube") + + print "3 ********************" + # One remark : only one dimension cells by meshing + # Construction of volumic meshing + # => Definition of connectivity + # => Definition of type of cells + connectivity = [] + for k in range(N-1): + for j in range(N-1): + for i in range(N-1): + inode = N*N*(k+1)+ N*(j+1)+i + connectivity.append(inode) + connectivity.append(inode-N) + connectivity.append(inode-N+1) + connectivity.append(inode+1) + connectivity.append(inode-N*N) + connectivity.append(inode-N*N-N) + connectivity.append(inode-N*N-N+1) + connectivity.append(inode-N*N+1) + print len(connectivity) + print 8*(nbOfCells) + + print "4 ********************" + # Adding cells in meshing + for i in range(nbOfCells): + mesh.insertNextCell(NORM_HEXA8,8,connectivity[8*i:8*(i+1)]) + pass + mesh.finishInsertingCells() + + print "5 ********************" + # Settings of coordinates and verify if it's OK + myCoords = DataArrayDouble.New() + myCoords.setValues(coordinates,nbOfNodes,3) + mesh.setCoords(myCoords) + mesh.checkCoherency() + + print "6 ********************" + # Extraction of surfacic meshing + pt=[0.,0.,0.] + vec=[0.,0.,1.] + nodes = mesh.findNodesOnPlane(pt,vec,1e-12) + mesh2D = mesh.buildFacePartOfMySelfNode(nodes,True) + #print mesh2D + mesh2D.setName("3Dcube") + mesh2D.checkCoherency() + + print "7 ********************" + # Creation of field : with following definition + # => Definition of the mesh support + # => Definition of field name + # => Definition of field nature + field = MEDCouplingFieldDouble.New(ON_CELLS) + field.setMesh(mesh) + field.setName("field") + field.setNature(Integral) + + # Computing and setting field values + myCoords=DataArrayDouble.New() + sampleTab=[] + bar = mesh.getBarycenterAndOwner() + print bar.getNbOfElems() + for i in range(nbOfCells): + x = bar.getIJ(i+1,1) + y = bar.getIJ(i+1,2) + z = bar.getIJ(i+1,3) + d = sqrt(x*x+y*y+z*z) + sinus = sin(d) + #f.setValueIJ(i+1,1,sin(d)) + sampleTab.append(sinus) + + myCoords.setValues(sampleTab,nbOfCells,1) + field.setArray(myCoords) + + fBF = MEDCouplingFieldDouble.New(ON_CELLS) + fBF.setMesh(mesh2D) + fBF.setName("fieldBottomFace") + fBF.setNature(Integral) + Cval = 10. + myCoords2D=DataArrayDouble.New() + sampleTab=[] + for i in range(nbOfCells2D): + sampleTab.append(Cval) + myCoords2D.setValues(sampleTab,nbOfCells2D,1) + fBF.setArray(myCoords2D) + + medFileName = "MEDCoupling_cube3D.med" + # For note : True / False in Write* functions + # => True : overwriting existing file + # => False : add in existing file + meshes=[mesh2D,mesh] + MEDLoader.WriteUMeshes(medFileName,meshes,True); + MEDLoader.WriteField(medFileName,field,False) + MEDLoader.WriteField(medFileName,fBF,False) + + +:: + + from MEDCoupling import * + from MEDLoader import * + import MEDLoaderDataForTest + + from math import * + + spaceDim3D = 3 + MeshDim2D = 2 + N = 4 + NbCell2D = (N-1)*(N-1) + NbCell3D = NbCell2D*(N-1) + NbNode2D = N*N + NbNode3D = NbNode2D*N + + # Creation of a extruded meshing + # input : a 2D meshing and a 1D meshing + # Creation of 2D meshing + coordinates = [] + for j in range(N): + for i in range(N): + coordinates.append(float(i)) + coordinates.append(float(j)) + Connectivities = [0,4,5,1, 1,5,6,2, 2,6,7,3, 4,8,9,5, 5,9,10,6, 6,10,11,7, 8,12,13,9, 9,13,14,10, 10,14,15,11] + myCoords = DataArrayDouble.New() + myCoords.setValues(coordinates,NbNode2D,MeshDim2D) + + m1 = MEDCouplingUMesh.New() + m1.setMeshDimension(MeshDim2D) + m1.allocateCells(NbCell2D) + m1.setCoords(myCoords) + m1.setName("2D_Support") + + for i in range(NbCell2D): + m1.insertNextCell(NORM_QUAD4,4,Connectivities[4*i:4*(i+1)]) + m1.finishInsertingCells() + m1.changeSpaceDimension(3) + + # Creation of 1D meshing + coords = [ 0.0, 1.0, 2.0, 3.0 ] + conn = [ 0,1, 1,2, 2,3 ] + m2 = MEDCouplingUMesh.New() + m2.setMeshDimension(1) + m2.allocateCells(3) + m2.insertNextCell(NORM_SEG2,2,conn[0:2]) + m2.insertNextCell(NORM_SEG2,2,conn[2:4]) + m2.insertNextCell(NORM_SEG2,2,conn[4:6]) + m2.finishInsertingCells() + myCoords1D=DataArrayDouble.New() + myCoords1D.setValues(coords,4,1) + m2.setCoords(myCoords1D) + m2.changeSpaceDimension(3) + + # Construction of extruded meshing + center = [0.,0.,0.] + vector = [0.,1.,0.] + m2.rotate(center,vector,pi/2.) + m3 = m1.buildExtrudedMesh(m2,0) + m3.setName("Extrusion") + + # Construction of group : old fashion mode + part=[1] + meshGroup=m3.buildPartOfMySelf(part,True); + meshGroup.setName("meshGroup"); + + medFileName = "MEDCoupling_Extrudedcube3D.med" + MEDLoader.WriteUMeshesPartition(medFileName,"Extrusion",[m3,meshGroup],True) + + +:: + + from MEDCoupling import * + from MEDLoader import * + import MEDLoaderDataForTest + + from math import * + + spaceDim3D = 3 + MeshDim2D = 2 + N = 4 + NbCell2D = (N-1)*(N-1) + NbCell3D = NbCell2D*(N-1) + NbNode2D = N*N + NbNode3D = NbNode2D*N + + # Creation of a grid => Structured mesh + # Need directions definition + mesh=MEDCouplingCMesh.New() + coordsX=DataArrayDouble.New() + arrX=[ 0., 1., 2., 3. ] + coordsX.setValues(arrX,4,1) + coordsY=DataArrayDouble.New() + arrY=[ 0., 1., 2., 3. ] + coordsY.setValues(arrY,4,1) + coordsZ=DataArrayDouble.New() + arrZ=[ 0., 1., 2., 3. ] + coordsZ.setValues(arrZ,4,1) + mesh.setCoords(coordsX,coordsY,coordsZ) + # Passing structured meshing to unstructured + # necessary to save meshing + meshU=mesh.buildUnstructured() + meshU.setName("Grid") + + # Creation of group : fashion mode + # if ids cells are known, this step is not to be made + pt=[1] + m2 = meshU.buildPartOfMySelf(pt,True); + ret,tabIdCells = meshU.areCellsIncludedIn(m2,0) + print ret + print tabIdCells + # Definition of the name group + tabIdCells.setName("meshGroup") + + # Passing MEDCoupling to MEDFile + fmeshU = MEDFileUMesh.New() + fmeshU.setName("Grid") + fmeshU.setDescription("IHopeToConvinceLastMEDMEMUsers") + myCoords = meshU.getCoords() + print myCoords + fmeshU.setCoords(myCoords) + print "**************************" + fmeshU.setMeshAtLevel(0,meshU) + print "**************************" + fmeshU.setGroupsAtLevel(0,[tabIdCells],False) + print "**************************" + + medFileName = "MEDCoupling_Gridcube3D.med" + fmeshU.write(medFileName,2) + diff --git a/doc/tutorial/atestMEDCouplingDataArray1.rst b/doc/tutorial/atestMEDCouplingDataArray1.rst new file mode 100644 index 000000000..f35e47858 --- /dev/null +++ b/doc/tutorial/atestMEDCouplingDataArray1.rst @@ -0,0 +1,64 @@ + +.. _python_testMEDCouplingdataarray1_solution: + +Playing with regular hexagons using DataArrayDouble +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + import MEDCoupling as mc + import math + # Building the coordinates of the initial hexagon, centered at 0,0 + d = mc.DataArrayDouble(6,2) + d[:,0] = 3. + d[:,1] = range(6) + d[:,1] *= math.pi/3. + d = d.fromPolarToCart() + d.setInfoOnComponents(["X [m]","Y [m]"]) + print d.getValues() + print d + print "Uniform array?", d.magnitude().isUniform(3.,1e-12) + # Translating the 7 hexagons with a translation + radius = 3. + translationToPerform = [[0.,0.],[3./2.*radius,-radius*math.sqrt(3.)/2],[3./2.*radius,radius*math.sqrt(3.)/2],[0.,radius*math.sqrt(3.)],[-3./2.*radius,radius*math.sqrt(3.)/2],[-3./2.*radius,-radius*math.sqrt(3.)/2],[0.,-radius*math.sqrt(3.)]] + ds = len(translationToPerform)*[None] + for pos,t in enumerate(translationToPerform): + ds[pos] = d[:] # Perform a deep copy of d and place it at position 'pos' in ds + ds[pos] += t # Adding a vector to a set of coordinates does a translation + pass + # Identifying duplicate tuples + d2 = mc.DataArrayDouble.Aggregate(ds) + oldNbOfTuples = d2.getNumberOfTuples() + c,cI = d2.findCommonTuples(1e-12) + tmp = c[cI[0]:cI[0+1]] + print tmp + a = cI.deltaShiftIndex() + b = a - 1 + myNewNbOfTuples = oldNbOfTuples - sum(b.getValues()) + o2n, newNbOfTuples = mc.DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2(oldNbOfTuples,c,cI) + print "Have I got the right number of tuples?" + print "myNewNbOfTuples = %d, newNbOfTuples = %d" % (myNewNbOfTuples, newNbOfTuples) + assert(myNewNbOfTuples == newNbOfTuples) + # Extracting the unique set of tuples + d3 = d2.renumberAndReduce(o2n, newNbOfTuples) + n2o = o2n.invertArrayO2N2N2O(newNbOfTuples) + d3_bis = d2[n2o] + print "Are d3 and d3_bis equal ? %s" % (str(d3.isEqual(d3_bis, 1e-12))) + # Now translate everything + d3 += [3.3,4.4] + # And build an unstructured mesh representing the final pattern + m = mc.MEDCouplingUMesh("My7hexagons",2) + m.setCoords(d3) + print "Mesh dimension is", m.getMeshDimension() + print "Spatial dimension is", m.getCoords().getNumberOfComponents() + m.allocateCells(7) + for i in xrange(7): + cell_connec = o2n[6*i:6*(i+1)] + m.insertNextCell(mc.NORM_POLYGON, cell_connec.getValues()) + pass + m.finishInsertingCells() + # Check that everything is coherent (will throw if not) + m.checkCoherency() + # Write the result into a VTU file that can be read with ParaView + m.writeVTK("My7hexagons.vtu") + diff --git a/doc/tutorial/atestMEDCouplingFieldDouble1.rst b/doc/tutorial/atestMEDCouplingFieldDouble1.rst new file mode 100644 index 000000000..1cf20c922 --- /dev/null +++ b/doc/tutorial/atestMEDCouplingFieldDouble1.rst @@ -0,0 +1,74 @@ + +.. _python_testMEDCouplingfielddouble1_solution: + +Playing with fields +~~~~~~~~~~~~~~~~~~~ + +:: + + import MEDCoupling as mc + + # Create an unstructured mesh from a Cartesian one + xarr = mc.DataArrayDouble.New(11,1) + xarr.iota(0.) + cmesh = mc.MEDCouplingCMesh.New() + cmesh.setCoords(xarr,xarr,xarr) + mesh = cmesh.buildUnstructured() + mesh.convertToPolyTypes(mc.DataArrayInt.Range(0,mesh.getNumberOfCells(),2)) + # Create a field + f = mesh.fillFromAnalytic(mc.ON_CELLS,1,"(x-5.)*(x-5.)+(y-5.)*(y-5.)+(z-5.)*(z-5.)") # 1 means that the field should have one component + f.setName("MyField") + # A variant: + f2 = mc.MEDCouplingFieldDouble(mc.ON_CELLS, mc.ONE_TIME) + f2.setMesh(mesh) + f2.setName("MyField2") + f2.fillFromAnalytic(1,"(x-5.)*(x-5.)+(y-5.)*(y-5.)+(z-5.)*(z-5.)") # 1 means that the field should have one component + print "Are f and f2 equal?", f.isEqualWithoutConsideringStr(f2,1e-12,1e-12) + # + da1 = f.getArray() # a DataArrayDouble, which is a direct reference (not a copy) of the field's values + ids1 = da1.getIdsInRange(0.,5.) + fPart1 = f.buildSubPart(ids1) + fPart1.writeVTK("ExoField_fPart1.vtu") + ids2 = f.getArray().getIdsInRange(50.,1.e300) + fPart2 = f.buildSubPart(ids2) + # Renumbering cells to follow MED file rules + fPart1Cpy = fPart1.deepCpy() + o2n = fPart1Cpy.getMesh().sortCellsInMEDFileFrmt() + fPart1Cpy.getArray().renumberInPlace(o2n) + # Check that fPart1Cpy and fPart1 are the same + fPart1Cpy.substractInPlaceDM(fPart1,12,1e-12) + fPart1Cpy.getArray().abs() + print "Are the fields equal?", (fPart1Cpy.getArray().accumulate()[0]<1e-12) + # Aggregate fields + fPart12 = mc.MEDCouplingFieldDouble.MergeFields([fPart1,fPart2]) + fPart12.writeVTK("ExoField_fPart12.vtu") + # Evaluation on points + bary = fPart12.getMesh().getBarycenterAndOwner() + arr1 = fPart12.getValueOnMulti(bary) + arr2 = f.getValueOnMulti(bary) + delta = arr1-arr2 + delta.abs() + print "Is field evaluation matching?", (delta.accumulate()[0]<1e-12) + # Integral computations + integ1 = fPart12.integral(0,True) + integ1_bis = fPart12.getArray().accumulate()[0] + print "First integral matching ?", ( abs(integ1 - integ1_bis) < 1e-8 ) + fPart12.getMesh().scale([0.,0.,0.], 1.2) + integ2 = fPart12.integral(0,True) + print "Second integral matching ?", ( abs(integ2-integ1_bis*1.2*1.2*1.2) < 1e-8 ) + # Explosion of field + fVec = mesh.fillFromAnalytic(mc.ON_CELLS,3,"(x-5.)*IVec+(y-5.)*JVec+(z-5.)*KVec") + fVecPart1 = fVec.buildSubPart(ids1) + fVecPart1.setName("fVecPart1") + cells = fPart1.getMesh().getNumberOfCells() * [None] + for icell,vec in enumerate(fVecPart1.getArray()): + m = fPart1.getMesh()[[icell]] + m.zipCoords() # Not mandatory but saves memory + m.translate(vec) + cells[icell] = m + pass + meshFVecPart1Exploded = mc.MEDCouplingUMesh.MergeUMeshes(cells) + fPart1.setMesh(meshFVecPart1Exploded) + fPart1.writeVTK("ExoField_fPart1_explo.vtu") + + diff --git a/doc/tutorial/atestMEDCouplingLoaderEx1.rst b/doc/tutorial/atestMEDCouplingLoaderEx1.rst new file mode 100644 index 000000000..2057adcaf --- /dev/null +++ b/doc/tutorial/atestMEDCouplingLoaderEx1.rst @@ -0,0 +1,124 @@ + +.. _python_testmedcouplingloaderex1_solution: + +Agitateur - Swirler +~~~~~~~~~~~~~~~~~~~ + +:: + + import MEDLoader as ml + import numpy as np + + # Get available time steps + data = ml.MEDFileData("agitateur.med") + ts = data.getFields()[0].getTimeSteps() + print ts + # Get position of the swirler + fMts = data.getFields()["DISTANCE_INTERFACE_ELEM_BODY_ELEM_DOM"] + f1ts = fMts[(2,-1)] + fMc = f1ts.getFieldAtLevel(ml.ON_CELLS,0) + arr = fMc.getArray() + arr.getMinMaxPerComponent() # just to see the field variation range per component + ids = arr.getIdsInRange(0.,1.) + f2Mc = fMc[ids] + # Extract pression field on the swirler + pressMts = data.getFields()["PRESSION_ELEM_DOM"] + press1ts = pressMts[(2,-1)] + pressMc = press1ts.getFieldAtLevel(ml.ON_CELLS,0) + pressOnAgitateurMc = pressMc[ids] + # + pressOnAgitateurMc.getMesh().zipCoords() + # Compute pressure on skin + agitateurMesh3DMc = pressOnAgitateurMc.getMesh() + m3DSurf,desc,descI,revDesc,revDescI = agitateurMesh3DMc.buildDescendingConnectivity() + nbOf3DCellSharing = revDescI.deltaShiftIndex() + ids2 = nbOf3DCellSharing.getIdsEqual(1) + agitateurSkinMc = m3DSurf[ids2] + offsetsOfTupleIdsInField = revDescI[ids2] + tupleIdsInField = revDesc[offsetsOfTupleIdsInField] + pressOnSkinAgitateurMc = pressOnAgitateurMc[tupleIdsInField] + pressOnSkinAgitateurMc.setMesh(agitateurSkinMc) + # Force field computation + pressSkin = pressOnSkinAgitateurMc.getArray() + pressSkin *= 1e5 # conversion from bar to Pa + areaSkin = agitateurSkinMc.getMeasureField(True).getArray() + forceSkin = pressSkin*areaSkin + normalSkin = agitateurSkinMc.buildOrthogonalField().getArray() + forceVectSkin = forceSkin*normalSkin + # Torque computation + singlePolyhedron = agitateurMesh3DMc.buildSpreadZonesWithPoly() + singlePolyhedron.orientCorrectlyPolyhedrons() + centerOfMass = singlePolyhedron.getBarycenterAndOwner() + + barySkin=agitateurSkinMc.getBarycenterAndOwner() + posSkin = barySkin-centerOfMass + + torquePerCellOnSkin = ml.DataArrayDouble.CrossProduct(posSkin,forceVectSkin) + + zeTorque = torquePerCellOnSkin.accumulate() + print "couple = %r N.m" % zeTorque[2] + # Power computation + speedMts = data.getFields()["VITESSE_ELEM_DOM"] + speed1ts = speedMts[(2,-1)] + speedMc = speed1ts.getFieldAtLevel(ml.ON_CELLS,0) + speedOnSkin = speedMc.getArray()[tupleIdsInField] + powerSkin = ml.DataArrayDouble.Dot(forceVectSkin,speedOnSkin) + power = powerSkin.accumulate()[0] + print "power = %r W"%(power) + # Eigen vector computation + x2 = posSkin[:,0]*posSkin[:,0] + x2 = x2.accumulate()[0] + y2 = posSkin[:,1]*posSkin[:,1] + y2 = y2.accumulate()[0] + xy = posSkin[:,0]*posSkin[:,1] + xy = xy.accumulate()[0] + inertiaSkin = np.matrix([[x2,xy],[xy,y2]]) + inertiaSkinValues, inertiaSkinVects = np.linalg.eig(inertiaSkin) + pos = max(enumerate(inertiaSkinValues), key=lambda x: x[1])[0] + vect0 = inertiaSkinVects[pos].tolist()[0] + print vect0 + + def computeAngle(locAgitateur1ts): + fMc = locAgitateur1ts.getFieldAtLevel(ml.ON_CELLS,0) + arr = fMc.getArray() + ids = arr.getIdsInRange(0.,1.) + f2Mc = fMc[ids] + m3DSurf,desc,descI,revDesc,revDescI = f2Mc.getMesh().buildDescendingConnectivity() + nbOf3DCellSharing = revDescI.deltaShiftIndex() + ids2 = nbOf3DCellSharing.getIdsEqual(1) + agitateurSkinMc = m3DSurf[ids2] + # + singlePolyhedron = agitateurMesh3DMc.buildSpreadZonesWithPoly() + singlePolyhedron.orientCorrectlyPolyhedrons() + centerOfMass = singlePolyhedron.getBarycenterAndOwner() + bary = agitateurSkinMc.getBarycenterAndOwner() + posSkin = bary-centerOfMass + x2=posSkin[:,0]*posSkin[:,0] ; x2=x2.accumulate()[0] + y2=posSkin[:,1]*posSkin[:,1] ; y2=y2.accumulate()[0] + xy=posSkin[:,0]*posSkin[:,1] ; xy=xy.accumulate()[0] + inertiaSkin = np.matrix([[x2,xy],[xy,y2]]) + inertiaSkinValues,inertiaSkinVects = np.linalg.eig(inertiaSkin) + pos = max(enumerate(inertiaSkinValues), key=lambda x: x[1])[0] + vect0 = inertiaSkinVects[pos].tolist()[0] + return vect0 + + vects = len(ts)*[None] + for itts,locAgitateur1ts in zip(ts,data.getFields()["DISTANCE_INTERFACE_ELEM_BODY_ELEM_DOM"]): + angle = computeAngle(locAgitateur1ts) + vects[itts[0]] = angle + pass + + from math import acos, sqrt + angle2 = len(ts)*[0.] + for pos in xrange(2,len(vects)): + norm1 = sqrt(vects[pos-1][0]*vects[pos-1][0]+vects[pos-1][1]*vects[pos-1][1]) + norm2 = sqrt(vects[pos][0]*vects[pos][0]+vects[pos][1]*vects[pos][1]) + crs = vects[pos-1][0]*vects[pos][0]+vects[pos-1][1]*vects[pos][1] + crs /= norm1 ; crs /= norm2 ; crs = min(crs,1.) + angle2[pos] = acos(crs) #/(ts[pos][2]-ts[pos-1][2]) + pass + + omega=sum(angle2)/(ts[-1][2]-ts[0][2]) + print sum(angle2) + + print "At timestep (%d,%d) (physical time=%r s) the torque is: %r N.m, power/omega=%r N.m " % (ts[2][0],ts[2][1],ts[2][2],zeTorque[2],power/omega) diff --git a/doc/tutorial/atestMEDCouplingLoaderEx2.rst b/doc/tutorial/atestMEDCouplingLoaderEx2.rst new file mode 100644 index 000000000..3ea615ab9 --- /dev/null +++ b/doc/tutorial/atestMEDCouplingLoaderEx2.rst @@ -0,0 +1,115 @@ + +.. _python_testmedcouplingloaderex2_solution: + +Intersection géométrique de maillages +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + import MEDLoader as ml + + def displayVTK(m,fname): + tmp = m.deepCpy() + tmp.tessellate2D(0.1) + tmp.writeVTK(fname) + return + + # Read and clean Fixe.med + fixe = ml.MEDFileMesh.New("Fixe.med") + fixm = fixe.getMeshAtLevel(0) + print "Nb of nodes in the file : %i " % (fixm.getNumberOfNodes()) + fixm.mergeNodes(1e-10) + print "Nb of non duplicated nodes : %i" % (fixm.getNumberOfNodes()) + # Read and clean Mobile.med + mobile = ml.MEDFileMesh.New("Mobile.med") + mobm = mobile.getMeshAtLevel(0) + mobm.mergeNodes(1e-10) + # Visualize fixm and mobm with PARAVIEW + fixm2 = fixm.deepCpy() # tessellate2D() modifies the current mesh + fixm2.tessellate2D(0.1) + fixm2.writeVTK("fixm2.vtu") + mobm2 = mobm.deepCpy() + mobm2.tessellate2D(0.1) + mobm2.writeVTK("mobm2.vtu") + # mobm2 is in several pieces, take the first one + zonesInMobm = mobm.partitionBySpreadZone() + print "Nb of zones in mobm : %i" % (len(zonesInMobm)) + zone1Mobm = mobm[zonesInMobm[0]] + zone1Mobm.zipCoords() + displayVTK(zone1Mobm, "zone1Mobm.vtu") + # Get cell ids from the fix part in the boudning box of zone1Mobm + ids2 = fixm.getCellsInBoundingBox(zone1Mobm.getBoundingBox(),1e-10) + partFixm = fixm[ids2] + partFixm.zipCoords() + displayVTK(partFixm,"partFixm.vtu") + # Intersect partFixm with zone1Mobm + partFixMob, iPart, iMob = ml.MEDCouplingUMesh.Intersect2DMeshes(partFixm,zone1Mobm,1e-10) + partFixMob.mergeNodes(1e-10) + # Get the part of partFixm not included in zone1Mobm using partFixMob + ids3 = iMob.getIdsEqual(-1) + partFixmWithoutZone1Mobm = partFixMob[ids3] + displayVTK(partFixmWithoutZone1Mobm,"partFixmWithoutZone1Mobm.vtu") + # Check that intersection worked properly + # Check #0 + areaPartFixm = partFixm.getMeasureField(ml.ON_CELLS).getArray() + areaPartFixm.abs() + areaPartFixMob = partFixMob.getMeasureField(ml.ON_CELLS).getArray() + areaPartFixMob.abs() + val1=areaPartFixm.accumulate()[0] + val2=areaPartFixMob.accumulate()[0] + print "Check #0 %lf == %lf with precision 1e-8? %s" % (val1,val2,str(abs(val1-val2)<1e-8)) + # Check #1 + areaZone1Mobm = zone1Mobm.getMeasureField(ml.ON_CELLS).getArray() + areaZone1Mobm.abs() + val3 = areaZone1Mobm.accumulate()[0] + ids4 = iMob.getIdsNotEqual(-1) + areaPartFixMob2 = areaPartFixMob[ids4] + val4 = areaPartFixMob2.accumulate()[0] + print "Check #1 %lf == %lf with precision 1e-8 ? %s" % (val3,val4,str(abs(val3-val4)<1e-8)) + # Check #2 + isCheck2OK = True + for icell in xrange(partFixm.getNumberOfCells()): + ids5 = iPart.getIdsEqual(icell) + areaOfCells = areaPartFixMob[ids5] + areaOfCells.abs() + if abs(areaOfCells.accumulate()[0] - areaPartFixm[icell]) > 1e-9: + isCheck2OK = False + pass + pass + print "Check #2? %s" % (str(isCheck2OK)) + # Indicator field creation + f = ml.MEDCouplingFieldDouble(ml.ON_CELLS,ml.ONE_TIME) + m = partFixMob.deepCpy() + m.tessellate2D(0.1) + f.setMesh(m) + arr = ml.DataArrayDouble(partFixMob.getNumberOfCells(),1) + arr[iMob.getIdsEqual(-1)] = 0. + arr[iMob.getIdsNotEqual(-1)] = 1. + f.setArray(arr) + f.checkCoherency() + f.setName("Zone") + ml.MEDCouplingFieldDouble.WriteVTK("Zone.vtu",[f]) + # Other zones + zonesMobm = ml.MEDCouplingUMesh.MergeUMeshesOnSameCoords([mobm[zonesInMobm[0]], mobm[zonesInMobm[1]], mobm[zonesInMobm[5]]]) + zonesMobm.zipCoords() + partFixMob2,iPart2,iMob2 = ml.MEDCouplingUMesh.Intersect2DMeshes(partFixm,zonesMobm,1e-10) + partFixMob2.mergeNodes(1e-10) + f2 = ml.MEDCouplingFieldDouble(ml.ON_CELLS, ml.ONE_TIME) + m2 = partFixMob2.deepCpy() + m2.tessellate2D(0.1) + f2.setMesh(m2) + arr = ml.DataArrayDouble(partFixMob2.getNumberOfCells(),1) + arr[iMob2.getIdsEqual(-1)]=0. + st = 0 + end = st + len(zonesInMobm[0]) + arr[iMob2.getIdsInRange(st,end)] = 1. + st += len(zonesInMobm[0]) ; + end = st + len(zonesInMobm[1]) + arr[iMob2.getIdsInRange(st,end)] = 2. + st += len(zonesInMobm[1]) + end = st + len(zonesInMobm[2]) + arr[iMob2.getIdsInRange(st,end)] = 3. + f2.setArray(arr) + f2.checkCoherency() + f2.setName("Zone2") + ml.MEDCouplingFieldDouble.WriteVTK("Zone2.vtu",[f2]) diff --git a/doc/tutorial/atestMEDCouplingNumPy.rst b/doc/tutorial/atestMEDCouplingNumPy.rst new file mode 100644 index 000000000..c3641f1a5 --- /dev/null +++ b/doc/tutorial/atestMEDCouplingNumPy.rst @@ -0,0 +1,78 @@ + +.. _python_testMEDCouplingNumPy_solution: + +Playing with NumPy and SciPy +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + import MEDCoupling as mc + + # + # NumPy + # + import numpy as np + + # Checking NumPy binding + assert(mc.MEDCouplingHasNumPyBindings()) + # Playing with conversion and shared data + arr = mc.DataArrayDouble(12) + arr[:] = 4. + nparr = arr.toNumPyArray() + print nparr.__repr__() + print nparr.tolist() + nparr[::2] = 7. + print nparr.__repr__() + print arr.__repr__() + del arr + import gc; gc.collect() # Make sure the object has been deleted + print nparr.__repr__() + arr2 = mc.DataArrayDouble(nparr) + print arr2.__repr__() + nparr[:] = 5. + print nparr.__repr__() + print arr2.__repr__() + # Writing to file + f = open("toto.data","w+b") + a = np.memmap(f,dtype='float64',mode='w+',offset=0,shape=nparr.shape) + a[:] = nparr[:] + f.flush() + # Re-reading file + f2 = open("toto.data","r+b") + b = np.memmap(f2,dtype='float64',mode='r',offset=0,shape=(12,)) + a[:] = 3.14 + f.flush() + b = np.memmap(f2,dtype='float64',mode='r',offset=0,shape=(12,)) + print b.__repr__() + # + # SciPy + # + assert(mc.MEDCouplingHasSciPyBindings()) + c1 = mc.MEDCouplingCMesh() + arr1 = mc.DataArrayDouble(7) + arr1.iota() + c1.setCoords(arr1,arr1,arr1) + c2 = mc.MEDCouplingCMesh() + arr2 = mc.DataArrayDouble(9) + arr2.iota() + arr2 *= 6./8. + c2.setCoords(arr2,arr2,arr2) + c1 = c1.buildUnstructured() + c2 = c2.buildUnstructured() + c2.translate([6.,0.,0.]) + c = mc.MEDCouplingUMesh.MergeUMeshes([c1,c2]) + c.mergeNodes(1e-12) + skinAndNCFaces = c.computeSkin() + skinAndNCFaces.zipCoords() + # Isolating non conform cells + from MEDCouplingRemapper import MEDCouplingRemapper + rem = MEDCouplingRemapper() + rem.setMaxDistance3DSurfIntersect(1e-12) + rem.setMinDotBtwPlane3DSurfIntersect(0.99) + rem.prepare(skinAndNCFaces,skinAndNCFaces,"P0P0") + mat = rem.getCrudeCSRMatrix() + indptr = mc.DataArrayInt(mat.indptr) + indptr2 = indptr.deltaShiftIndex() + cellIdsOfSkin = indptr2.getIdsEqual(1) + skin = skinAndNCFaces[cellIdsOfSkin] + skin.writeVTK("skin.vtu") diff --git a/doc/tutorial/atestMEDCouplingPoly.rst b/doc/tutorial/atestMEDCouplingPoly.rst new file mode 100644 index 000000000..cfbee5d62 --- /dev/null +++ b/doc/tutorial/atestMEDCouplingPoly.rst @@ -0,0 +1,98 @@ + +.. _python_testMEDCoupling2D_solution: + +2D polygons meshing +~~~~~~~~~~~~~~~~~~~ + +:: + + from MEDCoupling import * + from MEDLoader import * + + from math import * + + numberOfNodes = 25 + numberOfCells = 12 + + print "1 ********************" + spaceDimension = 2 + + # Coordinates of central polygon + X = [1.,0.5,-0.5,-1.,-0.5,0.5] + Y = [0.,sqrt(3.)/2.,sqrt(3.)/2.,0.,-sqrt(3.)/2.,-sqrt(3.)/2.] + + coordinates = [] + # origin + coordinates.append(0.) + coordinates.append(0.) + + # central polygon + for i in range(6): + coordinates.append(X[i]) + coordinates.append(Y[i]) + + # Coordinates of second couron + xc = 1.5 + yc = - sqrt(3.)/2. + d = sqrt(xc*xc+yc*yc) + a30 = pi/6.0 + a60 = pi/3.0 + + for i in range(6): + angle = a30+a60*i + xtmp = d*cos(angle) + ytmp = d*sin(angle) + start = (i-1)%6 + coordinates.append(xtmp+X[(i-1)%6]) + coordinates.append(ytmp+Y[(i-1)%6]) + coordinates.append(xtmp+X[i%6]) + coordinates.append(ytmp+Y[i%6]) + coordinates.append(xtmp+X[(i+1)%6]) + coordinates.append(ytmp+Y[(i+1)%6]) + + print "2 ********************" + # Creation of mesh + mesh=MEDCouplingUMesh.New() + mesh.setMeshDimension(2) + mesh.allocateCells(numberOfCells) + mesh.setName("MaFleur") + + myCoords=DataArrayDouble.New() + myCoords.setValues(coordinates,numberOfNodes,2) + mesh.setCoords(myCoords) + + print "3 ********************" + # Connectivity of triangular meshing + connectivity = [] + for i in range(6): + connectivity.append(0) + connectivity.append(i%6+1) + connectivity.append((i+1)%6+1) + for i in range(6): + mesh.insertNextCell(NORM_TRI3,3,connectivity[3*i:3*(i+1)]) + pass + + print "4 ********************" + # Connectivity of hexagons + connectivity = [] + for i in range(6): + start = i%6+1 + connectivity.append(start) + connectivity.append(start+2*(i+3)) + connectivity.append(start+2*(i+3)+1) + connectivity.append(start+2*(i+3)+2) + if i==5: + connectivity.append(7) + else: + connectivity.append(start+2*(i+3)+3) + connectivity.append((i+1)%6+1) + for i in range(6): + mesh.insertNextCell(NORM_POLYGON,6,connectivity[6*i:6*(i+1)]) + pass + mesh.finishInsertingCells() + + print "5 ********************" + mesh.checkCoherency() + + medFileName = "MEDCoupling_Fleur.med" + MEDLoader.WriteUMesh(medFileName,mesh,True) diff --git a/doc/tutorial/atestMEDCouplingRead.rst b/doc/tutorial/atestMEDCouplingRead.rst new file mode 100644 index 000000000..c0f4c476e --- /dev/null +++ b/doc/tutorial/atestMEDCouplingRead.rst @@ -0,0 +1,47 @@ + +.. _python_testMEDCouplingRead_solution: + +Read med File +~~~~~~~~~~~~~~~~~~~ + +:: + + from MEDCoupling import * + from MEDLoader import * + + + medFileName = "MEDCoupling_cube3D.med" + MeshName = "3Dcube" + FieldName = "field" + Field2DName = "fieldBottomFace" + + # Retrieving meshes + mesh3D = MEDLoader.ReadUMeshFromFile(medFileName,MeshName,0) + mesh2D = MEDLoader.ReadUMeshFromFile(medFileName,MeshName,-1) + + # Retrieving fields + f = MEDLoader.ReadFieldCell(medFileName,mesh3D.getName(),0,FieldName,-1,-1) + f2 = MEDLoader.ReadFieldCell(medFileName,mesh2D.getName(),-1,Field2DName,-1,-1) + + # Retrieving Coords Mesh + Coords3D = mesh3D.getCoords() + Values = Coords3D.getValuesAsTuple() + + # Retrieving field value on 0 tuple + pos= Values[0] + res=f.getValueOn(pos) + + # Verify if value is OK + bar = mesh3D.getBarycenterAndOwner() + x=bar.getIJ(1,1) + y=bar.getIJ(1,2) + z=bar.getIJ(1,3) + + from math import * + d = sqrt(x*x+y*y+z*z) + sinus = sin(d) + + if abs(res[0]-sinus)<1.e-5: + print "OK" + else: + print "KO" diff --git a/doc/tutorial/atestMEDCouplingRemapper.rst b/doc/tutorial/atestMEDCouplingRemapper.rst new file mode 100644 index 000000000..06a3beba2 --- /dev/null +++ b/doc/tutorial/atestMEDCouplingRemapper.rst @@ -0,0 +1,68 @@ + +.. _python_testMEDCouplingremapper1_solution: + +Interpoler avec MEDCouplingRemapper +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + import MEDCoupling as mc + from MEDCouplingRemapper import MEDCouplingRemapper + # Target mesh + arr = mc.DataArrayDouble(11) + arr.iota(0) + trgMesh = mc.MEDCouplingCMesh() + trgMesh.setCoords(arr,arr) + trgMesh = trgMesh.buildUnstructured() + # Source mesh + arr = mc.DataArrayDouble(21) + arr.iota(0) + arr *= 0.5 + srcMesh = mc.MEDCouplingCMesh() + srcMesh.setCoords(arr,arr) + srcMesh = srcMesh.buildUnstructured() + # Triangularize some cells in source + tmp = srcMesh[:20] # Extract a sub-part of srcMesh + tmp.simplexize(0) + srcMesh = mc.MEDCouplingUMesh.MergeUMeshes([tmp,srcMesh[20:]]) + # Interpolate cells to cells + remap = MEDCouplingRemapper() + remap.prepare(srcMesh,trgMesh,"P0P0") + # Check matrix + myMatrix = remap.getCrudeMatrix() + print myMatrix + sumByRows = mc.DataArrayDouble(len(myMatrix)) + for i,wIt in enumerate(sumByRows): + su = 0. + for it in myMatrix[i]: + su += myMatrix[i][it] + wIt[0] = su + print "Is interpolation well prepared?", sumByRows.isUniform(1.,1e-12) + # Source field construction + srcField = mc.MEDCouplingFieldDouble(mc.ON_CELLS, mc.ONE_TIME) + srcField.setMesh(srcMesh) + srcField.fillFromAnalytic(1,"7-sqrt((x-5.)*(x-5.)+(y-5.)*(y-5.))") + srcField.getArray().setInfoOnComponent(0, "powercell [W]") + # Transfer field + #remap.transferField(srcField, 1e300) + srcField.setNature(mc.ConservativeVolumic) + trgFieldCV = remap.transferField(srcField,1e300) + # ConservativeVolumic + integSource = srcField.integral(True)[0] + integTarget = trgFieldCV.integral(True)[0] + print "ConservativeVolumic -- integrals: %lf == %lf" % (integSource, integTarget) + + accSource = srcField.getArray().accumulate()[0] + accTarget = trgFieldCV.getArray().accumulate()[0] + print "ConservativeVolumic -- sums: %lf != %lf" % (accSource, accTarget) + # IntegralGlobConstraint + srcField.setNature(mc.IntegralGlobConstraint) + trgFieldI = remap.transferField(srcField,1e300) + # + integSource = srcField.integral(True)[0] + integTarget = trgFieldI.integral(True)[0] + print "IntegralGlobConstraint -- integrals: %lf != %lf" % (integSource, integTarget) + + accSource = srcField.getArray().accumulate()[0] + accTarget = trgFieldI.getArray().accumulate()[0] + print "IntegralGlobConstraint -- sums: %lf == %lf" % (accSource, accTarget) diff --git a/doc/tutorial/atestMEDCouplingUMesh1.rst b/doc/tutorial/atestMEDCouplingUMesh1.rst new file mode 100644 index 000000000..8c57d4fe7 --- /dev/null +++ b/doc/tutorial/atestMEDCouplingUMesh1.rst @@ -0,0 +1,99 @@ + +.. _python_testMEDCouplingumesh1_solution: + +Playing with unstructured mesh +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + import MEDCoupling as mc + + # Build a 3D mesh from scratch mixing HEXA8 and POLYHED + coords=[0.,0.,0., 1.,1.,0., 1.,1.25,0., 1.,0.,0., 1.,1.5,0., 2.,0.,0., 2.,1.,0., 1.,2.,0., 0.,2.,0., 3.,1.,0., + 3.,2.,0., 0.,1.,0., 1.,3.,0., 2.,2.,0., 2.,3.,0., + 0.,0.,1., 1.,1.,1., 1.,1.25,1., 1.,0.,1., 1.,1.5,1., 2.,0.,1., 2.,1.,1., 1.,2.,1., 0.,2.,1., 3.,1.,1., + 3.,2.,1., 0.,1.,1., 1.,3.,1., 2.,2.,1., 2.,3.,1., + 0.,0.,2., 1.,1.,2., 1.,1.25,2., 1.,0.,2., 1.,1.5,2., 2.,0.,2., 2.,1.,2., 1.,2.,2., 0.,2.,2., 3.,1.,2., + 3.,2.,2., 0.,1.,2., 1.,3.,2., 2.,2.,2., 2.,3.,2., + 0.,0.,3., 1.,1.,3., 1.,1.25,3., 1.,0.,3., 1.,1.5,3., 2.,0.,3., 2.,1.,3., 1.,2.,3., 0.,2.,3., 3.,1.,3., + 3.,2.,3., 0.,1.,3., 1.,3.,3., 2.,2.,3., 2.,3.,3.] + conn=[0,11,1,3,15,26,16,18, 1,2,4,7,13,6,-1,1,16,21,6,-1,6,21,28,13,-1,13,7,22,28,-1,7,4,19,22,-1,4,2,17,19,-1,2,1,16,17,-1,16,21,28,22,19,17, + 1,6,5,3,16,21,20,18, 13,10,9,6,28,25,24,21, 11,8,7,4,2,1,-1,11,26,16,1,-1,1,16,17,2,-1,2,17,19,4,-1,4,19,22,7,-1,7,8,23,22,-1,8,11,26,23,-1,26,16,17,19,22,23, + 7,12,14,13,22,27,29,28, 15,26,16,18,30,41,31,33, 16,17,19,22,28,21,-1,16,31,36,21,-1,21,36,43,28,-1,28,22,37,43,-1,22,19,34,37,-1,19,17,32,34,-1,17,16,31,32,-1,31,36,43,37,34,32, + 16,21,20,18,31,36,35,33, 28,25,24,21,43,40,39,36, 26,23,22,19,17,16,-1,26,41,31,16,-1,16,31,32,17,-1,17,32,34,19,-1,19,34,37,22,-1,22,23,38,37,-1,23,26,41,38,-1,41,31,32,34,37,38, + 22,27,29,28,37,42,44,43, 30,41,31,33,45,56,46,48, 31,32,34,37,43,36,-1,31,46,51,36,-1,36,51,58,43,-1,43,37,52,58,-1,37,34,49,52,-1,34,32,47,49,-1,32,31,46,47,-1,46,51,58,52,49,47, + 31,36,35,33,46,51,50,48, 43,40,39,36,58,55,54,51, 41,38,37,34,32,31,-1,41,56,46,31,-1,31,46,47,32,-1,32,47,49,34,-1,34,49,52,37,-1,37,38,53,52,-1,38,41,56,53,-1,56,46,47,49,52,53, + 37,42,44,43,52,57,59,58] + mesh3D = mc.MEDCouplingUMesh("mesh3D",3); + mesh3D.allocateCells(18); + mesh3D.insertNextCell(mc.NORM_HEXA8,conn[0:8]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[8:51]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[51:59]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[59:67]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[67:110]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[110:118]); + mesh3D.insertNextCell(mc.NORM_HEXA8,conn[118:126]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[126:169]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[169:177]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[177:185]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[185:228]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[228:236]); + mesh3D.insertNextCell(mc.NORM_HEXA8,conn[236:244]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[244:287]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[287:295]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[295:303]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[303:346]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[346:354]); + mesh3D.finishInsertingCells(); + myCoords = mc.DataArrayDouble(coords,60,3); + myCoords.setInfoOnComponents(["X [m]","Y [m]","Z [m]"]) + mesh3D.setCoords(myCoords); + mesh3D.orientCorrectlyPolyhedrons() + mesh3D.sortCellsInMEDFileFrmt() + mesh3D.checkCoherency() + renum = mc.DataArrayInt(60) ; renum[:15]=range(15,30) ; renum[15:30]=range(15) ; renum[30:45]=range(45,60) ; renum[45:]=range(30,45) + mesh3D.renumberNodes(renum,60) + # Scale coordinates from meters to centimeters + mesh3D.getCoords()[:] *= 100. + mesh3D.getCoords().setInfoOnComponents(["X [cm]","Y [cm]","Z [cm]"]) + # Identify unique Z values + zLev = mesh3D.getCoords()[:,2] + zLev = zLev.getDifferentValues(1e-12) + zLev.sort() + # Extract cells from a given Z level - Solution 1 + tmp,cellIdsSol1 = mesh3D.buildSlice3D([0.,0.,(zLev[1]+zLev[2])/2],[0.,0.,1.],1e-12) + # Idem - Solution 2 + bary = mesh3D.getBarycenterAndOwner() + baryZ = bary[:,2] + cellIdsSol2 = baryZ.getIdsInRange(zLev[1],zLev[2]) + # Idem - Solution 3 + nodeIds = mesh3D.findNodesOnPlane([0.,0.,zLev[0]],[0.,0.,1.],1e-10) + mesh2D = mesh3D.buildFacePartOfMySelfNode(nodeIds,True) + extMesh = mc.MEDCouplingExtrudedMesh(mesh3D,mesh2D,0) + n_cells = mesh2D.getNumberOfCells() + cellIdsSol3 = extMesh.getMesh3DIds()[n_cells:2*n_cells] + # Compare the 3 methods + print cellIdsSol1.getValues() + print cellIdsSol2.getValues() + print cellIdsSol3.getValues() + # Extract part of the mesh + mesh3DPart = mesh3D[cellIdsSol2] # equivalent to mesh3DPart = mesh3D.buildPartOfMySelf(cellIdsSol2,True) + mesh3DPart.zipCoords() + # Check geometric type ordering + #print mesh3DPart.advancedRepr() + print mesh3DPart.checkConsecutiveCellTypesAndOrder([mc.NORM_HEXA8,mc.NORM_POLYHED]) + print mesh3DPart.checkConsecutiveCellTypes() + #print mesh3DPart.advancedRepr() + # Extract cells along a line - Solution 1 + baryXY = bary[:,[0,1]] + baryXY -= [250.,150.] + magn = baryXY.magnitude() + cellIds2Sol1 = magn.getIdsInRange(0.,1e-12) + # Extract cells along a line - Solution 2 + bary2 = mesh2D.getBarycenterAndOwner()[:,[0,1]] + bary2 -= [250.,150.] + magn = bary2.magnitude() + ids = magn.getIdsInRange(0.,1e-12) + idStart = int(ids) # ids is assumed to contain only one value, if not an exception is thrown + ze_range = range(idStart,mesh3D.getNumberOfCells(),mesh2D.getNumberOfCells()) + cellIds2Sol2 = extMesh.getMesh3DIds()[ze_range] + # Construct the final sub-part + mesh3DSlice2 = mesh3D[cellIds2Sol1] + mesh3DSlice2.zipCoords() + # Aggregate two meshes, one being the translated version of the original + mesh3DSlice2bis = mesh3DSlice2.deepCpy() + mesh3DSlice2bis.translate([0.,1000.,0.]) + mesh3DSlice2All = mc.MEDCouplingUMesh.MergeUMeshes([mesh3DSlice2,mesh3DSlice2bis]) + mesh3DSlice2All.writeVTK("mesh3DSlice2All.vtu") + # Discover descending connectivity + mesh3DSurf,desc,descIndx,revDesc,revDescIndx = mesh3D.buildDescendingConnectivity() + numberOf3DCellSharing = revDescIndx.deltaShiftIndex() + cellIds = numberOf3DCellSharing.getIdsNotEqual(1) + mesh3DSurfInside = mesh3DSurf[cellIds] + mesh3DSurfInside.writeVTK("mesh3DSurfInside.vtu") + diff --git a/doc/tutorial/atestMEDLoaderAdvancedAPI1.rst b/doc/tutorial/atestMEDLoaderAdvancedAPI1.rst new file mode 100644 index 000000000..bf16bea1a --- /dev/null +++ b/doc/tutorial/atestMEDLoaderAdvancedAPI1.rst @@ -0,0 +1,96 @@ + +.. _python_testMEDLoaderAdvancedAPI1_solution: + +Reading, Writing a MED file using MEDLoader advanced API +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + import MEDLoader as ml + from MEDLoader import MEDLoader + # Mesh creation + targetCoords = [-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + targetConn = [0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + targetMesh = ml.MEDCouplingUMesh("MyMesh",2) + targetMesh.allocateCells(5) + targetMesh.insertNextCell(ml.NORM_TRI3,3,targetConn[4:7]) + targetMesh.insertNextCell(ml.NORM_TRI3,3,targetConn[7:10]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[0:4]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[10:14]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[14:18]) + targetMesh.finishInsertingCells() + myCoords = ml.DataArrayDouble(targetCoords,9,2) + myCoords.setInfoOnComponents(["X [km]","YY [mm]"]) + targetMesh.setCoords(myCoords) + # Build the 2D faces from the 3D volumes (descending connectivity) + targetMeshConsti, _, _, _, _ = targetMesh.buildDescendingConnectivity() + targetMesh1 = targetMeshConsti[[3,4,7,8]] + targetMesh1.setName(targetMesh.getName()) + # + # Meshes + # + meshMEDFile = ml.MEDFileUMesh() + meshMEDFile.setMeshAtLevel(0,targetMesh) + meshMEDFile.setMeshAtLevel(-1,targetMesh1) + # Some groups on cells Level 0 + grp0_0 = ml.DataArrayInt([0,1,3]) + grp0_0.setName("grp0_Lev0") + grp1_0 = ml.DataArrayInt([1,2,3,4]) + grp1_0.setName("grp1_Lev0") + meshMEDFile.setGroupsAtLevel(0, [grp0_0,grp1_0]) + # Some groups on cells Level -1 + grp0_M1 = ml.DataArrayInt([0,1]) + grp0_M1.setName("grp0_LevM1") + grp1_M1 = ml.DataArrayInt([0,1,2]) + grp1_M1.setName("grp1_LevM1") + grp2_M1 = ml.DataArrayInt([1,2,3]) + grp2_M1.setName("grp2_LevM1") + meshMEDFile.setGroupsAtLevel(-1,[grp0_M1,grp1_M1,grp2_M1]) + # Write everything + meshMEDFile.write("TargetMesh2.med",2) # 2 stands for write from scratch + # Re-read and test equality + meshMEDFileRead = ml.MEDFileMesh.New("TargetMesh2.med") # a new is needed because it returns a MEDFileUMesh (MEDFileMesh is abstract) + meshRead0 = meshMEDFileRead.getMeshAtLevel(0) + meshRead1 = meshMEDFileRead.getMeshAtLevel(-1) + print "Is level 0 in the file equal to 'targetMesh'?", meshRead0.isEqual(targetMesh,1e-12) + print "Is level 0 in the file equal to 'targetMesh1'?", meshRead1.isEqual(targetMesh1,1e-12) + # Read groups + print meshMEDFileRead.getGrpNonEmptyLevels("grp0_Lev0") + grp0_0_read = meshMEDFileRead.getGroupArr(0,"grp0_Lev0") + print "Is group 'grp0_Lev0' equal to what is read in the file?" , grp0_0_read.isEqual(grp0_0) + # + # Fields + # + f = ml.MEDCouplingFieldDouble(ml.ON_CELLS, ml.ONE_TIME) + f.setTime(5.6,7,8) + f.setArray(targetMesh.getBarycenterAndOwner()) + f.setMesh(targetMesh) + f.setName("AFieldName") + # Prepare field for writing + fMEDFile = ml.MEDFileField1TS() + fMEDFile.setFieldNoProfileSBT(f) # No profile desired on the field, Sort By Type + # *Append* the field to an existing file + fMEDFile.write("TargetMesh2.med",0) # 0 is very important here because we want to append to TargetMesh2.med and not to scratch it + # Read the field + fMEDFileRead = ml.MEDFileField1TS("TargetMesh2.med",f.getName(),7,8) + fRead1 = fMEDFileRead.getFieldOnMeshAtLevel(ml.ON_CELLS,0,meshMEDFileRead) # Quickest way, not re-reading mesh in the file. + fRead2 = fMEDFileRead.getFieldAtLevel(ml.ON_CELLS,0) # Like above, but this time the mesh is read! + print "Does the field remain OK with the quick method?", fRead1.isEqual(f,1e-12,1e-12) + print "Does the field remain OK with the slow method?", fRead2.isEqual(f,1e-12,1e-12) + # + # Writing and Reading fields on profile using MEDLoader advanced API + # + pfl = ml.DataArrayInt([1,2,3]) + pfl.setName("My1stPfl") + fPart = f.buildSubPart(pfl) + fPart.setName("fPart") + # + fMEDFile2 = ml.MEDFileField1TS() + fMEDFile2.setFieldProfile(fPart,meshMEDFileRead,0,pfl) # 0 is the relative level (here 0 means 3D) + fMEDFile2.write("TargetMesh2.med",0) # 0 is paramount to indicate that we *append* (and no overwrite) to the MED file + # + fMEDFileRead2 = ml.MEDFileField1TS("TargetMesh2.med",fPart.getName(),7,8) + fPartRead, pflRead = fMEDFileRead2.getFieldWithProfile(ml.ON_CELLS,0,meshMEDFileRead) + print "Is the partial field correclty read?", fPartRead.isEqualWithoutConsideringStr(fPart.getArray(),1e-12) + print "Is the list of cell identifiers matching?", pflRead.isEqualWithoutConsideringStr(pfl) + diff --git a/doc/tutorial/atestMEDLoaderBasicAPI1.rst b/doc/tutorial/atestMEDLoaderBasicAPI1.rst new file mode 100644 index 000000000..97cdfaf14 --- /dev/null +++ b/doc/tutorial/atestMEDLoaderBasicAPI1.rst @@ -0,0 +1,53 @@ + +.. _python_testMEDLoaderBasicAPI1_solution: + +Reading, Writing a MED file using MEDLoader basic API +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + import MEDLoader as ml + from MEDLoader import MEDLoader + # Mesh creation + targetCoords = [-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + targetConn = [0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + targetMesh = ml.MEDCouplingUMesh("MyMesh",2) + targetMesh.allocateCells(5) + targetMesh.insertNextCell(ml.NORM_TRI3,3,targetConn[4:7]) + targetMesh.insertNextCell(ml.NORM_TRI3,3,targetConn[7:10]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[0:4]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[10:14]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[14:18]) + targetMesh.finishInsertingCells() + myCoords = ml.DataArrayDouble(targetCoords,9,2) + myCoords.setInfoOnComponents(["X [km]","YY [mm]"]) + targetMesh.setCoords(myCoords) + # Writing mesh only + MEDLoader.WriteUMesh("TargetMesh.med",targetMesh,True) # True means 'from scratch' + # Re-read it and test equality + meshRead = MEDLoader.ReadUMeshFromFile("TargetMesh.med",targetMesh.getName(),0) + print "Is the read mesh equal to 'targetMesh' ?", meshRead.isEqual(targetMesh,1e-12) + # Writing a field and its support mesh in one go + f = ml.MEDCouplingFieldDouble.New(ml.ON_CELLS, ml.ONE_TIME) + f.setTime(5.6,7,8) # Declare the timestep associated to the field + f.setArray(targetMesh.getBarycenterAndOwner()) + f.setMesh(targetMesh) + f.setName("AFieldName") + MEDLoader.WriteField("MyFirstField.med",f,True) + # Re-read it ans test equality + f2 = MEDLoader.ReadFieldCell("MyFirstField.med", f.getMesh().getName(), 0, f.getName(), 7, 8) + print "Is the read field identical to 'f' ?", f2.isEqual(f,1e-12,1e-12) + # Writing in several steps + MEDLoader.WriteUMesh("MySecondField.med",f.getMesh(),True) + MEDLoader.WriteFieldUsingAlreadyWrittenMesh("MySecondField.med",f) + # A second field to write + f2 = f.clone(True) # 'True' means that we need a deep copy + f2.getArray()[:] = 2.0 + f2.setTime(7.8,9,10) + MEDLoader.WriteFieldUsingAlreadyWrittenMesh("MySecondField.med",f2) + # Re-read and test this two-timestep field + f3 = MEDLoader.ReadFieldCell("MySecondField.med",f.getMesh().getName(),0,f.getName(),7,8) + print "Is the field read in file equals to 'f' ?", f.isEqual(f3,1e-12,1e-12) + f4 = MEDLoader.ReadFieldCell("MySecondField.med",f.getMesh().getName(),0,f.getName(),9,10) + print "Is the field read in file equals to 'f2' ?", f2.isEqual(f4,1e-12,1e-12) + diff --git a/doc/tutorial/atestMEDLoaderSplitAndMerge1.rst b/doc/tutorial/atestMEDLoaderSplitAndMerge1.rst new file mode 100644 index 000000000..aa498a873 --- /dev/null +++ b/doc/tutorial/atestMEDLoaderSplitAndMerge1.rst @@ -0,0 +1,124 @@ + +.. _python_testMEDLoaderSplitAndMerge1_solution: + +Splitting and Merging a MED file using MEDLoader +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + import MEDLoader as ml + from MEDLoader import MEDLoader + + m0 = ml.MEDCouplingCMesh() + arr = ml.DataArrayDouble(31,1) ; arr.iota(0.) + m0.setCoords(arr,arr) + m0 = m0.buildUnstructured() + m00 = m0[::2] # Extract even cells + m00.simplexize(0) + m01 = m0[1::2] + m0 = ml.MEDCouplingUMesh.MergeUMeshes([m00,m01]) + m0.getCoords()[:] *= 1/15. + m0.setName("mesh") + # Cell field + cellField = ml.MEDCouplingFieldDouble(ml.ON_CELLS, ml.ONE_TIME) + cellField.setTime(5.6,5,6) + cellField.setMesh(m0) + cellField.setName("CellField") + cellField.fillFromAnalytic(1,"exp(-((x-1)*(x-1)+(y-1)*(y-1)))") + cellField.getArray().setInfoOnComponent(0,"powercell [W]") + # Node field + nodeField = ml.MEDCouplingFieldDouble(ml.ON_NODES,ml.ONE_TIME) + nodeField.setTime(5.6,5,6) + nodeField.setMesh(m0) + nodeField.setName("NodeField") + nodeField.fillFromAnalytic(1,"exp(-((x-1)*(x-1)+(y-1)*(y-1)))") + nodeField.getArray().setInfoOnComponent(0,"powernode [W]") + # Splitting + proc0 = m0.getCellsInBoundingBox([(0.,0.4),(0.,0.4)],1e-10) + proc1 = proc0.buildComplement(m0.getNumberOfCells()) + # + nodeField0 = nodeField[proc0] ; cellField0 = cellField[proc0] ; cellField0.setMesh(nodeField0.getMesh()) + nodeField1 = nodeField[proc1] ; cellField1 = cellField[proc1] ; cellField1.setMesh(nodeField1.getMesh()) + + proc0_fname = "proc0.med" + MEDLoader.WriteField(proc0_fname, nodeField0, True) + MEDLoader.WriteFieldUsingAlreadyWrittenMesh(proc0_fname, cellField0) + + proc1_fname = "proc1.med" + MEDLoader.WriteField(proc1_fname,nodeField1,True) + MEDLoader.WriteFieldUsingAlreadyWrittenMesh(proc1_fname,cellField1) + # + # Merging - Sub-optimal method + # + cellField0_read = MEDLoader.ReadFieldCell("proc0.med","mesh",0,"CellField",5,6) + cellField1_read = MEDLoader.ReadFieldCell("proc1.med","mesh",0,"CellField",5,6) + cellField_read = ml.MEDCouplingFieldDouble.MergeFields([cellField0_read,cellField1_read]) + cellFieldCpy = cellField.deepCpy() + cellFieldCpy.substractInPlaceDM(cellField_read,10,1e-12) + cellFieldCpy.getArray().abs() + print cellFieldCpy.getArray().isUniform(0.,1e-12) + # + nodeField0_read = MEDLoader.ReadFieldNode("proc0.med","mesh",0,"NodeField",5,6) + nodeField1_read = MEDLoader.ReadFieldNode("proc1.med","mesh",0,"NodeField",5,6) + nodeField_read = ml.MEDCouplingFieldDouble.MergeFields([nodeField0_read, nodeField1_read]) + nodeField_read.mergeNodes(1e-10) + nodeFieldCpy = nodeField.deepCpy() + nodeFieldCpy.mergeNodes(1e-10) + nodeFieldCpy.substractInPlaceDM(nodeField_read,10,1e-12) + print nodeFieldCpy.getArray().isUniform(0.,1e-12) + # + # Merging - Optimal method + # + fileNames = ["proc0.med","proc1.med"] + msML = [ml.MEDFileMesh.New(fname) for fname in fileNames] + fsML = [ml.MEDFileFields.New(fname) for fname in fileNames] + mergeMLMesh = ml.MEDFileUMesh() + mergeMLFields = ml.MEDFileFields() + for lev in msML[0].getNonEmptyLevels(): + o2nML = len(msML[0].getNonEmptyLevels())*[None] + cs = [mML.getCoords() for mML in msML] + mergeMLMesh.setCoords(ml.DataArrayDouble.Aggregate(cs)) + ms = [mML.getMeshAtLevel(lev) for mML in msML] + m = ml.MEDCouplingUMesh.MergeUMeshes(ms) ; m.setCoords(mergeMLMesh.getCoords()) + o2nML[lev] = m.sortCellsInMEDFileFrmt() + mergeMLMesh.setMeshAtLevel(lev,m) + pass + + for fieldName in fsML[0].getFieldsNames(): + fmts = [fML[fieldName] for fML in fsML] + mergeField = ml.MEDFileFieldMultiTS() + for dt,it,tim in fmts[0].getTimeSteps(): + fts = [fmt[dt,it] for fmt in fmts] + arrs = len(fts)*[None] + for typp in fts[0].getTypesOfFieldAvailable(): + arr1s = [] + if typp == ml.ON_CELLS: + for ft in fts: + for geoTyp,smth in ft.getFieldSplitedByType(): + if geoTyp != ml.NORM_ERROR: + smth1 = filter(lambda x:x[0] == ml.ON_CELLS,smth) + arr2s = [ft.getUndergroundDataArray()[elt[1][0]:elt[1][1]] for elt in smth1] + arr1s.append(ml.DataArrayDouble.Aggregate(arr2s)) + pass + pass + pass + pass + else: + for ft in fts: + smth = filter(lambda x:x[0] == ml.NORM_ERROR,ft.getFieldSplitedByType()) + arr2 = ml.DataArrayDouble.Aggregate([ft.getUndergroundDataArray()[elt[1][0][1][0]:elt[1][0][1][1]] for elt in smth]) + arr1s.append(arr2) + pass + pass + arr = ml.DataArrayDouble.Aggregate(arr1s) + if typp == ml.ON_CELLS: + arr.renumberInPlace(o2nML[lev]) + mcf = ml.MEDCouplingFieldDouble(typp,ml.ONE_TIME) ; mcf.setName(fieldName) ; mcf.setTime(tim,dt,it) ; mcf.setArray(arr) + mcf.setMesh(mergeMLMesh.getMeshAtLevel(lev)) ; mcf.checkCoherency() + mergeField.appendFieldNoProfileSBT(mcf) + pass + pass + mergeMLFields.pushField(mergeField) + pass + mergeMLMesh.write("merge.med",2) + mergeMLFields.write("merge.med",0) diff --git a/doc/tutorial/conf.py.in b/doc/tutorial/conf.py.in new file mode 100644 index 000000000..65d86287c --- /dev/null +++ b/doc/tutorial/conf.py.in @@ -0,0 +1,187 @@ +# -*- coding: utf-8 -*- +# +# Code Coupling and Code Integration documentation build configuration file, created by +# sphinx-quickstart on Tue Apr 28 15:28:57 2009. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# The contents of this file are pickled, so don't put values in the namespace +# that aren't pickleable (module imports are okay, they're removed automatically). +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If your extensions are in another directory, add it here. If the directory +# is relative to the documentation root, use os.path.abspath to make it +# absolute, like shown here. +#sys.path.append(os.path.abspath('.')) + +# General configuration +# --------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.pngmath'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'MEDCoupling tutorial' +copyright = u'2015, Geay, Bruneton' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '@SALOMEMED_VERSION@' +# The full version, including alpha/beta/rc tags. +release = '@SALOMEMED_VERSION@' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +#unused_docs = [] + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + + +# Options for HTML output +# ----------------------- + +# The style sheet to use for HTML and HTML Help pages. A file of that name +# must exist either in Sphinx' static/ path, or in one of the custom paths +# given in html_static_path. +html_style = 'default.css' + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = '' + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, the reST sources are included in the HTML build as _sources/. +#html_copy_source = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'MEDCouplingTutorial' + + +# Options for LaTeX output +# ------------------------ + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, document class [howto/manual]). +latex_documents = [ + ('index', 'MEDCouplingTutorial.tex', ur'MEDCoupling tutorial', + ur'A. Geay, A. Bruneton', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = '' + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True diff --git a/doc/tutorial/data/Fixe.med b/doc/tutorial/data/Fixe.med new file mode 100644 index 0000000000000000000000000000000000000000..e8955de0190eacf599489f5cd1069b5d838c111b GIT binary patch literal 10957 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 SsOtYLI5fX*zm7nV5%@Q8n@EiS literal 0 HcmV?d00001 diff --git a/doc/tutorial/data/Mobile.med b/doc/tutorial/data/Mobile.med new file mode 100644 index 0000000000000000000000000000000000000000..f357d2d2e0df0171f9fc68f12dfc302ffeba9ee4 GIT binary patch literal 13773 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 YvUiP3CgWxA8S~KmclqxKykG?W1z_R)Y5)KL literal 0 HcmV?d00001 diff --git a/doc/tutorial/data/agitateur.med b/doc/tutorial/data/agitateur.med new file mode 100644 index 0000000000000000000000000000000000000000..10529512cd8b5617385c84b10e47cf18fbe7d50a GIT binary patch literal 1871934 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

Bbx+;anZI`BV2wBVS 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 z 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%0A3;f=Fy{qrt?^*CWCl0|bPlIy~P5IaGPx@Tn z2RV7Xdf&qrw46*9X^YdB6;q#rea1{j9O_yvX8s6I5TD=?j>FH4Gd1kjbe#BCc!K!; z*Wifp_mG#9UVi{*=e>!zevW>_p?Z<+xHp?*5Tbi8CfinXyI$kzSLQnTAM0MJkhwO^IA%7O!r9R2J zgzER(63naD&%i5Q-9r5GW*_)%d(MQONXU_I5j7!r?3>->M~0iE_bw*oH%Bz++sc!` z%U0GV{e%}Fo1?FhSMj_(WZlyTJTiO?@W?Gm(Fek>6=bnHJp45y$AU*+%LY5UDF^W% z%a3tW@H+COw%vyRtbAke1ZLz3@)Cj}d2st9qz^*+;2V7)Quf1hP_)|!{Hy&U*-hB1 zY)R={-5m?(qAI-i;a@qAMB@(N(-#tehbJ3|bCgeAPv_ka_O*Hc`LXju7F~dIQil7L z&hd*$F#cEL4zc^+^}NxE@1UM4^{D?=T}{C$c)eqnjz5dOd3y@4J9MmS=$r4YyPV_? zKSafeu(zjo6?S|k+*IRUpWBWjk2;w@z4l%H^3`3TCrf>XU7+co{>Y_~7K3k7^B>xG zwpTm6o)KxD8)t8~FInYKb&N*)&eHw~9Qv{I^i3i*ZEPu{-*kB zyD#N`)ZicLkDz+kPo8sh&{CZ9YD-b{wP<+xu`lov zE5UQU)INve>9PF|wQBW!eRF0Z;^GnBqJL$@PSnpnd%$P!_c`MD_{c>+^m^IunLzI& zRxP^V?9H032jSn^zKGY}`)m6{o9NgdJo#>%H+=bD;|X->$M$82{(nTiRJup#dvSFl zQ15vCef!`m^%Y6C5|3Q)-{J}Bw~+nj&cBd82^1IwiLYOx`~Lfl@pn;be(-+d!Z{y@{X6bA zZrx4p{3qXUJR7z^i?5gFANL#IdAjCJ-8onPCfoXdTbRjucM*X;*$90JCk_DeWrIoH zF$}0Oj{usaggo4E(wi}qaQ+aW9@rCT;}Wl`)DN=gGLZC6ke=#EymAAf2_PP^mgenQ zT3^NKPQ3nvW(e`KlYNLcv;vwbgGlZ|cCs8HA4%iDPpG+Pd^+`qjYoNxa|m@SLYtcAO=((3W~4aG2aliL#ABBdFH7U8%Natk(No8; zo;nux)GrG0i`v9%V-c_V{8)g`p^CPG#l#sFmn+9&n|tt%3E>QaPwMJ12F?TF8g z_wZbqOuSo&&*mNr*+!-PXIE1^rlBv!#iI5=lh(r@K;(Cz zE)yRg(U$aEHYOa~0BGkl2ePmofqb*4FQ0q%MJU?G{IMs_q?CW#pY-L;)@0wi5m2S6 z2^2j&c%Tksqi7wGhWdjKrn>0()UWD3<&6b+_Cd!Eu(Rzv{uZlE{OxN1`3P^InBI)W zBT}AhJWv0vrhe56s17C_4z7dd~xbu zxneoRdvFalK#x9G@pX{Lfxajl8Ze1V(vWB%exV1!Yl!@&y&e64e^>>O(Dxk zm1(?4MW8NPo$yjg!sRqBw|dTvW|UXkawg`@T#`kVu8`%4RzUTE{F9XnK^Ef^0ClH0 zK-QJUZF0(&d_(=fMo=BqEIOZLK9X5{U)ag>0?5P01=<%0X*^s(AiGcd#H{Q<<2^n5 zD-`uD+c_QMdabAbK6?5gQ3V>mT^49})*|~{lpp!I8e|cf@}^pQ&ZRq^y7r!rd3Jj> z*_D_9)X~S#xbW=LSmhzB0>mrA*Mls!Q=h9V#LM?j!?+wp_0ww>5l`D?K)Y%oP-mdN zld)+ZvxGhvSLZzW%0}_Y$ew+5bT-+wC3~KScy;wz7-uhNpQ;-zNUt>UnNgGKnx;k=&8`SEkL_$-Umx-f22IRFQdShbHV1=!t@dfpRJB6Zv`~+5bf6i7vb! zvZ`GMc6RbU@QAfZf%@7`k}oeNyI91hH&9+#1CPI@c41z0J`2>cDg0umbCO?CF9K~@ zhIM#BLwehΠ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

B?86G=>341em}%b@F#DBxL~*QUxXVL%u`t%d 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

g~Ncp6F9E0g-S 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 m|FBrVrj%u-?V{7SNNOCm9~%P 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 literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/FieldDouble1_1.png b/doc/tutorial/images/FieldDouble1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..bf5f082a5b38528f2053d12c608b38f784fff387 GIT binary patch literal 19991 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�Q2J|9z?#T{P~|4)F!}U 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 CLFmo^ literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/FieldDouble1_1_exploded.png b/doc/tutorial/images/FieldDouble1_1_exploded.png new file mode 100644 index 0000000000000000000000000000000000000000..33bf6c6958399624bb96a268df948cafe02d8899 GIT binary patch literal 10793 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 literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/FieldDouble1_2.png b/doc/tutorial/images/FieldDouble1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6c5fbac591efe24ac88934ba2b797459a54da8a9 GIT binary patch literal 15148 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 literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/Field_Cube3D.jpg b/doc/tutorial/images/Field_Cube3D.jpg new file mode 100644 index 0000000000000000000000000000000000000000..90e68015ee180f7cc6c3ca4413b69e2ec7b104d8 GIT binary patch literal 61652 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π46XQEl;T%UmtjabX`(T-_btPuge8OE&q}B+MejLBdRy^Q=^1;=bZL+JDKQm2 z(pl!;eY)!CpkyUdVe49tlz-!88G}j|WZgm$LhIKTZECrZoiG%Xq^En>238EL#@I>0neO^r7< zt1VppDXPblj{tLF*tCFmPWx?}XIoJtp@mYC5jYMm(b#vpct!HYk=dZpqS?A zTAn*r4dz{K+7Y(;#k2k^@57*hiZ~U?t;`@KSDXblqXpP*^(NE=QC3rdU$5>VQCoQB7nhq05rsHYj5H8nVTCiw3 zb*uzm8I?#-(|*$zaZ^9hH`yFlzcz49CKQu8W(PI++H<(l*iu@`Fwot5!dg1fM)bD? znkcG|{WEeK8BYwm85x%CC>fHN@5ckubtJRq`dv}Cb3e%mM9l1L(3hJ|>cuw84&*Fu zbd<9BpV|_35JGngpQAp{IoCx8w%6`&&w1D!cdz5k_;HAPvy_U~nYRty%>AyHOd&c? z*EDKLB5UC)YYWY}OL6^$a9Bn7`R8@{t?ZQs*ht}4_Ze_xUbz0{77zK-SWY=h(J+2i zY^`;8pj*3k+t<2mjsk=C|K1{)$@4EVyPHBBPdaQ)hj(V5zrmp)Y^sP0Z0s#{OI4m# zr4?U4txnJ@j1;a6&;m+B=P@Q4zStb+m$A z+y7FXQDq}F!c@{kfMofY_Rn;FsiH`tux+&z&P1mfKls&_H z$8+iRJ+=CMF&Zb=xOcrKnb0IHE3x7*7WJ%sjTe`@#STv^T)6QqSZg0IOt<1mQLNf{ zvM+#+ioJJPI1!BtM0Dau|KiFs@=VynWX}z`aaswFGt00nm%NI*Qa)Ao=6(F98B^K) z(`=6UsiQ|^mWU|iY|iYYgieuTbJ2omWcas>5)aa=pIQW~=Zmq|X;;e6g@6bElw)np zhd#O03_ob-c=EmmOWWxYK$E#r-gm=pS8qUMteH%rt%3*+bY0gMuWs3!*ohS6wH8t@ zsGo4Vx+FMA5FUQE=Yj>X6~PJRJX?q1$ItgYiJ&13-!QRXme+V6nG1nj_@DZ;j+n?94+J>RpigIA|X92y%Kl3rMn zPRIKQWHn4E+*J_9Nz$d||D~>Oz=(d?dk`bTTv<~siLtR)S5$I+S{reE&e@e^d!tg$ zdnJ3lxG0b2@$>hZ)%vRlW>EMXe9zp)HaY-Q8Kvy&Z#=wtt6&tOKn37~g}MAuRg3nx zV^+kI{{17sc5Z%0Xqt{&&6E}X zN4e60Ci*nyZn+R=Zd>asioocZzXo6a{x)(*Ng+2tC%Y-2(e`_B7aOtaoP|J=wR^}F zLe9$LR=n}Y-ko$7WZIL0WV`mu!8VnAnJ3q;#9`O3-64sH^cOY`uO{z=Ozk<63z^RA z{iu!K8J-TH%krh4b%2frC;g}{l?ZEAY;x-pSQLMek11d@JdgH&wkDLT{`XkmBCODG z`++UkTPf>jv~38jj~O6j7lwyI(8V~s?68dYDuEU)9;Er?Rr@1-B_cTSCI9j6u0VQ` z8oP>+#Y(?2gpQAA;F<@YkxeT@b!vybruYsqBU>zgMw_pL#1Y;zVM#Z-;Cf~0E@WF6 z%4Y9XqokE+|1S~d%Lo;5Ir01F?lF#eURmSAr(LT`qJ0}P`j!?*IdNH3oJX8o;T?x+ z@zU&WRGwGv{=utMc3h8wPx+v~K+LrlT~8e-*I+AROQ3*UNRJ#WRawNv_#!s{)X3A< zV05pz>q@MXw0lh*v9F$dX)x!HniyQu9BVeow*8wMdUCB{R47{)M;t7RcYr~2u_-P> z$Ew8kJg{pT8Qth#;wj>ius0$9OiL}n;{Zn(?zKrS4W}clNKw+7;4rI8op+R`vEqG8 z^QV{H$Hm1(e8}ATL84`1z0OFgi~^}qsgz^c0cu@Ri;p9cPIn{UUafb;NL$H|?xS5y z$-6zww?x2pr(hmx8LKDx>|D&^0`9CX3+{$3XXg_QQ$0B0&8j&auHLpWfh2p$0#-QX zWpX$LXZ>_Fz2r?t+D%?|Pqiy6qnNFtU!T#0P13+@2_h%Yn8%w`uVfh-s+-f4r$KcY zF1wfpI^G?xJRLAF*L*co>A$O0lUGin%Xr!;I{vC99l^mQ^rgEqKQHHdyDFxwrnOw5 zFdXUegYLMsuxwl0tu@U=x(OJ!;z}b5Uvq>#hbWxwl%$Ri@7z39vVVCXEAOQL(z!J> zRNA+-7zIgRUQ6|f1~kx$+Zn$3v)mFet*qJOYvmTkJ*=mR&if7|8ZqDsl@dRJ;AP%R%ID{C)rn$2f{mt`az6NUSjmdGvtu2)V~O`#xeH~#EZxVCNo-cc^m=-AP#6t zmT$M6;-QAAvjTC->z-R#_RhrQ?x;vE= zMvTtE=*F{u;hghf|G@iU@AE#_eP0h=KU3jMQ!^s%4*7sos+pffU52xXb5Xd;D@eqYYcP_tl(b z%sfdp6J6sbT~nVjGvxljLyGzj69evngBP!*+Vbw ze*CFfW1bYkcy7iigO0vkzH;VA0$^%MFc(o@U<8?pAXieos+L$OsI}mgs$!F)_ip;k zJ=jOLN2Q)#+{K==cSpU@u8opcH+SLcJo@huIFc8{Sw5O?mT(Xvpi=T~;6EFI^`{qv z3*_@vdoXV%ttW228afm)F*Q%#{wkIG|4ja-_T8fo)I56zHpu2mXU9^oZnT#K;K09P z%r>0*Y-T9zxMFo!r#_kJA?q}C-rhhLUbtBs+?a`QtN&A9In&>Y(eC2>4C9s=>u~GOd3=Cp0UhWh=t>A6d0ED227AjtTCmr*or4)< z9cKZHi=*PtW9*TOrSXweysp1?tC@pr^LUQm^*r*mXta=JV|Z&mattw7ojfq^Li%F7 zwAMaCDQ(n?rwBUwNHP5tg(~CGxvw&n_m@T|;@6Oc`di+G3Zcn`33dXL`qUNNRO1SW z6Q%x32xI+hMfop1HIULDk%bgHwopF)4$Kt(q0thso~lW)rWE?a{5xJ8%Tu3n(g*9f zpaL+lW~us~)q^T7Dtwc6;=T5u&Z z!EkRrrRi57ylw84+)yPm0@~L%wjdJUke!Kl8%ck8eNU!!tnmGj?+~d{-jLOYAB8~0#}-@22ZKNLT{>Dq z{BxJvM}<$MZ*usar!ZpZl$>t+s|FcQY3hEN4@2@l`HBp(Pj>pm{mnUxBaj^jp^FZu zygPE?Z;n8++l@}e-Rnzjv8Ou_{*7uc0h9h`7e0}YMV1TY?IuGRZL+R+o5TJ35HSLb zJJ&vc-K@Cfsq-)jyV@-ER$a?>DCN9)u3Bw6G_Z-i^0AIdYW?*ib=IfmN^%ZrnwvG{Y_559J@=kC zsY|t^_lxEf{0yHOKhrj(?56oUPk@5U$?cKx2078-_&fK#m~p-%rkZLoEjD?fi<}e$mb+gxeuPT@NC4Z?^g+}m%BZb& zEMHC)&kyIHPR`7jeF=EeR(4kEts88qK0KyodJS^{ z5Q*=LKEL$THn@DpIj!r*{bT6h-5-*%oF#l}(9!Jg3z|-Ift$XOYJ%qY`;6*>shd$G;)oG34%Yd8T2LcKeVJI(KZgr5cl$XX$ zn==q7lQJ_3xl>bm>uwLx=BOzv^rl%Zce)LP?Pk2gFH!2t2GJHNT~IQ#?f?fV5~PLVr`O1@9s?RloCN=nvnetKSpdD7oU+F`i+%;<#)<2QsW zT}KyEL;gzenrXWfzsilTMU@zn z_0CZ@37kY|-6!T!SlKUC(i0?bq?qwQ4Vv3a*Q8YRp$cSMlN_Q7!yh98>g$%uMAvp) zNW`vF0hB0v+~Eu#ZgcTN1P|De^sLxBOiR7KkEoUcV>i1l&YM7gs{pILM3Kej{rt9~ ztAsg#TuPh4*LtvKR!ImIp*;m}wPK^YMlI9`u68UR z4S_`)dT~ED)0wudp{R|CUHMKMCk}uoPJ&KPOH#ANBG$A*hkKeBYf=q5PRemhxpje! zkGL0W+})@_19qeIoTO-bKF@Q|>FPa_!{C`*heZ&U5Jc9UjxG)vYw-D1OtA8Drph<0 z>0aj)<%?W^jnyk;4gLLcr~PcUm+lQ}(r>3VyZrpBCL0;q6GT?q=nvVRpAkI?iQ^lC zk^JTG2WW^<3(st~@lKo-SvO1xT~@FqzO!@Cte1v z{`^3MI3+wc86MCN;@e69^m#~;>NTTV8T4uzle;gp7SyOlDU@zx#{>#F$QXePg;J1- zIOmkDqjQ=bN{-ZtQfK==i#yIv`^&*O-{S{8L8(ED!>S0K&_9dDOR8!&_2yw}Q?<>i z1(Q6ytRYpl$aiwLot=`fqp?TIKqJ<6T=Aty!y>KdiIA^Ke#b*Bu{Gls=&8-xOcmo% z{1=couBTsagz9%@B&Ug?N(cu~F$>zjL;beWx3?y0Ni@J;=M2|ZW>PzJvS!l=;k7$9Z#af8R`^7Gb)(qTr_?9db`b$pnSp?} zJp^`M&Hi_W$Sp81F*RD~qxsmikGDl*AqhOnmZRB9topGBGmjS9PSZ{N*${ptnv`b& zM2E_|$K{rTCralo^Y^`qoGNClnHicNk;6y<;(bKGAW98Atm*Cbw^<>7ghT29-$oQ? zQg``cLnk%pBs2Z`DXZ(}RU&!93~*|FON|lhOvb4*)TIrak#0-9AM+geKC8_B6#`*o zWaMrB*+=6t4al+*U%B|H}% z66BJbL`GO)9o>y}{etKFNBGN|^y9I2l=iPjzOi{Ec|11D^x2sduB$K(jM1x|^%8p% z8-b5f%!qLFP>BODg~2_?wbQRkeN4Y$H~G~mYO|vuj>fv9yG_@*s0cyAo+wK}vc=Wa zyTP&-?P+a$;NWA`XhFaD&QWKnDVc5e_9QDPInpi2BveDz{jWtJ=bs-Fr)oaE>(4%O zkNB@-zGU#T5n1@0*x4U+x0^Cn2w8PxohY2lrg357uo^oD*)vk2KM$2xC#zFjooO$73hEV2Y;jYAglAlfxHjMO206b6wG@6 zAujstMyb?!dZi(qeKzYL;1I-I8Ewd#sL`z2hLE(ljT!j5vAU z?BO+-*+M}*49vt4AbUn<5P5_9=kzNOs|^22sZ;L2RU5k;hNZS_>v)lS{8uXNmrjRdT;r_BTB9+lWi_wu`B~c% zh-b&3XQr99SyQD}imw_k{VG>(sE? zRL2w^7$wDK^pecb#6exmtXCYQcS)m1gCyq00F$9NIlJkw=F0#3!3V#?Y((c4qcyjg zuvw#2*;e=RvtIvd<=Tv#R2})0aT#8z{v|pA0l}F@jV}_9>c1nn?=#k8r7yOWRyM4h z9)JsIB_pIds3}hkTEcA?CcBz{C$|JQ2d-^rFM(rI?MQV4GxJAj5WUx~RGaMu?o*ly z(8Ax3UTDhxUw^NR2;xOr%TSJ$+_J5Yp8|pO3N*y}+{OyT0lr`1zvH z=N4Seog2YyO|4H?sqtwu=;cmqp#v;F>Z$9Nv@?1k5)Y5Y<%d8TqrVgA7=oyrOui>4 zj)C&@Hkw{!MzC+lLw?gQM#U^MHA^4IxDWyWmjdjdk}Bl=TQZh{#0+v z3W*lWc+zh$L8#gxbJDuE7$M`qw!RCI0hU;2)I-U@ec%0eImLT=T$qiRm9d|`&aXu? zzSk2nSv|vZvavu5K9E3r_dPUwJjFzhmsLnyKLp0D-Cfw83eF;=r6UR>P`b5PZ4FYZ zhNh^A=K~ge@2;Jh?H$K|Zso&hYIPc_ioJ^;t?$>L?y>FtMgLk5gS=d?fE7a>X8r-L zwfC@P(f9a)Z~e^N-5GKmU#Zw>(@&U?^tZFQ0L1SPaSMrvtu ztGjCob)tI;|71-+A(Sfi8lyhIQf+mxfG463TYHEO@AFJ(#iO)5bmeY&;-XOU50EFv z%*Wo%nKHD+fJ=XLlPdMgE80`?aJ$3qkDn}aqPChLw%cOt@)7)?p2!VtF}G2l>8U+l{gRssh`IfXnT=q=9qo9+ z1@+laNlU$)gZzvkdCw?OnQ?g+G*U#P#*qd}(!jwNYvgl+5`5!h%0m_OrR!cD15&Yi z*mZsP0KtYEF(`3y(nn+8ukgRGWeG#uMM(Kmg{3R!#V(=rGs_Q*@g$g@1uTTYPeM&D z26pBPU#6IG*XWx~2N9p_ytux4XdM4kZ*Sae40Vv2jaXEzo73;~fyL&8ySU_PQqKH< ze+f*c>W#+>+%?L*2{_s7KLky?UU6N1rq3thI6y&|VAH~F#kmRDuoQSgY zW__%HkJFgSnfN$>Uj5Iwc-i68PcNHX!z*4V1usZn@q8Y$rrrX0hW>zU7W?^{r}lS{ zfO-N8?-Y_P0)_})oH8+yOg+WWH|9?Z4GQ7%D@35tBvaX0k~cO-At()XM4iUkY|CcU znqU4T1eR!i`K0+uf!DZjstGjZ2YD`Dn=max|mJ(R?{nMj^!i zR=ZxlZ?;cS&N?(OW0o>ldD6P-GEfL7GL-6c%;N#{NWz|vDgMcZxkzz{Wqb6yKg6C+ z*To87w<}fj?U$CDYY$Xi)?(P(?b5fCRE7hSZ#Mqqj#bn(-;}ACR}H(vs9&PsD* zi~q{d0?W}-bJ&@`i1s=<-bt_R5z%aiCSoo$=$DOxLu>zf(`JEnMD{JoHc+8py72}J z5f3s?+lN6^h*`7xA z4CJS4g}rpQm7ELUn}H8pYoKC68Z;W~Z#`3P;y2li6xq4|?3adL44{;`{0CSwoOcZa ziB}k_38#Fa*LLO~l#JL(?6B_KCabF8fmRT&O&Tn46`S4~IZg)IyJV3 z?{;ydE0|Ai<&H{wB53*N^5U@Pi_dP$yd!+-k2T>oz<&UvO4qt(8M_%Nu3s&1G8@$$pVzF^RTmxMoXKLDqX^?Q~f<~@-v9;Kh zmHonBYO!_P!2a-D3MxEZ5TCy*u+SD?ZipJw_5eSOmeF;>j7hpDDlp? zp*d5rw>?bjWSTiEsYcC|?YgN+G|IUJ0-1H(cj1TBuEF)8R%>r zCs8u)y)dJ-F4)7%P5M(st3+(+cO{02i%bmb2j~ZyF$|wXlTjrOjg1Z^pKPb8s+QFU zmbz^;9!PSQZ0l)dNr@MaU1+8ra4+phM{(<`X1yVi>G!#S1(Y~#;g9Nau;4!o=s1c~ zCprbu`)$-YOB!Hp&VA1>E=23Aqz8X7aJ+#7@@ylB2FAq14x@L@Y$ST`D!zD$3%WBt zg1f@e7C=!tf(fZ6?}9m#!O~qp2Z@somaKQhX-|lOmL9n@Ta4Fm?~V#ymQ^lA{n5zY z{`8p3pWL>zj-2LtWs9e0QcrypBKj?}t&fYV1jr-=SVj)dGSPINuDeHf)JzKplBuNsL5E`)eKeVh*VvGZiOC7>I3lBqhP0E( z-Q^bUgR3n$A1!R8F+Ih5=stC0FU47bJwX2S3+**q9aBsG8M}5OuDGrLI&x(>aZ(tS z?KVyH8(N@y_$TPZRNH6~Ru=RRARqI3l`_;^tFKU-jMux^^)b&qLiL)usUj?Rg)NjW zXoy|Od;Wthm7A8L5@_9;L00m~Aa?q!?{h_aWL<5NP{QWiARgGfT;89a7H*U2G{0~JzoWfwn#rw96aSW0_jssS1M$Mkz-aF=VI=3rWM|;)lmYQjZf(G?lR)lTq&sOb#u1H#=GLP>0H1Rb@xgFNEzF z-%~f%9w~mAnH8|ss-y03swwJY$T5pd9tYXrteekfP! z*K8n_-T~sJUzc*jfX4q_x3MksPV6nK{R3b&F3bBz*7*MJCo@pD`?Pq&Q=@$rWps~g zu4n}mWWwuE)_$9&5_=mb=FE7B4VbNz@iw_Lkm-?ccY{rJgNT{I*Dz+hH@a8X`(v_z z)2+BbgvaW2cds-s_###C1B`9)r@WD#$LuEt*tcgl56@P0VA6*A|A=#tj29 zejZS|2+rgqm$da|@G70CRisSYllC6ZlMCP}h%`_cVMdFaVC!---nRxIc(#upY!Nc! z`se+>XD5$d>PC#Z#ejxWQ|pwjysvt9TXJjy`s6c**@`(@D*g`MVE5>gm7y-FkqQVL zN@cG}AJTp-P`)m0OcEPMZ4ZoVg>KbDh7W`0TnjYvmixmQSZxN`7rdl!wt)607+z-{ zp#s%`p-n0p1sQgl!^ybiSXa~Sm(r{gOw-)CvBTx4aHV4%w9Rwe5V=-B_Ca6t$+!z7dKm3aQ}-;4Mr-YOuT!EK@kof?-NJu_X0?VRTm6>xXNFjBmyJnK);~ z5cvbUio$fsj)D8#&rLt(b5w8pwvz@7^AhZFMIUpePH-rGyIY!O9Pp6E(TpHX_-Pq2 zL{<3G&n{YPVvxDmr!0Ze4X?8g@VGYTA|7P*<1)~_Nbcu?$$VF_JC{~Jzyz<)?e8|< zf`_F4B&KvNqvKUpDbv6-<%P@VhJhX}Ez&X$ZR`EL(P~1bx;g8J)h1XM0sK>RSyU9qvKQ?%RR;U5;{-wfwQS(%_a zyv}};q`y*fQdJ)>oO;O38q++|98kjSC_aJqdU_bs<1E_e>8*@8a5SG|h}bz+a~S zs3lws$%YE!R^r9}0U$fdZ_9b7%`e*Hc{i`w>U&DcLHu@0b(qbw?ItsnkJ?!!hC@wj zw!>pU1uT451$_)S(AZXCxb-`gqFvR*zZH&sL-4ZdE$c^RiX=Bh&)+o%>u!o1s&Z~Q zPs*l{*@iko1M6R=za>1zgghWeiCy=u-bt#P6Do#!{O*3}(f?L^cnyC8(=2uEa{ep+ z%^Ddrcz71~+4>LAS*v&BO~^t@Q+T&~IH`DU9%_86^?p7G;Z7K`WM0iBV1~jN)UW6U z9mo!Jppv8!Q##UIbx917&%n>a$(?Sr#2+RYvna}-EP}!+N(*GAU(O3p1^2aB_s(j(6$pgmP=E$f3_DbsZ-;nygmdrGOnXLv1DQ{9i!BAP~ctc`?r^ z*z2}5A0QDr_lt%l0KGu{yU~4TZ1u<4ZcrU;Yu__Ku)e{bUxPTm#oeaT=|OvhEO+wV z0%;vX54$(vA8zNoFz3-zP4RclK5G!Zb*#Mm7>wc5I9F{$9Z&X*^YRViboaWJ(t7{W zp5#TXcgAUre_N~R%^d8*n@P({=))5EcZ>@Em6TK^&(bggw|pMUz-n&ggMADA9xMuU zsn#CjS!XKFxm=+O2l=y}?bt zF}mESu_+2BplXu)aif&9btbRV);xksmAv=Ub%mqIZ6hqGdMB68cCee;$k9=vtUcM) z{El-yEwN^0qiW)w;rn9R%haKx6fXH@&pt)PO$%|L%Z}l^OCmwe3d+>(__wKviKKY6 z!?BsPBH!F8DJ_jS{?AcCtv~j)Slzsj4QZv zE2zy1%`1@%|MRBicAMCvwK9&)g}k)-XCsjeEloH|%x`jPh3GiWS z>(lpBuP#iI)`RM2o6g$GToD_)Mmp!i))eC|F?F|HqMvuBNWb+@rdQ!o{OkhTNX>4c z&r#%=#S5)INnobz$O3=6hCMQxPeHG;w^XMw?X|3-S}&DtURRyjvV6tLfza31bYEZU zEwQIh8cf(H^{&H1j`~k11js&E#D9C9oEa3PXrEx0DI-%lk=8I-r*yaX-L<~SCotai zMinp1V`9vrcq+M;qwCz&?;k)=e;RUpyk2)l8vJzVDb7j*r|cpK1m={7aF)kq{D$qoKneZf)yla@vQ69`I>}eVR;+dM zoU6;W!N+p$_&8~Ly(B(Yn*k~tc^gE37rzbk+*}}H(lFoVgl8sh%_@hd` zIjJwyOgY~ye8-JfX>j4Te7O?G7`oQ8#4!uohiebvaA16k_}Lm8T+MC}q@Pz>Rg#hM zPU)itW1K9_;pcewc%x0PSUqzxh`aC}xwYGqHUgg;GzGx&q!N`C(gz%?AWCFU|fKY!I@8B))vR`u>|Y(g;mhvxwqb+4(2FFo-QNnOtl z@44FW!*9tQd$TT320ypQH2AHa*BdQM1V>JyV@J-aM=Dp4}BAD}R@=vxs zvHcYG_

;2uha-R8zi^Y86MT$ZZ#~4^YYFPBz`< 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 literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/SplitAndMergeCell1.jpg b/doc/tutorial/images/SplitAndMergeCell1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88a27c102f6f16674f3cf74efa914a811fba52b8 GIT binary patch literal 48207 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 fWNN{u&q(oW-zAU{7DB>3^T|yv8a`XB> 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


c0mNdduM|j2pNht^xSb)0a)p-^ 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 literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/blade.jpg b/doc/tutorial/images/blade.jpg new file mode 100644 index 0000000000000000000000000000000000000000..72791e523d46ecf0dbd9e8e0845fc5872fa16242 GIT binary patch literal 29769 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�cT{6*?Ewux3ZtP@6DN}J+<7!80f%a! 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 ZVd%}bPeQX(`M^#9&s4OOOBKyS{|AghnFjy> literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/skinonly_numpy.png b/doc/tutorial/images/skinonly_numpy.png new file mode 100644 index 0000000000000000000000000000000000000000..1b16286a639ce0327de340fe1b9cf3fbb863ad6d GIT binary patch literal 24403 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 Definition of the mesh support + # => Definition of field name + # => Definition of field nature + field = MEDCouplingFieldDouble.New(ON_CELLS) + field.setMesh(mesh) + field.setName("field") + field.setNature(Integral) + + # Computing and setting field values + myCoords=DataArrayDouble.New() + sampleTab=[] + bar = mesh.getBarycenterAndOwner() + print bar.getNbOfElems() + for i in range(nbOfCells): + x = bar.getIJ(...) + y = bar.getIJ(...) + z = bar.getIJ(...) + d = sqrt(x*x+y*y+z*z) + sinus = sin(d) + . sampleTab.append(sinus) + + myCoords.setValues(sampleTab,nbOfCells,1) + field.setArray(myCoords) + + +Saving the mesh in a med file +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +General Case +```````````` +:: + + medFileName = "MEDCoupling_Extrudedcube3D.med" + MEDLoader.WriteUMesh(medFileName,meshU,True) + +.. note:: True / False in Write* functions : True for overwriting existing file and False for adding in existing file + +Multi mesh Case +```````````````` + +In spite of a MEDCoupling mesh has only one dimension, it's possible to genrate a file with multi dimension. +Therefore, you need to create as meshes as necessary dimensions. + +You have to give the connectivity of the faces on the bottom face of the 3D cube: the list of the nodes which belong to the face. +The connectivity must respect following figure: + +.. image:: images/face.jpg + +:: + + # Extraction of surfacic meshing + pt=[0.,0.,0.] + vec=[0.,0.,1.] + nodes = mesh.findNodesOnPlane(pt,vec,1e-12) + mesh2D = mesh.buildFacePartOfMySelfNode(nodes,True) + #print mesh2D + mesh2D.setName("3Dcube") + mesh2D.checkCoherency() + + medFileName = "MEDCoupling_cube3D.med" + meshes=[mesh2D,mesh] + MEDLoader.WriteUMeshes(medFileName,meshes,True) + +Group Case +```````````` +:: + + medFileName = "MEDCoupling_Gridcube3D.med" + fmeshU.write(medFileName,2) + +Saving the fields in the med file +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + MEDLoader.WriteField(medFileName,field,False) + +Visualize the mesh with the SMESH module of Salome +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Launch Salome platform, then select SMESH module and import your MED file. First You can see the number of elements of your mesh. For that, select your mesh in the object browser, set select Mesh menu and "Advanced Mesh Info" option. Verify the number of faces and the number of hexahedrons. To visualize your mesh: click right bottom on your mesh and select "Show" option. You can also visualize your groups. Select one group, click right bottom on your group and select "Show only" option. + +Visualize the fields with the VISU module of Salome +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Launch Salome platform, then select VISU module and import your MED file. You can see in the object browser the 2 fields you have created. Then you have to create a scalar map on each field to visualize them. + +.. image:: images/Field_Cube3D.jpg + +Solution +~~~~~~~~ + +:ref:`python_testMEDCouplingcube_solution` diff --git a/doc/tutorial/medcoupling_Read.rst b/doc/tutorial/medcoupling_Read.rst new file mode 100644 index 000000000..d954bfdab --- /dev/null +++ b/doc/tutorial/medcoupling_Read.rst @@ -0,0 +1,88 @@ + +Reading a med file +------------------- + +Objective +~~~~~~~~~ + +The MEDLoader class also allows to read a med file. + +We will use the case of the 3D cube in order to retrieve all meshes and fields along with value on one node. + +Beginning of implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To implement this exercice we use the python language script and import the MEDCoupling and MEDLoader parts of the MED module. We need also mathematical functions, so we import the python math module:: + + from MEDCoupling import * + from MEDLoader import * + from math import * + + +Then define some variables:: + + medFileName = "MEDCoupling_cube3D.med" + MeshName = "3Dcube" + FieldName = "field" + Field2DName = "fieldBottomFace" + +Retrieving 3D mesh and associated field +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You need to use MEDLoader API in order to read med file. Read functions need to give the real dimension of the mesh to max. +This information is given by a number : 0,-1 or -2. + + * 0 means the high dimension of the mesh + * -1 means the second high dimension of the mesh + +and the iteration and order of the field. In our case, since there is no iteration, it's -1 for these 2 arguments:: + + mesh3D = MEDLoader.ReadUMeshFromFile(medFileName,MeshName,0) + f = MEDLoader.ReadFieldCell(medFileName,mesh3D.getName(),0,FieldName,-1,-1) + + +Retrieving 2D mesh and associated field +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Do the same thing for the 2D mesh and the associated field:: + + mesh2D = MEDLoader.ReadUMeshFromFile(...) + f2 = MEDLoader.ReadFieldCell(...) + +Retrieving mesh coords +~~~~~~~~~~~~~~~~~~~~~~ + +:: + + # Retrieving Coords Mesh + Coords3D = mesh3D.getCoords() + Values = Coords3D.getValuesAsTuple() + +Retrieving field values +~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + # Retrieving field value on 0 tuple + pos= Values[...] + res=f.getValueOn(pos) + + # Verify if value is OK + bar = mesh3D.getBarycenterAndOwner() + x=bar.getIJ(...) + y=bar.getIJ(...) + z=bar.getIJ(...) + + from math import * + d = sqrt(x*x+y*y+z*z) + sinus = sin(d) + + if abs(res[0]-sinus)<1.e-5: + print "OK" + else: + print "KO" + +Solution +~~~~~~~~ + +:ref:`python_testMEDCouplingRead_solution` diff --git a/doc/tutorial/medcoupling_dataarray1_en.rst b/doc/tutorial/medcoupling_dataarray1_en.rst new file mode 100644 index 000000000..841627062 --- /dev/null +++ b/doc/tutorial/medcoupling_dataarray1_en.rst @@ -0,0 +1,260 @@ + +Manipulate DataArray objects +---------------------------- + +DataArrays (DataArrayInt and DataArrayDouble) are used in MEDCoupling to store contiguous arrays in memory. Each array entry is a tuple of data. +They form the base of many data processing performed by MEDCoupling. It is thus useful to be able to manipulate them with ease. + +DataArrayDouble are often used to manipulate fields in an optimized fashion, as will be shown later on. + +Objective +~~~~~~~~~ + +In this exercise the aim is to create a set of 2D Cartesian coordinates. The first component will be called X (with unit "m") and the second Y (same unit). The coordinates represent 7 regular hexagons (all inscribed in a 3cm radius circle). +The 7 hexagons are built from a centered reference hexagon (3.4; 4.4). + +Around this reference, 6 translated copies are created and each copy shares exactly one edge with the reference. +The common nodes (tuples) are then merged. This shows how to use indirections, concept widely used in unstructured meshes. + +.. image:: images/DataArrayDouble_1.jpg + +Concepts at hand: + +* Create an instance of DataArrayDouble +* Display a DataArrayDouble instance and invoke the getValue() method to convert it to a list +* Use convenient notations da[...] +* Learn about renumbering (old2new convention) +* Invoke services from findCommonTuples + +Starting the implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To start with, import the whole python module MEDCoupling and the standard math module. :: + + from MEDCoupling import * + import math + +This makes the following available: + +* all MEDCoupling classes +* all enum (ON_CELLS, ON_NODES, ONE_TIME...) +* all static methods + +Create a DataArrayDouble instance containing 6 tuples +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The target here is to create one DataArrayDouble containing the complete set of coordinates for one regular hexagon. :: + + d=DataArrayDouble(6,2) + +Which is equivalent to :: + + d=DataArrayDouble() + d.alloc(6,2) + +or to :: + + d=DataArrayDouble(12) + d.rearrange(2) + +.. note:: d contains 12 values grouped in 6 tuples containing each 2 components. + The values in d are still un-initialized. + +Initialize an instance of DataArrayDouble +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Assign the value 3.0 (radius) to the first component of all tuples. :: + + d[:,0]=3. + +Initialize the 2nd component of each tuple i with the index value i. :: + + d[:,1]=range(6) + +Multiply the 2nd component by pi/3. :: + + d[:,1]*=math.pi/3. + +.. note:: d now contains the polar coordinates of our regular hexagon centered at 0,0. + +Convert from polar to Cartesian by invoking fromPolarToCart(), and assign the result to d. :: + + d=d.fromPolarToCart() + +.. note:: fromPolarToCart() generates a new instance and d now points to it. + +Assign the correct component information of d.:: + + d.setInfoOnComponents(["X [m]","Y [m]"]) + +Display the values only in form of a Python list. :: + + print d.getValues() + +Display d. :: + + print d + +Verify that for each tuple of d its norm (returned by the magnitude() method) is indeed 3 (with an error less than 1.e-12): +:: + + print d.magnitude().isUniform(3.,1e-12) + + +Duplication and aggregation of DataArrayDouble +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +translationToPerform contains a list of vectors of size 2. This list has length 7 (7 hexagons) Cette liste de taille 7 (7 hexagones) and describes the appropriate translation for each copy of d. + +Execute directly the following lines :: + + radius=3. + translationToPerform=[[0.,0.],[3./2.*radius,-radius*math.sqrt(3.)/2],[3./2.*radius,radius*math.sqrt(3.)/2],[0.,radius*math.sqrt(3.)],[-3./2.*radius,radius*math.sqrt(3.)/2],[-3./2.*radius,-radius*math.sqrt(3.)/2],[0.,-radius*math.sqrt(3.)]] + + +Create the len(translationToPerform) copies of d and apply the corresponding translation. :: + + ds=len(translationToPerform)*[None] + for pos,t in enumerate(translationToPerform): + ds[pos]=d[:] + ds[pos]+=t + pass + +An alternative (and more compact) way to do it : :: + + ds=[d.deepCpy() for i in xrange(len(translationToPerform))] + for (elt,t) in zip(ds,translationToPerform) : elt+=t + +Aggregating DataArrayDouble +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +From the list of DataArrayDouble instances 'ds', construct the aggregation 'd2' (a new instance of DataArrayDouble). +:: + + d2=DataArrayDouble.Aggregate(ds) + +.. note:: d2 now contains the full tuple set (6*7=42 tuples of 2 components each) which was in ds with the same order. This might sound obvious but the aggregation of meshes and fields is based on the exact same principle thus facilitating data access and indexing. This is a key difference to the MED file model, as will be seen later on. + +Find identical tuples in d2 +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +d2 contains 42 tuples but some of them are duplicated. To identify those (with a 1e-12 precision) invoke DataArrayDouble.findCommonTuples(). +Use help(DataArrayDouble.findCommonTuples) to show the prototype of the method and store the result in c and cI:: + + oldNbOfTuples=d2.getNumberOfTuples() + c,cI=d2.findCommonTuples(1e-12) + +c is an array containing all the common nodes grouped sequentially. cI contains the pointers to c allowing to identify all the nodes in a group 'i' (with 'i' in [0, 12) ). Thus the tuple ids of group 'i' start at index cI[i] in the list c, and finish at index cI[i+1]. + +.. note:: DataArrayDouble.findCommonTuples() thus returns 2 values: an array containing a list of common tuples, and an index array which is used to navigate in the first list. This is a very classical return signature in MEDCoupling and often appears when manipulating unstructured meshes. + +Manipulate DataArrayInt couple representing a pair (Data,IndexData) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The number of common tuples is len(cI)-1, i.e. 12 in our case. +Get the list of tuple ids forming the first group of common nodes and store the result in tmp. :: + + tmp=c[cI[0]:cI[0+1]] + print tmp + +Check the result: all the tuples stored in tmp point to identical coordinates in d2.:: + + print d2[tmp] + +.. note:: we see the tuple (3.,0.) repeated 3 times (with an error margin below 1e-12). + +Now we will deduce from the 3 variables oldNbOfTuples, c and cI the number of truly different tuples in d2. +To this end we compute the number of repetitions in d2 and we subtract this from oldNbOfTuples. + +To get the repetition count invoke the method DataArrayInt.deltaShiftIndex(). It returns the size of each group. +Store the result in a. :: + + a=cI.deltaShiftIndex() + +The number of repetitions in d2 for each group can now be stored in b. :: + + b=a-1 + +Finally the new count of tuples can be computed as follows. :: + + myNewNbOfTuples=oldNbOfTuples-sum(b.getValues()) + +Build old to new array from c and cI +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +c and cI define a surjective function from a starting set X containing 42 tuples (oldNbOfTuples) to a set Y containing 24 tuples (myNewNbOfTuples). + +.. image:: images/SurjectionDataArray.png + +This surjective function may also be represented thanks to an "old-2-new" array. +This storage method takes the form of a DataArrayInt 'o2n' made of Card(X) tuples (in our case 42) with one component each. For each tuple (element) indexed by i in o2n, o2n[i] contains the new tuple id in Y. + +The format 'old-2-new' is systematically used for all renumbering operations (one-to-one correspondence). + +The static method DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2() performs the conversion from one storage mode to the other (c, cI to o2n). +We get for free the number of elements in Y, i.e. the variable newNbOfTuples. :: + + o2n,newNbOfTuples=DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2(oldNbOfTuples,c,cI) + print "Have I got the right result? %s"%(str(myNewNbOfTuples==newNbOfTuples)) + +Using o2n and newNbOfTuples invoke DataArrayDouble.renumberAndReduce() on d2. :: + + d3=d2.renumberAndReduce(o2n,newNbOfTuples) + +This method has one drawback: we don't know for each group of common tuples in d2 what id was finally retained. +For example: in the group 0 we know that tuples 0, 8 and 16 are identical (tmp.getValues()), but we don't know which of the three has been retained in d3. + +To make this choice explicit we use the new-2-old format. This storage mode is represented by a DataArrayInt n2o containing Card(Y) tuples (in our case 24) with one component each. +For each tuple (element) with id 'i' in n2o, n2o[i] contains the tuple id which was chosen in X. + +The method DataArrayInt.invertArrayO2N2N2O() allows to switch between the two representations. +Try it on the variable o2n. :: + + n2o=o2n.invertArrayO2N2N2O(newNbOfTuples) + +Using n2o we can deduce d3_bis from d2. :: + + d3_bis=d2[n2o] + print "Have I got the right result (2)? %s"%(str(d3.isEqual(d3_bis,1e-12))) + +Translate all tuples at once +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All tuples (or nodes) are to be translated by the vector [3.3,4.4]. :: + + d3+=[3.3,4.4] + +Build an unstructured mesh using d3 (coordinates) and o2n +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Create an unstructured mesh m with coordinates d3. m has a mesh dimension of 2 :: + + m=MEDCouplingUMesh("My7hexagons",2) + m.setCoords(d3) + +Now allocate the number of cells with an upper bound of the actual number of cells. :: + + m.allocateCells(7) + +Finally thanks to o2n we know the connectivity of all 7 hexagons using the coordinates stored in d3. + +Do not forget to invoke MEDCouplingUMesh.finishInsertingCells() (this last bit should disappear after the release 6.6) :: + + for i in xrange(7): + m.insertNextCell(NORM_POLYGON,o2n[6*i:6*(i+1)].getValues()) + pass + m.finishInsertingCells() + +Check that m is coherent. :: + + m.checkCoherency() + +To visually check m, write it in a VTU file ("My7hexagons.vtu") and display it in ParaVis. :: + + m.writeVTK("My7hexagons.vtu") + +.. note:: We write the data in VTU file, not in a MED file, because MEDCoupling doesn't use the MED file pre-requisite. Also note that although we output VTK data, MEDCoupling in itself doesn't depend on the VTK libraries. + +Solution +~~~~~~~~ + +:ref:`python_testMEDCouplingdataarray1_solution` diff --git a/doc/tutorial/medcoupling_dataarray1_fr.rst b/doc/tutorial/medcoupling_dataarray1_fr.rst new file mode 100644 index 000000000..ccd3cec34 --- /dev/null +++ b/doc/tutorial/medcoupling_dataarray1_fr.rst @@ -0,0 +1,335 @@ + +Manipuler les DataArray +----------------------- + +Les DataArrays (``DataArrayInt`` et ``DataArrayDouble``) sont utilisés dans MEDCoupling pour stocker des valeurs sous +forme de tableaux contigus en mémoire. Les valeurs sont groupées par tuples, et chaque tuple a le même nombre de composantes. +Ils sont à la base de beaucoup de traitements réalisés dans MEDCoupling. Il est ainsi important de bien savoir les manipuler. + +Les ``DataArrayDouble`` sont souvent utilisés pour la manipulation directe des valeurs d'un champ comme on le verra plus tard. +Les ``DataArrayInt`` eux sont utilisés pour toutes les fonctionnalités travaillant avec des identifiants de +cellules et/ou de points. + +Le but de l'exercice +~~~~~~~~~~~~~~~~~~~~ + +Le but ici est de créer les coordonnées de 7 hexagones réguliers (tous inscrits dans des cercles de rayon 3m) en dimension 2. +La première composante du tableau de coordonnées s'appelera X avec l'unité "m" (mètre) et la 2ème composante s'appelera "Y" avec la même unité. + +On pourrait directement calculer les coordonnées de l'ensemble des points requis avec un peu de trigonométrie, mais afin de travailler un peu avec l'API, on fait le choix de construire les 7 hexagones à partir d'un seul hexagone régulier centré en [3.4; 4.4]. +Autour de cet hexagone régulier central, on crée 6 copies translatées et chaque copie partagera exactement un bord (edge) avec le motif initial. Ensuite on fusionne les noeuds (tuples) communs. Ceci nous permettra de manipuler les indirections et les méthodes d'indexing très usitées dans les maillages non structurés. + +.. image:: images/DataArrayDouble_1.jpg + :scale: 50 + +Les points traités ici : + +* Créer une instance de ``DataArrayDouble`` +* Afficher une instance de ``DataArrayDouble`` et invoquer la méthode ``getValue()`` pour la convertir en liste +* Utiliser les notations pratiques ``da[:,:]`` ... +* Apprendre la renumérotation (convention "old-2-new") +* Invoquer des services tels que ``findCommonTuples()`` + +Début de l'implémentation +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Pour commencer l'exercice importer le module Python ``MEDCoupling`` et l'aliaser avec ``mc`` (ca nous évitera des noms trop longs). Importer aussi le module ``math``. :: + + import MEDCoupling as mc + import math + +On rappelle que toutes les méthodes statiques du module commencent par une majuscule. +Avec ces imports sont disponibles : + +* toutes les classes de MEDCoupling +* tous les énumérations (par exemple, les types de cellules standard: ``mc.ON_CELLS``, ``mc.ON_NODES``, ``mc.ONE_TIME``...) +* toutes les méthodes statiques + +Créer une instance de DataArrayDouble contenant 6 tuples +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Le but ici est de créer un ``DataArrayDouble`` contenant les coordonnées d'un seul hexagone régulier. :: + + d = mc.DataArrayDouble(6,2) + +Ceci est équivalent à :: + + d = mc.DataArrayDouble() + d.alloc(6,2) + +Ceci est aussi équivalent à :: + + d = mc.DataArrayDouble(12) + d.rearrange(2) + +Notons enfin que l'on peut aussi directement construire un ``DataArray`` à partir d'une liste Python. Par défaut le tableau +n'a qu'une seule composante. :: + + d_example = mc.DataArrayDouble([0.0,1.0,2.5]) + print d_example + +.. note:: Le tableau ``d`` contient maintenant 12 valeurs groupées en 6 tuples contenant chacun 2 composantes. + Les valeurs dans ``d`` ne sont pas encore assignées. + +Initialiser une instance de DataArrayDouble +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Assigner la valeur 3.0 (le rayon) à la première composante de chacun des tuples. La syntaxe ressemble fortement +à celle de NumPy. On peut par exemple assigner d'un coup les tuples 1 à 3 (inclus), sur la première composante avec la valeur +3.0 :: + + d[1:4,0] = 3. + +ou directement l'intégralité de la première composante :: + + d[:,0] = 3. + +Initialiser la 2ème composante de chaque tuple i avec la valeur i. :: + + d[:,1] = range(6) + +Multiplier la seconde composante de chacun des tuples par pi/3. :: + + d[:,1] *= math.pi/3. + +.. note:: ``d`` contient désormais les coordonnées polaires des noeuds de notre hexagone régulier centré en 0,0 pour le moment. + +Convertir ``d`` de polaire à cartésien en invoquant la méthode ``fromPolarToCart()`` et re-mettre le résultat dans ``d``. :: + + d = d.fromPolarToCart() + +.. note:: ``fromPolarToCart()`` génère une nouvelle instance, nous avons donc perdu le ``d`` initial + +Assigner les informations textuelles correctes sur les 2 composantes de ``d`` : :: + + d.setInfoOnComponents(["X [m]","Y [m]"]) + +.. note:: Cela n'est pas indispensable pour cet exercise, mais d'autres fonctions plus avancées nécessitent cette information. + +Afficher ``d`` tel quel. :: + + print d + + +Afficher juste les valeurs sous forme d'une liste python. :: + + print d.getValues() + + +Vérifier que pour chaque tuple désormais dans ``d``, sa norme (méthode ``magnitude()``) est bien égale à 3.0, à 1.e-12 près (méthode ``isUniform()``) :: + + print "Uniform array?", d.magnitude().isUniform(3.,1e-12) + + +Duplication et agrégation +~~~~~~~~~~~~~~~~~~~~~~~~~ + +On construit maintenant la liste ``translationToPerform``, qui contient une liste de vecteurs chacun de taille 2. Cette liste de taille 7 (7 hexagones) contient la translation à opérer pour produire chacun des hexagones. + +Faites nous confiance sur la trigonométrie, vous pouvez copier directement les deux lignes suivantes :: + + radius = 3. + translationToPerform = [[0.,0.],[3./2.*radius,-radius*math.sqrt(3.)/2],[3./2.*radius,radius*math.sqrt(3.)/2],[0.,radius*math.sqrt(3.)],[-3./2.*radius,radius*math.sqrt(3.)/2],[-3./2.*radius,-radius*math.sqrt(3.)/2],[0.,-radius*math.sqrt(3.)]] + + +Créer les 7 copies de ``d`` et opérer la "translation" correspondante. :: + + ds = len(translationToPerform)*[None] + for pos,t in enumerate(translationToPerform): + ds[pos] = d[:] # Perform a deep copy of d and place it at position 'pos' in ds + ds[pos] += t # Adding a vector to a set of coordinates does a translation. t could have been a DataArrayDouble too. + pass + +.. note:: Le ``pass`` à la fin de la boucle ``for`` n'est pas indispensable mais aide certains éditeurs à indenter le code. + +Une autre façon de faire un peu plus compacte (pour les amoureux des *one-liner*) : :: + + ds = [d + translationToPerform[i] for i in xrange(len(translationToPerform))] + +Agrégation de tableaux +~~~~~~~~~~~~~~~~~~~~~~ + +A partir de la liste d'instances de DataArrayDouble ``ds`` construire le DataArrayDouble ``d2`` résultat de l'*agrégation* des instances les unes à la suite des autres. :: + + d2 = mc.DataArrayDouble.Aggregate(ds) + +``d2`` contient désormais l'ensemble des tuples (6*7 de 2 composantes chacun) des +instances contenues dans ``ds``, en respectant l'ordre dans ``ds``. Cela parait évident, mais +l'agrégation de maillages et de champs respecte exactement le même principe pour +faciliter l'accès et le repérage des données. C'est par exemple une différence essentielle avec le +modèle MED fichier comme on le verra plus tard. + +.. note:: La méthode similaire permettant d'agréger par composante (plutôt que par tuples) s'appelle ``Meld()``. + +Trouver les tuples égaux +~~~~~~~~~~~~~~~~~~~~~~~~ + +La variable ``d2`` contient 42 tuples mais certains tuples apparaissent plusieurs fois. +Pour trouver les tuples égaux à 1e-12 près (précision absolue) invoquer ``findCommonTuples()``. +Utiliser ``help(mc.DataArrayDouble.findCommonTuples)`` pour en connaitre l'interface. Stocker le retour de la fonction dans +``c`` et ``cI`` :: + + oldNbOfTuples = d2.getNumberOfTuples() + c,cI = d2.findCommonTuples(1e-12) + +On a ainsi récupéré dans ``c`` l'ensemble des m=12 groupes de noeuds communs accollés. ``cI`` contient les index pour repérer les identifiants de points dans ``c`` pour tout groupe +``i`` dans [0,12). Ainsi les identifiants de tuples du groupe ``i`` commencent à l'index ``cI[i]`` et finissent à l'index ``cI[i+1]``. + +La méthode ``findCommonTuples()`` retourne ainsi 2 paramètres: un tableau contenant la liste des tuples communs +et un tableau d'index qui permet de naviguer dans le premier tableau. +Il s'agit d'une forme de retour très classique dans MEDCoupling, appelée *indirect indexing*. Cela apparaît souvent dans la manipulation des +maillages non structurés. Cette représentation est rappelée sur l'image ci-dessous, où le premier tableau et en haut, +et le deuxième tableau permettant de la parcourir en bas: + +.. image:: images/IndirectIndex.jpg + :scale: 50 + + +.. note:: Le dernier élément de ``cI`` pointe en dehors du tableau ``c``. Ce dernier index est toujours présent + et permet de s'assurer que des traitements tels que les *slices* présentés juste après, sont toujours valables, + sans avoir besoin de particulariser le dernier groupe. + + +.. _indirect-index-exo: + +Manipuler le format "indirect index" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Le nombre de tuples communs à 1e-12 près est donc égal à ``len(cI)-1``, c'est-à-dire 12 dans notre cas. +Récupérer la liste des identifiants de tuples du groupe 0 et mettre le résultat dans la variable ``tmp``. +Afficher ``tmp``. :: + + tmp = c[cI[0]:cI[0+1]] + print tmp + +Vérifier, en l'affichant, que pour tous les identifiants de tuples dans ``tmp``, leurs tuples sont bien égaux dans ``d2``. :: + + print d2[tmp] + +.. note:: On voit que le tuple (3.,0.) à 1e-12 près est répété 3 fois et ``tmp`` donne les positions respectives de + ces 3 répétitions. + +Maintenant on va déduire des variables ``oldNbOfTuples``, ``c`` et ``cI`` le nombre de tuples effectivement différents dans d2. +Pour ce faire, nous allons trouver le nombre de tuples doublons dans ``d2`` et soustraire le résultat de ``oldNbOfTuples``. + +Pour connaître le nombre de doublons, invoquer ``DataArrayInt.deltaShiftIndex`` qui retourne pour chaque groupe sa taille. +Mettre le résultat dans ``a``. :: + + a = cI.deltaShiftIndex() + +Déduire de ``a`` le nombre de tuples doublons dans ``d2`` par groupe et mettre le résultat dans ``b``. :: + + b = a-1 + +Enfin on peut trouver le nouveau nombre de tuples grâce à ``b`` et à ``oldNbOfTuples``. Mettre le résultat dans ``myNewNbOfTuples``. :: + + myNewNbOfTuples = oldNbOfTuples - sum(b.getValues()) + +Construire un tableau "old-2-new" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Nous allons maintenant exploiter cette information pour extraire un seul +représentant dans chaque groupe de points dupliqués. + +Les deux tableaux ``c`` et ``cI`` définissent une surjection d'un espace de départ à 42 (``oldNbOfTuples``) tuples X +vers un espace à 24 (``myNewNbOfTuples``) tuples Y. + +.. image:: images/SurjectionDataArray.png + +L'autre manière de définir cette surjection (sans perte d'information) est de la représenter par un tableau "old-2-new". +Ce mode de stockage prend la forme d'un DataArrayInt ``o2n`` composé de Card(X) tuples (i.e. 42) à une composante. +Pour chaque tuple (élément) d'index ``i`` de ``o2n``, la case ``o2n[i]`` contient le nouvel identifiant de tuple dans Y. +On va donc d'un ancien identifiant (old) vers un nouveau (new). + +Nous allons construire ce tableau pour extraire un sous-ensemble des coordonnées de départ, et ne garder que les +tuples uniques (non doublons) dans l'ensemble de départ. + +.. note:: Pour toutes les opérations de renumérotation en MEDCoupling (bijection), + le format "old-2-new" est systématiquement utilisé. + +La méthode statique ``DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2()`` (nom un peu barbare, on vous l'accorde) +permet de passer du mode de stockage de cette surjection ``c``, ``cI`` au format ``o2n``. +On récupère au passage card(Y) c'est-à-dire le ``newNbOfTuples``. :: + + o2n, newNbOfTuples = mc.DataArrayInt.BuildOld2NewArrayFromSurjectiveFormat2(oldNbOfTuples,c,cI) + print "Have I got the right number of tuples?" + print "myNewNbOfTuples = %d, newNbOfTuples = %d" % (myNewNbOfTuples, newNbOfTuples) + assert(myNewNbOfTuples == newNbOfTuples) + +Nous pouvons maintenant constuire le tableau de points uniques ``d3``. A l'aide de ``o2n`` +et ``newNbOfTuples``, invoquer ``DataArrayDouble.renumberAndReduce()`` sur ``d2``. :: + + d3 = d2.renumberAndReduce(o2n, newNbOfTuples) + +L'inconvénient de cette méthode c'est que finalement on ne connait pas pour chaque groupe de tuple communs dans +d2 quel identifiant a été utilisé. +Par exemple pour le groupe 0 on sait que les tuples 0, 8 et 16 (tmp.getValues()) sont tous égaux, et on ne sait +pas si 0, 8 ou 16 a été utilisé pour remplir ``d3``. + +Si l'on souhaite expliciter ce choix, on peut passer en format "new-2-old". Ce mode de stockage prend la forme d'un +``DataArrayInt`` ``n2o`` composé de Card(Y) +tuples (24) à 1 composante. Pour chaque tuple (élément) d'index i de ``n2o``, la case ``n2o[i]`` contient l'index du tuple qui a été choisi dans X. + +Pour passer d'une description "old-2-new" vers "new-2-old", la méthode est ``DataArrayInt.invertArrayO2N2N2O()``. +Effectuer ce traitement sur la variable ``o2n``. :: + + n2o = o2n.invertArrayO2N2N2O(newNbOfTuples) + +A l'aide de ``n2o`` on peut construire un ``d3_bis`` à partir de ``d2``, et qui contient la même chose que le ``d3`` précédent. :: + + d3_bis = d2[n2o] + print "Are d3 and d3_bis equal ? %s" % (str(d3.isEqual(d3_bis, 1e-12))) + +Translater tous les tuples +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Tous les tuples (ou nodes) sont à translater du vecteur [3.3,4.4] afin de recentrer toute la figure en ce point. :: + + d3 += [3.3,4.4] + +Constuire un maillage non strucuturé +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +On chercher maintenant à créer le maillage final montré dans la figure. Nous avons déjà construit le tableau +de coordonnées, il nous reste les cellules à créer. + +Créer un maillage non structuré ``m`` avec les coordonnées ``d3``. Le maillage``m`` a une mesh-dimension 2 :: + + m = mc.MEDCouplingUMesh("My7hexagons",2) + m.setCoords(d3) + print "Mesh dimension is", m.getMeshDimension() + print "Spatial dimension is", m.getCoords().getNumberOfComponents() + +Maintenant, allouer le nombre de cellules avec (un majorant du) nombre attendu de cellules. :: + + m.allocateCells(7) + +Enfin grâce à ``o2n`` on a la *connectivité* (i.e. la liste des points formant un hexagone) +des 7 hexagones utilisant les coordonnées ``d3``. :: + + for i in xrange(7): + cell_connec = o2n[6*i:6*(i+1)] + m.insertNextCell(mc.NORM_POLYGON, cell_connec.getValues()) + pass + m.finishInsertingCells() + +.. note:: Après SALOME 6.6, l'appel à ``MEDCouplingUMesh.finishInsertingCells()`` n'est plus nécessaire. + +Vérifier que ``m`` est correct et ne contient pas d'anomalie. :: + + m.checkCoherency() + +.. note:: Il est toujours une bonne idée d'appeler cette méthode après la construction "from scratch" d'un maillage. + Cela assure qu'il n'y a pas de gros "couacs" dans la connectivité, etc ... + +Pour vérifier *visuellment* que ``m`` est correct, l'écrire dans un fichier "My7hexagons.vtu" et le visualiser dans ParaViS. :: + + m.writeVTK("My7hexagons.vtu") + +.. note:: On a écrit ici dans un fichier VTU et non MED, car MEDCoupling n'inclut pas par défaut les services de MED fichier. + Bien que l'on écrive au format VTK (\*.vtu), MEDCoupling ne dépend pas de VTK. + +Solution +~~~~~~~~ + +:ref:`python_testMEDCouplingdataarray1_solution` diff --git a/doc/tutorial/medcoupling_en.rst b/doc/tutorial/medcoupling_en.rst new file mode 100644 index 000000000..f46e42780 --- /dev/null +++ b/doc/tutorial/medcoupling_en.rst @@ -0,0 +1,19 @@ + + +Creating, Playing with DataArrays, Meshes and Fields with the MEDCoupling library +================================================================================== + +The objective of these exercises is to learn to manipulate MEDCoupling objects in Python. + + * the first exercise shows how to manipulate DataArrayDouble objects, + * the second shows how to manipulate MEDCouplingUMesh objects, + * and the third shows how to manipulate MEDCouplingFieldDouble objects. + + +.. toctree:: + :maxdepth: 2 + + medcoupling_dataarray1_en + medcoupling_umesh1_en + medcoupling_fielddouble1_en + diff --git a/doc/tutorial/medcoupling_fielddouble1_en.rst b/doc/tutorial/medcoupling_fielddouble1_en.rst new file mode 100644 index 000000000..7f3bca89c --- /dev/null +++ b/doc/tutorial/medcoupling_fielddouble1_en.rst @@ -0,0 +1,181 @@ + +Playing with fields +------------------- + +In MEDCoupling fields are directly supported by a mesh. That is a major difference +with the field notion in MED file. + +Fields instances are well suited: + * for high level services where an interaction with the mesh is requested as in getValueOn(), getValueOnMulti(), integral(), normL1(), normL2(), fillFromAnalytic(), changeUnderlyingMesh(), ... + * to precisely transmit information between components when coupling codes. + +For information, the MEDCouplingFieldDouble implementation is tiny since +it delegates most of its work to MEDCouplingMesh, DataArrayDouble, MEDCouplingSpatialDiscretization classes. +MEDCouplingFieldDouble insure the coherency in this model. +It is often possible and even advised to manipulate the array and mesh of a MEDCouplingFieldDouble directly. + +Objective +~~~~~~~~~ + +This exercise focuses on the relationship between a mesh and the values of a field. + +* Create a field +* Aggregate fields +* Build parts of a field +* Renumbering a field +* Compare two fields coming from 2 sources +* Evaluation of a field on a point set +* Explode a field + +Implementation start +~~~~~~~~~~~~~~~~~~~~ + +Import the MEDCoupling Python module. :: + + from MEDCoupling import * + +We are going to create a MEDCouplingUMesh from a 3D cartesian mesh. Each direction will contain 10 cells and 11 nodes. The generated MEDCouplingUMesh +will contain 1000 cells. :: + + xarr=DataArrayDouble.New(11,1) + xarr.iota(0.) + cmesh=MEDCouplingCMesh.New() + cmesh.setCoords(xarr,xarr,xarr) + mesh=cmesh.buildUnstructured() + +In order to put the focus on mixed types, cells with an even id will be converted to polyhedrons :: + + mesh.convertToPolyTypes(DataArrayInt.Range(0,mesh.getNumberOfCells(),2)) + +Creation of a field +~~~~~~~~~~~~~~~~~~~ + +Create a field called "MyField" by application of an analytic function "(x-5.)*(x-5.)+(y-5.)*(y-5.)+(z-5.)*(z-5.)". +Two possibilities : + +* Directly by calling fillFromAnalytic on a mesh :: + + f=mesh.fillFromAnalytic(ON_CELLS,1,"(x-5.)*(x-5.)+(y-5.)*(y-5.)+(z-5.)*(z-5.)") + f.setName("MyField") + +* Or by building a new instance :: + + f2=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME) + f2.setMesh(mesh) + f2.setName("MyField2") + f2.fillFromAnalytic(1,"(x-5.)*(x-5.)+(y-5.)*(y-5.)+(z-5.)*(z-5.)") + +Compare the two fields: +Compare f and f2 with a precision of 1e-12 on coordinates and 1e-12 on values. :: + + print "f and f2 are equal: %s"%(f.isEqualWithoutConsideringStr(f2,1e-12,1e-12)) + +Builing of a subpart of a field +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Store in ids1 the list of tuple ids whose value is within [0.0,5.0] (DataArrayDouble.getIdsInRange) . From ids1 build the sub-part fPart1 of the field "f". :: + + ids1=f.getArray().getIdsInRange(0.,5.) + fPart1=f.buildSubPart(ids1) + +.. image:: images/FieldDouble1_1.png + +Select the part "fPart2" of the field "f" whose values are in [50.,infinity). :: + + ids2=f.getArray().getIdsInRange(50.,1.e300) + fPart2=f.buildSubPart(ids2) + +Renumbering cells +~~~~~~~~~~~~~~~~~ + +The generated file "fPart1" is valid for MEDCoupling, but its cells are not sorted by geometric type: it is not valid from a MED file point of view. By using MEDCouplingUMesh.sortCellsInMEDFileFrmt and DataArrayDouble.renumberInPlace +renumber manually fPart1 starting from a deep copy of fPart1. :: + + fPart1Cpy=fPart1.deepCpy() + o2n=fPart1Cpy.getMesh().sortCellsInMEDFileFrmt() + fPart1Cpy.getArray().renumberInPlace(o2n) + +"fPart1Cpy" is now normalized to be stored in a MED file (we will tackle this later). +Check that fPart1Cpy and fPart1 are the same (discarding any permutation): :: + + fPart1Cpy.substractInPlaceDM(fPart1,12,1e-12) + fPart1Cpy.getArray().abs() + print "Fields are the same? %s"%(fPart1Cpy.getArray().accumulate()[0]<1e-12) + +.. note:: This is in fact a very special case of interpolation. Except that here + we assume that the supports of "fPart1" and "fPart1Cpy" are equal, discarding any + cell and/or node permutation. + +Aggregate Fields +~~~~~~~~~~~~~~~~ + +Aggregate fields "fPart1" and "fPart2". The result is stored in "fPart12". :: + + fPart12=MEDCouplingFieldDouble.MergeFields([fPart1,fPart2]) + +.. image:: images/FieldDouble1_2.png + +.. note:: Apologies for the name MEDCouplingFieldDouble.MergeFields instead of + AggregateFields. + +Evaluation of a MEDCouplingFieldDouble on given space points +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Evaluate the values of the computed field "fPart12" on the barycenters of its mesh. +Evaluate the field "f" on the same barycenters. The method used is MEDCouplingFieldDouble.getValueOnMulti(). :: + + bary=fPart12.getMesh().getBarycenterAndOwner() + arr1=fPart12.getValueOnMulti(bary) + arr2=f.getValueOnMulti(bary) + delta=arr1-arr2 + delta.abs() + print "Check OK: %s"%(delta.accumulate()[0]<1e-12) + +.. note:: In this context and for example for a field on cells, "evaluate" at a point means returning the value of the cell containing the point. +.. note:: This technique can be used to quickly assess the quality of an interpolation. + +Operations on a field +~~~~~~~~~~~~~~~~~~~~~ + +Compute the integral of the field "fPart12" and compute it a second time by using +DataArrayDouble.accumulate on the underlying DataArrayDouble of this "fPart12" (remember that the cell volumes are all 1.0). +To show the link with the underlying mesh, scale the underlying mesh (fPart12.getMesh()) by 1.2 and centered at [0.,0.,0.]. +Recompute the integral. +:: + + fPart12.integral(0,True) + fPart12.getArray().accumulate() + fPart12.getMesh().scale([0.,0.,0.],1.2) + abs(fPart12.integral(0,True)-fPart12.getArray().accumulate()[0]*1.2*1.2*1.2)<1e-8 + +Exploding a field +~~~~~~~~~~~~~~~~~ + +Starting from "mesh", create a vector field on cells "fVec" with 3 components representing the displacement between each cell's barycenter and the point [5.,5.,5.]. Use MEDCouplingMesh.fillFromAnalytic(). :: + + fVec=mesh.fillFromAnalytic(ON_CELLS,3,"(x-5.)*IVec+(y-5.)*JVec+(z-5.)*KVec") + +Create the reduction of "fVec" ("fVecPart1") on cell IDs "ids1" (previously obtained). :: + + fVecPart1=fVec.buildSubPart(ids1) + fVecPart1.setName("fVecPart1") + +Build the scalar field fPart1Exploded having the same values as "fPart1" but supported by an exploded mesh (in comparison to fPart1.getMesh()). +To explode the underlying mesh fPart1.getMesh(), use the vectorial displacement field "fVecPart1" in order to apply to each cell the proper translation. :: + + cells=fPart1.getMesh().getNumberOfCells()*[None] + for icell,vec in enumerate(fVecPart1.getArray()): + m=fPart1.getMesh()[[icell]] + m.zipCoords() # pas absolument nécessaire mais permet d'être économe en mémoire + m.translate(vec) + cells[icell]=m + pass + meshFVecPart1Exploded=MEDCouplingUMesh.MergeUMeshes(cells) + fPart1.setMesh(meshFVecPart1Exploded) + +.. image:: images/FieldDouble1_1_exploded.png + +Solution +~~~~~~~~ + +:ref:`python_testMEDCouplingfielddouble1_solution` diff --git a/doc/tutorial/medcoupling_fielddouble1_fr.rst b/doc/tutorial/medcoupling_fielddouble1_fr.rst new file mode 100644 index 000000000..d6bf354e1 --- /dev/null +++ b/doc/tutorial/medcoupling_fielddouble1_fr.rst @@ -0,0 +1,246 @@ + +Manipuler des champs de double +------------------------------ + +Les champs dans MEDCoupling ont comme support un unique maillage, de dimension fixée, et bien défini. +Cela semble trivial mais c'est en fait une différence majeure avec la notion de champ dans MED fichier, qui elle est beaucoup +plus permissive. + +Les champs sont utiles pour : + +* stocker des valeurs d'une grandeur physique relative au problème traité, mais aussi +* des services de haut niveau où l'interaction avec les maillages + est requise comme par exemple ``getValueOn()``, ``getValueOnMulti()``, ``integral()``, ``getMeasureField`` + ``normL1()``, ``normL2()``, ``fillFromAnalytic()``, ... qui calculent toutes des valeurs en lien avec le maillage + (par exemple le *volume* des cellules) +* expliciter précisément les informations échangées entre les différents codes + lors de couplage. + +Pour information, l'implémentation de ``MEDCouplingFieldDouble`` est relativement petite car cette classe +délègue la très large majorité de ses traitements à des instances de classes aggrégées +comme ``MEDCouplingMesh``, ``DataArrayDouble``, et ``MEDCouplingSpatialDiscretization``. +La classe ``MEDCouplingFieldDouble`` permet d'assurer la cohérence entre tous ces éléments. + + +Il est souvent possible et même parfois recommandé de manipuler les tableaux (un ``DataArrayDouble``) +et/ou le maillage d'une instance de ``MEDCouplingFieldDouble`` directement. + +Objectifs +~~~~~~~~~ + +Cet exercice met l'accent sur la relation entre le maillage et les valeurs d'un champ. + +* Créer un champ +* Agréger des champs +* Construire une sous-partie d'un champ +* Renuméroter les entités d'un champ +* Comparer 2 champs venant de 2 sources différentes +* Evaluation d'un champ sur un ensemble de points +* Exploser un champ + +Début de l'implementation +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Importer le module Python ``MEDCoupling``. :: + + import MEDCoupling as mc + +Créer un ``MEDCouplingUMesh`` à partir d'un maillage 3D cartésien. Chaque direction contiendra 10 cells +et 11 nodes. Le ``MEDCouplingUMesh`` résultant contiendra ainsi 1000 cells. :: + + xarr = mc.DataArrayDouble.New(11,1) + xarr.iota(0.) # Generate s, s+1, s+2, ... with a given start value s + cmesh = mc.MEDCouplingCMesh.New() + cmesh.setCoords(xarr,xarr,xarr) + mesh = cmesh.buildUnstructured() + +.. note:: La méthode ``MEDCouplingMesh.buildUnstructured()`` est très utile pour construire rapidement un maillage + non structuré afin de tester quelque chose. + +Afin de mettre en évidence le problème des types géométriques multiples, convertir en polyhèdres +les cellules d'identifiant pair :: + + mesh.convertToPolyTypes(mc.DataArrayInt.Range(0,mesh.getNumberOfCells(),2)) + + +Création d'un champ +~~~~~~~~~~~~~~~~~~~ + +Créer un champ scalaire (une seule composante) aux cellules (P0) appelé "MyField" en appliquant la fonction analytique +suivante ``(x-5.)*(x-5.)+(y-5.)*(y-5.)+(z-5.)*(z-5.)``, où ``(x, y, z)`` représente implicitement les coordonnées du barycentre +d'une cellule. +Pour cela, deux possiblités : + +* Directement en appelant ``fillFromAnalytic()`` sur un maillage :: + + f = mesh.fillFromAnalytic(mc.ON_CELLS,1,"(x-5.)*(x-5.)+(y-5.)*(y-5.)+(z-5.)*(z-5.)") # 1 means that the field should have one component + f.setName("MyField") + +* Ou en créant au préalable un champ non initialisé, et en appliquant ``fillFromAnalytic()`` sur cette + instance de ``MEDCouplingFieldDouble`` :: + + f2 = mc.MEDCouplingFieldDouble(mc.ON_CELLS, mc.ONE_TIME) + f2.setMesh(mesh) + f2.setName("MyField2") + f2.fillFromAnalytic(1,"(x-5.)*(x-5.)+(y-5.)*(y-5.)+(z-5.)*(z-5.)") # 1 means that the field should have one component + +Comparer les deux champs : comparer ``f`` et ``f2`` avec une précision de 1e-12 sur les coordonnées et +de 1e-13 sur les valeurs. :: + + print "Are f and f2 equal?", f.isEqualWithoutConsideringStr(f2,1e-12,1e-13) + + +.. note:: Le ``WithoutConsideringStr`` dans le nom de la méthode précédente indique que les noms des champs ne seront + pas comparés. On retrouve ce suffixe dans d'autres méthodes MEDCoupling. + + +Construire une sous-partie d'un champ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Récupérer dans une variable ``ids1`` la liste des identifiants de cellules pour lesquelles la valeur du champ est dans le +range [0.0,5.0]. Utiliser pour cela la méthode ``DataArrayDouble.getIdsInRange()``. Avec ce résultat, construire la +sous-partie ``fPart1`` du champ ``f``. :: + + da1 = f.getArray() # a DataArrayDouble, which is a direct reference (not a copy) of the field's values + ids1 = da1.getIdsInRange(0., 5.) + fPart1 = f.buildSubPart(ids1) + fPart1.writeVTK("ExoField_fPart1.vtu") + +.. image:: images/FieldDouble1_1.png + +Sélectionner la partie ``fPart2`` du champ ``f`` dont toutes les valeurs de tuples +sont dans ``[50.,+infinity)``. :: + + ids2 = f.getArray().getIdsInRange(50., 1.e300) + fPart2 = f.buildSubPart(ids2) + +Ce genre de technique permet d'extraire facilement les parties d'un champ relatives à un groupe de mailles par exemple. + +Renuméroter les entités d'un champ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +La partie ``fPart1`` générée est valide d'un point de vue de MEDCoupling. Mais elle +n'est pas valide d'un point de vue de MED *fichier*. +Une renumérotation s'impose dans l'hypothèse de stocker ce champs dans un fichier MED afin d'ordonner les cellules +par type géométrique. + +L'idée est d'utiliser les deux méthodes ``MEDCouplingUMesh.sortCellsInMEDFileFrmt()`` et +``DataArrayDouble.renumberInPlace()`` pour renuméroter manuellement une *copie* de ``fPart1``: :: + + fPart1Cpy = fPart1.deepCpy() + o2n = fPart1Cpy.getMesh().sortCellsInMEDFileFrmt() + fPart1Cpy.getArray().renumberInPlace(o2n) + +``fPart1Cpy`` est désormais normalisé pour être stocké dans un fichier MED (ce que nous verrons plus loin) + +Vérifier que ``fPart1Cpy`` et ``fPart1`` sont les mêmes à une permutation près (``MEDCouplingFieldDouble.substractInPlaceDM()``) :: + + fPart1Cpy.substractInPlaceDM(fPart1,12,1e-12) + fPart1Cpy.getArray().abs() + print "Equal field ? %s" % (fPart1Cpy.getArray().accumulate()[0]<1e-12) + +.. note:: La renumérotation effectuée ici représente en fait d'un cas très particulier + d'interpolation. Effectivement l'hypothèse est faite que les supports + de ``fPart1`` et ``fPart1Cpy`` sont égaux à une permutation de cellule + et/ou noeuds. + +Agréger des champs +~~~~~~~~~~~~~~~~~~ + +Agréger ``fPart1`` et ``fPart2`` (utiliser ``MEDCouplingFieldDouble.MergeFields()``). Et mettre le résultat de l'agrégation +dans ``fPart12``. :: + + fPart12 = mc.MEDCouplingFieldDouble.MergeFields([fPart1,fPart2]) + fPart12.writeVTK("ExoField_fPart12.vtu") + +.. note:: La méthode ``MEDCouplingFieldDouble.MergeFields()`` devrait vraiment se + nommer ``MEDCouplingFieldDouble.AggregateFields()`` ... + +.. image:: images/FieldDouble1_2.png + +Evaluation d'un champ en des points donnés de l'espace +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Evaluer la valeur du champ ``fPart12`` calculé précédemment sur les barycentres des cellules de son +maillage (variable ``bary``) et mettre le résultat dans ``arr1``. +Utiliser pour cela les méthodes ``MEDCouplingFieldDouble.getValueOnMulti()`` et ``MEDCouplingMesh.getBarycenterAndOwner()``. + +De manière similaire, évaluer ensuite directement le champ ``f`` en utilisant la même liste de points +que précédemment (``bary``) et mettre le résultat dans ``arr2``. + +Vérifier ensuite que ``arr1`` et ``arr2`` sont bien égaux: :: + + bary = fPart12.getMesh().getBarycenterAndOwner() + arr1 = fPart12.getValueOnMulti(bary) + arr2 = f.getValueOnMulti(bary) + delta = arr1-arr2 + delta.abs() + print "Is field evaluation matching?", (delta.accumulate()[0]<1e-12) + +.. note:: Dans ce contexte, et pour un champ aux cellules (P0) par exemple, "évaluer" en un point signifie retourner la valeur + de la cellule contenant le point donné. + Pour les champs aux noeuds (P1), les cellules doivent être de types simples (triangles, tétraèdres) et une interpolation + linéaire est alors utilisée. + +.. note:: Cette technique peut être utilisée pour juger rapidement de la qualité d'une interpolation. + +Opérations sur les champs +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Calculer l'intégrale du champ ``fPart12`` sur le maillage, et la retrouver d'une autre manière en utilisant +la méthode ``DataArrayDouble.accumulate()`` sur le tableau de valeurs de ce champ. +On rappelle que, vu le maillage simplifié en jeu, les cellules ont toutes un volume unité. :: + + integ1 = fPart12.integral(0,True) + integ1_bis = fPart12.getArray().accumulate()[0] + print "First integral matching ?", ( abs(integ1 - integ1_bis) < 1e-8 ) + +Ensuite appliquer une homotétie de facteur 1.2 centrée en [0.,0.,0.] sur le support de ``fPart12`` (c'est-à-dire son maillage). +Quelle est alors la nouvelle valeur de l'intégrale ? :: + + fPart12.getMesh().scale([0.,0.,0.], 1.2) + integ2 = fPart12.integral(0,True) + print "Second integral matching ?", ( abs(integ2-integ1_bis*1.2*1.2*1.2) < 1e-8 ) + +Exploser un champ - Vecteurs de déplacement +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Nous allons maintenant créer un nouveau maillage représentant l'*éclaté* du maillage initial. + +Partant du maillage ``mesh`` créer un champ vectoriel aux cellules ``fVec`` ayant 3 composantes représentant +le vecteur déplacement entre le point [5.,5.,5.] et le barycentre de chaque cellule du maillage. +Utiliser la méthode ``MEDCouplingMesh.fillFromAnalytic()`` : :: + + fVec = mesh.fillFromAnalytic(mc.ON_CELLS,3,"(x-5.)*IVec+(y-5.)*JVec+(z-5.)*KVec") + +.. note:: Les identifiants spéciaux ``IVec``, ``JVec`` et ``KVec`` représentent les vecteurs unitaires du repère. + +Créer ensuite une réduction de ``fVec`` (nommée ``fVecPart1``) sur les cellules ``ids1`` précédemment obtenues : :: + + fVecPart1 = fVec.buildSubPart(ids1) + fVecPart1.setName("fVecPart1") + +Construire le champ scalaire ``fPart1Exploded`` ayant les mêmes valeurs que ``fPart1`` mais reposant sur un maillage *eclaté* +par rapport à celui de ``fPart1.getMesh()``. Pour exploser ``fPart1.getMesh()`` utiliser le champ de déplacement vectoriel +``fVecPart1`` afin d'appliquer à chaque cellule la translation associée. :: + + cells = fPart1.getMesh().getNumberOfCells() * [None] + for icell,vec in enumerate(fVecPart1.getArray()): + m = fPart1.getMesh()[[icell]] + m.zipCoords() # Not mandatory but saves memory + m.translate(vec) + cells[icell] = m + pass + meshFVecPart1Exploded = mc.MEDCouplingUMesh.MergeUMeshes(cells) + fPart1.setMesh(meshFVecPart1Exploded) + fPart1.writeVTK("ExoField_fPart1_explo.vtu") + +Et voilà ce que vous devriez obtenir: + +.. image:: images/FieldDouble1_1_exploded.png + :scale: 120 + +Solution +~~~~~~~~ + +:ref:`python_testMEDCouplingfielddouble1_solution` diff --git a/doc/tutorial/medcoupling_fr.rst b/doc/tutorial/medcoupling_fr.rst new file mode 100644 index 000000000..6b2f89b83 --- /dev/null +++ b/doc/tutorial/medcoupling_fr.rst @@ -0,0 +1,19 @@ + + +MEDCoupling : créer et manipuler des DataArrays, des Meshes et des Fields +========================================================================= + +L'objectif de ces exercices est d'apprendre à manipuler les objets MEDCoupling en Python. + + * La première série d'exercices montre comment manipuler des tableaux ``DataArrayDouble`` et ``DataArrayInt``. + * La deuxième série d'exercices montre comment manipuler des maillages ``MEDCouplingUMesh``. + * La troisième série d'exercices montre comment manipuler des champs ``MEDCouplingFieldDouble``. + + +.. toctree:: + :maxdepth: 2 + + medcoupling_dataarray1_fr + medcoupling_umesh1_fr + medcoupling_fielddouble1_fr + diff --git a/doc/tutorial/medcoupling_umesh1_en.rst b/doc/tutorial/medcoupling_umesh1_en.rst new file mode 100644 index 000000000..ba42a5710 --- /dev/null +++ b/doc/tutorial/medcoupling_umesh1_en.rst @@ -0,0 +1,216 @@ + +Playing with unstructured mesh +------------------------------ + +Unstructured meshes are the most used mesh type. MEDCouplingUMesh is the name of the class representing unstuctured meshes in MEDCoupling. MEDCouplingUMesh inherits from the MEDCouplingPointSet class that deals with all methods handling coordinates only. +MEDCouplingUMesh adds two more attributes : +* nodal connectivity +* nodal connectivity index + +Objective +~~~~~~~~~ + +The aim here is to manipulate unstructured mesh instances to extract part of an unstructured mesh. +Several points will be covered in this exercise : + +* coordinates modification of an unstructured mesh +* extraction of a slice +* build a part of a mesh given cell ids +* playing with data, index arrays + +.. image:: images/UMesh1.png + +Implementation start +~~~~~~~~~~~~~~~~~~~~ + +Import the MEDCoupling Python module. :: + + from MEDCoupling import * + +We now build a mesh containing artificially two types of cell (NORM_HEXA8 and NORM_POLYHED) to highlight the possibility to work with non-homogeneous cell types. +mesh3D is an extruded mesh containing 18 cells composed into 3 levels along Z of 6 cells. +Copy paste the following lines. :: + + coords=[0.,0.,0., 1.,1.,0., 1.,1.25,0., 1.,0.,0., 1.,1.5,0., 2.,0.,0., 2.,1.,0., 1.,2.,0., 0.,2.,0., 3.,1.,0., + 3.,2.,0., 0.,1.,0., 1.,3.,0., 2.,2.,0., 2.,3.,0., + 0.,0.,1., 1.,1.,1., 1.,1.25,1., 1.,0.,1., 1.,1.5,1., 2.,0.,1., 2.,1.,1., 1.,2.,1., 0.,2.,1., 3.,1.,1., + 3.,2.,1., 0.,1.,1., 1.,3.,1., 2.,2.,1., 2.,3.,1., + 0.,0.,2., 1.,1.,2., 1.,1.25,2., 1.,0.,2., 1.,1.5,2., 2.,0.,2., 2.,1.,2., 1.,2.,2., 0.,2.,2., 3.,1.,2., + 3.,2.,2., 0.,1.,2., 1.,3.,2., 2.,2.,2., 2.,3.,2., + 0.,0.,3., 1.,1.,3., 1.,1.25,3., 1.,0.,3., 1.,1.5,3., 2.,0.,3., 2.,1.,3., 1.,2.,3., 0.,2.,3., 3.,1.,3., + 3.,2.,3., 0.,1.,3., 1.,3.,3., 2.,2.,3., 2.,3.,3.] + conn=[0,11,1,3,15,26,16,18, 1,2,4,7,13,6,-1,1,16,21,6,-1,6,21,28,13,-1,13,7,22,28,-1,7,4,19,22,-1,4,2,17,19,-1,2,1,16,17,-1,16,21,28,22,19,17, + 1,6,5,3,16,21,20,18, 13,10,9,6,28,25,24,21, 11,8,7,4,2,1,-1,11,26,16,1,-1,1,16,17,2,-1,2,17,19,4,-1,4,19,22,7,-1,7,8,23,22,-1,8,11,26,23,-1,26,16,17,19,22,23, + 7,12,14,13,22,27,29,28, 15,26,16,18,30,41,31,33, 16,17,19,22,28,21,-1,16,31,36,21,-1,21,36,43,28,-1,28,22,37,43,-1,22,19,34,37,-1,19,17,32,34,-1,17,16,31,32,-1,31,36,43,37,34,32, + 16,21,20,18,31,36,35,33, 28,25,24,21,43,40,39,36, 26,23,22,19,17,16,-1,26,41,31,16,-1,16,31,32,17,-1,17,32,34,19,-1,19,34,37,22,-1,22,23,38,37,-1,23,26,41,38,-1,41,31,32,34,37,38, + 22,27,29,28,37,42,44,43, 30,41,31,33,45,56,46,48, 31,32,34,37,43,36,-1,31,46,51,36,-1,36,51,58,43,-1,43,37,52,58,-1,37,34,49,52,-1,34,32,47,49,-1,32,31,46,47,-1,46,51,58,52,49,47, + 31,36,35,33,46,51,50,48, 43,40,39,36,58,55,54,51, 41,38,37,34,32,31,-1,41,56,46,31,-1,31,46,47,32,-1,32,47,49,34,-1,34,49,52,37,-1,37,38,53,52,-1,38,41,56,53,-1,56,46,47,49,52,53, + 37,42,44,43,52,57,59,58] + mesh3D=MEDCouplingUMesh.New("mesh3D",3); + mesh3D.allocateCells(18); + mesh3D.insertNextCell(NORM_HEXA8,conn[0:8]); mesh3D.insertNextCell(NORM_POLYHED,conn[8:51]); mesh3D.insertNextCell(NORM_HEXA8,conn[51:59]); mesh3D.insertNextCell(NORM_HEXA8,conn[59:67]); mesh3D.insertNextCell(NORM_POLYHED,conn[67:110]); mesh3D.insertNextCell(NORM_HEXA8,conn[110:118]); + mesh3D.insertNextCell(NORM_HEXA8,conn[118:126]); mesh3D.insertNextCell(NORM_POLYHED,conn[126:169]); mesh3D.insertNextCell(NORM_HEXA8,conn[169:177]); mesh3D.insertNextCell(NORM_HEXA8,conn[177:185]); mesh3D.insertNextCell(NORM_POLYHED,conn[185:228]); mesh3D.insertNextCell(NORM_HEXA8,conn[228:236]); + mesh3D.insertNextCell(NORM_HEXA8,conn[236:244]); mesh3D.insertNextCell(NORM_POLYHED,conn[244:287]); mesh3D.insertNextCell(NORM_HEXA8,conn[287:295]); mesh3D.insertNextCell(NORM_HEXA8,conn[295:303]); mesh3D.insertNextCell(NORM_POLYHED,conn[303:346]); mesh3D.insertNextCell(NORM_HEXA8,conn[346:354]); + mesh3D.finishInsertingCells(); + myCoords=DataArrayDouble.New(coords,60,3); + myCoords.setInfoOnComponents(["X [m]","Y [m]","Z [m]"]) + mesh3D.setCoords(myCoords); + mesh3D.orientCorrectlyPolyhedrons() + mesh3D.sortCellsInMEDFileFrmt() + mesh3D.checkCoherency() + renum=DataArrayInt.New(60) ; renum[:15]=range(15,30) ; renum[15:30]=range(15) ; renum[30:45]=range(45,60) ; renum[45:]=range(30,45) + mesh3D.renumberNodes(renum,60) + +Convert coordinate unit from meters to centimeters +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +It might seem stupid, but this comes up regularly when coupling... :: + + mesh3D.getCoords()[:]*=100. + mesh3D.getCoords().setInfoOnComponents(["X [cm]","Y [cm]","Z [cm]"]) + +.. note:: It is important to keep the DataArrayDouble instance up-to-date about the physical units to avoid ambiguity. The INTERP_KERNEL library includes a physical unit processor. + +Find the different Z levels in mesh3D and sort in increasing order +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +DataArrayDouble.getDifferentValues and DataArrayDouble.sort can help you! :: + + zLev=mesh3D.getCoords()[:,2] + zLev=zLev.getDifferentValues(1e-12) + zLev.sort() + +Extract the 6 cells of the second row along Oz +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +There are 3 possibilities to do that. We will see them from the simplest to the most complicated. + +* Using buildSlice3D: + +Simple method but a little costly. To do that simply define a plane having direction vector equal to [0.,0.,1.] and +going through point [0.,0.,(zLev[1]+zLev[2])/2]. This method retrieves 2 things : the slicemesh containing the result slicing mesh3D +and foreach 2D cell in slicemesh, the corresponding cell id into mesh3D. :: + + tmp,cellIdsSol1=mesh3D.buildSlice3D([0.,0.,(zLev[1]+zLev[2])/2],[0.,0.,1.],1e-12) + +* Using Barycenter of cells of mesh3D : + +Firstly, compute the barycenters of the 3D cells. Then select the 2nd component of the barycenter of the cells. +Finally select the tuple ids (corresponding to cell ids) falling in the range [zLev[1],zLev[2]]. :: + + bary=mesh3D.getBarycenterAndOwner() + baryZ=bary[:,2] + cellIdsSol2=baryZ.getIdsInRange(zLev[1],zLev[2]) + +* Using MEDCouplingExtrudedMesh : + +This is the safest method since it only uses the nodal connectivity to compute the extrusion. The coordinates are ignored. +Two things are needed to build a MEDCouplingExtrudedMesh. The 3D mesh you expect to be an extruded mesh, and a 2D mesh +lying on the same coordinates, from which the extrusion will be computed. +Let's begin with the build of the 2D mesh. We build it from all the nodes on a plane going through point [0.,0.,zLev[0]] and with normal vector [0.,0.,1.] (MEDCouplingUMesh.findNodesOnPlane()). +Then invoke MEDCouplingUMesh.buildFacePartOfMySelfNode to build mesh2D (read the documentation of buildFacePartOfMySelfNode()). :: + + nodeIds=mesh3D.findNodesOnPlane([0.,0.,zLev[0]],[0.,0.,1.],1e-10) + mesh2D=mesh3D.buildFacePartOfMySelfNode(nodeIds,True) + +Then it is possible to compute an extrusion from mesh3D and mesh2D. :: + + extMesh=MEDCouplingExtrudedMesh.New(mesh3D,mesh2D,0) + +Then simply request the 2nd row. :: + + cellIdsSol3=extMesh.getMesh3DIds()[mesh2D.getNumberOfCells():2*mesh2D.getNumberOfCells()] + +It is now possible to check that the 3 solutions are the same : :: + + for i in xrange(3): + exec("print cellIdsSol%s.getValues()"%(i+1)) + +Extract a sub-part of mesh3D +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Use the previously retrieved cell ids in cellIdsSol2 to compute a sub-part of mesh3D. :: + + mesh3DPart=mesh3D[cellIdsSol2] # equivalent to mesh3DPart=mesh3D.buildPartOfMySelf(cellIdsSol2,True) + +.. note:: The geometrical type doesn't play any role here. "mesh3DPart" now contains len(cellIdsSol2) cells. The cell #0 in "mesh3DPart" corresponds to the cell #cellIdsSol2[0] in "mesh3D" and so on ... "cellIdsSol2" can thus be seen as an array "new-to-old". + +At this point, "mesh3DPart" lies on the same coordinates, so mesh3DPart has 60 nodes whereas only 30 are necessary. To zip the orphan nodes in "mesh3DPart", simply invoke zipCoords(): :: + + mesh3DPart.zipCoords() + +At this point mesh3DPart only contains 30 nodes and 6 cells. To prepare to MED file I/O we have to check if mesh3DPart is ready to be written safely into a MED file (i.e. if the cells are indeed ordered by type). :: + + print mesh3DPart.checkConsecutiveCellTypesAndOrder([NORM_HEXA8,NORM_POLYHED]) + +Or: :: + + print mesh3DPart.checkConsecutiveCellTypes() + +You can also print the content of the mesh "mesh3Dpart": :: + + print mesh3DPart.advancedRepr() + +We see that mesh3DPart contains 6 cells, 4 HEXA8 then 2 POLYHED. Everything's OK: the cells are grouped by geometrical type. + +Extract the 3 cells in mesh3D whose barycenters are along the line (pt=[250.,150.,0.],v=[0.,0.,1.]) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +There are 2 solutions to do that. + +* using the barycenters of mesh3D again: same principle than above. :: + + baryXY=bary[:,[0,1]] + baryXY-=[250.,150.] + magn=baryXY.magnitude() + cellIds2Sol1=magn.getIdsInRange(0.,1e-12) + +* using extrusion extMesh: starting from the unique cell in mesh2D whose center is at [250.,150.,0.] MEDCouplingExtrudedMesh.getMesh3DIds retrieves the cell IDs sorted by slice. :: + + bary2=mesh2D.getBarycenterAndOwner()[:,[0,1]] + bary2-=[250.,150.] + magn=bary2.magnitude() + ids=magn.getIdsInRange(0.,1e-12) + idStart=int(ids) # ids is assumed to contain only one value, if not an exception is thrown + cellIds2Sol2=extMesh.getMesh3DIds()[range(idStart,mesh3D.getNumberOfCells(),mesh2D.getNumberOfCells())] + +Now, build the sub-part of mesh3D using cell IDs in cellIds2Sol1. :: + + mesh3DSlice2=mesh3D[cellIds2Sol1] + mesh3DSlice2.zipCoords() + +Duplicate "mesh3DSlice2" and translate it +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This part of the exercise shows how to perform copy and aggregation. This can be useful to build complex meshes, or to get in a single object several mesh parts coming from several processors. + +Perform a deep copy of mesh3DSlice2. On this copy perform a translation v=[0.,1000.,0.]. +Then aggregate mesh3DSlice2 with its translated copy, using MEDCouplingUMesh.MergeUMeshes. :: + + mesh3DSlice2bis=mesh3DSlice2.deepCpy() + mesh3DSlice2bis.translate([0.,1000.,0.]) + mesh3DSlice2All=MEDCouplingUMesh.MergeUMeshes([mesh3DSlice2,mesh3DSlice2bis]) + +.. note:: My apologies for the name of the method MEDCouplingUMesh.MergeUMeshes. In Salome 7 it will be called AggregateUMeshes. For information, to merge two (or more) unstructured meshes, one has to invoke MergeUMeshes(), then mergeNodes() on the result, and finally zipConnectivity(). + + +Descending connectivity +~~~~~~~~~~~~~~~~~~~~~~~ + +The aim here is to retrieve the internal faces of mesh3D. +To this purpose, we build the "descending" mesh from "mesh3D" ("mesh3Dsurf"), i.e. the mesh with mesh dimension (mesh3D.getMeshDimension()-1) made of the faces of each cell in "mesh3D". +The method MEDCoupling.buildDescendingConnectivity builds this mesh and also returns the correspondences "mesh3D" <-> "mesh3DSurf". + +A face from "mesh3DSurf" is said to be internal if and only if it is shared by more than one 3D cell in "mesh3D" (see reverse descending connectivity (out parameter 3 et 4)). :: + + mesh3DSurf,desc,descIndx,revDesc,revDescIndx=mesh3D.buildDescendingConnectivity() + numberOf3DCellSharing=revDescIndx.deltaShiftIndex() + cellIds=numberOf3DCellSharing.getIdsNotEqual(1) + mesh3DSurfInside=mesh3DSurf[cellIds] + mesh3DSurfInside.writeVTK("mesh3DSurfInside.vtu") + +.. image:: images/mesh3DSurfInside.jpg + +Solution +~~~~~~~~ + +:ref:`python_testMEDCouplingumesh1_solution` diff --git a/doc/tutorial/medcoupling_umesh1_fr.rst b/doc/tutorial/medcoupling_umesh1_fr.rst new file mode 100644 index 000000000..2e5fe1aea --- /dev/null +++ b/doc/tutorial/medcoupling_umesh1_fr.rst @@ -0,0 +1,291 @@ + +Manipuler les maillages non structurés +-------------------------------------- + +Les meshes non-structurées sont le type de maillage le plus utilisé. ``MEDCouplingUMesh`` est le nom de la classe en charge +de représenter ces maillages dans MEDCoupling. ``MEDCouplingUMesh`` hérite de la classe ``MEDCouplingPointSet``. +``MEDCouplingPointSet`` gère toutes les méthodes relatives au coordonnées. ``MEDCouplingUMesh`` a deux attributs en plus de +ceux de ``MEDCouplingPointSet`` permettant de décrire la liste des noeuds contribuants à une cellule (i.e. la *connectivité*). + +Objectifs +~~~~~~~~~ + +Le but ici est de manipuler des maillages non structurés (en extraire une partie, etc...). +Plusieurs points seront traités dans cet exercice : + +* modification des coordonnées d'un maillage +* extraction d'une coupe d'un maillage +* extraire une partie de maillage à partir d'identifiants de cellules +* manipuler les indices, etc ... +* manipulation de la connectivité descendante + +.. image:: images/UMesh1.png + :scale: 80 + +Début de l'implémentation +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Importer le module Python ``MEDCoupling``. :: + + import MEDCoupling as mc + +Construire un maillage. Ce maillage ``mesh3D`` contient artificiellement 2 types de cellules (``mc.NORM_HEXA8`` et ``mc.NORM_POLYHED``) +pour appréhender le mélange de types geometriques. +``mesh3D`` est un *maillage extrudé* contenant 18 cellules composées de 3 niveaux selon Z, chaque niveau ayant 6 cellules. +Faire un bon gros copier-coller des lignes suivantes pour construire la mesh (l'intérêt de l'exercise vient après) : :: + + coords=[0.,0.,0., 1.,1.,0., 1.,1.25,0., 1.,0.,0., 1.,1.5,0., 2.,0.,0., 2.,1.,0., 1.,2.,0., 0.,2.,0., 3.,1.,0., + 3.,2.,0., 0.,1.,0., 1.,3.,0., 2.,2.,0., 2.,3.,0., + 0.,0.,1., 1.,1.,1., 1.,1.25,1., 1.,0.,1., 1.,1.5,1., 2.,0.,1., 2.,1.,1., 1.,2.,1., 0.,2.,1., 3.,1.,1., + 3.,2.,1., 0.,1.,1., 1.,3.,1., 2.,2.,1., 2.,3.,1., + 0.,0.,2., 1.,1.,2., 1.,1.25,2., 1.,0.,2., 1.,1.5,2., 2.,0.,2., 2.,1.,2., 1.,2.,2., 0.,2.,2., 3.,1.,2., + 3.,2.,2., 0.,1.,2., 1.,3.,2., 2.,2.,2., 2.,3.,2., + 0.,0.,3., 1.,1.,3., 1.,1.25,3., 1.,0.,3., 1.,1.5,3., 2.,0.,3., 2.,1.,3., 1.,2.,3., 0.,2.,3., 3.,1.,3., + 3.,2.,3., 0.,1.,3., 1.,3.,3., 2.,2.,3., 2.,3.,3.] + conn=[0,11,1,3,15,26,16,18, 1,2,4,7,13,6,-1,1,16,21,6,-1,6,21,28,13,-1,13,7,22,28,-1,7,4,19,22,-1,4,2,17,19,-1,2,1,16,17,-1,16,21,28,22,19,17, + 1,6,5,3,16,21,20,18, 13,10,9,6,28,25,24,21, 11,8,7,4,2,1,-1,11,26,16,1,-1,1,16,17,2,-1,2,17,19,4,-1,4,19,22,7,-1,7,8,23,22,-1,8,11,26,23,-1,26,16,17,19,22,23, + 7,12,14,13,22,27,29,28, 15,26,16,18,30,41,31,33, 16,17,19,22,28,21,-1,16,31,36,21,-1,21,36,43,28,-1,28,22,37,43,-1,22,19,34,37,-1,19,17,32,34,-1,17,16,31,32,-1,31,36,43,37,34,32, + 16,21,20,18,31,36,35,33, 28,25,24,21,43,40,39,36, 26,23,22,19,17,16,-1,26,41,31,16,-1,16,31,32,17,-1,17,32,34,19,-1,19,34,37,22,-1,22,23,38,37,-1,23,26,41,38,-1,41,31,32,34,37,38, + 22,27,29,28,37,42,44,43, 30,41,31,33,45,56,46,48, 31,32,34,37,43,36,-1,31,46,51,36,-1,36,51,58,43,-1,43,37,52,58,-1,37,34,49,52,-1,34,32,47,49,-1,32,31,46,47,-1,46,51,58,52,49,47, + 31,36,35,33,46,51,50,48, 43,40,39,36,58,55,54,51, 41,38,37,34,32,31,-1,41,56,46,31,-1,31,46,47,32,-1,32,47,49,34,-1,34,49,52,37,-1,37,38,53,52,-1,38,41,56,53,-1,56,46,47,49,52,53, + 37,42,44,43,52,57,59,58] + mesh3D = mc.MEDCouplingUMesh("mesh3D",3); + mesh3D.allocateCells(18); + mesh3D.insertNextCell(mc.NORM_HEXA8,conn[0:8]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[8:51]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[51:59]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[59:67]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[67:110]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[110:118]); + mesh3D.insertNextCell(mc.NORM_HEXA8,conn[118:126]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[126:169]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[169:177]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[177:185]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[185:228]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[228:236]); + mesh3D.insertNextCell(mc.NORM_HEXA8,conn[236:244]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[244:287]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[287:295]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[295:303]); mesh3D.insertNextCell(mc.NORM_POLYHED,conn[303:346]); mesh3D.insertNextCell(mc.NORM_HEXA8,conn[346:354]); + mesh3D.finishInsertingCells(); + myCoords = mc.DataArrayDouble(coords,60,3); + myCoords.setInfoOnComponents(["X [m]","Y [m]","Z [m]"]) + mesh3D.setCoords(myCoords); + mesh3D.orientCorrectlyPolyhedrons() + mesh3D.sortCellsInMEDFileFrmt() + mesh3D.checkCoherency() + renum = mc.DataArrayInt(60); renum[:15]=range(15,30) ; renum[15:30]=range(15) ; renum[30:45]=range(45,60) ; renum[45:]=range(30,45) + mesh3D.renumberNodes(renum,60) + +Convertir les unités +~~~~~~~~~~~~~~~~~~~~ + +On convertit ici les coordonnées de mètres en centimètres. +Cela paraît idiot mais c'est un très grand classique du couplage ... :: + + mesh3D.getCoords()[:] *= 100. + mesh3D.getCoords().setInfoOnComponents(["X [cm]","Y [cm]","Z [cm]"]) + +.. note:: Il est important de mettre à jour les informations sur les composantes des coordonnées (les unités) pour éviter toute ambiguïté. + INTERP_KERNEL library inclut un évaluateur d'unité. + +.. note:: Noter l'astuce sur la première ligne ``[:]`` afin de récupérer la version inscriptible des coordonnées + (et non une copie temporaire) + +Trouver les différents niveaux +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Le maillage est extrudé, il est donc très régulier, et aligné sur les axes Ox, Oy et Oz (cf figure). +On veut connaître quelles +sont les côtes Z des différentes couches de cubes. +Extraire les différents niveaux en Z dans ``mesh3D``, rangés de manière croissante. +Utiliser la méthode ``DataArrayDouble.getDifferentValues()`` and ``DataArrayDouble.sort()``. :: + + zLev = mesh3D.getCoords()[:,2] + zLev = zLev.getDifferentValues(1e-12) + zLev.sort() # In-place sort + +Extraire des identifiants de cellules +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Extraire les 6 identifiants des cellules de la seconde rangée suivant Oz. +Il y a 3 possibilités pour faire cela. Nous allons les voir du plus simple au plus complexe. + +* En utilisant ``buildSlice3D()`` : + Méthode très simple mais gourmande en CPU. Pour trouver la solution il suffit de définir un plan dont le vecteur normal est ``[0.,0.,1.]`` + et passant par le point ``[0., 0., (zLev[1]+zLev[2])/2]``. + La méthode retourne deux choses : le maillage de coupe ``tmp`` (un maillage de mesh-dimension 2, mais de dimension spatiale + 3) et pour chaque cellule 3D surfacique de ``tmp``, l'identifiant de la cellule 3D (=un volume) coupée dans le + maillage de départ :: + + tmp, cellIdsSol1 = mesh3D.buildSlice3D([0.,0.,(zLev[1]+zLev[2])/2], [0.,0.,1.], 1e-12) + +* En utilisant les barycentres des cellules de ``mesh3D`` : + L'utilisation des barycentres est une technique classique pour identifier un ensemble de cellules répondant à certains + critères géométriques. + Il s'agit d'abord de calculer les barycentres des cellules 3D de ``mesh3D`` (méthode + ``MEDCouplingUMesh.getBarycenterAndOwner()``). + (*Note*: le nom -- un peu trop long -- de cette méthode hérite du passé. Le "AndOwner" indique le fait qu'en C++ + l'appelant est responsable de la désallocation de l'objet retourné : il prend l'*ownership* du résultat). + + Ensuite sélectionner la composante #2 des barycentres des cellules et mettre le résultat dans ``baryZ``. + Ensuite il suffit de selectionner dans ``baryZ`` les tuples qui sont dans l'intervalle ``[zLev[1], zLev[2]]``. + Les identifiants de ces tuples (i.e. leur index dans ``baryZ``) est directement un identifiant de cellule + car ``getBarycenterAndOwner()`` retourne un tableau indéxé par les numéros de cellule.:: + + bary = mesh3D.getBarycenterAndOwner() + baryZ = bary[:,2] + cellIdsSol2 = baryZ.getIdsInRange(zLev[1], zLev[2]) + +* En utilisant ``MEDCouplingExtrudedMesh`` : + C'est la méthode exclusivement basée sur la connectivité nodale pour déduire l'extrusion. Les coordonnées sont ici ignorées. + Pour construire un ``MEDCouplingExtrudedMesh`` deux objets sont requis. Le maillage non-structuré 3D + représentant en fait un maillage *extrudé*, et un maillage non structuré 3D surfacique (mesh-dim 2) + reposant sur les mêmes coordonnéees, à partir duquel l'extrusion sera calculée. + Commencer par construire le maillage 3D surfacique. Pour ce faire il suffit de repérer les noeuds appartenant + à 1e-10 près de plan de vecteur normal ``[0.,0.,1.]`` et passant + par ``[0.,0.,zLev[0]]`` (``MEDCouplingUMesh.findNodesOnPlane()``). Ensuite appeler ``MEDCouplingUMesh.buildFacePartOfMySelfNode()`` + pour construire ``mesh2D`` (lire la doc de la fonction). :: + + nodeIds = mesh3D.findNodesOnPlane([0., 0., zLev[0]], [0.,0.,1.], 1e-10) + mesh2D = mesh3D.buildFacePartOfMySelfNode(nodeIds, True) + + + Il est alors possible de construire un maillage extrudé ``extMesh`` à partir de ``mesh3D`` et de ``mesh2D``. + Un maillage extrudé se construit en *reconnaissant* un maillage non structuré comme étant l'extrusion d'un maillage + de dimension ``n-1`` (avec ``n`` la dimension initiale de ``mesh3D``, ici 3). Si cela n'est pas le cas, la construction + plante. Le maillage 2D est forcément en haut ou en bas du 3D volumique, et le dernier entier spécifie la cellule à partir + de laquelle le fil de fer 1D guidant l'extrusion sera construit : :: + + extMesh = mc.MEDCouplingExtrudedMesh(mesh3D, mesh2D, 0) + + On a alors la garantie que, dans ``extMesh``, les cellules sont ordonnées par niveau Z croissant. + Il suffit de récupérer le 2ème niveau (``MEDCouplingExtrudedMesh.getMesh3DIds()``). :: + + n_cells = mesh2D.getNumberOfCells() + cellIdsSol3 = extMesh.getMesh3DIds()[n_cells:2*n_cells] + +On vérifie alors que les 3 solutions sont les mêmes : :: + + print cellIdsSol1.getValues() + print cellIdsSol2.getValues() + print cellIdsSol3.getValues() + + +Extraire une sous partie d'un maillage 3D +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Utiliser les identifiants de cellules ``cellIdsSol2`` obtenus précédemment pour extraire une sous-partie de ``mesh3D``, +c'est-à-dire un maillage avec un sous-ensemble des cellules de ``mesh3D``. :: + + mesh3DPart = mesh3D[cellIdsSol2] + +.. note:: En C++ la méthode sous-jacente invoquée (et par ailleurs aussi disponible en Python) s'appelle + ``mesh3DPart = mesh3D.buildPartOfMySelf(cellIdsSol2,True)`` + +.. note:: Le type géométrique ne rentre pas du tout en compte ici. L'instruction précédente prend les cellules + dans l'ordre où elles sont disponibles dans le maillage initial. + +L'objet ``mesh3DPart`` contient ``len(cellIdsSol2)`` cellules désormais. La cellule #0 de ``mesh3DPart`` correspond à la cellule avec l'identifiant ``cellIdsSol2[0]`` de ``mesh3D``, et ainsi de suite. Ainsi ``cellIdsSol2`` peut être vu comme un +tableau new-2-old. + +A ce point, ``mesh3DPart`` repose sur une copie du tableau de coordonnées de ``mesh3D``, c'est-à-dire 60 nodes. +Seuls 30 sont effectivement utilisés. +Pour retirer les noeuds orphelins de ``mesh3DPart`` invoquer simplement ``MEDCouplingUMesh.zipCoords()``. :: + + mesh3DPart.zipCoords() + +Maintenant, ``mesh3DPart`` repose sur 30 nodes et possède 6 cellules. Pour être prêt aux I/O MED-fichier, il est +alors important de voir si ``mesh3DPart`` est bien ordonné, c'est-à-dire si ses cellules sont bien rangées par type géométrique. +On commence par inspecter l'état actuel : :: + + print mesh3DPart.advancedRepr() + +La fonction suivante fait le même travail : :: + + print mesh3DPart.checkConsecutiveCellTypesAndOrder([mc.NORM_HEXA8, mc.NORM_POLYHED]) + +Ou bien : :: + + print mesh3DPart.checkConsecutiveCellTypes() + +On voit que ``mesh3DPart`` contient 6 cellules, quatre HEXA8 puis deux POLYHED. Les cellules sont bien +groupées par type géométrique. Si ce n'était pas le cas, on aurait pu invoquer ``MEDCouplingUMesh.sortCellsInMEDFileFrmt()``. + + +Extraire des cellules alignées sur une ligne 3D +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +On souhaite extraire de ``mesh3D`` les 3 cellules dont les barycentres sont le long de la ligne portée par +``v = [0.,0.,1.]`` et passant par ``pt = [250.,150.,0.]``. +Il y a deux solutions. + +* les barycentres de ``mesh3D`` : même principe qu'au-dessus. :: + + baryXY = bary[:,[0,1]] + baryXY -= [250.,150.] + magn = baryXY.magnitude() + cellIds2Sol1 = magn.getIdsInRange(0.,1e-12) + +* utiliser le maillage extrudé ``extMesh`` : partant de l'unique cellule dans ``mesh2D`` dont le centre est + en ``[250.,150.,0.]``, la méthdode ``MEDCouplingExtrudedMesh.getMesh3DIds()`` retourne les identifiants de + cellules rangée par rangée. :: + + bary2 = mesh2D.getBarycenterAndOwner()[:,[0,1]] + bary2 -= [250.,150.] + magn = bary2.magnitude() + ids = magn.getIdsInRange(0.,1e-12) + idStart = int(ids) # ids is assumed to contain only one value, if not an exception is thrown + ze_range = range(idStart,mesh3D.getNumberOfCells(),mesh2D.getNumberOfCells()) + cellIds2Sol2 = extMesh.getMesh3DIds()[ze_range] + +Maintenant on construit cette sous partie de ``mesh3D`` en utilisant ``cellIds2Sol1`` ou ``cellIds2Sol2``: :: + + mesh3DSlice2 = mesh3D[cellIds2Sol1] + mesh3DSlice2.zipCoords() + +Duplication, translation et aggrégation de maillages +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Cette partie de l'exercice est intéressante pour construire des maillages complexes, ou pour aggréger des parties +de maillages venant de différents processeurs. + +On cherche ici à dupliquer ``mesh3DSlice2``, le translater et l'aggréger avec l'original. + +Effectuer une copie complète de ``mesh3DSlice2`` (aussi appelée *deep copy*) sous le nom ``mesh3DSlice2bis``. +Sur cette copie effectuer une translation de ``v=[0.,1000.,0.]``. +Puis aggréger ``mesh3DSlice2`` avec sa copie translatée ``mesh3DSlice2bis``, en utilisant ``MEDCouplingUMesh.MergeUMeshes()``. :: + + mesh3DSlice2bis = mesh3DSlice2.deepCpy() + mesh3DSlice2bis.translate([0.,1000.,0.]) + mesh3DSlice2All = mc.MEDCouplingUMesh.MergeUMeshes([mesh3DSlice2,mesh3DSlice2bis]) + mesh3DSlice2All.writeVTK("mesh3DSlice2All.vtu") + +.. note:: Pour information pour merger deux (ou plus) maillages non structurés, il faut invoquer ``MEDCouplingUMesh.MergeUMeshes()`` + puis ``MEDCouplingUMesh.mergeNodes()`` sur le résultat, et enfin ``MEDCouplingUMesh.zipConnectivity()``. + +Connectivité descendante +~~~~~~~~~~~~~~~~~~~~~~~~ + +Le but ici est de présenter la notion de *connectivité descendante* (*descending connectivity*). + +La connectivité descendante représente les éléments de dimension ``n-1`` +constituant chacune des cellules de dimension ``n`` (avec donc ``n`` la dimension du maillage, *mesh-dim*). Par exemple, pour un +maillage de dimension 3 (les cellules sont des *volumes* 3D), cela donne l'ensemble des faces (des *surfaces* 2D) bordant +ces volumes. + +A titre d'exemple, on se propose dans notre cas de récupérer les faces *internes* du maillage ``mesh3D``. +Pour cela il est nécessaire de construire le maillage +descendant de ``mesh3D`` (stocké dans ``mesh3DSurf``) c'est-à-dire +le maillage de mesh-dimension 2 (soit ``mesh3D.getMeshDimension()-1``) constitué +des *faces* bordant chacune des cellules (ici des *volumes* 3D) de ``mesh3D``. +La méthode ``MEDCoupling.buildDescendingConnectivity()`` calcule ce maillage, et retourne en même temps des tableaux +de correspondance. Ces tableaux font le lien entre les identifiants des cellules de ``mesh3D`` +vers les identifiants de cellules de ``mesh3DSurf``, et vice-et-versa. + +Une face de ``mesh3DSurf`` est dite interne, si et seulement si, elle est partagée par plus d'une cellule 3D de ``mesh3D``. +Les 3ème et 4ème paramètres de sortie de la fonction donnent le lien +entre une face et ses cellules *parentes* (i.e. le ou les volumes qu'elle délimite). +Ce lien est exprimé au format *indirect index* vu dans le premier exercice :ref:`indirect-index-exo`. :: + + mesh3DSurf, desc, descIndx, revDesc, revDescIndx = mesh3D.buildDescendingConnectivity() + numberOf3DCellSharing = revDescIndx.deltaShiftIndex() + cellIds = numberOf3DCellSharing.getIdsNotEqual(1) + mesh3DSurfInside = mesh3DSurf[cellIds] + mesh3DSurfInside.writeVTK("mesh3DSurfInside.vtu") + +Ce genre de manipulation est très utile pour accéder au voisinage d'une ou plusieurs cellules d'un maillage non-structuré. + +.. image:: images/mesh3DSurfInside.jpg + +Solution +~~~~~~~~ + +:ref:`python_testMEDCouplingumesh1_solution` diff --git a/doc/tutorial/medcouplingcorba_en.rst b/doc/tutorial/medcouplingcorba_en.rst new file mode 100644 index 000000000..35742e5da --- /dev/null +++ b/doc/tutorial/medcouplingcorba_en.rst @@ -0,0 +1,94 @@ + +Visualize a MEDCoupling instance in ParaViS through CORBA +--------------------------------------------------------- + +ParaViS can be used to directly visualize a mesh or a field stored in memory in a Python +process. For information, this technique will become the preferred choice for the MED +Calculator in a future Salome release. +The following use cases can also be mentioned: + +* YACS, to create visualization nodes +* create a Python mock-up script and use the standard Python interpreter whilst benefiting +from the ParaViS graphical interface + +Implementation start +~~~~~~~~~~~~~~~~~~~~ + +Import the whole Python module MEDCouplingCorba. :: + + from MEDCouplingCorba import * + + +Create a 2D MEDCouplingUMesh instance +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Create a trivial unstructured mesh "m" which will be sent through CORBA to ParaViS. +:: + + arr=DataArrayDouble(11) + arr.iota(0) + m=MEDCouplingCMesh() + m.setCoords(arr,arr) + m=m.buildUnstructured() + +.. note:: "m" is unstructured but a Cartesian mesh would also work perfectly fine. + +Create a CORBA servant from "m", and turn the Python process into a CORBA server +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Invoke MEDCouplingUMeshServant._this() on "m" to turn it into a CORBA reference ("ref_m"). +:: + + ref_m=MEDCouplingUMeshServant._this(m) + +.. note:: This command doesn't only create a CORBA servant but also makes the current + Python process a full CORBA server. + +Read the identifiers that are passed to ParaViS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +What follows holds for any omniORBpy code. Display the IOR "ior" of "ref_m". +This character string is given to the ParaViS plugin (ParaMEDCorbaPlugin) to create +a new ParaViS source. +:: + + import CORBA + orb=CORBA.ORB_init() + ior=orb.object_to_string(ref_m) + print ior + +A simple copy/paste in the ParaViS GUI allows to create the source and to have our +mesh rendered on screen. + +Use ParaViS interactively +~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section simply highlights what can be done in principle. It should be regarded +as a starting point towards the creation of more advanced scripts. +With ParaViS still up, retrieve a remote handle on ParaViS: +:: + + import PARAVIS_Gen_idl + import salome + salome.salome_init() + paravis=salome.lcc.FindOrLoadComponent("FactoryServer","PARAVIS") + +Then send a script to ParaViS so that it displays "m": +:: + + script=""" + src1 = ParaMEDCorbaPluginSource() + src1.IORCorba = '%s' + asc=GetAnimationScene() + rw=GetRenderView() + dr=Show()\ndr.Visibility = 1 + Render() + """ + content=script%(ior) + paravis.ExecuteScript(content) + + +Solution +~~~~~~~~ + +:ref:`python_testMEDCouplingcorba1_solution` diff --git a/doc/tutorial/medcouplingcorba_fr.rst b/doc/tutorial/medcouplingcorba_fr.rst new file mode 100644 index 000000000..394ff44d5 --- /dev/null +++ b/doc/tutorial/medcouplingcorba_fr.rst @@ -0,0 +1,100 @@ + +Visualiser une instance de MEDCoupling dans ParaViS à travers CORBA +------------------------------------------------------------------- + +Il peut être intéressant de visualiser directement un maillage ou un champ en mémoire dans +un process Python avec une session de ParaViS. Cela évite d'avoir à écrire le maillage (ou le champ) sur disque. +Cette technique peut également être utilisée pour : + +* faire des noeuds de visualisation dans le module YACS +* maquetter un script Python, et profiter de l'interpreteur interactif Python tout en + bénéficiant de l'interface graphique de ParaViS. + +Nous allons pour ce faire bénéficier des mécanismes de distribution mis en oeuvre dans SALOME sur +la base du standard `CORBA `_. +SALOME utilise l'implémentation `omniORB `_ et +`omniORBPy `_ du standard. + +Début de l'implémentation +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Pour commencer l'exercice importer le module ``MEDCoupling`` +et la classe ``MEDCouplingUMeshServant`` du module Python ``MEDCouplingCorba``. :: + + import MEDCoupling as mc + from MEDCouplingCorba import MEDCouplingUMeshServant + +Créer un maillage +~~~~~~~~~~~~~~~~~ + +Le but ici est de créer un maillage ``m`` non structuré trivial qui sera envoyé par CORBA à ParaViS. :: + + arr = mc.DataArrayDouble(11) + arr.iota(0) + m = mc.MEDCouplingCMesh() + m.setCoords(arr,arr) + m = m.buildUnstructured() + +.. note:: Le maillage ``m`` est non struturé, mais s'il est cartésien ça marche aussi ! + +Créer un servant CORBA +~~~~~~~~~~~~~~~~~~~~~~ + +Nous allons maintenant créer un *servant* CORBA à partir de ``m``, et faire du process Python courant +un *serveur* CORBA. L'objet ``m`` devient ainsi disponible sur le bus CORBA et pourra être interrogé pour +la visualisation par un service distant, typiquement dans notre cas, le module ParaVis. + +Invoquer ``MEDCouplingUMeshServant._this()`` sur ``m`` pour en faire une reférence CORBA (``ref_m``).:: + + ref_m = MEDCouplingUMeshServant._this(m) + +.. note:: Cette ligne ne se contente pas de faire un servant CORBA mais fait du processus courant Python un serveur CORBA. + +Récupérer les identifiants pour ParaViS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Ce qui suit est général à tout code omniORBpy. Afficher l'IOR ``ior`` de ``ref_m`` (c'est à dire l'identifiant +unique de l'objet sur le bus CORBA) pour pouvoir passer cette chaîne de caractères au plugin ParaMEDCorbaPlugin +de ParaViS, et ainsi créer une nouvelle source dans ParaViS. :: + + import CORBA + orb = CORBA.ORB_init() + ior = orb.object_to_string(ref_m) + print ior + +Puis, via un copier/coller dans l'IHM ParaViS (Menu "Source -> Para MED Corba Plugin Source"), passer l'IOR. +On voit s'afficher notre maillage. + +Utiliser ParaViS en interactif +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Le but ici est juste de voir le principe. Il s'agit d'un point d'entrée pour réaliser des scripts ParaViS plus évolués. +*Tout en laissant actif ParaViS*, importer le module ``pvsimple`` qui fournit l'interface haut niveau de visualisation : :: + + import salome + salome.salome_init() + import pvsimple as pvs + +.. note:: Le module ``pvsimple`` est, à peu de choses prêt, identique au module ``paraview.simple``. + Il est juste adapté à une utilisation au sein de SALOME. Voir la formation PARAVIS à ce sujet. + +Une fois cet import réalisé, le script est automatiquement connecté au même serveur de visualisation que +l'interface graphique de SALOME (si le module PARAVIS est bien actif !). Nous pouvons donc envoyer des commandes +au serveur de visualisation pour demander l'affichage de notre objet CORBA. :: + + # We now talk to the PVServer directly + import pvsimple as pvs + pvs.Connect(url) + src1 = pvs.ParaMEDCorbaPluginSource() + src1.IORCorba = ior # This is where we need the CORBA reference of the object created + dr = pvs.Show(src1) + +.. note:: Cela correspond exactement à la manipulation précédente faite via l'interface graphique (ajout d'une nouvelle + source, saisie de l'IOR, etc ...). + +Solution +~~~~~~~~ + +Le script complet doit être exécuté avec le module PARAVIS (ou une fenêtre ParaView) actif dans l'IHM SALOME! + +:ref:`python_testMEDCouplingcorba1_solution` diff --git a/doc/tutorial/medcouplingloaderex1_en.rst b/doc/tutorial/medcouplingloaderex1_en.rst new file mode 100644 index 000000000..23c825193 --- /dev/null +++ b/doc/tutorial/medcouplingloaderex1_en.rst @@ -0,0 +1,162 @@ + + +Full example 1 - Agitator +------------------------- + +The MED file :download:`agitateur.med ` is used and has the following content:ant : + +.. image:: images/agitateur.jpg + +This is the result of a simple 2-phase computation. +The agitator in green (represented by a cell field) turn on itself from one time-step +to the other. +The purpose of the exercise is to compute the torque applied on this piece.agitateur. + +Objective +~~~~~~~~~ + +The aim of this exercise is to give a full example of non-trivial post-treatment +from a MED file. + +Implementation start +~~~~~~~~~~~~~~~~~~~~ + +Import the whole Python module MEDLoader (which includes MEDCoupling). +Also import NumPy and acos() from the math module. :: + + from MEDLoader import * + from numpy import * + from math import acos + +Mesh and field extraction using advanced API +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Using the advanced API read the whole file "agitateur.med" and display all time-steps of +the first field. :: + + data=MEDFileData("agitateur.med") + ts=data.getFields()[0].getTimeSteps() + print ts + +Get the agitator's mesh (in green) at the time-step (2,-1) (see ts). +To this end use the cell field "DISTANCE_INTERFACE_ELEM_BODY_ELEM_DOM" and select +only the field part having a value within [0.0, 1.0] (variable "ids"). :: + + fMts=data.getFields()["DISTANCE_INTERFACE_ELEM_BODY_ELEM_DOM"] + f1ts=fMts[(2,-1)] + fMc=f1ts.getFieldAtLevel(ON_CELLS,0) + arr=fMc.getArray() + arr.getMinMaxPerComponent() # just to see the variation range of the field per component + ids=arr.getIdsInRange(0.,1.) + f2Mc=fMc[ids] + +Using the field "PRESSION_ELEM_DOM" find the 3D pression field applied on the agitator. +Store the result in pressOnAgitateur. :: + + pressMts=data.getFields()["PRESSION_ELEM_DOM"] + press1ts=pressMts[(2,-1)] + pressMc=press1ts.getFieldAtLevel(ON_CELLS,0) + pressOnAgitateurMc=pressMc[ids] + +Delete unused nodes in pressOnAgitateurMc.getMesh(). :: + + pressOnAgitateurMc.getMesh().zipCoords() + +Create a 3D surface field from the 3D cell field +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Deduce the 3D field on the skin of the agitator. +To achieve this use the constituting mesh MEDCouplingUMesh.buildDescendingConnectivity(). +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + + agitateurMesh3DMc=pressOnAgitateurMc.getMesh() + m3DSurf,desc,descI,revDesc,revDescI=agitateurMesh3DMc.buildDescendingConnectivity() + nbOf3DCellSharing=revDescI.deltaShiftIndex() + ids2=nbOf3DCellSharing.getIdsEqual(1) + agitateurSkinMc=m3DSurf[ids2] + OffsetsOfTupleIdsInField=revDescI[ids2] + tupleIdsInField=revDesc[OffsetsOfTupleIdsInField] + pressOnSkinAgitateurMc=pressOnAgitateurMc[tupleIdsInField] + pressOnSkinAgitateurMc.setMesh(agitateurSkinMc) + +Manipulate fields +~~~~~~~~~~~~~~~~~ + +Compute the force vector field on the agitator's skin by multiplying at each cell +the pressure by the surface, and then the normal vector. +Pression is expressed in bar, convert it first to Pa. :: + + pressSkin=pressOnSkinAgitateurMc.getArray() + pressSkin*=1e5 + areaSkin=agitateurSkinMc.getMeasureField(True).getArray() + forceSkin=pressSkin*areaSkin + normalSkin=agitateurSkinMc.buildOrthogonalField().getArray() + forceVectSkin=forceSkin*normalSkin + +First computation of the torque at the center of mass of the agitator: + +Let's compute first the position of the center of mass. +Compute the polyhedron representing the 3D mesh hull of the agitator "agitateurMesh3DMc" +(use MEDCouplingUMesh.buildSpreadZonesWithPoly()). :: + + singlePolyhedron=agitateurMesh3DMc.buildSpreadZonesWithPoly() + singlePolyhedron.orientCorrectlyPolyhedrons() + centerOfMass=singlePolyhedron.getBarycenterAndOwner() + +.. note:: The call to MEDCouplingUMesh.orientCorrectlyPolyhedrons() is not mandatory + but is recommended: if the polyhedron happens to be mis-oriented, its center of mass will + be incorrect! + +Compute for each skin cell the torque with respect to the center of mass "centerOfMass". +To this end compute "posSkin", a DataArrayDouble giving for each skin cell the vector +centerOfMass -> G, where G represents the center of mass of the current cell. :: + + barySkin=agitateurSkinMc.getBarycenterAndOwner() + posSkin=barySkin-centerOfMass + +Compute the cross product for each cell of "posSkin" using "forceVectSkin" +(method DataArrayDouble.CrossProduct()). :: + + torquePerCellOnSkin=DataArrayDouble.CrossProduct(posSkin,forceVectSkin) + +Sum "torqueOnSkin" using DataArrayDouble.accumulate(). :: + + zeTorque=torquePerCellOnSkin.accumulate() + print "couple = %r N.m"%(zeTorque[2]) + +Check the previously computed torque by dividing the power by the angular speed. +Compute the power per skin cell and sum it. :: + + speedMts=data.getFields()["VITESSE_ELEM_DOM"] + speed1ts=speedMts[(2,-1)] + speedMc=speed1ts.getFieldAtLevel(ON_CELLS,0) + speedOnSkin=speedMc.getArray()[tupleIdsInField] + powerSkin=DataArrayDouble.Dot(forceVectSkin,speedOnSkin) + power=powerSkin.accumulate()[0] + print "power = %r W"%(power) + +Compute the angular speed: compute the sum of x^2, y^2 and xz of "posSkin" and build +with NumPy the 2x2 matrix +inertiaSkin=[[x2,xy], [xy,z2]] +Retrieve the eigen vector associated to the maximal eigen value with linalg.eig(inertiaSkin). :: + + x2=posSkin[:,0]*posSkin[:,0] ; x2=x2.accumulate()[0] + y2=posSkin[:,1]*posSkin[:,1] ; y2=y2.accumulate()[0] + xy=posSkin[:,0]*posSkin[:,1] ; xy=xy.accumulate()[0] + inertiaSkin=matrix([[x2,xy],[xy,y2]]) + inertiaSkinValues,inertiaSkinVects=linalg.eig(inertiaSkin) + pos=max(enumerate(inertiaSkinValues),key=lambda x: x[1])[0] + vect0=inertiaSkinVects[pos].tolist()[0] + print vect0 + +Thanks to the previous computation we can see that the agitator had a rotation of +1.1183827931 radian (see solution). +Compute and compare the torque on the agitator. :: + + omega=1.1183827931/(ts[-1][2]-ts[0][2]) + print "At time-step (%d,%d) at %r s the torque is: %r N.m, power/omega=%r N.m"%(ts[2][0],ts[2][1],ts[2][2],zeTorque[2],power/omega) + +Solution +~~~~~~~~ + +:ref:`python_testmedcouplingloaderex1_solution` diff --git a/doc/tutorial/medcouplingloaderex1_fr.rst b/doc/tutorial/medcouplingloaderex1_fr.rst new file mode 100644 index 000000000..9f13cc24a --- /dev/null +++ b/doc/tutorial/medcouplingloaderex1_fr.rst @@ -0,0 +1,168 @@ + +MEDCoupling / MEDLoader - Exemple complet 1 - Agitateur +------------------------------------------------------- + +Nous partons ici d'un fichier :download:`agitateur.med ` ayant le contenu suivant : + +.. image:: images/agitateur.jpg + +Il s'agit du résultat d'un petit calcul diphasique : l'agitateur magnétique en vert (repéré seulement par un champ +aux cellules, et n'ayant *pas* de maillage propre) tourne d'un pas de temps à l'autre au +sein d'une phase liquide. Deux gouttes de liquide chutent pendant ce temps vers l'interface air/eau (en gris). + +Le but de l'exercice est de calculer le couple appliqué sur cet agitateur, qui est la pièce mécanique entraînant la +partie basse du fluide. + +Objectif +~~~~~~~~ + +L'objectif est de donner un exemple complet de post-traitement non trivial à partir d'un fichier MED. + +Début de l'implémentation +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Pour commencer l'exercice importer tout le module python ``MEDLoader`` (qui inclut ``MEDCoupling``). +Importer aussi ``numpy``. :: + + import MEDLoader as ml + import numpy as np + +Extraction des maillages et champs avec l'API avancée +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Avec l'API avancée lire tout le fichier "agitateur.med" et afficher tous les pas de temps du 1er champ. :: + + data = ml.MEDFileData("agitateur.med") + ts = data.getFields()[0].getTimeSteps() + print ts + +Récupérer le maillage de l'agitateur (en vert) au pas de temps (2,-1) (cf. ts). +La position de l'agitateur est définie par un champ sur le maillage global du système et n'a pas de maillage propre. +Il faut donc utiliser le champ aux cellules "DISTANCE_INTERFACE_ELEM_BODY_ELEM_DOM" +et ne sélectionner que la partie du champ ayant une valeur entre dans ``[0.,1.]``. Mettre les identifiants +de cellules correspondant dans ``ids`` : :: + + fMts = data.getFields()["DISTANCE_INTERFACE_ELEM_BODY_ELEM_DOM"] + f1ts = fMts[(2,-1)] + fMc = f1ts.getFieldAtLevel(ml.ON_CELLS,0) + arr = fMc.getArray() + arr.getMinMaxPerComponent() # just to see the field variation range per component + ids = arr.getIdsInRange(0.,1.) + f2Mc = fMc[ids] + +A l'aide du champ "PRESSION_ELEM_DOM" trouver le champ de pression 3D qu'applique l'agitateur. Mettre le résultat dans +``pressOnAgitateur``. :: + + pressMts = data.getFields()["PRESSION_ELEM_DOM"] + press1ts = pressMts[(2,-1)] + pressMc = press1ts.getFieldAtLevel(ml.ON_CELLS,0) + pressOnAgitateurMc = pressMc[ids] + +Supprimer les noeuds inutiles de ``pressOnAgitateurMc.getMesh()`` : :: + + pressOnAgitateurMc.getMesh().zipCoords() + +Passer d'un champ aux cellules 3D à un champ surfacique 3D +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Deduire le champ 3D de pression sur la *peau* de l'agitateur. +Pour ce faire passer par le maillage descendant ``MEDCouplingUMesh.buildDescendingConnectivity()``. :: + + agitateurMesh3DMc = pressOnAgitateurMc.getMesh() + m3DSurf,desc,descI,revDesc,revDescI = agitateurMesh3DMc.buildDescendingConnectivity() + nbOf3DCellSharing = revDescI.deltaShiftIndex() + ids2 = nbOf3DCellSharing.getIdsEqual(1) # Cells with only one neighbor are on the boundary, i.e. on the skin + agitateurSkinMc = m3DSurf[ids2] + offsetsOfTupleIdsInField = revDescI[ids2] + tupleIdsInField = revDesc[offsetsOfTupleIdsInField] + pressOnSkinAgitateurMc = pressOnAgitateurMc[tupleIdsInField] + pressOnSkinAgitateurMc.setMesh(agitateurSkinMc) + +Manipuler les champs +~~~~~~~~~~~~~~~~~~~~ + +Calculer le champ vectoriel de force sur la peau de l'agitateur en multipliant pour chaque cellule +la pression par la surface et ensuite par le vecteur normal. +La pression est en bar, la convertir au préalable en pascal (Pa). :: + + pressSkin = pressOnSkinAgitateurMc.getArray() + pressSkin *= 1e5 # conversion from bar to Pa + areaSkin = agitateurSkinMc.getMeasureField(True).getArray() + forceSkin = pressSkin*areaSkin + normalSkin = agitateurSkinMc.buildOrthogonalField().getArray() + forceVectSkin = forceSkin*normalSkin + +Voici maintenant le premier calcul du moment au centre de masse de l'agitateur : + +Pour faire ce 1er calcul de couple exercé sur l'agitateur, calculons la position du centre de masse de l'agitateur. +Calculer le polyèdre représentant l'enveloppe du maillage 3D de l'agitateur ``agitateurMesh3DMc`` +(utiliser ``MEDCouplingUMesh.buildSpreadZonesWithPoly()``). :: + + singlePolyhedron = agitateurMesh3DMc.buildSpreadZonesWithPoly() + singlePolyhedron.orientCorrectlyPolyhedrons() + centerOfMass = singlePolyhedron.getBarycenterAndOwner() + +.. note:: L'appel à ``MEDCouplingUMesh.orientCorrectlyPolyhedrons()`` n'est pas obligatoire mais conseillé car + si par malheur le polyhèdre est mal orienté, son barycentre sera incorrect ! + +Calculer pour chaque cellule de la peau de l'agitateur le moment par rapport au centre de masse ``centerOfMass`` +de l'agitateur. +Pour ce faire calculer ``posSkin`` le ``DataArrayDouble`` donnant pour chaque cellule de la peau de l'agitateur +le vecteur ``centerOfMass`` -> ``G``, avec ``G`` le barycentre de la cellule courante. :: + + barySkin=agitateurSkinMc.getBarycenterAndOwner() + posSkin = barySkin-centerOfMass + +Appliquer maintenant la formule classique de calcul du moment : calculer le produit +vectoriel par cellule de ``posSkin`` avec ``forceVectSkin`` (méthode ``DataArrayDouble.CrossProduct()``). :: + + torquePerCellOnSkin = ml.DataArrayDouble.CrossProduct(posSkin,forceVectSkin) + +Sommer ``torqueOnSkin`` en utilisant la méthode ``DataArrayDouble.accumulate()``. :: + + zeTorque = torquePerCellOnSkin.accumulate() + print "couple = %r N.m" % zeTorque[2] + +Vérifions le couple calculé précédemment en divisant la puissance par la vitesse *angulaire*. +La vitesse *linéaire* est stockée dans le champ "VITESSE_ELEM_DOM". + +Calculer la puissance par cellule de la peau de l'agitateur et la sommer. :: + + speedMts = data.getFields()["VITESSE_ELEM_DOM"] + speed1ts = speedMts[(2,-1)] + speedMc = speed1ts.getFieldAtLevel(ml.ON_CELLS,0) + speedOnSkin = speedMc.getArray()[tupleIdsInField] + powerSkin = ml.DataArrayDouble.Dot(forceVectSkin,speedOnSkin) + power = powerSkin.accumulate()[0] + print "power = %r W"%(power) + +Calculer la vitesse *angulaire*. Pour ce faire, calculer la somme de ``x^2``, ``y^2`` et ``xz`` de ``posSkin`` et +construire (avec NumPy) la matrice 2x2 d'inertie ``inertiaSkin=[[x2,xy], [xy,z2]]``. + +Récupérer le vecteur propre associé à la valeur propre maximale +avec ``linalg.eig(inertiaSkin)``. :: + + x2 = posSkin[:,0]*posSkin[:,0] + x2 = x2.accumulate()[0] + y2 = posSkin[:,1]*posSkin[:,1] + y2 = y2.accumulate()[0] + xy = posSkin[:,0]*posSkin[:,1] + xy = xy.accumulate()[0] + inertiaSkin = np.matrix([[x2,xy],[xy,y2]]) + inertiaSkinValues, inertiaSkinVects = np.linalg.eig(inertiaSkin) + pos = max(enumerate(inertiaSkinValues), key=lambda x: x[1])[0] + vect0 = inertiaSkinVects[pos].tolist()[0] + print vect0 + +Grâce au calcul précédent on peut déduire que l'agitateur a tourné de 1.1183827931 radian (cf. solution complète pour le +détail - on remet les étapes précédentes dans une fonction que l'on applique sur plusieurs pas de temps). + +Calculer et comparer le couple sur l'agitateur. :: + + omega = 1.1183827931 / (ts[-1][2]-ts[0][2]) + print "At timestep (%d,%d) (physical time=%r s) the torque is: %r N.m, power/omega=%r N.m " % (ts[2][0],ts[2][1],ts[2][2],zeTorque[2],power/omega) + +Solution +~~~~~~~~ + +:ref:`python_testmedcouplingloaderex1_solution` diff --git a/doc/tutorial/medcouplingloaderex2_en.rst b/doc/tutorial/medcouplingloaderex2_en.rst new file mode 100644 index 000000000..cfb29bf12 --- /dev/null +++ b/doc/tutorial/medcouplingloaderex2_en.rst @@ -0,0 +1,240 @@ + +Full example 2 - RJH +-------------------- + +Two MED files are used in this case, which are (very freely) inspired by the RJH experimental reactor. + +The first file "Fixe.med" represents the 2D geometry of the static RJH without the installations. + +.. image:: images/fixm.jpg + +The 2nd file "Mobile.med" represent the mobile part. + +.. image:: images/mobm.jpg + + +Objective +~~~~~~~~~ + +The aim of this exercise is to use MEDCoupling to intersect those two meshes, assign a field to it and thus localize the zones. + + +Implementation start +~~~~~~~~~~~~~~~~~~~~ + +Import the whole Python module MEDLoader (which includes MEDCoupling). :: + + from MEDLoader import * + +Read and repare the static mesh "Fixe.med" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +With the advanced API read the whole file "Fixe.med" and call "fixm" the MEDCouplingUMEsh instance +representing the static mesh. :: + + fixe=MEDFileMesh.New("Fixe.med") + fixm=fixe.getMeshAtLevel(0) + +In what follows, it is required that any two cells touching each other share the same edges. +As we are in nodal connectivity mode it means that common nodes have to merged. This is not the case here. +Merge the nodes closer than 1e-10 and assess the impact on the node count of "fixm". :: + + print "nb of nodes in file : %i"%(fixm.getNumberOfNodes()) + fixm.mergeNodes(1e-10) + print "nb of non duplicated nodes : %i"%(fixm.getNumberOfNodes()) + +Same thing for "Mobile.med" (called "mobm"). Repair it by deleting duplicated nodes. :: + + mobile=MEDFileMesh.New("Mobile.med") + mobm=mobile.getMeshAtLevel(0) + mobm.mergeNodes(1e-10) + + +Repair the "mobm" mesh converting from POLYGON to QPOLYG (temporary solution) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section will disappear in the future. +The RJH mesh being more generic than TRI6 and QUAD8 we need to store cells with an intermediate type QPOLYG +(Quadratic Polygon) which is the polygonal extension to the 2D cells with a dynamic edge count. +For now this geometrical type QPOLYG is in MEDCoupling but there is no equivalent yet in MED file (work in progress +at EDF). +The trick for now is to store QPOLYG in standard linear polygons and to convert them after reading. +Only "mobm" is concerned. Convert all polygonal cells in "mobm" into QPOLYG. :: + + ids=mobm.giveCellsWithType(NORM_POLYGON) + mobm.getNodalConnectivity()[mobm.getNodalConnectivityIndex()[ids]]=NORM_QPOLYG + mobm.computeTypes() + +Visualize "fixm" and "mobm" using ParaView. Tesselation is needed: OpenGL doesn't handle properly circle arcs +and those have to be split into smaller linear segments to be able to represent them. The method MEDCouplingUMesh.tessellate2D() achieves this but modifies the mesh (non const method in C++). +It only take a cut fineness parameter (0.1 will suffice (angle expressed in rd)). Remember not to modify +neither "fixm" nor "mobm"! :: + + fixm2=fixm.deepCpy() # tessellate2D is non const - a mesh copy is required + fixm2.tessellate2D(0.1) + fixm2.writeVTK("fixm2.vtu") + mobm2=mobm.deepCpy() + mobm2.tessellate2D(0.1) + mobm2.writeVTK("mobm2.vtu") + +Define a small method displayVTK() which we will use later on. :: + + def displayVTK(m,fname): + tmp=m.deepCpy() + tmp.tessellate2D(0.1) + tmp.writeVTK(fname) + return + +Perform reductions and identifying zones +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +"mobm" is made of 6 distinct parts (see image above). We only want the first part. +Use MEDCouplingUMesh.partitionBySpreadZone() to partition "mobm" in zones and only +extract the first zone. +Name this new instance "zone1Mobm", remove all orphan nodes and display. :: + + zonesInMobm=mobm.partitionBySpreadZone() + print "number of zones in mobm : %i"%(len(zonesInMobm)) + zone1Mobm=mobm[zonesInMobm[0]] + zone1Mobm.zipCoords() + displayVTK(zone1Mobm,"zone1Mobm.vtu") + +.. image:: images/zone1Mobm.jpg + +From now on we work on "zone1Mobm". We will reduce the working area of "fixm" around "zone1Mobm". +To achive this: reduce "fixm" taking only "fixm" cells located in the bounding box of "zone1Mobm" (MEDCouplingUMesh.getBoundingBox() and MEDCouplingUMesh.getCellsInBoundingBox()). +Name this object "partFixm", remove its orphan nodes and display it. :: + + ids2=fixm.getCellsInBoundingBox(zone1Mobm.getBoundingBox(),1e-10) + partFixm=fixm[ids2] + partFixm.zipCoords() + displayVTK(partFixm,"partFixm.vtu") + +.. image:: images/partFixmAndzone1Mobm.jpg + +Geometrical intersection of the two meshes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This is the core of the exercise. + +We intersect geometrically "partFixm" and "zone1Mobm". +This boils down to partition in a minimal fashion "partFixm" into cells belonging either fully to +"partFixm", or to "partFixm" and "zone1Mobm". Invoke the static method +MEDCouplingUMesh.Intersect2DMeshes(), with "partFixm" and "zone1Mobm", and use a precision +of 1e-10 (merge detection threshold). +This method returns 3 parameters (see API documentation) which will be called partFixMob, iPart and iMob. + +In partFixMob merge common nodes with a threshold of 1e-10. :: + + partFixMob,iPart,iMob=MEDCouplingUMesh.Intersect2DMeshes(partFixm,zone1Mobm,1e-10) + partFixMob.mergeNodes(1e-10) + +Get and display partFixm part which is not in zone1Mobm. Call this mesh partFixmWithoutZone1Mobm. :: + + ids3=iMob.getIdsEqual(-1) + partFixmWithoutZone1Mobm=partFixMob[ids3] + displayVTK(partFixmWithoutZone1Mobm,"partFixmWithoutZone1Mobm.vtu") + +.. image:: images/partFixmWithoutZone1Mobm.jpg + + +Let's now check the result quality given by MEDCouplingUMesh.Intersect2DMeshes. +Three tests will be passed: + + * (check#0) the cell area sum in partFixm equals the one in partFixMob + * (check#1) the cell area sum in zone1Mobm equals the same sum on the cells in partFixMob whose cell ID different of -1 + * (check#2) for each cell in partFixm, its area equals the cell area sum in partFixMob + +Area is a algebraic value. The check can be performed only if all cells are correctly oriented or at least +all oriented consistently. +To check this let's inspect the areas of the 38 cells of partFixm (variable name "areaPartFixm"). :: + + areaPartFixm=partFixm.getMeasureField(ON_CELLS).getArray() + print areaPartFixm.getValues() + +All values are negative: this MED file doesn't respect the MED file convention. +"partFixm" being mis-oriented and the method MEDCouplingUMesh.Intersect2DMeshes() conserving the orientation, "partFixMob" is also mis-oriented. +To cut long story short, we perform comparison on absolute arrays. +Check then that the first test check#0 is successful + + areaPartFixm=partFixm.getMeasureField(ON_CELLS).getArray() + areaPartFixm.abs() + areaPartFixMob=partFixMob.getMeasureField(ON_CELLS).getArray() + areaPartFixMob.abs() + val1=areaPartFixm.accumulate()[0] + val2=areaPartFixMob.accumulate()[0] + print "Check #0 %lf == %lf a 1e-8 ? %s"%(val1,val2,str(abs(val1-val2)<1e-8)) + +Now check#1. Same spirit as in check#0. :: + + areaZone1Mobm=zone1Mobm.getMeasureField(ON_CELLS).getArray() + areaZone1Mobm.abs() + val3=areaZone1Mobm.accumulate()[0] + ids4=iMob.getIdsNotEqual(-1) + areaPartFixMob2=areaPartFixMob[ids4] + val4=areaPartFixMob2.accumulate()[0] + print "Check #1 %lf == %lf a 1e-8 ? %s"%(val3,val4,str(abs(val3-val4)<1e-8)) + +Finally check#2. :: + + isCheck2OK=True + for icell in xrange(partFixm.getNumberOfCells()): + ids5=iPart.getIdsEqual(icell) + areaOfCells=areaPartFixMob[ids5] + areaOfCells.abs() + if abs(areaOfCells.accumulate()[0]-areaPartFixm[icell])>1e-9: + isCheck2OK=False + pass + pass + print "Check #2? %s"%(str(isCheck2OK)) + +Use intersection information to create fields +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We are done with partFixMob. +Now create a cell field on partFixMob by setting it to 0 on the part covering only partFixm and 1 on the overlapped +part. Visualize it in a VTK file. :: + + f=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) + m=partFixMob.deepCpy() ; m.tessellate2D(0.1) + f.setMesh(m) + arr=DataArrayDouble(partFixMob.getNumberOfCells(),1) + arr[iMob.getIdsEqual(-1)]=0. + arr[iMob.getIdsNotEqual(-1)]=1. + f.setArray(arr) + f.checkCoherency() + f.setName("Zone") + MEDCouplingFieldDouble.WriteVTK("Zone.vtu",[f]) + +.. image:: images/LocationEx2.jpg + +More generally take zones 0, 1 and 5. +Create a cell field whose value is 0 in the zone being exclusively part of fixm, +1 in the zone #0, 2 in the zone #1 and 3 in the zone #5. :: + + zonesMobm=MEDCouplingUMesh.MergeUMeshesOnSameCoords([mobm[zonesInMobm[0]], mobm[zonesInMobm[1]], mobm[zonesInMobm[5]]]) + zonesMobm.zipCoords() + partFixMob2,iPart2,iMob2=MEDCouplingUMesh.Intersect2DMeshes(partFixm,zonesMobm,1e-10) + partFixMob2.mergeNodes(1e-10) + f2=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) + m2=partFixMob2.deepCpy() ; m2.tessellate2D(0.1) + f2.setMesh(m2) + arr=DataArrayDouble(partFixMob2.getNumberOfCells(),1) + arr[iMob2.getIdsEqual(-1)]=0. + st=0 ; end=st+len(zonesInMobm[0]) + arr[iMob2.getIdsInRange(st,end)]=1. + st+=len(zonesInMobm[0]) ; end=st+len(zonesInMobm[1]) + arr[iMob2.getIdsInRange(st,end)]=2. + st+=len(zonesInMobm[1]) ; end=st+len(zonesInMobm[2]) + arr[iMob2.getIdsInRange(st,end)]=3. + f2.setArray(arr) + f2.checkCoherency() + f2.setName("Zone2") + MEDCouplingFieldDouble.WriteVTK("Zone2.vtu",[f2]) + +.. image:: images/zonesMobm.jpg + +Solution +~~~~~~~~ + +:ref:`python_testmedcouplingloaderex2_solution` diff --git a/doc/tutorial/medcouplingloaderex2_fr.rst b/doc/tutorial/medcouplingloaderex2_fr.rst new file mode 100644 index 000000000..9c24d45ed --- /dev/null +++ b/doc/tutorial/medcouplingloaderex2_fr.rst @@ -0,0 +1,253 @@ + +MEDCoupling / MEDLoader - Exemple complet 2 - RJH +------------------------------------------------- + +Ici nous partons de deux fichiers MED très librement inspirés du réacteur expérimental +RJH (Réacteur Jules Horowitz). + +Le premier, :download:`Fixe.med `, représente la partie statique du réacteur +sans dispositif expérimental. + +.. image:: images/fixm.jpg + :scale: 70 + +Le deuxième, :download:`Mobile.med `, représente la partie mobile. + +.. image:: images/mobm.jpg + :scale: 70 + + +Objectif +~~~~~~~~ + +Le but ici est d'utiliser MEDCoupling pour: + +* intersecter ces deux maillages, +* y mettre un champ, +* et ainsi localiser les zones de recouvrement + + +Début de l'implémentation +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Pour commencer l'exercice importer tout le module python MEDLoader (qui inclus MEDCoupling). :: + + import MEDLoader as ml + +Lire et réparer le maillage statique "Fixe.med" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Avec l'API avancée lire tout le fichier "Fixe.med" et appeler ``fixm`` +l'objet de type ``MEDCouplingUMesh`` représentant le maillage statique. :: + + fixe = ml.MEDFileMesh.New("Fixe.med") + fixm = fixe.getMeshAtLevel(0) + +Pour ce qui suit il faut absolument que deux cellules se touchant partagent les mêmes edges. Pour ce faire, comme on est +en connectivité nodale, il faut absolument que les noeuds soient les mêmes. Il s'avère que cela n'est pas le cas ici. +Fusionner le noeuds distants de moins de 1e-10 et regarder l'impact sur le nombre de noeuds de ``fixm``. :: + + print "Nb of nodes in the file : %i " % (fixm.getNumberOfNodes()) + fixm.mergeNodes(1e-10) + print "Nb of non duplicated nodes : %i" % (fixm.getNumberOfNodes()) + +Même traitement pour ``Mobile.med``, le lire avec l'API avancée de MEDLoader (appeler ``mobm`` l'instance du maillage) +et le réparer en supprimant les noeuds dupliqués. :: + + mobile = ml.MEDFileMesh.New("Mobile.med") + mobm = mobile.getMeshAtLevel(0) + mobm.mergeNodes(1e-10) + +Le maillage du RJH étant plus général que des ``TRI6`` et des ``QUAD8``, on a besoin +de stocker ces cellules avec un type géométrique à ``QPOLYG`` (Quadratic Polygon) qui représente un polygone *quadratique* +(le terme n'est pas très heureux, encore des raisons historiques, ...), c'est-à-dire un polygone avec un nombre arbitraire +de côtés, et potentiellement des côtés en forme d'arcs de cercles plutôt que de segments de droites. +Ce type géométrique ``NORM_QPOLYG`` est dans MEDCoupling/MEDLoader et aussi dans MED fichier. + +Nous voudrions visualiser ces deux maillages dans PARAVIS/ParaView, mais nous rencontrons ici deux soucis: + +* les polygones non-convexes sont, par défaut, mal représentés par VTK en mode *Surface*. + Il faut sélectionner l'option avancée "Triangulate" dans le panneau Display de PARAVIS/ParaView pour avoir un rendu correct. +* les arcs de cercles ne sont pas correctement supportés par ParaView. Il faut les *tesséliser*, c'est-à-dire les transformer + en plusieurs petits segments de droite. La méthode ``MEDCouplingUMesh.tessellate2D()`` fait ce travail, mais modifie + le maillage. Nous faisons donc une copie préalable. Nous passons en paramètre la finesse de découpage (0.1 est suffisant + -- angle en radian). Attention donc à ne pas modifer ni ``fixm`` ni ``mobm`` ! :: + + fixm2 = fixm.deepCpy() # tessellate2D() modifies the current mesh + fixm2.tessellate2D(0.1) + fixm2.writeVTK("fixm2.vtu") + mobm2 = mobm.deepCpy() + mobm2.tessellate2D(0.1) + mobm2.writeVTK("mobm2.vtu") + +Faire une petite méthode ``displayVTK()``, faisant le travail qui nous servira souvent après. :: + + def displayVTK(m,fname): + tmp = m.deepCpy() + tmp.tessellate2D(0.1) + tmp.writeVTK(fname) + return + +Faire des réductions et des repérages de zones +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Le maillage ``mobm`` est en 6 parties distinctes (voir l'image au dessus). On ne veut récupérer que la première partie. +Utiliser ``MEDCouplingUMesh.partitionBySpreadZone()`` pour partitionner en zones ``mobm`` et ne prendre que la première zone. +Appeler cette nouvelle instance ``zone1Mobm`` et lui retirer tous les noeuds orphelins (``MEDCouplingUMesh.zipCoords()``) +Enfin l'afficher : :: + + zonesInMobm = mobm.partitionBySpreadZone() + print "Nb of zones in mobm : %i" % (len(zonesInMobm)) + zone1Mobm = mobm[zonesInMobm[0]] + zone1Mobm.zipCoords() + displayVTK(zone1Mobm, "zone1Mobm.vtu") + +.. image:: images/zone1Mobm.jpg + :scale: 70 + +Nous allons désormais travailler autour de ``zone1Mobm``. Nous allons réduire la zone de travail de ``fixm`` autour de ``zone1Mobm``. +Pour ce faire, réduire ``fixm`` en ne prenant que les cellules dans la boîte englobante +de ``zone1Mobm`` (``MEDCouplingUMesh.getBoundingBox()`` et ``MEDCouplingUMesh.getCellsInBoundingBox()``). +Appeler ce nouvel objet ``partFixm``, lui retirer ses noeuds orphelins et l'afficher. :: + + ids2 = fixm.getCellsInBoundingBox(zone1Mobm.getBoundingBox(),1e-10) + partFixm = fixm[ids2] + partFixm.zipCoords() + displayVTK(partFixm,"partFixm.vtu") + +.. image:: images/partFixmAndzone1Mobm.jpg + +Intersecter géométriquement deux maillages +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C'est le coeur de l'exercice. Nous allons intersecter géométriquement ``partFixm`` et ``zone1Mobm``. Cela revient à +partitionner à minima ``partFixm`` en cellules appartenant +soit complètement à ``partFixm`` soit à ``partFixm`` et ``zone1Mobm``. Invoquer la méthode statique +``MEDCouplingUMesh.Intersect2DMeshes()``, avec ``partFixm`` et ``zone1Mobm`` et mettre une précision +de 1e-10 (seuil de détection de fusion). Cette méthode retourne 3 paramètres (voir API dans la doc) que l'on appellera +ici ``partFixMob``, ``iPart`` et ``iMob`` dans cet ordre. + +Sur ``partFixMob`` merger les noeuds à 1e-10 près. :: + + partFixMob, iPart, iMob = ml.MEDCouplingUMesh.Intersect2DMeshes(partFixm,zone1Mobm,1e-10) + partFixMob.mergeNodes(1e-10) + +Récupérer et afficher la partie de ``partFixm`` qui n'est pas dans ``zone1Mobm``. Appeler ce maillage ``partFixmWithoutZone1Mobm``. :: + + ids3 = iMob.getIdsEqual(-1) + partFixmWithoutZone1Mobm = partFixMob[ids3] + displayVTK(partFixmWithoutZone1Mobm,"partFixmWithoutZone1Mobm.vtu") + +.. image:: images/partFixmWithoutZone1Mobm.jpg + :scale: 70 + +Maintenant, on va vérifier la qualité du résultat retourné par ``MEDCouplingUMesh.Intersect2DMeshes()``. +Pour ce faire on va passer 3 tests: + + * **Check #0** la somme des aires des cellules de ``partFixm`` et égale à celle de ``partFixMob`` + * **Check #1** la somme des aires des cellules de ``zone1Mobm`` et égale à la somme des cells de ``partFixMob`` + dont l'id dans ``iMob`` est different de -1 + * **Check #2** pour chaque cellule de ``partFixm``, son aire est égale à la somme des aires des cellules de ``partFixMob`` + +L'aire est une valeur algébrique. Donc attention cette verification ne peut se faire que si les cellules +sont toutes bien orientées ou à minima toutes orientées de la même manière. +Pour ce faire, regardons les aires des 38 cellules de ``partFixm`` (nom de variable : ``areaPartFixm``). :: + + areaPartFixm = partFixm.getMeasureField(ml.ON_CELLS).getArray() + print areaPartFixm.getValues() + +On voit que toutes les valeurs sont négatives. *Bilan*: ce fichier MED ne respecte pas la convention MED fichier ! +``partFixm`` étant mal orienté, et ``MEDCouplingUMesh.Intersect2DMeshes()`` conservant l'orientation, +``partFixMob`` est lui aussi mal orienté. +Bref, on va faire les comparaisons sur des tableaux de valeurs absolues. Vérifier alors **Check #0**. :: + + areaPartFixm = partFixm.getMeasureField(ml.ON_CELLS).getArray() + areaPartFixm.abs() + areaPartFixMob = partFixMob.getMeasureField(ml.ON_CELLS).getArray() + areaPartFixMob.abs() + val1=areaPartFixm.accumulate()[0] + val2=areaPartFixMob.accumulate()[0] + print "Check #0 %lf == %lf with precision 1e-8? %s" % (val1,val2,str(abs(val1-val2)<1e-8)) + +On peut passer au **Check #1**. L'esprit est le même que le **Check #0**. :: + + areaZone1Mobm = zone1Mobm.getMeasureField(ml.ON_CELLS).getArray() + areaZone1Mobm.abs() + val3 = areaZone1Mobm.accumulate()[0] + ids4 = iMob.getIdsNotEqual(-1) + areaPartFixMob2 = areaPartFixMob[ids4] + val4 = areaPartFixMob2.accumulate()[0] + print "Check #1 %lf == %lf with precision 1e-8 ? %s" % (val3,val4,str(abs(val3-val4)<1e-8)) + +Puis le **Check #2**. :: + + isCheck2OK = True + for icell in xrange(partFixm.getNumberOfCells()): + ids5 = iPart.getIdsEqual(icell) + areaOfCells = areaPartFixMob[ids5] + areaOfCells.abs() + if abs(areaOfCells.accumulate()[0] - areaPartFixm[icell]) > 1e-9: + isCheck2OK = False + pass + pass + print "Check #2? %s" % (str(isCheck2OK)) + +Utiliser les informations de l'intersection pour en faire des champs +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +OK pour ``partFixMob``. Nous souhaitons maintenant créer un champ représentant une fonction indicatrice de la zone + +Maintenant créer un champ aux cellules sur ``partFixMob`` en mettant 0 sur la partie +exclusive ``partFixm`` et 1 sur la partie couverte. Nous créons donc un champ représentant une fonction indicatrice. +Le visualiser en utilisant un fichier VTK (ne pas oublier l'option *Triangulate* de ParaView). :: + + f = ml.MEDCouplingFieldDouble(ml.ON_CELLS,ml.ONE_TIME) + m = partFixMob.deepCpy() + m.tessellate2D(0.1) + f.setMesh(m) + arr = ml.DataArrayDouble(partFixMob.getNumberOfCells(),1) + arr[iMob.getIdsEqual(-1)] = 0. + arr[iMob.getIdsNotEqual(-1)] = 1. + f.setArray(arr) + f.checkCoherency() + f.setName("Zone") + ml.MEDCouplingFieldDouble.WriteVTK("Zone.vtu",[f]) + +.. image:: images/LocationEx2.jpg + :scale: 100 + +Plus généralement prendre les zones 0, 1 et 5. Faire un champ aux cellules qui vaut 0 dans la zone exclusivement de ``fixm``, +1 dans zone #0, 2 dans la zone #1 et finalement 3 dans la zone #5. :: + + zonesMobm = ml.MEDCouplingUMesh.MergeUMeshesOnSameCoords([mobm[zonesInMobm[0]], mobm[zonesInMobm[1]], mobm[zonesInMobm[5]]]) + zonesMobm.zipCoords() + partFixMob2,iPart2,iMob2 = ml.MEDCouplingUMesh.Intersect2DMeshes(partFixm,zonesMobm,1e-10) + partFixMob2.mergeNodes(1e-10) + f2 = ml.MEDCouplingFieldDouble(ml.ON_CELLS, ml.ONE_TIME) + m2 = partFixMob2.deepCpy() + m2.tessellate2D(0.1) + f2.setMesh(m2) + arr = ml.DataArrayDouble(partFixMob2.getNumberOfCells(),1) + arr[iMob2.getIdsEqual(-1)]=0. + st = 0 + end = st + len(zonesInMobm[0]) + arr[iMob2.getIdsInRange(st,end)] = 1. + st += len(zonesInMobm[0]) ; + end = st + len(zonesInMobm[1]) + arr[iMob2.getIdsInRange(st,end)] = 2. + st += len(zonesInMobm[1]) + end = st + len(zonesInMobm[2]) + arr[iMob2.getIdsInRange(st,end)] = 3. + f2.setArray(arr) + f2.checkCoherency() + f2.setName("Zone2") + ml.MEDCouplingFieldDouble.WriteVTK("Zone2.vtu",[f2]) + +Ne pas oublier l'option *Triangulate* de ParaView dans le panneau Display pour bien voir les champs: + +.. image:: images/zonesMobm.jpg + +Solution +~~~~~~~~ + +:ref:`python_testmedcouplingloaderex2_solution` diff --git a/doc/tutorial/medcouplingnumpy_en.rst b/doc/tutorial/medcouplingnumpy_en.rst new file mode 100644 index 000000000..a6dc90e50 --- /dev/null +++ b/doc/tutorial/medcouplingnumpy_en.rst @@ -0,0 +1,190 @@ + +MEDCoupling, NumPy et SciPy +---------------------------- + +NumPy est un package additionnel de python qui permet de manipuler des tableaux de manière optimisée. +Il s'agit d'un prérequis optionnel de MEDCoupling. + +NumPy est une passerelle vers le HPC Python (multiprocessing, pyCUDA, SciPy...) et offre de puissantes +fonctions de calcul vectoriel. C'est pourquoi MEDCoupling offre des liens avec NumPy. +Un bon point de départ pour la découverte de NumPy est le `Tutorial NumPy `_ + +SciPy est aussi un package de python nécessitant NumPy. Il s'agit également d'un prérequis optionnel de MEDCoupling. +SciPy offre des services d'algèbre linéaire, Fast Fourrier Transform, etc ... + +Nous allons ici faire quelques petites manipulations pour voir ce lien entre MEDCoupling et NumPy / SciPy. + +Début de l'implémentation +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Pour commencer l'exercice importer le module Python ``MEDCoupling``: :: + + import MEDCoupling as mc + +NumPy est un prérequis optionnel, vérifions que nous en bénéficions bien : :: + + assert(mc.MEDCouplingHasNumPyBindings()) + +Nous pouvons alors importer NumPy sans problème: :: + + import numpy as np + +Convertir un DataArray en tableau NumPy et vice versa +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Créer une instance de ``DataArrayDouble`` ayant une composante et 12 tuples. +Et assigner 4. à tous les tuples. :: + + arr = mc.DataArrayDouble(12) + arr[:] = 4. + +Créons maintenant un tableau NumPy reposant sur les mêmes données que ``arr``. :: + + nparr = arr.toNumPyArray() + +Et afficher ``nparr``. :: + + print nparr.__repr__() + print nparr.tolist() + +Mais est ce qu'on ne nous a pas mystifié ? ``arr`` et ``nparr`` partagent-ils le même bloc mémoire ? +Pour le vérifier assignons 7.0 un tuple sur 2 avec ``nparr`` et vérifions que ``arr`` et ``nparr`` sont simultanément modifiés. :: + + nparr[::2] = 7. + print nparr.__repr__() + print arr.__repr__() + +C'est rigolo ! Mais si je détruis ``arr`` (le premier à avoir alloué la mémoire) est-ce que ``nparr`` est tué aussi ? +Ne risque-t-on pas le SIGSEGV ? +Testons : :: + + del arr + import gc; gc.collect() # Make sure the object has been deleted + print nparr.__repr__() + +OK super. Mais inversement puis je faire une instance de ``DataArrayDouble`` avec ``nparr`` ? Oui, en utilisant le constructeur +qui prend un ``nparray`` en entrée. +Et afficher le contenu.:: + + arr2 = mc.DataArrayDouble(nparr) + print arr2.__repr__() + +Modifions ``nparr`` en assignant 5.0 pour tous les tuples et vérifier que les 2 représentations ont bien été modifiées simultanément.:: + + nparr[:] = 5. + print nparr.__repr__() + print arr2.__repr__() + +Nous en profitons pour montrer un petit service pratique avec NumPy, à savoir, l'écriture optimisée. +Ecrivons le contenu binaire de ``nparr`` dans un fichier. :: + + f = open("toto.data","w+b") + a = np.memmap(f, dtype='float64', mode='w+', offset=0, shape=nparr.shape) + a[:] = nparr[:] + f.flush() + +Relisons "toto.data". :: + + f2 = open("toto.data","r+b") + b = np.memmap(f2,dtype='float64',mode='r',offset=0,shape=(12,)) + +Pour rigoler, assignons 3.14 à ``a``, flushons et relisons. :: + + a[:] = 3.14 + f.flush() + b = np.memmap(f2,dtype='float64',mode='r',offset=0,shape=(12,)) + print b.__repr__() + +On voit donc que le passage de MEDCoupling à NumPy se fait directement et de manière optimisée. Donc ca peut valoir le coup ! +Tout ce qui vient d'être montré marche aussi avec des ``DataArrayInt``. +Regardons la suite. + +Jouons avec SciPy +~~~~~~~~~~~~~~~~~ + +Nous allons créer un maillage non conforme. Le but sera de trouver la peau de ce maillage *sans* les surfaces non conformes. + +Nous allons faire cela en jouant avec les matrices creuses de SciPy (*sparse matrix*). Nous interpolons ce maillage non conforme +sur lui même, ce qui devrait donner une matrice diagonale si le maillage était conforme. + +Avant nous vérifions que l'on peut jouer avec SciPy ! :: + + assert(mc.MEDCouplingHasSciPyBindings()) + +Pour le moment créons un maillage non conforme. Nous collons simplement deux maillages structurés avec des +discrétisations spatiales différentes.:: + + c1 = mc.MEDCouplingCMesh() + arr1 = mc.DataArrayDouble(7) + arr1.iota() + c1.setCoords(arr1,arr1,arr1) + c2 = mc.MEDCouplingCMesh() + arr2 = mc.DataArrayDouble(9) + arr2.iota() + arr2 *= 6./8. + c2.setCoords(arr2,arr2,arr2) + +Dégénérons ``c1`` et ``c2`` en non-structuré, une translation de ``[6.,0.,0.]`` de ``c2``, et en faisant +l'agrégation des deux, c'est dans la poche. :: + + c1 = c1.buildUnstructured() + c2 = c2.buildUnstructured() + c2.translate([6.,0.,0.]) + c = mc.MEDCouplingUMesh.MergeUMeshes([c1,c2]) + +Attention des noeuds sont dupliqués, il faut invoquer ``mergeNodes()``. :: + + c.mergeNodes(1e-12) + +Récupérons la peau et les faces non conformes. Ca nous savons faire, car nous avons fait les exercices avant :-) :: + + skinAndNCFaces = c.computeSkin() + +Retirons les noeuds non utilisés. Cette étape n'est pas obligatoire. :: + + skinAndNCFaces.zipCoords() + +Voici à quoi cela ressemble: + +.. image:: images/skinandnccells_numpy.png + +OK maintenant on va séparer les cellules de bord des cellules non conformes grâce au ``MEDCouplingRemapper``. +Interpolons ``skinAndNCFaces`` sur lui-même. On acceptera un écart entre face de 1e-12 et un warping max de 0.01. :: + + from MEDCouplingRemapper import MEDCouplingRemapper + rem = MEDCouplingRemapper() + rem.setMaxDistance3DSurfIntersect(1e-12) + rem.setMinDotBtwPlane3DSurfIntersect(0.99) + rem.prepare(skinAndNCFaces,skinAndNCFaces,"P0P0") + +Récupérer la matrice creuse au format CSR du remapper. :: + + mat = rem.getCrudeCSRMatrix() + +.. note:: Le format CSR est un format de stockage efficace des matrices + creuses : `Sparse matrix CSR `_ + +Comme nous avons bien suivi les exos sur NumPy, grâce au NumPy array ``mat.indptr`` on peut récupérer +l'ensemble des lignes de la matrice ``mat`` ayant exactement un élément non nul. :: + + indptr = mc.DataArrayInt(mat.indptr) + indptr2 = indptr.deltaShiftIndex() + cellIdsOfSkin = indptr2.getIdsEqual(1) + +C'est presque fini. Créer le sous maillage contenant uniquement la peau et l'écrire dans +un fichier VTK ou MED pour le visualiser avec ParaView. :: + + skin = skinAndNCFaces[cellIdsOfSkin] + skin.writeVTK("skin.vtu") + +.. note:: ``skin`` contient des noeuds orphelins, on peut les retirer avec ``skin.zipCoords()``. + +Et voilà ce que cela donne : + +.. image:: images/skinonly_numpy.png + +Script complet +~~~~~~~~~~~~~~ + +:ref:`python_testMEDCouplingNumPy_solution` + diff --git a/doc/tutorial/medcouplingnumpy_fr.rst b/doc/tutorial/medcouplingnumpy_fr.rst new file mode 100644 index 000000000..a6dc90e50 --- /dev/null +++ b/doc/tutorial/medcouplingnumpy_fr.rst @@ -0,0 +1,190 @@ + +MEDCoupling, NumPy et SciPy +---------------------------- + +NumPy est un package additionnel de python qui permet de manipuler des tableaux de manière optimisée. +Il s'agit d'un prérequis optionnel de MEDCoupling. + +NumPy est une passerelle vers le HPC Python (multiprocessing, pyCUDA, SciPy...) et offre de puissantes +fonctions de calcul vectoriel. C'est pourquoi MEDCoupling offre des liens avec NumPy. +Un bon point de départ pour la découverte de NumPy est le `Tutorial NumPy `_ + +SciPy est aussi un package de python nécessitant NumPy. Il s'agit également d'un prérequis optionnel de MEDCoupling. +SciPy offre des services d'algèbre linéaire, Fast Fourrier Transform, etc ... + +Nous allons ici faire quelques petites manipulations pour voir ce lien entre MEDCoupling et NumPy / SciPy. + +Début de l'implémentation +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Pour commencer l'exercice importer le module Python ``MEDCoupling``: :: + + import MEDCoupling as mc + +NumPy est un prérequis optionnel, vérifions que nous en bénéficions bien : :: + + assert(mc.MEDCouplingHasNumPyBindings()) + +Nous pouvons alors importer NumPy sans problème: :: + + import numpy as np + +Convertir un DataArray en tableau NumPy et vice versa +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Créer une instance de ``DataArrayDouble`` ayant une composante et 12 tuples. +Et assigner 4. à tous les tuples. :: + + arr = mc.DataArrayDouble(12) + arr[:] = 4. + +Créons maintenant un tableau NumPy reposant sur les mêmes données que ``arr``. :: + + nparr = arr.toNumPyArray() + +Et afficher ``nparr``. :: + + print nparr.__repr__() + print nparr.tolist() + +Mais est ce qu'on ne nous a pas mystifié ? ``arr`` et ``nparr`` partagent-ils le même bloc mémoire ? +Pour le vérifier assignons 7.0 un tuple sur 2 avec ``nparr`` et vérifions que ``arr`` et ``nparr`` sont simultanément modifiés. :: + + nparr[::2] = 7. + print nparr.__repr__() + print arr.__repr__() + +C'est rigolo ! Mais si je détruis ``arr`` (le premier à avoir alloué la mémoire) est-ce que ``nparr`` est tué aussi ? +Ne risque-t-on pas le SIGSEGV ? +Testons : :: + + del arr + import gc; gc.collect() # Make sure the object has been deleted + print nparr.__repr__() + +OK super. Mais inversement puis je faire une instance de ``DataArrayDouble`` avec ``nparr`` ? Oui, en utilisant le constructeur +qui prend un ``nparray`` en entrée. +Et afficher le contenu.:: + + arr2 = mc.DataArrayDouble(nparr) + print arr2.__repr__() + +Modifions ``nparr`` en assignant 5.0 pour tous les tuples et vérifier que les 2 représentations ont bien été modifiées simultanément.:: + + nparr[:] = 5. + print nparr.__repr__() + print arr2.__repr__() + +Nous en profitons pour montrer un petit service pratique avec NumPy, à savoir, l'écriture optimisée. +Ecrivons le contenu binaire de ``nparr`` dans un fichier. :: + + f = open("toto.data","w+b") + a = np.memmap(f, dtype='float64', mode='w+', offset=0, shape=nparr.shape) + a[:] = nparr[:] + f.flush() + +Relisons "toto.data". :: + + f2 = open("toto.data","r+b") + b = np.memmap(f2,dtype='float64',mode='r',offset=0,shape=(12,)) + +Pour rigoler, assignons 3.14 à ``a``, flushons et relisons. :: + + a[:] = 3.14 + f.flush() + b = np.memmap(f2,dtype='float64',mode='r',offset=0,shape=(12,)) + print b.__repr__() + +On voit donc que le passage de MEDCoupling à NumPy se fait directement et de manière optimisée. Donc ca peut valoir le coup ! +Tout ce qui vient d'être montré marche aussi avec des ``DataArrayInt``. +Regardons la suite. + +Jouons avec SciPy +~~~~~~~~~~~~~~~~~ + +Nous allons créer un maillage non conforme. Le but sera de trouver la peau de ce maillage *sans* les surfaces non conformes. + +Nous allons faire cela en jouant avec les matrices creuses de SciPy (*sparse matrix*). Nous interpolons ce maillage non conforme +sur lui même, ce qui devrait donner une matrice diagonale si le maillage était conforme. + +Avant nous vérifions que l'on peut jouer avec SciPy ! :: + + assert(mc.MEDCouplingHasSciPyBindings()) + +Pour le moment créons un maillage non conforme. Nous collons simplement deux maillages structurés avec des +discrétisations spatiales différentes.:: + + c1 = mc.MEDCouplingCMesh() + arr1 = mc.DataArrayDouble(7) + arr1.iota() + c1.setCoords(arr1,arr1,arr1) + c2 = mc.MEDCouplingCMesh() + arr2 = mc.DataArrayDouble(9) + arr2.iota() + arr2 *= 6./8. + c2.setCoords(arr2,arr2,arr2) + +Dégénérons ``c1`` et ``c2`` en non-structuré, une translation de ``[6.,0.,0.]`` de ``c2``, et en faisant +l'agrégation des deux, c'est dans la poche. :: + + c1 = c1.buildUnstructured() + c2 = c2.buildUnstructured() + c2.translate([6.,0.,0.]) + c = mc.MEDCouplingUMesh.MergeUMeshes([c1,c2]) + +Attention des noeuds sont dupliqués, il faut invoquer ``mergeNodes()``. :: + + c.mergeNodes(1e-12) + +Récupérons la peau et les faces non conformes. Ca nous savons faire, car nous avons fait les exercices avant :-) :: + + skinAndNCFaces = c.computeSkin() + +Retirons les noeuds non utilisés. Cette étape n'est pas obligatoire. :: + + skinAndNCFaces.zipCoords() + +Voici à quoi cela ressemble: + +.. image:: images/skinandnccells_numpy.png + +OK maintenant on va séparer les cellules de bord des cellules non conformes grâce au ``MEDCouplingRemapper``. +Interpolons ``skinAndNCFaces`` sur lui-même. On acceptera un écart entre face de 1e-12 et un warping max de 0.01. :: + + from MEDCouplingRemapper import MEDCouplingRemapper + rem = MEDCouplingRemapper() + rem.setMaxDistance3DSurfIntersect(1e-12) + rem.setMinDotBtwPlane3DSurfIntersect(0.99) + rem.prepare(skinAndNCFaces,skinAndNCFaces,"P0P0") + +Récupérer la matrice creuse au format CSR du remapper. :: + + mat = rem.getCrudeCSRMatrix() + +.. note:: Le format CSR est un format de stockage efficace des matrices + creuses : `Sparse matrix CSR `_ + +Comme nous avons bien suivi les exos sur NumPy, grâce au NumPy array ``mat.indptr`` on peut récupérer +l'ensemble des lignes de la matrice ``mat`` ayant exactement un élément non nul. :: + + indptr = mc.DataArrayInt(mat.indptr) + indptr2 = indptr.deltaShiftIndex() + cellIdsOfSkin = indptr2.getIdsEqual(1) + +C'est presque fini. Créer le sous maillage contenant uniquement la peau et l'écrire dans +un fichier VTK ou MED pour le visualiser avec ParaView. :: + + skin = skinAndNCFaces[cellIdsOfSkin] + skin.writeVTK("skin.vtu") + +.. note:: ``skin`` contient des noeuds orphelins, on peut les retirer avec ``skin.zipCoords()``. + +Et voilà ce que cela donne : + +.. image:: images/skinonly_numpy.png + +Script complet +~~~~~~~~~~~~~~ + +:ref:`python_testMEDCouplingNumPy_solution` + diff --git a/doc/tutorial/medcouplingremapper_en.rst b/doc/tutorial/medcouplingremapper_en.rst new file mode 100644 index 000000000..42e16e305 --- /dev/null +++ b/doc/tutorial/medcouplingremapper_en.rst @@ -0,0 +1,125 @@ + +Interpolate with MEDCouplingRemapper +------------------------------------ + +The purpose of this exercise is to interpolate between two meshes "srcMesh" and "trgMesh". +To make the reader aware of some subtleties about interpolation, a special case +is considered: "srcMesh" is a refinement of "trgMesh". + + +Implementation start +~~~~~~~~~~~~~~~~~~~~ + +To start the exercise import the whole Python module MEDCouplingRemapper. :: + + from MEDCouplingRemapper import * + + +Create a MEDCouplingUMesh 2D instance, built from a Cartesian mesh +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Build the unstructured mesh "trgMesh" from a 2D Cartesian mesh with 10x10 cells, +starting at point [0.,0.] and having a step of 1.0 along the X and Y directions. +:: + + arr=DataArrayDouble(11) ; arr.iota(0) + trgMesh=MEDCouplingCMesh() ; trgMesh.setCoords(arr,arr) ; trgMesh=trgMesh.buildUnstructured() + +Create the source mesh "srcMesh" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Create a mesh "srcMesh" from a 2D Cartesian mesh having 20x20 cells and starting +at point [0.,0.] with a step of 0.5 along the X and Y directions. +:: + + arr=DataArrayDouble(21) ; arr.iota(0) ; arr*=0.5 + srcMesh=MEDCouplingCMesh() ; srcMesh.setCoords(arr,arr) ; srcMesh=srcMesh.buildUnstructured() + +Triangulate the 20 first cells of source mesh (using MEDCouplingUMesh.simplexize()). +Store the result in "srcMesh". +:: + + tmp=srcMesh[:20] ; tmp.simplexize(0) + srcMesh=MEDCouplingUMesh.MergeUMeshes([tmp,srcMesh[20:]]) + +Interpolate using MEDCouplingRemapper +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Compute the first part of the interpolation matrix with the following considerations: +"srcMesh" is regarded as a discretization at cell points, and so is "trgMesh". +To this end invoke prepare() on an instance of the MEDCouplingRemapper class ("remap"). +:: + + remap=MEDCouplingRemapper() + remap.prepare(srcMesh,trgMesh,"P0P0") + +Check that the computed matrix is correct in this trivial case: get the internal +interpolation matrix by calling MEDCouplingRemapper.getCrudeMatrix() and save it in +"myMatrix". This matrix gives for each cell in "trgMesh" the cell IDs of "srcMesh" +which are intersecting the target and the area of intersection. Check that for each +cell in "trgMesh" the sum of the areas is always equal to 1.0. +:: + + myMatrix=remap.getCrudeMatrix() + print myMatrix # to see what it looks like + sumByRows=DataArrayDouble(len(myMatrix)) + for i,wIt in enumerate(sumByRows): + su=0. + for it in myMatrix[i]: + su+=myMatrix[i][it] + wIt[0]=su + print "Does interpolation look OK? %s"%(str(sumByRows.isUniform(1.,1e-12))) + +.. note:: Some triangles were added into "srcMesh" to make "myMatrix" less boring. "myMatrix". + +Create a field at cell points "srcField" built from the following analytical formula: +"7-sqrt((x-5.)*(x-5.)+(y-5.)*(y-5.))" where x and y represent the usual space coordinates. +:: + + srcField=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) ; srcField.setMesh(srcMesh) + srcField.fillFromAnalytic(1,"7-sqrt((x-5.)*(x-5.)+(y-5.)*(y-5.))") ; srcField.getArray().setInfoOnComponent(0,"powercell [W]") + +.. image:: images/Remapper1.png + +Apply the interpolation using MEDCouplingRemapper.transferField(): :: + + remap.transferField(srcField,1e300) + +.. note:: 1e300 is a default value. It will be systematically assigned to all cells + in "trgField" which do not intersect any cell in "srcMesh". The common usage is to assign + a huge value to identify what is often considered as a bug. But some other use cases + indicate using 0 here, e.g. when considering a parallel interpolation merged ultimately + with an addition. + +.. note:: An exception is raised since "srcField" hasn't got an explicitly defined nature. + In what follows the impact of this attribute on the final result will be explained. + +Set the nature of "srcField" to ConservativeVolumic (intensive field, e.g. a temperature). :: + + srcField.setNature(ConservativeVolumic) + trgFieldCV=remap.transferField(srcField,1e300) + +Check that with this nature the field integral is conserved. On the other side +the sum on cells (accumulation) is NOT conserved. :: + + print "ConservativeVolumic %lf == %lf"%(srcField.integral(True)[0],trgFieldCV.integral(True)[0]) + print "ConservativeVolumic %lf != %lf"%(srcField.getArray().accumulate()[0],trgFieldCV.getArray().accumulate()[0]) + +Set the nature of "srcField" to IntegralGlobConstraint (extensive field, e.g. a power). :: + + srcField.setNature(IntegralGlobConstraint) + trgFieldI=remap.transferField(srcField,1e300) + +Check that given this nature the field integral is NOT conserved. On the other side the +cumulative sum on cells is conserved. :: +:: + + print "IntegralGlobConstraint %lf != %lf"%(srcField.integral(True)[0],trgFieldI.integral(True)[0]) + print "IntegralGlobConstraint %lf == %lf"%(srcField.getArray().accumulate()[0],trgFieldI.getArray().accumulate()[0]) + +Visualize the fields using ParaViS. + +Solution +~~~~~~~~ + +:ref:`python_testMEDCouplingremapper1_solution` diff --git a/doc/tutorial/medcouplingremapper_fr.rst b/doc/tutorial/medcouplingremapper_fr.rst new file mode 100644 index 000000000..8ea9dfa2f --- /dev/null +++ b/doc/tutorial/medcouplingremapper_fr.rst @@ -0,0 +1,150 @@ + +MEDCouplingRemapper : interpolation de champs +--------------------------------------------- + +Nous allons ici effectuer une interpolation entre deux maillages ``srcMesh`` et ``trgMesh``. +Pour mettre l'accent sur certaines petites subtilités de l'interpolation, nous prenons un cas particulier où ``srcMesh`` est +un maillage raffiné de ``trgMesh`` (avec certaines cellules découpées plus finement). + +Début de l'implémentation +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Pour commencer l'exercice importer le module Python ``MEDCoupling`` et la +classe ``MEDCouplingRemapper`` du module ``MEDCouplingRemapper``. :: + + import MEDCoupling as mc + from MEDCouplingRemapper import MEDCouplingRemapper + + +Créer le maillage target +~~~~~~~~~~~~~~~~~~~~~~~~ + +Construire le maillage non structuré ``trgMesh`` issu d'un maillage cartésien 2D 10x10 commençant au +point ``[0.,0.]`` et ayant un pas de 1. selon X et selon Y : :: + + arr = mc.DataArrayDouble(11) + arr.iota(0) + trgMesh = mc.MEDCouplingCMesh() + trgMesh.setCoords(arr,arr) + trgMesh = trgMesh.buildUnstructured() + +Créer le maillage source +~~~~~~~~~~~~~~~~~~~~~~~~ + +Créer un maillage ``srcMesh`` issu d'un maillage cartésien 2D 20x20 cellules commençant +aussi au point ``[0.,0.]`` et ayant un pas de 0.5 selon X et selon Y : :: + + arr = mc.DataArrayDouble(21) + arr.iota(0) + arr *= 0.5 + srcMesh = mc.MEDCouplingCMesh() + srcMesh.setCoords(arr,arr) + srcMesh = srcMesh.buildUnstructured() + +Afin de rendre l'exercise plus intéressant, triangulariser à l'aide de ``MEDCouplingUMesh.simplexize()`` +les 20 premières cellules de ``srcMesh`` +(les simplexes 2D sont les triangles). Mettre le résultat dans ``srcMesh``. :: + + tmp = srcMesh[:20] # Extract a sub-part of srcMesh + tmp.simplexize(0) + srcMesh = mc.MEDCouplingUMesh.MergeUMeshes([tmp,srcMesh[20:]]) + +Interpoler avec MEDCouplingRemapper +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Nous rappelons que pour projeter un champ d'un maillage vers un autre, il faut d'abord préparer la matrice d'interpolation +qui contient les ratios de projection. + +Calculer la première partie de la matrice d'interpolation de ``srcMesh`` (discrétisée aux cellules - *P0*) +vers ``trgMesh`` (discrétisée aux cellules également). +Pour ce faire, invoquer ``MEDCouplingRemapper.prepare()`` sur une instance (``remap``) de ``MEDCouplingRemapper``. :: + + remap = MEDCouplingRemapper() + remap.prepare(srcMesh,trgMesh,"P0P0") + +Vérifier que la matrice calculée par la méthode est correcte dans notre cas trivial. +Pour ce faire, récupérer dans ``myMatrix`` la matrice interne retournée par ``MEDCouplingRemapper.getCrudeMatrix()``. +Celle-ci donne pour chaque cellule de ``trgMesh`` les identifiants de cellules de ``srcMesh`` avec +lesquelles elle s'intersecte, et l'aire d'intersection correspondante. + +Vérifier notamment que pour chaque cellule de ``trgMesh`` la somme des aires fait toujours 1. :: + + myMatrix = remap.getCrudeMatrix() + print myMatrix + sumByRows = mc.DataArrayDouble(len(myMatrix)) + for i,wIt in enumerate(sumByRows): + su = 0. + for it in myMatrix[i]: + su += myMatrix[i][it] + wIt[0] = su + print "Is interpolation well prepared?", sumByRows.isUniform(1.,1e-12) + +.. note:: Les triangles dans ``srcMesh`` ont été rajoutés pour casser la monotonie de la matrice ``myMatrix``. + +.. note:: Comme on le voit, la préparation ne nécessite que les deux maillages, et rien d'autre. + +Construire un champ aux cellules "srcField" construit à partir de la formule analytique +suivante ``7-sqrt((x-5.)*(x-5.)+(y-5.)*(y-5.))`` : :: + + srcField = mc.MEDCouplingFieldDouble(mc.ON_CELLS, mc.ONE_TIME) + srcField.setMesh(srcMesh) + srcField.fillFromAnalytic(1,"7-sqrt((x-5.)*(x-5.)+(y-5.)*(y-5.))") + srcField.getArray().setInfoOnComponent(0, "powercell [W]") + +Voici à quoi ressemble ce champ : + +.. image:: images/Remapper1.png + +Appliquer l'interpolation avec ``MEDCouplingRemapper.transferField()`` : :: + + remap.transferField(srcField, 1e300) + +.. note:: 1e300 est une valeur par défaut. Cette valeur sera systématiquement assignée à toute cellule + de ``trgField`` n'interceptant aucune cellule de ``srcMesh``. En général, les utilisateurs mettent une + valeur énorme pour repérer ce qui est souvent un bug. Mais d'autres utilisateurs, dans la perspective + d'une interpolation parallèle par exemple, mettent 0. + +.. note:: Une exception est envoyée car ``srcField`` n'a pas de *nature* définie. + Nous allons voir dans la suite l'impact de cet attribut sur le résultat final. + +Mettre la nature de ``srcField`` à ``ConservativeVolumic``. Cela signifie que le champ doit être interprété commé étant +intensif (une température par exemple). :: + + srcField.setNature(mc.ConservativeVolumic) + trgFieldCV = remap.transferField(srcField,1e300) + +Vérifier qu'avec la nature ``ConservativeVolumic``, l'intégrale du champ est conservée. Par contre, +la somme sur les cellules (accumulation) n'est **pas** conservée ! :: + + integSource = srcField.integral(True)[0] + integTarget = trgFieldCV.integral(True)[0] + print "ConservativeVolumic -- integrals: %lf == %lf" % (integSource, integTarget) + + accSource = srcField.getArray().accumulate()[0] + accTarget = trgFieldCV.getArray().accumulate()[0] + print "ConservativeVolumic -- sums: %lf != %lf" % (accSource, accTarget) + + +Maintenant mettre la nature de ``srcField`` à ``IntegralGlobConstraint``. Le champ doit être interprété commé étant +extensif (par exemple une puissance ou un volume). :: + + srcField.setNature(mc.IntegralGlobConstraint) + trgFieldI = remap.transferField(srcField,1e300) + +Vérifier qu'avec la nature ``IntegralGlobConstraint``, l'intégrale du champ n'est **pas** conservée. +Par contre, la somme sur les cellules est conservée. :: + + integSource = srcField.integral(True)[0] + integTarget = trgFieldI.integral(True)[0] + print "IntegralGlobConstraint -- integrals: %lf != %lf" % (integSource, integTarget) + + accSource = srcField.getArray().accumulate()[0] + accTarget = trgFieldI.getArray().accumulate()[0] + print "IntegralGlobConstraint -- sums: %lf == %lf" % (accSource, accTarget) + +Visualiser les champs avec ParaViS, ou en les écrivant dans un fichier. + +Solution +~~~~~~~~ + +:ref:`python_testMEDCouplingremapper1_solution` diff --git a/doc/tutorial/medloader_SplitAndMerge1_en.rst b/doc/tutorial/medloader_SplitAndMerge1_en.rst new file mode 100644 index 000000000..9f814e297 --- /dev/null +++ b/doc/tutorial/medloader_SplitAndMerge1_en.rst @@ -0,0 +1,184 @@ + +Splitting and merging a MED file using MEDLoader's advanced API +--------------------------------------------------------------- + +Objective +~~~~~~~~~ + +The aim of this exercise is to create a mesh with mixed geometrical type from scratch, and to associate two fields to it: + +* a field on cells "CellField" +* a field on nodes "NodeField" + + +Implementation start +~~~~~~~~~~~~~~~~~~~~ + +Create an unstructured mesh "m0" built from a 30x30 structured mesh (meshDim=2, spaceDim=2). +Each of the even cell of "m0" is "simplexized" (cut in triangles - method MEDCouplingUMesh.simplexize(0)) :: + + from MEDLoader import * + m0=MEDCouplingCMesh() + arr=DataArrayDouble(31,1) ; arr.iota(0.) + m0.setCoords(arr,arr) + m0=m0.buildUnstructured() + m00=m0[::2] ; m00.simplexize(0) ; m01=m0[1::2] + m0=MEDCouplingUMesh.MergeUMeshes([m00,m01]) + m0.getCoords()[:]*=1/15. + m0.setName("mesh") + +.. note:: The call to setName() on "m0" is mandatory. Don't forget that the correct naming of the meshes is paramount in the MED file context. + +Create the fields "CellField" and "NodeField" at the time-stamp (5,6) corresponding to 5.6s. +:: + + CellField=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) ; CellField.setTime(5.6,5,6) ; CellField.setMesh(m0) + CellField.setName("CellField") + CellField.fillFromAnalytic(1,"exp(-((x-1)*(x-1)+(y-1)*(y-1)))") ; CellField.getArray().setInfoOnComponent(0,"powercell [W]") + NodeField=MEDCouplingFieldDouble(ON_NODES,ONE_TIME) ; NodeField.setTime(5.6,5,6) ; NodeField.setMesh(m0) + NodeField.setName("NodeField") + NodeField.fillFromAnalytic(1,"exp(-((x-1)*(x-1)+(y-1)*(y-1)))") ; NodeField.getArray().setInfoOnComponent(0,"powernode [W]") + +"CellField" looks like this: + +.. image:: images/SplitAndMergeCell1.jpg + + +Mesh partitionning +~~~~~~~~~~~~~~~~~~ + +Cut "m0" into two distinct parts called "proc0" and "proc1". "proc0" will be contained in the bounding box [(0.,0.4),(0.,0.4)] (with a precision of 1e-10). Use the method MEDCouplingUMesh.getCellsInBoundingBox(). "proc1" is simply the complementary part of "proc0" (method DataArrayInt.buildComplement()). :: + + proc0=m0.getCellsInBoundingBox([(0.,0.4),(0.,0.4)],1e-10) + proc1=proc0.buildComplement(m0.getNumberOfCells()) + +.. image:: images/SplitAndMerge2.jpg + +Writing into two different MED files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Starting with the partition above ("proc0" and "proc1") create two MED files called "proc0.med" et "proc1.med". :: + + NodeField0=NodeField[proc0] ; CellField0=CellField[proc0] ; CellField0.setMesh(NodeField0.getMesh()) + NodeField1=NodeField[proc1] ; CellField1=CellField[proc1] ; CellField1.setMesh(NodeField1.getMesh()) + + proc0_fname="proc0.med" + MEDLoader.WriteField(proc0_fname,NodeField0,True) + MEDLoader.WriteFieldUsingAlreadyWrittenMesh(proc0_fname,CellField0) + + proc1_fname="proc1.med" + MEDLoader.WriteField(proc1_fname,NodeField1,True) + MEDLoader.WriteFieldUsingAlreadyWrittenMesh(proc1_fname,CellField1) + +Reading and merging 2 MED files - Easy (but non optimal) version +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In the two files "proc0.med" and "proc1.med" read the respective "CellField" with the basic API. Aggregate the two and store the result in "CellField_read". :: + + CellField0_read=MEDLoader.ReadFieldCell("proc0.med","mesh",0,"CellField",5,6) + CellField1_read=MEDLoader.ReadFieldCell("proc1.med","mesh",0,"CellField",5,6) + CellField_read=MEDCouplingFieldDouble.MergeFields([CellField0_read,CellField1_read]) + +.. note:: It might seem to the reader that the cell type information is repeated uselessly, but don't forget that the MED file norm doesn't forbid a field to be defined simultaneously on nodes and on Gauss points for example ... + +Compare "CellField_read" and "CellField0". Problem: because of the constraint on the MED file numbering, the initial numbering has been lost. Or more exactly there is no standard way to retrieve it. This means that a call to MEDCouplingFieldDouble.isEqual() won't succeed. Let's use the method MEDCouplingFieldDouble.substractInPlaceDM() which operates a renumbering based on a given policy (see HTML doc). +To this end, create a deep copy of "CellField" into "CellFieldCpy" and invoke substractInPlaceDM() on it (DM stands for "Different Meshes", contrarily to substract() which only succeeds if the fields share the same mesh). :: + + CellFieldCpy=CellField.deepCpy() + CellFieldCpy.substractInPlaceDM(CellField_read,10,1e-12) + CellFieldCpy.getArray().abs() + print CellFieldCpy.getArray().isUniform(0.,1e-12) + +Let's do the same on "NodeField". The main difference here is that redundant information is created at the boundary. :: + + NodeField0_read=MEDLoader.ReadFieldNode("proc0.med","mesh",0,"NodeField",5,6) + NodeField1_read=MEDLoader.ReadFieldNode("proc1.med","mesh",0,"NodeField",5,6) + NodeField_read=MEDCouplingFieldDouble.MergeFields([NodeField0_read,NodeField1_read]) + +.. note:: The mesh is read a second time here, which can be damaging in terms of performance. + +Invoke MEDCouplingUMesh.mergeNodes() on "NodeField_read" to remove duplicate nodes. +Make a deep copy called "NodeFieldCpy" from "NodeField" and call MEDCouplingUMesh.mergeNodes(). :: + + NodeField_read.mergeNodes(1e-10) + NodeFieldCpy=NodeField.deepCpy() + NodeFieldCpy.mergeNodes(1e-10) + +.. note:: mergeNodes() takes two epsilons: the first classical one on the absolute distance between nodes, and the second expressing a tolerance on the values. If the field value of two nodes to be merged is bigger than this an exception is raised. + +Compare "NodeFieldCpy" and "NodeField_read" still using MEDCouplingFieldDouble.substractInPlaceDM(). :: + + NodeFieldCpy.substractInPlaceDM(NodeField_read,10,1e-12) + print NodeFieldCpy.getArray().isUniform(0.,1e-12) + + +Read/write of two separated MED files - More complex but more efficient version +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We show a more systematic and more general method to merge files. +This is the preferred route when dealing with big files . +This method adds performance but also allows to add extra information. + +Using the advanced API read the meshes of two files "proc0.med" and "proc1.med" and aggregate the result in an MEDFileUMesh instance "mergeMLMesh". +Handle all the levels (even if there is only one in the present case) using the method +MEDFileUMesh.getNonEmptyLevels() on the instance coming from "proc0.med". :: + + fileNames=["proc0.med","proc1.med"] + msML=[MEDFileMesh.New(fname) for fname in fileNames] + fsML=[MEDFileFields.New(fname) for fname in fileNames] + mergeMLMesh=MEDFileUMesh() + mergeMLFields=MEDFileFields() + for lev in msML[0].getNonEmptyLevels(): + o2nML=len(msML[0].getNonEmptyLevels())*[None] + cs=[mML.getCoords() for mML in msML] + mergeMLMesh.setCoords(DataArrayDouble.Aggregate(cs)) + ms=[mML.getMeshAtLevel(lev) for mML in msML] + m=MEDCouplingUMesh.MergeUMeshes(ms) ; m.setCoords(mergeMLMesh.getCoords()) + o2nML[lev]=m.sortCellsInMEDFileFrmt() + mergeMLMesh.setMeshAtLevel(lev,m) + pass + + for fieldName in fsML[0].getFieldsNames(): + fmts=[fML[fieldName] for fML in fsML] + mergeField=MEDFileFieldMultiTS() + for dt,it,tim in fmts[0].getTimeSteps(): + fts=[fmt[dt,it] for fmt in fmts] + arrs=len(fts)*[None] + for typp in fts[0].getTypesOfFieldAvailable(): + arr1s=[] + if typp==ON_CELLS: + for ft in fts: + for geoTyp,smth in ft.getFieldSplitedByType(): + if geoTyp!=NORM_ERROR: + smth1=filter(lambda x:x[0]==ON_CELLS,smth) + arr2s=[ft.getUndergroundDataArray()[elt[1][0]:elt[1][1]] for elt in smth1] + arr1s.append(DataArrayDouble.Aggregate(arr2s)) + pass + pass + pass + pass + else: + for ft in fts: + smth=filter(lambda x:x[0]==NORM_ERROR,ft.getFieldSplitedByType()) + arr2=DataArrayDouble.Aggregate([ft.getUndergroundDataArray()[elt[1][0][1][0]:elt[1][0][1][1]] for elt in smth]) + arr1s.append(arr2) + pass + pass + arr=DataArrayDouble.Aggregate(arr1s) + if typp==ON_CELLS: + arr.renumberInPlace(o2nML[lev]) + mcf=MEDCouplingFieldDouble(typp,ONE_TIME) ; mcf.setName(fieldName) ; mcf.setTime(tim,dt,it) ; mcf.setArray(arr) + mcf.setMesh(mergeMLMesh.getMeshAtLevel(lev)) ; mcf.checkCoherency() + mergeField.appendFieldNoProfileSBT(mcf) + pass + pass + mergeMLFields.pushField(mergeField) + pass + mergeMLMesh.write("merge.med",2) + mergeMLFields.write("merge.med",0) + + +Solution +~~~~~~~~ + +:ref:`python_testMEDLoaderSplitAndMerge1_solution` diff --git a/doc/tutorial/medloader_SplitAndMerge1_fr.rst b/doc/tutorial/medloader_SplitAndMerge1_fr.rst new file mode 100644 index 000000000..10e39f5db --- /dev/null +++ b/doc/tutorial/medloader_SplitAndMerge1_fr.rst @@ -0,0 +1,220 @@ + +Spliter et fusionner un fichier MED grâce à l'API avancée de MEDLoader +---------------------------------------------------------------------- + +Objectif +~~~~~~~~ + +Cet exercise présente un cas complet et avancé d'utilisation de l'API avancée de MEDLoader. +Le but est de créer un maillage multi-type à partir de rien avec 2 champs : + +* un champ aux cellules "CellField" +* un champ aux noeuds "NodeField" + +Nous allons ensuite couper ces champs en deux parties (dans le but d'un traitement en parallèle par un code par exemple) +et aussi montrer comment re-fusionner deux champs à partir de morceaux disjoints. + +Début de l'implémentation +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Créer un unstructured mesh ``m0`` issu d'un maillage structuré (meshDim=2, spaceDim=2) de 30*30. +Chacune des cellules paires du maillage sera *simplexisée* (i.e. coupée en triangle - méthode ``MEDCouplingUMesh.simplexize(0)``) :: + + import MEDLoader as ml + from MEDLoader import MEDLoader + + m0 = ml.MEDCouplingCMesh() + arr = ml.DataArrayDouble(31,1) ; arr.iota(0.) + m0.setCoords(arr,arr) + m0 = m0.buildUnstructured() + m00 = m0[::2] # Extract even cells + m00.simplexize(0) + m01 = m0[1::2] + m0 = ml.MEDCouplingUMesh.MergeUMeshes([m00,m01]) + m0.getCoords()[:] *= 1/15. + m0.setName("mesh") + +.. note:: Le ``setName()`` sur "m0" est obligatoire. Ne pas oublier que dans le contexte MED fichier + le nommage correct des maillages est fondamental. + +Créer les champs ``cellField`` et ``nodeField`` au pas de temps identifié à (5,6) et au pas de temps 5.6 s. :: + + # Cell field + cellField = ml.MEDCouplingFieldDouble(ml.ON_CELLS, ml.ONE_TIME) + cellField.setTime(5.6,5,6) + cellField.setMesh(m0) + cellField.setName("CellField") + cellField.fillFromAnalytic(1,"exp(-((x-1)*(x-1)+(y-1)*(y-1)))") + cellField.getArray().setInfoOnComponent(0,"powercell [W]") + # Node field + nodeField = ml.MEDCouplingFieldDouble(ml.ON_NODES,ml.ONE_TIME) + nodeField.setTime(5.6,5,6) + nodeField.setMesh(m0) + nodeField.setName("NodeField") + nodeField.fillFromAnalytic(1,"exp(-((x-1)*(x-1)+(y-1)*(y-1)))") + nodeField.getArray().setInfoOnComponent(0,"powernode [W]") + +On obtient par exemple pour "CellField" ceci : + +.. image:: images/SplitAndMergeCell1.jpg + + +Partitionnement de maillage +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Couper ``m0`` en deux parties distinctes. Les deux parties seront nommées ``proc0`` et ``proc1``. +``proc0`` sera la partie dans la boîte englobante (``MEDCouplingUMesh.getCellsInBoundingBox()``) ``[(0.,0.4),(0.,0.4)]`` +à 1e-10 près. ``proc1`` sera le complémentaire (``DataArrayInt.buildComplement()``). :: + + proc0 = m0.getCellsInBoundingBox([(0.,0.4),(0.,0.4)],1e-10) + proc1 = proc0.buildComplement(m0.getNumberOfCells()) + +.. image:: images/SplitAndMerge2.jpg + +Ecriture dans 2 fichiers MED séparés +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +En partant du partitionnement ``proc0`` et ``proc1`` créer 2 fichiers MED appelés "proc0.med" et "proc1.med" : :: + + nodeField0 = nodeField[proc0] ; cellField0 = cellField[proc0] ; cellField0.setMesh(nodeField0.getMesh()) + nodeField1 = nodeField[proc1] ; cellField1 = cellField[proc1] ; cellField1.setMesh(nodeField1.getMesh()) + + proc0_fname = "proc0.med" + MEDLoader.WriteField(proc0_fname, nodeField0, True) + MEDLoader.WriteFieldUsingAlreadyWrittenMesh(proc0_fname, cellField0) + + proc1_fname = "proc1.med" + MEDLoader.WriteField(proc1_fname,nodeField1,True) + MEDLoader.WriteFieldUsingAlreadyWrittenMesh(proc1_fname,cellField1) + +Lecture et fusion des 2 fichiers MED séparés (non optimal) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Partant de "proc0.med" et de "proc1.med" lire leur "CellField" respectif avec l'API basique, +agréger les deux et mettre le résultat dans ``cellField_read`` : :: + + cellField0_read = MEDLoader.ReadFieldCell("proc0.med","mesh",0,"CellField",5,6) + cellField1_read = MEDLoader.ReadFieldCell("proc1.med","mesh",0,"CellField",5,6) + cellField_read = ml.MEDCouplingFieldDouble.MergeFields([cellField0_read,cellField1_read]) + +.. note:: On peut avoir l'impression que l'information Cell (méthode ``ReadFieldCell``) est répétée de manière abusive + (effectivement le champ "CellField" a été créé aux cellules), + mais ne pas oublier que dans la norme MED fichier rien n'interdit qu'un champ repose sur des cellules mais + aussi simultanément sur des noeuds, ou des points de Gauss ... + +Comparer ``cellField_read`` et ``cellField0``. Problème, à cause de la contrainte sur la numérotation MED fichier, +on a perdu la numérotation initiale. Ou plus exactement il n'y a pas +de moyen standard de retrouver la numérotation originale. Donc un ``MEDCouplingFieldDouble.isEqual()`` +n'est pas suffisant. Utilisons un ``MEDCouplingFieldDouble.substractInPlaceDM()`` +qui opère pour nous une renumérotation suivant une politique particulière (*policy*, voir doc html). +Pour ce faire une copie profonde (*deep copy*) de ``cellField`` vers ``cellFieldCpy`` et opérer sur cette copie +un ``substractInPlaceDM`` (DM pour "Different Meshes", contrairement à ``substract`` qui ne marche que +s'ils partagent le même maillage): :: + + cellFieldCpy = cellField.deepCpy() + cellFieldCpy.substractInPlaceDM(cellField_read,10,1e-12) + cellFieldCpy.getArray().abs() + print cellFieldCpy.getArray().isUniform(0.,1e-12) + +Opérons le même travail sur "NodeField" que celui réalisé plus haut sur "CellField". +La différence ici c'est qu'il va y avoir duplication de l'information à la frontière, car les noeuds limites sont partagés +des deux côtés : :: + + nodeField0_read = MEDLoader.ReadFieldNode("proc0.med","mesh",0,"NodeField",5,6) + nodeField1_read = MEDLoader.ReadFieldNode("proc1.med","mesh",0,"NodeField",5,6) + nodeField_read = ml.MEDCouplingFieldDouble.MergeFields([nodeField0_read, nodeField1_read]) + +.. note:: Dans cette partie, on a donc relu le maillage une deuxième fois ce qui peut être pénalisant ... + +Invoquer ``MEDCouplingUMesh.mergeNodes()`` sur ``nodeField_read`` pour lui retirer les noeuds dupliqués. +Faire une deep copy appelée ``nodeFieldCpy`` de ``nodeField`` +et supprimer encore les doublons : :: + + nodeField_read.mergeNodes(1e-10) + nodeFieldCpy = nodeField.deepCpy() + nodeFieldCpy.mergeNodes(1e-10) + +.. note:: A noter que ``mergeNodes()`` possède deux paramètres de précisions (*epsilons*), le premier, + classique, sur la distance absolue entre les noeuds, et l'autre sur la tolérance acceptée sur les valeurs du champ. + Si la valeur du champ de deux noeuds à fusionner dépasse ce deuxième epsilon, une exception est levée. + +Comparer ``nodeFieldCpy`` et ``nodeField_read`` toujours en utilisant ``MEDCouplingFieldDouble.substractInPlaceDM()`` : :: + + nodeFieldCpy.substractInPlaceDM(nodeField_read,10,1e-12) + print nodeFieldCpy.getArray().isUniform(0.,1e-12) + + +Lecture et merge des 2 fichiers MED séparés (moins facile, mais plus optimal) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Il s'agit ici de faire une méthode plus systématique et potentiellement plus générale de fusion de fichiers. +Pour de gros fichiers cette approche est à préférer. +Outre la performance, cette approche a l'avantage de pouvoir rajouter des infos. + +Avec l'API avancée lire les maillages des deux fichiers "proc0.med" et "proc1.med" et agréger le résultat +dans une instance ``mergeMLMesh`` de ``MEDFileUMesh``. +Traiter tous les niveaux de dimension (même si ici il n'y en a qu'un seul) en utilisant la méthode ``MEDFileUMesh.getNonEmptyLevels()`` +sur l'instance venant de "proc0.med". + +La solution donnée ci-dessous est la plus générique possible, car elle traite aussi les différents pas de temps et les +différents types géométriques : :: + + fileNames = ["proc0.med","proc1.med"] + msML = [ml.MEDFileMesh.New(fname) for fname in fileNames] + fsML = [ml.MEDFileFields.New(fname) for fname in fileNames] + mergeMLMesh = ml.MEDFileUMesh() + mergeMLFields = ml.MEDFileFields() + for lev in msML[0].getNonEmptyLevels(): + o2nML = len(msML[0].getNonEmptyLevels())*[None] + cs = [mML.getCoords() for mML in msML] + mergeMLMesh.setCoords(ml.DataArrayDouble.Aggregate(cs)) + ms = [mML.getMeshAtLevel(lev) for mML in msML] + m = ml.MEDCouplingUMesh.MergeUMeshes(ms) ; m.setCoords(mergeMLMesh.getCoords()) + o2nML[lev] = m.sortCellsInMEDFileFrmt() + mergeMLMesh.setMeshAtLevel(lev,m) + pass + + for fieldName in fsML[0].getFieldsNames(): + fmts = [fML[fieldName] for fML in fsML] + mergeField = ml.MEDFileFieldMultiTS() + for dt,it,tim in fmts[0].getTimeSteps(): + fts = [fmt[dt,it] for fmt in fmts] + arrs = len(fts)*[None] + for typp in fts[0].getTypesOfFieldAvailable(): + arr1s = [] + if typp == ml.ON_CELLS: + for ft in fts: + for geoTyp,smth in ft.getFieldSplitedByType(): + if geoTyp != ml.NORM_ERROR: + smth1 = filter(lambda x:x[0] == ml.ON_CELLS,smth) + arr2s = [ft.getUndergroundDataArray()[elt[1][0]:elt[1][1]] for elt in smth1] + arr1s.append(ml.DataArrayDouble.Aggregate(arr2s)) + pass + pass + pass + pass + else: + for ft in fts: + smth = filter(lambda x:x[0] == ml.NORM_ERROR,ft.getFieldSplitedByType()) + arr2 = ml.DataArrayDouble.Aggregate([ft.getUndergroundDataArray()[elt[1][0][1][0]:elt[1][0][1][1]] for elt in smth]) + arr1s.append(arr2) + pass + pass + arr = ml.DataArrayDouble.Aggregate(arr1s) + if typp == ml.ON_CELLS: + arr.renumberInPlace(o2nML[lev]) + mcf = ml.MEDCouplingFieldDouble(typp,ml.ONE_TIME) ; mcf.setName(fieldName) ; mcf.setTime(tim,dt,it) ; mcf.setArray(arr) + mcf.setMesh(mergeMLMesh.getMeshAtLevel(lev)) ; mcf.checkCoherency() + mergeField.appendFieldNoProfileSBT(mcf) + pass + pass + mergeMLFields.pushField(mergeField) + pass + mergeMLMesh.write("merge.med",2) + mergeMLFields.write("merge.med",0) + + +Solution +~~~~~~~~ + +:ref:`python_testMEDLoaderSplitAndMerge1_solution` diff --git a/doc/tutorial/medloader_advancedAPI1_en.rst b/doc/tutorial/medloader_advancedAPI1_en.rst new file mode 100644 index 000000000..d311f870e --- /dev/null +++ b/doc/tutorial/medloader_advancedAPI1_en.rst @@ -0,0 +1,152 @@ + +Reading, Writing a MED file using MEDLoader's advanced API +---------------------------------------------------------- + +The advanced API is incarnated by the MEDFile* classes in the MEDLoader library. + +* MEDFileMesh, MEDFileUMesh, MEDFileCMesh +* MEDFileMeshes, MEDFileMeshMultiTS +* MEDFileField1TS, MEDFileFieldMultiTS +* MEDFileFields, MEDFileFieldGlobs +* MEDFileData + +Objective +~~~~~~~~~ + +Write a mesh and a field from scratch, re-read them and compare the result. + +Topics covered: + +* Read/Write Mesh using MEDLoader's advanced API +* Read/Write Field using MEDLoader's advanced API + +Implementation start +~~~~~~~~~~~~~~~~~~~~ + +To implement this exercise we use the Python scripting language and import the MEDLoader Python module. +The whole MEDCoupling module is fully included in MEDLoader. No need to import MEDCoupling when MEDLoader has been loaded. :: + + from MEDLoader import * + +Writing and Reading meshes using MEDLoader's advanced API +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +First of all, creation of a mesh "targetMesh". :: + + targetCoords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; + targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; + targetMesh=MEDCouplingUMesh.New("MyMesh",2); + targetMesh.allocateCells(5); + targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7]); + targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10]); + targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4]); + targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14]); + targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18]); + targetMesh.finishInsertingCells(); + myCoords=DataArrayDouble.New(targetCoords,9,2); + targetMesh.setCoords(myCoords); + + +.. note:: targetMesh is grouped by geometric type. + +Build "targetMesh1" representing the sub-constituents (faces) of "targetMesh" reduced to cell ids [3,4,7,8]. +:: + + targetMeshConsti=targetMesh.buildDescendingConnectivity()[0] + targetMesh1=targetMeshConsti[[3,4,7,8]] + targetMesh1.setName(targetMesh.getName()) + +.. note:: "targetMesh1" will be recorded as a part of the same global mesh in the MED file, so it must have the same name! + +Then we are ready to write targetMesh and targetMesh1 into TargetMesh2.med. :: + + meshMEDFile=MEDFileUMesh.New() + meshMEDFile.setMeshAtLevel(0,targetMesh) + meshMEDFile.setMeshAtLevel(-1,targetMesh1) + meshMEDFile.write("TargetMesh2.med",2) # 2 stands for write from scratch + +Create 2 groups on level 0. The first called "grp0_Lev0" on cells [0,1,3] and the second called "grp1_Lev0" on cells [1,2,3,4] :: + + grp0_0=DataArrayInt.New([0,1,3]) ; grp0_0.setName("grp0_Lev0") + grp1_0=DataArrayInt.New([1,2,3,4]) ; grp1_0.setName("grp1_Lev0") + meshMEDFile.setGroupsAtLevel(0,[grp0_0,grp1_0]) + +Create 3 groups on level -1. The 1st called "grp0_LevM1" on cells [0,1], the 2nd called "grp1_LevM1" on cells [0,1,2], and the 3rd called "grp2_LevM1" on cells [1,2,3] :: + + grp0_M1=DataArrayInt.New([0,1]) ; grp0_M1.setName("grp0_LevM1") + grp1_M1=DataArrayInt.New([0,1,2]) ; grp1_M1.setName("grp1_LevM1") + grp2_M1=DataArrayInt.New([1,2,3]) ; grp2_M1.setName("grp2_LevM1") + meshMEDFile.setGroupsAtLevel(-1,[grp0_M1,grp1_M1,grp2_M1]) + + +Then trying to read it. :: + + meshMEDFileRead=MEDFileMesh.New("TargetMesh2.med") + meshRead0=meshMEDFileRead.getMeshAtLevel(0) + meshRead1=meshMEDFileRead.getMeshAtLevel(-1) + print "Is the mesh at level 0 read in file equals targetMesh ? %s"%(meshRead0.isEqual(targetMesh,1e-12)) + print "Is the mesh at level -1 read in file equals targetMesh ? %s"%(meshRead1.isEqual(targetMesh1,1e-12)) + +Print available levels for group "grp0_Lev0" :: + + print meshMEDFileRead.getGrpNonEmptyLevels("grp0_Lev0") + +Request for cell ids of group "grp0_Lev0" :: + + grp0_0_read=meshMEDFileRead.getGroupArr(0,"grp0_Lev0") + print "Is group \"grp0_Lev0\" are the same ? %s"%(grp0_0_read.isEqual(grp0_0)) + +Writing and Reading fields +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creation of a simple vector field on cells called f. :: + + f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME) + f.setTime(5.6,7,8) + f.setArray(targetMesh.getBarycenterAndOwner()) + f.setMesh(targetMesh) + f.setName("AFieldName") + +Put f into a MEDFileField1TS for preparation of MED writing :: + + fMEDFile=MEDFileField1TS.New() + fMEDFile.setFieldNoProfileSBT(f) + +Append field to "TargetMesh2.med" :: + + fMEDFile.write("TargetMesh2.med",0) # 0 is very important here because we want to append to TargetMesh2.med and not to overwrite it + +Read it : :: + + fMEDFileRead=MEDFileField1TS.New("TargetMesh2.med",f.getName(),7,8) + fRead1=fMEDFileRead.getFieldOnMeshAtLevel(ON_CELLS,0,meshMEDFileRead) # fastest method. No reading of the supporting mesh. + fRead2=fMEDFileRead.getFieldAtLevel(ON_CELLS,0) # like above but mesh is re-read from file... + print "Does the field f remain the same using fast method ? %s"%(fRead1.isEqual(f,1e-12,1e-12)) + print "Does the field f remain the same using slow method ? %s"%(fRead2.isEqual(f,1e-12,1e-12)) + +Writing and Reading fields on a "profile" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Build a reduction on cells [1,2,3] of f and call it fPart. :: + + pfl=DataArrayInt.New([1,2,3]) ; pfl.setName("My1stPfl") + fPart=f.buildSubPart(pfl) + fPart.setName("fPart") + +Put it into MEDFileField1TS data structure. :: + + fMEDFile2=MEDFileField1TS.New() + fMEDFile2.setFieldProfile(fPart,meshMEDFileRead,0,pfl) + fMEDFile2.write("TargetMesh2.med",0) # 0 is very important here because we want to append to TargetMesh2.med and not to scratch it + +Read "fPart" field from File "TargetMesh2.med". :: + + fMEDFileRead2=MEDFileField1TS.New("TargetMesh2.med",fPart.getName(),7,8) + fPartRead,pflRead=fMEDFileRead2.getFieldWithProfile(ON_CELLS,0,meshMEDFileRead) + print fPartRead.isEqualWithoutConsideringStr(fPart.getArray(),1e-12) + print pflRead.isEqualWithoutConsideringStr(pfl) + +Solution +~~~~~~~~ + +:ref:`python_testMEDLoaderAdvancedAPI1_solution` diff --git a/doc/tutorial/medloader_advancedAPI1_fr.rst b/doc/tutorial/medloader_advancedAPI1_fr.rst new file mode 100644 index 000000000..98caa012d --- /dev/null +++ b/doc/tutorial/medloader_advancedAPI1_fr.rst @@ -0,0 +1,189 @@ + +Lecture, écriture d'un fichier MED grâce à l'API avancée de MEDLoader +--------------------------------------------------------------------- + +L'API avancée de MEDLoader est représentée par les classes ``MEDFile*`` de la bibliothèque MEDLoader. + +* Au plus haut niveau, pour l'ensemble du fichier: ``MEDFileData``, +* Pour l'ensemble des maillages du fichier : ``MEDFileMeshes``, +* Pour chacun des maillages : ``MEDFileMeshMultiTS``, ``MEDFileMesh``, ``MEDFileUMesh``, ``MEDFileCMesh``, +* Pour l'ensemble des champs du fichier : ``MEDFileFields``, ``MEDFileFieldGlobs``, +* Et enfin pour chacun des champs : ``MEDFileField1TS``, ``MEDFileFieldMultiTS`` + + +Objectif +~~~~~~~~ + +Ecrire un maillage et un champ à partir de rien, les relire et comparer les résultats. + +Points abordés : en utilisant l'API avancée de MEDLoader, + +* Ecrire un fichier +* Lire un fichier + +Début d'implémentation +~~~~~~~~~~~~~~~~~~~~~~ + +Cet exercice repose comme tous les autres sur le language de script Python. On charge +le module Python ``MEDLoader``. + +Pour information, le module ``MEDCoupling`` complet est inclus dans ``MEDLoader``. Pas besoin de l'importer +si ``MEDLoader`` a été chargé. :: + + import MEDLoader as ml + from MEDLoader import MEDLoader + +Lecture, écriture d'un maillage +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Nous créons tout d'abord le même maillage ``targetMesh`` que pour l'API simple. :: + + targetCoords = [-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + targetConn = [0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + targetMesh = ml.MEDCouplingUMesh("MyMesh",2) + targetMesh.allocateCells(5) + targetMesh.insertNextCell(ml.NORM_TRI3,3,targetConn[4:7]) + targetMesh.insertNextCell(ml.NORM_TRI3,3,targetConn[7:10]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[0:4]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[10:14]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[14:18]) + targetMesh.finishInsertingCells() + myCoords = ml.DataArrayDouble(targetCoords,9,2) + myCoords.setInfoOnComponents(["X [km]","YY [mm]"]) + targetMesh.setCoords(myCoords) + +.. note:: Le maillage ``targetMesh`` est ordonné par type géométrique. + +Nous construisons ensuite ``targetMesh1`` représentant les sous-constituants (*faces*) du maillage +``targetMesh`` reduits aux cellules [3,4,7,8]. Cela peut par exemple représenter un ensemble d'intérêt pour un calcul : :: + + targetMeshConsti, _, _, _, _ = targetMesh.buildDescendingConnectivity() + targetMesh1 = targetMeshConsti[[3,4,7,8]] + targetMesh1.setName(targetMesh.getName()) + +.. note:: En Python, le underscore ``_`` signifie que l'on attend une valeur de retour, mais qu'on n'en aura pas l'usage + (on ne la *bind* pas). +.. note:: ``targetMesh1`` sera sauvé comme étant une partie du même maillage global dans le fichier MED. + Il doit donc avoir le même nom. C'est là qu'on voit qu'un maillage au sens MED fichier peut mélanger les dimensions. + +On peut alors écrire les deux maillages dans le fichier "TargetMesh2.med". :: + + meshMEDFile = ml.MEDFileUMesh() + meshMEDFile.setMeshAtLevel(0,targetMesh) + meshMEDFile.setMeshAtLevel(-1,targetMesh1) + meshMEDFile.write("TargetMesh2.med",2) # 2 stands for 'write from scratch' + +Lecture, écriture de groupes de mailles +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Créons deux groupes de cellules sur le maillage 2D, c'est à dire au niveau relatif 0 (ici, le niveau relatif 0 correspond +à la 2D, le niveau -1 +correspond à la 1D, etc ...). Le premier groupe ``grp0_Lev0`` contient les cellules [0,1,3] +le second ``grp1_Lev0`` les cellules [1,2,3,4] : :: + + grp0_0 = ml.DataArrayInt([0,1,3]) + grp0_0.setName("grp0_Lev0") + grp1_0 = ml.DataArrayInt([1,2,3,4]) + grp1_0.setName("grp1_Lev0") + meshMEDFile.setGroupsAtLevel(0, [grp0_0,grp1_0]) + +.. note:: On voit évidemment ici l'importance de nommer les tableaux : c'est le nom qui sera utilisé pour le groupe. + +Créons trois groupes de niveau -1, c'est à dire des groupes de faces. Le premier appelé +``grp0_LevM1`` aux cellules [0,1], le second appelé ``grp1_LevM1`` aux cellules [0,1,2], et le 3ème ``grp2_LevM1`` +aux cellules [1,2,3] : :: + + grp0_M1 = ml.DataArrayInt([0,1]) + grp0_M1.setName("grp0_LevM1") + grp1_M1 = ml.DataArrayInt([0,1,2]) + grp1_M1.setName("grp1_LevM1") + grp2_M1 = ml.DataArrayInt([1,2,3]) + grp2_M1.setName("grp2_LevM1") + meshMEDFile.setGroupsAtLevel(-1,[grp0_M1,grp1_M1,grp2_M1]) + +Ecrivons le tout : :: + + meshMEDFile.write("TargetMesh2.med",2) # 2 stands for 'write from scratch' + +Nous pouvons ensuite re-lire le fichier MED : :: + + meshMEDFileRead = ml.MEDFileMesh.New("TargetMesh2.med") # a new is needed because it returns a MEDFileUMesh (MEDFileMesh is abstract) + meshRead0 = meshMEDFileRead.getMeshAtLevel(0) + meshRead1 = meshMEDFileRead.getMeshAtLevel(-1) + print "Is level 0 in the file equal to 'targetMesh'?", meshRead0.isEqual(targetMesh,1e-12) + print "Is level 0 in the file equal to 'targetMesh1'?", meshRead1.isEqual(targetMesh1,1e-12) + +Affichons les niveaux disponibles pour le groupe ``grp0_Lev0`` : :: + + print meshMEDFileRead.getGrpNonEmptyLevels("grp0_Lev0") + +Et récupérons enfin les identifiants de cellules contenus dans le groupe ``grp0_Lev0`` : :: + + grp0_0_read = meshMEDFileRead.getGroupArr(0,"grp0_Lev0") + print "Is group 'grp0_Lev0' equal to what is read in the file?" , grp0_0_read.isEqual(grp0_0) + +Lire/écrire des champs avec l'API avancée +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Créons un champ de vecteurs simple, aux cellules (P0), avec un seul pas de temps, appelé ``f``. :: + + f = ml.MEDCouplingFieldDouble(ml.ON_CELLS, ml.ONE_TIME) + f.setTime(5.6,7,8) + f.setArray(targetMesh.getBarycenterAndOwner()) + f.setMesh(targetMesh) + f.setName("AFieldName") + +Stocker ``f`` dans un object ``MEDFileField1TS`` (un champ avec un seul pas de temps -- *one time-step, 1TS*) +pour préparer l'écriture MED :: + + fMEDFile = ml.MEDFileField1TS() + fMEDFile.setFieldNoProfileSBT(f) # No profile desired on the field, Sort By Type + +Ajouter le champ au fichier "TargetMesh2.med" :: + + fMEDFile.write("TargetMesh2.med",0) # 0 is paramount to indicate that we *append* (and no overwrite) to the MED file + +.. note:: Noter l'utilisation du 0 pour indiquer que nous désirons ajouter au fichier existant. + +Lire le champ : :: + + fMEDFileRead = ml.MEDFileField1TS("TargetMesh2.med",f.getName(),7,8) + fRead1 = fMEDFileRead.getFieldOnMeshAtLevel(ml.ON_CELLS,0,meshMEDFileRead) # Quickest way, not re-reading mesh in the file. + fRead2 = fMEDFileRead.getFieldAtLevel(ml.ON_CELLS,0) # Like above, but this time the mesh is read! + print "Does the field remain OK with the quick method?", fRead1.isEqual(f,1e-12,1e-12) + print "Does the field remain OK with the slow method?", fRead2.isEqual(f,1e-12,1e-12) + +Lire/écrire un champ sur un "profil" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Nous allons maintenant voir un concept avancé des fichiers MED, à savoir la possibilité d'écrire un champ sur seulement +une *partie* du maillage. La technique habituellement utilisée est plutôt de mettre des valeurs particulières (e.g. +infinity +soit 1e+300) sur les zones où le champ n'a pas de sens, permettant ainsi de repérer en plus des bugs éventuels lors du calcul. + +Le mode de fonctionnement avec les profils reste donc peu courant. + +Construisons une réduction aux cellules [1,2,3] de ``f`` et appelons la ``fPart`` : :: + + pfl = ml.DataArrayInt([1,2,3]) + pfl.setName("My1stPfl") + fPart = f.buildSubPart(pfl) + fPart.setName("fPart") + +La stocker dans la structure ``MEDFileField1TS`` et invoquer ``setFieldProfile()``. :: + + fMEDFile2 = ml.MEDFileField1TS() + fMEDFile2.setFieldProfile(fPart,meshMEDFileRead,0,pfl) # 0 is the relative level (here 0 means 2D) + fMEDFile2.write("TargetMesh2.med",0) # 0 is paramount to indicate that we *append* (and no overwrite) to the MED file + +Lire le champ ``fPart`` du fichier "TargetMesh2.med" et les identifiants de cellules correspondant. :: + + fMEDFileRead2 = ml.MEDFileField1TS("TargetMesh2.med",fPart.getName(),7,8) + fPartRead, pflRead = fMEDFileRead2.getFieldWithProfile(ml.ON_CELLS,0,meshMEDFileRead) + print "Is the partial field correclty read?", fPartRead.isEqualWithoutConsideringStr(fPart.getArray(),1e-12) + print "Is the list of cell identifiers matching?", pflRead.isEqualWithoutConsideringStr(pfl) + +Solution +~~~~~~~~ + +:ref:`python_testMEDLoaderAdvancedAPI1_solution` + diff --git a/doc/tutorial/medloader_basicAPI1_en.rst b/doc/tutorial/medloader_basicAPI1_en.rst new file mode 100644 index 000000000..3b36f5b93 --- /dev/null +++ b/doc/tutorial/medloader_basicAPI1_en.rst @@ -0,0 +1,98 @@ + +Reading, Writing a MED file using MEDLoader's basic API +------------------------------------------------------- + +The basic API is incarnated by the MEDLoader class. +All methods in that class are static. +The sessions of read/write are done on each call of a method. + +Objective +~~~~~~~~~ + +Write a mesh and a field from scratch, re-read them and compare the result. + +Topics covered: +* Write using MEDLoader's basic API +* Read using MEDLoader's basic API + +Implementation start +~~~~~~~~~~~~~~~~~~~~ + +To implement this exercise we use the Python scripting language and import the MEDLoader Python module. +The whole MEDCoupling module is fully included in MEDLoader. No need to import MEDCoupling when MEDLoader has been loaded. :: + + from MEDLoader import * + +Writing/Reading a mesh +~~~~~~~~~~~~~~~~~~~~~~ + +First of all, creation of a mesh "targetMesh". :: + + targetCoords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; + targetConn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; + targetMesh=MEDCouplingUMesh.New("MyMesh",2); + targetMesh.allocateCells(5); + targetMesh.insertNextCell(NORM_TRI3,3,targetConn[4:7]); + targetMesh.insertNextCell(NORM_TRI3,3,targetConn[7:10]); + targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4]); + targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[10:14]); + targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[14:18]); + targetMesh.finishInsertingCells(); + myCoords=DataArrayDouble.New(targetCoords,9,2); + myCoords.setInfoOnComponents(["X [km]","YY [mm]"]) + targetMesh.setCoords(myCoords); + +.. note:: targetMesh is ordered by geometric type. + +We are then ready to write it. :: + + MEDLoader.WriteUMesh("TargetMesh.med",targetMesh,True) + +Then trying to read it. :: + + meshRead=MEDLoader.ReadUMeshFromFile("TargetMesh.med",targetMesh.getName(),0) + print "Is the mesh read in file equals targetMesh? %s"%(meshRead.isEqual(targetMesh,1e-12)) + +Writing/Reading a field on one time step at once +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Creation of a vector field "f" on cell supported by "targetMesh". :: + + f=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME) + f.setTime(5.6,7,8) + f.setArray(targetMesh.getBarycenterAndOwner()) + f.setMesh(targetMesh) + f.setName("AFieldName") + MEDLoader.WriteField("MyFirstField.med",f,True) + +.. note:: Mesh AND Field is written at once into MyFirstField. + +Reading into MyFirstField.med :: + + f2=MEDLoader.ReadFieldCell("MyFirstField.med",f.getMesh().getName(),0,f.getName(),7,8) + print "Is the field read in file equals f ? %s"%(f2.isEqual(f,1e-12,1e-12)) + +Writing/Reading a field on one or many times steps in "multi-session mode" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here contrary to the previous steps, we are going to write in a multi-session mode on the same MED file. +First dealing with the mesh. :: + + MEDLoader.WriteUMesh("MySecondField.med",f.getMesh(),True) + +Then writing only array part of field. :: + + MEDLoader.WriteFieldUsingAlreadyWrittenMesh("MySecondField.med",f) + +Then put a another time step. :: + + f2=f.clone(True) + f2.getArray()[:]=2.0 + f2.setTime(7.8,9,10) + MEDLoader.WriteFieldUsingAlreadyWrittenMesh("MySecondField.med",f2) + +Now "MySecondField.med" file contains 2 time steps. + +Solution +~~~~~~~~ + +:ref:`python_testMEDLoaderBasicAPI1_solution` diff --git a/doc/tutorial/medloader_basicAPI1_fr.rst b/doc/tutorial/medloader_basicAPI1_fr.rst new file mode 100644 index 000000000..0b4fec8d6 --- /dev/null +++ b/doc/tutorial/medloader_basicAPI1_fr.rst @@ -0,0 +1,129 @@ + +Lecture, écriture d'un fichier MED grâce à l'API basique de MEDLoader +--------------------------------------------------------------------- + +L'API basique de MEDLoader est contenue dans la classe ``MEDLoader``. +Toutes les méthodes de cette classe sont *statiques* (elles ne dépendent pas d'une instance particulière de la +classe), leurs noms commencent par une majuscule. +L'ensemble des lectures/écritures sont exécutées à chaque appel de méthode et aucun état interne à la classe n'est +enregistré. + +Objectif +~~~~~~~~ + +Ecrire un maillage et un champ à partir de rien, les relire et comparer les résultats. + +Points abordés: en utilisant l'API basique de ``MEDLoader`` + +* Ecrire un fichier +* Lire un fichier + +Début d'implémentation +~~~~~~~~~~~~~~~~~~~~~~ + +Cet exercice repose comme tous les autres sur le language de script Python. On charge +le module Python ``MEDLoader``. + +Pour information, le module ``MEDCoupling`` complet est inclus dans ``MEDLoader``. Pas besoin de l'importer +si ``MEDLoader`` a été chargé. :: + + import MEDLoader as ml + from MEDLoader import MEDLoader + +Lecture, écriture d'un maillage +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Tout d'abord créons un maillage ``targetMesh`` composé de plusieurs types géométriques. :: + + targetCoords = [-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + targetConn = [0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + targetMesh = ml.MEDCouplingUMesh("MyMesh",2) + targetMesh.allocateCells(5) + targetMesh.insertNextCell(ml.NORM_TRI3,3,targetConn[4:7]) + targetMesh.insertNextCell(ml.NORM_TRI3,3,targetConn[7:10]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[0:4]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[10:14]) + targetMesh.insertNextCell(ml.NORM_QUAD4,4,targetConn[14:18]) + targetMesh.finishInsertingCells() + myCoords = ml.DataArrayDouble(targetCoords,9,2) + myCoords.setInfoOnComponents(["X [km]","YY [mm]"]) + targetMesh.setCoords(myCoords) + +.. note:: Le maillage ``targetMesh`` est ordonné par type géométrique. + +Le maillage peut alors directement être écrit ... :: + + MEDLoader.WriteUMesh("TargetMesh.med",targetMesh,True) # True means 'from scratch' + +... et relu. :: + + meshRead = MEDLoader.ReadUMeshFromFile("TargetMesh.med",targetMesh.getName(),0) + print "Is the read mesh equal to 'targetMesh' ?", meshRead.isEqual(targetMesh,1e-12) + +Lire/Ecrire un champ sur un pas de temps +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Nous créons maintenant un champ de vecteurs ``f`` aux cellules (P0) avec ``targetMesh`` comme support. +Ce champ correspond par exemple au temps physique 5.6, repéré par l'itération 7 et la sous-itération 8. +Nous en profitons pour rappeler +que dans les champs MEDCoupling, le temps physique est donné pour information seulement, le stockage et la plupart des +fonctions de l'API se basent sur les deux derniers entiers. :: + + f = ml.MEDCouplingFieldDouble.New(ml.ON_CELLS, ml.ONE_TIME) + f.setTime(5.6,7,8) # Declare the timestep associated to the field + f.setArray(targetMesh.getBarycenterAndOwner()) + f.setMesh(targetMesh) + f.setName("AFieldName") + MEDLoader.WriteField("MyFirstField.med",f,True) + +Question subsidiaire : à quoi correspond le champ ainsi créé ? + +.. note:: Le maillage **et** le champ sont écrits d'un seul coup dans le fichier "MyFirstField.med". + +Nous relisons ensuite MyFirstField.med : :: + + f2 = MEDLoader.ReadFieldCell("MyFirstField.med", f.getMesh().getName(), 0, f.getName(), 7, 8) + print "Is the read field identical to 'f' ?", f2.isEqual(f,1e-12,1e-12) + +.. note:: Lors de la lecture du champ, on doit donc connaître: son nom, le nom de sa mesh de support + et le pas de temps voulu. Des fonctions du type ``MEDFileFields.getFieldsNames()`` ou encore + ``MEDFileMeshes.getMeshesNames()`` aident à cela. + +.. note:: Le nom ``ReadFieldCell()`` rappelle que le champ doit être lu aux cellules. Souvenez-vous que suivant la + norme MED fichier, un même champ peut avoir une partie de ses données stockées aux cellules, mais aussi + simultanément aux noeuds, aux points de Gauss, etc ... même si ce genre de mélange exotique n'est généralement + pas conseillé. + +Lire/Ecrire un champ sur plusieurs pas de temps +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Ici contrairement au cas précédent, nous écrivons en plusieurs fois dans le *même* fichier MED. +Ecrivons tout d'abord le maillage. :: + + MEDLoader.WriteUMesh("MySecondField.med",f.getMesh(),True) + +Ensuite, nous écrivons seulement les informations relatives au champ (principalement son tableau de valeurs en fait +). :: + + MEDLoader.WriteFieldUsingAlreadyWrittenMesh("MySecondField.med",f) # mesh is not re-written + +Nous rajoutons ensuite un second pas de temps sur le *même* maillage. :: + + f2 = f.clone(True) # 'True' means that we need a deep copy + f2.getArray()[:] = 2.0 + f2.setTime(7.8,9,10) + MEDLoader.WriteFieldUsingAlreadyWrittenMesh("MySecondField.med",f2) + +Maintenant le fichier "MySecondField.med" contient le maillage et un champ à deux pas de temps porté par ce maillage. + +Nous pouvons relire tout cela avec des méthodes similaires à ce qui a été vu précédemment : :: + + f3 = MEDLoader.ReadFieldCell("MySecondField.med",f.getMesh().getName(),0,f.getName(),7,8) + print "Is the field read in file equals to 'f' ?", f.isEqual(f3,1e-12,1e-12) + f4 = MEDLoader.ReadFieldCell("MySecondField.med",f.getMesh().getName(),0,f.getName(),9,10) + print "Is the field read in file equals to 'f2' ?", f2.isEqual(f4,1e-12,1e-12) + +Solution +~~~~~~~~ + +:ref:`python_testMEDLoaderBasicAPI1_solution` diff --git a/doc/tutorial/medloader_en.rst b/doc/tutorial/medloader_en.rst new file mode 100644 index 000000000..19c328ba2 --- /dev/null +++ b/doc/tutorial/medloader_en.rst @@ -0,0 +1,23 @@ + +Reading, Writing a MED file using the MEDLoader library +======================================================= + +The objective of these exercises is to see how to read and write a MED file. + * Usage of MEDLoader's basic API + + * Meshes + * Fields + + * Usage of MEDLoader's advanced API + + * Meshes + * Fields + + * An Example of classical manipulation of MED files: splitting a MED file / merge a MED file + +.. toctree:: + :maxdepth: 2 + + medloader_basicAPI1_en + medloader_advancedAPI1_en + medloader_SplitAndMerge1_en diff --git a/doc/tutorial/medloader_fr.rst b/doc/tutorial/medloader_fr.rst new file mode 100644 index 000000000..af19266d1 --- /dev/null +++ b/doc/tutorial/medloader_fr.rst @@ -0,0 +1,23 @@ + +MEDLoader : lecture, écriture d'un fichier MED +============================================== + +L'objectif de ces exercices est de comprendre comment lire et écrire un fichier MED. + * Utilisation basique de l'API MEDLoader + + * Maillages + * Champs + + * Utilisation avancée de l'API MEDLoader + + * Maillages + * Champs + + * Exemple de manipulation classique de fichiers MED : splitter / fusionner un fichier MED suivant plusieurs sous-domaines + +.. toctree:: + :maxdepth: 2 + + medloader_basicAPI1_fr + medloader_advancedAPI1_fr + medloader_SplitAndMerge1_fr diff --git a/doc/salome/CMakeLists.txt b/doc/user/CMakeLists.txt similarity index 97% rename from doc/salome/CMakeLists.txt rename to doc/user/CMakeLists.txt index 9c4d7dd7a..951bc1bdd 100644 --- a/doc/salome/CMakeLists.txt +++ b/doc/user/CMakeLists.txt @@ -17,4 +17,4 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -ADD_SUBDIRECTORY(tui) +ADD_SUBDIRECTORY(doxygen) diff --git a/doc/doxygen/BuildPyExamplesFromCPP.py b/doc/user/doxygen/BuildPyExamplesFromCPP.py similarity index 96% rename from doc/doxygen/BuildPyExamplesFromCPP.py rename to doc/user/doxygen/BuildPyExamplesFromCPP.py index 0daa9b508..a7fd08c53 100644 --- a/doc/doxygen/BuildPyExamplesFromCPP.py +++ b/doc/user/doxygen/BuildPyExamplesFromCPP.py @@ -72,6 +72,8 @@ pyCont=cppCont[:] pyCont=[elt.replace("medcouplingcppexamples","medcouplingpyexamples") for elt in pyCont] pyCont=Cpp2Python(pyCont) +s= "Be sure to take a look at the page \\ref python-api before proceeding." +pyCont.insert(2, s) cppCont=discardPythonFrom(cppCont) # remove Python-only contents from Cpp # Save CPP and PY examples in two separate dox files diff --git a/doc/doxygen/CMakeLists.txt b/doc/user/doxygen/CMakeLists.txt similarity index 98% rename from doc/doxygen/CMakeLists.txt rename to doc/user/doxygen/CMakeLists.txt index 99392afa3..2b5209f9c 100644 --- a/doc/doxygen/CMakeLists.txt +++ b/doc/user/doxygen/CMakeLists.txt @@ -22,7 +22,7 @@ SALOME_CONFIGURE_FILE(static/header.html.in static/header.html) IF(SALOME_MED_ENABLE_PYTHON) - INCLUDE(doxy2swig/doxy2swig.cmake) + INCLUDE(doxy2swig/doxy2swig.cmake) FILE(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/tmp/medcouplingexamples.in" input) FILE(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/BuildPyExamplesFromCPP.py" pythondocexamplesgenerator) @@ -70,7 +70,7 @@ IF(SALOME_MED_ENABLE_PYTHON) SALOME_MED_SWIG_DOCSTRING_CONFIGURE(usr_docs swig_ready MEDCoupling) SALOME_MED_SWIG_DOCSTRING_CONFIGURE(usr_docs swig_ready MEDLoader) - + SET(doxyfile_med_user ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_med_user) FILE(STRINGS ${doxyfile_med_user} enabled_sections REGEX "ENABLED_SECTIONS") IF(enabled_sections) diff --git a/doc/doxygen/Doxyfile_med_user.in b/doc/user/doxygen/Doxyfile_med_user.in similarity index 82% rename from doc/doxygen/Doxyfile_med_user.in rename to doc/user/doxygen/Doxyfile_med_user.in index 1ecbb3e27..6c4cc970d 100644 --- a/doc/doxygen/Doxyfile_med_user.in +++ b/doc/user/doxygen/Doxyfile_med_user.in @@ -71,38 +71,44 @@ WARN_LOGFILE = log_user # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/intro.dox \ - @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/glossary.dox \ - @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/library.dox \ - @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/medcoupling.dox \ - @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/medloader.dox \ - @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/interptools.dox \ - @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/functionalities.dox \ - @CMAKE_CURRENT_BINARY_DIR@/medcouplingexamplesPY.dox \ +INPUT = @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/index.dox \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/faq.dox \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/start \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/tutorial.dox \ @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/gui.dox \ - @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/tools.dox \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/reference \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/reference/arrays \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/reference/meshes \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/reference/fields \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/reference/medloader \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/reference/interpolation \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/reference/cpp \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/reference/distrib \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/reference/misc \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/examples/examples.dox \ + @CMAKE_CURRENT_BINARY_DIR@/medcouplingexamplesPY.dox \ @CMAKE_CURRENT_BINARY_DIR@/medcouplingexamplesCPP.dox \ - @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/medcoupling \ - @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/medloader \ - @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/interpolation \ - @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/install.dox \ + @CMAKE_CURRENT_SOURCE_DIR@/doxfiles/appendix \ @CMAKE_CURRENT_SOURCE_DIR@/fakesources \ - @CMAKE_CURRENT_SOURCE_DIR@/../../src/ParaMEDMEM \ - @CMAKE_CURRENT_SOURCE_DIR@/../../src/INTERP_KERNEL \ - @CMAKE_CURRENT_SOURCE_DIR@/../../src/INTERP_KERNEL/Bases \ - @CMAKE_CURRENT_SOURCE_DIR@/../../src/INTERP_KERNEL/Geometric2D \ - @CMAKE_CURRENT_SOURCE_DIR@/../../src/MEDCoupling \ - @CMAKE_CURRENT_SOURCE_DIR@/../../src/MEDLoader + @PROJECT_SOURCE_DIR@/src/ParaMEDMEM \ + @PROJECT_SOURCE_DIR@/src/INTERP_KERNEL \ + @PROJECT_SOURCE_DIR@/src/INTERP_KERNEL/Bases \ + @PROJECT_SOURCE_DIR@/src/INTERP_KERNEL/Geometric2D \ + @PROJECT_SOURCE_DIR@/src/MEDCoupling \ + @PROJECT_SOURCE_DIR@/src/MEDLoader \ + @PROJECT_SOURCE_DIR@/src/MEDCouplingCorba FILE_PATTERNS = InterpKernelDEC.* \ OverlapDEC.* \ DEC.* \ DisjointDEC.* \ MPIProcessorGroup.* \ + MPIAccess.* \ StructuredCoincidentDEC.* \ ExplicitCoincidentDEC.* \ NonCoincidentDEC.* \ CommInterface.* \ + ICoCo*.* \ NormalizedGeometricTypes \ NormalizedUnstructuredMesh.* \ Interpolation2D.* \ @@ -142,19 +148,24 @@ FILE_PATTERNS = InterpKernelDEC.* \ MEDCouplingCartesianAMRMesh.* \ MEDCouplingTimeLabel.* \ MEDCouplingRefCountObject.* \ + MEDCouplingAutoRefCountObjectPtr.* \ MEDCouplingMemArray.* \ + MEDCouplingGaussLocalization.* \ MEDCouplingRemapper.* \ MEDLoader.* \ + MEDFileData.* \ + MEDFileParameter.* \ MEDFileMesh.* \ MEDFileField.* \ + *Servant.* \ *.dox RECURSIVE = YES EXCLUDE = CVS EXCLUDE_PATTERNS = *~ -EXAMPLE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/../../src/ParaMEDMEM \ - @CMAKE_CURRENT_SOURCE_DIR@/../../src/MEDCoupling/Test \ - @CMAKE_CURRENT_SOURCE_DIR@/../../src/MEDCoupling_Swig \ - @CMAKE_CURRENT_SOURCE_DIR@/../../src/MEDLoader/Swig +EXAMPLE_PATH = @PROJECT_SOURCE_DIR@/src/ParaMEDMEM \ + @PROJECT_SOURCE_DIR@/src/MEDCoupling/Test \ + @PROJECT_SOURCE_DIR@/src/MEDCoupling_Swig \ + @PROJECT_SOURCE_DIR@/src/MEDLoader/Swig EXAMPLE_PATTERNS = *.cxx *.py EXAMPLE_RECURSIVE = NO IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/figures diff --git a/doc/user/doxygen/doxfiles/appendix/appendix.dox b/doc/user/doxygen/doxfiles/appendix/appendix.dox new file mode 100644 index 000000000..b00011ba4 --- /dev/null +++ b/doc/user/doxygen/doxfiles/appendix/appendix.dox @@ -0,0 +1,17 @@ +/*! + +\page appendix Appendix + +Some useful complementary resources: + +- \subpage glossary +- \subpage med-file +- \subpage install +- \subpage references + +Implementation details: + +- \subpage interpkernel +- \ref MPIAccess-det + +*/ \ No newline at end of file diff --git a/doc/doxygen/doxfiles/glossary.dox b/doc/user/doxygen/doxfiles/appendix/glossary.dox similarity index 90% rename from doc/doxygen/doxfiles/glossary.dox rename to doc/user/doxygen/doxfiles/appendix/glossary.dox index 465374213..a4b844b25 100644 --- a/doc/doxygen/doxfiles/glossary.dox +++ b/doc/user/doxygen/doxfiles/appendix/glossary.dox @@ -1,11 +1,13 @@ /*! -\page glossary Concepts and definitions +\page glossary Glossary, concepts and definitions - \b Mesh: representation of a domain by a set of \b cells and \b nodes. Cells and nodes are named \b entities. There is no notion of edges or faces. - The \b dimension \b of \b a \b mesh is characterized by two parameters: the size of the space wherein the mesh is immersed, and the (maximum) size of the mesh cells. Examples: 3D surface mesh (3D space, 2D cells), 3D mesh (3D space, 3D cells), curved 2D mesh (2D space, 1D cells)... - \b Field: physical quantity whose value varies in space and time. Represented by a result vector V obtained from one or more tables of values ​​A, at any point of space covered by a mesh and in time defined by its temporal resolution. The size of V is called the number of \b components (equal to the number of components of A). +A P1 field is a field where values are stored at node level, a P0 field is a field where values are stored +at cell level. - \b Intensive \b field: represents intensive physical data (i.e. which do not depend on the amount of material). Examples: density, power density, temperature, pressure. - \b Extensive \b field: represents extensive physical data (i.e. proportional to the size of the physical system represented). @@ -27,5 +29,7 @@ Examples: mass, volume, time, power. - \b Projection: modification (by interpolation) of the entity on which a field is defined. The projection is called \b conservative if the interpolation uses intersection detection. The projection is said \b not \b conservative if the interpolation localizes a cloud of points in a mesh. - The \b Gauss \b integration \b points are the geometrical points where the numerical integration of a given quantity is performed. Precise location of these nodes and a sufficient number (related to the approximation order of the integration term) allow for an exact integration in the case of polynomial functions integration. - \b Kriging: a linear estimation method guaranteeing minimum variance. The estimate at a given point P is obtained locally from the point values ​​on a neighbourhood of P. +- \b Code \b coupling: run of two numerical codes (or two instances of the same code) in such a way that information +is passed from one instance to the other. */ diff --git a/doc/doxygen/doxfiles/install.dox b/doc/user/doxygen/doxfiles/appendix/install.dox similarity index 81% rename from doc/doxygen/doxfiles/install.dox rename to doc/user/doxygen/doxfiles/appendix/install.dox index 9f0c07806..d2374d51e 100644 --- a/doc/doxygen/doxfiles/install.dox +++ b/doc/user/doxygen/doxfiles/appendix/install.dox @@ -1,6 +1,10 @@ /*! -\page paramedmem_install Configuring and Installing MED from sources +\page install Configuring and Installing MED from sources + +The install procedure of the %MED SALOME module can handle a variety of configurations +to suit the needs of its user. Instructions for configuring and +installing the module can be found here. The libraries in SALOME MED can be configured in several manners so that it can run inside or outside the Salome platform. Also, partitioning and parallel functionalities are optional. @@ -23,7 +27,8 @@ cd ${MED_BUILD} cmake -DCMAKE_BUILD_TYPE= -DCMAKE_INSTALL_PREFIX=`pwd`/../MED_INSTALL _DSALOME_MED_STANDALONE=ON ../ \endverbatim -This will configure the library without splitting functionalities. ParaMEDMEM will be compiled if an MPI version has been found. +This will configure the library without splitting functionalities. The +\ref parallel "parallel functionalities" will be compiled if an MPI version has been found. The following options can be useful to configure SALOME MED : - \a -DSALOME_MED_PARTITIONER_METIS=ON enables metis graph library in MEDPartitioner, diff --git a/doc/doxygen/doxfiles/interpolation/interpkernel.dox b/doc/user/doxygen/doxfiles/appendix/interpkernel.dox similarity index 90% rename from doc/doxygen/doxfiles/interpolation/interpkernel.dox rename to doc/user/doxygen/doxfiles/appendix/interpkernel.dox index ce61e679d..aacff18f5 100644 --- a/doc/doxygen/doxfiles/interpolation/interpkernel.dox +++ b/doc/user/doxygen/doxfiles/appendix/interpkernel.dox @@ -1,5 +1,5 @@ /*! -\page interpkernel Interpolation kernel +\page interpkernel Interpolation kernel - Implementation notes \section InterpKerIntro Introduction @@ -13,9 +13,9 @@ the %interpolation kernel. \section InterpKerMainArchitecture Main architecture of interpolation kernel. In the %interpolation kernel, algorithms that computes the intersection \f$ T_i\cap S_j\f$ given the locations and geometries of source cell \f$ S_j \f$ -and target cell \f$ T_i \f$ are called \subpage InterpKerIntersectors. +and target cell \f$ T_i \f$ are called \ref InterpKerIntersectors. -As can be seen in \subpage InterpKerRemapGlobal "the theory of interpolation", all the proposed interpolators aim at +As can be seen in \ref InterpKerRemapGlobal "the theory of interpolation", all the proposed interpolators aim at filling the interpolation matrix W (which is generally sparse). For each pair (i,j), \f$ W_{ij} \f$ is obtained by calling the desired intersector. The problem is that each call to this algorithm is CPU-expensive. @@ -26,9 +26,9 @@ is too far from an another cell in the target mesh each. So for a given type of interpolation, the computation of W is performed in two steps : --# A filtering process reduces the number of pairs of elements for which the calculation must be carried out by - eliminating the pairs whose bounding boxes do not intersect. --# For all remaining pairs calling for each intersector (click here for the available \ref InterpKerIntersectors). +-# A filtering process reduces the number of pairs of elements for which the calculation +must be carried out by eliminating the pairs whose bounding boxes do not intersect. +-# For all remaining pairs, call the appropriate \ref InterpKerIntersectors "cell intersector" Whatever its dimension and type, each interpolator inherits from INTERP_KERNEL::Interpolation which is a template (CRTP) class than enable an easy access to the main API without useless CPU cost. diff --git a/doc/user/doxygen/doxfiles/appendix/med-file.dox b/doc/user/doxygen/doxfiles/appendix/med-file.dox new file mode 100644 index 000000000..684015da8 --- /dev/null +++ b/doc/user/doxygen/doxfiles/appendix/med-file.dox @@ -0,0 +1,33 @@ +/*! + +\page med-file Notes on the MED file format + +\section med-file-intro Introduction + +The MED file format is a specialization of the HDF5 standard, and existed well before +MEDCoupling. Take a look at the +HDF5 Group website for more details on HDF5 itself. +It focuses on (potentially) big amount of data, and the design philosophy was to facilitate a +parallel usage. + +The official documentation of the MED-file format is available on-line (in French) in +your SALOME installation at: + +\code{.sh} +${MEDFILE_ROOT_DIR}/share/doc/html/index.html +\endcode + +Remember that the term "MED-file" denotes both: +- a file format on disk (I/O) +- a comprehensive low level C library to read/write MED files (now with a Python wrapping) +and authored by Eric FAYOLLE (EdF R&D). + +\section med-file-struct What does it look like? + +The picture below shows an UML-like diagram of the MED file format. +We see for example that the mesh name is the unique key linking a \ref fields "field" +to its supporting \ref meshes "mesh". + +\image html med-file-uml.png "Functional diagram of the MED file format" + +*/ diff --git a/doc/user/doxygen/doxfiles/appendix/references.dox b/doc/user/doxygen/doxfiles/appendix/references.dox new file mode 100644 index 000000000..312ec046e --- /dev/null +++ b/doc/user/doxygen/doxfiles/appendix/references.dox @@ -0,0 +1,13 @@ +/*! + +\page references References + +Here follows a list of useful references : + +-# \anchor RefManualMedFile Reference Manual for Med File, V. Lefebvre, E. Fayolle, Projet PAL: Définition du modèle d'échange de données MED V2.2, Note technique EDF/SINETICS, HI-26-03-012/A, https://hammi.extra.cea.fr/static/MED/web_med/index.html +-# VTK home page: \c http://public.kitware.com/VTK +-# Med File Data Model : V. Lefebvre, E. Fayolle, Définition du modèle d'échange de données MED v2.2, https://hammi.extra.cea.fr/static/MED/web_med/pdf/NOTE_HI_26_03_012_A.pdf +-# Jeffrey Grandy, Conservative remapping and region overlays by intersecting arbitrary polyhedra, Journal of Computational Physics, vol 148, 433-466 (1999) +-# F. Preparata and M. Shamos Computational Geometry. Springer-Verlag, New York, 1985 + +*/ \ No newline at end of file diff --git a/doc/user/doxygen/doxfiles/examples/examples.dox b/doc/user/doxygen/doxfiles/examples/examples.dox new file mode 100644 index 000000000..29f9fa9a3 --- /dev/null +++ b/doc/user/doxygen/doxfiles/examples/examples.dox @@ -0,0 +1,11 @@ +/*! + +\page examples Code examples + +Several code examples are provided with the library. +Be sure to take a look at the page \ref python-api before proceeding with the Python examples. + +- \subpage medcouplingpyexamples +- \subpage medcouplingcppexamples + +*/ \ No newline at end of file diff --git a/doc/doxygen/doxfiles/examples/medcouplingexamplesarrays.doxy b/doc/user/doxygen/doxfiles/examples/medcouplingexamplesarrays.doxy similarity index 100% rename from doc/doxygen/doxfiles/examples/medcouplingexamplesarrays.doxy rename to doc/user/doxygen/doxfiles/examples/medcouplingexamplesarrays.doxy diff --git a/doc/doxygen/doxfiles/examples/medcouplingexamplesfields.doxy b/doc/user/doxygen/doxfiles/examples/medcouplingexamplesfields.doxy similarity index 98% rename from doc/doxygen/doxfiles/examples/medcouplingexamplesfields.doxy rename to doc/user/doxygen/doxfiles/examples/medcouplingexamplesfields.doxy index f1deed1e7..cf430d383 100644 --- a/doc/doxygen/doxfiles/examples/medcouplingexamplesfields.doxy +++ b/doc/user/doxygen/doxfiles/examples/medcouplingexamplesfields.doxy @@ -166,7 +166,8 @@ So \b f2 contains 3 tuples with 2 components. The underlying mesh of \b f2 contains a newly created mesh with 3 cells (not as \b mesh1 in \b f1) and 9 nodes (as \b mesh1 in \b f1). \n For fields on cells the number of tuples of the returned field is always equal to the number of ids given in input (here \b part1). -\nOnly fields on cells have this particular behaviour. +\n +Only fields on cells have this particular behaviour.

Creation of a sub part of a field on nodes

\snippet MEDCouplingExamplesTest.cxx CppSnippetFieldDoubleBuildSubPart1_3 @@ -179,7 +180,8 @@ Now let's create a subfield on nodes \b f2 from \b f1. After the call of \ref ParaMEDMEM::MEDCouplingFieldDouble::buildSubPart "buildSubPart" on node field \b f1, \b f1 will be reduced on a submesh of \b mesh1 containing cells whose ids are in \b part2. So here the number of cells of \b f2 is 2 and the number of nodes is 4. -\nSo contrary to fields on cells, it is normal for fields on nodes that number of tuples of the returned field of \ref ParaMEDMEM::MEDCouplingFieldDouble::buildSubPart "buildSubPart" +\n +So contrary to fields on cells, it is normal for fields on nodes that number of tuples of the returned field of \ref ParaMEDMEM::MEDCouplingFieldDouble::buildSubPart "buildSubPart" method does not match the size of the input array (here \b part2). @@ -232,7 +234,7 @@ array \b coords2. We create a 2D vector field with 2 tuples and we want to transform this field using an expression using -\ref ParaMEDMEM::MEDCouplingFieldDouble::applyFunc(const char *func) "applyFunc()". +\ref ParaMEDMEM::MEDCouplingFieldDouble::applyFunc(int, const std::string&) "applyFunc()". The expression \b func is applied to each atomic value of the \b field. We want to change the \b field as follows. (In \b func, we use the variable "v" to refer to an atomic field value). - Component #0 = component #0 (remains the same); hence "IVec * v" in \b func. @@ -272,7 +274,7 @@ the \b field. We create a 2D vector field with 2 values (vectors) and then we transform this field into a 3D vector field by applying an expression to values of the 2D field using -\ref ParaMEDMEM::MEDCouplingFieldDouble::applyFunc2(int nbOfComp, const char *func) "applyFunc2()". +\ref ParaMEDMEM::MEDCouplingFieldDouble::applyFunc2(int nbOfComp, const std::string&) "applyFunc2()". Note that we set component info the \b array ("a" and "b" ) which will be used to refer to corresponding components within a function. The expression \b func is applied to components of each vector of the \b field. We want @@ -296,7 +298,7 @@ the \b field. We create a 2D vector field with 2 values (vectors) and then we transform this field into a 3D vector field by applying an expression to values of the 2D field using -\ref ParaMEDMEM::MEDCouplingFieldDouble::applyFunc(int nbOfComp, const char *func) "applyFunc()". +\ref ParaMEDMEM::MEDCouplingFieldDouble::applyFunc(int nbOfComp, const std::string& func) "applyFunc()". The expression \b func is applied to components of each vector of the \b field. We want the \b field to have 3 components computed as follows. (In \b func, we refer to the first component of a field value using the variable "a", and to the second component, using @@ -385,7 +387,7 @@ tuple are computed as we want. First, we create a 2D Cartesian mesh constituted by 2 cells. \snippet MEDCouplingExamplesTest.cxx CppSnippet_MEDCouplingFieldDouble_fillFromAnalytic_1 Now we create a field on cells and use -\ref ParaMEDMEM::MEDCouplingFieldDouble::fillFromAnalytic(int nbOfComp, const char *func) "fillFromAnalytic()" +\ref ParaMEDMEM::MEDCouplingFieldDouble::fillFromAnalytic(int nbOfComp, const std::string& func) "fillFromAnalytic()" to fill it with values computed using an expression \b func. This expression is applied to coordinates of each point (barycenter) for which the field value is computed. We want the \b field to have @@ -526,7 +528,7 @@ med_target_mesh->decrRef(); \subsubsection cpp_mcfield_remapper_middlelevel Using interpolation tools - Middle level usage -- The simplest way to use the interpolator with \ref medcoupling data struture is illustrated in the following example. +- The simplest way to use the interpolator with \ref medcoupling "MEDCoupling data struture" is illustrated in the following example. \code ... diff --git a/doc/doxygen/doxfiles/examples/medcouplingexamplesfooter.doxy b/doc/user/doxygen/doxfiles/examples/medcouplingexamplesfooter.doxy similarity index 100% rename from doc/doxygen/doxfiles/examples/medcouplingexamplesfooter.doxy rename to doc/user/doxygen/doxfiles/examples/medcouplingexamplesfooter.doxy diff --git a/doc/doxygen/doxfiles/examples/medcouplingexamplesheader.doxy b/doc/user/doxygen/doxfiles/examples/medcouplingexamplesheader.doxy similarity index 100% rename from doc/doxygen/doxfiles/examples/medcouplingexamplesheader.doxy rename to doc/user/doxygen/doxfiles/examples/medcouplingexamplesheader.doxy diff --git a/doc/doxygen/doxfiles/examples/medcouplingexamplesmeshes.doxy b/doc/user/doxygen/doxfiles/examples/medcouplingexamplesmeshes.doxy similarity index 100% rename from doc/doxygen/doxfiles/examples/medcouplingexamplesmeshes.doxy rename to doc/user/doxygen/doxfiles/examples/medcouplingexamplesmeshes.doxy diff --git a/doc/doxygen/doxfiles/examples/medcouplingexamplesother.doxy b/doc/user/doxygen/doxfiles/examples/medcouplingexamplesother.doxy similarity index 100% rename from doc/doxygen/doxfiles/examples/medcouplingexamplesother.doxy rename to doc/user/doxygen/doxfiles/examples/medcouplingexamplesother.doxy diff --git a/doc/user/doxygen/doxfiles/faq.dox b/doc/user/doxygen/doxfiles/faq.dox new file mode 100644 index 000000000..0d0937423 --- /dev/null +++ b/doc/user/doxygen/doxfiles/faq.dox @@ -0,0 +1,174 @@ +/*! + +\page faq FAQ - Frequently asked questions + +Many points covered in this FAQ are illustrated via Python scripts. Remember that the +Python API is almost 100% identical to the C++ one, with the \ref python-api "rules listed here". + +\section Questions + +\ref faq-general + -# \ref f-newbie + -# \ref f-mehsf + -# \ref f-constel + -# \ref f-visu + -# \ref f-p0p1 + -# \ref f-number + +\ref faq-python + -# \ref f-hellow + -# \ref f-pyimport + -# \ref f-meshscratch + -# \ref f-fieldscratch + -# \ref f-io + -# \ref f-coher + -# \ref f-groups + -# \ref f-unstruc + +\ref faq-interp + -# \ref f-proj + -# \ref f-proj-formula + +\ref faq-cpp + -# \ref f-cpp-guide + -# \ref f-cpp-segfault + +\section Answers +\subsection faq-general General questions +\subsubsection f-newbie "I am a complete newbie, where should I start?" +Take a look at the \ref start "getting started" section and the \ref tutorial. + +\subsubsection f-mehsf "What is a mesh, what is a field?" +Take a look at \ref terminology + +\subsubsection f-constel "What is a the difference between MED file, MEDCoupling and the SALOME MED module?" +Take a look at \ref library + +\subsubsection f-visu "How can I visualize a mesh and/or a field?" +Use the PARAVIS module of SALOME to visualize your MED file. The following dedicated fitlers have been +written specifically for MED files: Extract group, Extract cell types, ELNO Mesh, ELNO Points, ELNO Surface. + +\subsubsection f-p0p1 "What does a P0- (or P1-) field mean?" +Take a look at \ref terminology + +\subsubsection f-number "What does surjective/old-2-new/new-2-old format mean?" +Take a look at \ref numbering + +\subsection faq-python MEDCoupling scripts in Python +\subsubsection f-hellow "Can you show me a simple example to get me started" +TODO + + +\subsubsection f-pyimport "When trying to execute my Python script I have 'ImportError: No module named MEDCoupling'" +Check that the environment variables PYTHONPATH and LD_LIBRARY_PATH (PATH under Windows) are correctly set. +If you have a full SALOME installation, use the 'shell' command that will automatically set up everything as it +should be: +\code{.sh} +cd +salome shell +\endcode + +With a custom installation you may want to set the variable manually: +\code{.sh} +export PYTHONPATH=/lib/python2.7/site-packages/salome +export LD_LIBRARY_PATH=/lib/salome +\endcode + +\subsubsection f-meshscratch "How to build a mesh from scratch" +Take a look at this example: \ref medcouplingpyexamplesUmeshStdBuild1 + +\subsubsection f-fieldscratch "How to build a field from scratch" +Take a look at this example: \ref medcouplingpyexamplesFieldDoubleBuild1 + +\subsubsection f-io "How to write/read a mesh to/from a file" +For starter, take a look at the \ref MEDLoaderBasicAPIPage "basic MEDLoader API". + +\subsubsection f-coher "How to control the validity of my mesh" +Use the methods \ref ParaMEDMEM::MEDCouplingUMesh::checkCoherency() "MEDCouplingUMesh::checkCoherency()" or +\ref ParaMEDMEM::MEDCouplingUMesh::checkCoherency1() "MEDCouplingUMesh::checkCoherency1()" + +\subsubsection f-groups "How can I read/write groups on a mesh" +Take a look at \ref AdvMEDLoaderAPIMeshReading and \ref AdvMEDLoaderAPIMeshWriting. + +\subsubsection f-unstruc "How can I transform a structured mesh into an unstructured one" +Use the method \ref ParaMEDMEM::MEDCouplingCMesh::buildUnstructured() "MEDCouplingCMesh::buildUnstructured()" + +\subsection faq-interp Projection, interpolation, remapping +\subsubsection f-proj How to project a field from one mesh to the other +This the job of the interpolation algorithms in the MED library. For starters, take a look at the +\ref interpolation "general introduction on interpolation". Also +\ref cpp_mcfield_remapper_highlevel "this simple example" gives a good first illustration. +Finally, if you are intereseted in parallel projection (C++ only!), you should take a +look at the \ref para-dec "DEC". + +\subsubsection f-proj-formula Which formula are used in the field projection algorithms +The documentation for non \ref glossary "P0 field" (i.e. non \ref glossary "cell-based fields") is still an +on-going work, but for the P0->P0 case, \ref InterpKerRemapGlobal "this page" gives a good overview. + +\subsection faq-cpp C++ specific questions +\subsubsection f-cpp-guide Is there some coding guidelines that I should follow +Yes. Please: +- document your code (this is true for Python too!) +- write some tests (this is true for Python too!) +- and finally, take a look at the page \ref cpp + +\subsubsection f-cpp-segfault My C++ program produces a SIGSEGV, what should I do +Re-compile in debug mode (with \c CMAKE_BUILD_TYPE=Debug), and use either valgrind or gdb +to spot the place where the segfault happens. +The most common source of mistake is some memory mis-allocation and/or deallocation. +With this respect using the auto pointer class +\ref ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr "MEDCouplingAutoRefCountObjectPtr" +can be of great help. + +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n + +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n + + +*/ \ No newline at end of file diff --git a/doc/doxygen/doxfiles/gui.dox b/doc/user/doxygen/doxfiles/gui.dox similarity index 69% rename from doc/doxygen/doxfiles/gui.dox rename to doc/user/doxygen/doxfiles/gui.dox index d8df24f06..061dd0883 100644 --- a/doc/doxygen/doxfiles/gui.dox +++ b/doc/user/doxygen/doxfiles/gui.dox @@ -1,18 +1,15 @@ /*! -\page gui A graphical interface for standard use cases +\page gui Graphical user interface + +

A graphical interface for standard use cases

The MED module in SALOME comes with a graphical interface that helps -you to deal with most standard use case of fields manipulation. The +you deal with the most standard use cases of field manipulation. The user guide can be found here: - User guide of the MED Graphical Interface -As a complement, a starter guide to MEDCouplig API is available: -- Starter guide to MEDCoupling API for users - - You could also be interested to read the software specifications and requirements for this graphical module, and even the technical considerations for development: diff --git a/doc/user/doxygen/doxfiles/index.dox b/doc/user/doxygen/doxfiles/index.dox new file mode 100644 index 000000000..e737c424e --- /dev/null +++ b/doc/user/doxygen/doxfiles/index.dox @@ -0,0 +1,59 @@ +/*! + +\mainpage Welcome to the SALOME MED module! + +The MED module gathers several powerful functionalities around the input and output data of +simulation codes (meshes and fields mainly). + +\image html projectionHQ_600.png "Example of a field interpolation between two 3D surfacic meshes" + +The most common usage is to write dedicated code (C++ or Python) linking to the library, +however a \ref gui "graphical user interface" is also available. + +- If you don't know where to start, reading the \ref start "getting started" section and then +taking a look at the tutorial is probably a good way to go. +- If you are looking for a very specific point (how can I build a mesh from scratch, + how do I write my data to a file, etc ...), taking a look at the \ref faq "FAQ" or at the numerous + \ref examples "code examples" might help. +- Finally people looking for the reference documentation of a given function (in C++ or Python) should +take a look at the \ref ParaMEDMEM "API documentation". Only the C++ functions are documented, but +the Python API has been designed to be used in a very similar fashion, provided you are aware of the +\ref python-api "conventions used". + +\section contents Contents +This documentation is organized as follows: +- \ref index (this page!) +- \ref faq +- \ref start + - \ref intro-start + - \ref terminology + - \ref library + - \ref functionalities + - \ref python-api +- Tutorial - MEDCoupling/MEDLoader in Python +- \ref gui +- \ref reference + - \ref medcoupling + - \ref medloader + - \ref interpolation + - \ref cpp + - \ref distrib + - \ref misc + \if ENABLE_EXAMPLES +- \ref examples + - \ref medcouplingpyexamples + - \ref medcouplingcppexamples + \endif + +- \ref appendix + - \ref glossary + - \ref med-file + - \ref install + +- \ref ParaMEDMEM "MEDCoupling (and other parallel classes) API documentation" +- \ref MEDLoader "MEDLoader API documentation" + +*/ + + + diff --git a/doc/doxygen/doxfiles/medcoupling/MEDCouplingArray.dox b/doc/user/doxygen/doxfiles/reference/arrays/arrays.dox similarity index 74% rename from doc/doxygen/doxfiles/medcoupling/MEDCouplingArray.dox rename to doc/user/doxygen/doxfiles/reference/arrays/arrays.dox index f1ee383fe..24eea3654 100644 --- a/doc/doxygen/doxfiles/medcoupling/MEDCouplingArray.dox +++ b/doc/user/doxygen/doxfiles/reference/arrays/arrays.dox @@ -1,20 +1,21 @@ /*! -\page MEDCouplingArrayPage MEDCoupling Arrays +\page arrays Arrays of data [TOC] \section MEDCouplingArrayIntro Introduction -One of the most basic concept mainly used all over MEDCoupling is +One of the most basic concept mainly used all over MEDCoupling is the MEDCoupling array. -This concept is used all over -\ref medcoupling "MEDCoupling", \ref paramedmem "ParaMEDMEM", \ref medloader "MEDLoader" modules so it should be correctly -handled to play well with \ref MEDCouplingMeshesPage "Meshes" and \ref MEDCouplingFieldsPage "Fields". +This concept is used all over the +MEDCoupling, \ref parallel "ParaMEDMEM", and \ref medloader "MEDLoader" modules so it should be correctly +understood to efficiently deal with \ref meshes "Meshes" and \ref fields "Fields". -\ref ParaMEDMEM::DataArray "DataArrays" are the atomic element of potentially heavy in memory objects in \ref medcoupling "MEDCoupling", \ref paramedmem "ParaMEDMEM" and \ref medloader "MEDLoader". +\ref ParaMEDMEM::DataArray "DataArrays" are the atomic element of potentially heavy-memory objects in +the 3 modules mentionned above. There are for the moment two types of arrays : - double precision float (64 bits) array incarnated by \ref ParaMEDMEM::DataArrayDouble "DataArrayDouble class". @@ -106,7 +107,7 @@ Here is a description of typical usages of \ref ParaMEDMEM::DataArrayDouble "MED \ref MEDCouplingArraySteps0 "Here is a Python example."
\endif -\section MEDCouplingArrayBasicsCopy Copy DataArrays. +\section MEDCouplingArrayBasicsCopy Copy DataArrays As \ref ParaMEDMEM::DataArray "DataArrays" are the atomic entity of potentially big memory objects into \ref medcoupling "MEDCoupling" , \ref ParaMEDMEM::DataArray "DataArrays" introduces concepts of copy and comparison that will be used by aggregating classes. @@ -133,7 +134,7 @@ simply returns the same object with the reference counter incremented. \ref cpp_mcdataarray_shallowcopy "Here is a C++ example."
\endif -\section MEDCouplingArrayBasicsCompare Compare DataArrays. +\section MEDCouplingArrayBasicsCompare Compare DataArrays Comparison is \ref medcoupling "MEDCoupling" is a concept highly sensitive because big amount of tests uses this to state about the success or the fail of these tests. There are two types of comparison : @@ -160,71 +161,6 @@ fill the array with some values. These methods are: ParaMEDMEM::DataArrayDouble::iota() which assigns incrementing values to all values in array. -\section MEDCouplingArrayRenumbering Array renumbering - -Here is presented all it is necessary to know concerning renumbering. -Renumbering is intensely required in %MEDLoader in %ParaMEDMEM. One of the user of renumbering is MED file for I/O where cells are sorted by type. -But it is also used on operations of node cell merging. It is also used in parallel mode when splitting of mesh is needed... - -Formally a renumbering is a mathematical application that can be surjective, injective or bijective. This application is defined using an instance of -\ref ParaMEDMEM::DataArrayInt "DataArrayInt". There are different ways to define this application. - -\subsection MEDCouplingArrayRenumberingO2N Old to new mode - -The old to new mode is particularly recommended for surjective and bijective application. This is typically the case of \ref ParaMEDMEM::MEDCouplingUMesh::mergeNodes "MEDCouplingUMesh::mergeNodes" method. -Let's consider a call to \ref ParaMEDMEM::MEDCouplingUMesh::mergeNodes "mergeNodes" that reduces the number of nodes from 5 nodes to 3 nodes.\n -In old to new mode the array \b MySurjection that specifies this surjection will have 5 tuples and 1 component. The content of the 5*1 values will be in {0,1,2}.\n - -If \b MySujection equals [2,1,0,1,2], it means that : - -- old id #0 will have new id equal to 2 -- old id #1 will have new id equal to 1 -- old id #2 will have new id equal to 0 -- old id #3 will have new id equal to 1 like old id #1 -- old id #4 will have new id equal to 2 like old id #0 - -This is the most common mode of renumbering in MEDCoupling because there is more methods implying renumbering that reduce the number of entities than method that increase number of entities. - -Method in old to new mode that works on bijective applications : - -- \ref ParaMEDMEM::DataArrayDouble::renumber "DataArrayDouble::renumber" -- \ref ParaMEDMEM::DataArrayDouble::renumberInPlace "DataArrayDouble::renumberInPlace" - -Method in old to new mode that works on surjective applications : - -- \ref ParaMEDMEM::DataArrayDouble::renumberAndReduce "DataArrayDouble::renumberAndReduce" - -Sometimes the format old to new for surjections can be replaced by another format with 2 arrays. Less compact in memory. The \ref ParaMEDMEM::DataArrayInt::changeSurjectiveFormat "DataArrayInt::changeSurjectiveFormat" method performs that. - -\subsection MEDCouplingArrayRenumberingN2O New to old mode - -The new to old mode is particularly recommended for strictly injective and bijective permutations. This is particularly useful for methods that increase the number of entities like for example -\ref ParaMEDMEM::MEDCouplingUMesh::simplexize "MEDCouplingUMesh::simplexize".\n -All non static methods in \ref ParaMEDMEM::DataArrayDouble "DataArrayDouble" or \ref ParaMEDMEM::DataArrayInt "DataArrayInt" having as last letter \b R (meaning Reversed) in capital works with -the mode new to old. -Let's consider a call to \ref ParaMEDMEM::MEDCouplingUMesh::simplexize "simplexize" that increases the number of cell from 4 cells to 6 cells.\n -In new to old mode the array \b MyInjection that specifies this injection will have 6 tuples and 1 component. The content of the 5*1 values will be in {0,1,2,3}.\n -If \b MyInjection equals [2,0,1,1,3,0] it means that : - -- new id #0 comes from old id 2 -- new id #1 comes from old id 0 -- new id #2 comes from old id 1 -- new id #3 comes from old id 1 -- new id #4 comes from old id 3 -- new id #5 comes from old id 0 - -Method in new to old mode that works on bijective applications : - -- \ref ParaMEDMEM::DataArrayDouble::renumberR "DataArrayDouble::renumberR" -- \ref ParaMEDMEM::DataArrayDouble::renumberInPlace "DataArrayDouble::renumberInPlaceR" - -Method in new to old mode that works on surjective applications : - -- \ref ParaMEDMEM::DataArrayDouble::selectByTupleId "DataArrayDouble::selectByTupleId" -- \ref ParaMEDMEM::DataArrayDouble::selectByTupleIdSafe "DataArrayDouble::selectByTupleIdSafe" -- \ref ParaMEDMEM::DataArrayDouble::selectByTupleId2 "DataArrayDouble::selectByTupleId2" -- \ref ParaMEDMEM::DataArrayDouble::selectByTupleRanges "DataArrayDouble::selectByTupleRanges" - \section MEDCouplingArrayApplyFunc Application of a function on DataArrayDouble instances. This section is only dedicated for \ref ParaMEDMEM::DataArrayDouble "DataArrayDouble instances". @@ -266,11 +202,11 @@ The principle of the dynamic expression evaluator is the following : \subsection MEDCouplingArrayApplyFunc0 applyFunc method with only one parameter This method produces a newly allocated DataArrayDouble instance having exactly the same number of components **and** number of tuples than the instance on which the -\ref ParaMEDMEM::DataArrayDouble::applyFunc(const char *) const applyFunc method is applied. +\ref ParaMEDMEM::DataArrayDouble::applyFunc(const std::string &, bool) const applyFunc method is applied. **This method is useful when the evaluation expression do not need to consider the components of each tuple separately**. -That's why this method of \ref ParaMEDMEM::DataArrayDouble::applyFunc(const char *) const applyFunc method with one parameter accepts at most only one variable. +That's why this method of \ref ParaMEDMEM::DataArrayDouble::applyFunc(const std::string &, bool) const applyFunc method with one parameter accepts at most only one variable. If it is not the case an exception is thrown as seen here : @@ -285,7 +221,7 @@ So \c smth represent a tuple of size 2. As the example shows, the output \c d1 has 2 components as \c d. -Whereas all the components of the input of \c d be not considered separately, it is also, possible with \ref ParaMEDMEM::DataArrayDouble::applyFunc(const char *) const applyFunc method with one parameter +Whereas all the components of the input of \c d be not considered separately, it is also, possible with \ref ParaMEDMEM::DataArrayDouble::applyFunc(const std::string &, bool) const applyFunc method with one parameter to build an output having same number of components than input but where components in input are treated separately. Let's build an example using DataArrayDouble instance \c d defined just above. @@ -296,13 +232,13 @@ In this example using IVec and JVec it is possible to differentiate output in co \subsection MEDCouplingArrayApplyFunc1 applyFunc method with only two parameters -This method also returns a newly allocated DataArrayDouble instance having the same number of tuples than the DataArrayDouble instance on which \ref ParaMEDMEM::DataArrayDouble::applyFunc(int,const char *) const applyFunc method is called, but the contrary to previous \ref MEDCouplingArrayApplyFunc0 "applyFunc with one parameter version" here the number of components is set by the user. +This method also returns a newly allocated DataArrayDouble instance having the same number of tuples than the DataArrayDouble instance on which \ref ParaMEDMEM::DataArrayDouble::applyFunc(int,const std::string &, bool) const applyFunc method is called, but the contrary to previous \ref MEDCouplingArrayApplyFunc0 "applyFunc with one parameter version" here the number of components is set by the user. The big difference with \ref MEDCouplingArrayApplyFunc0 "applyFunc method with one parameter" seen above is that here components of tuples are treated separately. -The method that implements it is \ref ParaMEDMEM::DataArrayDouble::applyFunc(int,const char *) const here. +The method that implements it is \ref ParaMEDMEM::DataArrayDouble::applyFunc(int,const std::string &, bool) const here. -Here the number of variables appearing in the expression should be equal at most to the number of component of the DataArrayDouble instance on which \ref ParaMEDMEM::DataArrayDouble::applyFunc(int,const char *) const applyFunc method is called. +Here the number of variables appearing in the expression should be equal at most to the number of component of the DataArrayDouble instance on which \ref ParaMEDMEM::DataArrayDouble::applyFunc(int,const std::string &, bool) const applyFunc method is called. Let's consider the following DataArrayDouble having 4 tuples with 3 components called dd. @@ -321,11 +257,12 @@ the component id. The strategy of expression evaluator is the following. Sort as Considering the previous warning, let's try to perform an application of function to compute in a DataArrayDouble instance called \c dd2 starting by adding component #0 and component #2 of \c dd. -\nThe expression \c "a+c" will add component #0 to component #1 as seen in warning section !!!! It can appear silly, but this strategy has been chosen in order to support different set of variables. +\n +The expression \c "a+c" will add component #0 to component #1 as seen in warning section !!!! It can appear silly, but this strategy has been chosen in order to support different set of variables. \n \ref ParaMEDMEM::DataArrayDouble::applyFunc2 "applyFunc2" and \ref ParaMEDMEM::DataArrayDouble::applyFunc3 "applyFunc3" methods have been developed to remedy to that feature that can be surprising. \n These two methods are explained respectively \ref MEDCouplingArrayApplyFunc2 "here for applyFunc2" and \ref MEDCouplingArrayApplyFunc3 "here for applyFunc3". -Whatever it is possible to find a workaround using \ref ParaMEDMEM::DataArrayDouble::applyFunc(int,const char *) const applyFunc with 2 parameters. +Whatever it is possible to find a workaround using \ref ParaMEDMEM::DataArrayDouble::applyFunc(int,const std::string &, bool) const applyFunc with 2 parameters. \n Here is a solution to compute \c dd2 : \snippet MEDCouplingExamplesTest.py PySnippetDataArrayApplyFunc1_6 diff --git a/doc/user/doxygen/doxfiles/reference/arrays/numbering.dox b/doc/user/doxygen/doxfiles/reference/arrays/numbering.dox new file mode 100644 index 000000000..0bb506765 --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/arrays/numbering.dox @@ -0,0 +1,113 @@ +/*! +\page numbering Array indexing and numbering + +The MED library make constant use of arrays of integer or double to represent the various +data it needs. The arrays of integer (\ref ParaMEDMEM::DataArrayInt "DataArrayInt") are of special importance as they +often constitutes the return value of the functions provided by the API. This can be +a list of nodes, a list of cells, a way to rearrange the cell in a mesh (a permutation), a part of the +domain when doing parallel computation, etc ... + +This page tries to cover all the form such a data can take and points to the most important +functions available to convert from one format to the other. + +Formally a "renumbering" is a mathematical application that can be surjective, injective or bijective. +This application is defined using an instance of +\ref ParaMEDMEM::DataArrayInt "DataArrayInt". There are different ways to define this application. + +\section MEDCouplingArrayRenumberingO2N Old-to-new mode + +The old to new mode is particularly recommanded for surjective and bijective applications. This +is typically the case of \ref ParaMEDMEM::MEDCouplingUMesh::mergeNodes "MEDCouplingUMesh::mergeNodes" method. +Let's consider a call to \ref ParaMEDMEM::MEDCouplingUMesh::mergeNodes "mergeNodes" that reduces the +number of nodes from 5 nodes to 3 nodes.\n +In old to new mode the array \b MySurjection that specifies this surjection will have 5 tuples +and 1 component. The content of the 5*1 values will be in {0,1,2}.\n + +If \b MySujection equals [2,1,0,1,2], it means that : + +- old id #0 will have new id equal to 2 +- old id #1 will have new id equal to 1 +- old id #2 will have new id equal to 0 +- old id #3 will have new id equal to 1 like old id #1 +- old id #4 will have new id equal to 2 like old id #0 + +This is the most common mode of renumbering in MEDCoupling because there is more methods +implying renumbering that reduce the number of entities than method that increase number of entities. + +Method in old to new mode that works on bijective applications : + +- \ref ParaMEDMEM::DataArrayDouble::renumber "DataArrayDouble::renumber" +- \ref ParaMEDMEM::DataArrayDouble::renumberInPlace "DataArrayDouble::renumberInPlace" + +Method in old to new mode that works on surjective applications : + +- \ref ParaMEDMEM::DataArrayDouble::renumberAndReduce "DataArrayDouble::renumberAndReduce" + +Sometimes the format old to new for surjections can be replaced by another format with 2 arrays. +Less compact in memory. The \ref ParaMEDMEM::DataArrayInt::changeSurjectiveFormat "DataArrayInt::changeSurjectiveFormat" method performs that. + +\section MEDCouplingArrayRenumberingN2O New-to-old mode + +The new-to-old mode is particularly recommended for strictly injective and bijective permutations. +This is particularly useful for methods that increase the number of entities like for example +\ref ParaMEDMEM::MEDCouplingUMesh::simplexize "MEDCouplingUMesh::simplexize".\n +All non static methods in \ref ParaMEDMEM::DataArrayDouble "DataArrayDouble" +or \ref ParaMEDMEM::DataArrayInt "DataArrayInt" having as last letter \b R (meaning Reversed) in +capital works with the mode new to old. +Let's consider a call to \ref ParaMEDMEM::MEDCouplingUMesh::simplexize "simplexize" that increases +the number of cell from 4 cells to 6 cells.\n +In new-to-old mode the array \b MyInjection that specifies this injection will have 6 tuples +and 1 component. The content of the 5*1 values will be in {0,1,2,3}.\n +If \b MyInjection equals [2,0,1,1,3,0] it means that : + +- new id #0 comes from old id 2 +- new id #1 comes from old id 0 +- new id #2 comes from old id 1 +- new id #3 comes from old id 1 +- new id #4 comes from old id 3 +- new id #5 comes from old id 0 + +Method in new-to-old mode that works on bijective applications : + +- \ref ParaMEDMEM::DataArrayDouble::renumberR "DataArrayDouble::renumberR" +- \ref ParaMEDMEM::DataArrayDouble::renumberInPlace "DataArrayDouble::renumberInPlaceR" + +Method in new-to-old mode that works on surjective applications : + +- \ref ParaMEDMEM::DataArrayDouble::selectByTupleId "DataArrayDouble::selectByTupleId" +- \ref ParaMEDMEM::DataArrayDouble::selectByTupleIdSafe "DataArrayDouble::selectByTupleIdSafe" +- \ref ParaMEDMEM::DataArrayDouble::selectByTupleId2 "DataArrayDouble::selectByTupleId2" +- \ref ParaMEDMEM::DataArrayDouble::selectByTupleRanges "DataArrayDouble::selectByTupleRanges" + +\section numbering-indirect Indirect indexing + +The indirect indexing format is made of two \ref arrays "arrays of int (DataArrayInt)" and +is used to describe a set of groups (a group being here understood as a simple pack of int identifiers). +Each group of identifier can for example represent a set of coincident nodes, or a set of nodes belonging +to the same cell, etc ... + +\image html IndirectIndex.jpg "Indirect indexing principle" + +Denoting \c tab and \c tabI the two arrays of the indirect indexing format, +we see at the top in the picture above the \c tab array, which contains n packs of identifiers +(first pack is 3,1,4,6, second pack is 4,3,2,6,5, etc ...), and below the array \c tabI +which provides the necessary offsets to extract a given pack from \c tab. + +This format is widely used internally (this is how the connectivity of +\ref MEDCouplingUMeshPage "unstructured cells" is stored for example), and is also returned by +many functions, e.g.: +- \ref ParaMEDMEM::MEDCouplingPointSet::findCommonCells "MEDCouplingPointSet::findCommonCells" +- \ref ParaMEDMEM::MEDCouplingPointSet::findCommonNodes "MEDCouplingPointSet::findCommonNodes" +- \ref ParaMEDMEM::MEDCouplingPointSet::getNodeIdsNearPoints "MEDCouplingPointSet::getNodeIdsNearPoints" +- \ref ParaMEDMEM::MEDCouplingUMesh::buildDescendingConnectivity "MEDCouplingUMesh::buildDescendingConnectivity" +- \ref ParaMEDMEM::MEDCouplingUMesh::computeNeighborsOfNodes "MEDCouplingUMesh::computeNeighborsOfNodes" +- \ref ParaMEDMEM::MEDCouplingUMesh::convertNodalConnectivityToDynamicGeoTypeMesh "MEDCouplingUMesh::convertNodalConnectivityToDynamicGeoTypeMesh" +- \ref ParaMEDMEM::MEDCouplingUMesh::setConnectivity "MEDCouplingUMesh::setConnectivity" +- \ref ParaMEDMEM::MEDCouplingUMesh::split2DCells "MEDCouplingUMesh::split2DCells" + +Some functions in the API to manipulate this format: +- \ref ParaMEDMEM::DataArrayInt::changeSurjectiveFormat "DataArrayInt::changeSurjectiveFormat" +- \ref ParaMEDMEM::MEDCouplingUMesh::ExtractFromIndexedArrays "(static) MEDCouplingUMesh::ExtractFromIndexedArrays" +- \ref ParaMEDMEM::MEDCouplingUMesh::ExtractFromIndexedArrays2 "(static) MEDCouplingUMesh::ExtractFromIndexedArrays2" + +*/ \ No newline at end of file diff --git a/doc/doxygen/doxfiles/medcoupling/MEDCouplingTimeLabel.dox b/doc/user/doxygen/doxfiles/reference/cpp/MEDCouplingTimeLabel.dox similarity index 82% rename from doc/doxygen/doxfiles/medcoupling/MEDCouplingTimeLabel.dox rename to doc/user/doxygen/doxfiles/reference/cpp/MEDCouplingTimeLabel.dox index 7d5b925c4..4b6ec8c84 100644 --- a/doc/doxygen/doxfiles/medcoupling/MEDCouplingTimeLabel.dox +++ b/doc/user/doxygen/doxfiles/reference/cpp/MEDCouplingTimeLabel.dox @@ -2,7 +2,7 @@ /*! \page MEDCouplingTimeLabelPage Time label in MEDCoupling -Time label is a **non instantiable** class whose each object consuming potentially big amount of memory inherit from. +Time label is a **non instantiable** class whose each object consuming potentially big amount of memory inherits from. The class that incarnates this concept is ParaMEDMEM::TimeLabel. Here are some of examples of classes that inherit from \ref ParaMEDMEM::TimeLabel "TimeLabel" class : @@ -12,7 +12,7 @@ Here are some of examples of classes that inherit from \ref ParaMEDMEM::TimeLabe - ParaMEDMEM::MEDCouplingFieldDouble - ... -This class is in charge of storing a 32 bits unsigned integer called time label, that allows the user to know easily, if an heavy object in memory has been modified or not. +This class is in charge of storing a 32 bits unsigned integer called the time label, that allows the user to know easily, if an heavy object in memory has been modified or not. The usage is simple : @@ -20,6 +20,6 @@ The usage is simple : - When you need to know if the instance inheriting from ParaMEDMEM::TimeLabel has changed or not simply invoke ParaMEDMEM::TimeLabel::getTimeOfThis again and compare with the stored value. If the value is different, the instance has changed, if not the instance has **not** changed. -The virtual call to ParaMEDMEM::TimeLabel::updateTime changes the behaviour of ParaMEDMEM::TimeLabel::getTimeOfThis ; it is a bug, so please notify the bug into the salome forum. +The virtual call to ParaMEDMEM::TimeLabel::updateTime changes the behaviour of ParaMEDMEM::TimeLabel::getTimeOfThis ; it is a bug, so please notify the bug on the SALOME forum. */ diff --git a/doc/user/doxygen/doxfiles/reference/cpp/cpp.dox b/doc/user/doxygen/doxfiles/reference/cpp/cpp.dox new file mode 100644 index 000000000..2b553bce5 --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/cpp/cpp.dox @@ -0,0 +1,25 @@ +/*! + \page cpp Note for C++ developpers + +Using the C++ API provided by MED requires you to be familiar with some specificities which are not +visible to the Python user. + +- \ref ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr "MEDCouplingAutoRefCountObjectPtr" +- \subpage MEDCouplingTimeLabelPage + +\b Note: all the standard (sequential) MEDCoupling API lies in the \ref ParaMEDMEM "ParaMEDMEM namespace". +This is quite unfortunate but due to historical reasons. The true parallel functionalities +of the \ref library "MED library" are detailed here: \ref parallel + +The memory management of the various strucutres is eased by the class +\ref ParaMEDMEM::MEDCouplingAutoRefCountObjectPtr "MEDCouplingAutoRefCountObjectPtr". It acts as an auto pointer and takes care of deleting the +memory automatically when going out of scope. See an example usage in \ref cpp_mcfielddouble_WriteVTK . +Beware however that not all functions return a pointer that should be deleted when going out of scope. +Some methods only return an observer to the data, see for example \ref ParaMEDMEM::MEDCouplingPointSet::getCoords() "getCoords()". The API documentation of each method indicates whether the caller is responsible of the returned +data or not. + +For advanced usage, one has to be aware of the stamping mechanism used internally to know +whether an instance has been modified or not. This is described in the second page above: + \ref MEDCouplingTimeLabelPage + + */ diff --git a/doc/user/doxygen/doxfiles/reference/distrib/corba-distrib.dox b/doc/user/doxygen/doxfiles/reference/distrib/corba-distrib.dox new file mode 100644 index 000000000..59ed64c2e --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/distrib/corba-distrib.dox @@ -0,0 +1,16 @@ +/*! +\page corba-distrib Distribution in MEDCoupling using CORBA + +The following classes allow to publish \ref medcoupling "MEDCoupling objects" on the CORBA bus. They are +directly related to the equivalent class in MEDCoupling, without the string \c Servant at the end of the +name: + +- \ref ParaMEDMEM::DataArrayDoubleServant "DataArrayDoubleServant" +- \ref ParaMEDMEM::DataArrayIntServant "DataArrayIntServant" +- \ref ParaMEDMEM::MEDCouplingUMeshServant "MEDCouplingUMeshServant" +- \ref ParaMEDMEM::MEDCouplingCMeshServant "MEDCouplingCMeshServant" +- \ref ParaMEDMEM::MEDCouplingFieldDoubleServant "MEDCouplingFieldDoubleServant" + + TODO: complete the list. + +*/ \ No newline at end of file diff --git a/doc/user/doxygen/doxfiles/reference/distrib/distrib.dox b/doc/user/doxygen/doxfiles/reference/distrib/distrib.dox new file mode 100644 index 000000000..7f9f37d8d --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/distrib/distrib.dox @@ -0,0 +1,10 @@ +/*! +\page distrib Distribution and parallelism in MEDCoupling + +The MEDCoupling library features several functionalities to allow its efficient usage +in a parallel and/or distributed setup: +- \subpage parallel +- \subpage corba-distrib + + +*/ diff --git a/doc/user/doxygen/doxfiles/reference/distrib/parallel.dox b/doc/user/doxygen/doxfiles/reference/distrib/parallel.dox new file mode 100644 index 000000000..d53c9965f --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/distrib/parallel.dox @@ -0,0 +1,33 @@ +/*! +\page parallel Parallelism + +\section para-over Base elements + +Several classes and methods are available in the MED library to ease the exchange of information +in a parallel context. +For historical reasons, they are all in the same namespace as the non-parallel MEDCoupling functionalities, +%ParaMEDMEM. + +The core elements of the API are: +- \ref ParaFIELD-det "ParaFIELD", the parallel instanciation of a MEDCoupling field +- \ref CommInterface-det "CommInterface", communication interface to the gateway to the MPI library +- \ref MPIProcessorGroup-det "MPIProcessorGroup", a group of processor in a parallel computation + +along with all the DEC explained below. + +\section para-dec Data Exchange Channel - DEC + +A Data Exchange Channel allows the transfer of information between two processor groups. +There are several variants of DEC depending on what you are aiming at: + +- \ref DisjointDEC-det "DisjointDEC" +- \ref InterpKernelDEC-det "InterpKernelDEC" +- \ref NonCoincidentDEC-det "NonCoincidentDEC" +- \ref OverlapDEC-det "OverlapDEC" +- \ref ExplicitCoincidentDEC-det "ExplicitCoincidentDEC" +- \ref StructuredCoincidentDEC-det "StructuredCoincidentDEC" + + TODO: more on DEC. + + +*/ diff --git a/doc/doxygen/doxfiles/medcoupling/MEDCouplingFields.dox b/doc/user/doxygen/doxfiles/reference/fields/MEDCouplingFields.dox similarity index 74% rename from doc/doxygen/doxfiles/medcoupling/MEDCouplingFields.dox rename to doc/user/doxygen/doxfiles/reference/fields/MEDCouplingFields.dox index 44c966cd2..48860dc41 100644 --- a/doc/doxygen/doxfiles/medcoupling/MEDCouplingFields.dox +++ b/doc/user/doxygen/doxfiles/reference/fields/MEDCouplingFields.dox @@ -1,6 +1,5 @@ - /*! -\page MEDCouplingFieldsPage Fields in MEDCoupling +\page MEDCouplingFieldsPage Fields [TOC] @@ -10,7 +9,7 @@ A field in MEDCoupling point of view, is a structure that allows to store a discretization of a physical value on a defined discretized spatial and possibly temporal support. -The spatial support is a \ref MEDCouplingMeshesPage "mesh". +The spatial support is a \ref meshes "mesh". A field is lying on an entity that will be specified by the spatial discretization of the field. For example a field on node will lie on all nodes of its mesh. @@ -19,13 +18,13 @@ A field on cell will lie on all cells of its mesh. Fields in MEDCoupling follow the two following rules : -- A field will lie on \b ALL entities of its spatial support (\ref MEDCouplingMeshesPage "mesh"). -- A field has \b only \b one spatial support (\ref MEDCouplingMeshesPage "mesh") on its temporal support. +- A field will lie on \b ALL entities of its spatial support (\ref meshes "mesh"). +- A field has \b only \b one spatial support (\ref meshes "mesh") on its temporal support. The main properties of a field are : - name -- spatial support which is a \ref MEDCouplingMeshesPage "mesh" +- spatial support which is a \ref meshes "mesh" - a \ref MEDCouplingSpatialDisc "spatial discretization" - a description of intrinsic nature of the values of field (see \ref NatureOfField). This is important for conservative interpolation (see \ref TableNatureOfField). - a temporal discretization that specifies, if it exists, the time interval on which the field is covering, and how. @@ -41,13 +40,13 @@ Some of most important implemented methods are : - \ref ParaMEDMEM::MEDCouplingFieldDouble::getNumberOfComponents "getNumberOfComponents" - \ref ParaMEDMEM::MEDCouplingFieldDouble::getValueOn "getValueOn" - \ref ParaMEDMEM::MEDCouplingFieldDouble::applyFunc "applyFunc" -- \ref ParaMEDMEM::MEDCouplingFieldDouble::addFields "cross instances operations" +- \ref ParaMEDMEM::MEDCouplingFieldDouble::AddFields "cross instances operations" \section MEDCouplingSpatialDisc Spatial discretization concept This is the concept that makes the link, independently from temporal -discretization, between the field and its spatial support (\ref MEDCouplingMeshesPage "mesh"). This +discretization, between the field and its spatial support (\ref meshes "mesh"). This concept allows the field to make a check and interpretation of an -array of values given a spatial support (\ref MEDCouplingMeshesPage "mesh"). +array of values given a spatial support (\ref meshes "mesh"). The abstract class that incarnates the concept is : \ref ParaMEDMEM::MEDCouplingFieldDiscretization. @@ -83,36 +82,36 @@ Here we will make the assumption that an instance of \c MEDCouplingMesh called \ \subsection MEDCouplingFirstSteps3OnCellsNoTS Create a tensor field with 9 components on cells with no time step -\subpage medcouplingcppexamplesFieldDoubleBuild1 "Here the C++ implementation." +\ref medcouplingcppexamplesFieldDoubleBuild1 "Here the C++ implementation." -\subpage medcouplingpyexamplesFieldDoubleBuild1 "Here the Python implementation." +\ref medcouplingpyexamplesFieldDoubleBuild1 "Here the Python implementation." \subsection MEDCouplingFirstSteps3OnNodesNoTS Create a scalar field on nodes with no time step -\subpage medcouplingcppexamplesFieldDoubleBuild2 "Here the C++ implementation." +\ref medcouplingcppexamplesFieldDoubleBuild2 "Here the C++ implementation." -\subpage medcouplingpyexamplesFieldDoubleBuild2 "Here the Python implementation." +\ref medcouplingpyexamplesFieldDoubleBuild2 "Here the Python implementation." \subsection MEDCouplingFirstSteps3OnCellsWTS Create a 2 components-vector field on cells with one time step and no interval -\subpage medcouplingcppexamplesFieldDoubleBuild3 "Here the C++ implementation." +\ref medcouplingcppexamplesFieldDoubleBuild3 "Here the C++ implementation." -\subpage medcouplingpyexamplesFieldDoubleBuild3 "Here the Python implementation." +\ref medcouplingpyexamplesFieldDoubleBuild3 "Here the Python implementation." \subsection MEDCouplingFirstSteps3OnCellsCTI Create a 3 components-vector field on nodes with a time interval where field remains constant on this time interval -\subpage medcouplingcppexamplesFieldDoubleBuild4 "Here the C++ implementation." +\ref medcouplingcppexamplesFieldDoubleBuild4 "Here the C++ implementation." -\subpage medcouplingpyexamplesFieldDoubleBuild4 "Here the Python implementation." +\ref medcouplingpyexamplesFieldDoubleBuild4 "Here the Python implementation." \section MEDCouplingSecondStep0 Operations on Fields Here we will make the assumption that an instance of \ref ParaMEDMEM::MEDCouplingMesh "MEDCouplingMesh" called \c mesh has been created with spaceDim==2. -\subpage medcouplingcppexamplesFieldDoubleBuild5 "Here a C++ example of more advanced use of MEDCouplingFieldDouble instances". +\ref medcouplingcppexamplesFieldDoubleBuild5 "Here a C++ example of more advanced use of MEDCouplingFieldDouble instances". -\subpage medcouplingpyexamplesFieldDoubleBuild5 "Here a Python example of more advanced use of MEDCouplingFieldDouble instances". +\ref medcouplingpyexamplesFieldDoubleBuild5 "Here a Python example of more advanced use of MEDCouplingFieldDouble instances". */ diff --git a/doc/user/doxygen/doxfiles/reference/fields/discretization.dox b/doc/user/doxygen/doxfiles/reference/fields/discretization.dox new file mode 100644 index 000000000..907890bae --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/fields/discretization.dox @@ -0,0 +1,21 @@ +/*! +\page discretization Spatial and temporal discretizations + +TODO: enhance this page + +\section field-space Spatial discretization +A field can be supported by: +- the nodes (vertices) of the mesh: built with the +\ref ParaMEDMEM::MEDCouplingFieldDouble::New "ON_NODES" keyword. This is sometimes called a P1 field. +- the cells (or "elements") of the mesh: built with the +\ref ParaMEDMEM::MEDCouplingFieldDouble::New "ON_CELLS" keyword. This is sometimes called a P0 field. +- or more complex items (Gauss points, etc ...) + +\section field-time Temporal discretization + +A field has a temporal discretization. It can be one of: +- \ref ParaMEDMEM::MEDCouplingFieldDouble::New "NO_TIME" +- \ref ParaMEDMEM::MEDCouplingFieldDouble::New "ONE_TIME" +- \ref ParaMEDMEM::MEDCouplingFieldDouble::New "CONST_ON_TIME_INTERVAL" + +*/ diff --git a/doc/user/doxygen/doxfiles/reference/fields/fields.dox b/doc/user/doxygen/doxfiles/reference/fields/fields.dox new file mode 100644 index 000000000..28ff75f49 --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/fields/fields.dox @@ -0,0 +1,21 @@ +/*! + +\page fields Fields + +A field in MEDCoupli,g represents some physical quantity associated with the spatial domain. +This is not a continuous description of the physical quantity over the domain, and hence a field has +a finite set of values, associated to some constituents of the mesh (nodes, cells, or more complicated). + +At a low level, a field is a \ref arrays DataArray associated to a given mesh. A field can have more than one +component (vector or tensor field), for example the 3 components v_x, v_y, vz of a velocity field. + +- \subpage discretization +- \subpage MEDCouplingFieldsPage + +Finally, and for interpolation purposes only, one needs to define the nature of a field (is it an extensive +field, like mass, or an intensive field, like temperature, etc ...). This is covered thoroughly in the +interpolation pages: + +- \ref NatureOfField + +*/ \ No newline at end of file diff --git a/doc/doxygen/doxfiles/interpolation/Geometric2D.dox b/doc/user/doxygen/doxfiles/reference/interpolation/Geometric2D.dox similarity index 95% rename from doc/doxygen/doxfiles/interpolation/Geometric2D.dox rename to doc/user/doxygen/doxfiles/reference/interpolation/Geometric2D.dox index e97cf0e83..eb0e25daf 100644 --- a/doc/doxygen/doxfiles/interpolation/Geometric2D.dox +++ b/doc/user/doxygen/doxfiles/reference/interpolation/Geometric2D.dox @@ -18,7 +18,7 @@ representation of a polygon is its edges composing it. \subsection interpkernelGeo2DNamingConv Naming conventions - - An \ref INTERP_KERNEL::AbstractEdge "edge" is defined by a start + - An \ref INTERP_KERNEL::Edge "edge" is defined by a start node, a end node and a curve equation (linear or arc of circle). \b WARNING : start node and end node \b HAVE \b TO \b BE different and distant at least equal to precision set. @@ -39,8 +39,8 @@ specialization of a closed. Closed means that the start node of first edge is equal to end node of last edge.\n A \ref INTERP_KERNEL::ComposedEdge "composed edge" is considered as a -collection of \ref INTERP_KERNEL::AbstractEdge "abstract edges". An -\ref INTERP_KERNEL::AbstractEdge "abstract edge" is either an \ref +collection of \ref INTERP_KERNEL::Edge "abstract edges". An +\ref INTERP_KERNEL::Edge "abstract edge" is either an \ref INTERP_KERNEL::ElementaryEdge "elementary edge" or itself a \ref INTERP_KERNEL::ComposedEdge "composed edge".\n A composite pattern has been used here. @@ -117,9 +117,9 @@ repeated until all edges with correct loc have been consumed. The method in charge of that is INTERP_KERNEL::QuadraticPolygon::buildIntersectionPolygons. -\section interpkernelGeo2DAlg underneath algorithms. +\section interpkernelGeo2DAlg Underlying algorithms -\subsection interpkernelGeo2DAlgLoc Absolute localization algorithm. +\subsection interpkernelGeo2DAlgLoc Absolute localization algorithm This algorithm is called when splitting process has been done, and that we are sure that the edge is either \b fully \b in ,or \b fully \b on or \b fully @@ -141,7 +141,7 @@ This computation is \b very \b expensive, that why some tricks as described in \ref interpkernelGeo2DBoolOpStep2 "localization techniques" are used to call as few as possible during intersecting process. -\subsection interpkernelGeo2DAlgIntsect Intersection algorithms. +\subsection interpkernelGeo2DAlgIntsect Intersection algorithms The only mathematical intersections performed are edges intersections. The algorithms used are : @@ -150,7 +150,7 @@ The algorithms used are : -# Lin-Arc intersection : http://mathworld.wolfram.com/Circle-LineIntersection.html -# Arc-Arc intersection : http://mathworld.wolfram.com/Circle-CircleIntersection.html -\subsection interpkernelGeo2DAlgOthers Other algorithms. +\subsection interpkernelGeo2DAlgOthers Other algorithms As internal architecture is quite general, it is possible to have more than classical intersection on any polygons : @@ -158,7 +158,7 @@ As internal architecture is quite general, it is possible to have more than clas - \ref INTERP_KERNEL::QuadraticPolygon::getPerimeterFast "perimeter" computation. - \ref INTERP_KERNEL::QuadraticPolygon::getHydraulicDiameter "Hydraulic diameter" computation. -\section interpkernelGeo2DUsage Usage. +\section interpkernelGeo2DUsage Usage This intersector is usable standalone. To use a set of user friendly methods have been implemented. @@ -200,7 +200,7 @@ delete polygon2; ... \endcode -\section interpkernelGeo2DExample Example of result. +\section interpkernelGeo2DExample Example of result Here an example of 2 polygons. The left one \a P1 has 4 edges and the right one \a P2 has 4 edges too. diff --git a/doc/doxygen/doxfiles/medcoupling/NatureOfField.dox b/doc/user/doxygen/doxfiles/reference/interpolation/NatureOfField.dox similarity index 87% rename from doc/doxygen/doxfiles/medcoupling/NatureOfField.dox rename to doc/user/doxygen/doxfiles/reference/interpolation/NatureOfField.dox index 6dc178cd6..b005a9cc5 100644 --- a/doc/doxygen/doxfiles/medcoupling/NatureOfField.dox +++ b/doc/user/doxygen/doxfiles/reference/interpolation/NatureOfField.dox @@ -1,8 +1,8 @@ /*! - \defgroup NatureOfField Nature of a field +\page NatureOfField Nature of a field - \section IntExtFields Overview: intensive and extensive field +\section IntExtFields Overview: intensive and extensive field \c NatureOfField is an enum which helps in determining some physical significance of the field and affects the choice of the interpolation formula (see \ref TableNatureOfField). It has five possible values: @@ -26,13 +26,15 @@ Typically the field value scales linearly with respect to the underlying geometr For fields with a P0 representation (cell based), conservativity formulas are different depending on whether the field is extensive or intensive (see \ref InterpKerP0P0Int and \ref InterpKerP0P0Ext).
These two notions are themselves split into two sub-categories. Indeed in some cases (e.g. non \ref MeshOverlap "overlapping meshes"), it is impossible to fulfill both the conservation principle and the maximum principle during the interpolation. The nature of the fields determines the formula to be used for non overlapping cells and thus the property that we will be satisfied. -Finally we consider that fields with P1 or P2 representations are necessarily intensive. + +Finally we consider that fields with P1 or P2 representations are necessarily intensive. \section Usage -In order to use the various \ref interptools, you have to specify the nature of your field. +In order to use the various \ref intro-interp "interpolations", you have to specify the nature of your field. When the source and target meshes do not overlap, different treatments will be employed depending on the nature of the source and target fields. -You can specify the nature of the field when you create a \ref medcoupling field with the following constructor: +You can specify the nature of the field when you create a \ref fields "MEDCoupling field" +with the following constructor: \code MEDCouplingFieldDouble(NatureOfField n, MEDCouplingTimeDiscretization *td, MEDCouplingFieldDiscretization *type); \endcode diff --git a/doc/doxygen/doxfiles/interpolation/barycoords.dox b/doc/user/doxygen/doxfiles/reference/interpolation/barycoords.dox similarity index 100% rename from doc/doxygen/doxfiles/interpolation/barycoords.dox rename to doc/user/doxygen/doxfiles/reference/interpolation/barycoords.dox diff --git a/doc/user/doxygen/doxfiles/reference/interpolation/interpolation.dox b/doc/user/doxygen/doxfiles/reference/interpolation/interpolation.dox new file mode 100644 index 000000000..ef9db963e --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/interpolation/interpolation.dox @@ -0,0 +1,25 @@ +/*! + +\page interpolation Interpolation + +Interpolation (or projection) methods is a key feature of the MEDCoupling library. +It allows to "transfer" the values of a field on a given source mesh to another, newly created field +on a target mesh. + +The two meshes/fields need not to have the same \ref MEDCouplingMeshes "mesh/spatial dimension", nor do they need to have the same \ref discretization "discretization". + +- \subpage intro-interp +- \subpage InterpKerRemapGlobal +- \subpage NatureOfField +- \subpage remapper +- \subpage InterpKerIntersectors + +If you are looking for a parallel utilisation of the above, take a look at: + +- \ref parallel + +Some implementation details of the C++ code can be found in appendix: + +- \ref interpkernel + +*/ diff --git a/doc/doxygen/doxfiles/interpolation/interptheory.dox b/doc/user/doxygen/doxfiles/reference/interpolation/interptheory.dox similarity index 99% rename from doc/doxygen/doxfiles/interpolation/interptheory.dox rename to doc/user/doxygen/doxfiles/reference/interpolation/interptheory.dox index bc0ea8838..6ac5a2014 100644 --- a/doc/doxygen/doxfiles/interpolation/interptheory.dox +++ b/doc/user/doxygen/doxfiles/reference/interpolation/interptheory.dox @@ -1,5 +1,5 @@ /*! -\page InterpKerRemapGlobal Linear remapping +\page InterpKerRemapGlobal Detailed explanations for cell-based (P0) fields For fields with polynomial representation on each cell, the components of the discretized field \f$ \phi_s \f$ on the source side can be expressed as linear combinations of the components of the discretized field \f$ \phi_t \f$ on the target side, in terms of a matrix-vector product: diff --git a/doc/doxygen/doxfiles/interpolation/intersectors.dox b/doc/user/doxygen/doxfiles/reference/interpolation/intersec-specifics.dox similarity index 92% rename from doc/doxygen/doxfiles/interpolation/intersectors.dox rename to doc/user/doxygen/doxfiles/reference/interpolation/intersec-specifics.dox index 5c8f3d6e2..041d57feb 100644 --- a/doc/doxygen/doxfiles/interpolation/intersectors.dox +++ b/doc/user/doxygen/doxfiles/reference/interpolation/intersec-specifics.dox @@ -1,10 +1,11 @@ /*! -\defgroup InterpKerGrpIntPlan Planar Intersector +\page intersec-specifics Specificities of 2D and 3D intersectors -Here are listed all the methods to be called or to overload to all -concrete intersector. - -\page InterpKerIntersectors Intersectors +All the options described here can be set using the +\ref ParaMEDMEM::MEDCouplingRemapper::setOptionInt "MEDCouplingRemapper::setOptionInt", +\ref ParaMEDMEM::MEDCouplingRemapper::setOptionDouble "MEDCouplingRemapper::setOptionDouble", +and \ref ParaMEDMEM::MEDCouplingRemapper::setOptionString "MEDCouplingRemapper::setOptionString" +methods. \section interpolation2D Special features of 2D intersectors @@ -12,9 +13,9 @@ concrete intersector. All the 2D intersectors inherits from INTERP_KERNEL::PlanarIntersector class. -All the important methods are \ref InterpKerGrpIntPlan "described here".\n To sum up the main task offered by this class is to give the -evaluation of interpolation of one cell in source mesh with an another -cell in target mesh. +The main task offered by this class is to give the +evaluation of the interpolation of one cell in source mesh with an another +cell in the target mesh. \subsection InterpKerPlanarIntFeatureP0P0 P0->P0 intersectors features. @@ -28,7 +29,7 @@ non-convex polygons) is supported by this algorithm. Due to its flexibility this algorithm is slower than the other. - \anchor pointlocator PointLocator: This is a \b non \b conservative interpolator. For P0P0, it locates the barycenter of target cell in the source cells. For P1P0, it -locates barycenter of target cell and compute \subpage barycoords "barycentric coordinates" +locates barycenter of target cell and compute \ref barycoords "barycentric coordinates" in source cell (Works only with Triangle). For P0P1 locate target nodes in source cells. For P1P1 compute for each target node its barycentric coordinates in source cell. @@ -135,4 +136,5 @@ The use of the SPLIT_NODES_6 splitting policy would lead to a 6 tetrahedra decom 0, 7, 3, 6 \endverbatim -*/ + +*/ \ No newline at end of file diff --git a/doc/user/doxygen/doxfiles/reference/interpolation/intersectors.dox b/doc/user/doxygen/doxfiles/reference/interpolation/intersectors.dox new file mode 100644 index 000000000..c38a87965 --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/interpolation/intersectors.dox @@ -0,0 +1,17 @@ +/*! + +\page InterpKerIntersectors Intersectors + +The various interpolation methods often require the computation of the intersection between +a cell of the source mesh and a cell of the target mesh. The intersectors implemented in the +library take care of this job. + +Before reading on, remember the definition of a \ref glossary "P0 and P1 field". + +- \subpage intersec-specifics +- \subpage interpkernelGeo2D +- \subpage barycoords (used in some P1 intersectors) + +Some implementation details of the C++ code can also be found here: \ref interpkernel + +*/ diff --git a/doc/user/doxygen/doxfiles/reference/interpolation/intro-interp.dox b/doc/user/doxygen/doxfiles/reference/interpolation/intro-interp.dox new file mode 100644 index 000000000..17a8ea446 --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/interpolation/intro-interp.dox @@ -0,0 +1,52 @@ +/*! +\page intro-interp Interpolation presentation + +\section interp-over Overview + +The InterpKernel algorithms are part of the MED tool suite. They +answer to the following basic problem : given a source mesh \f$M_s\f$, a +source field \f$F_s\f$ and a target mesh \f$M_t\f$, reconstruct a field \f$F_t\f$ +that uses \f$M_t\f$ as a support. The InterpKernel suite gives a number of +possibilities to compute the target field, depending on a variety of +user constraints. + +\image html interpolationimage.png "General interpolation scheme" width=10cm + +Two different APIs are available depending on whether you run sequentially or in parallel: +- the \ref remapper "remapper class" (based on the underlying \ref interpkernel "InterpKernel" library) +for sequential codes, which uses MEDCoupling \ref fields "fields" and other core data structures. +- the \ref parallel "ParaMEDMEM API" for parallel MPI based codes using \c %ParaMEDMEM distributed fields +(\ref ParaMEDMEM::ParaFIELD "ParaFIELD"), which is also based on the algorithms of the +\ref interpkernel "InterpKernel" library. + +The following space/mesh dimensions are covered: +- 1D, 2D lines, 2D surfaces (\ref interpolation2D), +- 3D surfaces (\ref interpolation3Dsurf) +- and 3D volumes (\ref interpolation3D) + +The interpolation is performed either by: +- node localization (\ref pointlocator "PointLocator"), when for example a node field is projected to a cell field +- or via cell intersection (\ref ConsInterp), when for example a cell field is projected to another cell field. +For any given type of interpolation involving cell intersection computation, the computation of +interpolation matrix W is performed in two steps : + -# A filtering process reduces the number of pairs of elements for which the calculation +must be carried out by eliminating the pairs whose bounding boxes do not intersect. + -# For all remaining pairs, call the appropriate \ref InterpKerIntersectors "cell intersector" + +More complex treatments are also available: +- treatment of extended polygons (where edges can be arcs or segments) +for 2D intersection computations, via the \ref interpkernelGeo2D "Geometric2D intersector", + +Finally the following types of \ref discretization "spatial discretization" combinations are supported: +- management of fields with P0,P1 or P2 representations +- P0<->P0, P1<->P0, P1<->P1 and P2->P0 (non conservative) interpolators are available. + +Remember that whatever the situation you face, you must always specify whether the field +represents an extensive or intensive physical quantity through +the \ref NatureOfField "nature" attribute of the \ref fields "field". + +\section interp-api Key elements of the API + +TODO, list setOption, setIntersectionType, etc ... + +*/ diff --git a/doc/doxygen/doxfiles/interpolation/remapper.dox b/doc/user/doxygen/doxfiles/reference/interpolation/remapper.dox similarity index 64% rename from doc/doxygen/doxfiles/interpolation/remapper.dox rename to doc/user/doxygen/doxfiles/reference/interpolation/remapper.dox index 793e86129..c03c0bad9 100644 --- a/doc/doxygen/doxfiles/interpolation/remapper.dox +++ b/doc/user/doxygen/doxfiles/reference/interpolation/remapper.dox @@ -1,12 +1,12 @@ /*! -\page RemapperClasses The remapper class. +\page remapper The remapper class. \section InterpKerHighLevUsage High-level usage -The simplest way of using the \ref interptools in sequential mode is to use the class \c ParaMEDMEM::MEDCouplingRemapper . This class fulfills \c HXX2SALOME rules and may be used in YACS coupling graphs. +The simplest way of using the \ref intro-interp "interpolations" in sequential mode is to use the class \c ParaMEDMEM::MEDCouplingRemapper . This class fulfills \c HXX2SALOME rules and may be used in YACS coupling graphs. -If you intend to use \ref MEDCoupling data structure, ParaMEDMEM::MEDCouplingRemapper class should be used. +If you intend to use \ref medcoupling "MEDCoupling data structures", the ParaMEDMEM::MEDCouplingRemapper class should be used. \if ENABLE_EXAMPLES Here is a \ref cpp_mcfield_remapper_highlevel "C++ example". diff --git a/doc/user/doxygen/doxfiles/reference/medcoupling.dox b/doc/user/doxygen/doxfiles/reference/medcoupling.dox new file mode 100644 index 000000000..271204fb6 --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/medcoupling.dox @@ -0,0 +1,39 @@ +/*! +\page medcoupling Core data structures (MEDCoupling) + +

Overview

+ +The MEDCoupling library gather the core structures used everywhere in the MED world. + +- \subpage arrays +- \subpage numbering +- \subpage meshes +- \subpage fields + +

Design philosophy

+ +The structures described above (arrays, meshes and fields), with the algorithms associated to it +form the core of the MEDCoupling library (\b libmedcoupling.so or \b medcoupling.dll). +It is fully written in C++ and wrapped in Python. + +The MEDCoupling C++ library implements a data structure which is the result of the following tradeoff: +- compliant with \ref glossary "code coupling": + - fields data structure containing enough information to perform a well defined interpolation + - data structure exchangeable through processes, as well in \ref parallel "parallel" (SPMD paradigm - + \ref library "sometimes called ParaMEDMEM"), as in a \ref corba-distrib "distributed paradigm" (using CORBA). +- minimize as much as possible the number of external software prerequisites needed to use it (the core of the +library, MEDCoupling, can be built as a standalone tool). +- light and agile enough to: + - maximize the amount of possible algorithms being applied on it + - ease the implementation of other projects using MEDCoupling as a prerequisite. +- large enough to be used for MED file I/O (thanks to the \ref medloader "MEDLoader" part). +- compliant with VTK visualization data structures +- integrate HPC constraints (compact structures, limitation of copies and launching of CPU consuming algorithms only when absolutely needed ). +- compliant with the \ref icoco "ICoCo API" + +The MEDCoupling also implements a set of algorithms linked to this data structure. The +\ref functionalities "functionalities" section gives an insight of the avalaible algorithm. + + + +*/ \ No newline at end of file diff --git a/doc/doxygen/doxfiles/medloader/MEDLoaderAdvancedAPI.dox b/doc/user/doxygen/doxfiles/reference/medloader/MEDLoaderAdvancedAPI.dox similarity index 82% rename from doc/doxygen/doxfiles/medloader/MEDLoaderAdvancedAPI.dox rename to doc/user/doxygen/doxfiles/reference/medloader/MEDLoaderAdvancedAPI.dox index 4f2995d74..60ae211f4 100644 --- a/doc/doxygen/doxfiles/medloader/MEDLoaderAdvancedAPI.dox +++ b/doc/user/doxygen/doxfiles/reference/medloader/MEDLoaderAdvancedAPI.dox @@ -1,17 +1,21 @@ /*! -\page MEDLoaderAdvancedAPIPage Advanced MEDLoader API. +\page MEDLoaderAdvancedAPIPage Advanced MEDLoader API [TOC] -This method is much closer to MED file organization than \ref -MEDLoaderBasicAPI "basic MEDLoader API". All MED file +This method is much closer to MED file organization than the \ref +MEDLoaderBasicAPIPage "basic MEDLoader API". All MED file concepts are exposed to the user. As a consequence, this advanced -API is lead to change with MED file data model enhancement. +API is meant to evolve with MED file data model enhancement. -In reading mode, the user can scan entirely and directly the contents of its MED file as it is organized in its MED file. +In reading mode, the user can scan entirely and directly the contents of +its MED file directly as it is organized on the disk. Inversely, in writing mode, the user can describe its data in the same -way that MED file does. +way that MED file does on the disk. + +When looking for a specific point in the API, the diagram provided at the +end of this section might help: \section AdvMEDLoaderBasics Some of basics of advanced API @@ -255,4 +259,36 @@ Here is a \ref py_mcfield_writefile_allentities "Python example". Here is a \ref py_mcfield_writefile_partial "Python example". \endif +\section AdvMEDLoaderDiagram Simplified class diagram of the advanced API + +\image html med-loader-adv-classes.png "Class diagram of the advanced MEDLoader API" + +The blue rectangles show the links to the MEDCoupling objects. Note that in MEDCoupling there is no +representation of a field of integer. Those are extracted directly as \ref ParaMEDMEM::DataArrayInt "DataArrayInt". + +The classes shown on this diagram (all part of the \ref cpp "unfortunately named ParaMEDMEM namespace"): +- \ref ParaMEDMEM::MEDFileData "MEDFileData", the encapsulation of a complete MED file + +and also: +- \ref ParaMEDMEM::MEDFileMeshes "MEDFileMeshes", the set of meshes in the file +- \ref ParaMEDMEM::MEDFileMeshMultiTS "MEDFileMeshMultiTS", a single mesh with muliple time steps +- \ref ParaMEDMEM::MEDFileMesh "MEDFileMesh", a single mesh on a single timestep +- \ref ParaMEDMEM::MEDFileUMesh "MEDFileUMesh", a single unstructured mesh + +and also: +- \ref ParaMEDMEM::MEDFileFields "MEDFileFields", the set of fields in a MED file +- \ref ParaMEDMEM::MEDFileAnyTypeFieldMultiTS "MEDFileAnyTypeFieldMultiTS", a single field with multiple +time steps (can be an integer field or a double field) +- \ref ParaMEDMEM::MEDFileFieldMultiTS "MEDFileFieldMultiTS", a single field of doubles with multiple time steps +- \ref ParaMEDMEM::MEDFileIntFieldMultiTS "MEDFileIntFieldMultiTS", a single field of int with multiple time steps +- \ref ParaMEDMEM::MEDFileFieldMultiTS "MEDFileAnyTypeField1TS", a single field with a single time step +(integer or double) +- \ref ParaMEDMEM::MEDFileField1TS "MEDFileField1TS", a single field of doubles with a single time step +- \ref ParaMEDMEM::MEDFileIntField1TS "MEDFileIntField1TS", a single field of ints with a single time step + +and finally: +- \ref ParaMEDMEM::MEDFileParameters "MEDFileParameters", numerical parameters stored in a MED file + + + */ diff --git a/doc/doxygen/doxfiles/medloader/MEDLoaderBasicAPI.dox b/doc/user/doxygen/doxfiles/reference/medloader/MEDLoaderBasicAPI.dox similarity index 99% rename from doc/doxygen/doxfiles/medloader/MEDLoaderBasicAPI.dox rename to doc/user/doxygen/doxfiles/reference/medloader/MEDLoaderBasicAPI.dox index d4f553d36..c4eb56848 100644 --- a/doc/doxygen/doxfiles/medloader/MEDLoaderBasicAPI.dox +++ b/doc/user/doxygen/doxfiles/reference/medloader/MEDLoaderBasicAPI.dox @@ -1,6 +1,6 @@ /*! -\page MEDLoaderBasicAPIPage Basic MEDLoader API. +\page MEDLoaderBasicAPIPage Basic MEDLoader API [TOC] diff --git a/doc/doxygen/doxfiles/medloader.dox b/doc/user/doxygen/doxfiles/reference/medloader/intro-medloader.dox similarity index 90% rename from doc/doxygen/doxfiles/medloader.dox rename to doc/user/doxygen/doxfiles/reference/medloader/intro-medloader.dox index 92fe1099b..e7aed8163 100644 --- a/doc/doxygen/doxfiles/medloader.dox +++ b/doc/user/doxygen/doxfiles/reference/medloader/intro-medloader.dox @@ -1,20 +1,20 @@ /*! -\page medloader MEDLoader +\page intro-medloader Overview [TOC] \section MEDLoaderIntro Introduction \ref medloader "MEDLoader" is a package in charge of loading from a file or write to a file -in MED format a \ref medcoupling data structure. The fact that these -functionalities are not merged in \ref medcoupling is explained by a -willingness of reducing as much as possible the dependencies of \ref medcoupling libraries. +in MED format a \ref medcoupling "MEDCoupling data structure". The fact that these +functionalities are not merged in the \ref library "MEDCoupling library" is explained by a +willingness of reducing as much as possible the dependencies of this library. -As a MED file can combine several \ref medcoupling aspects in one (for example meshes in -MED file on different mesh dimension with families and groups) the API +As a MED file can combine several \ref medcoupling "MEDCoupling" aspects in one (for example meshes in +MED file on more than one dimensions with families and groups) the API of \ref medloader "MEDLoader" is much more rich than simply read and write. -\ref MEDCouplingMeshesPage "MEDCoupling mesh" is \b not as rich as a MED file mesh, and a \ref MEDCouplingFieldsPage "MEDCoupling field" is \b not as rich as a MED file field. +\ref meshes "MEDCoupling mesh" is \b not as rich as a MED file mesh, and a \ref MEDCouplingFieldsPage "MEDCoupling field" is \b not as rich as a MED file field. But it is possible to emulate with a very good fidelity a MED file mesh and a MED file field with a collection of MEDCoupling instances for each. \section MEDLoader2Approaches Two approaches @@ -28,9 +28,9 @@ Whatever the approach(es) you choose, it is advisable to know main concepts of M \subsection MEDLoaderBasicApproach Basic API approach -\subpage MEDLoaderBasicAPIPage "A specific page dedicated to the basic API is available here". +\ref MEDLoaderBasicAPIPage "A specific page dedicated to the basic API is available here". -This approach is less close to MED file concepts, but closer to \ref MEDCouplingMainConc "MEDCoupling concepts". +This approach is less close to MED file concepts, but closer to \ref medcoupling "MEDCoupling concepts". So, basic API is simpler, as shown by method MEDLoader::WriteUMesh that needs no special knowledge about MED file concepts to interact with MED files. @@ -46,7 +46,7 @@ As MED file concepts are more complex than MEDCoupling concepts, this approach i \subsection MEDLoaderAdvApproach Advanced API approach -\subpage MEDLoaderAdvancedAPIPage "A specific page dedicated to the advanced API is available here". +\ref MEDLoaderAdvancedAPIPage "A specific page dedicated to the advanced API is available here". This approach is the closest to MED file. By using this advanced API approach the user will manipulate classes that represent MED file concepts. @@ -133,7 +133,7 @@ For each geometric type on which \a myMesh is defined the mesh dimensions are : - MED_POLYHED -> mesh dimension=3 - MED_TETRA4 -> mesh dimension=3 -The mesh dimension of \a myMesh is equal to 3 ( \f max(2,0,3,3) ). The **relative mesh dimension** is equal to the difference between mesh dimension of geometric type and the mesh dimension +The mesh dimension of \a myMesh is equal to 3 ( \c max(2,0,3,3) ). The **relative mesh dimension** is equal to the difference between mesh dimension of geometric type and the mesh dimension of the whole MED file dimension. It leads to the following **relative mesh dimension** : - MED_TRI3 -> **relative mesh dimension** = -1 diff --git a/doc/user/doxygen/doxfiles/reference/medloader/medloader.dox b/doc/user/doxygen/doxfiles/reference/medloader/medloader.dox new file mode 100644 index 000000000..641af911a --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/medloader/medloader.dox @@ -0,0 +1,16 @@ +/*! +\page medloader MEDLoader: Writing, reading MED files + +MEDLoader is built on top of the **MEDCoupling** library and uses its core structure +(\ref arrays DataArray, \ref meshes Meshes, \ref fields Fields). +It is an extension dedicated to the writing and reading of mesh and fields to MED files (files with a .med +extension). + +- \subpage intro-medloader +- \subpage MEDLoaderBasicAPIPage +- \subpage MEDLoaderAdvancedAPIPage + +More information on the MED file format itself can be found at: +- \ref med-file + +*/ \ No newline at end of file diff --git a/doc/doxygen/doxfiles/medcoupling/MEDCouplingCMesh.dox b/doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingCMesh.dox similarity index 74% rename from doc/doxygen/doxfiles/medcoupling/MEDCouplingCMesh.dox rename to doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingCMesh.dox index 8d3263401..6f75f2cd2 100644 --- a/doc/doxygen/doxfiles/medcoupling/MEDCouplingCMesh.dox +++ b/doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingCMesh.dox @@ -1,6 +1,6 @@ /*! - \page MEDCouplingCMeshPage Cartesian meshes in MEDCoupling + \page MEDCouplingCMeshPage Cartesian mesh A cartesian mesh is a mesh that represents structured mesh whose nodes are arranged along axes of trihedron. @@ -16,8 +16,8 @@ The class that incarnates the described concept is : ParaMEDMEM::MEDCouplingCMes Let's present an example of a 2D cartesian mesh. -\subpage medcouplingcppexamplesCmeshStdBuild1 "Here the C++ implementation." +\ref medcouplingcppexamplesCmeshStdBuild1 "Here the C++ implementation." -\subpage medcouplingpyexamplesCmeshStdBuild1 "Here the Python implementation." +\ref medcouplingpyexamplesCmeshStdBuild1 "Here the Python implementation." */ diff --git a/doc/doxygen/doxfiles/medcoupling/MEDCouplingExtruded.dox b/doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingExtruded.dox similarity index 84% rename from doc/doxygen/doxfiles/medcoupling/MEDCouplingExtruded.dox rename to doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingExtruded.dox index 95a4783ed..f684fb6f1 100644 --- a/doc/doxygen/doxfiles/medcoupling/MEDCouplingExtruded.dox +++ b/doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingExtruded.dox @@ -1,8 +1,8 @@ /*! - \page MEDCouplingExtrudedPage 3D Extruded meshes in MEDCoupling + \page MEDCouplingExtrudedPage 3D extruded mesh -An extruded mesh is a mesh also called 2.5 D. +An extruded mesh is sometimes also called a 2.5D mesh. It is a convolution of a 2D unstructured mesh with a 1D unstructured mesh. diff --git a/doc/doxygen/doxfiles/medcoupling/MEDCouplingPointSet.dox b/doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingPointSet.dox similarity index 94% rename from doc/doxygen/doxfiles/medcoupling/MEDCouplingPointSet.dox rename to doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingPointSet.dox index be05453dd..fd679e684 100644 --- a/doc/doxygen/doxfiles/medcoupling/MEDCouplingPointSet.dox +++ b/doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingPointSet.dox @@ -1,6 +1,6 @@ /*! - \page MEDCouplingPointSetPage Point set meshes in MEDCoupling + \page MEDCouplingPointSetPage Point set mesh This is a \b non \b instantiable class that implements many algorithm working only on a set of points without any connectivity aspect. The presence of this class is only for factorization reasons. diff --git a/doc/doxygen/doxfiles/medcoupling/MEDCouplingUMesh.dox b/doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingUMesh.dox similarity index 80% rename from doc/doxygen/doxfiles/medcoupling/MEDCouplingUMesh.dox rename to doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingUMesh.dox index 11596a348..0aa7f23b6 100644 --- a/doc/doxygen/doxfiles/medcoupling/MEDCouplingUMesh.dox +++ b/doc/user/doxygen/doxfiles/reference/meshes/MEDCouplingUMesh.dox @@ -1,12 +1,10 @@ /*! - \page MEDCouplingUMeshPage Unstructured meshes in MEDCoupling - -[TOC] + \page MEDCouplingUMeshPage Unstructured mesh An unstructured mesh in \ref medcoupling MEDCoupling is defined by : - - a point cloud where the explicit coordinates of each point must be specified (inherited from \subpage MEDCouplingPointSetPage "MEDCouplingPointSet class"). + - a point cloud where the explicit coordinates of each point must be specified (inherited from \ref MEDCouplingPointSetPage "MEDCouplingPointSet class"). - nodal connectivity that specifies for each cell, the points in the previous point cloud that constitutes the cell. As unstructured mesh is dynamically defined enough, this class is also used by MEDCoupling to instantiate degenerated meshes as : @@ -30,16 +28,17 @@ The class that incarnates the described concept is : ParaMEDMEM::MEDCouplingUMes The described method here is called standard, because no special knowledge of underneath nodal connectivity is needed here. This method of building unstructured mesh is easiest but not the most CPU/memory efficient one. -All of examples given here make the assumption that the \c ParaMEDMEM namespace is visible ( by calling for example \c using \c namespace \c ParaMEDMEM; ). +All of examples given here make the assumption that the \ref ParaMEDMEM "ParaMEDMEM namespace" is visible ( by calling for example \c using \c namespace \c ParaMEDMEM; ). Here we will create a mesh with spacedim==3 and meshdim==2. \b mesh contains 5 cells (with geometric type INTERP_KERNEL::NORM_TRI3, INTERP_KERNEL::NORM_QUAD4) and 9 nodes. -You can notice that it is possible to mix cell types as long as the dimension of cell is exactly equal to meshDim to respect \ref MEDCouplingMeshes "this rule". +You can notice that it is possible to mix cell types as long as the dimension of the cell is exactly +equal to meshDim to respect \ref MEDCouplingMeshes "this rule". -\subpage medcouplingcppexamplesUmeshStdBuild1 "Here is the C++ implementation." +\ref medcouplingcppexamplesUmeshStdBuild1 "Here is the C++ implementation." -\subpage medcouplingpyexamplesUmeshStdBuild1 "Here is the Python implementation." +\ref medcouplingpyexamplesUmeshStdBuild1 "Here is the Python implementation." \section MEDCouplingUMeshNodalConnectivity How MEDCouplingUMesh stores its nodal connectivity @@ -60,8 +59,8 @@ Here we are going to build the mesh in a more advanced manner. This method expec The same mesh than \ref MEDCouplingUMeshStdBuild "in the standard section above" is going to be implemented using advanced method. -\subpage medcouplingcppexamplesUmeshAdvBuild1 "Here the C++ implementation." +\ref medcouplingcppexamplesUmeshAdvBuild1 "Here the C++ implementation." -\subpage medcouplingpyexamplesUmeshAdvBuild1 "Here the Python implementation." +\ref medcouplingpyexamplesUmeshAdvBuild1 "Here the Python implementation." */ diff --git a/doc/user/doxygen/doxfiles/reference/meshes/meshes.dox b/doc/user/doxygen/doxfiles/reference/meshes/meshes.dox new file mode 100644 index 000000000..76e952402 --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/meshes/meshes.dox @@ -0,0 +1,47 @@ + +/*! + \page meshes Meshes + +

Overview

+ +Several types of meshes are available in MEDCoupling: + +- \subpage MEDCouplingPointSetPage "Point set mesh" (abstract, can not be instanciated) +- \subpage MEDCouplingUMeshPage "Unstructured meshes" +- \subpage MEDCouplingCMeshPage "Cartesian meshes" +- \subpage MEDCouplingExtrudedPage "3D Extruded meshes" + +\anchor MEDCouplingMeshes +

Common concept shared by all type of Meshes in MEDCoupling

+ +A mesh has the following properties : +- a name (a string) +- **a dimension (called mesh dimension) and only one** (it implies that \b all cells constituting +mesh have the same dimension, e.g. no mix between a volumic cube and a flat triangle in the same mesh). This +point matters as it differs from what the MED file format authorizes. +- a space dimension (the space where the coordinates of the points are defined) +- a set of nodes +- a set of cells (whose vertices are in the node set above) + +In MEDCoupling library there is no explicit notion of faces nor edges. All cells, be it in 3D, 2D or 1D is +described by a set of point, or by a set of coordinates. + +As said above, a mesh has only one dimension, which is often called the "mesh dimension". This notion is different +from the "space dimension", corresponding to the dimension of the space where the nodes are defined. + +For example a mesh with a mesh dimension equal to 1 can have \b cells of type +NORM_SEG2 (simple segments). This mesh can however have a space dimension of 3, meaning that we +describe a 3D polygonal line. +Another example: a mesh with a mesh dimension equal +to 2, can have \b cells of type NORM_TRI3 (triangles) and NORM_POLYGON (arbitrary 2D polygons) for example. +It can still have a space dimension of 3, meaning that we describe a planar surface embedded in a 3D space. + +The (abstract) class that covers the concept described above is \ref ParaMEDMEM::MEDCouplingMesh. + +

Available (non abstract) mesh types in MEDCoupling

+ +- \ref MEDCouplingUMeshPage +- \ref MEDCouplingCMeshPage +- \ref MEDCouplingExtrudedPage + +*/ diff --git a/doc/doxygen/doxfiles/medcoupling/MEDCouplingFieldTemplates.dox b/doc/user/doxygen/doxfiles/reference/misc/MEDCouplingFieldTemplates.dox similarity index 60% rename from doc/doxygen/doxfiles/medcoupling/MEDCouplingFieldTemplates.dox rename to doc/user/doxygen/doxfiles/reference/misc/MEDCouplingFieldTemplates.dox index 5be4dec00..52092d93a 100644 --- a/doc/doxygen/doxfiles/medcoupling/MEDCouplingFieldTemplates.dox +++ b/doc/user/doxygen/doxfiles/reference/misc/MEDCouplingFieldTemplates.dox @@ -3,14 +3,16 @@ \page MEDCouplingFieldTemplatesPage Field templates in MEDCoupling This concept appears in ICOCO API. -field template is the adequate data structure to perform costly interpolation matrix computation as \ref RemapperClasses "Remapper class" does. -So, a field template can be seen as field without double values. The double values are only used for light matrix vector multiplication. +A field template is the adequate data structure to perform costly interpolation matrix computation as \ref remapper "Remapper class" does. +A field template can be seen as field without its double values. The double values are only used for light matrix vector multiplication. Concretely a field template is a pair containing : -- a \ref MEDCouplingMeshesPage "mesh" +- a \ref meshes "mesh" - a spatial discretization (on cells, on nodes, on Gauss points (including localizations, reference elements), ) +TODO enhance here + */ LocalWords: discretization diff --git a/doc/user/doxygen/doxfiles/reference/misc/icoco.dox b/doc/user/doxygen/doxfiles/reference/misc/icoco.dox new file mode 100644 index 000000000..b48ec73a9 --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/misc/icoco.dox @@ -0,0 +1,11 @@ +/*! + +\page icoco The ICoCo API + +ICoCo stands for Interface for COde COupling. + +It is a pure abstract API defining a standard way for two physical codes to exchange information between them. + +TODO: complete this section. + +*/ diff --git a/doc/user/doxygen/doxfiles/reference/misc/misc.dox b/doc/user/doxygen/doxfiles/reference/misc/misc.dox new file mode 100644 index 000000000..111192a7a --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/misc/misc.dox @@ -0,0 +1,12 @@ +/*! +\page misc Miscellaneous - Specialized interfaces and tools + +This page references miscellaneous tools available in MEDCoupling that do not fit +anywhere else in the documentation. + +- \subpage tools +- \subpage icoco +- \subpage MEDCouplingFieldTemplatesPage + + +*/ \ No newline at end of file diff --git a/doc/doxygen/doxfiles/tools.dox b/doc/user/doxygen/doxfiles/reference/misc/tools.dox similarity index 100% rename from doc/doxygen/doxfiles/tools.dox rename to doc/user/doxygen/doxfiles/reference/misc/tools.dox diff --git a/doc/user/doxygen/doxfiles/reference/reference.dox b/doc/user/doxygen/doxfiles/reference/reference.dox new file mode 100644 index 000000000..d6419583d --- /dev/null +++ b/doc/user/doxygen/doxfiles/reference/reference.dox @@ -0,0 +1,23 @@ +/*! +\page reference Reference manual + +The following pages constitutes the reference manual of the \ref library "MEDCoupling and MEDLoader libraries". +If you are looking for a more informal overview, you should go to the \ref start "getting started" section. + +The basic \ref medcoupling "core structures" are first covered (this is what constitutes the MEDCoupling library), +and the manual then moves onto more advanced concepts and methods. + +You can also take a look at the numerous \ref examples "code examples" provided with this documentation. + +- \subpage medcoupling + - \ref arrays + - \ref numbering + - \ref meshes + - \ref fields +- \subpage medloader +- \subpage interpolation +- \subpage cpp +- \subpage distrib +- \subpage misc + +*/ diff --git a/doc/doxygen/doxfiles/functionalities.dox b/doc/user/doxygen/doxfiles/start/functionalities.dox similarity index 91% rename from doc/doxygen/doxfiles/functionalities.dox rename to doc/user/doxygen/doxfiles/start/functionalities.dox index 0e13fd64a..10869924c 100644 --- a/doc/doxygen/doxfiles/functionalities.dox +++ b/doc/user/doxygen/doxfiles/start/functionalities.dox @@ -1,6 +1,8 @@ /*! \page functionalities Available functionalities +This page tries to list most of the available functionalities of the %MEDCoupling library. +It is by no mean exhaustive, but gives an overview of the capabilities of the core library. \section directOperations Direct operations on fields \subsection directOperations_creation Field creation @@ -91,7 +93,7 @@ And also: \section interpolationOperations Interpolation - +A full section is dedicated to interpolation, as this is far from being a trivial matter. See: \ref interpolation \section globalOperations Global operations - Spatial extrema: \b MaxFields, \b MinFields \n diff --git a/doc/user/doxygen/doxfiles/start/intro-start.dox b/doc/user/doxygen/doxfiles/start/intro-start.dox new file mode 100644 index 000000000..51c6ca63f --- /dev/null +++ b/doc/user/doxygen/doxfiles/start/intro-start.dox @@ -0,0 +1,42 @@ +/*! + +\page intro-start What can I do with MED? + +Simulation studies require the manipulation of \ref meshes "meshes" and \ref fields "fields" for data +pre-processing, in calculation schemes (including chaining and coupling +of codes), or even for results post-processing. + +Corresponding computer codes can be viewed as software components accessing +input \ref meshes "meshes" and \ref fields "fields" (with specific constraints) along with parameters +(datasets), and producing output \ref meshes "meshes" and \ref fields "fields". Each code presents by +construction the specificities of its discipline. + +The \ref library "MED module" aims at pooling operations on those items, facilitating +their use by various codes involved in a simulation process. This includes +making codes communicate while preserving as much as possible the integrity of +their content. + +To fulfill its objective, the \ref library "MED module" includes: +- Handling \ref meshes "meshes" and \ref fields "fields" to satisfy code input requirements. +- Extraction of field information to post-process computation results of +a code. +- \ref interpolation "Projections" and serialization to \ref para-dec "exchange meshes and fields" between codes. + +In addition, the \ref library "MED module" offers several interfacing levels; users can thus +benefit from an interaction level adapted to their codes. + +The main services offered by \ref library "MEDCoupling" are: +- Manipulation of \ref fields "fields" and their support \ref meshes "mesh", serialized with the +\ref medloader "MED format". +- Operations on scalars, vectors, and second order tensors. +- 1D/2D/3D \ref interpolation "interpolation" on nodes, cells, Gauss points and nodes by element. + +MEDCoupling thus considers: +- the \ref MEDCouplingMeshes "data dimension". +- the \ref NatureOfField "physical nature" of the information stored in a field, as well as conservation laws. +- the field profiles and the mesh connectivity. + +\image html projectionHQ_600.png +
+ +*/ diff --git a/doc/user/doxygen/doxfiles/start/library.dox b/doc/user/doxygen/doxfiles/start/library.dox new file mode 100644 index 000000000..921338504 --- /dev/null +++ b/doc/user/doxygen/doxfiles/start/library.dox @@ -0,0 +1,50 @@ +/*! +\page library The MED constellation: MEDCoupling, MEDLoader, MED file, etc ... + +\section lib-termino Who's who? +The library and the module have evolved over the years, raising +some confusion between all the names used to label the various pieces. This page tries to clarify +this situation. + +"MED" can (unfortunately) refer to: +- \ref med-file "MED file format": the file format used to save a mesh (".med" extension) +- \ref med-file "MED-file library": the C++ library developped by EdF R&D (and provided + with SALOME) to read/write MED file (warning: for advanced users only!) +- \ref medcoupling "MEDCoupling": the (relatively) high level API to deal with mesh and fields in memory +- \ref medloader MEDLoader: part of the library dedicated to file I/O = a more user-friendly API than the MED-file library API +- \ref remapper "Remapper": part of the library dedicated to +\ref interpolation "interpolation/projection methods" +- \ref gui "SALOME’s MED module" (GUI point of view): a graphical client in the SALOME main application, providing a graphical interaction with part of the library +- and finally \ref parallel "ParaMEDMEM", for the projection operations and field transfers in parallel + +The most common confusion is between the MED library (what you are reading at present) and +the MED-file library ("MED fichier"). +The MED-file library is part of the prerequisites of the MED libary, and its only purpose is to read and write +MED files. This is a low level API written in C, and giving a fine-grain access to the structure +of the MED files (.med). The architecture diagramm below details those points further. + +Another source of common confusion is that all the standard (sequential) MEDCoupling/MEDLoader API lies in +the \b %ParaMEDMEM namespace. +This is quite unfortunate but due to historical reasons. The true parallel functionalities +of the MED library are detailed here: \ref parallel, but are still often called +the %ParaMEDMEM part of the library. + +\section lib-archi Architecture +The figure below represents the layer structure of the packages of the +library. +- each element depends on the blocks it covers (fully or partially). +- White blocks represent system or external dependencies. +- the MEDCalc block, with gray background color, is the \ref gui "Graphical User Interface". +- red-colored text identifies code with Swig interfaces (API available in \ref python-api "Python") +- blue-colored text identifies code with both \ref python-api "Swig interfaces" and \ref corba-distrib "CORBA layer". + +\image html MedCoupling_Architecture.png + +The fundamental set (blue background) consists in three atomic libraries: + +- \ref medcoupling "MEDCoupling" that describes data structures used for cross process exchange of \ref meshes "meshes" and \ref fields "fields". +- \ref medloader "MEDLoader" and ParaMEDLoader that provides I/O functions to the MED file format with sequential and parallel processing, respectively. Those are built on top of the MED-file library. +- \ref intro-interp "interpolation tools" that provides mathematical structures and algorithms for interpolation and + localization. It is implemented in three blocks: \ref INTERP_KERNEL "InterpKernel", \ref ParaMEDMEM::MEDCouplingRemapper "Remapper" and \ref parallel "ParaMEDMEM" (Remapper with parallel processing). + +*/ diff --git a/doc/user/doxygen/doxfiles/start/python-api.dox b/doc/user/doxygen/doxfiles/start/python-api.dox new file mode 100644 index 000000000..5af75272d --- /dev/null +++ b/doc/user/doxygen/doxfiles/start/python-api.dox @@ -0,0 +1,35 @@ +/*! + +\page python-api A word on the Python API + +The Python API is highly similar to the C++ one. The main modules to import are: +- %MEDCoupling +- %MEDLoader (with mainly the static \ref MEDLoader "MEDLoader class" within this module) + +The following intuitive rules have been used to map the C++ objects to the Python ones: +- std::vector become standard Python lists, see for example \ref py_mcdataarrayint_setpartofvalues where the function +ParaMEDMEM::DataArray::setInfoOnComponents() is used. +- the return values of C++ functions (usually passed as last arguments in the C++ prototype) are +returned directly as a tuple, see for example the Python usage of ParaMEDMEM::MEDCouplingUMesh::getReverseNodalConnectivity() in \ref cpp_mcumesh_getReverseNodalConnectivity. The +initial prototype where the return values are passed as argument can however still be used, provided you instantiate +the returned objects first. +- the indexing mechanism is greatly simplified in Python, and offers similar functionalities to what NumPy +provides thanks to the ':' (column) operator. Once can for example refer to part of an array with something like + +\code{.py} +import MEDCoupling as mc +d = mc.DataArrayInt([(1,2), (3,4), (5,6)], 3, 2) # an array of 3 tuples with 2 components +print d[:,1] # show only second component of the array: 2,4,6 +\endcode + + +Finally for the most common objects (DataArray, MEDCouplingUMesh, etc ...) one can direclty access the +Doxygen documentation in the interactive Python interpreter using the built-in help function from Python: + +\code{.py} +import MEDCoupling as mc +help(mc.DataArrayDouble.getNumberOfTuples) +\endcode + + +*/ \ No newline at end of file diff --git a/doc/user/doxygen/doxfiles/start/start.dox b/doc/user/doxygen/doxfiles/start/start.dox new file mode 100644 index 000000000..9780907b8 --- /dev/null +++ b/doc/user/doxygen/doxfiles/start/start.dox @@ -0,0 +1,18 @@ +/*! +\page start Getting started + +If you are completly new to MED, this page will help you grasp the main concepts +used overall in the \ref library "MED world", and have an idea of what you can achieve with MED. + +The tutorial is also a good way to start. + +Once you are familiar with those concepts, more detailed explanations are available +in the \ref reference "reference manual". + +- \subpage intro-start +- \subpage terminology +- \subpage library +- \subpage functionalities +- \subpage python-api + +*/ diff --git a/doc/user/doxygen/doxfiles/start/terminology.dox b/doc/user/doxygen/doxfiles/start/terminology.dox new file mode 100644 index 000000000..8d05a9f23 --- /dev/null +++ b/doc/user/doxygen/doxfiles/start/terminology.dox @@ -0,0 +1,57 @@ +/*! +\page terminology Terminology - Meshes, fields, interpolation + +\section start-meshfield Meshes and fields + +This section covers at a very high level the concepts used overall in the MED world. +More precise definitions can be found in the \ref glossary, or in the dedicated pages for the +\ref meshes "meshes" and the \ref fields "fields". + +Many physical simulation codes (try to) solve a given set of equations on a given geometrical domain. +This domain can be anything from the representation of a building to the description of the +molecular network found in a small piece of concrete. + +The geometrical domain is provided to the machine as a CAO modelisation (what you can build with the +GEOM module of SALOME for example). + +\image html geom.png "Example geometry (CAO) of a cylinder" + +The numerical codes (e.g. FEM-based codes) +are usually unable to work directly with such a format, and a spatial discretization of the domain has +to be performed: the **meshing**. A **mesh** can hence roughly be seen as a discrete version of a continuous input geometry. +The module SMESH in SALOME is typically dedicated to performing this task. + +\image html fine_mesh.png "Example meshing of the above geometry" + +A mesh is made of **cells** (the elementary spatial unit), which are typically simple polygons or polyhedrons. + +On this support, the code can read/store values in form of a **field**. A **field** is hence an +array of data, where each cell (or node, or ... etc) has +one (or more) values associated to it. A code simulating the heat equation will for example produce a temperature +field assigning a single temperature value to each cell of the mesh. + +Taking the vocabulary of the finite-element world, a field with values stored at the cell level is often +called a **P0 field**, and a field where values are stored at node level a **P1 field**. + +More on this subject: +- \ref meshes +- \ref fields + +\section start-interp Interpolation + +When working with different codes, or when coupling codes, it is often the case that the initial problem +has been modelised in two different ways. For example a thermic code might use a mesh made of tetrahedron +and a CFD code might use a mesh made of hexaedrons. The interpolation mechanisms provided in the MED library +allow the user to easily \b transfer field data from one representation to the other. + +In all its generality it is a complex task, covering many different use cases (do the two meshes overlap? do +we want to conserve the total amount represented by the field?, etc...), justifying a dedicated section in +the documentation: \ref interpolation + +In this documentation you will sometime read the words "projection", or "transfer" or "interpolation" for this +process. + +More on this subject: +- \ref interpolation + +*/ diff --git a/doc/user/doxygen/doxfiles/tutorial.dox b/doc/user/doxygen/doxfiles/tutorial.dox new file mode 100644 index 000000000..edf6943f9 --- /dev/null +++ b/doc/user/doxygen/doxfiles/tutorial.dox @@ -0,0 +1,8 @@ +/*! + +\page tutorial Tutorial - MEDCoupling/MEDLoader in Python + +The %MEDCoupling/%MEDLoader Python tutorial is accessible here: +- MEDCoupling tutorial + +*/ \ No newline at end of file diff --git a/doc/doxygen/doxy2swig/MEDCoupling_doc.i.in b/doc/user/doxygen/doxy2swig/MEDCoupling_doc.i.in similarity index 100% rename from doc/doxygen/doxy2swig/MEDCoupling_doc.i.in rename to doc/user/doxygen/doxy2swig/MEDCoupling_doc.i.in diff --git a/doc/doxygen/doxy2swig/MEDLoader_doc.i.in b/doc/user/doxygen/doxy2swig/MEDLoader_doc.i.in similarity index 100% rename from doc/doxygen/doxy2swig/MEDLoader_doc.i.in rename to doc/user/doxygen/doxy2swig/MEDLoader_doc.i.in diff --git a/doc/doxygen/doxy2swig/doxy2swig.cmake b/doc/user/doxygen/doxy2swig/doxy2swig.cmake similarity index 97% rename from doc/doxygen/doxy2swig/doxy2swig.cmake rename to doc/user/doxygen/doxy2swig/doxy2swig.cmake index 0e96b3664..1e3ed568a 100644 --- a/doc/doxygen/doxy2swig/doxy2swig.cmake +++ b/doc/user/doxygen/doxy2swig/doxy2swig.cmake @@ -22,13 +22,14 @@ ## the docstrings built from the C++ doxygen documentation. ## -SET(_DOXY2SWIG ${PROJECT_SOURCE_DIR}/doc/doxygen/doxy2swig/doxy2swig.py) +SET(_DOXY2SWIG ${PROJECT_SOURCE_DIR}/doc/user/doxygen/doxy2swig/doxy2swig.py) SET(_SWIG_DOC_SUFFIX "doc_class_") # # MEDCoupling classes to include # SET(_classes_MEDCoupling + ParaMEDMEM_1_1MEDCouplingPointSet ParaMEDMEM_1_1MEDCouplingUMesh ParaMEDMEM_1_1MEDCouplingCMesh ParaMEDMEM_1_1MEDCouplingRemapper diff --git a/doc/doxygen/doxy2swig/doxy2swig.py b/doc/user/doxygen/doxy2swig/doxy2swig.py similarity index 100% rename from doc/doxygen/doxy2swig/doxy2swig.py rename to doc/user/doxygen/doxy2swig/doxy2swig.py diff --git a/doc/doxygen/fakesources/MEDCouplingField.C b/doc/user/doxygen/fakesources/MEDCouplingField.C similarity index 100% rename from doc/doxygen/fakesources/MEDCouplingField.C rename to doc/user/doxygen/fakesources/MEDCouplingField.C diff --git a/doc/doxygen/fakesources/MEDCouplingFieldDouble.C b/doc/user/doxygen/fakesources/MEDCouplingFieldDouble.C similarity index 97% rename from doc/doxygen/fakesources/MEDCouplingFieldDouble.C rename to doc/user/doxygen/fakesources/MEDCouplingFieldDouble.C index 8a67b4aaf..b5d74a3a9 100644 --- a/doc/doxygen/fakesources/MEDCouplingFieldDouble.C +++ b/doc/user/doxygen/fakesources/MEDCouplingFieldDouble.C @@ -238,12 +238,12 @@ MEDCouplingFieldDouble::WriteVTK(const char *fileName, const std::vector& varsOrder, const char *func); +MEDCouplingFieldDouble::applyFunc2(int nbOfComp, const std::string &func); +MEDCouplingFieldDouble::applyFunc3(int nbOfComp, const std::vector& varsOrder, const std::string &func); MEDCouplingFieldDouble::applyLin(double a, double b, int compoId); MEDCouplingFieldDouble::buildNewTimeReprFromThis(TypeOfTimeDiscretization td, bool deepCopy) const; MEDCouplingFieldDouble::buildSubPart(const DataArrayInt *part) const; @@ -264,9 +264,9 @@ MEDCouplingFieldDouble::doublyContractedProduct() const; MEDCouplingFieldDouble::eigenValues() const; MEDCouplingFieldDouble::eigenVectors() const; MEDCouplingFieldDouble::fillFromAnalytic(int nbOfComp, FunctionToEvaluate func); -MEDCouplingFieldDouble::fillFromAnalytic(int nbOfComp, const char *func); -MEDCouplingFieldDouble::fillFromAnalytic2(int nbOfComp, const char *func); -MEDCouplingFieldDouble::fillFromAnalytic3(int nbOfComp, const std::vector& varsOrder, const char *func); +MEDCouplingFieldDouble::fillFromAnalytic(int nbOfComp, const std::string &func); +MEDCouplingFieldDouble::fillFromAnalytic2(int nbOfComp, const std::string &func); +MEDCouplingFieldDouble::fillFromAnalytic3(int nbOfComp, const std::vector& varsOrder, const std::string &func); MEDCouplingFieldDouble::getArray() const; MEDCouplingFieldDouble::getArray(); MEDCouplingFieldDouble::getAverageValue() const; @@ -357,8 +357,8 @@ MEDCouplingFieldDouble::MEDCouplingFieldDouble(NatureOfField n, MEDCouplingTimeD MEDCouplingFieldDouble::MEDCouplingFieldDouble(TypeOfField type, TypeOfTimeDiscretization td); MEDCouplingFieldDouble::MEDCouplingFieldDouble(const MEDCouplingFieldDouble& other, bool deepCopy); MEDCouplingFieldDouble::MEDCouplingFieldDouble(const MEDCouplingFieldTemplate& ft, TypeOfTimeDiscretization td); -MEDCouplingFieldDouble::applyFuncFast32(const char *func); -MEDCouplingFieldDouble::applyFuncFast64(const char *func); +MEDCouplingFieldDouble::applyFuncFast32(const std::string &func); +MEDCouplingFieldDouble::applyFuncFast64(const std::string &func); MEDCouplingFieldDouble::areCompatibleForDiv(const MEDCouplingField *other) const; MEDCouplingFieldDouble::areCompatibleForMeld(const MEDCouplingFieldDouble *other) const; MEDCouplingFieldDouble::areCompatibleForMerge(const MEDCouplingField *other) const; diff --git a/doc/doxygen/fakesources/MEDCouplingMemArray.C b/doc/user/doxygen/fakesources/MEDCouplingMemArray.C similarity index 99% rename from doc/doxygen/fakesources/MEDCouplingMemArray.C rename to doc/user/doxygen/fakesources/MEDCouplingMemArray.C index 76a5b7104..fa7bac3f8 100644 --- a/doc/doxygen/fakesources/MEDCouplingMemArray.C +++ b/doc/user/doxygen/fakesources/MEDCouplingMemArray.C @@ -219,7 +219,7 @@ DataArray::GetUnitFromInfo(const std::string& info); /*! \name Others... */ ///@{ -DataArray::getHeapMemorySize() const; +DataArray::getHeapMemorySizeWithoutChildren() const; DataArray::copyPartOfStringInfoFrom(const DataArray& other, const std::vector& compoIds); DataArray::copyPartOfStringInfoFrom2(const std::vector& compoIds, const DataArray& other); DataArray::areInfoEqualsIfNotWhy(const DataArray& other, std::string& reason) const; diff --git a/doc/doxygen/fakesources/MEDCouplingMesh.C b/doc/user/doxygen/fakesources/MEDCouplingMesh.C similarity index 100% rename from doc/doxygen/fakesources/MEDCouplingMesh.C rename to doc/user/doxygen/fakesources/MEDCouplingMesh.C diff --git a/doc/doxygen/fakesources/MEDCouplingPointSet.C b/doc/user/doxygen/fakesources/MEDCouplingPointSet.C similarity index 100% rename from doc/doxygen/fakesources/MEDCouplingPointSet.C rename to doc/user/doxygen/fakesources/MEDCouplingPointSet.C diff --git a/doc/doxygen/fakesources/MEDCouplingUMesh.C b/doc/user/doxygen/fakesources/MEDCouplingUMesh.C similarity index 100% rename from doc/doxygen/fakesources/MEDCouplingUMesh.C rename to doc/user/doxygen/fakesources/MEDCouplingUMesh.C diff --git a/doc/doxygen/fakesources/MEDFileField.C b/doc/user/doxygen/fakesources/MEDFileField.C similarity index 100% rename from doc/doxygen/fakesources/MEDFileField.C rename to doc/user/doxygen/fakesources/MEDFileField.C diff --git a/doc/doxygen/fakesources/MEDFileMesh.C b/doc/user/doxygen/fakesources/MEDFileMesh.C similarity index 100% rename from doc/doxygen/fakesources/MEDFileMesh.C rename to doc/user/doxygen/fakesources/MEDFileMesh.C diff --git a/doc/user/doxygen/fakesources/namespaces.C b/doc/user/doxygen/fakesources/namespaces.C new file mode 100644 index 000000000..d14e85718 --- /dev/null +++ b/doc/user/doxygen/fakesources/namespaces.C @@ -0,0 +1,37 @@ +// Copyright (C) 2013-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +// This file contains code used only for +// generation of documentation. Not working? + +/*! + * \namespace INTERP_KERNEL + * \brief Low level structures and algorithms used in MEDCoupling. Not considered as part of the public API. + */ + +/*! + * \namespace ParaMEDMEM + * \brief Namespace gathering the core MEDCoupling functionalities, the advanced MEDLoader classes and the parallel classes. + */ + +/*! + * \namespace ICoCo + * \brief Interface for COde COupling. See the page \ref icoco. + */ + diff --git a/doc/user/doxygen/figures/IndirectIndex.jpg b/doc/user/doxygen/figures/IndirectIndex.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd4aceff9ac8cb4ca8ef4e14421d8a3a567cbf76 GIT binary patch literal 16749 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 literal 0 HcmV?d00001 diff --git a/doc/doxygen/figures/MED.png b/doc/user/doxygen/figures/MED.png similarity index 100% rename from doc/doxygen/figures/MED.png rename to doc/user/doxygen/figures/MED.png diff --git a/doc/doxygen/figures/MEDCouplingUMeshConn.eps b/doc/user/doxygen/figures/MEDCouplingUMeshConn.eps similarity index 100% rename from doc/doxygen/figures/MEDCouplingUMeshConn.eps rename to doc/user/doxygen/figures/MEDCouplingUMeshConn.eps diff --git a/doc/doxygen/figures/MEDCouplingUMeshConn.fig b/doc/user/doxygen/figures/MEDCouplingUMeshConn.fig similarity index 100% rename from doc/doxygen/figures/MEDCouplingUMeshConn.fig rename to doc/user/doxygen/figures/MEDCouplingUMeshConn.fig diff --git a/doc/doxygen/figures/MEDCouplingUMeshConn.png b/doc/user/doxygen/figures/MEDCouplingUMeshConn.png similarity index 100% rename from doc/doxygen/figures/MEDCouplingUMeshConn.png rename to doc/user/doxygen/figures/MEDCouplingUMeshConn.png diff --git a/doc/doxygen/figures/MEDFileConcepts.fig b/doc/user/doxygen/figures/MEDFileConcepts.fig similarity index 100% rename from doc/doxygen/figures/MEDFileConcepts.fig rename to doc/user/doxygen/figures/MEDFileConcepts.fig diff --git a/doc/doxygen/figures/MEDFileConcepts.png b/doc/user/doxygen/figures/MEDFileConcepts.png similarity index 100% rename from doc/doxygen/figures/MEDFileConcepts.png rename to doc/user/doxygen/figures/MEDFileConcepts.png diff --git a/doc/doxygen/figures/MED_small.eps b/doc/user/doxygen/figures/MED_small.eps similarity index 100% rename from doc/doxygen/figures/MED_small.eps rename to doc/user/doxygen/figures/MED_small.eps diff --git a/doc/doxygen/figures/MED_small.png b/doc/user/doxygen/figures/MED_small.png similarity index 100% rename from doc/doxygen/figures/MED_small.png rename to doc/user/doxygen/figures/MED_small.png diff --git a/doc/doxygen/figures/MedCoupling_Architecture.png b/doc/user/doxygen/figures/MedCoupling_Architecture.png similarity index 100% rename from doc/doxygen/figures/MedCoupling_Architecture.png rename to doc/user/doxygen/figures/MedCoupling_Architecture.png diff --git a/doc/doxygen/figures/NonCoincident.png b/doc/user/doxygen/figures/NonCoincident.png similarity index 100% rename from doc/doxygen/figures/NonCoincident.png rename to doc/user/doxygen/figures/NonCoincident.png diff --git a/doc/doxygen/figures/NonCoincident_small.eps b/doc/user/doxygen/figures/NonCoincident_small.eps similarity index 100% rename from doc/doxygen/figures/NonCoincident_small.eps rename to doc/user/doxygen/figures/NonCoincident_small.eps diff --git a/doc/doxygen/figures/NonCoincident_small.png b/doc/user/doxygen/figures/NonCoincident_small.png similarity index 100% rename from doc/doxygen/figures/NonCoincident_small.png rename to doc/user/doxygen/figures/NonCoincident_small.png diff --git a/doc/doxygen/figures/NonOverlapping.fig b/doc/user/doxygen/figures/NonOverlapping.fig similarity index 100% rename from doc/doxygen/figures/NonOverlapping.fig rename to doc/user/doxygen/figures/NonOverlapping.fig diff --git a/doc/doxygen/figures/NonOverlapping.png b/doc/user/doxygen/figures/NonOverlapping.png similarity index 100% rename from doc/doxygen/figures/NonOverlapping.png rename to doc/user/doxygen/figures/NonOverlapping.png diff --git a/doc/doxygen/figures/OverlapDEC1.fig b/doc/user/doxygen/figures/OverlapDEC1.fig similarity index 100% rename from doc/doxygen/figures/OverlapDEC1.fig rename to doc/user/doxygen/figures/OverlapDEC1.fig diff --git a/doc/doxygen/figures/OverlapDEC1.png b/doc/user/doxygen/figures/OverlapDEC1.png similarity index 100% rename from doc/doxygen/figures/OverlapDEC1.png rename to doc/user/doxygen/figures/OverlapDEC1.png diff --git a/doc/doxygen/figures/SampGeo2D1.eps b/doc/user/doxygen/figures/SampGeo2D1.eps similarity index 100% rename from doc/doxygen/figures/SampGeo2D1.eps rename to doc/user/doxygen/figures/SampGeo2D1.eps diff --git a/doc/doxygen/figures/SampGeo2D1.png b/doc/user/doxygen/figures/SampGeo2D1.png similarity index 100% rename from doc/doxygen/figures/SampGeo2D1.png rename to doc/user/doxygen/figures/SampGeo2D1.png diff --git a/doc/doxygen/figures/SampGeo2D2.eps b/doc/user/doxygen/figures/SampGeo2D2.eps similarity index 100% rename from doc/doxygen/figures/SampGeo2D2.eps rename to doc/user/doxygen/figures/SampGeo2D2.eps diff --git a/doc/doxygen/figures/SampGeo2D2.png b/doc/user/doxygen/figures/SampGeo2D2.png similarity index 100% rename from doc/doxygen/figures/SampGeo2D2.png rename to doc/user/doxygen/figures/SampGeo2D2.png diff --git a/doc/doxygen/figures/SampGeo2D3.eps b/doc/user/doxygen/figures/SampGeo2D3.eps similarity index 100% rename from doc/doxygen/figures/SampGeo2D3.eps rename to doc/user/doxygen/figures/SampGeo2D3.eps diff --git a/doc/doxygen/figures/SampGeo2D3.png b/doc/user/doxygen/figures/SampGeo2D3.png similarity index 100% rename from doc/doxygen/figures/SampGeo2D3.png rename to doc/user/doxygen/figures/SampGeo2D3.png diff --git a/doc/doxygen/figures/SampGeo2D4.eps b/doc/user/doxygen/figures/SampGeo2D4.eps similarity index 100% rename from doc/doxygen/figures/SampGeo2D4.eps rename to doc/user/doxygen/figures/SampGeo2D4.eps diff --git a/doc/doxygen/figures/SampGeo2D4.png b/doc/user/doxygen/figures/SampGeo2D4.png similarity index 100% rename from doc/doxygen/figures/SampGeo2D4.png rename to doc/user/doxygen/figures/SampGeo2D4.png diff --git a/doc/doxygen/figures/UML-0.png b/doc/user/doxygen/figures/UML-0.png similarity index 100% rename from doc/doxygen/figures/UML-0.png rename to doc/user/doxygen/figures/UML-0.png diff --git a/doc/doxygen/figures/UML-1.png b/doc/user/doxygen/figures/UML-1.png similarity index 100% rename from doc/doxygen/figures/UML-1.png rename to doc/user/doxygen/figures/UML-1.png diff --git a/doc/doxygen/figures/UML-2.png b/doc/user/doxygen/figures/UML-2.png similarity index 100% rename from doc/doxygen/figures/UML-2.png rename to doc/user/doxygen/figures/UML-2.png diff --git a/doc/doxygen/figures/UML-3.png b/doc/user/doxygen/figures/UML-3.png similarity index 100% rename from doc/doxygen/figures/UML-3.png rename to doc/user/doxygen/figures/UML-3.png diff --git a/doc/doxygen/figures/UML-4.png b/doc/user/doxygen/figures/UML-4.png similarity index 100% rename from doc/doxygen/figures/UML-4.png rename to doc/user/doxygen/figures/UML-4.png diff --git a/doc/doxygen/figures/UML-5.png b/doc/user/doxygen/figures/UML-5.png similarity index 100% rename from doc/doxygen/figures/UML-5.png rename to doc/user/doxygen/figures/UML-5.png diff --git a/doc/doxygen/figures/UML-6.png b/doc/user/doxygen/figures/UML-6.png similarity index 100% rename from doc/doxygen/figures/UML-6.png rename to doc/user/doxygen/figures/UML-6.png diff --git a/doc/doxygen/figures/UML-7.png b/doc/user/doxygen/figures/UML-7.png similarity index 100% rename from doc/doxygen/figures/UML-7.png rename to doc/user/doxygen/figures/UML-7.png diff --git a/doc/doxygen/figures/UML-8.png b/doc/user/doxygen/figures/UML-8.png similarity index 100% rename from doc/doxygen/figures/UML-8.png rename to doc/user/doxygen/figures/UML-8.png diff --git a/doc/doxygen/figures/UML.png b/doc/user/doxygen/figures/UML.png similarity index 100% rename from doc/doxygen/figures/UML.png rename to doc/user/doxygen/figures/UML.png diff --git a/doc/doxygen/figures/UML_light.png b/doc/user/doxygen/figures/UML_light.png similarity index 100% rename from doc/doxygen/figures/UML_light.png rename to doc/user/doxygen/figures/UML_light.png diff --git a/doc/doxygen/figures/UML_small.png b/doc/user/doxygen/figures/UML_small.png similarity index 100% rename from doc/doxygen/figures/UML_small.png rename to doc/user/doxygen/figures/UML_small.png diff --git a/doc/doxygen/figures/connectivity_arrays.eps b/doc/user/doxygen/figures/connectivity_arrays.eps similarity index 100% rename from doc/doxygen/figures/connectivity_arrays.eps rename to doc/user/doxygen/figures/connectivity_arrays.eps diff --git a/doc/doxygen/figures/connectivity_arrays.png b/doc/user/doxygen/figures/connectivity_arrays.png similarity index 100% rename from doc/doxygen/figures/connectivity_arrays.png rename to doc/user/doxygen/figures/connectivity_arrays.png diff --git a/doc/doxygen/figures/connectivity_arrays_small.eps b/doc/user/doxygen/figures/connectivity_arrays_small.eps similarity index 100% rename from doc/doxygen/figures/connectivity_arrays_small.eps rename to doc/user/doxygen/figures/connectivity_arrays_small.eps diff --git a/doc/doxygen/figures/connectivity_arrays_small.png b/doc/user/doxygen/figures/connectivity_arrays_small.png similarity index 100% rename from doc/doxygen/figures/connectivity_arrays_small.png rename to doc/user/doxygen/figures/connectivity_arrays_small.png diff --git a/doc/doxygen/figures/connectivity_example.png b/doc/user/doxygen/figures/connectivity_example.png similarity index 100% rename from doc/doxygen/figures/connectivity_example.png rename to doc/user/doxygen/figures/connectivity_example.png diff --git a/doc/doxygen/figures/connectivity_example_small.png b/doc/user/doxygen/figures/connectivity_example_small.png similarity index 100% rename from doc/doxygen/figures/connectivity_example_small.png rename to doc/user/doxygen/figures/connectivity_example_small.png diff --git a/doc/user/doxygen/figures/fine_mesh.png b/doc/user/doxygen/figures/fine_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..01b64e4ef4a7447b44d569fdb480c9817a851251 GIT binary patch literal 33886 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 KBvB538~A@g$N^{o literal 0 HcmV?d00001 diff --git a/doc/user/doxygen/figures/geom.png b/doc/user/doxygen/figures/geom.png new file mode 100644 index 0000000000000000000000000000000000000000..db02a3b9387fe965e4d3f766749e57991e025bab GIT binary patch literal 19218 zcmW(+1yqz>6JAMa=?>|Zlv+wUm+nqMx{;QW?uG^F?glBT1q1;>I%MgRZusBtKOD}& zvX?t|?!+_C%p0YqDu;zmh7JOOuoUE_HGtP45a^ZoYXsmYU;0D`;04K6QbiI3YDmC% zG)D%0r?HgRPyvBHGlD?DVIa^w@K*312;|8H0v(uvK*E_I5V1>cr#cw;1B!)`oHXd= zzpsMtWhuZrXfE>l?jR7(*Z;m>5sj8afIx}_3eu8VK1;{nKPABB(;2*KN%uF;#;V6g zZLO_!AS#d>Ehd_@dyF5EPcQsb+Z!2pB zUdd~&!l94*L**|lIzY$ES;-?$XIGp<-RpG({Um#D`uyhwOTfz#KdbWqwY>o{=Je0Q zQgaCl>g1r<)ju1jVkh9!*}!s)0ugv$vbwQ9T-pq;q&Dm3#+3+tXVG(j`jUFQv=J3W zQoN8FOtZ&6%Sdf7#hMk)Pp(0a;lw2{-%1HlE{=W0HJ(0blQn@Zu?G$c*zM0*zG;EA zXJl9e6XY(OLH#U%mps%LX}>k_vn8`%}{w|Dy?w~!}ZHP#H_zfyLXVK&$ zKJ2C65okO8-t#1p6B{hk*`(}+Zgg3bdWU2B!oaOd$*{}X@vu2G9huRg_*Ll7{oaqN zBAmKLX~aaerubtND~{GUAB)05I>X`%aq!)Bmt2r}s@VD>Z*eoM8RnkHRj_cxIfW9K z->hhZtQTV(oWB}yKKo>v)`s#^Cnj$W8DGELT6oU)8ouqlL_+tdU+YneZ_y)}$-neo zv>l{bdnx{S?Q9x&H^-V+0cNV_iRi<$ARFuN$`0=MLj0Pmm|f7VByMI%s4GTuD7ONB z5=rd6-m6!9(M4@S^fAXehR;yv_3R**qBiIC#g{)`cT9|mO>m6^( zX6dDCt88DQS>R!;e8i`2KGBN0HG!-&E~%f`IhGq`jn>)WJY_#$;2`maZJN z3C|vE{L}+_TFv>@H*G?K%j3AAMaGBreeTIW@fTB{%TKDd?USn^)_zpojr0LtH?V}8 z7v+Y#A1S>vzR#CK)Uys(w{!VoSPqW3P=aZF=*#{P@6$6sRY2%Aa%;;txjm7|V6IIS zX*#9>LzDG~m)qlB+MRXrr@YCgvUfcg4cf?bwW#aBQD1@7(`|RCUvR+w=o)6jY3FAu znS(?j-s!u{4K0=pY4F7q;`Nfn^Rp^yuXJLOJDJjCBc`D}tDKOMmxJE>oT|WxnXk-K z7vd)D7hB$!XQHA{9KjGgjkOUJ!XNUg=i0b6#tcowatWp@zK=gbo!6-Y?_5v4YG>&=S zsaWp={BE@_sPm<2$l>|<-^Z7~d_U8h9PCmV5mH!dmr$0;z^^JarlzJ$ICO-w%x#HJ zO)nOsKHp+_eEHD-R9!ug{@ypc4rDOt#aeb{dy1Vv)U^72h=m(C-Qa|xt0#TX)(r)gmeGqKpC{HoEc-}`p|AHb^@r=AucRZ}k|x#Y!2uEFtjdBl zgK+)i+T_J|atZnCet^?CPg?eM!qb(1$gz#_oi zNv`SJ{j!n18f!&>n5nirZ#{U|r7MXpSLCJ41b?ALko?3Pmq2}c^$w}0b|TSJ?^KPYx5tj>ypH{?(kJ^C63h6#e}yMR}G) zTG}@fVOA)?>yHD@CU3}>x+Jv+(al)i3s1S%h*S9A9jyuUQi%3s9)H=p-j5u#iuldA zGN-c<^)>VEW`tT5(?i44ORFGSBAOsXi=~%2oL(mVY&qj`rzDisU$wu|2_G(MS~K&1 znO0xs&Yp>5{*$T5MK^_iv30{PYZq{80eM?&-w#9i71)GYb&w0ZqMy(g)$|UII0Qw`ANb zL}OlDJ%paNywFZ-T7pJ`We@2tdj0#3K<~yD>e12636%%JkCKtjS31@*;(F~>7U0{9 zC+9V4s$5b&~cY5AJ(0L5(SM1=wCJ_x87$r0~dW0Dq5}r614(!Z3Tok zM8rEI;vbkib^$|^G^H|s9|<#`z^X4M%rgtA%s&abSSdVsQeqrS_IOiV+tbU2>P;Qp zZ*1V@Ui^u%w!BnjUN>pTsKr>KGNR~Tx=} z@MU97Ukb^J-5#w*!MAcuoAgHoAu9^>N`&-CuGb^7 zNHyQ^tw@7>#!uJJyZ$sA;NjW`^r2UOAnf-S1mACN=I8&!q3RAu&sM(&%@>W6u9s2_z$d8VSX^w{M(pSIMme`l3m3C4{Go$N`*ZHbJNtK4OpI<-8tZLJS+m|tG3$~Rm&bU| zCmgs_26_3t$eH*?aM87%lE06x3wtKTZdo&Lq-tU@NX)cMTd2~y^Wx&Wa}PK$;Ndc$ zbhfg@Qp$K15iDUULAou*Ci;)ML?=OqA3|2MaTJMiY@5gJx$*KBw8cQ`Z zrF{eD!QC(pTE|%R``w3LVb-^4VbssjXVTI_7pDmcajIjZ?OF!a_{nb(NlOnDhNn03 z%g-7L_*1{YT%U1I*ZxJeJ)U4GM_lkOWre<0Krc~mf0{xvl#Y&5zb|{}y+6Ob>c3MM zEor5LR#?$Dq3bUBlu}dFak{@I)Xqga$zsQqT_bc%(3X^D_yyu6+I`&0m)I~3WF08} zmE9xAdO-<-XSr{deH^k^%u;>6IDKAyxy*mLp`YqTR;tB=Y*SQtI}`gtOQS39$@G{x z{`Jv6Vx(NOT+weeCI>?F=jsyeL3%ZbHMeErA${+ll6JzKs5Sf7l+=c|NEf!5%s+K^ zMIP40@2^Y)UtZW}C`l!HHNdZstT2PW5{QI~q;f{mq!N9V3bT&_h0qecVsb4j4&nK^B}6Y))|Y@t#TYJU77kF@YqkKZNnI`}1Yx9~q9D?_ErOK)H6 z&`X*JD03GVj7_WQqgIjGuHf*8_RbcVpvBW86D}B>LxK=+d;PI3_cn;GaX$7$J|U85 zLTx6lB8hQxtc7_M=}cki9g1LC=}I8Lq1U?M9y&Bp@h72K*VupmeUZ_7NpR(t9ft28oxlz~TFktE zCRfGVBCxeKI?biV2PF%B`KLXJirE8-cJd;)cA9E6DE`x66xadk6AwVOQDyI@0wI_T zeZ}JrGyk+g!rRx(JB1l^2YIoJyl_ve&f)}pq6(snaNhUZ z-bux3!a+~5&zs^Dx!)&G#R?q49XB9z8z-x@Q?rZRWGhMXMN-oj+7d~)qaW-xvtu*h z#^t?#SL{Y_gU@f7YPVoA)Jer4;-uFg!1zsi*>Tf}UU#VgAYoT6`edbsm`ic?etvQ6 z)BJ+vb)f35TkXC>CkEGf?D}`Um&+iVpvRHC?Zu+rTSusEGsD>zdzTTK$_RVQ*B@f`7&Z{1<3oiF7C zHED%K58K;A95edxN&N_D({VIRX8QuK5z`kXC5QSYc>7E5%RB!^qFw5&yZ!0!S%oF$ zr?aM{(AQ==wEupli)(YS^1Pz3(0YZ2UP$L|ouXqw*E8xlDtINv+x@9}kjVWEA(557 zKUNxXC`X(mMrMD4WT)#z!#wHVY<^_{r4-B61~**mC!RY_f!4@~O~m};GggofMu{1w zoukRiKwZ$QSJZ2?Q_<91KX(L0vqA_7mF}D)gESQLtQP^iq*!L*B1enR2a5Rx@}G`7 zYWrJ4<xgI?#ip4LM6!2Yt0UW!R; zlzTQr3aYQzbeG2F-kMcf$SYPAL@|xaf{Vd`9JIAJDfEOqAGzG{j}v-TjO5gdU^GuIGB+bNn3P` zbqNf?qA#>6_L@wvpd`PFO-yrbKxy}!is{BTAAg355X}<7zd7-UAt1SR&l6?rT{Rfu zxQt}2=&Oelx?=N|XIHDAxK%KuE)zndJFNMg&fT!-M4Tq9#+gu2FX;7m80qhIn}a!< zbS}>?`2=LsP7CWfD@oQD`8q4rhF`y)b6aQjw#IMMobp^5yZzK57v;@-AGP#$=ovR7 zw<81Noi$}zch~Wop`eL~U_ZYul^R!mpUNHi5>*TQjmyuf?MCl4OGu?UX`_9rO8pYr zrmeb1el*|F$LDgLht?;kPPekRN_QFZj5thS`Ug3`!;tj~H^u_0m9fmW801u<0Cma! zAqfZyZ2Xt6wv5W~!$>a^{njjs3^}@>jk;B@`mO3k(I*X6` zSD%q&dpdhX)>Slr0Oc7MlcHT7S8nbX2|KiVE;sL2u4FM%^Mo}D!`r;588`?Me|}nu z74HX1!8B)K*tU3oVluzbY(>P;QWV?SD9_%b=ms;P5L9@_#4t2fqI#Qw)(KeY9%?xzIZlOH8sX4jCv_eBr%aY^JA2w1B6 z2bnOKj%jLIAt}j)s)AV5402gKWq!@Newdq{d{5~piWc3^LXs7u8D|J)V8AOXC7`J$u5UEnqt|76q=|C-iwtkC1H8c$CO&&8^F8u6q zK_@lG5Z(b*82lAQs(ZPnXf4U-8%Lqrck|>;Na?T(|I)cXsHo~$Lra7k6(lR)1x5ZSx@XGnB4MoT zV#}lo^Sa|(tyn(Ap>{c{32H*sN4l2lj%O=cJStQZE7&Wv^X&ac?y5-=1eWLim3?+$ zdP>0`c1XO`Z?AG|yRrJ`m=t2z1uey^mV$OOTOYBLTYbTj7D{qWsp$~{JDeW5-1%5Y z;C?q`PoGeX656`jsMWMX8})&lbDJmZE@!JbCJ@F3tIw9CiDW=wDHdSlQk|F!QuU;w z8MgwOsiC+32Yo6<&C0_1jBXTke(94Jf=O+;Amewh(*kGnKyY!Xl z_{@82F?>HEa`*gsHXaRz6?y9AW+v5~oKD&rI8#C;xcZV8RW4fWJU(h0biaaPwtnV*tlY?69J_xbmo?9)vnGVd}S$TSHs`^R{Qmhb0FewOQ2>OEW z)kqy8#N*ktd&7f8dYV7}>yKdLoX4049EQD3aZW$%T|2>pC~lvoUv10^%@oo;cu3ib zS@}3qi)U0ay=XEKs&w2Y=pu6x;e42MhE+y5n%L{^wZ7NKd`@68$yq7Q^f6XQImHXG zjqSf^G-h^~pyaJ~18ZC>3LQJNAL=SrD^6qB&Z0bG)~Ro45l6x{Y|i;;7S^Z)%QyZe zGC5a%d6l_9V<>u%3_+PTS|Py|eKj-yGh3k>FVSNy+r+5aexLsbXUt7kqCYI{g!yXg9{ zIvVh-sks-M8O2Kq7TeeO^PJP$5DA*QohC`cVeqIzrpQ&Em=>i$e2K6U?t+6f_BDHt z$*gxk>%Nit2y^& zRZ%JNnva{*`=ohzTGhRGsQ>DQ4q}dywylgUd85lm!_{~sDgNJWZdQ=3P_os$8l_nO z-2a8Kq(t<1e};Bzi!Mu4+lU;BU4HrToIrd!>EytXrHMo;3<}6MehE>QW|MVrLCqKM z-`3{iJhmI)ORM}Tx1_dWNOI+SuX;|eO&~o0Kaax+&P89*v}y2C_|Lfm^w{0VN#D7n zSMqb2&F+CqWS%9uW}u}ETa-dQnki?)7=LIWP~p+PJw#Slx7gUeJibAIkk)rhJJJ=V zld8Oy9xNzQ^g{eU?UJ0Snrhx);R)XVmbUUwIo^D9d^>JT$d@LF8?rI@>n$Pb3PsxU zf5KisKpK=2NeCfdt05J-6;f3*c$kNOpY2$E9I&k(QU4qkD8^Zov8@o0uB#bHCZKmzG_Si4n(wQZ zY&i7hR29J)$DveIn8!yhS&s^GJMu6-VJ*cNVm>*!CC#nL*U~O}N})9@h~A$IuJe^L zFsyz*i{beu4}u$W8MzZ}18kbYyhwdmQN729lCx6hcIb7~-o}Q{{MDBF`IFjli67?E z#(&p_1AgYHDM@XE2O8PL#b ztQq{0h&3}tAf>*Hi^y}p36t5{`i_7OIOYQ)7M}l5(3KW|>(DZG^50Odq$y%_C@Pt& zD2~5rjFQtDvey;Fo?p5{(77fFru(OJO>uI0*y|X3v(=DU{ouLiQ{WgPFO7(S;8-O(n+3*VU!FY9Sf`(5WPt6BO)dt!Yv3c%B zS=*ayYyR?+Da}8(fOwfiPNQ6eLB!6?QQ6!#HPPLyiy8lN(&1Y4un1WE^s;Q@P(W7r zB4|M=c_q`e#!ul)xkfv!RHMb_Ouzj8*Ee_957{yp?aZHEvgK0FSZ2}vt9reh&E8rr zZUyL}`rml$wBa7TAWfp; zY|>i>LrKt!Q@wOFH|-^bD|wJ9N*I3ce^D!Y$F#xxxhn(Hf(GTrlg1ta4)mSaZ^u)uB$aQN1` zZzIbSk;x*&Wplx+_h|B!&!LT zPqXL-r)0@*GY)UR8eY6ol^`NHzd8jYReqI5a!-px^jA2*v(v(n+a& zahStco$naN)=~J&YZpe3?fFq~lezkWXnIsrYba$So?Qb}&wYpe&&9cS+gLon;m30Y z#R_RMkS3bgDy}EuXAm+zj<-f7yAIO}lI83CGNVj#J@MS!5b+J?_YW@Ut!j;f;ozz8 zY1lNhnuEF7G!#DxCb=fb+U^sK({CKOjgTYDSK^r1ZP@9p&QuWeMt%!nb6Tv5MiOv~ zN8(XZfCjVsHH(`7t0lpNN^wC!?5N(Jg}EuRa^DQy;;e8Mtnp=s{pPv?>D`YR{P@0_)NTK1 zROgAWJWu}-8XFoEqjCrvyp0z=j5_5f=*VM{`ce^VwR0D*k^TE4kXab-1eBPaja4qMv&-8rfjl#;0CE0t+Z4G~Xnl2HWU`UdH0I{$7?2={lKz0&|2T!Zh=A)E?8| zus#x=!!h>x_dEHS_$AQ1zzJoOpGkOj9-?XKAD3q5q=!-c&+Az_Sxt7UFk$#sr=*7c zf8wlmfK&hAw?uH3U>fld zxAjha734MbPuu14fS>?Be^zM#qHFvuXjCHO=Kh-rmGBRiz+2J;|6nYBOnRoF!=wR=sWZr8(&ijPnzDCmD=b^jR1xyx8(sj^aq`QVMZIBxIMcJP%17u ziBI?O(RB^H|HAZbrNUwz_Z0N4d*RbyJ{}V}!`7kU0`L3rz8pVLFFg$eODJndYoqS^ z#+xY`OxTJGCJgPeEt@-t;EAgZ3)@3I8kkOMF8i5u7Im+9qI=*W;g-@>8BKYp06i#D zwXZXF<<~x_+GMM3T`s*%VMPJJa9&aKS0(280+XfLJyZ2{j50;Ge@<*G_Qrq1Yy7}> zpvCw+eEV1Jot7Pc?R#>R>6-L%s30kEI;Z!(_x{tq4Juhzi;CnREgw7<%G*6t9gTT?# z0znhWsgY{$qUlJQ{y#+M&sNsyDq*JrJU#drW`n6j@1Xl{T=-(uy2a)pGa265n) zvh9dQgJqbz%~a3Jk58?%X2;m)VvZS4kGQ@E(T*+V?ncO`RdTAmdp2US{XD_qAkub; zKI-F4N>9HvXzY3Ef5eGOG#&Yg1AZ z6|2jjnRvEl+nHa#{i7==RJHOYW?W=c^OE(??%X#-rcArWBUpd`BnmBZxJnct^lr7& z$F~f`>>vQpQA&Pf*h-tt`4a0~DSj2{h3$LbVVsi4L@Jpm#EQb0&o*QK1&G->1VFMf zAZhRrwHM=<*{j^~S|f63m{A-Saa$LT`%J7lLv=itKnKCg4w=_S#h?{p9nK80x>{$dwHYpK&mS7KjV^;+>%) z9cCf9g4%j~3vhMh$Vw&MUvuo=Kc~dCI_l=nwPo+TE`vZV%qoSuCkgw_jXWHjsqa^Ow>ZuBk#dBDj?lRVNsydc+pir9YI~ z&TasOa}7^0vvN_D*`|m8HYwpocXJstsdw*P#i&mm(GJy+3Qx^bhRDGo1iHX-4ok@? zLa?z~G^((&1l&97QB$a01m;$hCLmWSW0&Ok*E5iuZi_O_vodm0ijFysTg)lU;8Tw9 z@=@A2;kWP8!F@U{f9)&hWC0M6a>umLpO+ye=VgWZty#^VWt~>IMV&`1fWB$_kvaTS z!~rpT_?lDrQ^Syjybq&|ORaKGMrpVCz}Jd@T39DMsgr08e4PliT7MbuVbRTHS1_M{ z!Q@V|G}41Rqngs3ss7z~=hE?Gx(|LS5ajqJKA>9bDlTnj*WoNj7Qv;?u!DpP*+D)f zo|(L_=W$wbRV1Svqld$~Vsz=vtX}w098QjpSvAN_PLVSc#rd&L4$Q3M=ocH)a*6jN z-m47%_-sHYrGi7^6v^X~?+}$Gn#%ARojE);Bz2iA5kR^^QKQEWT-u@CI?iu`R9sSjlgds7&uKSq<*pESG;;eH;5zC6R;wT6oo;QG zh$-^TOwoy?NyX0f?k~M!WxHg(Xo;sCvuJ)t7FfvH)D>g=`#+9aWwRavAl4H+qk$3^ zkhu`fYAt30Qi;y8$o&exWiBX-V7v1D;B<%;m(Hb*%+53WI}}~zUW4g;lmTBt`j0vf zVBeMRM-!WChWSCb--*udV5#4S1R~z$!zH&qlvKWP;y&w6r zQx356JU~p@KmF=vIeEU4MQ1&`7shBrS^n&XTs7S4M6*Sg?;iJQi^oNYzDeBIzSB|- z5tV85W@T>Gs6!pl(mNU8sL0T<{yYIW#nS19UiJWUou!!DD6GV@IF`ejBqlUEGA)&A zlwJ7izr{WyvEXIxdprQj9sUJUQvkSwIhClascL4g`=;54o2mEPviKdDRqp4&x}xR6 z3pE_v`aJMlk&r%#`QMU>!r!{64;lC@%nk@I#a}0NNY$`T9{Gfmq;y$1KGJLvSZaNg zHKE>GXaSd&%7@EHCQOU*8;gDc%Rta((9yHP-zfm)MQacOh(5||O$mkcp|y5_m4o0e zy@)_^#p*MU*rn9_)WN@h&E@!h)m$?`Tr%5@!mu409cG*KKNu22viAxpR_xv->&tLg zZ4{R^r_Lu|^X102H5zOqag7&B4qpkx#UDIZ&FfjSU#dIK?Y+6K1~C26RmHUrmHzS-^+L@7tJf6p?K;Uo!EvF_MDEWZmiu zL?}5Hr_Iw}a%HX~WNgV);T-Pe&ovC^EgVnPudWGa(yno0-jVN*N=D?Qeuu$oJQWjL zEjPUEAobObMpl(+P7z9$XUgVlfsuC~z(tyDlz@L1cZy+s^MO=m55 z!?5)`|7SCKoFGrNj#pko(<)NYBqLTU-OM{9!LiYlw_N8Ax~7$YrT~V3rm)E&t?2V< zLcT2OX8IQ)4gmgE3V1l8^PK1q;kBgW>>s~2*s4pP8T0wPR%EJOTb9htl*(2sw$!Ty zcrMv<6hLT?q@-wz$|*7yFHk5!?9jx_>5nVkCJWWNmdhy|ZPmvQlw?` z5|R%(G(J{6Dg9JWdQbJ=fB`gFcviadwS(9YZX{>Sw_8`7iPERr8q-fZWA_nh0dUM@+fcA)3t#)8sp|vRa8U z7YTo&%Oc z+IaYwra6*w2DL+``@4jN>w4hndKg#8?XA=~REs~Is*X6R;+09?wtM0KT52YrRDdKQi zrBjwnXvZF*lb`0RVV-F5w^vCay7&p`?zL>SzfM*oj-!C1mc_%)uwFS9=>&iiz{2rh z8Oux^)YjB|V=dRWP2dhswyx+=O>??4ptCgzuq()vw)%6K^dmp*AVo|_ZE?eL#e^QS z)tsb0Zs!EKrg!vAa^a5gW5ExQPrw=$Z|W9B)*kwE&2|O52C46vGc)qTU9qwzf6RXL zVo~{&$AS5M-pNwh;`K8h=Dwb&0vcg5@zMHq$ivG%&v5qOw}qQVK)EpL4i~O$ZDz79 za+;1yJewwp$Y7+0lm{8BJ|W1O^r5j^rH8T|9dThpV%_*V-Ckj`tr7k+b8GHC7v&(> zpFGe`4J}2YIjgTl%%@M@Cv-V%`IKBHucsspMeala}nuc5vq#A$DiwGlCyi8Kd3gEc!ZXcc*aPzYVmFPUq#}}b{#cwdD}89<$=IR ziE|iUp@V~S-S(~Nhu|~3+k?!LEbl9+mPw_S!Qgh%@qFx0Pr9vHef;TbM41M6;lr>$ zStyZt6oi^7u9m4VoH_#lHDE%nHYVYd0B;so3(_rbrlHv~FH+2*=b@q^T|P3OG1Wiu zg2ZwBX$lcNAEdYrxQgKRz5a*+U& zy<1}l7)|-7Y~tVj+IVMC((MYkdUGGz!d%~e6vd{Z=P|G{3)(Up$2$vZuB}lYr9&9; zagAMo^#)X1#+z&<2LhEIEs)OS_N|RNIW_(cqz4jUwBXME>PJ)_9WwbuHC-k@eW4Xt zuf>*v)Y;vhb9R4jkw0NG2g-21S|zBsK&(Ipm`wq+>aB$VsxO zg69~tljTk$jr`y12R`ylHjI;U{pWcJy{xk~V_wz^y(Wox4>I&=ClN`DT-L zd<>b3<}HJJHd1mS{zP6glY(5aF$ZZzcRTaPd;Lq6Sg6G-0wcCpa9=S=Xy(Onl72PT z8DyeDLp+z_4~ChZybuPFL|7h}s>PQ_Ol9^SbAmw-Ke_DMfP5fxPHTg7bKeWVC=r0e z8XSIph3WQC#aJ?=u;eidWlV^z%U^&Wx!k}GlgrdTn2iXyZRAF)=X1OBb3t4#00Ds% zL@V%2!Gh=dZ|}goFn(U>brIc`=qx&8Y6ydhQ(X~ZcHsJmD$Xb;{*9ZK&UhUT_I0b& z|IY@@GD+J}0vyc7zf_{Bf#xzh*ey!6IttY@2~}`*t+nfHwv1$A8OIoq>te+#&P6rG zNJkp5BqfzR?-@xAkl6M-fGh&ZF+g;5gDcaIBhTLmB8V zYCwt8GU?kx_bh8w24-0;+6D{TO4H3u>+_D8(}B@T_WQMI9WNCpc6o5LG?BV~=?O;D zfR-SBfZZ~5e$m1{QPuIS)ykCBZMG|$`I~$O5<5(Gb!%gcwt8=b7w5wtP(THTy}jb; zCw4N5ekBW~q=#Jt3PrgE6w0=cu_9#WVX{F}*<4VlbB^JnceiBKEdwK6K8Zg?E41ck zWTb^0<>@#Yw*5B|!0Z|1?Cb{^c>pkuSW2=or*t=(^)0ZLKBn!wxJ2I#y7Kq&K>zW&Acth$5iy`dj&ar`?+ZqV{Jg5mAr!WDHDOF}VWX#Fa)02bo000OahBKky0Zj6kkj4NL?8fn4 z5o2hr3YTe%V3Ew?_xY0w9_%tVN^i1Cm*hLk5ORx=hc9wklev#st1AuLWw~=XjL(Wcit;N@5dx4CowiA&c~`LBa%!J zdh{08D*34*O@G1R+k{08F*I68gQ+S_Tu#v?-KnI6ALY9Oxe_#+MzTL+)h^&`lN@v< zvwcF{w=n>SKRu5u>Wa%k8YX1MT6Q5cvJ}Bp499k>d})c`xM8PI5qmV!%Q~)V!;fr* z4^?^iAu8#joip1*A~odyIT%3L>;jBU?nl9{D(m^TIb2agj(XJ!!+uL|!ep(?5(tJX zDJ7xRmiXDmp1%};bZ7<`A)`WJtEx@I{10&eWI1HlB|^psLd$0?+76nT{5}Toh}HaX zP7bj&aIUFn(VZi`CNO5wZKMQc717Rrm*-nuULK#A2WA#N-!UP~(AN<6B`Ugf&1n3g zo#y2yrFIMmgs%xbyAgj%ER%OxIovr&GR9^3HN3K>m^EY|03F;=ok;p}e9|su_ie+} zptq{a1i%SlpfZ@hP5L@7*{{lHXp$Gg1R*}d#k zqQO}x8B9=RcG0zWwzRPyt`IzOC~zo|8fS%`H3Yx$_D-q!@Am#ewl`|&|D5os5>Wu; z=-XpEGM+X61A?S8l=I(x1zR}ts!-++(A-)0a&auTO=+txppy__G{`oV@i>{OJ*xEx zpRScjkLScnL`7=&&xfgBN`t{tPHo1-<$+0Vzs1m|DF|&+PJgwslg(Qg`>^T?Ohl`j z)F3q}QwNVuNVkxe6Pwe2#^dQpYDU;k|Gd|}dId|5qGgHA8mAz1Y5nY0-}@i2C0hPxl8ZPwVXSp z#B_czt!PPBWn0LF?O6$Upy8TV@XX1=BdV{c&OaQmF(*yzDYQ~ z^^I2K{7&5#1)jUojrrBEhvXQKo~b*|1mM<1`|~g_U=F45H_ix?Qc!&AYknEL91CL; z`QecH+RA*D3p}J#AB;9jTR(bVR&s&8(}7zbjwbNJ`V^+KuWckYFp)XwESo0f3n{uF_ohKbf+T zo%nXje$fI$OG&Qw;28^WL9;M3N`h!Vb#mG3weGK}r@7I@%c2X*D$Pqvxd?WS{|zrt zLmq`RRHHSKdB)4_OBiUjI9`=0*;lQ#?eC4>|G~d)TYA#>W|~E}(#w4XjQyq2SE#n? zw>HfazLNl$>%&@u5iJ%J==~?tBOY5(cECG)xoz`|!e8N+8&7!>VwS%ap)KUL&Qee|-+OLY|C^V8A zc?1Ey5bu!?XJnqYh~z1!p8{;Xq2%sZzkYxD55<*jZCN{|&PbBw<^HfU%zCU#C%@Cu zv`lF0X=Ys5PYtma5J(2goH07HLkD-tgMHIPg%bGPb z^#aABsgV-I4OLN;hIQ{{9|ABoK(hWWBHIfUDWHE#6+gH?4Lj3-xt)pcf&`s>9T$>8@Q-QtUlg; z%qp^o_SC9Pny}!AXF_S#n1Vpw#j3kioVlfri2lbFsD1MP`px#2H+7s9c2w-hi2kv; zv##a-RiFBko|AxI#b+y9yb`LTQ(J#5AUR__1Kdb}9_K=j+?Y+-C{mhNNr|A^E}0K% zH~#%X$v^gl`83fBdN_+RVPw&_~BK=rh^x}aS2k=2G*2}AZZ9~vps z>FJw8q%d;yzdN7&lFI65F?lgoxQ(AkkV&Vgj*b~UM1dV$!7PO`P*HKw@CzznoF~$z zWXMvh_98zl)~|PAI!W1fWzA<87?e9|PGs88RU7jfZ8WsYX8Z#nEus-X&2AUwEx!RO zh!#o0(~MWm;1}I7tbgVs&&l~cH`XNO14Httr#RiH=ElL_rXsb6N<|x?r94w&Aehqy zofG%f2bLr0DBD&1RPsAFV?irJGZ*`fe|CLG#wcH_efX}ol=8!iObX+NqX*x3W9|HC3ZVpw78L`eb{^yR?`3bT zq0z|+f&ll!d46CRQ0AW&oA(+8OZwq?-|^|M^lNyct6=2t!hLAh&gga+oaJ?(+;Ef^ zYdsy}Zc~VB$8p1J=vQXT=lW(0Gl|afr6)C&(n@dVKB3>Z?Nlnma{A38cv+C_^)~H9)^Ei$Nua>mp>rS(-ZGG+IQkUw5Bg% zNlEDU0t^75_qe!eDMOj0ajvgxGbSv4j-;p*8IB5R=s37qb!CR_7H}x%c;o~~yQ`$8 z(0uwxvze@N^ULsvL2MmQ75Lbdhf~mq1K+Ocg!g~TIr=nTrMScssE5w{oovNG6~s?D z6TX^V#PG_lX}F2bp9{1R@Gb02sA6e1+x85y1-$E!S=-nAKxV%4(U9I<1f~!zOZdl2 zevI)6ySZ9wMp)?>%MVMLy4hKEmth*^v7=gtLb?A=4PdLT4MpMp)(jyumIKTuH32^w znM=Y6;Pf+G?iH2B4~rg~%UVWnwKyo=ZgD%QsxS%YkYyZOQB+;a)?!ZZ``){W^_IfX zlAf{kNPl?66VS};!P&tGK1h@XF|lnWgqS@+{_8wB_X{7-kzkpXZt-clnjuX`C;ou} zFnsWT{cqs$k_=yysU(D4{*8m11mquWUuS4<<{7sf?U1)vv3u=&%LRN7q@j*xzJ(L& zESbJg=i?YWKLcgwx5y>A_4wMx*>ME7?gksbSVlORc-9;ola%d6i)=G#KKHsvj11f% zzY{Zi?<+QYdDXu;L*fZcD$x3{nn2Y{tpV*U&L(Z;SI^KATGRyq9GYi!9=&hFc%tmZ z?PyB(SFi(Ymfm;FcH=Onc))_SbtHwI>Y(J?;;XM#%k+j`csyd}5BEGSKlIr_+{nJ? z##&q!%b8sKVK$%TJCshPX zA)iggi)njJNsee~^PD*JY z-wL;;HrbVGr=zQmcj8Y$2+E|EmBd=O7(`zwRMN9N0GLupap-^J*y)yWB`p=|Pn=j4 zPv(D4Pe3Rba&}LlixODh)sT!(0me<_UeBMx&m-w?Kh#wm?>AQIufW@s>LqNQ zq|sAeXz$@%Ub(v({dUL*aYoBB^XITswHh@LQiSlO>*v+{GvMCcPLq@yEgk5xYsP zkz5B10GzS=3B35}y_+o_+LYnI)Q~>hT0lG_gGU`;*S--xTvVUu_;zw?pEcy);TH$6 z;+1<->m)`8A{!yV-IS)q5ETQr&jTAq-0k#<*2KuaO4%Fj?kn}LlbxjqgVmII%*qZgug-k5%gW8x zPiFf42GdPTqrT@^o|RpU+I+|-xl&XnJO-}{kB^O`rlGK9wB6gat$AhfliDE+csRoT z1EXc;n{d?(po0d%!SSl=0K(2mJ|-8_;~}N?VK*q3(ukJVK>Qf(BqfrdjOw@U{{rm@ z68Af!$&<(J<*-gTr@~Vi12*ZW;+)XZ->ra02_9<7P|ZY;N()836sG&`r*7gFQq*1? zIe}xRH^$i+f_)cf$QRoI*K{gy)Y{)Kh2Q8}$E*E0ccnc|K*sxAG%5kADU#WBU2Eko zd8)$!p~LcL+uh%te*!X#wdVDGffaC1@i&^6T+MMQ26rUMc-5L4BIDlcfxB-JbsoV9 z(b$yJ=?)AiB8_kI*EzXIE zAL(H|=jO)l*2^N#JeoX(XH+Xbc{wUoLZ()9XFk6cFShGxUGFys0Q`=!)R!=VkR~=n z(AP{W=#+uoNMm=kq5li0nG?f=@JtZFal>p9Hg`S=nZ;Vy`(A++aF_D`UR~t%y5sF> zPtikzZ1c@45GIS7_F8JGHaWy@d=Wa7kph!vN1uw!Vy%1CDgu_Ehsd5HTar@nloo2Z z$ZGYXWT;J!tCnwW0`f!+ZpmHtshC>Mj68p^_ld|X)_SdiMnDGoH#mFBs|6{=V#Md9 zJ-O|>SufKZ$?X1in#T5+jy!o?Y)ocR^!VTtky)(uT~&{P9Q3#R@hLA$NI8kW9PivolYw&0Adi+n80ZD@ft5vy;DFy(3^rnj-#bO)|cwHH`J@ z5*gGOO`hD@QGT#MY}7KaAvVAH@(V?SWB=Q4<5x{5;FOYw=Hh=`yndLUFG-H{{0h8;y2HzVw|w(WcAAmO z#UckAd*;#klVaQN;CRfO7LIPaSq3s$rC{R5{O0!I7XR|rvUT6;K)?!=gZ_5$=IsMc_WbL$qh6pB2L!N3hdSJ3LFau1?S)M=L-@P}Vugs^T*-4w=Eg?m_ zEJ;1gFaG`cvnTm!PL$hd!pKUeXziBqT6qGmO`fDwCsr{Oqq$<6z_~GV!hd(?_NOEO zdp6lyX9`V*fWN(X{r4BIb~s;>M&YQgij2pL!${^j^osPG}wSIAh)>56+plv&3~Dg zM;hl0b0yJ|tFz0)Q(+cWDVCCu2d4lARtyDxq|9$rc3&}ov(L#bS-WgJ6;>$w3@k_k{4hIvl%4(6^8Fhk0il6o^)qhXb>ansYb+d+0TxUe{D|`3=+%8P09F8|jqF_?yBa)MD`dVE zDS!z4AUk`Qo&D9~-5WiBne6?X9%P_1l`61iCP0<3oeBF8?%?lmTwLKb8OQ+xI^g_? zTHQnbh%yGP$`AGV+7;ueFq?=Zf%Pam{q5piM)WK_c$w_I(es?t1tkCyHUJb@m8(rq zGnbB$@lai9CQnq!F$M(i0&0d_Gaq5~fU?K5I)KT6rN08?XKGu4Cu<(CG*~nLcJc1d zmd6HolkC3Ha{|7f-7=t62`^S)&4xiG!kDTkb+y7_Q?56McP}>#!vF;2AOj-sobv?y zm=_OtbqAROX5c00;s!~=whK?zEWrYBPDw$}AFNIvuRb#9&zJ8N^P6P%wVv;A{z~t@ zPIeQ{7o-aZR`yM7svHN)yCnf9Pz@;t@{;o~Kq<@|CIda>#gSPt@C{#RU=Cw|9K^tR z`Oe83t8Gj1Bu!N=CL^^15s)wgc(^+KYW0zTZ|TF5bjs$np1(B5n$)Q#3}yyt@HggEF#yhq?wZwIUamkh@C=4QD-eK%@J62}<8HTWfG2C!DzK$b zDf&bP6nMrtKo7IC$JuEy9fH71QY+HbBj>+}9PA>uH_AadXa;8B9LlCL-*}^TyH0rW ztXkR(s78D%QcJNWl>(QC#*p&AF1G>{Ajo^f`X8-^IC3Hnt zbYx+4WjbSWWnpw>05UK!H7zkPEip4xF)%tXFgi6gD=;!TFfi9AppnF*PkPGc7PQR53I0$6H{j@n{_hhPWGCAHeXQrN`**c}$NS{B$$!`Rcl@IKzw+b8YRj*q-H4@;r75H* zJ*>b)Na1<5X+6=zyAA)Y>wDC1x=vZdFPP-fZTM3XpAitglhiKhwCU*mH+MKDeh=zD zYxw`MqQXkW7vOjIrJ-X51qESvLiQ7diII_!LF3|NO5Wby;`v?>NNP$7tsns=rqW$W zlYoH0;Ly-EGgR5i#f3u{L;Kso%1ZmXQ;`-Tqh6iE^5xNLnL%rw&Hl>DShJVAkdTm$ zjt)$f5F493d0=~$_jOcqa`H;y@$Bm-;C(;MKDhyL^p5}K$IP!05fMp@I_e2qEf4oM ztq=D)9ous?wrTwCcH;TLK|$wRqoUi=K0bGqm6e5wNpAbI)%wklQ3G>R)4IAkDX8*( z+0S*S=H}*nxfC|TpP#Jp^2ja@mmbdN?8nE(aL6g2nFyG4M??~Fn_F1a+ATEv_>pjr z7v1A^eF|%7d3PsgZf>5&Wh)~igA?s}yoMay0fWZvb}lr!Gcq#j>FT!p(D>8aD}{=R zYGGl4_#`Ow5yDRkl>7Hj5Z>>TNyimTC(>(h_`UNunCE?&A5Q^;Gz6_y=ew8+<-5$0%@g|T(hb(1 znY?@?RMgZL`*ZHA-I1I`FU&{2F=B%!JYK)^)}%|cwk$== zD=4sB?@#>p?Heg6sd2^S0E`C#0j^?jjmm|9u!Scbx4gWJ>%&b)C&Pd@W#(!9BvD~= zB(u!uy^~p}7@2iTk@EC!2OcISrWc4`Ab+4QHPxK1Pq)wa=gKrIL}+k)mD={e;@|MQ z>DGMI^7XxcrRIo$P|*4}_dZ4GHAAYiFNVNdyxh>^6voi0wG;HYc8OG_W@T04Od#fQ z_`N?@tC;zYk)EEOmbRk2yx=}^ry8u`k-2Dd;c?!M+onG zO7)wyM{BK3&GZ6(o$XF}o$qPEhDB}B@+Kve1(eBR#Uv$Ly|0`m3e`q3g)}m{d0lr@ znVFgS`T6%{v(*(8qQ<&FAhq6K+i<0oxa3Ag4uQi>n4DD;EEdkTnA>T1>$)Fa@^_mI zei;BbaUGhU*JT|*4s5@?^qA-nBa0ndQ-)$!2h*2XC$Bs3w6wHfQ^`q5OV70W`Bj+@ zB`~Rd_)zY3VK=evOdp=gT5uV$1C#R>X za$hN=3-{SxqN1v#>h5fAYCP{M!o**-Z@uH<;DC2_im|4~QPf+E5O=-NDwL?EAMEbl zK+Tl@i*|4WmZ(<<2rfUTrY`nos!o%qO7(Q=9I}*)vk{NR9z`fromskMhldY<&DjiDxw&gOZ6*sAPS1K{$=ll6!h{0LTJIrX9fZCp_KQt3wf0LT zI<@WX?WSx5XSpC98ymgC@fh>u(1hx$NdI4;J{ZQ-tm>bDTGaN4^QpHF=)+J={rhIt8P>0sF!MmNDUbUtV60O|6g) zww0SZS)Y1vVxk%(NIbP-UeZ}%!6>K@_x}_*zTdmMUI31+OW3OqNL23{3ki9T^hOYp(6b88{^Q_RR@MG&S$sS^2})^7WMt&iRZMaTjHkluW9jMX zfBrah#iW2b@%1Y{4$kTInGGZq_Vw%6n~OtktFc_ahx@?5Kuk~nNuBAtDU!nZ{c`(3H>ovORRhi3!FyBs3N=m{b zCN6bD-UaD%eH23~x@CY6E9G)?ZkzR?z{9;OT1nL=>nkt6+g^d{`uzO-T&?{pJiM_H za4=M~v{s!Vn9K$(xjJlITwF{{Q3LDOH#g&ve{Qc%u1+=$TD()x{TP7S%)R8DgD(T?Amp~2FVW$q zir0b#P2B&^&d&b+{d={|6dn#v0aJl&rW8hJ2EY5`$Bz#dn`IxECZxKGv`{Aw!^El{_4VQ6Vj&>xz#0ai zTDJ_$c^cFb)Lnj?=NU!qB$Is$RP=iJ+0k4=&%M<5jwVm?`aK~R+dF0Fj}R;oRP(>; zH@e9mAy}W_ceTd&`ud)^+~KELRIabDudX<4XH}2b(c&ncJ#GUqhubsh zYd1DNt|m$=LPJ9nk{Yg~s>%T(dSZkh04hEXoSd|@R;^ve$`4IY z=MP;3S~<8FYNRwxt&IwOsDE}nc}4pB5dt9s2yk|b;a`5gR#sO7MX~||pPiX`c+{=5 zfoeIi%}}!UeJ1sey~vFeK*DPcjj4Y1o#XWZ_!odShb=b>jwtJOj;rT;Gor0NWk)UR zpmgLxp|ld5&dw(wPyzm=hvgJ$l-(b;K7bw2($th{ArWaZ>4_roy#zQQJkSV$Fd*P* zS1e~dmHceE(HCPPu=K0T%LoA6j(l5zsIR^Wc#gIBctsqg^EyjJy_Ux4bYJq3bZr|A zRw^P;dgkWnI2ywOqjTVS?dSLK^XJd8u`wcUI|0w*&W;XIR^O@b-1dvtRI(%kzJil8MyCF3oEKoN*}Lug@YOcD$X}hmdcGfko>=L*%F?0WS3O| z5FO6oSD|!wb1NNq`EfhxHH+bUL&NW4Wc9AQlOPra1q2FYo;`m)Zc+nN85|s}`8dO7 z4X0_axt^{t0flmSXb9?8?RK~*Xx5)lV>>rFZUm&ocd?#&RjSy)Ok@%c$C&ec)vRz_ zz{Evm?w}OXL4koU3D};JCd9_JZJyvhOoB~;FS%!0yE|kxJf+v6z4oZ4wr)MKHUq)| zFuM=VGTYRkQeA*tpl9Ma9pYYE+t^^zstnMtm0-X-1i3d;X{LS7x>)Zlxy>{=IVqF# zowXZ8D4=0%nIrD5uC8uwb`yoT8S@w-3jYiwQWFys=x$?UHOwYGCLzIPDG ze?~wIpc-TL{%L7xWo7pJXQ$TP%MJ?P1ZEoD?di}}7_F?W!!Y7xpp9<(bhNZe#g`zP zz`4UNjXDdIau%CBt6a8~AxG>Ln%)4<06T%{@!M5^RT$0KWNTjkqO5-t^eQ!IZSg$W*dEWn*qM+WDA1w>v~p{* zgviG%q9P?lYv1QxTtY%F$D-@TV9F`dW5R0AzjZ${QvTv#A(=tT>Cf*r>3FJ%#p0dB0ljJ~oy>->zsUy&Fc0U?te6r}Nd#c=~=M;w#lAEI)c)XBcz z5)hTCC@FDqa4he?j?K;K?8p4(i;0WN=9sBe$ycz>c^lkubbQR`cQ4TVmLzk8nTCc1 zP}&WN3_e#jHa6uwL3&2U1(5B4et8J!zkmN8RBu4g-@JZpUFQ6i>*I8J!=9n{=~nC* zU65!nnpzsy-QC@lcMA+gyMUB=W$8~U8l;Mo26SKoq!-livU5YU;PEWc;L}qV2$`dV zgajxjt~KO9k&Fb}Inj1cbN43qLlX)6z3wbMH?1?3e9-P)%iUy=5fG~7tiovj3a%?g z?H_fJv%(dliFDmC4DD859}qS_gjzt|ov6=qJK@IrGN-`=Q1DJf!hG#jTqK+Vs z+x)GV1qJmu*_S{**m9`#JHhEV0lypF2reiqTLKXdfQ!y9N@n32C>=22r4}Fl?&*aE z!MAVU{>9%9+FjZ{VQFbPjPjIfpk6sUIVJc$f=3}pB5m*P`VBYd6wcPz>L|633=XR5 z6$pV%+?Ql2+zke$g_nm1E@96LqLVe_j&zs3aAc|VHc~18qrrC%@-yI*VoN2JIA!xj zYaa2%n;C9XQ6%Y~Vk!vl1@rj2P63J4YjDX@-^k4@yI)gQR2(4|glrWmO7Hux$&ia6 z`^OBdr#jQRzR7@-adN7`J_6>-=Y3f|`$cUxEiMi~eU4f8T!l$+YwH7ulf;7pj~PHX zK>-Ks{ludQlo1ev72WZnz=hcPFg6>Xnp(&aGPSs}ej#k_p=-r&$n#ygg`kFuYNM}5^1KpW*YvXRqE@7iU=5{< zl_f8e2+Bm=6j~o2`LVk=%-uT$%?M9AbRrHA0>9&xcETmd`-XIF?VxkrQBOcOwbstA zueunnLkZJ_+)bbTabC{8J%08=pwY|i&;GBrvM=Y%9ZFN#1%#tz%HI|QV1!nlvClEl zSK3z=Q5MYw2Hr}KjSj_@#^O$)u+tSQ=_}|%j)NDUj2wJ(Jx}37c!|u}rRsRQ1L#)4 znH163+8E%?6V&uOC^rI1s~)(SFgR9E;w)W6&*~dK7fS#=fNSAqK&M0bfTIAa-TmFg z(&FMG=X9>?YgBeNwuFY4yss4muV0S-93EEakTtcoE>vbJX*OU)K)6ibW=J-UxQW;k zT^~EnYQjb&jbwiR3Qd=Wq?5lAy&K==-SsNAJHx^e*KWz!(!sP&1)yV&#}27gz6$xo z862JEy+yHJ8hi2)auibj!|fHd#+VYStlp1(^2*W=esv3Xh+9h5yqP)a`PSYf(skUq z7`708F?;+m`Hkkr%#g}Sjvow%*tQTqJi1nGW_W29GsM1(e+t|*|CS%q0?YT{pe zq$MG;)N=smV7r7Xx<^IV^z1}q$o&DpTO!{A$Q~{(xA8oApdM-#Ab z0JB0qjjP0oG;wQpcgl=G^-VH8Rw$vw%9sFcLu#uw@L>w~m_8sN{P7%H|B2q(=4)eK ze8rOB?)@pKK-zUzDf%X2Cucnzs>-0pUC0Sw(!ie z=B0~)bLL&4n%3ENsjjgu1LhW=WiC>U2R^YlQ)`i(!F%?edjYrZLITJ~PHb(aH%&i` z`%(DR3QLqauR?-rN$i?`RF`PzRA1q}%X#))f<~Sd7bOtLR3(A$*YUEhvUG_Ol9Kdy z^?#0zU z75?gQwpvz0R+KdI=mxkgsRnGidU}b7IU8$hTWe|(qGLCvjD_#3xm|yLdIb3AxRa$F z@E=^OuU-NSV$j=AmMw*@e9({mU^-dQ{%mV|-*gsIZ97^Rm~=RncacKuNB!-7Y;k6B zX1u;$);YpaMnp#0MY-iI2`SitKMjTfG1eTBO@#I5J=HEWpcvitT#fTGQnFIs%JH1l zNojI$TONGgdcx&~i>5GlH8*T*#Oed9S+v!u`yu6(kXQHcQaa9W=)S1g-m6qlrO)!Wo(uB?6~8no^WxI$>6sEsySBh>Vj(asj)10_i(pgx=_5D z{w_Qh{-60f2g+E6|6pvb6Cfu9PAe+hozuLY$KRG!` z+~KtR^%k1GvAnFLuAW!F+4Jky2Mzhw-kYJft6NqhYEHFNKH{&Wf*}UR&1l+%Gc*gB<-3t@Uv-!5}Zffa6=6=?8K( z={OL?X`8n1j#{zdiRkvc0+)?#Zc%Pwua+teWv!I1HVjW{2T9I5Sg7KqU&T@MNsdPQ z5}v9U>641kD8{(E%#D&f+{Q+E$`pLCHnL^CDVw>IxG-T$!A~5CyIZnNq9|Ch)h9`ko~piGFK*drNJCe;ge(M6HF0LUeBHylAEIul8N)i#|VYd zsm6t=^Ok22CzuoksPfHYT==?7wFa%eGFpH2RHk=NSqGE)L|+m-cV<@MSv0Yr^;`|( zS>YydH4hH%7u=VW2wX?A#j~=q!c?$Tl$C+U49xB=i{g?Jf)^5ukteDdq{UgmDz3{k zYJmF!9u~&Q=W~5JU+=6IeAxnw->c*GXV0F&lkM#60P8?PL(8jrt>$Q}%;%cB!d_qB z?`(==qqN#*P~Cb8YU5Mk_rISacw4y$MD*L2lccHK8#!-P{0h@YHtsOq7H)d9`s7E7 zW-4_r>OK8eVy4Ec_Ki?kDmE=S#4n!-@J$8{Sx#S`zOpmmabMNlDQlG@n-lP>TDhEN z@WpFZ82f3Dh<0OyAK#U$kk5kuqITHM@Ad7M1L4RfJlGX9*=9r#!^iM9_Y*A!JT-j8 zFKvb_zL%@P!r0G87ve^qzsvZcE~&L z%b0f=_oDmD%N2ePzR)u#wS0|&sBPR(vDt*DRuu=a){5lPaln!)Ol)>PTm&j7QT;+` zeQhl_;TO3xoTa#mAKB%hZdKgq!snHh(j5H10BVd(m=~X zXr+H4<%*i}*B1A^)jVtN+?^^*Yd!~z8a#7;nMtMTb;&d1rz zjFzo7(_h4NXEnK)+HQ^yhuJ`ff~5C98aEooK2^pnuC=)HVn!js4gC;dp)9T z{k_b|2>&uz$hXepk8#S67o?{&*Rf+ZV=WUmP6q4B(a$5^{DN6fBgSXdNaUDDHaH%4 zckrWQhT3JezHz4?Zj9zmOs^WR5`y>k=~v4agu86dL1CgQzHF^f8(C~r>=d!Qk*lpc z$v1nOXg`xXdU`fbx5uq>WaZ_VCYS)!wgqg0$) zUw;M6-Q5M0#o^&$pn`y9`n@AjlR^K7<>+XRW2-TT{Md!(60eDQh9>;6aDk>^n+Hx6u)m%x&PA)DlkdSx)mDXg) z`-U0b1)L}^DX9=ZlUHJamct1Zd;Iw=E9(&e4g6IQW(Il+P(Z!-dQ^H{n zg^vJ6plU-iv32@w+{NJFVxV;j!-utd>EY-u`p!3(>;Nj7%y+&ewXWPnxFF!_e7ZMk zUG|0b-St)h7w2OH)y$wjS}O6fU}rUEcK>)ZS&V$MQm6v9mxh;C!>U5{&B4}aj+>iX zB3++_@zF{b_`aH41fUf}EQUX4t8E%xcY|1cPq&n$qOUnQfDbLQA8;NRZrF{M@ zY-+mpD@*h_I~`C%2j8Mo<{lg^TnQ@T6>%!{5JIEPs99SsN?WYYYks zqDu;(=mYk{n|Iz{eS-=^k`^KWZofoAqG4cA704LbEYqqA(#MiMBag; ztwY48Pk+^)7L~O$_}(=bGXXyk0GDJmafvn~-N3|z>#y&^VS0HK(u=Krt$q*pNTmGy zjeC0^cRJ9z9@jNAAR;1KA5i}FXT&b-(c}i@`L11aiG`57{-}R%8rV8pU8g^CJKePe z{_D`%*r~;~3zO@)!@cRNqR@Kj6ZIij&#i^`wJx?Z_R@QU>!{oO+j?PVFP$^}+q0Fb zhi^XdP%A~=>W}-joXNS_*?B^;`OdJa#;PC(+2r)ic6uT1^^SU~4XSrvytnR0PS;L7 zMK{i@<}F4G#4XOh_4y>~j0W)`eA0$;`AzQjL1jS7f&Btrm%gGXtr>7~RG$;xy^xNB zTL+L{gmGn%FwR= zZuKy;dT@FCF@#!dg<(HE+L@s5`ZfY=m}3tCTk8tD1wLRmG7{#E zfiBMJgoXj_efgF_2{4afs)eUTX5c;nIF>LxdT<8UQWuBl1zAm}$)_=TVSgF3%6-HG zj~`<`r}%yoYs{oVd8Af%19qcv-Fri`n)iTP%9!>G;PTTa{^cA3RW)*^+ogm+C>7Lpp0 zP{KfBR6R~JH3Viuxf@oUS08<_ZgR8llpY~e3-5a@T(>yW+Jd$fD=RB#7?vJBVFlMY znDv{cYwZmt!U{@xJ6DgG^cvuWYDN9`7+{lqm)iruT?^WUz+3#gCeR57XbL)i`Pzj5 zCJXh0lVW3)hM*8oO@S3}Vr2!(ih{F-t(tSD33|CXIFu(Qs@q5dL){m^Vqs`4NDsmq z1hvAtl$03|1#pFAH9qs+7}9FEkd?W)8z_3v(O#Sh14a5SZtxfd*G2tk$uP5?b&caT%E>dzx$7>Bx*ASJ z+r3ZnJ5I&Q#A;&lNS~@}i~1tU74T~=UA?n=QR3tgq4jB&7M%fk7n6z#>Uc?VjT;GE z&-IPC|665jW%N=Zo<*-)!=AS1QzWXo1FsN1c)=xpL7JUus|g0d7AdQ!0Jgugv7uh( zC1Zt$hX)igkJDPn4oWizarDKA&;tb(RiT@qH4M16V9WCrGtbY?CRm0i=jXkFA^>gM z3>G61ao8c~%B$qbDK(B*NA7jcfJOi?{XnZ;#g-S~2_X>?zvGG+BR51G$tVI=^*62? zzOmQ>9|&|_W~wX{#jzO_Gx*Mc3sltXZ`}oaNJ3)b#e7AQ>LDJ$6G0<&LVqUJ%+Aht zr86`~GP-aWJ8x!Y#&)5B^WD1^&=bLsd4%xtMQOVY)|a-B*dEpMYOe51+%*ibh2bO% zuk$XgYupTqKB!5OKEG4s_3>Dd?CEXa%%iG9{ibk?9l`92!j2*wjTgt}p5v}(ZFcgBtDJ^3ZNGreqv(AexBXsDrIzc76V~oUpQdCI&Bfk4r8^(z7dtt=^S-B(A6|X}9TWG%Z)2%H z0N2;x+XFmN#xJJPWjmYWDF@J8{QNpc<-iFliaJwkR>gJTNe7AW>tSD(BCfYraqo+G z)+$HyBQ;Lh?4|FKZ$F1paYNVC>yBp9t4Gj$i&E}7DH6?%>07nY29Lb(8&>UM^Gws6r?Nnc)T|IU@ z{uG3+vNCXLVnA;+Az^KM+sep@)n)60mzUQLrQ$!AU+C>{J64ahe^_QMUq2NN=~@Aa z{?6midm0=nDk_MVSCwXQS<7`HXjFr1J(+u-D3QpxxROdeb|*_-zI+L;)69UTST%3T z+YsPWHsHYn7Jd zBq(Gl=02(C+O$@5g=W&tOF8mbif6u3&3Z=X8opEOAg)oW0HgErX1rs9HH+9jScCgx zo2$+QYU|w7ikT|!1cHeBWzknS**JH8<$O8!i}D;6fG92HJ1P>qK&)bex1fR4->v)M zOwj6ZyU6b)x)gNpdR%6-glUwaRYr153KesnKs0E}@&&$cMI1`Ur){^uIRn8PWe))%t*Xp;n>v&CR50 zN1ALg!eR z1QZnD{duGzwTed?_lZATNiD8^U1AQQ}8~E1Mjl z-@Z`}jt?lI&r2^jSlE8zXU=$S3>9%ln~=mmy_)K4-CEC6wfV8PWM(oK4Lwg}WMU{i zA_SJ(KV#jw4~j(E`c_EASw-nH5-AQu0Eb-eYJu(}^)dAmf{$M-T=b z69XXWhl)hL?Sm*~4o(++jjs-|C_ZDlojSZo#Ss%EfiQ5Kn=?%C61>8jf@x4!({mU` z00LiZS=KXYO?xX-v8K)E$s-u*DKfFOH1RO3B_!Dqsc^{av$>K{S;-dRAbXMYXbCZ4 zYRkh?&hiE43?~zVf+H&hlu*k_XiZ=6F0~BvznOn{m+aWIwVKrgdIH;8c|MZoC3`Pg6c}qp%)_G;7!vdFaDz<9`MeCIa#?$JXf#1?!wrMGwgD$dr5Q0AEmE=brwc(Fw^M@al3s&F2tAa=92#3-Vzu{KC%av1?n4qx~!HDl-C>t%;cd5Fq zl^!o1y~(=R-kqDB@{as(N}rAi)|De14>6lzx8(7?WMyK?BPw4!=)J0=eBaz5-Y7+z z8PA-yjE~%VsdM(49aWj1X2hP*1z(S~&ysOi}49k7$V}&#EV*VTyJh|xtX~& z>^0~-7vK5atd+)tS;J`=xNP<-su8;pPxl$>lTK=f4ERkLtD{CoZ6!scgVC<+q`X?s zU5=Y@oVIU2pNMIBuACjL?gMn%|2=Kpjz2Odz`SD(=O5)Sl<@O?*aT&GzG*?XSr2wR zU+=KlS&9u6C$au<{l}V|oxF>1XpYT(KcZUoyI{@gbYwiYKh-nWz0p{vlSEOCVG9^QNR}JWcUlh5TMoW76xpc<5qJz=^9tGC z_VrK74B>{LW7_S_SMZk|el%SuI467EJzWw$*Q)ezPIzyWS};rKin>)p?HvumvDy=+ z9BE#Xb~fIfNyu$mTrZKc8L{YS8@v*y@b7#OKCC*37d^82X~<%{#+o=pm;HD&OFp=u zN5Wjf#E-DZ4J$8KwbF0Mw@?-Gu^Bm>TJ=Z8nb5#}RxNVI@eK}DJPh(eB!oiR|LvvX zRaTE^$4Fp)Xa0u~=lyz+nVw8dr18OZE)H1=Wd+Jlg{5RD^4&7Sc!-3_j+IWyt)Jkc z+MvF2e^u6^-y+;H^g2~Z)F_b&>lNNBFZ!gySo`l~&itEUVPP12e!p*bUzNd3d8{{R z00*2PQ{t3SRLHkJ-CM3YCY*7!O`Dr-oL1q?HV?2a9ZhMrXdejz3XNtX_J?X1My2J) z<-LQwiJk%O-de2zbNC;YwVIeq@Juc8HRCcV;up>})k2iF}}R1fx!hTM*dFD~81bB;ND zot3fT(e#Nd$SYVU%<8}Wics+QzsCj)5*pGB3e8+b-z}?J56vA9sGCeXCFW>A72qw( ze8ozfBhUUj7xB!gTX1Xp-(f)bf90`*|Buf=7;iTqxVAZ6ST*m}KI`z3)~6?k-XN*^!3rtHS_fO&aM56 zj+U4J^RHhwI2`aq85nmqQXrm0Y`>;l|My79OLm7ft&NRLWb&w>C%i|r zZYNwORs>1dJJCNc&r(zHW99v3U>AI^VoghMF4@0ewmUr@K$gQu|=`ytYj{P1SK^82y>~E;8B%8Gj=AWXoc#?m^>OpQL5JgRJS`*T=|A7QZL4eF$eaN+|Fojj4 zHFKe5=l|Xtp@efpi1#yQKgopTK9YXXLjG6#W7bg9^Z8fLlbUyD zOZ!N?Vs6Ka2#}xntOxnAhRcFqz(u?w3sRr?)-_UzQXhdVvbEIwBZHk@^yk85=FEiD z`M?yL*PL+~mpwH)?ZN2h211n>3r8|I#qDS5&L{1iQtef^gKu=;t+L`b>>w?#_Y^$5bAcLXINw<3oZaltP1$VF9s5p*jP~ z?whsoPt4r7wC`p9i!Yk5#kUQWFA&Kkh`&^C>%lP@7@TTJdKu^#x8Yn@2l}1L?DcTi z1$w&Vi1S9255FtEk#PuqonRw7Q@pHajWjHuUWObAG|i(P38m;ad|~m$@{`)zDDYHN z4O6;&lJCn7mU91)6r!h7^O`R+F)cduA~KrQ`1gekQ4KrrL|$mhBtV%=yPUp+eY43xyWIlaJM_5#{a;! zS#q_{U#}^Zs3qZh`L&NGG51hYbF6Q|@y|$cF*nM38`3J4JN5mdK^O6`%*_$Utb6IU zJ-^nBCw{Dp532};1QPoi9u>3u0~yMe!rf(rosi3EW|ud$!cxn3c*o50E)-JcoG^QP zH7bPq#7Aq!J{@srUBL76dVq1-X7qOEeJf?|at}RkI8VCPy{Ml6gF5r{)W zhUoUjQ&`~K4G#%JBkfL=T>)myQMXn?&TsfB^>!?o-Ig&CKd$m0L1sKP6*LhI7+z1y z^Az_4&xJyV1@j5I1lpbaO{>Iwnq&oa@x>`6SfeAev4zyM*lt+Qs}mXdRR%@Tg35HVfc z?rV?;slyki`YI;y^J&{4y$k-yKzwe_u|(c12l)byM1^81(_GhJA9Gbz?4OU&A=}79 z%1VQ#ZVD^>he5|n{~lyXDQwZ}PKlf0nGxL{8cgy4nb}&rv$H(1AEOJwRLkp>%kl;% zxkdR+6};`2qG?NYOCOKiB$oL*&2i6<$s%4xti;VQ8<_CUc<&S@Bc_|9*6s*-lDb+_ zfqeB>$6*x6eEj;t7_(vY1HN^^P@6 z!Fc0U&E+}wm)uRQRv(QEujWejr!@oaTKlb^q~cmHrubU;|IJFZNkeB^D(Q${jl*`h zl+f&Zz5Z6UD?2DzCK|<;&&c(C`_JvoeIkGCP%!}gL_^kBY^L%IwOhq1Sm~`3eskyP zhL3qmuhmaE3hGMVOfpTL&(};$i9cQ+S8Wg7e5EKk|AvWp^{YOik+pN{-h_c#W!piYBXrZ`O(>{=k$RG8tG0CG^{6)~ZU-AsW%3tjb0S1opj`KK_?EnrNEzk6ZhvEr^w{kh<4q=4dF7I}{Z*O6Z;iu-I{I_fDY`B(8QeU( zgMXitd>?7~6?-|NW3`}mBW|Mxw_CxQf1EDTHKE#4B*PNx{(B_>LcHny^u2!|Hb!uy zrd+2nmih*-ke?{Hg+j_ejdItxPUD@-!S(ylKw+JXO9-{K^$jR&&G&Da;<582Mifh! z&s>Bd44tNARM-`o&vLGF54B}>D)6CWR0D3LRs~kt*8_pHn}POOz9VlK-sNf!IpSv{RdDS8cGOxJHZQ}r4K`iFXu*3pl!(e^*{ zT(7TNuwjI2%`Q@I=2uYYpp%<^O$ZWVLZ<5TFS|hj=Mnj`e{OzEz$%J4+{U$rpb;XE5G3j{}5!Ns_0G-d~qg?erwV zj4N`w%qgYam`g}@$J7Akop#p4(P{3(^K4aF@fBp@J2$&T9Eo3Tv6TtIR9r@Ehr)=& zq3Cn>p;oz3{(zX@`4!4urB2=EEGS>RyKJ@bDRNWw!&d}+XwMzU&dxAIG_}p0PFfr+ z6}!+Wr9|&6viQN4V}4OmVqPlZ6pDL&7k%h2-psFM&+p&A2Jye8lT#nQvU<^HM4zb3 z)098djX@Ewk`mL9muowaE{>hz8Td@pE9Uy+I%1FJN;`SV3)MDXA+1(<%9m$C*3N-_ zMfNQu68Pmp)+bczY^9Vr1p&Yn$aguoHZ=Fel#pVvNq}cbUr7?7P`-M(!(_K>h<^j; z;OPE+6dtEw`y<_1=UM8F6hBL|^>&Nv>Pu;LyDJ(^0`S;1@V(yIe5z0A8fg#dMCvPM zL{hLFI*LE~I8)}tDzfMD89u6Tqf1v+69Wj4i#OOSUy1p`dh0E)3n1M>Uo@lVT{Bm) zhO&r=`|uYnAU$Wr7hjkq5P(FjKc%MB+uP8D4-}2Y7QNtg!mm0V%6)4Ta~RC&%bLW? z0VOVAb~8bRiLy@=yj|xcg>eR;hHq6`N!wXdR8=eM_0|r~2hbtn$sXM_sqGwS?#yD5 zVi^U^ZuRvK!U~E$Oit@gcFMs1fV1Ap_}s}PuwJNS8^tP0mUGy>VPWF`6AAb1oJ@ypo3AVt9>(NK}MuFTrh|;vGBuep6e!87y(^ij2 zBrMWS5J?oYui?!V`Qf8?)S3z$i(Yw0t(#I2;Sev}^CP^oT?VTO5mEHS1dE~?*3gUQ z3^hx$6j$=IBIV{*Om#@y)iQDp|B_6&BEjiNkI-|zYohs zhf8@?>`oZcSa^A~-1nO-=CGMA{;zK_Nqdk|^g}tC@x+;?wRbjXG})AR>VjtzWF1c7 z$%TX!26?|sV3Z2V+N&8oL~rVP6Z$bk4lPv4#Nr5}JnrG**F#s&O>Fxky08krBpOyNdRE`9$u+Urk?*YJROQ3?YOi+GhiOdU|pGLn2|DovX^r;WYEu~*;bu@+9zowFh(YO$Kf@qaj>G! z7}n^O#L4D*2|=z>Ro*7Dn%TfYuI^=TGjHCV-iWu^@BcV)<~5bxbo9t`^$DF!zGLSd zv)RMgwXXa>bAE62sb1C2T29b#9S^>!r^$N-cace{7T;fhlI5mU4CZ0->wSWnjVP8T zrxE$BEbu-_w$O-(C6?WrWwYrzEf(_qHQ;N5MQ96QoZZvLsd^uD)`U>w{kJw7p_Rsp& zkxXFCj3P+nozlL-`{mi&B=J{DA?;uJ#LX?@g?urD)}kf*s8OD~QWM}~2XuuJ70Bst zs$B<2+>9tSck)(AH1jm%8LGA_yHm$?NPq%oOh)x3Mdv+~&D@B!G%}OFo6U>K*f1i- zmyLuKKhfr7Hi7%y@6mAQTR*?#rlmIU*drL9Ai0k=lp*%`L7LiL?pewFbX8WWP;tM) zqRxd-?Y_yC&Y>`4(-YR#AC3eY@ZIO(4@_11tybGYjgbQ%Bp+r%>gxuCIBX$eQg3f(B{lVGKt9Vzh4FlqSs za!Bg$LVs>wt+dIG42XgajyI+>oJ2+TolO3}+XyFl$&ySK0Ts}}A_cb)MKx7r$%)P~ zq2zJit=@LF^UK)BRL{WSi1b>ISb<0^yx}IC_xtF3jYmznu%+J)=wLu#sL?I^UBZji zw2QOKB|2`@?uZrTLNY9BuMD`o0Aq}kX~$jx z>)%BVmgrh4Htp|Q9Sk+V_0P_+jrjXt0~ju)Efk|E8$>G% zOwL8ott+nn!Veym)wD;2kvz#MuXz_i#>PoikE*@kg(;KtBFv-LZ6fz83G>XGP+q-t#DOY6T(wSlzPPubE zffbdDnOAMc7|o9xXP$?2!3Qt^ick67qYU%|HL@Y#(?*lHwZ1krc`WoIo!#rl6-?*a zDg~ltuM?%M3!f03Z}23T>Zf2BreVXBHATvD-`BCQyG~(Qd7n@DZ&b}%eyu;vs7;%1 z4@hBV3-b-I&gy{EY_KMJqdf5`kp9M}G?{x8KOJKpUZb-w6g;p-W#kB!fMjH?p$Krn zaO%`Ash=qEa8X(_6`G;F$pV2X?O~fc!nPBo#*37YnwOs8WTih_GQZ;r+ZsNOyNhcb9Z`cX!Fqt+aFxjdXXn(v5V3w7}5K z5bx3F^ZmWY`Nzw1Ip^%zd&PaNlUr#R zMhZqaC8~@p#2yx59ju@<9u3-yH487au#}|Kv*^|g1{EXEkB$#gl4E+f^rzNvOfJ^e z7}r!g&r;+=W0xKoBmn{OSljFxZGilX2azrXGE^+%ZaqTEVQee3-gq=TyXNglk>&?Ex{+7!n#%5l#`<@B&%J2D3tNGIqk; z;YoV89BMcvn##I`lxY-;B;vastOAO_kHSD}iKtPO-ouy|^IBoAFJ*`NiKL|?{^}ra zJIykplEGP>Ia`;!j(P)^3<~r_*NknH=67?yVpmQpe^+XT(KX%dH^l(;&cO9cF~|U1 z*kC|!@}2oxoW+@hxb>}L@-V|oF{_p~aYrzG-RztSPk|H_cGJ(hr)zq+&h*o&`*y^4 zrfl)V2({PJO@{X=+4!pDK_bUS56{NfrkbB0X(FG7Vah&7gu>uzD-0ielx~Dc)XAnS zU)e*fT-H~r9e1mT!~Xa6uda22#tXy0)(50T;if*Zjqd0cG)-Np@qDADZr(zbv1HB) z*Upiy`R`_6VM{mnQ~^-6afDz$7S$F2e&>z_%Lm-&x?AK8SI6@~S^uw#5Z$luiC8dJ zRXG%PrWR*sX-lnVhf->arV;lCdIiMnPdSCsv2Xw1?aF>gd|+~M?ey~(oj|mvjBc!M z3@sNOOz0B9=d{PUWgT=Y;{Q8DuS(F6Tyj!TSeWn^8O@G-J2M5`i#|=aNhDYIVeVkv zH{o1Et}GwUWGl}9w;x`8%753cG$yqJ5+_%H7Fh>T#%F$l6Z!b|d(%%L)_*T&loYyd zBs&F)R2gTHtVnMG`o#d(o$7F*xZ*6ocpl`8T%3G+?}2)J>0wV^4n@oW2kDi;1Ka<# zO5(fT@)UZh2oI3d)})g<481!G99y&0<34Af`W&Cn6pJv^cXjZbtEk|UK5tAG$yP9^ zPdrLRl7jH0IGvrVwIKF3w$V@ZPF}uiZm%eFU;*u0dDJ)ho zQ|jf0r;_kJ*mh|3LXpD^tHeI1V!fUEZnQ) zS-U-JF~XZ-7tMG`BMsIc&=Xoq_VE~?SA8~lV|y4cP~DyWnPKyo?~dFTt^1FadyW^q z=ZcHxBzC2)bvDj3>DE_by~(*zta4wDWSSxV`ddV~*z57h4Hi4|?X=K5Y3-zxBuVsw zkjA%@A%n&&sG_R1SHn*Ha=Y^f}!{}KqJxXe_KY9}mOWVWM}MHUg3jIp za)9Wl=um%Q%s_0$W0hsX7hd$*f{j1^axXd~do}-xZd~4tqk+Q(+q~^t8$!%}Ovx@2&KHvFTGl(|)dE|d0>+?VF%9X=MePS$$WJsr0%s5arvjLg*3Hs=;v&2e*% zcfOn~ojlG`cv(>Gu1wdAr)d(uo6k~Mp0Kw!*K7TJwLeAuDhQ?tB|Bam(v(q@H6oj<)Fzz)mqo5 zifgt~NO82V^Yi4o-yo;+v-7Kf6Q;<{q{6!9lHZbej)cZ*J{sk2dV2h;mF+&(bIW|T zM^#N<5Hb;yRf+-`LP+)8adkWh0}qlr3rEo^&jcREOIPtv_e&_6>&~f8 zS7#8s?k(LmB7A||Sy>v48;ATOiXJz9sqRgseb`k#1aav1}Q}G2sIHkH?7dlMz z!;#HSAQ=~My7rlxOoYf*v>^1tkx^C_AUG{xuUGlqsU3V_Zs+S>lSw?Zfp_t6GkJ(t zm8?a?kldBI20pDK$wFZj4m5bBl{7Ej*W<0N3B|74Cp@w<_6P5%xl3em^|PK`?$6kp zs0Eivx<$gKexA;w*z?AL)2udn{TKU8C}p^Ao3oNL8$nki5z`SVb}r|x=LDxTWte`Q zH%EJ0^qvZkjfR(ErGPS~YDxK{_y5e{W6%eu$N~+-fytoKZ2>d!hAz_T_{dKyfst_H zs3m^64RmUcS}#|F0qUl0X$GHI6V#{UBQG5%ycx>vo6%?b{!F;Y@<@^ply8eU9QA-kp?-giRFc4C@qk35T#6HaMg8 z=cYqfx*k_{lb`8FBS-Zr<0ywi2yoCTouSn$n?E-ZVZIgX3=|D)!1~oQyKXF3FMwKK zdKlg~cc#YoGXG18UIIhW=b}xn>|tNRa@`w}T3L^sHBwrV9c);75dB??*!=ZW%&aUg zM-mTNgHR>kO}rT;^9G6(Fc-d}St@T$Y_+{9l`Xwvlt{pD1+h1bw_^Kyr-)s_$sYLq zkWQkG`bV^VNOZd$*&8&t zr_M$eXAjmCVWS+{-SUL58?ID2Zzmp)IF&FCQG+lqbq5XIIF5^h;Db?ZKgNeBc&g)T zE%1~e=%Qbi& zZ5cH^3frgh_su%e#6|IPXH9JWVDNR5?SCyxCxc1g56gfkV`Ncmi z>kS|1LAvqvK@T&|i0lZe7~eUzcCU=fP9aKxpnq-}hDq96v!mI!ZcjL2gd2xuMyi+^`@s zrNL(GuDMpZ{k@1j{n&3ExM@%pZce7T5*M@hbEjDDgvoTiEmk==95mGYdgtQ zhHk*)DZ&KKaAzlCw?ovEiLd#1W&TlNCP)$mbmPi2%nUDx_dvS$GidSsviCCb39{qU zY7tXTS!HqMO`f<$UYr@35<-q;vAI>D`JDPJX|Ol)$${X64_A^GEsy7vrgW#=*=!xiquXGte_KT-Lh%H=a2gNQlI{^1ap(mz&)%i2zaEH;Y$R zgycFKkMbERF0e;zdxg#d=Cj0}^(S}1JKv?c2O4FuA0)@GwpOJm?EmqZ5T8g;_Cf_}BwN|pbVt*8-Ws0})j{m-W znA)nYPQ@4SM*xrv<>+a(SJ{doi?IU+r+z(y(`J~G2qp_#Q$jV@sbT|Y5Czny_XPF2 z%(wur$a#v(z|6G4<6{O=XJag89l+gA=t!8RDLil9nmpl${%j_R%4Aiwa8WlY`n*8{ z&0~_{#5SoZk-egX%G?=kTHR(D)cQ#Le*6@Xue&pNEi7pe0rY{3mY_5Gh|VJXrPt)(9a7A~#h}Y3G@G)ONbM9;bD^&(+N$@7Lcq_G zREdg}OS7Z|yj=B*v)?GQUb>?fK8RuGcS?|jgargzbjK3ijg^BNe|MB^#7(^XM{pve zcUND~jgyZ}#jYugWNNrNthc-`x6$AhL2N%bAOy@OI+jySADCiHwY zOxTyl{(?nYe`|M9pv(QIx)xKYdJ#c23Am&~FE5AU}iDUlehtauwtLVK8V|J#$ zmW4Dpu8UKNR~gtHhp}opVCiGB7MlvS>fhr8tewQISgH60g92|5_+)`Q?N`;sU_-?D|B#T^^ zDm&qSEBs=0u`w0TYtf8Cy+AsnlD>wKwW`iqb5T}uFmT|SwaI3L4>S(DFnuRw6xrlf z4^(ZB(=sy|?R1v>c78peEoD^f(|zLjv?iSp)rOgzmZWpv02*xPj~a`5KsqY^<4X_R z%(@R@_GbHzw@Xu#khNo(2ys|%t4n^P?%V4SF`PcPtu;B190kGhaBe6Ugno>+ z53$Lm8G1ETd?N^1LL6fmYbBW^S_FO4r|EKioQ{(b>lpN|XQstj^7bqjQwrOcxXIyf z*)owwZX1&vXQiDQDClV)D+4%Bu5a9tzkAix7*SgMn66 zX|2A4pr~_jc^4udy7=e;)`}M56^XR-N93^H6h0unhECn?s##Cb39 zZl^V8EWV+NN{=R~o_w#6xA}qS=!jk3g=BPmxooK~E%@dRaV4>Z?B-`?#%PXsJk%Q!lgE`V933Ce5St%L63z@Aa|}XLA$iJ)TFqFC5TsG zVgaYi{lazYqLq*-tatP5t^){c)7@Dm;C6*al%k}~J-)Zz503vz%th?QO~Ze3-KN=J zpAZm=?cM#{LP(qgv_6TlSV>VKj4(-c+JH70s>iZ+c|BYH8CDLp1RMggq41yS!QBw@ za!ZD_rX4=)}mZaWISOm1ViAZhX1%C0~{^w@0N>Y)lO%!>Ovhs{ZFw!!0wqW)<80l7=V zMqqI!bWN)WJbdAe9!!cv!{w851*m-^X=}|VYEO~Du|gdg9S97DOQM#Fun6jasb`%$Nk zx1=|n#7AUKpqmZQN-0?RdHXTdjuo-@W5k#~yP99T279ItKSl5dVjOX!Sj}M-r+^DC zqYR}4N)dF-Fw-FYv1?rSx25+vV++&ss>qj=GHqAx=ScRGTT1ow6I*uYMkUeYVG4Ky zH}Tl}*z}fh%dN}fFP_g=$um|}*~1uT>RqxxC#8Y@P=_zn-QgQukI@D!HV-2Q2FLBH zvj_w$s+hY3f9#Gd`DnZR>yp#WT{4>#{(O``1CnHxUG;E!_X8wt^2AXKCxAOKThTe56;in4WDgw zI4f_wRMsPtdCswt&7TdQZwEwmM{0DE(BooU6eL3ynJcbSll~lD8)%JgJ`iz)e7QOL z0;tbILJ%!cMJ0STK$jsIHlR46DN)UZ?}0Cik)K<^`9bo*K7-2io9S{FV2C9$ zuq&S|9h|z?6$rkd(oHbW`?etP>)?=a81KA_DBoiwr=9Ly3EEOl{n^7n*304-c4M(o zJBjUkb3Zak!6f;StAh$IFT;=fYtt8+-!@&Y|BzTdfp#0ok=7(^c3PtpTb_w3KOiL? zkyA+-nCJFrib#653zqk`1u9xpW#qG#y={#$C(5kGwP24rBIgjFIvAgXo3Hpy9WacC zrgGulpuvjB%~~0pQ6GJ|l(VC^TY3*6UDv|IVyIwLJt;DdlF%Smh+$@?vl9Nsr{k)+ zLK%^lWaT52>B$`*39N??$ zQtfW>v5F3r)WH{7iG)!7ga65sSZ_NHo z6Dm7*cL|gl-Ycqlc@^Y^>+XUx_wW;$v8`@BG`_=P%JaV^VgW~#5olF#vHDO2dFlXV z+>k2u#<|9H*ZEp@%B8^c0v?m1xF;X3W-cc(13hi-z3IGFa$r@nQkOw!HyX1A#S6<* zZ8q^BSd8uEt#N@IdZz~lbTqSP{s9_jzI0O}(rvppx+Gewh*rP{iN zt9NfjOg&9qjF3!M?~sfR5>-P@uA;AQ4c407p6A2k;6g1IwSAZ&hGW;MBnvOrr;fre z`S)Vf$Y1?T{~q1%KhTuBy0wk)<3kRtj8_ie(#0gr|Du{|EQO9- zRL`?q+*E6raL@gokX5C&T~)(m=kcxm>>3_aHSNe+=|id@$w z2ltQA+Y+%o)wfk&$`AaN90oDY;KVuBn(H<2-8bn(kws7$^+V*z)n*42gY2&{M+kTvap&*qxoB3>tcpnf2*bd2LFSt^$d z5nts&3+&x)xpq_Ir_)aR)(Za>E|9e0y1^r7iE#`yG#lB%!@VD|2rpgIRnl}|uQh|F zo8N10zZ`b?%{cQv(F{?>E~+4yiuyn}nVt`YHE0C=P!xuQA{fa4c6qO(EGqQD6t72o zo0WOWX$VbOP?$wwQ8PHFup^=%^sB97zgo5VNS$ZQWv6-dp`@+iCiL0WUz$&X-<4;d|@R|?qmsHf7X=|$B@FBTP_!}}M|3FmkfQjt~3ONcCj4lC2Q7H+0zsAsSO zx-G5xS`}ZaVxW+vPq*P_t5ps(ijb)>bA=E5ebI8WcD(U)wbrkPt%a%8w;KMfl^6p9 zTg||b5j;Fe#Iw+9x36Poc@A5n@ejqu_wt)TA}b(NK$Embv9(BVVLR6GRP%tzcbFjZ zpHHzKwa;D8V3f-{{NOmtaUvKLUm%)Y(+P(LJCLfJDaCqu8OhXUpof130JfFP@h0!~ zpEZ&R)ca44!wf6>TEI=?uwtS%_Mm2!2O#2;T=x|Bx4yo&IqPc3ATmvIUph zX39w~`juPZz5Z>9b1);n>rHaB1`ysD)1R8J%Oo1=*jd@#ut+4Rla--Y;x+H>I|v)` zxPDEU5qKRNT?E*NJUSH@=W?EE*1$u&!^Xz&s;`dajQjAOKvd4Suq0~!Bn3-?fXy9_ zCOV^~u;FLf{30JfgF*wih&Ai5yb>Tkw1?3pQd2+;4oQB?ug}ZO9-H^k9U*P+dHXZZ z$j@X_c=tgfcKUiC5y&BeLhP4yy5apPCD=Gzpgj(0m_i!=Fc(6pPY;jQ$DJDy)6^QL z?KRT@%z3cpw{w2(JWDmSWQtavvXpsr0<{Yw^>G8 zcGqCrV%Tt>+ZnZDMd5O-u0J;GETr#y49Qx|fQ42V8rwfc>-E9Sv@q0GG2|kTqV)__ zbjReDe?qgc3z;5qWqsq+gq$viCMxSfVf3~iBn8A)j7SYYce2F8%FE_Oo$quBjmrlWMK{ zdBUx>lY80{HjsAmFkG3JEc2b}clB1GU(o@b0N=BsERN>X*++bm`lOOHGSZB)O=8>S zT+-Pt=)>Fm(#Dur8XKR(bmv;OGHXErHh4Y;$@mYy#}G>0;wP;C22_%`R?mb{yzr0YsX=PwdyK0U+npWgX=}2)RxVFDr)5;hhawmB- z&=M)WLA2i?aDEJey!TttD3+^dUv9f6ke6|GF*L78Wm|r;Vk4O!cnq7xqhME0?8L)5 zU+5A*lnfc;E_i&YV?W6)T>ZA(VuhFksUK$}?HTsUh0o>Tmt3Nu!+a|LJwE$-@Ejf1 z#Kb}6tmV73Hf0$)UMfdB+wmx>C0CVi`JZeDo!>n_0GyF~mP`L`w+C`-m7$YX+HeSY zt_P(NvM)LXl0c_-b`t@-pm6uC=l`pJw;o^l86H zxadZHDO}{<)rjNZQ2c;pjgbCKXXeyr$md^b1LJx{pp}y-O*!Js`q}@tQP@kKh3l^= z(ignv6T=g_@`IwMEceUFjO)CIz|24((J?o+j{}gFtAY}i<};hk8ONBlqzw+>C%TS6 z6I~;0`yaJy9YG35p~aX(Qh6>!iC9G^S5}QBn|!Oo`gsq)j<{~;I6-sdaI-y~g)1Wy z2@(4k;@8Kst3+s&Q+~-hx5<_gXq-wt;ufrKkQzf6tFGMo?`i==^If#C%+FsWGJaNhITw0SqH&tj5!=0|QJR*=Zxuh)Ou zd2s)_oxLqa6@^EG7o$OZ8q^XVksStbKoPk6cXzfec7<8xYkd+JO2>j!rQiy@X3K>G z19wMv$PXX~^R}O?Z6R<@{po(<{uFv;mP4{5Jml1|Q7P<{jFr;4{WKAS!4Fx@Ic4^C zd}%$M_Z!@+#cJ2ADV-bL81?8ltwd-Z`7pYE?q@aljp*j&W-^kH=XUM=WCTP%*X%pK z>)ZwY!7k?r{RPNeM`h_kWz-{c(PY=Uf1Y*>(=ofgwXLGf&ncg}#kVRsNW)u|ujkKL z7yD>4vsU&GJRb`8?TYBR-Do6K4Pg?Situxj;@$_OEZ`kC>KNSEOGRuX}=wwF*uTkXb?kSclhcp0x_jgKwmd19H!7)1L$_~f zB+PT#EUr%NkVS=c?1GE5`sC$UXRX^E^R{{+Y_D@ZP0-2NE}BZZXO{?L!Go_>s|@6B zK=0^Oh>?rK+zpMG7&#zhJIMHMwk`>cy5)W9wTW`JwLgq&4z*^RXi^~V6EJ@HA>b#- z2_dJDHobXYU!Bu!m~QmIb9_E+B1h!I>;2%FvIhp53-4O&PqFDr8CmTQXGOF~tL{KI zx^nQrx)%jIDu?+N6e+wnAjo>R&)iH|1ylzQ9uHza@Z;^*?G0ij=a0a!oCwdCj9WD` zHM#600Y$$K-#*ZwVayuTt(wj!R~ks5&JhO7<+JUPW#Ui$E)5+m9StoFB}E4!(C9P0 zd0Vet+DZIg{KuY_%XIa)R|aijji%HM14)aj)4Gn<4A{OwW}A!I(Afn11Za^pE($1V z>1bb6y41`}XPa>eik=&xh#6<50khLwH(yX?}$D?vD97?TsUF zBM{>VFnYH6KX{`!q3Gf00l{(bS#XjMt^I9o zoDpl)w*HEhJx1KP>16b>>aH`jnZV!C(*OiK`Bm^b>dKbR7Wj3n2Q`^0Wup}=E@LM> zb5dv`>DiBMAM{q8ph8O?=Xd>pQ+DRw-f|i=i^2;P!EL>9d-}bCVsGG(ywJ~iWa%z& zbJulUCb8(p51>K`m2#F{+=rpJ`Fn9%71}U8=i` z=a)iu6vBP9tI?;6?Iy}W&HjW6>mvb2Ry}2SbX%L(Sk$clg481&FK5r&d$HRHcM9BgCXoQOU`}mCElGvFi|y=5h{2xd-wTb- zVxI@@w1L5ogq1RAaiY7y~sJe>u z!lm-9>OUS|5qCQeRq0bt%8w!PVJ9V~BxWTzY}=aInAz-F?+TA@0LaDY_Ol=K^iJ;_ zas2A+aC7&xe-p$q0Qj-)m`5x;LYYyUdPhsM{g`9n4&fDn8^(w(>@57mbl`-i>V2#P zr@OPe{W)Oq9cP$g57+LWr4p!T4Dyn+&No51T+ zx97;a$#ZU?`iW`gkMeFa(R|jw^3^*hfd9fIOTq?o1^o6M`%RU@^&7{A`29%iEM2J3Bd1+KoS&r|86 z-39}QO&&l!q;m zvb$NMrmZ{3=7tpkS{q?MN0&3sy@|+MKIi;j(}nLAM4w+&fq7q%TukKBd8Eap54s%u zPG`Foh2~FwM@~`aD@PlSGjRVCNxgby>$V8=y$2m^vjN<0@YL7w_lqLg%%^`&@*AQ~ zI9nEe$s9u%{*y!jN2!8>hCYFE1A5r0n34rpS8`EuL!orbLi4q@&yicIM<`YM7cIYZ z{wwHs^@_Qg0_c<+XF}6^{eFQWxa;N2$2qHoC{lnH`p{Xu%XWV#SniPNK$`Tw3g#ce zdA(IWedKUGJ{7lZrwbZM>X`dDD{YHS?PV8RASIGXA+ZN}9ib3|x@!`9n*YxCtBzVe zh!E?@;**3SNEoFbn;NJ|@|-iy0cJV?5iqyx`%`9%(zWG+O5Met|1Hz2Pwj4J_y127 zXz22PdbU@u9y9(=X$A=GxJCXa2Lrfar~kj;{`Uqf!dR2qug&juTXiNFVM{H`9BW+E z{8a4~EewoI;}sccA&nt=!rWch-3KPS{kuPAFh3jOG6@4n|J0*WIqkLRlKrQ@CgR9(+;IHgsO zctF_PI@B*zvOx?bj7#If=_l?eC0m*}b>hgfR$Pi$$*beR=lExuXJCd6aPbM?!Yo;a z3Gq{op)R+tpk#1FQOflD9RpchRb~r0mK^Iq;zpJ)-!9N@*IeCTR;fAQkhg|LjNNU{ zjURmCn|XuFKB-nNM}m{{DknW6-D$y}9z47rC$H82e3?{${*`gM^*%!v@N!~kRt&~#;lFXYS;^O_6f z!QMzGoOa_30P8W8EUQXs^kbtYAjpJ9ELhpw*IU6N`r?xjKn1}_A{*oG4OLN$#5ZaH ze;_b&1aeHVaw?b-DkBCh|9#J^vj^ZE-vRH~{M-@3N-X5X(_fghZ6xaXhM#YN|3}8? zHkU%ErKV*}Cn1_B?sh{9$F9C?!p<3OuS~+2{8&^6ZmAd8#=(tIFSfRo)%>55=hdqp z0hkp&v+uMN^>ZyaM6LT8(CEx8-ru9Jv2xPVGZ6?_)-0PeK*~D)GKswUbIohqzqGzn zlvI~?UqG=oK5b~;3h_4W<0{OYZ=NIek_Mj`w(6;mgc70v@|2JC3>cOlfT0x(_KX!ol`z<_sqUO1 zo8$kjb4NBQ*j84Z>f!QN4q|W1jq|bXhDKq)^eLk-pbo+{ix4Y4ZUg$ampYf?ni2VB zojkRbci0-6{#t4Gm`yGTj|*SD(tq#qKG44OdNH`{21=r0w>HWfw;sMG;Njw?!zsoN{8DcOhy6hZw{i=UMmY_h=#sWKnZB+sQ&5Zz z=3#o1l_*xlE^sD#mMCi9(vy`|K<#oss4#fY@4o3Tt^{1qI&pHG$+&6Sf6>7U_%kxv zIo{058w}z#mj)m|L%q1VnVp_frBy`jtD)^Z30=3arry(y%E};;Xj0FGzVb*@*G$q< zXJC+o(^=MaXFC-~4bE!M+DeVfC(EgR)YoU0gloNVKNhYN&Je~prKFam1ki_wgb2aW zn@kzre7h1kRM?*Il$nOim`=2Ik0(QwknrAZ&*&?3YXrb}F^n*pT3bT%j`{sJ&ez&b ziHn7r8tNO|>-Ox<)lQ0%u#$%h>LLf3y`yjNxoj5YZqljOWR^L6)Ffoyik6i7Y5f&c z>}9bfu%VNqpBS`)u`{Sk!6lfqBlHjE4>TdXA*nwFJH3I7O_h+2nV*@Kt+b+~BCo)7 zaEl0l{}RFSdlzKs|M}iC@2~o0r9j`jCYQRwAH)t>V_vSeQ)WIfwFGSp_xA7-r3Y%q z#|s(2Tq#R*3XJ0Fbj941yfqJ;ZZSBbHJ7Wim|n#3F>fc$zaktYJ4;oh-KtDYsuJDKNY^zlz;<>|^D?08#b<*nO@K{H!TEpW>wl@I~nnrEY2tj69KgOBo8{)8;78RthQIi~%;K`EFzoZmg?q9o{BcLxQ z6*;;MY9YLl26$&c*VSJ%IJP67Jj2StZu?O3HizLC=day!F9D&+zE$)2WgUC>WEpeA z{LVc;4kan0Fh7k2We-3S<>^Z-`catMh*h`6PgE)F1A8#8*~&?i9`b~cEWTAF>DZz+bT1~aJ&EFPT*^b@$!X@<=Pmk=oX)|is6(T7clzi z?{yX%1nh*00tRW1zKkJf)4jV-za7MnuF#L=q0f z;XS`r`&$y`)F#vAs5y2|-|P`QnS=(ndW#%&pFALxN3({V7fF8+6&+@(o@PHh3o$&o#1+~y(Ku&e$b{&Nc^6R5R12RGzqiP55nXt6N2Ex2zJ+DFbrc&5^(_92$V z63n#K(bh@YNvEal_j6U8c_V%u&dcOjQfZ#TO%1O#rfwC>Mz(8c-j z6iP$sP*{<(x4z<}Y1;EAT=k|^gTFw4c7=Vt_@JksQsx~noxqt@beUAczw7i@7XS}g z^FAE}Ds4LrLc4bPKks~M;t@gBjL{7L6esGQbbpZOSU68u`)bE z%gLufo&1&v`2#PusH*u!t{*h^k1+7CdRlsml>e3Yep$fYQH`F}oU20tT2XUA+~p!< z%Y1deq2dE7i%FgwO|jBEP?WQS+p*j`0nM8y$mRPjn4FfTQ zSzkFfBv(%Py<<`=?wi26CGBHYTO&3Wu0*#611Pqv#B2XZF2UsN`eiuNt`a5(d$d zNCzCGpv*iFg<5`7^Z8qD=G8}w6=q24qDcPx=rqBB<^JX6rS#rSR7w$5^VMjcCLnBj zk>7v__bkq)`YB%&6tpU?MNEHaM52ZZr1{Nzmd^eU+&+_<)&+0u>08;92-=p$KifU$(M+LqfHWoSouzR9l2brdrQDv<^7 z`P!rNGQt^Aa|uYFF7dF0J_11`5Y(FOM^#pptarM4%oCz`jtSl704g+2jBrF`EHD)8>_xu?s)`FpffHYp(l{${ky<+&cVO)YJ3v zcm-ng-RaYp#9|ux^}n0$$0%TS&@k!;Yziab<0^GqeW=p8BQ-azhTVi+YjWqJm2Pmg69it9 zmdpiQ-omtjSDKf>aodSNry5{|D}PFooOR?NZhD79GQ~QMy<+!@KATLMs3{+Il7vj6s zi~0}$92E=}?+c85Yel+9 ziF%4=872_j!92ZBz@)W_gBZ58Yin0LhH53L6E6CGSvzewt?9xn&RP@y?^(ZS!490; zjsT7wK;lyeP_~HgI(HXr^I|)R=@Wqt2EEiMGn99N;eJ1gXqAj6!H^jWIMY2Jb`Qoi ziP1kB-Oqx8WNR}kfEsR#re8)y=56c;O4Dz4P76{tu?423d+e4k!XG2NPs?wE(?m@| zS)NX>fDV6r*RG(WqZ`tbpFw}#b0%|gRdKc2w2nAX!;jyeC8b5*Moi9}4-l@$ z0`asOA)O$ZAQ^dXTOL09;^>Cm^p=c%_TdlXSIgr=v#x{RFdWj2hj%YuQ0R64A^VTb zpP1&-1yHGq8R2V$~ zxRLYbZ6H@N3$^^n1W2}`BnWW)n$GI^!Kc8%r<9_)C0IYDn!H0fJOqZMf3IFpGRjF# z&`8j_;CMOc{N;l<4%lKV>l{F`$VAX2ug|Q>WIDTKy-;ePx9_A7tx#E6*6FkB=&H?O z8i2qNgqq&zezV0GiFHH=a~As>0oE@J*>6~Q(Pw(Uex9uEZ>act9JWL83wVW_}^6UL<5 z>RH40=Nem3{MwZ1--5ET!kIDUY?%FcwKaFuvS(?YgoBl)r>D2P*Z{T563wmo$c;mx2 z!VdQ~zlXlQNHYmG?WfAq9r3p8*U0p8oC0{NE8=;x(+o#6YF$l}y0^k4Y4=yRVDJ{NqY7i<+Ep2)_=tE#jUo>@|b1^y`#Zydl`cMRmYiIxi2eL$L8r`r|6k64N{m z7kEZ|^z__(3dn_$_Q1<6%MAcTop50o7dHBr2vBzB=D51a38(|=q>KVq zoVvYYiR4rn1ByOvC>AZ`S4sKjUKLs4>NjH2;)O2G489k_1$M$0?$$nr(vJ?Wj95aOnH{B4?T&yM>VD&eMqq0SIugnx zM8qQ8yf%_M+V+E@irRCG%gVOh9aV4RFwLInrwtEB{2ARm??U>(*4(7I1Wv9lY&^bm zHjy0Y?S65r${vbCZ7P*4D%#!~&*x$Gt*DKK-rYy13km)iLTj4gWF_wz`T5nmHY<|L zVY*=H-^P(PCUoL=ZXpEFM^#`Fg-jr2ivSaNFhuzS02De#Hfj1l|H_TBqVV*Cfq}th zP)08N01FtaR_ht+uT5Ogv9IG9oH-U{0vsOG{HLxb%NkTkb;YDIpv{43^Gl-vEQAmU z=e(wtR#HltU?^#L=_r_az2iRL59*JIa3t*8@-XTZABywW6@GbP`rG;UEL|26MJposL8jD&tueLwZiUKHgkfvGHkm z&`;FyzKz~)8aipq?|8gCJL)Y)XDvn_VsWSXCr+>&{`JQC@`8;!2&6*CeVgarh=e63 zVcE&`E_z4IzVk5OP(e<|;;+OMY0Xw_6t)-9kmy+J`FSBIRS!`ZL-l1TW1x~*WWwom^o1m+IV9>ls> zac}Q^mC=Ihi1o^4DvO}O`Q627w_0V^$Nf#Q{_WMMsGnv74c-wKTc-VH80__$V)-GB zoFb^UP?N#&G#AH>u8xX|f%M3T3CNm{<%WgacRlKW^pt zFFT>)pgSV%0-R&?TJ7`g&Epk4#ykN>E@ld`M3oLKDyj%oY%Z?I{6!oFp)WIP+_8xRNz4bje0shBDS;0d?vw}0a z?nJ%B;+&jg!G~{^F%x(A?7`<}+IG(-|K8C7Z&YVaMp*1ef5-sntedZA zZPyf#-)m%R`)f7npOt=&`t5CAA7$SVDZ z4Lx1npI4sG4#WH){qlp7)^4XWlm5E+z!IuYNY%J$*#rnTdFdVDPTkIPyLrZh>e zfI6R7Nwx5t{nrtjk1c>K^>l~>b23+9Ybz{qAIr2<=|ApLrs#+66G>ICI5PV6G?Q|$ z*R;vWW?_FL3tkF zMIfZUZppR&hZqgHFaO-{D!M8jpPo?mGP~!S7fiYmzw)&d_XSP!{#-kN`d~=D-Fqt{ z>o0T6%75U1_fb%%Cz>=UcRpVKEy;r0KQ0!R$rl3Saz%!?pYMR|f7u!tQbx=F@#DG) zUl{^B+n%}kth6Y{+&6D%-&pZG z6&E!(uOlN=r(?fn!~7DHjqW@<~Yv zadp+m-@m`-eYaWg8&eDT!PG`(hQVSDuC5|AT3U1G)PI}&F9E;|=M5J}crO=elk;$k zb^fl}Vr2py>Ye$JihKnYS+zsYc+GOLq@teu)!-bKcMibV_cw0 z5FAOT{M6F?WED+r^XN#=Mk!yb{P@I|ee@kH;4n6J0&D%VqjJ4%RKl+si2ne7 zr;3`x!|nV;g~BFMmVcXXNi|Y(erxu~K)zzKrSTDDSFtmsK}}dd9!B<0H_QW&EuUH; zfNaUd3Tc#kJ-c!TksN$jnQ8%WsaiH~)CkJVo-`p4Q zqw1Iz+VRj**nqj1-*~g4z6&{k%m5XsXB$J>x@xdw5XhLj7ehNxyzs8Sjm`=O8+-{S zV%$1TsD2t+t_*gyV(2Rl5}8TT-emFNgPhP9Vxm7N{`CVG=>>W4x|jrv}zJ zr;~mBvL~&EiTeFHWn<%gvOvaaJ{%-tos~oD+J;LQdt;pQkJ}m@-%E$iNensyPM2GE zd`C_?W?GUDZsl{$gb2~3w9%vpp{!j>%{^zx7x(Jh`*+EAK%jp2>drh`GUO~+L^c43 z)lCOU^R;E(-M-7D{s;(V3hVNY7Y+yRvyGRwDS%oFFt)R2$Kdl|uo3%NLOq?`k8PKv zRUk~m^r-yU5);+UDb3D8>oCF8@L|Lo0Nbn1xVS*e&+f=Vwnvg~Oa@gS(eu^Kl2chVQt*H_G{4X;g#gI*|2065ZIuV(cC9txn(IJ~IDw=sJHql-Wo@BXVU zCJ=M#VaRl0=np`Ot7of=V;O*cm(Q6mkQjA+JK}hurt0io=a&kh6E83U0j3S0<^}!P z2D>$h;f`O#FWgX)xDA2)U6UA>j1pUtnYa}X|BafmVthi<_QtBAo&lgVVzUVTtu8W4 z;oOF-kcgspW(}ou45u;DGl(K==H-tZE_yGEImlFn(wSI?!oQPi8 zqecHEfu{HUUeQ@}^rsXq=c+mt>+alTFidx`p&|M0Rgap*jQQ>!=TPpOibT(ctGmmz zmX`m(mG7u%b_IDr=`ZO06r+a+G=G2=Td?ruHvIY$^`slmzFzZ(qCGPh!ZWcpK1;;6 zcvoNW558RCnLQt#;=^desK>8IT_l=R&MH<_^)TGVNK!PmG?zl}48#=lP``=IGYc?A z_|ZEsi2O|du;mZV$|cj~MeV5KV82gdPDD}ShEG)w@L|d^*dhL1|Nao1`^5g(-0i}# zHEtsN){!$>+z4pd>H3&6H{XLeMdlIxxUqGc(kOdO{K4sDqCJ0~s@VPEgq1Phj0dpa zSriiS(zxBOb^!gib4I?3pmUMlx%K{}G5@8k8P5=l6nOH0HmD=`>^Ro_sY)<$X#HF< zJRvw2T$|^zgI3(vFB8A(@-xt-3x0d@Jr=;@wWSH1zd>u{F1zVXqlo4W@~LP8tS~S` zQC2+FPcIRu9t|mt0HE}1U|m4M^I|mzE#y3SlZ~evkDdEg#;(5^E1L3|`=qCkzv%N2 zURSpYmn_l_L-adv%{qC-UrdHU{U~y`yk-V9?6u{38Xcz7-CBZ0GjlP_& zkSYcFCvF#Xc9ia$ahq1H+ec>$YH9;y>|E3OyEYedw67oV?J10x13afTrwEx$GM?&(i6o2D&Gwv9!?v zuPzvBji{(N`Da19aw79%spoyAg4mox{9o5|DJf~eG)`$vl|XcTyu9MyKv3}Iwj8AG zG8*+~9epwQj_j+5(VFL*3D~*0TqEf{cocwJWIsM(KUqS#;NAJtswZL}5AQFF$cf<9 zFdswkde}O9qY8|fe6F}ktbQ(y?n_J6@~%==r!bDIfJN0elJC3YO%GnvtJ1&*W4(+c z|BZ!>8W}$0e0|-s=DI}GlWF?K``p#VV|XzM3axLfzdgDiz9&aVfP;mJWSaUVR^iC^ zMXOnppfU2!ejr_plY|U0x=mk7jqejw0MszY%fuZl(WD?Whz-8=c_IBc%|ueq5cefN zK<0JQoA#;I@vu(q5G@X;I7M>CUM81s_reJ+T9Y@O<}#DFG$ImGnw++S53H6<1R|7_#gX8wrV6}C5e6sq7N*)xjI)G&E>%6 zfP5E@fgf7>kWw`C5VJ4a&Ou=LKbtc^5#3IJuss_}S9wpwM z_b{uSZ9I8$gjLlqgyqZdH@RP*G&qWnjS0m;Cvp|?$IiE%N!a}Q3}GRWOrJ>q?@7fb zVnvg~K(-i%2x=ndcr7euGg&IW4(hT_6KQN8tQL=p&9qPdu)bPd3_L@WArPgDLQP|H zxo8^Gv|@5;?cK*1UkAg-z#vr$M7AUIU(OlMF+1`i5*Nfv?w|pzKC~y*(#;s!nsUFG zJuCJmN|X}a72Z`=^@Fg6N{Yb1TDkH=g?{1yOO(*XR_-2Yy0(wDeeJMW-m(;DVauaO z4Zrl2&*lzwC#rXUv?L@p$e>bTQC~(*1NF%{Oo*+);NdRLA?Z2 zEw{(DnvBnX-MgwLDn6e6Mu&X&TJOHZXAkgtog$*#)w(Q+2=m*9;$0_;0dk1zeBH=m zEh8TX$Lf}}8$4A^m-+rKR7z*Luj7UL^Iyq&$t_M!TaOkhm5S;*9q=Ts2jVx4O!BEI zM^!4E94^pMw{~`P@uruS1)n?>`ZZL^{J6uN!Q{;5bR8LUb4Md1IWI3cF9F7{8qRwg z2S?V1)-ujDEtw$&1yRl2q<*HpT(CYur0CD^q*{fv&;sapP)|~@cd^8o&+=OAcL_2{ zbiPrKy+b=oNRU6%#WOZFSA8h_)6mrLJEM1QO#QqlG)XWZyDN%$M3=?w^}gfU3?`*8 z&K5SO#7?0}e=@D+AzB5%K}zOoqWkJ2&BzF?!XMP^EzY;{hLF#ZLXd)E6*O5?LtW>$ zc6Yq6Zs1H-e5ug{s;;G02igzBptsQ5;iF-^aH4sy;yo*Di0;kcsxqoF5=EabTf^%; z&GNS6v%RE2Vxa(KRk+8{rmk5j&HsK2+_by=Z1= z?PtI(7BaCCuG9I9h!?+h$w1zbx~)RXDBicA#iY$Ykt&1MyS@$m2y)skpw-n(X6 zZ|euPMF=RO`+_4$h!iI{j=*v;v&L1@-l#8sN~)+QgP0pL|4ZSD8VsZ9a+Ax)R%C4$ zZ7>S$HXa`(z#Z55mro2FZIP05a96oScKZr6Qv?2PWiH6VJMG;5;nIb7gAD=^FaXvs zSSP+|DJg3@xjgFeeu$vT!h+~p8$5A80j|Xq_LPvpi~P(WvQ9;ZT}g%~6lo<*NheVa zmHFPuFKULs)%JUAp#~cpyL{3Rtcam^uzSsYCR% zNZ<9?$b#A;t|j3v;I6UsP@P>*df}3rx9&BB^y#xldx_t2{Il_~xuDakDz9DH7MK6O zd->mTdHYh`iVKzZ{wI}TzR?71!Es^>N<31&0(O|aT6zWx0sTus__?!!ElY#@vT;@Q zndCu~c_{)2>6>8Ff?-`&^*Wo9U#?0pFEC%+KKJ)1$?w>+`x+C-+6<2LM{r|DeWNF% zW(<@Gp@WGI%?VX9Q1O>SPO7)13LKCt4gbFnAwZHN$sq#hI9_tv>ZN*d55*qp3F@&G(lHXL_)RHL0=9^y;$LjYLc!Q13M(T8c zT$e!BYLaVQMX(SroK=m)!*j|-=OY4-W_WgEc1g$~T9FscdfdBDRPUC=rJCYEn0<#6 zJaWWuVX61QZu-kmy2St98gzuAe@`zNn5F9g?u-RqRPW^YWOfMrC%LmRizy0=rh2pU z&l-j@JY7-Hw# zHrdvgQ!l-DPmK=;<_!9gKCF0B0k+8NeMMBjdI@m}Q6fa5HBVFQe{a-NnUJggdszL^ z!8sJjU;33k{qw@WE|nw!Gp03l6Qf%ZX)l>y zD`u1Q%O*H z0cp6{|H0a#SSv-ro;}RZ_Yr|MdanMPN#Fh(Xfq|yVxgt!T-NSMYO1{UK7P3G?WWKl zga3Hp{{q)b<0(az#<(0$u=viWOK&WD^HjYmgic&o#u|<;oA1j>{3bL%BxI$o(XMR1jtTy`{LcB}3UB-)CQ(XSqD)BERm)+k z=CIVyHW*BJ$_1%Ni5$SC?wCWVa;~X!s`SEpEYGSIVZe$=qA8nUn_tNiYwC0>{!fhiceEz`OA<=8OB-G_#MuB)(4{bFILAKh z`yB-eZ6x@T2^T~w^BI}P_9rAe&mDUtsKq=&Ul7~)gx&PrjP0lxMSBKG&O4GxhJkI} zltTfaGXzOeTc_3BN-q&C$r1ZSQhtf1tZ}SSAyS{pwZToQi0$rd-_Sj1d!)bC;d7Fv z!~%y1sJDa=5NU;r+{%Q?y4-QOY%&WdsxvEA?_&06LUm%IV&xR%FunN&$UrhG^oH_~ z`h)q=Z?KWLCTy;ZUP1mRs0ohv!UIQh*V|iAC^ZZZ8*gp>`#p;m_emYm?Nai&sh(;j4kA~abS~u3U%m~V3t6Tbj*on^#kqz4JWA@@hS&JbvQBuBoLLmmO+I)(EVM7R=lV+Kr=`w0TJ=op zgO@AQMe)}2^(AwF_eo)^VpXU&v%mN;26X0PvSLOISw1oF%CU+Nh+%0tRXmjePAFN9 zDEu?(;p4oWNm9jmi3IowxKVzBaC2-zJOObKPdLiYuEGw!k0f#9ehKPx{4 zPc}{27fP%o)nx8Jyl|liri&FEM3AIXQ++cw<0rfV(Y>9c-<3A#A_QV7kIq*;IuQ}g zZ#5ECdg)he9sgWe9UN*M&O4fIkN17ToS^@o4CsTatI^dJ{d*GO-9i&!)kg!F@lOqq7c2CkNm zPwPVcd8j~2Qhj${--V8Q3PNWq$ql01XI2zR$~VtwtuC^d=`v?YqHi`PYZRy%)BV=> z&SHBxrPffI+D64zsXJ66bfmxh95u-Fp?Ja3_gy49N0Iy`L(f|xCmr(W zlvy@YCu#UP_luryC?a332|HMR`ApQjZNkxd3EQh%z)g=Kxf6jO)1_#N-eZf>1C}Nw zz#6f{^|%98@jS6Pe5vB59n&bqgE!XY~8GeDGVFaZo6u z&A~W^h^~1dpI6g$EUi~;9^LG(AD_o(T0x}%TFz=daN@MTIuD6 zKistX^|{DrHpAArzWk`RFqpCWTK6iucYJblzL*3dGa1&rke^JGPPG??Um{)?=+Qs6xd+r`09Z1q?0jZ4~GH(c*GO&O?_(UT_-H zQ^gaU^x^*p<|qG~Tb|!))f<~}o7)KkBn8D-7kf45yAvFY>N}4F%6tjT`KPyzOI8dx zE&88Yj}}uud?=2NK9iP8X2qj1dkK50B-~JKTYWUjYpOVUxjy5qbKYoTGeR|%D^^Ds z_mk3Ez?whcVsunB_WKvcR$9({ZOlt`NhZey64$d zD>+q*;aoh8J-;XVop3eI;q>80!^o#cEk=fm9eF3G&(ES<7(btJBazGrxx+`Gygh&X zZIvaI52jS5-^3Jdcg5h!;bybEs&zTm=fuUA1h4(DD=ywLlzgaJE;RITl8KUucdrft z;>8uQsSWe*l1IPCXZV@2YyB$zBq>>{s)Pz#VW+ET42mYz;@cPS!EirhO(TtWd!w{1 zuO3!(UlZ^E<`7ySrlpCBhSFspE-2TZ?O0F>A3Io32tLeG2zc2xIw@DGCotu1ZpJ+l z7{AIq`G|9|)U3sVLI;5$pgQR^yZue(crjg!uWMryI&Fr~nebwF{PV;@_3ave2n?Ki z`~k+K*Bx(!anBDTav#&~JA5Z5C)3K0q)+>bvGK!52&Q>uAQ((t#$lY@YM2bYnVc@f zDz#*CUJ56&2?im>z-L_pSCX#)qeT%5V!KxHl9Qvs;NskV*gtabYcYZ; zcLh9#KVcwrazXq?{|fEzO+ht}0(CL-WvQQ$4QXkZN~0Y+y1Tz_vPsDmX63$xJ?#=| zs2&qSXuLY+wYhI1CgYdTPVkUX0GhqhrP3G`8DatZKmFWw2yknyU0e9<=5+MbWvZFE zB_(GBj2q|qmpf5uv5Gp#=prhzvd4e_&K9ZI5c1{KGfB(JgtxlIQU1iJGVVf#L)1Ur zOkl2YbR4Vx0XDT7sUHX?FW}vJ!zrn@p7;)O-^@YrCU-}?Yxxj5pZQF^ck{u}=KvWJ z2{|m^Q?(brZHfiWpp>KuLN9%U9-PHxC4w8BN+g$C9=pR7ZdIGJs^51)>l-TNJtYW! z>aBaaV_T*JUOWn7Y9U!X~aDp9Y`X*>q=sxADUg+eY^Czd6L3Ojt#6! zi|nY1i#PJ~T4ba>mE`3gSK1_lVN?0$dHGUay{c7G`$QA_!6j1CIXg>)lrJqY@qSDC zoz_x!ce&9(g9qnG+G%j`p4-F1^DVXTKVKb&Mn*2*dSH}9k-`lm1eR#vHaVC@iX`T0HIje)SQeKs16z+WEhh&> zhlS{VE1&O=dz`DOicj$PpzSF1m-!7MjDUk85p&A9pzc#k!~LlwYA}=i=!kcdEMN4qNCMoY|2_V<_!A{tI7y@&bBrshlrN; zn8F^I|J~uxo`~gMZ9bl){`4$=oX3Q?E&^VM=SF98XtkK!_beKP3F9**ef`S$THqCX zv|CxJZj}021rb?tf6j4#wZj%pm@XA8o37KlehV3+cgqv@6AShE+O4I(%Zf}!^8Pdi zE;S_;j4I(5spvdC-3!{=NqmuaMDrKvOXDB&@)8tuSC%T;krf&uB}LbP`LAZnLj2>n zh4M*mF%U)1!i+Zk9l{UFK8z}pWdz_%ORHi5WU%=;FipmtyFurDCkBKX$f4)CPO29e0 z6}-81t$@yN56Ar!joKb|oEnRYTNZFGRi(_5G|tPpc+VD{n#`pOY0dk*$&GOPK>PHx zbnHv)&X!~kkK&>ts|N>5M!|SkbD*(yWUaQ$!0mq3=X~4=27o#8P<(cP%P5tRl5%=} zavz^SHhQhDK>!EeSfUAaesDQfE)n>to%xm5sQ=XSUf<9yV#xUBju$NGyL-O9eS4#K ze2(V3+bYgYMgv>vo{f%*%4f|@obTRk_N^_{H`L;>{I%)|Zc)g;b906E$6=wotp;(O z!N|<*M0X)idi9O?;%PXMRXp=?mAO)@Qqi4s>YjzgeP-S5?ItD_Ax6;qR6mTL-q^jZ z$YAveBwXa=-0aW5Ko;R&%hy*`D?|{(XJsc@a)z%{3Y+SWY?zuk9?mec^W0jisxDU; zBo(`Hp^mlL6kHb(^CFcp;8=TRI-pt2eq(vBNFLQIhzB;zl&p$#XR(^S*HeAl{ZFZNVj-hDfzO34Q3O|Xe0n29az3U zlglP&){JZdUHJZyL|eo2tyTs3WPFbke~O)X>OO3P?oQ1X25fKD?2EM*;uC29xH9EC<06kxHUUuwcfqKF3wfQcv8lX0NsJ#M7b-A69>bG*f!*>?O zdG7nu9~v};{tojwr;U|8-&tg3XCv}EzR&FG3wS+~F6b>Oi`UTbi%~;_O8P95-_Pvq zd^w!J`90GS4@8J2mPy-#iA=Acy?c17h})D8ug?59KcMr{=SKGXLGHggvA)UmRD|J8lB#-x!@=)jVi2bX!w7iP)w#nh zT38W9Oy>)+{Z8aOJZy!1lB1WIb-Z+FG`%0VJ6VYMo7rX4mvDou<6>2Lc&Al1M+08} zJE4Ad{X4ytl&(Kz!BubzGaPZc09y!Z=fgRWL3`Fp;9F2jyG2Km#z_Q@{KCIJB3cx= zZu14@9ktVurJ`}N;B;vT9sT_!kf*~6|4=2=QiImon?zG0pPyN$3P|^IIJ!*a@of)_ zi)N)e9fz-@nwkVfK5lkV4DOAhGv#`a@8G{+ zY5k0$_HBKBI=WX-`1p~Pu*~D$>3XfJ-TBxsV3Z<-i$t|ixp&+BCENlneavh1GCknP z%G+!*QrZ>LC6c-2947RTj!u-y@BO3(Rq5;NqonyA)?XiqlRG{AiicX2ZuOlLj_ z)AQ-c{j9~);2UA~_DH%n&=R{-ThMVjjqQx3+7c#=r0i`PCB#-Q^z@`LDXY<{R__p6 z1^S(Q3{bkw|9O_Al0ru!r9M~m0$zW2zf#pjq&=F%Yp36^-x<5s(hLjZbbX^wYganc z%*@8=FgR91P|7VRsJ`-EtF~AcRA+c7Qq$shUV&)GTh?cWgT9>hJn0< zLgj-*GqK?yekGq z=`-y$aIinrI2NhW5b}E7jcgC^zQyZ(W%ao1Evwf2w&!%eC%oD1Nz+JO9d7OUb>`PM zM5&&;^5!FH^X?b3+N!GW_-d@?SuT^eSK3Z_d4EOZsw`T@C#X2B2o+mCZ!|c*n6Ea= z{4g^nuHbx39JKD(GxAG3D7gP=BP=1kTUIbN0qR(1O|-Y7OWufaTWVK7sN+qfXI3Cf z0)U29l60dR*LGt#@v3W{bUN)X(HT)Sd&-9FG~# zPKodX0s7hPr&};%lwM2>3}$&Wtafm)`~{e4%;OU&EGS)%C*LsAZS>7}7~jXX>Gv`3 zetTtb@Z%*D5$~j;a@u^W&XCGMS-LmQ$t_iUyw9?yn1!wyGMPfY`Tibfq2!XVFtLEZ zth+m#-`65Fb_D{E8S_Mt3>>7>va%i*7CKy91jwXNdCMVWhNq>4#bADC+3v#(if*2q zZ72V>@x@hVXDcr+)$QUhOQ>~Nm+^p%9{17C)+<)2uNoTN>tn5`h+H;E<`!X$40*-c zL(}8(c-3#3l9ENnxTBD8ZI_E3 z7aZin$&U}$H&>3kzImb9UUBvXlrB%;QsLPer8msQLMJLi?-3}-R{w8l|lD={_8W>K*vT7 zE;?9T0^?U^XGeL70&2fQ;b=u)@3YN7)WdH(qqBFhlwo0EQOQB?IXT5@4Kw_ICFha) zA>&@f9|E^;x~F8Fp##gbgDZZ1DW(`x(H#&-pe##{1Xr$w1G61})c%ZRPXG}y>p-p4oYS=XHj zvO45w{C;nf<)Z;8t7~7M7auP@x8aU0EoX9lbeNU9`3^TU;ptqzB8y2ggNAOqFXoPX zA8Dz1U}QLt21#Ky^Ph4>WM|`O>33VX!n@tL2wl9qgDi%PbMKSOOXI5JUwmRy=dWuV zzJ1-*XKW0AI}ODBE07Wg$JYFyCOa%Ns$tpB!sx4w@* zXyfsxg{rme>2c7;1g_@C=b&+KzZVv0zZTuEw1)V8h+232EDM(Cn^gQtDeiG)k261A zqC{+CSx2DsG+b|QK_wOGJpJx18x_~o7tX#6GW2B>FE3Q{7G+TWRzgu^Wi`;y=-Jt| z=B%MBGoaqxG7kpHvr(CqWvJq-%ecS}z2sz0_s51ekgrPbR!$3de>d$}a3F%jxYE_^ zXo3BFE7hz#co6CCK&_&f$?v2$3Rpx~m6hW32mfosoQfT^`Py1?Qjq?A2Y$F`JK9Ci zlEg8d&035yFCR|NFRBn;f?5Ub^MF-e_e+Z2^=!ALg^1s8jjINuZmq}xtkM`P}u@8B<}=ZP*_EZM75l1+{2T)-H@ zK<;v~Is_On%yQ#rz&4;Q%Fm(x2Z0DQKgT)^NCkPteIX0jga3`x(&A=R#~sdW3XwY9hW{ET-` zq<-4kP7%Z z-;Tm1rw!i2ACGC%?=>zpz8m^HMDXcN&PuB8W?~#77bXM($OJ`bCBTQF9skddDyHyt zfKy8SiHnSj_Ls_genslX?S}sIhO2FCywb_8-|gn))8|)H87fd}z15ZP>(b{H+oono zY8ob#)PgO}Wj9mwn}qrQQ<#00kCy#9+O3eUN*I3DACa94FrMYmjg1}2ggpNMIzQMq zXSYp1eo)QiiU4-`XqnD73A*UdSd#_}_lOdrh(mvq_r|s2J z5)#s$2+C$2&wBysFDEDns?XQUbT1^x&=I7+o-gWE;SUez?d}5HZqHl~^c;GBuO6#= zdDUBTj!!6TABm2gY!KQH1I$vtuWaM8dug!gFkVUTgqE%p;ZkxhDY>Lm?wM>$}|?Go(bw$in@ z-cgagYkJX4v`EBEQcw8g>|(84YGE>C?c4Y=4C&38KVVKp2j>D@3x)zVk)g|si-(S9 zO;Oaz+{w$SMcbaAK#ahd6y4i8|3KDngFWX@TRL z%iBZhH%d*jQ&ytk`tl|GbZKgpQApGIUZ0LvpOnngn=APSX_Ssw>1=)gAoP5xl?M`-oCzQV=iR+`nQ}d;IZuk-UG3yPc}-%n&ZU)~rl)ch$HQ{xwL1HqRV>LB`+{@b6j>6H^II0YWMv@W>#? z2}b;p@uje~u$HEbhL&#k;dtA`Ds9T$#m0!JDBve124dZtP7&4;NeY?Iqgsb^Wfq(B z{n;rINH5y~@zL)IyD&F9SM%{`vk`uV1nbNn6GxV%mPMfQ7NIpj(D*5Fu5d2h`=P$+ z&#%Zgl)}c8#)ecTOFYi`lFLkz*NjsZrFeBh3|P-Kmt~l(Y3NOu9(eO6u48&*;ESiW zdU{>AEw&CTYxqf!`ZWijhP61*0?9B41jz39dFDLt=p?>s6lLenEG?6~Pkk)0+8$m9 zT3%gK(}OtrM=MLzt}YNx$I}}+2sj@w-b#F-1dX2~0Ri*QZz(dV-Aw8Zri%>0 zS63*0)wqxEnHZa~Q4cZt_ofV*F5pdXEM{Io=Z_eKcU8iOIdv-p+>rgKDY_)z`xY_JI1+QeTUR)xmNl!~_bF$(jy>SWq z*L~X%l2KAJ1`u4qhn1B0s|MM0t#|J@9DL^M*zYgQLI78{wX3c`5{O!El{_HdZM=1) zl-hp-OEgK!=BCtxQ8`Rj+rXHC5IEAJU4zP4GS&JkTZ6rG>0 zP3E4=?anR5YtCx=LkQ6|H`-h3T3ncWFzOxv)80bi@vC5sl~fcZ{oWL8WKRKVOxlF= z@Va|M7dfkM*U7=*?#kZZvQ3Z=q*TLZ-D*MgP^kMs^RvW<3W8`Y-J_PM^~EeABR!`|^a-SjUYs=TUu z_&dTV;Qd>5Tbl>2CFtG(gD@N9Wp!RvIs!)EEpcjb;}^RlkmGJ;#JG5PLvRX0?VBb{ z?s~r4i&Kzk{)&mWKfjRndM$V-U;Tx2?wh`EZE5X;n10*JOEd%GU^wzuA!8L{V$@vJ zK0+r4t5p{{7j^zNGcxM;Y>%6MxtQGQy%OgUV?dKtTI=Na=~G_{m-KH*`>INsV7u#6 z)~X6Kk%AYjmS_EOkng^knPAa(%-6=Hl8Z-EBBW%M9S?&o(?Z4V7z zSXrW|*RT7))#KEj@wQmC>v{6(;mY{<*nsm9zqsn}t@K+BH-Ffz} zIY&B1CTa4h+1d&%TV4O`B8uTon3o7YegcBrzz-d|0lMe8s{~n+bY&v-F_E3RxYn_( z*wVGpX`eRzuUMZX`t0vV9x?6$K|Xl7qx7unoh~477JN5+%jXxHSnklCcxy1L$>~>K zSZqGz#{uL3MopFf)CqoBh#}OWYAgXjoq+K27;fM*lVrF=yhM%)s?O=*Ha(_G{`IfC zPX&O1S-G6RQ_shmh|(}GhnwZZw4kP@?&{HFdrW%FnK~z>!<8BvJ-=n$Xm^1m9{Dd; zE@ZP0|AnfP7&W)L?&T?xAF}6-j23*vxBM)jC;{{nc*Sml756H~BLjmm61j|8>P*XZ z3w<3yZTdnG>XO9j{d_H4H0|P&!bMJ#c^z@@z9NB3sn@9z5`Bl~wK})wNMvMrrKx*U z10ijO<@J_7g~2BQflH)?1(0WZtI=P+U^~V>)*JjNA_0<8lcn(oP`q56ZbziYQ1YDh zM8(9*j+^DZUrWNJ9_lhp9`mCG{APC(D(Zpo{heK+(6Aa?r@XS?PoKXLF1ze00{e`g zwN^#~)g8vezku9-na{~1s4G3Qz)VzbEchSLq#e7d%u!L!ofbVl_&1}l>ESH%qmq#k zXra|!pIa0X)w6vgO#fpE{RyqwEy=0mNDoh2I+l|I))3W?IJ=-xGO)V6O>-aM@1M)> zc2Q{1<3=(MHigx^bw8U2D#5g{-ozGeuDyu{Q-YEL1sr6d`ThYQPIB2Frv98+&pA9! zmq@wkBO>mizZoZnpg>rhkDysu62Y*9s0LGoURzs*F>OK!LxTdAmw-Bt{`{$BNY+Y1 z3hA-ST5n!tvo2xC=>GLd4C5N`&T)Ue@6W#H*iuiWCyJpX452Gk752x_e? zRY=rIfLvmUS@~dY){4LGve9W7(Hst`2B_(u?{1lcM6*hYnl}e=0FhdAn1sPp5j|u` zoyYoJYrwPE4vEIFm0pD!NblO8QK@tMS}LB>PWXq0k_S}qc}yt3>mH9c%Lh4Z|41d) z`rvROc+g3jBU-lFOvRM+drB&#w0*0xHRW2%T(eM=0prYn$!BRDCt?DGkW?+(Z(S@2 zdY}n+IWV(vPw54=cuyS(E^-%84iLy%S6f-p3xX-vFDqw@mDW|jaUM8LGUs8;&iI5s z*r2OuiJDT>p@gF-A2i84YqQFX?0Dfw`aRq_9Oc!E>GP22TNd^;ML$sny>dK)aGP=q ziyqy{ni1Gyuw55I{;1qkmILcnTR6GoHSAporH+3@0NNIS* z8Is4pnkm*ocJwW;;QOSba{yVXZ-9Cq-}A=IY@&YXA@zJlMwQ-$n!9}OyKE#{i6p%Q zoy>!s$XEJN>%8WpSzdT9c&I0!zDMi~t(8wpX?B#Yl0Y2{*ZaaQs9&F6`k-GCa{`4v z!`Z{_?*6oGb@inG(TZKfLZg@*R)AjlQ*#^W)Tax2n(Le4bKB)mjoi4S63u}wZ$@ms zVMh=q)+b=^DBr%qU7DRQb}jn!N8*#Z4h71qjz6D5Qo6b-DK54~f(GKlbedG_*^zb# z@cnVI$5Q2pgApYY!tZyfZ$FdzN#R&@6evvgh>PyR4oORQAR`-jLLlY!3opjTF1{K_ zuyI`6oYr_h=2pf4EH|j2G|%Sil5a9`wV=K}7JOJ6#s2!sWbW*Wql!yHEC2TbFT}UETK^>R@xVZ|H=86vr6_|UaO@S7Wmoq+63NMc z=B6&%(Q>CcQ}ZxlIC(yiAo(pUWCMN`be;iw7Y5Q{j9TSXsT_F?E_EMy1msUJaMvBj z+x!CxJHBtb8Q%g~lkYlrfB^%iWUeHqG!TzO3Bf^jxN6gDVrrUPUO*C6lcdx+3qD?> zK6YOg$wIwgLH7u7O<^E_p$SAlbPFn-eFzn*#fwt&fM5M1$@!qYg7=Q(rF5HZ)BIm+ znZsYCuXLJSF4y{yMI?Zy@6)Eu95y)r$v8_av5r7&xIw$9v$8^Fy;<4vT`1OUz*!?{ zvswA8d^mTCgk+s2P$ED9;}_Xx$fm~dE7N+8rxt*2q&Hr-cHzctTC9X7m8w!WlER(i zGg%5LG&cW_r>}sDGTPc61tkPTxQ-1Yf`i zq*qtTLwEt%pF*xKH(E2_Ms~2jIyiE0=)UlDZo*?IqpPUkBrB*xbU7h$97$j9Tx(c_ zrhJ~QwzL$w@8pLU6qxJ(9cZ!OwEj23RZg+>5>(;`bC^)B(@N!=>*aekw&2}R!rGTF zJ$7epMTS$kghRP0TN$u_-h6iRZm6bg4In{){Aj7*Y1XfRf+?YSnkQ$@d-leX`h!tE z4GZpzuN^z0-PjnB_CXa~88*A0JZ(n@T0t>*zuNSiZd~|~(Bv|Kq)12>7%AGtJgwiY z7h*ZkvK5&wm*RxVV#Flfj$XZX*L7z$W%i{OHXvRD?52v26_J!4#$O$q5O||c#WRO| z#D0BU#8InDlY~9iUL-)i8e^yz!>EjO&vw<9l^5Bm8hGLTBmLMb-mGiF3&-ygfBra* zrj_>A9GXXz!eUmnO2mZY-gBW}nLx(B#AB;U`o!qX+w#o8%auk-1qy2QjxaeR4rh*< zqY0H+t$r;gx0mkmwB$mv&vQWTiw? zkFQZ3lT%N|!$jms?tnx>iR!l1o%$;~yKa9Pzwl0cU^AT`TN&!baZxgb+^NxcxTSOh}Nh)CZ;XTQ%b83SN!EmHNUsVqN*-b zh!RN-neurd^R>&rehmbL4&~wlJ|y4sQ)5x#9>J->z>a}_&a(2lm4gFRVWJ9LH6mgd z@ag!|F<-3}og?3!PAN=uk(!QH3Za*7510?6EqDsZVwjI9O#ke|YvXzW`O~*l$irOh z+w6OGnoMDzB=xL(E#iJFfLOU-`4Vi_pjT^6hRzs5#``8kP%j;A(-)uM;bp?*Nm>gg zM}-p*qP(0aA_ex!sjJ?@J+H_ZW4G1Se33`1CJv( zo)%s!WVvgA8M*dXt1><$sI%z(&#aeW=3M0Oprlg5|ETnX`r|#8DJ??c*GnH`Ig&@EFSV|>(THB z>hH_5v)yrut+5=y?SYeyKjD05_dM62IDzxO&lB=KnK@6y+8WT4S1-Is*=x-f8}=&; zA~ShZjF1TDJcd&vB(`{0CLr$#I7Zy(e`~+NO3n~sg37_Y?e4XVA=$(-0DKwHrv~J= zUU4z_)#KJMdP>T$kiiT}K3N5mz5VLy>9g7o%c8@nC2VFmojL{QJ^Un3DQ>|H)rEdo zl7o^!8u~ui^jbz1%FEg5rs<|yCNgJ*Umd>EV#Hy_jFv?m zkxfo>2u(rT*Oa<|46=HLxrR+K>(8Ls-mgr=L>VPbrNQK!th}sZl^B3;=r=Jnh=bbT z5;N;>gJvN38EP0FD&0e)5@(emVDjGJu3~1YynkL%U3Iau21H`3l1E9uHh!Tz5n88HPPEN5vE@4r zXLnH35d5^oJ@4suuMR<(`Qn3c{<41I>pA5;bc_kh1r9yhf9l{@j7SzUjQR2uNxpA} zH@9M6K#baQWd=IG8g>PFjOX66PG!{~WHdXMlptf#eFmf%RmhGz5jD|h7~Z7wW}ioB zC^=3p$DwU~@f+-1a}Xh~mycUqDPCVLl$FvOE;VTcW5d~S1cmCtcY1nR%Ea|)S%0TK z6i<7d)c>sBnZ|#qs8iB6EP#qxV!O4&YT5GCiGU^Y$sF@v9P-}Twfalf;U0WG4oi~iUyqe0t1}-)+g)xIXM$JxRQ|Zr#w0X{^g?WE?IhE zM2EYF<|3_ZED90+K;K%HW*Usua6#QMG$dN!JG8X)`(pM^idtlB+BF+`3YIEvkT^;9&_E);+jiW4m1v9jzpgLH6lW zTuW(8%+JO~{pTkOetvVnfajT2ua{2yZD25HG+vZSguTflc z1bUk3LIo`qEq9T0DJp%16BN4r!Tmx45fASOzYxNpdq*mLl&i2i-yNKDncK_5O#Uek z`|1TO1OpqR$T~D8ffE1VmLfeXPgl!K=AsnLV6)(^m(^y->9d&L-Y??I8u%J}6+1kZ z`U3HvlQQf0T_X87k)X?gN)r&?c4>rw<~s^xWvd|RLSr2C+i0=GGu(RjBkzh6D;6KPz}~uFClBNbIg3< zm?>#t((Pee@G33>oK8HRru826lA^C%M}@UmD;(A3Bg+l;lunj*F}yUYEbeDXOjKQ349pr>o7jOqq<+-co}Vd0 zAKt-d)Q4~$&Z@?%?o4%+@LLPXMkmyK=a=G_)R&Z0L{8CHsK+TwA9Alv@TelM%^O|J z)#b?gS<7GPrfKd3UA7XFf#LxT zUQbDIS&x60MNX7>_xu`oGDW9~7@-gz)gat^gAS5p7xvuuAKIvHdoMS|rxi7GWtELWk*Wk$S%k)Eq>#uXJi78f4Agvb>@SUO}W>XrljB} z`la=`>C75V3C_h;d!j45K!Jf?L=mw@$6 zuhnM<6vD0ApZ8|mSEW~WwOI^8({XuZ7xyEwL|I!GN$A#00@MZ5&9_mXY72sK?5@w$ zV-9)iuQxn89|iZ{erdXw+2nI)LT!ISzhj=22+BNKth-*B@&+UBAbiKG&EM59r4gBk z4O)P3l2)=y;Pmn2zB;2O%Tr_yI$v5sSaN=>(LzIftdtru&K7FH?gAu}>`yK4u>uui z`TxHxbP!~N7#)ltO9MuDKa}Ki;>Y%)GGJDL9&P#+pIm>wa~8)O0p!nf{U6paMqC;*tK|n1X8J-Y36akC2ZzZNoK&M!Lx;(`JfL|z zZixAiz#9TEHsJ960@5Dp6VpU5OVsejQw_if0YW;U^VP?xGV$RYDQ-CQLs(H>QAicC z595)_0;qv}e6-4O05p>S3qrdVJoM!7?KY$L5`FrO?Hj5flkNGTf$m>KIUc%q6&$pX zKbyP^ysj4#->(e6^flNXNnNcU0D}q$)WvFJsJ zsah1FlnCVd@*$m>-UN%#wh&uuYOL#%8PWp&%8it0M6{+SFS$m^z@VZd!LVG zV!7AJPiMR0&QOQdKfapSPh#`4xg{x6`Jw`e>kCVqdM5Bge{NYHz+l*}<$$<2>3?EX zVcON{6ROCw!);R&eKC9`d%OKg%>^FUB+ZWJfgU&@ym{=oG-Sl}!fT6M6}KVU{_7_N zAhTIFvQ>kZ&~VVFb2wP4s92NyJ$()Oi^qk_RF0U2E6x6w29@!?&c3S@?O^KsGKBYw zVDp{u{ln9_r^T&2C2C)&4fLUWeZ((o$PSF1UyS=LNW@pZS2mX?xkUCUPAbau1c^TDu49q2mtk8ca!-! zQzWyPMhv&OJ6q8(tq8kFoD@Cq%V$V!`76;2urN?W>E59{cxbsBGxMSo^oR`NW7<;% z#SPQ+F{pgjG3IJ@0Mot)B@^=&B%N)Z5nBD;LaZ#dxjlQ_*lOu{N`P{jPUgd~NVjH~ zKdK+mo5QiZ{=CZ<9Tl>+B0~N`*e$dJ9?4&7m(@UbCXAlQGI%L>QM`Y+4@iqa^9e97 z*cc1hM@`+8XH`dC81@7vn(?nmd`v@2cjwBA9xR5_W%>UBhrylI*w!nKKM{?^^+A0V zsC>3P#S4rOS9Z4kPU#r(_6>>lrY|oXZ@F!6t&__SafF5?Gc#@341h|g$!#e}mWI2* zWv03k_#bey(qEoF_8b>3$zp779I;s5bC(#T#mD@UjQq#3;KuNl&AuQhPL=u50C+q| z6LU|JRf&6NQ{;~0jamL6?qpH9+uzwQ=4onB^#9gM_b5q*+KZG8ew{ZC^j6pQ(oIqM zP3U72a~D<*tL`*c>d*HLCn+awgK)skh{Q*(Aes&00_V&y+t@jBA!wj*9=m0)7^=zO zF0V2~BON4>Nf`um!6dk}-P!t4!h?ieldB$_qdF$~E{sr% z&eqOi3W(4MpXhYazS$1vtEt(c!<5Nvu8T< zsQTaOVAPmQ7hVS}!3n<2rN}kR1s)dwnq4ly-8Vo=Wl|R3{@`q^V_eB=^Zb()u9UD5 zKwMyyQ11T}%$CuY2b=Xq*Q8)r8=2VuIS_zBrjqJ?qgw#*y1km657QxvIqwTm!Eqmo zRHw!0(Fn{D?VIdTv^B-|2`?HXyj;%@r+N?8FCgkU+w0r!UzN<;S#(TpZRu}~9{#(&FC}jT`Ki<hmmLd03(S$N=dM!vbI71O$4Z_&%R{e zmpcvX9P=F~Pb5#c7JwRwoK8ZbM3T#4f5uTllkiK5G-{5W66iv^-~QdKGqsj0n3!mv z$c+in`6h?7Kb9xnJ_sAZH({#GfKt0u9mN523|d=7ai$YF`4>JHptPOmmn}2Qlpz#eaZi~qRwVW6T7swCvC+KJC zBd6xF6`AUshqiv8zW@fV z3+J|H+zmFVBHWscdOyqMb`JKMp0_+u(mr(PO$7cVf%hV%WqU)4Y}`*?a=0BD7ojAp z5uqZ98P-gt#0<-?W7WhO8;Xx_%H?D=TKs*M%i)JhDL3)F*)mErJ(WO4i9cLcI>{&c z(2eu9xXV>iUthwM4*O7~l8kd_wg>5?()La^dLq-ls z#KEDZqs+glHIxlzxJpeI3`24Eze0Ws|CSq*!+rBY8VX>gvLrI8-^Vi^D?2|;_U7ID zuZ7@5_G>588m&u9s_23;0c?Du#)!GHH?qjDuf^!yYh+R(#@a{%-@a9jZ!~h!Nb4Zz zi<`t^4*x!QP>u=yy_wU?5H_RkG1j2I0&1_oihy+Z1cj;otT=0~b>U&qjhD3;C$g&U zwjQnK5Y^5Isb$Y7NN6;WY!2}eIDhpfJP0wrQtw?{QjM;EiNDA_mHd)M9Ynd90h%ZP zK}8Z|MDh?A;X(e-V=%4xEQZ2@yvSxpriu8^V(DNca)ITh3}to>)&Fi8 z_HY~lRzT*C7vUS7qb{;;a^U!QK{!=gklH(eU2t8tAd;}tx2!~+i(-PoOj9)}qEz}@)a_YA zF^eXlK*p^!FMkH3WiMJ}M*)pk2%9<6Ts1<3%zZ6B^Hif_eQoX3oSb8;=0+dH82$;N(T)oZq*I>sqjOQ zi}QtCLTCJzDIXVOI5s}uNuysK6dcfEBATnK{hBTlAwv@or=cRxZ4i$WrWcOxj~<-j zvi7<>B0OZu$@tIXw(>Ue5hUjD+Pupi!5*p#D$0pzF_y-b1s=w6}*24H;QmPdz;f zF&p9?&FME;uZw)Rzs4Sne-TgJzWeVPDO_1XLP1r-3$FdV{iays{rf4cyahI<6*5ML`!r4u z%Bd#>?fv_U3C!7k-Eq;=L4N-pxwCE+_Bt3DVo8kgNU+8NLdecvVx%Q>0d@q9^!XJI zOm9iwxVrg*gJT6Ybe$4LXq23{KHd1oaH$j$JKNOIBH_Eh$m7MLy=6^kAb-Y)Q-@!Z zrpJ2@f$Y` z*24ocGneZ9ojqktpK25(bw#y=+tq;1m03xV(mNy=Vx2%JY{c&FN1?A;Q&T}#A-~N& zfo=0H_-Fe!Wi)=#*I6q)#8r+5G74dHarECM(n1k^Yw%$Bm=faao!7?md~(V43Fv4K z^en?-qxCFjv~F6TGd_Mq?csIMX6*Ava(29;?OkWJDmT*B&O;#_SzAlK+(-6!ZZ3Tn zSnsT3Mw^k9Wz=cYhjB=wgc<=q5t@}dN72=}($JvbN{KP&;&MjJOP|ah7LiuwzWzE| z6a$-IM>_%oecWM`^sqk;6FCyK@8UA*cp2MqC*27J=V(T|+WLcvy1J=530cBGd%bPd zZ}Th#dSuCt5qljYBO{gYXRVZY2JX-}uP%cM&VyWPxWZJ#q>iV~BDSDRq}SeE+7+B; zG4>3`Jo5R7MF7`sOJ_&$JS<;s@ztrA7?7CB5>e+DvZ?1xVn=`ZLW?nRg}__J% z#@DaqOiU98dMB;VyK41v9Ig&(_Ls~RHwnsWpG`3SSYOT84&B{-#%918OvF@D#H7ID zMGv-}Dt$%POG#Q2e&0VY~ z#GAvyYURgl5GEh(xAXJ=#=Bd&TWY(12Z>}+rtK~o88jjay@1*cgHJh2H0kCcQ)h)w zfP_y>oVC4u;^MU+!SGBguj#c#WdFxmv&ccI=jCTBIy#VDX}_}FHaMIUI&+#(tv8*D z4k18*tnhe-isnSWI*Ow3o39l_qKRi`xCG>S@n92)%GqOjwZH0BufwyK3gi!JEeoiO zU%`EdiD6={x;7kIK@73=yv?!O5QSt6#n6bR6t|=H$XhPaCNujdB4w1Mpb@AoR#A|^ zm;8WGM&#Qzf$w^IQFC+Wdw;C1k+)bZJeqvNmv011Ma#0#h%H9;>U;~+{rOApwmfrm zLSl=@lUi;b97KzPLJ&zlm5g8SXes4(-qOeK_2ft0WuAmm`kHuO+bzAr8Ga)ZIm^uw z6-721GCo-gwyYNb{5VD<%#D2{1QP*dGI04_F;lRd~qur75dDm4U%G zCg;jbT`YFCQUVTO`e|y6Ih3SCLlobJ%E<)-KN^H6tU+{{_|1w@PMwaGx&QG}>5sv5 zvQsl?U#fJAeIW8ihG8&SFTgY;XU6j->A(VL1T#ocolx{K6UyV$t2dftPi~0r+ z*SX)5RaY~{UR&O_vZ+KViIwEKOsmVs|nMR;KFh0lTy>`mKq0WMK!bWDVbijeJA z_{2L|z5r8GaWgZB&q5qS#OEiufr)CnwXf+Tuh^Li50;73DNAz{SzOtAH>Xr2C@9eQ zNBYDJz&my}UTO|j_|_*OX**r=;nppuYvB2IdynW#cqLOa?^FJM30T9%icdEmbS4W; zrPFfv_ut@I)H@s^zYS{+#(t)YDuCZKn*VlPyL>d1Xn(gmZWq&j$xQmCd1mS=?gfkk zkldS$X10F$a&5loqDtNM_?Y#|D=mJY9=Je6iJAz=0uS4+?O`RC2)`})bo+nXWRT*g zf|6}y)C-6XoWB8w5dKR6lO$4#kFWmf?TN}qWa-lF3gPn0Lf)5Vyk}-rOiY~_Lg9no zRHgS77)&Pt=lTcX6=F7DY5@}?(ZRv@kmL%=OR z$^7NzSw)Q1OieR~xVut5zkoH)t}DuXhmS93JWuD7DV6efPPk7v^cMq7@Nj?D!SrVW zqOh?FYB)^$y|0uXog*1?`AABt;?Y!9e~{E*oo`7}M#UiG`Ppf z9oEzoq~A{u&8bUEdpoB!6&4;oEfVUZi=&aY#lkeERy(9b8u57I-KtPHMdb5LuCLz? zn2g!ESiO3%p;55>YaFX9T1f9npmO9N^q2&!-@yxX1%ox)j-477_wSId`3adI%P`mR z-4K3XuQo973mad&fZX2WwrgtY^3F`r!~j;-?Oj3XR+BS~=-A4M_9O4Jg1Im?2-xnY zFC)YdQ1a{+I1Yoc?MpR;7$vw!(yL18Cu!F`pJ`Hgnp-v+&|>gfuJrJP#xh{O*NQJH z$wU_?sRfBO;1h<3l3jLoGg^7uL2=PZ9NQ_m7f(A zg3|mlvSn@Ef7^s0TNALwyX|CozY`iCN}&k|tT??AE-czqrJ>szVol>Eo}ThR$I8uA zkwE{LZ<46<_5Msh7?*it90npo-{*Jtd>#xHJlD6Hd!1YkGalL2koV_|H%|&M2JkR0 zB748a(qEeW`F=NV`M&kZr7BZkBA=f=uEwdNXDkP}*R^o!i!s>RE)IXf*HKYHs2O(H zpOTHDxYnt_S?L)1#qa$Y_SNIp$m|?_{MX*0HQB~=M(Y1b>a!%Cnw-xf^Dg--XIY=i zl_%-xPlZ5{4N{4ln-g7~bcxscOz~;QD;v=^_YN_QuEFvSD9; zyE?W6qa?uDR=aoe3WQqAd0{qXB;l5L78cEyWUyqAJhL{c`RDY{i#0T`J%I@5E{O@o zMHt~gV~s_7bKe`qLZHO3x&RkvY+$f^wCD) zA#^7k5q`NZb_|II$yW6K^qNzQqmARyLGX!jpQ*PnGpMDC$yzrqhQ^;m9!gO@Q6wvnf?Z9qMCm2I08vU$iS-e1Ob`X{$5 z=C-xF2|Fq74p`bWyst*4rajQ^Hong=(}!{CY{5r|t~|r__78l3j*SeU-mY{|QPFn<A~6doapy%u9)LJY&737G`1nDs$&7vp*6|EdJ7M&tW8w*n$fl z+(_My;9y+}a*v?4hQG`^0VTx>2jOO~M2VzLEKpLp-*LNi4*dW}-ZR3=B|0Hwbs=J07ipF%|RV*2iz zXLwp|OqN!5Q~$x&*K0(EwLga~Cb8>RDAre@it+I-LN4mGOo5Eca&51kFq+qIJv_IN z3NrY`P?IM&2DH~|g|wc0EZ;-IdvVC*z{H4f1f^MupW?=N1Q!tzTcPE@(OKBlMpoSZ~& z4_7TU_164mJDBXZS!#M=pV9!H_w(l|ht$94N#Z{(HD6mSdkCRs1BHIOuQ!)H6F)|& z&Cj0*+SWC+fHmtgb8)F?^{kc<2BBKU-+4o{E;SWsvbPKl zk1T>SMFj-D@$tP3MK3L#Iy(Ao;&-;xoPFQ1hF& z(ol(qI=u0`Mk7;O;{pbdIZ3`o*LB4@e)kPAj#znU+(@*c$^G`~PY_Iue#}d{Nvgl^ zU=wN#rivS@P|COt*4A}qrowqxpI#ip(>*L1~Ha3tA8Jc{OR4Q@VJ}%4VuCZJO z3;8{%>}WFQbEr|?ZM#uWFv`oB?5ngsPr;P#9z(gIF%S`M-D3Na=)Fh=2kjpo+*7n$JqJQVAcXJhjuJ3tra?O0v3%fae7L)GCO~-!ak^pD zKb-sV_pbs0137$4UivaHmhE*uz{}_m0xf4 zH^8&>_k3h+7RP?$GEM)g8Bua;CRg`Zqt*0y!~=|Af|omXxUFSarpIfcU`dgYjr-=6v{h?wt?8AQ8hT&!rQmF;<)56Vm1hU9k)fqwqhkdYMnXW<&w+Et*va3!N0kWpN~B&?(T#{4rtbe8(BH(@AKQ# zZ)#|ec^SQi!!J{(VL%VU!1|n+knnK!hBQX*Qfc(9kccX(_HgR0cr1imet%0+L{)XD zNa^hI(?Ugu&7Q(n%Horgd>ec7W-Fbd0WA1$f}^Loa7 zp3P;tv_eCJuwajNf9jRlvWIHHOXSJ@k&N#5imJ?VIfdP# zvxxTf{0VgmFY)~#yC(+Lx8Ig!?0Ny~C#ypZ4Q^f}*2zfl0cl**nv}(g@Gh5ormj~D zC8ga~$ropPbv8NI46R7te-BiFmxqWFP@toqe=BLAMuYAnUFZ!Zw^Gw|x$(HR`y7E^ z-rnwp3>q8zZ8+gvNm==$brL+a0nn?v5i(Yj6`Tt_v#*DP_BR9oM0RsX28&&8LVU zv@2kKuR3JeX00Z!6x>yi$MMyBLOFa@<+F;}Q4cLS>xZZLy};bdd>od5mGg)(IRgha z1N})k15PM3oQy_Yjqy#er&KkG=usjo1hOufgmZg~5*m7z@jetLq4;0V(Dw~loOp96 zK5owI*P!G1esYpcLnG)(j(XL+`zK5c%Fh}dJ;RT|B-`;ERyJk8Qoj1!Dk*l1%rx9 zg52d~rSrJOR+|YI@*~ZY=w>@DqCZx>urShW*2Z)oz7(A7VqEGlFV_+z?D}K1KZrOu zUze^7rF4#FHD*$hVu^1LeNk0Wk&M(@;k%Eb$iu}oCWRM>{AqZXXZ1?qi zi#L%WPcg1q>+uqTM0nTQ=%|Sf%i&;V;*TPHhMXg*?xR>#+TyAtfx7YMr-MI=8LoHZm#)S|u(+DP9!+7Z8$Oyf8|?)%Wkq zs;c^nOOW#w`-aPI&WA-KMEi6yKv=!Ha!AL*g78HGS7vKwgJcZE9DaU=)Gy+W)&-le zJdX5!pz6Et9*$q_TP=r>jE{>qHDBlCVs&?BJG&gMpU=8pOT}}J`wo^mJ8t~-F4NeI zjzN%4cB-~WVF**Q#Ruho$i#$z7s=gq?H4Dj$e0+OAkqnwg9Y3sYu#{}06Jx>rOC;L z(yD73P?1TlPh82PWn?!C-v88nOdy`9X{nivU`(BnpL72!fx(07WOvv{6C3q$cD|cx*>^$UUYbjK8V(zl}i8acWUM4 z27dYk;+7~haH%)yS0?FUdOEeEULLhQPwg`T29xU8wrzVoIX2 z${s)b3ld@;3E6Q?G5$!c$2)D1a55zjr&L!NHs)k+9M3ySlSP(l5?kF}Amu=0BVmKF zkTt4}P?H9$tC%mYj=n-GzqlTCcjvx?oh^v!tuf_=hb4eO^uLj4foX8akd>2Fs|e8s zr_*HsXKdLdKz_WXj@DyDeGQ{XF)y#~<%MRkc4}w#EIG3lLd9^)pO&>fnZ=i^n1Xt2`z8xR0Ko^VA(e&t-x!7oD>0!Ww8NsDH`3rqsDm+9zUgq^@tAjuJT(VHu)llvgA9scPI8TQJxOyE zj4j7p6&Z+*zo;f=Q*TMcQ#`!o>gjnht;whODRS(SZeL*`1i~sOkK)Y_s$5>T{Ont( z$#wCV9;(lVmCbZB+c8@Vel2UBqbcz(82ls~;OSQ2?0vKJa;7XIv^pjLTYJ zlT2JBgqnu#)tO>shZgGR&s5jPMK%BW1vt+ygv8zvrwMT){rbhCN>x_uDKv~bZo|0^XRl|@5HQ1N_`x<{2z99TY+d>@ummDuw zrP7NnE0e`C0eD%AQWe(DW!~Ik2@KTm@F;m;nxS#7V5E*hh?pfHS8IlwQ`9f7Vu&Gx zMTh6M)|s`owg+6PK=o1$ZBWqEJXsHW#1x{^w;dt5zrT*MQj1N~e1DDb{rhg2@+u~A z8Y_sJY^t1O`26WvS-UYb)=an&5we-p72<;4>)YEOu>S#(8E(?F!M;PuyP0+6r~+J# ziEg5=USXbvJ?)J8D}7G?B1Q!zv z#dVK+UZ=g4k`x^j9Rk(Ah3VqdY?t#z@~DdW9x_5eGcmq14b!@0_kLbk&AgGSJ@{CS zHn|3smcJ5Ht0kQ=ogb;ydH0|2Xt~Y$D0P!uFnN^)hO@0HHwbMXh_!)wh&lx4gT(q`m2DlJj0~ ziuc=s0HX$WG&OTZ393n4^&BCIU&KT-MR@vBf*oy^HpzIzv#)?#i54B#eNWF6pB@{jA6ABWvr#rydzebe9Wc3v9 zC&Wmx?AN)ky?fpoRD5@2SQ_+5OSxf*pyswcK5GULJA4q*y~Rw?j*>Cd7?$5|cRELR zI21|oyEe#hU_#-v&<6fYXr0ux4F=Qa-WpQk^Qg__ykV!8x^DMf+a1S8!$-t5#s6cp zEk%j8S*jug4;vyL_u8D=R7yyudP$;nZ}1#w8)uDdKEUHsuNQ>+Zs8egy^Ah+#Kwy9 z+j_IYn3e;wP)>|dRMFG|mV1hei(O~Z;|pp^vXyfAZetPQ;UVj=;JSyV9eRcF z^%WJlDJk0g{2y!Z8XB6Ut*1R-j5H{ygS%Nq)GUVT0~7(arnWKIcvR$*Q`1DemJffA zMNIZhnQ`_s!t5^WJ~!HVU_4Mh2s_;+*%gI;lWDdzhI;gZv4(3z-P&ls{t<-~VigTq z`$L(Su6&Dr~5tnkogM@+D)@qIa2Mb{>v|oP^)cmlwG4np=_-Y_GyKS7k#rHT# zSo`33x0$m|IPZppuB+mrg4&L`uC!sewGQY@*6`XYawvu&S}0>=77_sKIOGc+P)1IwR1!Ge;&LWh72ez?Om8jq7j^lK6D zaq$-I^NW6`Iw(3%_Lfi-(G;bqCEtY|4C{TWTGGEgzUm>12lf_2$6Q@>SvFw2i^u7T z5EZ%lX)7jZi?Cwdany%d8CHC6+xE^9$Rs00$no(WekK2*;ifJcD<*ZpL5>!!@vhE- zqvmHu##%p+4xess@petF74+w!k)<&2@*-2A>Je~gu^WY-c87dKCucbTlaMUTil+vX znB>PJp;1P0cmPN-^aFV^;q|g?HU?-*?hy-iOwIj;dk+)`l29N z-tg7?>S{BX_n>&9E9so9i4Co+VJ&Wa#lp#%b~gQ8d1tDYA49;%7+UWDb-tI*E0$3H zMxK2joqQwWj_Wu+7PKjEK3y7e7df-g6e9MnXzVtGq^9y`vs=RDlRH#Ez`(_2H;LW( z(^>QHb_DE}YCWlhtktZPFS4E#-;#zSZpJ|MM;)`~?T!2k zPwD7-84~tCvD1A*{zqN$fSX3ST0D3M>+E)KEhZr5@$Koi^E_C{4R3eor#-*~VsQ}$ zNzW+ysJ^KS@aS8Vbz)op(f4cI?_tC$P1LLM35NLQjPDkeq2(uJy zX@4b$C)r2YS=d>a*j+FmsVV5-MBDmz;)+_n+kf6-iPN-w{Mh@pIkkzWBIij1T`47q zCr6na16?;*gg(?2hvJp8ya8k7iDoG z3|=IRP`Wo;Q(O8%`amqu<=h2=f&?L;)_t=csJU4N8xh2VC zAAecE5%k;K{vGTJhbWZFh)SJ0t`02_xGHYkCH97qe#oi|938@w3}FYZk=Dbhjn~Jm z8EAO&`YIc*boabF`0;NRfF8b(gL>JBI^r)8k3>OP!kWnnM}{)$&cBjn5AB*UbdG9o zrl+E1eAGUl1~X*#*R~a)Ac1OcrSsf>xaXOJ=v7Esoc|P2=2v4be}|&5;@>vaI!p-= zFWe%71NGn6-KY3~dd}rBxB5JwNuLk;pUGF`$Z>0j1al>yoBHNP6MJq4! zc{>S(kBHp3GnP)g*bLZ0BBm?7dP|QUMaN178!_ROW*mPT zmgA5?*Eon=KH5D8J?6a1G4$XXpRcMFd<%ym^a3KnM&NvZS0X`Ob)dEDI5PaZiY`jA z3LfqoQJuqqioWrtdbLg z?~gPKsyV4$H6C zM)v`kFvsoP-uXJK_t{xubQ%B}L`24gX`=D)P1$#CWq9cm*YeVah;(j_K>LXziXln4-Z@-N_c-ZF`mVowMEoOy^vnI zBUSEaG@v?Pri2bi|4lHS8v4a_Py6sas~{2r36w?yc6uTGR6oUAaw<;2@9 zkGT)IC$rkIY;-_B?FJ-#AZJJ&nBMSy+wQtD^V2f5^>leXtpDV1Qbh9?7n)u+DssY4 zx}6(cQLhrc!kW90+|aMPJ&{F@#p+CIHv$Pl5-IZFeab z8<+MhpHy#G8z)eOf;FX>(y@L5;3{?pxpc}s&ZTqx32_jD)R1;38qwoqX~-!qR4B>Y zfMF$ild{>j#UCFhKX?QPUfp%mT!`h1QX{sY9)K(u8n@KwB&|RPdf%bfX6cmg20alM zW;iytB=M!Cqb~QWYAr28voR3o>D4I5C*6;arENH>DgV)OjNc(4u@rdr^$VGNlQ4R1 zv+n1YxTh2|_?NPPA*ymg(!?mg;38JcUC*NQyv@KGMt@FT&crQAMP(uOE@gM3_iGCb zGozJ9)^|6VYU8)?i4#seq4PbVLNdnw1_0w-UM{uW{v8`@j)R0D@PmYruB48~o9=9* zy{*ls@S~|ksqNt$x4F4S$6-GsHb$WF%#fT;cQ&Ss2F+J7gx4wSjYW%v9qO?mjL&3g>FLLhvq|ji@^Uuy zRM$t%Vp84qcK_Sm;@U>}&_%Mp?1{g@rzb3&xTo2AeonL3cq}f>ka6?{;98Ri$(d{^ z)DC77X5x!ec(}%L9}VT?5M?m5nMVDdQL|6g69>0OGOQ|;5g}mk#(lFZg+%vJ4RoYC$-v{$jC4BF)%}! zw-2BJ+9!Uw0-a4u@XLc+Xb=f)C3(I1}t%4I8mjCN=V7ER8*}Knxk|J=20os+A|%rZ40;uUzJmPGO@{ODG47u90j3-hSHPGDR%)TqDa@u> zt|`DJA~jhGEqk7^_VpR{_yaaSYGnT_u^52~I03*IzhmTKje7qwpKOPQza`M2$>}XcWV3wLKF7C${FA$g#5HDlW zG*3^o5ksROkQ{>6w3j|3Q&Xq{BoTkTyfkD~Kku(?)&S$Z#g-PhrB()$f|3%kCbtAd z1qGqVbaPd6;W|Bt4(fQs__ zzK4g9P*PI5y9DX(?rx<^IwS@J1Ox;Gq#GPMrCaIlPU-HFe(&e|d;haoti=G&%sls= zd(YixpS^DartE(H#Kl7AYiP&Vdh}>B+Uvp>P)x7l=4zLdm1aCVGtdWKl2BBnqlm};0y2~`c{5+_9*$^QyI&k8i)?J% zHjzG>5$XMpLz*QK6qrwM%d{U=Xo|4|u_O}Y!$-4X8UvouwYO@oND8X08il>%*l^A4 zXN-XRn8|TflG~bu!>3QK+6i61#eQ#$$GX(CYY7(*6c+|85SGY6XEbWw7QZ#oHqoBF zDMUq^V5>sm)UGczp>>h=g}cAlow zaY+U8oxiTINP4+Kimd@YPm*ypx<-^!*u(2QD4DDN+6SVua>$c+~fvvjd^CXsYeFbBTXxTMA`z?0*jic*@ID=TE19 z(ZxRl3`IxhPRk$_pN5Vus)_6D(%ohP!5;q=D`OFv@ZI+?*)UM}dG)FUVCB#&CgNUs z{8ykNF%jmPXZL5L%JYQm2Gsp@w7v!hn|d77HR@J)s;K0HB7S$*&sM0RnDnXRJZF=s z=wjl_b(om?=FMvR8v&r{hV=T)?e(8vi*P9<2qAazMbHa` zv{X}FXoJyqI{)MKQFGXbe^W*DfITwZ>?MeV0KMG(2a#4M#A}jfr8$Bx~2l6pB{yZj_zZ}7cy2yQ7~>4a&B%JBN@Y~o9xClHkE2$AD`}n z7wb)5Ah#ny)D-%Ei~T(jom^hV|2S5Zjre73utd{hGosOLR7NI$bMuF3Gk(CMPs>ti zTif5if8;wu`K$Gqent6FWeBGA_LSe9$v*%7odopL|NNE_K>GPE9vnQc{c+4BkjLO*-!}=MDWIfM08uAL+M6s zaOZsEQJyR_0Sg}i)^{}x4bs==cOw~6*_A|qZm`hk_AL?r=nLfY49qUqzEJUz8k6KB z`ex4}VO?Mp?RV~au7I0;Qu(;Xl*Z6)Cf6eEL|w=9#wy8Kj3${T$#&9#?W(8+BFmo^ z03QQAOurf(5==k0d`tbIm})Q}ep>cYDjRG{js|St5^ox1@MWT!l;9xSb=yVk8mQ@g zgF{?Z?}~`IjPy+!EwAy3>4}Z0mvb~jIp>GJE%S14?TTdIgVNe4xd{6J<3Qm+pIko$ z>aXY1r_`pbCN&{+6OaSItG>YB!le~b0nIW0IQMDUIt8x}Z9dqKx40|+M}`Iu1^3Kke+$P*5ycted{N^0)()nvWkdCouX|GL(uK!9r@d%76kd==rWKAYlBYJ*+Lj z^vCz_q~uwamavMvPGaGvi+^X!wKWY2RaUEhldZCtui_AWeEewbGXzq~jrO88q*mMN z&ZV6_YV-4R{!ww)6cquIzZ>8d1Km&%RP?l4wYGUVd7Vcq%dS0W1crtPR+?nHUWYcn z%tDfsWG;{F^Cr5NtMd8>5>_-A%jZ7#nj5!2nX8ROt_B2r{_u-lbwbdK#|^krSX=X1 zDG^9YvLYeeUd>`xnC@U9>Z?=I$;T1NF?DNi2iYy^fN7+P7SAt`%8@c~VrTa&iS6pU zoW;k*eTKv@(pWZj#U5)NhZj5MCanWeQOb%y|8!C&yKMMiW!db`od9sa@FNq=xyN4R z;Gbt?X)&ehNS@YSlP+iKe^wl&qZ;>oRO{I zw5DXIGy%o!(X&i-uUs05{*AxAKw43w3K#PCHmab7$F@2U>rUkgou8bl>r0H2D89~1 z=0PSn2-$}4zOSFy|23*jYEgVC(Zzft`XuM**d0ZTnkVb!_-;bMFs9Cz4SXGSQ72V(a2DP?K@7b$K+-g0Jn&jc?mTiNKw#^Yjb5r|s+t=cm)D+PDFe7sL>pPk?QSUF*>7}l4F;Niic5|#=FTELifrAuJfWeX;L4>bBn z;E*BCM{~8gOSw&&O@9A=NwLI!r7agJ#{!ZBpgyD7tTcKoT%r{bPjy=H8>roj!M7o` zH~ZcM=p|uf@cf7yn2j+FxOhNMfXT-KfDiyLP@Ly&+g(i%{$ItiibS+r#t-Pr2`ozb zDxh02%(-^hbUk;UZemMx0PRYQDzUISA*o|{R=GKf2SRaaXVVvgRitHS>twq+Y?AQ{ z29GX2{PlJCKzwgieO^e$i!U7KR+}4(F_s!{g1ZU%tln3Xw!C|$sxUXdKiEAqY-^cE zUG0`w8)}2fE-pkA7aOpP1%tG7o7rMh&f0pX4gv{yX0S`M>=Xk9zMLnb240**odnSmrK0P z)7~q6BVBbBVxozl>GQ-m0@$#MFoye?iwp5O5_WP{tmvrQ3P51-PSSwOsK@Frs75$0 zgu}Pf0i84|;9rT^YPbK?p*jNsp3cjFl!w7Q!x)B9R_Tdqn)YyipgKY$-h|=8{fk2a z3$P)4SDm2hbWEkVcTqQr@^X}?F_F%$_x*)`8Q|$z1ob>mRv+`&ri=Rx{7=q>Kfu(6 zRpSf(xRI}oyypaM)1z`D6sQyCEn%th;hWSe?S7_uIc8En0)4(+y?44i{3t1 zY&cBL!`#Fj#U-RV?s-q%zU`U)TOrzL(gqjz$AV?4mgCIU%-`xM&Dsh7A4{c6oy+dF znvM}jeHOb4!gHChA-}C7MgiVMI5eXWr*ne+c1%8!F2wlNpz`RjcUHCCdNI(&*PAog zCED)^>23Y$qpof80#bS4P`_I*t@Rn4zi|kZ{hS}gRSZ;I{myegM3!ch3O2j50jq+T zZ>p*a1d&~!_jSSC-s4hKq{YF0IniKkY%oW?J`ZSjsFr#Vug{!bQhaHf^g~cZdRYSa z<4BQjZ4N0yeGK81%9I#)+;$Vjz__BUrEb_Sg*Gti2w$b{diX86gv(KN|AatBQ8QV1 zGE$B%%zITu6YvNsfb(v}_yfHlmIOUP(n@CL8XR2x<0G^{wP5tiXsX9#{&MT5sCtJ zV8vn0kwXcg)BA~$&C##`j7LufV7uaK*IQ&CVB|}7W~4<6js?{-!v_BE`AsDoG0sJU z)eZCVKFC4~ZY2;SilxTAa@k4SE_W&dWLBd$#cJzF_Lk zeDq)xmOi$x7~xNDlUcekCLmP>iYT5LM|H*vR$#fR5{QnhSFHHciiI01ZwV@DcrZNv z6SpbU#+m~M>mwUw+XcttWrnOWf!?k4tqC`0)gOUO(S=&!va3p_$5Y%KZ+92knT_i% zt2aCx4m&?X2*}A-i!?>w@&VAKXfQEHX*(;8NB+yc&z0>{THjBN6s_+*UvXWnFa$06&I0uvqTB4#uwjl(X^8r{J;q{=EwAIdjax^VS zD?M95$KuM{X+9Uz_k_xpg%uksw`ugs-&nN)-8ujdws>7AsI zqz8U-B21=YCx|E$I3@K`#<;u@0nx>lrTAP4HTfFSk?{&2d}oX#sBSP)d+y!gbus%_ zYhNxI>LB8q_@{W5`FO5Cm7Klel$bZ#VXpH1B2S@As2vC#A|j97iEgw0*D+DV!F3Le zAWw5Zw0(NP!(L%_v2Dot#^v;{#mA3#^=YB`x4*4~LS?aNkYa9Mwtr&JH5qbGlmFYb z6y;WMudG|}9jF%}LBvq>(?iWT!O^Jn(G%2B3!mi zArPSddu$;WR5~hAhK>ED-)bi6#|o#H;_ovEBi&WNzSEII*$C=2Y~6BG`-kpSu_Oh` z>);L6Po&NFH>)LdDpOoMZOO@fI4DGwEe=D;W6ZjDcX!7P?nQ9GiRNp}w{*cz97&_1 zZ}2RwEU)lPJlfH8R8!r7(4$E(vQw*b;0-F=$~#m36*{^Qe*WTBO`(FR<}yhv#9mD3 zu(i2%f(0-)Hmh>ze#uT&aZ79sx*Y(N(lMoV-+W?3Xt#;1j@XNuf`&})iUA!aM;;c9 z3H&n=6ciEQi(i|)@hR=Iq!)61jw9rA_N4gvg8+KxnhT$hO5U`H%_NtiD&?y`B`?_ClF=R znK(7U4;LdQ&y^EhuaG+zslw6YjnX&ardzoPd0&iU+ldvaVU!Q4&lp~8CNwCy&%5I! zWEC)n1wO(0lewyvhJX5c$#hZ4e{L}gMpiETU z*B=)iks%%W$H$IBD=RQXOV0V$!K8azo4)2l<0dV#g4BPT{S;8BwEg;mOCKyGL?l1I z+~{~(^y#I!h>etAL(91A-Sk992j#~_@cO#Z zWC`-Hf;uO!*{L61IVPo}PnZbEO^ixbdwsDT3R{SWFlp&Fe0*@}EoxZ{jlDfm!KK=o zP2)m>tti!#rM+^P$IeN+O9~4UO;_jGSX6Jb-@i)S&i(s;3Xu_^we~v$TP7mzauFX2 zypG*xXP#`H$8zrO5|y?X{o&oeoTBB+$p{F+7YJ;1c^1y`k;xo*w?AA~{)n zdRq$GUS`Wl2R5oix>aJx676TuGWaLUigIy5_XkSautjys@UEid#g;gbW`_F_sA9@b zDjqvjpHg*Wo@R_F5e_;BL{Om;uQ#VGHK&J86fU-0o_^m>bO4{{Uc@Gcy`A0zdR406 zAP59O=9|r*niC_D)sMSs5V3zz#GFN1q_#eOgNc8Tkj`Sr~Gx#F=8{0O?4p$?ANQTQeV}qzx9eulD!P&tt9wp1h5EqrogyxL7@1_M%>> zAC*^(uYZ^W{^S!u@ZHxMXn7(7rq&}y7f1DY-QDNc1Od;F#MV1;4-e>ERzsd%?0`Am zj)#r=u1+#+>I)+5HVg1}DXpyD-W-P)m*5fKC#OEuIp-8M8C1E#@C@5dVz)=DktOAz5fdGV|LS!OnGB4-$WsZmK}O32>aq-kU9N!k3=LH{tQB_e?A0yQ z`Y!9mywj>eml=YlW*C{U!RZX5#N5aVnFJvLc5GJ4yv_ZFVI9eGrMQvt^5W!$zsp%? zaq-vv{U>T!GqbbCR^MQi3=OUSriXCThhXqYR_FNmc$4f%z9;rfPJzi{xHBB-`>*nN zvOW?SbLC#t_l9&<>YNAS=gHgpeN2#{JLoI=&%$h~LTl;Do0XB3(dwJyj2%2Y<~yGm zoG;bPO!!z@QdJNIbsu`@;C-)8BO!d~HO}a*|38HI<$epv8K|dK=FZ{#(?;(q6KgAT z>{5bU(~B3eh(Ic9VshgAygwe=8`Z3>AtB0b+x-$ECayA)NvnwK+NjfaHu%d@^<DQq2`p04VYPkqb9bejL=G)!dc-B=XTy{fOjU;eVoEJUf!dwb~1Vm&jm zZw@gJu7$Oepf68T>0!B)E34@0^dwl_OQ)vntw(I?0xS+@p!PFz0|P?7mkn|8lJ%-L zvM{xWM(a`b!9?4Td|;FVE&*1atD%(L35}-5850x4Wk6?kzt1CJYtc7aGCzHf+bM(q zzq>*5&hlmO?d{3GoG9Xp)%I1t{U1$_JR&0Q_p_tv<0J{fbtUOtqae?27N6l zuO~B~rm9B%at%vZeyHPI_V>Zs1<`h=)!NAd-)ItVR?(~#TIc`5U&qd_JztqRh76tL zt;FM0O|AVKC94mPY@}f&q63wrg4bpGnmR^@)}>%zX1Y7nT3LU1*bwwuSAcm{n53y>;(qN0J@K6z zWkR1SEyFMnqsiwgK|+_Xq6bs^bhGcl`F4D4=-bL%$H;NT4_pE-FC&f zDv4>O{p=E{;6Dk<*1=q1UqmYGY=#ge9-Dz5{EKyG=xDnIbY*&LyzfCJm7QF)T*wz+ zw+Kl&g%kLJUtJTcr0){pN~uqEQ_HRt!%8Rg|Whr9=J_Bc`5>#bG@H5AwM$PjEl77XQz+-V<8wiuoUW=W z;%7l@Yv=!sQMPOKW@sP(*}ks*@xeQ5rFHt~B;u>{#kCBi!S^iJr`$tc z{7-+Df1DyrJf0piSxEn}F>P^yEGm+VhZh+);dUF{qzH>GaHG23A*CML+&7oJV!1Ms zVTOZqmv<=op(CBua7s1Gu&Ksg4XfvUi~qS4X>PlM9ADGNw3-&bzdz;ER5LiMerb>c z^+rrplg8KP9Jw7GoU1K4Cq!K)%{nF;W_GrXuFwAQ0V1*(F}#lbaX{c14Qb;#C@4oeSxaIvd}e< zr#U$oe9tkp_zE4J_2>`_*!Nx*`6O%yGwae=TITEMXzEnV2sye3$c&`ztRI``82LFq z`_P%&xLpm=Rd+Vr8?y8isMkb$)oi%216W+Fh5 zv#6$~fl%#-)kX;hX_K~w>-LtS`Kw3)GG3G*ie2Ux6`$?V#IaZX+uZ6#7)O{#e6wbM zO2-@UYX30YTt8l4Kjz%Lr%b?E6MOb1ZSv6bbvPPqNGgLGG<&+^eSL8{`q!Q&UXIhG z6&}LZ)SzWjAoW^m>mBe@iKD^eOxdOuxM-t5k)Z!G;B$f0>q2L+^*XU zLRFp>FBT#yi9n5^8tC8cUK_(~^La?lWyn;sakMX)wnh|p$Vew-!T+wH8DBHVEm-R~ zyzX36S8$+SWH`CB(x%V#GlIsX4FL(I+pO$JxvW&c{lx!ZsS&7|xxnJcvhx@s=&|(X z=J$4s^QeQn;qmZ_Mzb`tLdU>-R^l43;Eo+ zp+7fAlT$eI#8+e2y?y5H|HCL}Y-qvYAh_DYQ-(Y4%OGqbx&2wENGs$1nww)nedU|e z`}ZI0)4o!qFfua1;yO3x`2?sK4Acz-R(gAxIh?Q7I`_>-%&P5Oz5->%?B~~nNi#_C z-DoM;60usOvv3j0-5W_!$S8$$ZY-DNKu>gkakgHwLPeltM9dWXu8CaQV~X(_6XUw9 zaLjKLK;=$hVfUBEt!w{Wh6UaV*!NU68oAjY5V*Kxp?j>*(7{Kzy1JSF(leOWe2au& z{@`1eqzIdT^9C29Qf7EywA+V=a+scB+SP3d`-#PrVAW4WOkXfy-cb`Ho~NU7QjB0L zt2;aJp+(@Gg1nMek(L}4j%QbAuWi{1qAvZ+i$R678u2HM$ z{omhRz~P!xU)wgZl$5k2)ie4bFEuGq5%#9SG#(M#e^*UQFL}gMOMzA%t4Lm+sS$|m zd;Aq^_kS$U;LrOpcw*8rx44kH;&5E|@sVD|;@NEy@xN`D=Z|+wZP#`szmN*4IRLcz zg)oNx+z(5r|6mi+grbt{mV~|~-1l(5#3Yq2)FmzsnBr35rbN-;Z6bQbH6q5-+%$zdIcoGH+I;TW9 zwAtmp!U7m=DL#TY)+KB31`No#trh~!C{&UPp@sbK{pTWnHoLmd-xHCVJW3uuEkqI| z=uS)+mkG7qRF!yS@(SAQPo407EOz8!40<;LC+uT$*}vRuFxgR`CAb3&HT=&viFZc0 zZIF>vQZIoj({#eoG@m;QPjhXOu7wOhPS_IIUSjzB+_05vtT81>&=K!!R39DckA8+g z&+#PHmXGFKq?xpplgIi86tsqgi5iVSQa|$h^U=1Ip|^pO!{K6yZagWeGBW1z=Rd_S zv9yp+@4<(e`qU4bNH1l1oMp}z^3~zLC^KTpI6PPkA6;#=!4BMTV4Gd)L4uspy{$U$ z`E2s`{*GH(T?Yfh23AO>{00pvvh!_q9TH01`Qe)<)%>jDCIkN8Pb?TQ z)*G9MSTyWh@qgZfASe?*3RL^5w}W&dayP!KYV2!&?S| zAUac%5<)&CKZRjPtKYfAR-LU3COIV~O~TB8f3^mjXscHRZvJM-6Fmk=!+j?v!TQE( zO6tqvRoCg_ub};UG%J9p*W=sH;sO!4F&^ie=4WSnH2T$|%NxDqFA=Nf4^x0oR*BY~ z3jSQn?dvSj$l*-D)FI6<4$7{;{iX=E_5Ckkoe&U2fK0^26K~q3=0YGk(b1^~Ld*wb zxZpFdYgfG3_qFH2rMQyD|MplI0~V#C|YrDstIOTg)mA(0g-Tk21PP79S#x z2#Rpv&1GSwBZBK%*4WgPI!kwEceMJXzabg8uL2TYm>V?ad$yuW@S-o z@KD?-3v0Unw5#@RZ>{t2+qVJoC?lrFHr)y~iM0nfgn@|2>E|U8YYgLYP_V=gyO1v; zq`OcyGXvF1EUgn)*8$)~Qlho4n0VPyxvxU1TTTN|s2Zba9Br+#`brMHs@xc(@>G$> zFHcppQ8bLO*Sbt44o37r6nm|9L`afq)W{neU?CM)JN=aC=?VEf#Os8TQ0y;B;3I^k z6?>=~-`p;$N&&(3Fq>tYF6d^8IhvzPQW!2RGZqrs#SfxW-6kf4L{?c_mH{P!NmUOqLX6J=Lr~C;kI7)|CW!}Gjh~E z@)LJI!$a$2!iEul|RGWZB)_{`k*)>#hp3!brX)z*I+lJmBFI zTNY>$UA(`0%~!5Ju7$2!^wQ0ZG0tHkSGtt|E;M@}Ulo&?HDNe;Z8j&kwfvh0xp8Bh zkozvVrRBL@DtJo+KiCozb9-aBz(mP>rK0C^NRdR}FlF^C~i@+A4?8lb6#~YOxNFmUh1!!*1qK zUI|TF-8_k9?V$KPH%5n4Fgjh7+??assD-akzuK$6e?P8Fw$2e4?0%D=y8tQRVv%MU z4k>?)T?mDohJ%BOjLhRo9k4J4rxU_Z;Re^O810f>&K$_+xS$|73=H2S_JUqA%dM>! z&$y&zvTXmo0B=mURj-tENR2~ETykMFPp9Xh9=Bt9O=+ol4B1CPuYB|ECmg!3AOs>J zdc1u_8(gJ@zbmr8gSzfuh+|Q5S)G3AxI3apwB>iBds^?Np~Eq*r1<`)@Z7i6Z6|?J z@`-^lcF#`-C#E-*mmMMCufiZ43e@7fv^_2lNRofYkto-#IW@V)uWsOfIS zHG>@S0muJepkq4)y|qOc2Dq~14lu=i`ghj!W!H0LgdsEm4=?KaR1Aye)BaRS8qc&M zJ}sg+l2ZC7yV1;!r6o<@o6N;})yE%TwxFRnySfS1TB~~7+CGJ0Vz9A!1V}40L_{0^ zLWE#7`9nWA9_z8Qmr2f6$;Q<7Mi-T&5v8R$@w-`>wEF|#>{U?EyJuA`MqC>Ck@==+ zE)KQFaY;3V`L;(8X_BGtHMP@FQDz>VkH<@sE-oj|MitHcC_zdo6W+7sB`GQ0&7Q`~ zbsst6i)OW>V6eW9j?a!cGEQ(oPw{`bp&z@Jzb*o+*F95J;xuC2_N|0?-R&#D*mxk4 zn2kfID&jkqS*lw@aDZ%?iR7$7dn_1^P*1-?mCRy}6EcsM0R{wi$X{mFS9D+qkW)g#7cDXMe zk?VJVGi&XPXU;)aVdTxqUg5o1w@*bvLU!_;DU{OgMj!bopJ9O%&u`luQR3~*x>!G3 zdW6jhy(^oT_-i|<*R&rplgE=GAl(8jnb+2Q71_Spj+x0*=Bi5%x-e8*sU`Fmg6)>-y_+4JO>wuwy-=rR$3w>7E`Bed|T&ST-Iq#+Wx0 zms9_)ME73-PT4`n+|q-Dfx++Zln{u=C^{NC^-9~a_gcs9i&to9=x~s?v9ZNSdNu>^ zIeXdkUne9?*ST3IXcQd-i34Fmoa&2;_HV<((_tWdbyY|EzJ0T`p9MtpTlMQSjx{^S z|6{6F<12zyCwN~Ld(`U3`B}u{?)7GFeCmI--ifx{1CJ)JyMa6WKY-=v}>eFrn1co6}GC@sFS{Z0Zq%ky>A+ z(k2b~M(x(F|9;6+k0hx&Hk(@@JsOlAgaie-vpH%m*{FFySV$S6@WL+k$-ORJUVDs62e29}^O z^t1gDpOp0RZn}hom^hEkI31V{`av^*@L-LP2hfgee-?3F?@~!+*V3R8_BwU}Q${_O zhB|MozrV)A9%xa=qvH4>1_>;;2S51^4dHKZB|!H~{NP76%Bq5iG4ttQ0u6kKXc&be z48|PJ;wmyKS7o*PbH$n`Dqd74hx#qnSFzJdI_ME~!mT%#D=^P7>bF=ib@d zh>Ms@sePUr3vrqnoQc!w?Qiz`<4X!uu80Ne?rO7r1nQv85_D;mABlAtrk;J^i{xR- z!o21F)pk~N=4dk9TZTl1C4j_j!I7dp-QzHJT_TF%;nbcQBUVxy`j5f>l0V2!^aYBY zT6lO0a6QI-ad+*papBPmdc+sz->?}k*dOYVV}zx|s{h>Cn;jjUA5i!atKQZQ+t!0_Gn$VLqzZFr3gLBv2c zI-P{~>5B!fTJblaY9jm>H3V!*wlZR3U@L=@44s1ZU3LTRTwbnHS*cGnAzZ;HVCgVz zEG0!Ht_IQK4<~?}9#nLOVcxv2N+#5)#$k`hh2GUXZNw~+i~OLYvubSSy*)&H9|4aj z{u;4J`)uoQ{vXgb=(hkZwxA;*OcsZl+C)idzcb89w<4N@xbFniI2iKgJN8t16U0@F5l+AxPA=*)xDXEXth~y#o(IYfK zx=~ti=cvW)EV@Rbc!$K60Fxl*m<*`ri`LwJS9K!C&p*LkI*)U`BLFsHnV)s@s(_rt zJ}{{G=;znsd)-2c?Q%3#)aF6PiN4ro%oaPe(vqSZ{|BVv6opJ{YvGr*DM`AM#Umx| zc1sHx9^m~QFM1(E_Sd_+u8)q?YIrVYLGGWgBCLW8(=51iT*Mz*jEq>|AP=`Yn{CkLWTkKZ$jmyIXIIN)1UD*0G%D#|KhBO|^uW~eUOd0E zr=Vrr>X|3TmG&T>is~P)dc8ekT2JSh`RQngTfXs2ZlQ}}FQrduLNB4-&G%!52s%-P z=v%?ispdLYY1p@9oRqr(n9)fyzqg*7OMd`IVd2orF@8NC%FB-Xnj0E<;5p2G>k;nDds9jJ zfiFCu&a&O#zZw59E>WJHw0-Kfc_b@ifVhtO8^zaNFS1FGYcdn4o{3SkSz%+X_wO;t za2yvP?x=rIe=+}}NWKVsU1F7_)u(x}pZxw1NJSlcx0x27;&wE}9YoQB(3)W&xCQMK zyf{b+nwYNKCyW0`l~H>?UW6OSU# zJXmhc`blNGc|~u&kmB0Q21gS|M-fLjNrd8gX+~X{jIR;l-x!D3hUEHfwr7TN!$UIi zj8D{CmCKaZF0FP0eh)49+;m5--t5;p4X5g-@y;Hv%djOJCkxL09&~8iO``_*P`1r)m zn6Ti#g!B!uj0`Y2t}IDh4A7WtG}}K1)3SVr@NQ4d(mvs)0j16OU`PP zx>$VTv4E>P(k*!N)P@YPSuFYpX5{`~j(xqUz$@hQU*`;QR475eQGFmgU?F$mU61}K zTDLh%3(VEs3sd4VahfQ#7rkDR!Q+WCDeDT1#yyCh2N+eJO zSoJ6(v3uV?lqnQ-X!D7Q*=g8ylzlOw_5qlDwuuIuC}>nZ>Z+CImu`4T?+j1z7yNr) zWnWsr@*!^>IgEMn{lY~JtTWN7eOQN4n?^nk@eMg?%!;@=n(%$^{2OBHOO!ph0s%>M zbn)+X8G@$l422&2$`Fu0Jp%3Xh}=0Nwtu73wK!?XMnioN2!}q4)=5Vb#;~2JH29f$;Y2k>*Qp5n<$VqO2j|mHkhb* zDWT6D@SGTiv8>79EZTnLw*3#2czdO$h_UrIo^-5A2FdhR>i#7LWg+FC1}#(7W04$W z;^xb}pttU`shBC)69cUYV{(0KI{N!!^tjT^FT8x6ui(nN%qzNiK91v-cq&U&*9~ha zXscMMILfd=elN`|%`Fj%V=Y?M?SIUTmj0O58kKpl*z(cs=J?qC;r8-rvf!;MDr0O$ zX6w=Y#}8*8;A0`;SP?&QIYTtczqMlDFAl6mxJGc$%~Z+C^29vupOvIvk|b!B`u_%wqnzaHZnL>E=&zwb8uk1^BHXF*~yjep@*-HPq!B z4z3Ai32}jADMJ|{--qlGJ7FxX7&Www^IH#FIB_fisz+5ohK=q;1}ixJZhsX7;^wA~ z5MqrIG`C3H>KzXb=)qy3C|$OdWe-cB?Q;fa5zQ{LUZiEnUU5qkdmwX3D& z{NW*Dx`cYBJPHV4onLue-#B3t?wUCag<&&J{rhiFVorqek?9S6>&y3>m%-|UMu#x9 z@2M45PO64Wi+X-`)EjJ#)+6STvwVHA2zue`NrhW(Ipn{Cv+NO9F=o$iH8fZlBC`VX zlinjTsT})ieT$(QFVBs+h`UipyZ?jF+4pWBBSF66-|%U3{qLLLJ;zDM%+?}};vN<< zF27@Ewya3V&zeeiF!j&s*Dpjj*@r$9QKZj_N+$eGHPLm zQ3*h2i`ZO>G|HFWTFaW~kV&g&+(Uk)2|3Ys~snrz`Y*uH5P;(0S+^b zxQd}5>nA&ouu*ZWFBB+7Az3TF0`AblQVCCs!PpZS|NlW(V6j3klin@DIX30s)|7y5qe(sEWYy9o)U)!E70r+oMmG`7eOMIHC}a9-gA27Y$>U0+#G$m2x_=x?~+ zf5;15@A6rl5mIwe-|3qxZfpgx0L2x^=WkPJaix=SclOrh;Ao>kGYwql$ZsBPJ~;is zIdAYQ7o%~$a5407#!Jh~YgsAjt=JVP2cG44DSm#{ew3ybG(>lgY9OnHh)K&!gJ>mf zMh1D8_?T{)czk~mv32#qyK7Bla{eX_r(A~heY?lQ`GLwx)Xq?E!Z&B2Nm#x}>x)F7 zX~XH%YQRo74yKEd*O4ZQ9opYdMQtXc-pZrN998dZzfQgh{Q!D_fn7UH8pfZ(U#C*% z;f?1@e;<1xlZcmei+u0)iKHx_18I9|A>3ch`fjzqgzgm@;(n_duE*ZrT$6JmA?{?S z(~~dY&4JjB8jAY0YH3|yJxhzs2>H8~5XO}762f8k#1LC0=Vtk$=eJR-5!B~)smU3% z?OdX;mUm?d`^^j&r)`_SSG~W#J?g>lAq*YoN<5el2I&?`P@9aE71AX;4CXPAWFqXb z0j3IM>R(*vkdoYUT&9VhHvPr5H)yf*zu|YMpy9!*ZWQP_*bjka07W0NY%x!tx~M#5 zV=9Ino)KjOo*cP|eyjbV{)9E%doGNWi=CUru)bWNqAh_u_K^Kur!iG#C#;7^d zG+G0)hSz*>kW=E_0{-UY(6^Os8+R*@_vJIMYHvOUY;EGf)6Xay-E5A;t3U-k4p-EL z3l^#ps5KT1EWjxC(}GV(?m=Aur%|a1Sd4-(qb8d z^l-7Z8bE9uZ{ON)_Kop6oog|jk7V$ws94o9m%bE7NAH38FfuddIVtNe=<_UHVk-I$ zf|U|iI)NbRV1UmMfe>NRX!G`RMKdDz^$G2^#kNIjzYq4a1f}+0rsWq7--e>pw3>Ln~fYm zLgeihX+64PZGkHcP2F1?|LLl*Ld09sPA!TRxG?sHbm=qwZ%Pg&qC=IH9 zpnXg+F?aazjRHkleG9hb zfp%&G^1y(QCy(1MOPGYbI&L5ijrhb1^Wu3$27Dc^GbxJKTG0jvkrLN$$ID|I)wS7k zE*PuAKiz~ZAJCOYHsa=KF(kaC{l6@SebxF`a&#G~>tb2IrMnMgzu()ilP(?Cf~@3KKng-&@C6SJFwlGi|LVD4_0P; z&}>rSzh9isZOM(8cqyME#g@S9G~2TCHFMD4ux{;{heNL^_#LA3_hN*}=ix7Nb`qvJ za)tJdqINb`4NqNnW65LcuVnb^U1YEjb=O>rT3UVzotdl`yOdl%RqB%7NT}tVua8p) z;KXMovQUPr9=|abb?eb(D1B)7U#W|DDL16X=!Pk;_<_$(iy$zYE6a3xbX`0c_t%}i zH*Jzaf&0OXG{qb!hm~tgw~Dhe_kKI$<|y25wRucmZO=OHDXubyqNCxzc+tm1FqUCtG;6W|Gi{Kx-2(OBW#%h+EY~7jT|4$g zE4M~29>;V5`PwZtpo8+pyo2xwei81=MlFNk>AA8~=Kvg>tW4oqQqhrhn*t>Sh>@u8 z^+J(m2`2f>Z7Dv?sJ!}_cO;|PbAM`JOpPZ-_u$^>(sw*!u0;HA!*;a7ix$Nf;;Z$X_O!f zD|~X%Cp9W{ct}t5)&AHYvj6{(du3+fDD|xI!*I&^W_CL2KMa`5tSIIcGP~RWE#&j} zJ<5ZQnJc3Cl3HtfNlnQdy*`{%JrW&xf7C|q9{FJX1_M zmnK(iC10qq-TV7TA*7>YCG(FN_s8)de~zD)iawul#lQ2ctYiiT)^~QYXYi@V(9;UM zZo?yc0(#&IjYcI~sy- z*aP1es%CQcb~zR_{Tg>@z>NM|`vpD`bGm)isl_vJl{oL+Egwe&GL?wpEj~WdWKlGz z=ldxolGbRJzfueqg&H0py`tf)krxs5BP*#1ahA(dKGSR3Mj`}&&diY3Y2`L&1m`so z6Ax0dt=HZw_bsC{p&{ANFaj{~+dhp8a#W7aRk_EZHEI!&l08we9hb*q%f~4+`Yj&L z3+{~eYBRz2#*>RWt~PRsVc~Ylup3MEbC-y-j8^W8)Mv6%;4p7}2M^J6+w2<%M&>4uRfJvKT`5LH zp=SzsY=@#NUDFS;C9~l7ya(lIa*-CQcevdg_{8PafQF_xn3xD86;V;&fCOTpj#V$q zSc+;Sj#d~o=>OyCt;3@FzVGo-5s+3SrA0agq(P8wh8{{u>F$)25-Aao&H)Al=~lYC zySux8hu8c2`^@9xA3W&Xd+xb=pS|{4Ynu#>j;}_PVZUW2=8_S5*UJ z)f$SSrWbBBNlY>%oT~n_{KvEai!40ktLxR7Rr;4lUbHKo@B;?JVJIKq4iWEgeA-Q`Sy5fdt2YutTsKE&Z#Ps zEdxK1OhE-z&{+}1Wa zisspqT%e00LcP?NGV8V0Q*_e7QjZywes!WQ(CpK3>ynAZHv2X<{zld^pQjo2i86WNX$|`$qKnR5QtHZ2@7dW z8C$KA1p$8i>fr1Xk>^^0meYk+K%2j%3xNP{yz8;O%)j;zyc>DnoNkZ zyux~S6JA8;OMx2PZZVzRogy1Q@_b||)o0HBtgxd4wfRnv_aosu_dzO}Fg&}Bf#9;T z8lR}m_>?mHY@7Q#h=>dtTHoCvO8WU@1rVUx0M22R^zI$R7jQgqTGkblQ2p2v2xCIn z^XuQmbgQ+06QoA9|A$1*U&~;D_E}^wGGd!VUmPdkZ_|V&O>pyyEqJf|_x#<9yQHb^ zCjMIdoEP$mbAu%h0b{pItc@&uYW3fN}bBG z>9!_sO^>g7wcj~Trbh(hKV?l^;$H2XrFHJzVMqCTl8xtFD*fk1(Xlm2VxPzoW2h<+E~RZIH;=5Nd5ad`>@BLnQ6(N`#o zzSjwzBE>}c=fQH7+>N;G#3U{U2M1d_dU`skDzDlGFajRm;t&uy#i$@ny$=W+=yO(mEH>_QJT$;B zOOuEgncXTeycNq3_eX{wA9iIA5j}d;fQ(#=&!oigva&DrocrA#70!V0iT_ChAkVmK zYZs)#cs_s63XSb>O!7uXzPBcMNlnjap}MXOO7TyGHI|bugh4trCsh2kWep9{fWY6~ z&1hQk8=R(y!h;xcQAF;o*jPs60Ya+8gan}$lr#T|9=2Z6ziCo?vJ2fNu{H+|zL+U5 z!VU67bEI7ph-pj+Y^LibAlu z8rbvmIge3Cw7&P>xGq82cy+Rut7u5cS0|59Uyzc0V~jg>GJpH0#BP5Ik3z~#T3SQ_ z3j)!A8@+huwI5E6njl66#>NpVdRrp3Zx2b$(&M2eh>7+`sjC1^u8@=dE^*FDJ`9<|M+ETI6jDC!zY~VZCtk+F!6uAwR|PXq5%k3Punft0X+UYepQ32 zzRsiZ%-Z&Hj`5TkH|S68&n8wm{cff$b+icd88zSSavp9D)5m+Q;p?jQ^zJ_n#i+~GB7iEvmKHR<_nIi*?vjDZs?EJG+d zhHG6MI5@0+{o2a5LG|Ob7^dM90L2aU{jG;KZElI|kMN(|Hmw_jg9I$DC`g5v=!SMY zmRKmG9?D=^a?et0^Lihk+Q^;g`?w(^6$-k?_AZZ>MIk%wMGDhJldzc$g=42*#r|TU3ajaK`J^LZ&k4Y=vxp>JzKwC;ny9e49xIHJ zrcQbE2prVa*W+Ov-Z#C+>-RUS1dyiih*y)g35-Zyl!QTG+DwP_tn=N?aqsij0@Ib1 z1x|Z9Q-A%>-@Xk6_H*NiR}d80|JY9XtVkjfJ+JJRXE1dF^#$zhW`^vpjEEA-3|`dR zoOTo2=vJxyR6&KHrr`H{+(=?Zfa09nhWo+ftx%w)3-@5k(R#S_gDj}ge>D*jhGx(O zmGW95iQ^z0ZtM*f$pT%z|KIn@Bmd?MmLhQEDR$fRC#L@#b#NsQ$0Y!Pu27%qy zu%z|=M$a2U4LaZV5QuBScUz-vb)x#iwcf`iguap05@Tfi&PK;;{;#+t$oSuV{1-sO zQqF3F3dCqm|3fKGw=>^ah4Q)CqlJ#$?P)3~Oa@^p^C;Y1ZKHl@ZgW!bPb)^hQ7l2$ z5zu)!W9QCTJ3wyzhmP^kyyjIi$5a2u9>X>bD+?w!A0E?kQ2DtQx(4 zKiO%DmM9rfzaR>^K=#Cn_fJC&%{ckS^se9t{1wK!0+f(ZB^^y20Qp=$;87zbN4
vFCS*#lHZ?>|(vR*ti5uEqUGY zP!_3zxs={Tj8y*0>{<^k<-yA*D5^561a6TyNRNOQkZxJtdX3W)Sa~Uw;jre{>f5(y zv6k_XWH;AEY4%!D-VzCL)qIs&P-fBjx3rdj)F8jWsqF;)^ zwwvj?NFr5_za*5GkCl{L%#ozu6I{^x49(`zJ#N3fIwv3|R==Y_qKXPko;{wJ_#e~1 zb<7JF2higmeetb#wNr%nrf})zFYQ^+7bTPGiX(exQs%LI)PZpz_$tsy@Le}svTrTU zTu$~iS?x9lcO~)O1{TB@_NIV^Fe`1tkV+ZL_Bt(8h0?Rg>@c!9f+=Jt251hB@jv=-#k{ z=HKK1WE!te;#btn<=U$y*#9AI#PP1j)_ND?0Wu`^2RZaX4DoVws=NE2LahPYiIxb^ zq0apNqUO{Fo&k@*+dxKdVVrO$6~GH%<}b4x zY-kVWE zmQGOp{}5>*^tSAB&}l&FCzOk(4%5wLd{+W@1)B@iPc`l_0k}2l2fp^s4Fe@5GcVBy zZ&sE+)B*)XRl|HfvBqw11{@0MqF;U$`>T?x9*05*z6VG#ri3CRVcmIF| zD*&Q8ArIT;-zV5U_gs?S@??`l|AQ6BjMXnht@S5VQZQ(Bg1)9wPUnXkPDG zJh}v@7(fb*m!^iL?%a0Ar_R;V(zEUhe|ijBozPp*-tkM5Ky3rNP2}DJkZDm+o-6f&}_cq>_;)C6i1uq1wrgjk8ZjZl=EuS&NC{Up=Rn81u zek2jm9L3a!OYJOF4jzpN-x+u$@*U9n8s^JF{u&MOT0SGWclU=vAfca@eJ;SHd)wu< z8*Fk357#_KsRf2OPyp`?8qPixz^KR%D~6Nx?7x-M_bsWe22eP_jKG~t05Tp@fjp65 zwW>QSLnxK>y!Y)-OXpb+JaAzk`B&?(#2^d@Ykh2g%cN`a+hyo5JcZQBDzvFF>05X;>|z(c8MIK`ELT zI0uzlvl>I7j>7%7PlWYS(Dk#I;+@&hXllkv_@C!-(1iQN<_#=T6YCis+o3F&SpH~T z2F(@4XXlg*Aj*`$3Fsr;+A28g-!6V>-2=TBpW=D0u2c`%g zejxjAN{--<;Zr?J*D?Su&Z?KnlnS+JaoK zo8QgsJ#S{eqT(_Z%)OQzW5=~IqyXRxvko06Cx~8xN7Y~c7mDr-L7sSJ$Gu$9Kgojg z%#Y@&nIQ0JuJ>X*2fly6$zz!(G=nhclUz@6FLFBgW z^x9c;xNO}l%#VP6wQEcdQJFH^wP@Gi7)h~#4(to%a~0;kd;vZZg{|K=OGx=avC|Xr z>Xd}ZYGsawHhyKDyuoL_Y2ZNkz!}5|3e^1Pu8K8nvG%Kq=-v#h^r>a`FBC62IT5`a z+^pm!H{$=oN|#DOhoV}Hg*pC5d~EzmyjY-kgdMrV?TJ$~#prY
U%~Gnwk6NHw1o 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

V5SS-w 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 literal 0 HcmV?d00001 diff --git a/src/MEDOP/doc/sphinx/images/medlayers.png b/doc/user/doxygen/figures/medlayers.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medlayers.png rename to doc/user/doxygen/figures/medlayers.png diff --git a/src/MEDOP/doc/sphinx/images/medlayers_70pc.png b/doc/user/doxygen/figures/medlayers_70pc.png similarity index 100% rename from src/MEDOP/doc/sphinx/images/medlayers_70pc.png rename to doc/user/doxygen/figures/medlayers_70pc.png diff --git a/doc/doxygen/figures/mesh_splitted.png b/doc/user/doxygen/figures/mesh_splitted.png similarity index 100% rename from doc/doxygen/figures/mesh_splitted.png rename to doc/user/doxygen/figures/mesh_splitted.png diff --git a/doc/doxygen/figures/mesh_unsplitted.png b/doc/user/doxygen/figures/mesh_unsplitted.png similarity index 100% rename from doc/doxygen/figures/mesh_unsplitted.png rename to doc/user/doxygen/figures/mesh_unsplitted.png diff --git a/doc/doxygen/figures/polygon_connectivity.png b/doc/user/doxygen/figures/polygon_connectivity.png similarity index 100% rename from doc/doxygen/figures/polygon_connectivity.png rename to doc/user/doxygen/figures/polygon_connectivity.png diff --git a/doc/doxygen/figures/polygon_connectivity_small.eps b/doc/user/doxygen/figures/polygon_connectivity_small.eps similarity index 100% rename from doc/doxygen/figures/polygon_connectivity_small.eps rename to doc/user/doxygen/figures/polygon_connectivity_small.eps diff --git a/doc/doxygen/figures/polygon_connectivity_small.png b/doc/user/doxygen/figures/polygon_connectivity_small.png similarity index 100% rename from doc/doxygen/figures/polygon_connectivity_small.png rename to doc/user/doxygen/figures/polygon_connectivity_small.png diff --git a/doc/doxygen/figures/polyhedron_connectivity.png b/doc/user/doxygen/figures/polyhedron_connectivity.png similarity index 100% rename from doc/doxygen/figures/polyhedron_connectivity.png rename to doc/user/doxygen/figures/polyhedron_connectivity.png diff --git a/doc/doxygen/figures/polyhedron_connectivity_small.eps b/doc/user/doxygen/figures/polyhedron_connectivity_small.eps similarity index 100% rename from doc/doxygen/figures/polyhedron_connectivity_small.eps rename to doc/user/doxygen/figures/polyhedron_connectivity_small.eps diff --git a/doc/doxygen/figures/polyhedron_connectivity_small.png b/doc/user/doxygen/figures/polyhedron_connectivity_small.png similarity index 100% rename from doc/doxygen/figures/polyhedron_connectivity_small.png rename to doc/user/doxygen/figures/polyhedron_connectivity_small.png diff --git a/doc/doxygen/figures/projectionHQ.png b/doc/user/doxygen/figures/projectionHQ.png similarity index 100% rename from doc/doxygen/figures/projectionHQ.png rename to doc/user/doxygen/figures/projectionHQ.png diff --git a/doc/doxygen/figures/projectionHQ_600.png b/doc/user/doxygen/figures/projectionHQ_600.png similarity index 100% rename from doc/doxygen/figures/projectionHQ_600.png rename to doc/user/doxygen/figures/projectionHQ_600.png diff --git a/doc/doxygen/figures/source_field.png b/doc/user/doxygen/figures/source_field.png similarity index 100% rename from doc/doxygen/figures/source_field.png rename to doc/user/doxygen/figures/source_field.png diff --git a/doc/doxygen/figures/source_mesh.png b/doc/user/doxygen/figures/source_mesh.png similarity index 100% rename from doc/doxygen/figures/source_mesh.png rename to doc/user/doxygen/figures/source_mesh.png diff --git a/doc/doxygen/figures/target_field.png b/doc/user/doxygen/figures/target_field.png similarity index 100% rename from doc/doxygen/figures/target_field.png rename to doc/user/doxygen/figures/target_field.png diff --git a/doc/doxygen/figures/target_mesh.png b/doc/user/doxygen/figures/target_mesh.png similarity index 100% rename from doc/doxygen/figures/target_mesh.png rename to doc/user/doxygen/figures/target_mesh.png diff --git a/doc/doxygen/figures/tetra_simplexize_24_48.jpg b/doc/user/doxygen/figures/tetra_simplexize_24_48.jpg similarity index 100% rename from doc/doxygen/figures/tetra_simplexize_24_48.jpg rename to doc/user/doxygen/figures/tetra_simplexize_24_48.jpg diff --git a/doc/doxygen/figures/tetra_simplexize_5_6.jpg b/doc/user/doxygen/figures/tetra_simplexize_5_6.jpg similarity index 100% rename from doc/doxygen/figures/tetra_simplexize_5_6.jpg rename to doc/user/doxygen/figures/tetra_simplexize_5_6.jpg diff --git a/doc/doxygen/images/head.png b/doc/user/doxygen/images/head.png similarity index 100% rename from doc/doxygen/images/head.png rename to doc/user/doxygen/images/head.png diff --git a/doc/doxygen/static/footer.html b/doc/user/doxygen/static/footer.html similarity index 100% rename from doc/doxygen/static/footer.html rename to doc/user/doxygen/static/footer.html diff --git a/doc/doxygen/static/header.html.in b/doc/user/doxygen/static/header.html.in similarity index 100% rename from doc/doxygen/static/header.html.in rename to doc/user/doxygen/static/header.html.in diff --git a/doc/doxygen/static/salome_extra.css b/doc/user/doxygen/static/salome_extra.css similarity index 100% rename from doc/doxygen/static/salome_extra.css rename to doc/user/doxygen/static/salome_extra.css diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx index 444aefe3d..9c310bbca 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx @@ -51,6 +51,7 @@ void ComposedEdge::setValueAt(int i, Edge *e, bool direction) *it=new ElementaryEdge(e,direction); } +/*! \cond HIDDEN_ITEMS */ struct AbsEdgeCmp { AbsEdgeCmp(ElementaryEdge *b):_b1(b) { } @@ -58,6 +59,7 @@ struct AbsEdgeCmp ElementaryEdge *_b1; }; +/*! \endcond */ double ComposedEdge::getCommonLengthWith(const ComposedEdge& other) const { diff --git a/src/INTERP_KERNEL/Interpolation3D.cxx b/src/INTERP_KERNEL/Interpolation3D.cxx index 932fde926..16bd09cc0 100644 --- a/src/INTERP_KERNEL/Interpolation3D.cxx +++ b/src/INTERP_KERNEL/Interpolation3D.cxx @@ -24,7 +24,6 @@ namespace INTERP_KERNEL { /** - * \defgroup interpolation3D Interpolation3D * \class Interpolation3D * \brief Class used to calculate the volumes of intersection between the elements of two 3D meshes. * diff --git a/src/INTERP_KERNEL/Interpolation3D.txx b/src/INTERP_KERNEL/Interpolation3D.txx index 4a09787c5..bc68b525c 100644 --- a/src/INTERP_KERNEL/Interpolation3D.txx +++ b/src/INTERP_KERNEL/Interpolation3D.txx @@ -36,7 +36,7 @@ #include "PointLocator3DIntersectorP1P1.txx" #include "Barycentric3DIntersectorP1P1.txx" #include "Log.hxx" -/// If defined, use recursion to traverse the binary search tree, else use the BBTree class +// If defined, use recursion to traverse the binary search tree, else use the BBTree class //#define USE_RECURSIVE_BBOX_FILTER #ifdef USE_RECURSIVE_BBOX_FILTER diff --git a/src/INTERP_KERNEL/Interpolation3D2D.cxx b/src/INTERP_KERNEL/Interpolation3D2D.cxx index 81729979c..4e8cee7f7 100644 --- a/src/INTERP_KERNEL/Interpolation3D2D.cxx +++ b/src/INTERP_KERNEL/Interpolation3D2D.cxx @@ -21,12 +21,6 @@ namespace INTERP_KERNEL { - /** - * \defgroup interpolation3D Interpolation3D - * \class Interpolation3D - * \brief Class used to calculate the volumes of intersection between the elements of two 3D meshes. - * - */ /** * Default constructor * diff --git a/src/INTERP_KERNEL/PlanarIntersector.hxx b/src/INTERP_KERNEL/PlanarIntersector.hxx index 55edd4366..b0662104c 100644 --- a/src/INTERP_KERNEL/PlanarIntersector.hxx +++ b/src/INTERP_KERNEL/PlanarIntersector.hxx @@ -41,9 +41,7 @@ namespace INTERP_KERNEL static const NumberingPolicy numPol=MyMeshType::My_numPol; typedef typename std::map > DuplicateFacesType; public: - //! \addtogroup InterpKerGrpIntPlan @{ PlanarIntersector(const MyMeshType& meshT, const MyMeshType& meshS, double dimCaracteristic, double precision, double md3DSurf, double minDot3DSurf, double medianPlane, bool doRotate, int orientation, int printLevel); - //! @} virtual ~PlanarIntersector(); void createBoundingBoxes(const MyMeshType& mesh, std::vector& bbox); void adjustBoundingBoxes(std::vector& bbox, double surf3DAdjustmentEps, double surf3DAdjustmentEpsAbs); diff --git a/src/INTERP_KERNEL/TargetIntersector.hxx b/src/INTERP_KERNEL/TargetIntersector.hxx index b580ca912..e79d1e747 100644 --- a/src/INTERP_KERNEL/TargetIntersector.hxx +++ b/src/INTERP_KERNEL/TargetIntersector.hxx @@ -38,10 +38,6 @@ namespace INTERP_KERNEL public: typedef typename MyMeshType::MyConnType ConnType; public: - /*! - * \addtogroup InterpKerGrpIntPlan - * @{ - */ /*! * Tool for cell intersection, result is always positive. * @param icellT id of cell in target mesh in \b C \b mode. @@ -49,8 +45,7 @@ namespace INTERP_KERNEL * @param res is an IN/OUT parameter that represents the icellTth row in final matrix, fed with at most icellsS elements. */ virtual void intersectCells(ConnType targetCell, const std::vector& srcCells, MyMatrix& res) = 0; - //! @} - //Tool for cell filtering + virtual int getNumberOfRowsOfResMatrix() const = 0; virtual int getNumberOfColsOfResMatrix() const = 0; virtual ~TargetIntersector() { } diff --git a/src/MEDCoupling/MEDCoupling1GTUMesh.cxx b/src/MEDCoupling/MEDCoupling1GTUMesh.cxx index eb0db7da8..38eae7a7e 100644 --- a/src/MEDCoupling/MEDCoupling1GTUMesh.cxx +++ b/src/MEDCoupling/MEDCoupling1GTUMesh.cxx @@ -1118,7 +1118,7 @@ void MEDCoupling1SGTUMesh::renumberNodesInConn(const INTERP_KERNEL::HashMapgetNumberOfNodes(), in "Old to New" mode. - * See \ref MEDCouplingArrayRenumbering for more info on renumbering modes. + * See \ref numbering for more info on renumbering modes. * \throw If the nodal connectivity of cells is not defined. */ void MEDCoupling1SGTUMesh::renumberNodesInConn(const int *newNodeNumbersO2N) @@ -3195,7 +3195,7 @@ void MEDCoupling1DGTUMesh::renumberNodesInConn(const INTERP_KERNEL::HashMapgetNumberOfNodes(), in "Old to New" mode. - * See \ref MEDCouplingArrayRenumbering for more info on renumbering modes. + * See \ref numbering for more info on renumbering modes. * \throw If the nodal connectivity of cells is not defined. */ void MEDCoupling1DGTUMesh::renumberNodesInConn(const int *newNodeNumbersO2N) diff --git a/src/MEDCoupling/MEDCouplingField.cxx b/src/MEDCoupling/MEDCouplingField.cxx index 52164a9ad..463a44bbb 100644 --- a/src/MEDCoupling/MEDCouplingField.cxx +++ b/src/MEDCoupling/MEDCouplingField.cxx @@ -366,7 +366,8 @@ void MEDCouplingField::clearGaussLocalizations() * problem. * \param [in] locId - the id of the Gauss localization object of interest. * It must be in range 0 <= locId < getNbOfGaussLocalization() . - * \return \ref MEDCouplingGaussLocalization & - the Gauss localization object. + * \return \ref ParaMEDMEM::MEDCouplingGaussLocalization "MEDCouplingGaussLocalization" & - the + * Gauss localization object. * \throw If \a this field is not on Gauss points. * \throw If \a locId is not within the valid range. * \throw If the spatial discretization of \a this field is NULL. @@ -460,7 +461,7 @@ void MEDCouplingField::getCellIdsHavingGaussLocalization(int locId, std::vector< * \warning This method is const, so the returned object is not apt for modification. * \param [in] locId - the id of the Gauss localization object of interest. * It must be in range 0 <= locId < getNbOfGaussLocalization() . - * \return \ref const MEDCouplingGaussLocalization & - the Gauss localization object. + * \return const \ref MEDCouplingGaussLocalization & - the Gauss localization object. * \throw If \a this field is not on Gauss points. * \throw If \a locId is not within the valid range. * \throw If the spatial discretization of \a this field is NULL. diff --git a/src/MEDCoupling/MEDCouplingFieldDouble.cxx b/src/MEDCoupling/MEDCouplingFieldDouble.cxx index b62261758..23d1314c6 100644 --- a/src/MEDCoupling/MEDCouplingFieldDouble.cxx +++ b/src/MEDCoupling/MEDCouplingFieldDouble.cxx @@ -1866,7 +1866,7 @@ void MEDCouplingFieldDouble::applyFuncFast64(const std::string& func) /*! * Returns number of components in the data array. For more info on the data arrays, - * see \ref MEDCouplingArrayPage. + * see \ref arrays. * \return int - the number of components in the data array. * \throw If the data array is not set. */ @@ -1894,7 +1894,7 @@ int MEDCouplingFieldDouble::getNumberOfComponents() const * So \b this \b method \b behaves \b exactly \b as MEDCouplingField::getNumberOfTuplesExpected \b method. * * \warning No checkCoherency() is done here. - * For more info on the data arrays, see \ref MEDCouplingArrayPage. + * For more info on the data arrays, see \ref arrays. * \return int - the number of tuples. * \throw If the mesh is not set. * \throw If the spatial discretization of \a this field is NULL. @@ -1913,7 +1913,7 @@ int MEDCouplingFieldDouble::getNumberOfTuples() const /*! * Returns number of atomic double values in the data array of \a this field. - * For more info on the data arrays, see \ref MEDCouplingArrayPage. + * For more info on the data arrays, see \ref arrays. * \return int - (number of tuples) * (number of components) of the * data array. * \throw If the data array is not set. diff --git a/src/MEDCoupling/MEDCouplingMemArray.cxx b/src/MEDCoupling/MEDCouplingMemArray.cxx index ee5145483..751741283 100644 --- a/src/MEDCoupling/MEDCouplingMemArray.cxx +++ b/src/MEDCoupling/MEDCouplingMemArray.cxx @@ -903,7 +903,7 @@ void DataArrayDouble::pushBackSilent(double val) * This method adds at the end of \a this a serie of values [\c valsBg,\c valsEnd). This method do \b not update its time label to avoid useless incrementation * of counter. So the caller is expected to call TimeLabel::declareAsNew on \a this at the end of the push session. * - * \param [in] valsBg - an array of values to push at the end of \this. + * \param [in] valsBg - an array of values to push at the end of \c this. * \param [in] valsEnd - specifies the end of the array \a valsBg, so that * the last value of \a valsBg is \a valsEnd[ -1 ]. * \throw If \a this has already been allocated with number of components different from one. @@ -1447,9 +1447,9 @@ DataArrayDouble *DataArrayDouble::toNoInterlace() const /*! * Permutes values of \a this array as required by \a old2New array. The values are * permuted so that \c new[ \a old2New[ i ]] = \c old[ i ]. Number of tuples remains - * the same as in \this one. + * the same as in \c this one. * If a permutation reduction is needed, substr() or selectByTupleId() should be used. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] old2New - C array of length equal to \a this->getNumberOfTuples() * giving a new position for i-th old value. */ @@ -1479,8 +1479,8 @@ void DataArrayDouble::renumberInPlace(const int *old2New) /*! * Permutes values of \a this array as required by \a new2Old array. The values are * permuted so that \c new[ i ] = \c old[ \a new2Old[ i ]]. Number of tuples remains - * the same as in \this one. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * the same as in \c this one. + * For more info on renumbering see \ref numbering. * \param [in] new2Old - C array of length equal to \a this->getNumberOfTuples() * giving a previous position of i-th new value. * \return DataArrayDouble * - the new instance of DataArrayDouble that the caller @@ -1512,9 +1512,9 @@ void DataArrayDouble::renumberInPlaceR(const int *new2Old) /*! * Returns a copy of \a this array with values permuted as required by \a old2New array. * The values are permuted so that \c new[ \a old2New[ i ]] = \c old[ i ]. - * Number of tuples in the result array remains the same as in \this one. + * Number of tuples in the result array remains the same as in \c this one. * If a permutation reduction is needed, renumberAndReduce() should be used. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] old2New - C array of length equal to \a this->getNumberOfTuples() * giving a new position for i-th old value. * \return DataArrayDouble * - the new instance of DataArrayDouble that the caller @@ -1540,9 +1540,9 @@ DataArrayDouble *DataArrayDouble::renumber(const int *old2New) const /*! * Returns a copy of \a this array with values permuted as required by \a new2Old array. * The values are permuted so that \c new[ i ] = \c old[ \a new2Old[ i ]]. Number of - * tuples in the result array remains the same as in \this one. + * tuples in the result array remains the same as in \c this one. * If a permutation reduction is needed, substr() or selectByTupleId() should be used. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] new2Old - C array of length equal to \a this->getNumberOfTuples() * giving a previous position of i-th new value. * \return DataArrayDouble * - the new instance of DataArrayDouble that the caller @@ -1570,7 +1570,7 @@ DataArrayDouble *DataArrayDouble::renumberR(const int *new2Old) const * The values are permuted so that \c new[ \a old2New[ i ]] = \c old[ i ] for all * \a old2New[ i ] >= 0. In other words every i-th tuple in \a this array, for which * \a old2New[ i ] is negative, is missing from the result array. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] old2New - C array of length equal to \a this->getNumberOfTuples() * giving a new position for i-th old tuple and giving negative position for * for i-th old tuple that should be omitted. @@ -1603,7 +1603,7 @@ DataArrayDouble *DataArrayDouble::renumberAndReduce(const int *old2New, int newN * The values are permuted so that \c new[ i ] = \c old[ \a new2OldBg[ i ]]. * This method is equivalent to renumberAndReduce() except that convention in input is * \c new2old and \b not \c old2new. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] new2OldBg - pointer to the beginning of a permutation array that gives a * tuple index in \a this array to fill the i-th tuple in the new array. * \param [in] new2OldEnd - specifies the end of the permutation array that starts at @@ -1637,7 +1637,7 @@ DataArrayDouble *DataArrayDouble::selectByTupleId(const int *new2OldBg, const in * \c new2old and \b not \c old2new. * This method is equivalent to selectByTupleId() except that it prevents coping data * from behind the end of \a this array. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] new2OldBg - pointer to the beginning of a permutation array that gives a * tuple index in \a this array to fill the i-th tuple in the new array. * \param [in] new2OldEnd - specifies the end of the permutation array that starts at @@ -1674,7 +1674,7 @@ DataArrayDouble *DataArrayDouble::selectByTupleIdSafe(const int *new2OldBg, cons * command \c range( \a bg, \a end2, \a step ). * This method is equivalent to selectByTupleIdSafe() except that the input array is * not constructed explicitly. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] bg - index of the first tuple to copy from \a this array. * \param [in] end2 - index of the tuple before which the tuples to copy are located. * \param [in] step - index increment to get index of the next tuple to copy. @@ -1700,7 +1700,7 @@ DataArrayDouble *DataArrayDouble::selectByTupleId2(int bg, int end2, int step) c /*! * Returns a shorten copy of \a this array. The new DataArrayDouble contains ranges * of tuples specified by \a ranges parameter. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] ranges - std::vector of std::pair's each of which defines a range * of tuples in [\c begin,\c end) format. * \return DataArrayDouble * - the new instance of DataArrayDouble that the caller @@ -2385,7 +2385,7 @@ void DataArrayDouble::setPartOfValues1(const DataArrayDouble *a, int bgTuples, i * \throw If \a this is not allocated. * \throw If parameters specifying tuples and components to assign to, do not give a * non-empty range of increasing indices or indices are out of a valid range - * for \this array. + * for \c this array. * * \if ENABLE_EXAMPLES * \ref py_mcdataarraydouble_setpartofvaluessimple1 "Here is a Python example". @@ -2576,7 +2576,7 @@ void DataArrayDouble::setPartOfValuesSimple2(double a, const int *bgTuples, cons * defined by (bgComp,endComp,stepComp). * \throw If parameters specifying components to assign to, do not give a * non-empty range of increasing indices or indices are out of a valid range - * for \this array. + * for \c this array. * * \if ENABLE_EXAMPLES * \ref py_mcdataarraydouble_setpartofvalues3 "Here is a Python example". @@ -2650,7 +2650,7 @@ void DataArrayDouble::setPartOfValues3(const DataArrayDouble *a, const int *bgTu * \a this array. * \throw If parameters specifying components to assign to, do not give a * non-empty range of increasing indices or indices are out of a valid range - * for \this array. + * for \c this array. * * \if ENABLE_EXAMPLES * \ref py_mcdataarraydouble_setpartofvaluessimple3 "Here is a Python example". @@ -6090,7 +6090,7 @@ void DataArrayInt::pushBackSilent(int val) * This method adds at the end of \a this a serie of values [\c valsBg,\c valsEnd). This method do \b not update its time label to avoid useless incrementation * of counter. So the caller is expected to call TimeLabel::declareAsNew on \a this at the end of the push session. * - * \param [in] valsBg - an array of values to push at the end of \this. + * \param [in] valsBg - an array of values to push at the end of \c this. * \param [in] valsEnd - specifies the end of the array \a valsBg, so that * the last value of \a valsBg is \a valsEnd[ -1 ]. * \throw If \a this has already been allocated with number of components different from one. @@ -6653,7 +6653,7 @@ DataArrayInt *DataArrayInt::transformWithIndArrR(const int *indArrBg, const int * Creates a one-dimensional DataArrayInt of given length, whose contents are computed * from values of \a this array, which is supposed to contain a renumbering map in * "Old to New" mode. The result array contains a renumbering map in "New to Old" mode. - * To know how to use the renumbering maps see \ref MEDCouplingArrayRenumbering. + * To know how to use the renumbering maps see \ref numbering. * \param [in] newNbOfElem - the number of tuples in the result array. * \return DataArrayInt * - the new instance of DataArrayInt. * The caller is to delete this result array using decrRef() as it is no more @@ -6720,7 +6720,7 @@ DataArrayInt *DataArrayInt::invertArrayO2N2N2OBis(int newNbOfElem) const * Creates a one-dimensional DataArrayInt of given length, whose contents are computed * from values of \a this array, which is supposed to contain a renumbering map in * "New to Old" mode. The result array contains a renumbering map in "Old to New" mode. - * To know how to use the renumbering maps see \ref MEDCouplingArrayRenumbering. + * To know how to use the renumbering maps see \ref numbering. * \param [in] newNbOfElem - the number of tuples in the result array. * \return DataArrayInt * - the new instance of DataArrayInt. * The caller is to delete this result array using decrRef() as it is no more @@ -7157,9 +7157,9 @@ DataArrayInt *DataArrayInt::toNoInterlace() const /*! * Permutes values of \a this array as required by \a old2New array. The values are * permuted so that \c new[ \a old2New[ i ]] = \c old[ i ]. Number of tuples remains - * the same as in \this one. + * the same as in \c this one. * If a permutation reduction is needed, substr() or selectByTupleId() should be used. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] old2New - C array of length equal to \a this->getNumberOfTuples() * giving a new position for i-th old value. */ @@ -7189,8 +7189,8 @@ void DataArrayInt::renumberInPlace(const int *old2New) /*! * Permutes values of \a this array as required by \a new2Old array. The values are * permuted so that \c new[ i ] = \c old[ \a new2Old[ i ]]. Number of tuples remains - * the same as in \this one. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * the same as in \c this one. + * For more info on renumbering see \ref numbering. * \param [in] new2Old - C array of length equal to \a this->getNumberOfTuples() * giving a previous position of i-th new value. * \return DataArrayInt * - the new instance of DataArrayInt that the caller @@ -7222,9 +7222,9 @@ void DataArrayInt::renumberInPlaceR(const int *new2Old) /*! * Returns a copy of \a this array with values permuted as required by \a old2New array. * The values are permuted so that \c new[ \a old2New[ i ]] = \c old[ i ]. - * Number of tuples in the result array remains the same as in \this one. + * Number of tuples in the result array remains the same as in \c this one. * If a permutation reduction is needed, renumberAndReduce() should be used. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] old2New - C array of length equal to \a this->getNumberOfTuples() * giving a new position for i-th old value. * \return DataArrayInt * - the new instance of DataArrayInt that the caller @@ -7250,9 +7250,9 @@ DataArrayInt *DataArrayInt::renumber(const int *old2New) const /*! * Returns a copy of \a this array with values permuted as required by \a new2Old array. * The values are permuted so that \c new[ i ] = \c old[ \a new2Old[ i ]]. Number of - * tuples in the result array remains the same as in \this one. + * tuples in the result array remains the same as in \c this one. * If a permutation reduction is needed, substr() or selectByTupleId() should be used. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] new2Old - C array of length equal to \a this->getNumberOfTuples() * giving a previous position of i-th new value. * \return DataArrayInt * - the new instance of DataArrayInt that the caller @@ -7280,7 +7280,7 @@ DataArrayInt *DataArrayInt::renumberR(const int *new2Old) const * The values are permuted so that \c new[ \a old2New[ i ]] = \c old[ i ] for all * \a old2New[ i ] >= 0. In other words every i-th tuple in \a this array, for which * \a old2New[ i ] is negative, is missing from the result array. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] old2New - C array of length equal to \a this->getNumberOfTuples() * giving a new position for i-th old tuple and giving negative position for * for i-th old tuple that should be omitted. @@ -7313,7 +7313,7 @@ DataArrayInt *DataArrayInt::renumberAndReduce(const int *old2New, int newNbOfTup * The values are permuted so that \c new[ i ] = \c old[ \a new2OldBg[ i ]]. * This method is equivalent to renumberAndReduce() except that convention in input is * \c new2old and \b not \c old2new. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] new2OldBg - pointer to the beginning of a permutation array that gives a * tuple index in \a this array to fill the i-th tuple in the new array. * \param [in] new2OldEnd - specifies the end of the permutation array that starts at @@ -7347,7 +7347,7 @@ DataArrayInt *DataArrayInt::selectByTupleId(const int *new2OldBg, const int *new * \c new2old and \b not \c old2new. * This method is equivalent to selectByTupleId() except that it prevents coping data * from behind the end of \a this array. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] new2OldBg - pointer to the beginning of a permutation array that gives a * tuple index in \a this array to fill the i-th tuple in the new array. * \param [in] new2OldEnd - specifies the end of the permutation array that starts at @@ -7384,7 +7384,7 @@ DataArrayInt *DataArrayInt::selectByTupleIdSafe(const int *new2OldBg, const int * command \c range( \a bg, \a end2, \a step ). * This method is equivalent to selectByTupleIdSafe() except that the input array is * not constructed explicitly. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] bg - index of the first tuple to copy from \a this array. * \param [in] end2 - index of the tuple before which the tuples to copy are located. * \param [in] step - index increment to get index of the next tuple to copy. @@ -7410,7 +7410,7 @@ DataArrayInt *DataArrayInt::selectByTupleId2(int bg, int end2, int step) const /*! * Returns a shorten copy of \a this array. The new DataArrayInt contains ranges * of tuples specified by \a ranges parameter. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] ranges - std::vector of std::pair's each of which defines a range * of tuples in [\c begin,\c end) format. * \return DataArrayInt * - the new instance of DataArrayInt that the caller @@ -7478,7 +7478,7 @@ DataArray *DataArrayInt::selectByTupleRanges(const std::vectorrenumber(\a res) then the returned array contains [0,3,4,6,7,9,10,11]. * This method is useful for renumbering (in MED file for example). For more info - * on renumbering see \ref MEDCouplingArrayRenumbering. + * on renumbering see \ref numbering. * \return DataArrayInt * - a new instance of DataArrayInt. The caller is to delete this * array using decrRef() as it is no more needed. * \throw If \a this is not allocated. @@ -7546,7 +7546,7 @@ DataArrayInt *DataArrayInt::FindPermutationFromFirstToSecond(const DataArrayInt * place in the set \a B. The second out array is the index of the first one; it shows how * many elements of \a A are mapped into each element of \a B.
* For more info on - * mapping and its usage in renumbering see \ref MEDCouplingArrayRenumbering.
+ * mapping and its usage in renumbering see \ref numbering.
* \b Example: * - \a this: [0,3,2,3,2,2,1,2] * - \a targetNb: 4 @@ -7613,7 +7613,7 @@ void DataArrayInt::changeSurjectiveFormat(int targetNb, DataArrayInt *&arr, Data * from a zip representation of a surjective format (returned e.g. by * \ref ParaMEDMEM::DataArrayDouble::findCommonTuples() "DataArrayDouble::findCommonTuples()" * for example). The result array minimizes the permutation.
- * For more info on renumbering see \ref MEDCouplingArrayRenumbering.
+ * For more info on renumbering see \ref numbering.
* \b Example:
* - \a nbOfOldTuples: 10 * - \a arr : [0,3, 5,7,9] @@ -7674,7 +7674,7 @@ DataArrayInt *DataArrayInt::BuildOld2NewArrayFromSurjectiveFormat2(int nbOfOldTu /*! * Returns a new DataArrayInt containing a renumbering map in "New to Old" mode, * which if applied to \a this array would make it sorted ascendingly. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering.
+ * For more info on renumbering see \ref numbering.
* \b Example:
* - \a this: [2,0,1,1,0,1,2,0,1,1,0,0] * - result: [10,0,5,6,1,7,11,2,8,9,3,4] @@ -8150,7 +8150,7 @@ void DataArrayInt::setPartOfValues1(const DataArrayInt *a, int bgTuples, int end * \throw If \a this is not allocated. * \throw If parameters specifying tuples and components to assign to, do not give a * non-empty range of increasing indices or indices are out of a valid range - * for \this array. + * for \c this array. * * \if ENABLE_EXAMPLES * \ref py_mcdataarrayint_setpartofvaluessimple1 "Here is a Python example". @@ -8342,7 +8342,7 @@ void DataArrayInt::setPartOfValuesSimple2(int a, const int *bgTuples, const int * defined by (bgComp,endComp,stepComp). * \throw If parameters specifying components to assign to, do not give a * non-empty range of increasing indices or indices are out of a valid range - * for \this array. + * for \c this array. * * \if ENABLE_EXAMPLES * \ref py_mcdataarrayint_setpartofvalues3 "Here is a Python example". @@ -8416,7 +8416,7 @@ void DataArrayInt::setPartOfValues3(const DataArrayInt *a, const int *bgTuples, * \a this array. * \throw If parameters specifying components to assign to, do not give a * non-empty range of increasing indices or indices are out of a valid range - * for \this array. + * for \c this array. * * \if ENABLE_EXAMPLES * \ref py_mcdataarrayint_setpartofvaluessimple3 "Here is a Python example". diff --git a/src/MEDCoupling/MEDCouplingMemArrayChar.cxx b/src/MEDCoupling/MEDCouplingMemArrayChar.cxx index e3da0c959..59d29b2aa 100644 --- a/src/MEDCoupling/MEDCouplingMemArrayChar.cxx +++ b/src/MEDCoupling/MEDCouplingMemArrayChar.cxx @@ -380,7 +380,7 @@ DataArrayInt *DataArrayChar::convertToIntArr() const * permuted so that \c new[ \a old2New[ i ]] = \c old[ i ]. Number of tuples remains * the same as in \this one. * If a permutation reduction is needed, substr() or selectByTupleId() should be used. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] old2New - C array of length equal to \a this->getNumberOfTuples() * giving a new position for i-th old value. */ @@ -402,7 +402,7 @@ void DataArrayChar::renumberInPlace(const int *old2New) * Permutes values of \a this array as required by \a new2Old array. The values are * permuted so that \c new[ i ] = \c old[ \a new2Old[ i ]]. Number of tuples remains * the same as in \this one. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] new2Old - C array of length equal to \a this->getNumberOfTuples() * giving a previous position of i-th new value. */ @@ -425,7 +425,7 @@ void DataArrayChar::renumberInPlaceR(const int *new2Old) * The values are permuted so that \c new[ \a old2New[ i ]] = \c old[ i ]. * Number of tuples in the result array remains the same as in \this one. * If a permutation reduction is needed, renumberAndReduce() should be used. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] old2New - C array of length equal to \a this->getNumberOfTuples() * giving a new position for i-th old value. * \return DataArrayChar * - the new instance of DataArrayChar that the caller @@ -453,7 +453,7 @@ DataArrayChar *DataArrayChar::renumber(const int *old2New) const * The values are permuted so that \c new[ i ] = \c old[ \a new2Old[ i ]]. Number of * tuples in the result array remains the same as in \this one. * If a permutation reduction is needed, substr() or selectByTupleId() should be used. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] new2Old - C array of length equal to \a this->getNumberOfTuples() * giving a previous position of i-th new value. * \return DataArrayChar * - the new instance of DataArrayChar that the caller @@ -481,7 +481,7 @@ DataArrayChar *DataArrayChar::renumberR(const int *new2Old) const * The values are permuted so that \c new[ \a old2New[ i ]] = \c old[ i ] for all * \a old2New[ i ] >= 0. In other words every i-th tuple in \a this array, for which * \a old2New[ i ] is negative, is missing from the result array. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] old2New - C array of length equal to \a this->getNumberOfTuples() * giving a new position for i-th old tuple and giving negative position for * for i-th old tuple that should be omitted. @@ -514,7 +514,7 @@ DataArrayChar *DataArrayChar::renumberAndReduce(const int *old2New, int newNbOfT * The values are permuted so that \c new[ i ] = \c old[ \a new2OldBg[ i ]]. * This method is equivalent to renumberAndReduce() except that convention in input is * \c new2old and \b not \c old2new. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] new2OldBg - pointer to the beginning of a permutation array that gives a * tuple index in \a this array to fill the i-th tuple in the new array. * \param [in] new2OldEnd - specifies the end of the permutation array that starts at @@ -537,7 +537,7 @@ DataArrayChar *DataArrayChar::selectByTupleId(const int *new2OldBg, const int *n * \c new2old and \b not \c old2new. * This method is equivalent to selectByTupleId() except that it prevents coping data * from behind the end of \a this array. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] new2OldBg - pointer to the beginning of a permutation array that gives a * tuple index in \a this array to fill the i-th tuple in the new array. * \param [in] new2OldEnd - specifies the end of the permutation array that starts at @@ -574,7 +574,7 @@ DataArrayChar *DataArrayChar::selectByTupleIdSafe(const int *new2OldBg, const in * command \c range( \a bg, \a end2, \a step ). * This method is equivalent to selectByTupleIdSafe() except that the input array is * not constructed explicitly. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] bg - index of the first tuple to copy from \a this array. * \param [in] end2 - index of the tuple before which the tuples to copy are located. * \param [in] step - index increment to get index of the next tuple to copy. @@ -1417,7 +1417,7 @@ void DataArrayChar::setContigPartOfSelectedValues2(int tupleIdStart, const DataA /*! * Returns a shorten copy of \a this array. The new DataArrayChar contains ranges * of tuples specified by \a ranges parameter. - * For more info on renumbering see \ref MEDCouplingArrayRenumbering. + * For more info on renumbering see \ref numbering. * \param [in] ranges - std::vector of std::pair's each of which defines a range * of tuples in [\c begin,\c end) format. * \return DataArrayChar * - the new instance of DataArrayChar that the caller diff --git a/src/MEDCoupling/MEDCouplingPointSet.cxx b/src/MEDCoupling/MEDCouplingPointSet.cxx index 141154de3..4793b7993 100644 --- a/src/MEDCoupling/MEDCouplingPointSet.cxx +++ b/src/MEDCoupling/MEDCouplingPointSet.cxx @@ -256,7 +256,7 @@ void MEDCouplingPointSet::getCoordinatesOfNode(int nodeId, std::vector& * \param [out] areNodesMerged - is set to \a true if any coincident nodes found. * \param [out] newNbOfNodes - returns number of unique nodes. * \return DataArrayInt * - the permutation array in "Old to New" mode. For more - * info on "Old to New" mode see \ref MEDCouplingArrayRenumbering. The caller + * info on "Old to New" mode see \ref numbering. The caller * is to delete this array using decrRef() as it is no more needed. * \throw If the coordinates array is not set. */ @@ -274,8 +274,7 @@ DataArrayInt *MEDCouplingPointSet::buildPermArrayForMergeNode(double precision, /*! * Finds nodes coincident within \a prec tolerance. - * Ids of coincident nodes are stored in output arrays. - * A pair of arrays (\a comm, \a commIndex) is called "Surjective Format 2". + * Ids of coincident nodes are stored in output arrays in the \ref numbering-indirect format. * \param [in] prec - minimal absolute distance (using infinite norm) between two nodes at which they are * considered not coincident. * \param [in] limitNodeId - limit node id. If all nodes within a group of coincident @@ -286,7 +285,7 @@ DataArrayInt *MEDCouplingPointSet::buildPermArrayForMergeNode(double precision, * \a comm->getNumberOfTuples() == \a commIndex->back(). The caller * is to delete this array using decrRef() as it is no more needed. * \param [out] commIndex - the array dividing all ids stored in \a comm into - * groups of (ids of) coincident nodes. Its every value is a tuple + * groups of (ids of) coincident nodes (\ref numbering-indirect). Its every value is a tuple * index where a next group of nodes begins. For example the second * group of nodes in \a comm is described by following range of indices: * [ \a commIndex[1], \a commIndex[2] ). \a commIndex->getNumberOfTuples()-1 @@ -340,11 +339,11 @@ DataArrayInt *MEDCouplingPointSet::getNodeIdsNearPoint(const double *pos, double * parameter. * \param [in] eps - the lowest distance between (using infinite norm) a point and a node at which the node is * not returned by this method. - * \param [out] c - array returning ids of nodes located closer than \a eps to the + * \param [out] c - array (\ref numbering-indirect) returning ids of nodes located closer than \a eps to the * given points. The caller * is to delete this array using decrRef() as it is no more needed. * \param [out] cI - for each i-th given point, the array specifies tuples of \a c - * holding ids of nodes close to the i-th point.
The i-th value of \a cI is an + * holding ids of nodes close to the i-th point (\ref numbering-indirect).
The i-th value of \a cI is an * index of tuple of \a c holding id of a first (if any) node close to the * i-th given point. Difference between the i-th and (i+1)-th value of \a cI * (i.e. \a cI[ i+1 ] - \a cI[ i ]) defines number of nodes close to the i-th @@ -369,8 +368,8 @@ void MEDCouplingPointSet::getNodeIdsNearPoints(const double *pos, int nbOfPoints } /*! - * @param comm in param in the same format than one returned by findCommonNodes method. - * @param commI in param in the same format than one returned by findCommonNodes method. + * @param comm in param in the same format than one returned by findCommonNodes method (\ref numbering-indirect). + * @param commI in param in the same format than one returned by findCommonNodes method (\ref numbering-indirect). * @return the old to new correspondance array. */ DataArrayInt *MEDCouplingPointSet::buildNewNumberingFromCommonNodesFormat(const DataArrayInt *comm, const DataArrayInt *commIndex, @@ -388,7 +387,7 @@ DataArrayInt *MEDCouplingPointSet::buildNewNumberingFromCommonNodesFormat(const * array is modified accordingly. * \param [in] newNodeNumbers - a permutation array, of length \a * this->getNumberOfNodes(), in "Old to New" mode. - * See \ref MEDCouplingArrayRenumbering for more info on renumbering modes. + * See \ref numbering for more info on renumbering modes. * \param [in] newNbOfNodes - number of nodes remaining after renumbering. * \throw If the coordinates array is not set. * \throw If the nodal connectivity of cells is not defined. @@ -415,7 +414,7 @@ void MEDCouplingPointSet::renumberNodes(const int *newNodeNumbers, int newNbOfNo * of merged nodes (whose new ids coincide) is changed to be at their barycenter. * \param [in] newNodeNumbers - a permutation array, of length \a * this->getNumberOfNodes(), in "Old to New" mode. - * See \ref MEDCouplingArrayRenumbering for more info on renumbering modes. + * See \ref numbering for more info on renumbering modes. * \param [in] newNbOfNodes - number of nodes remaining after renumbering, which is * actually one more than the maximal id in \a newNodeNumbers. * \throw If the coordinates array is not set. @@ -484,10 +483,12 @@ void MEDCouplingPointSet::zipCoords() traducer->decrRef(); } +/*! \cond HIDDEN_ITEMS */ struct MEDCouplingCompAbs { bool operator()(double x, double y) { return std::abs(x)getMeshDimension(), that bound cells of \a this mesh. In addition arrays * describing correspondence between cells of \a this and the result meshes are - * returned. The arrays \a desc and \a descIndx describe the descending connectivity, + * returned. The arrays \a desc and \a descIndx (\ref numbering-indirect) describe the descending connectivity, * i.e. enumerate cells of the result mesh bounding each cell of \a this mesh. The - * arrays \a revDesc and \a revDescIndx describe the reverse descending connectivity, + * arrays \a revDesc and \a revDescIndx (\ref numbering-indirect) describe the reverse descending connectivity, * i.e. enumerate cells of \a this mesh bounded by each cell of the result mesh. * \warning For speed reasons, this method does not check if node ids in the nodal * connectivity correspond to the size of node coordinates array. @@ -761,7 +761,7 @@ MEDCouplingUMesh *MEDCouplingUMesh::explode3DMeshTo1D(DataArrayInt *desc, DataAr * Creates a new MEDCouplingUMesh containing cells, of dimension one less than \a * this->getMeshDimension(), that bound cells of \a this mesh. In * addition arrays describing correspondence between cells of \a this and the result - * meshes are returned. The arrays \a desc and \a descIndx describe the descending + * meshes are returned. The arrays \a desc and \a descIndx (\ref numbering-indirect) describe the descending * connectivity, i.e. enumerate cells of the result mesh bounding each cell of \a this * mesh. This method differs from buildDescendingConnectivity() in that apart * from cell ids, \a desc returns mutual orientation of cells in \a this and the @@ -769,7 +769,7 @@ MEDCouplingUMesh *MEDCouplingUMesh::explode3DMeshTo1D(DataArrayInt *desc, DataAr * of two meshes is same, and a negative id means a reverse order of nodes. Since a * cell with id #0 can't be negative, the array \a desc returns ids in FORTRAN mode, * i.e. cell ids are one-based. - * Arrays \a revDesc and \a revDescIndx describe the reverse descending connectivity, + * Arrays \a revDesc and \a revDescIndx (\ref numbering-indirect) describe the reverse descending connectivity, * i.e. enumerate cells of \a this mesh bounded by each cell of the result mesh. * \warning For speed reasons, this method does not check if node ids in the nodal * connectivity correspond to the size of node coordinates array. @@ -815,13 +815,19 @@ MEDCouplingUMesh *MEDCouplingUMesh::buildDescendingConnectivity2(DataArrayInt *d /*! * \b WARNING this method do the assumption that connectivity lies on the coordinates set. - * For speed reasons no check of this will be done. This method calls MEDCouplingUMesh::buildDescendingConnectivity to compute the result. - * This method lists cell by cell in \b this which are its neighbors. To compute the result only connectivities are considered. + * For speed reasons no check of this will be done. This method calls + * MEDCouplingUMesh::buildDescendingConnectivity to compute the result. + * This method lists cell by cell in \b this which are its neighbors. To compute the result + * only connectivities are considered. * The neighbor cells of cell having id 'cellId' are neighbors[neighborsIndx[cellId]:neighborsIndx[cellId+1]]. + * The format of return is hence \ref numbering-indirect. * - * \param [out] neighbors is an array storing all the neighbors of all cells in \b this. This array is newly allocated and should be dealt by the caller. \b neighborsIndx 2nd output - * parameter allows to select the right part in this array. The number of tuples is equal to the last values in \b neighborsIndx. - * \param [out] neighborsIndx is an array of size this->getNumberOfCells()+1 newly allocated and should be dealt by the caller. This arrays allow to use the first output parameter \b neighbors. + * \param [out] neighbors is an array storing all the neighbors of all cells in \b this. This array is newly + * allocated and should be dealt by the caller. \b neighborsIndx 2nd output + * parameter allows to select the right part in this array (\ref numbering-indirect). The number of tuples + * is equal to the last values in \b neighborsIndx. + * \param [out] neighborsIndx is an array of size this->getNumberOfCells()+1 newly allocated and should be + * dealt by the caller. This arrays allow to use the first output parameter \b neighbors (\ref numbering-indirect). */ void MEDCouplingUMesh::computeNeighborsOfCells(DataArrayInt *&neighbors, DataArrayInt *&neighborsIndx) const { @@ -835,17 +841,21 @@ void MEDCouplingUMesh::computeNeighborsOfCells(DataArrayInt *&neighbors, DataArr } /*! - * This method is called by MEDCouplingUMesh::computeNeighborsOfCells. This methods performs the algorithm of MEDCouplingUMesh::computeNeighborsOfCells. - * This method is useful for users that want to reduce along a criterion the set of neighbours cell. This is typically the case to extract a set a neighbours, + * This method is called by MEDCouplingUMesh::computeNeighborsOfCells. This methods performs the algorithm + * of MEDCouplingUMesh::computeNeighborsOfCells. + * This method is useful for users that want to reduce along a criterion the set of neighbours cell. This is + * typically the case to extract a set a neighbours, * excluding a set of meshdim-1 cells in input descending connectivity. - * Typically \b desc, \b descIndx, \b revDesc and \b revDescIndx input params are the result of MEDCouplingUMesh::buildDescendingConnectivity. - * This method lists cell by cell in \b this which are its neighbors. To compute the result only connectivities are considered. + * Typically \b desc, \b descIndx, \b revDesc and \b revDescIndx (\ref numbering-indirect) input params are + * the result of MEDCouplingUMesh::buildDescendingConnectivity. + * This method lists cell by cell in \b this which are its neighbors. To compute the result only connectivities + * are considered. * The neighbor cells of cell having id 'cellId' are neighbors[neighborsIndx[cellId]:neighborsIndx[cellId+1]]. * * \param [in] desc descending connectivity array. - * \param [in] descIndx descending connectivity index array used to walk through \b desc. + * \param [in] descIndx descending connectivity index array used to walk through \b desc (\ref numbering-indirect). * \param [in] revDesc reverse descending connectivity array. - * \param [in] revDescIndx reverse descending connectivity index array used to walk through \b revDesc. + * \param [in] revDescIndx reverse descending connectivity index array used to walk through \b revDesc (\ref numbering-indirect). * \param [out] neighbors is an array storing all the neighbors of all cells in \b this. This array is newly allocated and should be dealt by the caller. \b neighborsIndx 2nd output * parameter allows to select the right part in this array. The number of tuples is equal to the last values in \b neighborsIndx. * \param [out] neighborsIndx is an array of size this->getNumberOfCells()+1 newly allocated and should be dealt by the caller. This arrays allow to use the first output parameter \b neighbors. @@ -882,13 +892,18 @@ void MEDCouplingUMesh::ComputeNeighborsOfCellsAdv(const DataArrayInt *desc, cons /*! * \b WARNING this method do the assumption that connectivity lies on the coordinates set. - * For speed reasons no check of this will be done. This method calls MEDCouplingUMesh::buildDescendingConnectivity to compute the result. - * This method lists node by node in \b this which are its neighbors. To compute the result only connectivities are considered. + * For speed reasons no check of this will be done. This method calls + * MEDCouplingUMesh::buildDescendingConnectivity to compute the result. + * This method lists node by node in \b this which are its neighbors. To compute the result + * only connectivities are considered. * The neighbor nodes of node having id 'nodeId' are neighbors[neighborsIndx[cellId]:neighborsIndx[cellId+1]]. * - * \param [out] neighbors is an array storing all the neighbors of all nodes in \b this. This array is newly allocated and should be dealt by the caller. \b neighborsIndx 2nd output - * parameter allows to select the right part in this array. The number of tuples is equal to the last values in \b neighborsIndx. - * \param [out] neighborsIndx is an array of size this->getNumberOfCells()+1 newly allocated and should be dealt by the caller. This arrays allow to use the first output parameter \b neighbors. + * \param [out] neighbors is an array storing all the neighbors of all nodes in \b this. This array + * is newly allocated and should be dealt by the caller. \b neighborsIndx 2nd output + * parameter allows to select the right part in this array (\ref numbering-indirect). + * The number of tuples is equal to the last values in \b neighborsIndx. + * \param [out] neighborsIdx is an array of size this->getNumberOfCells()+1 newly allocated and should + * be dealt by the caller. This arrays allow to use the first output parameter \b neighbors. */ void MEDCouplingUMesh::computeNeighborsOfNodes(DataArrayInt *&neighbors, DataArrayInt *&neighborsIdx) const { @@ -1794,8 +1809,9 @@ bool MEDCouplingUMesh::AreCellsEqualInPool(const std::vector& candidates, i } /*! - * This method find cells that are cells equal (regarding \a compType) in \a this. The comparison is specified by \a compType. - * This method keeps the coordiantes of \a this. This method is time consuming and is called + * This method find cells that are equal (regarding \a compType) in \a this. The comparison is specified + * by \a compType. + * This method keeps the coordiantes of \a this. This method is time consuming. * * \param [in] compType input specifying the technique used to compare cells each other. * - 0 : exactly. A cell is detected to be the same if and only if the connectivity is exactly the same without permutation and types same too. This is the strongest policy. @@ -1804,8 +1820,8 @@ bool MEDCouplingUMesh::AreCellsEqualInPool(const std::vector& candidates, i * - 2 : nodal. cell1 and cell2 are equal if and only if cell1 and cell2 have same type and have the same nodes constituting connectivity. This is the laziest policy. This policy * can be used for users not sensitive to orientation of cell * \param [in] startCellId specifies the cellId starting from which the equality computation will be carried out. By default it is 0, which it means that all cells in \a this will be scanned. - * \param [out] commonCells - * \param [out] commonCellsI + * \param [out] commonCellsArr common cells ids (\ref numbering-indirect) + * \param [out] commonCellsIArr common cells ids (\ref numbering-indirect) * \return the correspondance array old to new in a newly allocated array. * */ @@ -1948,6 +1964,7 @@ bool MEDCouplingUMesh::areCellsIncludedIn(const MEDCouplingUMesh *other, int com * The main difference is that this method is not expected to throw exception. * This method has two outputs : * + * \param other other mesh * \param arr is an output parameter that returns a \b newly created instance. This array is of size 'other->getNumberOfCells()'. * \return If \a other is fully included in 'this 'true is returned. If not false is returned. */ @@ -2004,6 +2021,9 @@ MEDCouplingPointSet *MEDCouplingUMesh::mergeMyselfWithOnSameCoords(const MEDCoup * By default coordinates are kept. This method is close to MEDCouplingUMesh::buildPartOfMySelf except that here input * cellIds is not given explicitely but by a range python like. * + * \param start + * \param end + * \param step * \param keepCoords that specifies if you want or not to keep coords as this or zip it (see ParaMEDMEM::MEDCouplingUMesh::zipCoords). If true zipCoords is \b NOT called, if false, zipCoords is called. * \return a newly allocated * @@ -2071,8 +2091,8 @@ MEDCouplingPointSet *MEDCouplingUMesh::buildPartOfMySelf(const int *begin, const * Size of [ \b cellIdsBg, \b cellIdsEnd ) ) must be equal to the number of cells of otherOnSameCoordsThanThis. * The number of cells of \b this will remain the same with this method. * - * \param [in] begin begin of cell ids (included) of cells in this to assign - * \param [in] end end of cell ids (excluded) of cells in this to assign + * \param [in] cellIdsBg begin of cell ids (included) of cells in this to assign + * \param [in] cellIdsEnd end of cell ids (excluded) of cells in this to assign * \param [in] otherOnSameCoordsThanThis an another mesh with same meshdimension than \b this with exactly the same number of cells than cell ids list in [\b cellIdsBg, \b cellIdsEnd ). * Coordinate pointer of \b this and those of \b otherOnSameCoordsThanThis must be the same */ @@ -2337,6 +2357,7 @@ DataArrayInt *MEDCouplingUMesh::findCellIdsOnBoundary() const * \throw if \b otherDimM1OnSameCoords is not part of constituent of \b this, or if coordinate pointer of \b this and \b otherDimM1OnSameCoords * are not same, or if this->getMeshDimension()-1!=otherDimM1OnSameCoords.getMeshDimension() * + * \param [in] otherDimM1OnSameCoords * \param [out] cellIdsRk0 a newly allocated array containing the cell ids of s0 (which are cell ids of \b this) in the above algorithm. * \param [out] cellIdsRk1 a newly allocated array containing the cell ids of s1 \b indexed into the \b cellIdsRk0 subset. To get the absolute ids of s1, simply invoke * cellIdsRk1->transformWithIndArr(cellIdsRk0->begin(),cellIdsRk0->end()); @@ -2607,7 +2628,7 @@ void MEDCouplingUMesh::renumberNodesInConn(const INTERP_KERNEL::HashMap * \warning This method performs no check of validity of new ids. **Use it with care !** * \param [in] newNodeNumbersO2N - a permutation array, of length \a * this->getNumberOfNodes(), in "Old to New" mode. - * See \ref MEDCouplingArrayRenumbering for more info on renumbering modes. + * See \ref numbering for more info on renumbering modes. * \throw If the nodal connectivity of cells is not defined. * * \if ENABLE_EXAMPLES @@ -2715,6 +2736,7 @@ void MEDCouplingUMesh::duplicateNodesInConn(const int *nodeIdsToDuplicateBg, con * should be contained in[0;this->getNumberOfCells()). * * \param [in] old2NewBg is expected to be a dynamically allocated pointer of size at least equal to this->getNumberOfCells() + * \param check */ void MEDCouplingUMesh::renumberCells(const int *old2NewBg, bool check) { @@ -3141,7 +3163,8 @@ std::set MEDCouplingUMesh::getTypesOfPart(con } /*! - * Defines the nodal connectivity using given connectivity arrays. Optionally updates + * Defines the nodal connectivity using given connectivity arrays in \ref numbering-indirect format. + * Optionally updates * a set of types of cells constituting \a this mesh. * This method is for advanced users having prepared their connectivity before. For * more info on using this method see \ref MEDCouplingUMeshAdvBuild. @@ -3226,7 +3249,7 @@ int MEDCouplingUMesh::getNumberOfCells() const /*! * Returns a dimension of \a this mesh, i.e. a dimension of cells constituting \a this - * mesh. For more info see \ref MEDCouplingMeshesPage. + * mesh. For more info see \ref meshes. * \return int - the dimension of \a this mesh. * \throw If the mesh dimension is not defined using setMeshDimension(). */ @@ -3273,6 +3296,9 @@ bool MEDCouplingUMesh::isEmptyMesh(const std::vector& tinyInfo) const /*! * Second step of serialization process. * \param tinyInfo must be equal to the result given by getTinySerializationInformation method. + * \param a1 + * \param a2 + * \param littleStrings */ void MEDCouplingUMesh::resizeForUnserialization(const std::vector& tinyInfo, DataArrayInt *a1, DataArrayDouble *a2, std::vector& littleStrings) const { @@ -6203,7 +6229,7 @@ DataArrayInt *MEDCouplingUMesh::findAndCorrectBadOriented3DExtrudedCells() * This method works only if \a this is a 3D mesh, that is to say a mesh with mesh dimension 3 and a space dimension 3. * This method makes the hypothesis that \a this a coherent that is to say MEDCouplingUMesh::checkCoherency2 should throw no exception. * - * \ret a newly allocated int array with one components containing cell ids renumbered to fit the convention of MED (MED file and MEDCoupling) + * \return a newly allocated int array with one components containing cell ids renumbered to fit the convention of MED (MED file and MEDCoupling) * \sa MEDCouplingUMesh::orientCorrectlyPolyhedrons, */ DataArrayInt *MEDCouplingUMesh::findAndCorrectBadOriented3DCells() @@ -6920,11 +6946,12 @@ DataArrayInt *MEDCouplingUMesh::checkTypeConsistencyAndContig(const std::vector< } /*! - * This method makes the hypothesis that \at this is sorted by type. If not an exception will be thrown. + * This method makes the hypothesis that \a this is sorted by type. If not an exception will be thrown. * This method is the opposite of MEDCouplingUMesh::checkTypeConsistencyAndContig method. Given a list of cells in \a profile it returns a list of sub-profiles sorted by geo type. * The result is put in the array \a idsPerType. In the returned parameter \a code, foreach i \a code[3*i+2] refers (if different from -1) to a location into the \a idsPerType. * This method has 1 input \a profile and 3 outputs \a code \a idsInPflPerType and \a idsPerType. * + * \param [in] profile * \param [out] code is a vector of size 3*n where n is the number of different geometric type in \a this \b reduced to the profile \a profile. \a code has exactly the same semantic than in MEDCouplingUMesh::checkTypeConsistencyAndContig method. * \param [out] idsInPflPerType is a vector of size of different geometric type in the subpart defined by \a profile of \a this ( equal to \a code.size()/3). For each i, * \a idsInPflPerType[i] stores the tuple ids in \a profile that correspond to the geometric type code[3*i+0] @@ -7340,6 +7367,12 @@ DataArrayInt *MEDCouplingUMesh::convertNodalConnectivityToStaticGeoTypeMesh() co return connOut.retn(); } +/*! + * Convert the nodal connectivity of the mesh so that all the cells are of dynamic types (polygon or quadratic + * polygon). This returns the corresponding new nodal connectivity in \ref numbering-indirect format. + * \param nodalConn + * \param nodalConnI + */ void MEDCouplingUMesh::convertNodalConnectivityToDynamicGeoTypeMesh(DataArrayInt *&nodalConn, DataArrayInt *&nodalConnIndex) const { static const char msg0[]="MEDCouplingUMesh::convertNodalConnectivityToDynamicGeoTypeMesh : nodal connectivity in this are invalid ! Call checkCoherency2 !"; @@ -7934,7 +7967,7 @@ MEDCouplingUMesh *MEDCouplingUMesh::MergeUMeshesOnSameCoords(const MEDCouplingUM * dimension and sharing the node coordinates array. * All cells of the *i*-th mesh precede all cells of the * (*i*+1)-th mesh within the result mesh. - * \param [in] a - a vector of meshes (MEDCouplingUMesh) to concatenate. + * \param [in] meshes - a vector of meshes (MEDCouplingUMesh) to concatenate. * \return MEDCouplingUMesh * - the result mesh. It is a new instance of * MEDCouplingUMesh. The caller is to delete this mesh using decrRef() as it * is no more needed. @@ -10115,10 +10148,14 @@ bool IKGeo2DInternalMapper(const INTERP_KERNEL::ComposedEdge& c, const std::map< /// @endcond /** - * This method split some of edges of 2D cells in \a this. The edges to be split are specified in \a subNodesInSeg and in \a subNodesInSegI using index storage mode. - * To do the work this method can optionally needs information about middle of subedges for quadratic cases if a minimal creation of new nodes is wanted. - * So this method try to reduce at most the number of new nodes. The only case that can lead this method to add nodes if a SEG3 is split without information of middle. - * \b WARNING : is returned value is different from 0 a call to MEDCouplingUMesh::mergeNodes is necessary to avoid to have a non conform mesh. + * This method split some of edges of 2D cells in \a this. The edges to be split are specified in \a subNodesInSeg + * and in \a subNodesInSegI using \ref numbering-indirect storage mode. + * To do the work this method can optionally needs information about middle of subedges for quadratic cases if + * a minimal creation of new nodes is wanted. + * So this method try to reduce at most the number of new nodes. The only case that can lead this method to add + * nodes if a SEG3 is split without information of middle. + * \b WARNING : is returned value is different from 0 a call to MEDCouplingUMesh::mergeNodes is necessary to + * avoid to have a non conform mesh. * * \return int - the number of new nodes created (in most of cases 0). * @@ -10796,10 +10833,11 @@ bool MEDCouplingUMesh::RemoveIdsFromIndexedArrays(const int *idsToRemoveBg, cons } /*! - * This method works on a pair input (\b arrIn, \b arrIndxIn) where \b arrIn indexes is in \b arrIndxIn. + * This method works on a pair input (\b arrIn, \b arrIndxIn) where \b arrIn indexes is in \b arrIndxIn + * (\ref numbering-indirect). * This method returns the result of the extraction ( specified by a set of ids in [\b idsOfSelectBg , \b idsOfSelectEnd ) ). * The selection of extraction is done standardly in new2old format. - * This method returns indexed arrays using 2 arrays (arrOut,arrIndexOut). + * This method returns indexed arrays (\ref numbering-indirect) using 2 arrays (arrOut,arrIndexOut). * * \param [in] idsOfSelectBg begin of set of ids of the input extraction (included) * \param [in] idsOfSelectEnd end of set of ids of the input extraction (excluded) @@ -10868,13 +10906,15 @@ void MEDCouplingUMesh::ExtractFromIndexedArrays(const int *idsOfSelectBg, const } /*! - * This method works on a pair input (\b arrIn, \b arrIndxIn) where \b arrIn indexes is in \b arrIndxIn. + * This method works on a pair input (\b arrIn, \b arrIndxIn) where \b arrIn indexes is in \b arrIndxIn + * (\ref numbering-indirect). * This method returns the result of the extraction ( specified by a set of ids with a slice given by \a idsOfSelectStart, \a idsOfSelectStop and \a idsOfSelectStep ). * The selection of extraction is done standardly in new2old format. - * This method returns indexed arrays using 2 arrays (arrOut,arrIndexOut). + * This method returns indexed arrays (\ref numbering-indirect) using 2 arrays (arrOut,arrIndexOut). * - * \param [in] idsOfSelectBg begin of set of ids of the input extraction (included) - * \param [in] idsOfSelectEnd end of set of ids of the input extraction (excluded) + * \param [in] idsOfSelectStart begin of set of ids of the input extraction (included) + * \param [in] idsOfSelectStop end of set of ids of the input extraction (excluded) + * \param [in] idsOfSelectStep * \param [in] arrIn arr origin array from which the extraction will be done. * \param [in] arrIndxIn is the input index array allowing to walk into \b arrIn * \param [out] arrOut the resulting array @@ -11548,7 +11588,7 @@ void EnterTheResultOf2DCellEnd(const INTERP_KERNEL::Edge *e, int start, int stp, } } -/// @cond INTERNAL +/// @endcond /*! * Returns true if a colinearization has been found in the given cell. If false is returned the content pushed in \a newConnOfCell is equal to [ \a connBg , \a connEnd ) . diff --git a/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py b/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py index 42390a09d..3ebd2170d 100644 --- a/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py +++ b/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py @@ -28,8 +28,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): #! [PySnippet_MEDCouplingFieldDouble_WriteVTK_1] # mesh coords = [0.,2.,4.] - coordsArr=DataArrayDouble.New(coords,3,1) - mesh=MEDCouplingCMesh.New() + coordsArr=DataArrayDouble(coords,3,1) + mesh=MEDCouplingCMesh() mesh.setCoords(coordsArr,coordsArr) # mesh becomes a 2D one # 3 fields (lying on the same mesh!) @@ -43,7 +43,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): fileName = "testExample_MEDCouplingFieldDouble_WriteVTK" fs = [ field1, field2, field3 ] # field series writtenFileName=MEDCouplingFieldDouble.WriteVTK( fileName, fs ) - print "The file name with correct extension is : %s"%(writtenFileName) + print "The file name with correct extension is : %s"%(writtenFileName) #! [PySnippet_MEDCouplingFieldDouble_WriteVTK_1] import os os.remove( writtenFileName ) @@ -58,13 +58,13 @@ class MEDCouplingBasicsTest(unittest.TestCase): valsMin = [0.,0., 4.,4.] # expected min field # field 1 - valsArr1=DataArrayDouble.New(vals1,2,2) # 2 tuples per 2 components - field1 = MEDCouplingFieldDouble.New( ON_NODES ) + valsArr1=DataArrayDouble(vals1,2,2) # 2 tuples per 2 components + field1 = MEDCouplingFieldDouble( ON_NODES ) field1.setArray( valsArr1 ) # field 2 - valsArr2=DataArrayDouble.New(vals2,2,2) # 2 tuples per 2 components - field2 = MEDCouplingFieldDouble.New( ON_NODES ) + valsArr2=DataArrayDouble(vals2,2,2) # 2 tuples per 2 components + field2 = MEDCouplingFieldDouble( ON_NODES ) field2.setArray( valsArr2 ) # max field @@ -80,8 +80,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): #! [PySnippet_MEDCouplingFieldDouble_MergeFields_1] # mesh 1 coords = [0.,2.,4.] - coordsArr=DataArrayDouble.New(coords,3,1) - mesh1=MEDCouplingCMesh.New() + coordsArr=DataArrayDouble(coords,3,1) + mesh1=MEDCouplingCMesh() mesh1.setCoords(coordsArr) # field 1 field1 = mesh1.fillFromAnalytic( ON_CELLS, 1, "x") @@ -103,15 +103,15 @@ class MEDCouplingBasicsTest(unittest.TestCase): coords1=[0.,1.,2.,3.] coords2=[2.,1.,0.,3.] #0 <==> #2 # mesh 1 - mesh1=MEDCouplingUMesh.New(); - coordsArr=DataArrayDouble.New(coords1, 4, 1); - mesh1.setCoords(coordsArr); - mesh1.setMeshDimension(0); - mesh1.allocateCells(0); - mesh1.finishInsertingCells(); + mesh1=MEDCouplingUMesh() + coordsArr=DataArrayDouble(coords1, 4, 1) + mesh1.setCoords(coordsArr) + mesh1.setMeshDimension(0) + mesh1.allocateCells(0) + mesh1.finishInsertingCells() # mesh 2 - mesh2=mesh1.deepCpy(); - mesh2.getCoords().setValues(coords2, 4, 1); + mesh2=mesh1.deepCpy() + mesh2.getCoords().setValues(coords2, 4, 1) #! [PySnippet_MEDCouplingFieldDouble_substractInPlaceDM_1] #! [PySnippet_MEDCouplingFieldDouble_substractInPlaceDM_2] field1 = mesh1.fillFromAnalytic(ON_NODES,1,"x") # field1 values == coords1 @@ -130,15 +130,15 @@ class MEDCouplingBasicsTest(unittest.TestCase): coords1=[0.,1.,2.,3.] coords2=[2.,1.,0.,3.] #0 <==> #2 # mesh 1 - mesh1=MEDCouplingUMesh.New(); - coordsArr=DataArrayDouble.New(coords1, 4, 1); - mesh1.setCoords(coordsArr); - mesh1.setMeshDimension(0); - mesh1.allocateCells(0); - mesh1.finishInsertingCells(); + mesh1=MEDCouplingUMesh() + coordsArr=DataArrayDouble(coords1, 4, 1) + mesh1.setCoords(coordsArr) + mesh1.setMeshDimension(0) + mesh1.allocateCells(0) + mesh1.finishInsertingCells() # mesh 2 - mesh2=mesh1.deepCpy(); - mesh2.getCoords().setValues(coords2, 4, 1); + mesh2=mesh1.deepCpy() + mesh2.getCoords().setValues(coords2, 4, 1) #! [PySnippet_MEDCouplingFieldDouble_changeUnderlyingMesh_1] #! [PySnippet_MEDCouplingFieldDouble_changeUnderlyingMesh_2] field = mesh1.fillFromAnalytic(ON_NODES,1,"x") # field values == coords1 @@ -151,8 +151,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_applyFunc_same_nb_comp(self): #! [PySnippet_MEDCouplingFieldDouble_applyFunc_same_nb_comp_1] v = [1.,2., 3.,4.] - array = DataArrayDouble.New( v, 2, 2 ) # 2 tuples per 2 components - field = MEDCouplingFieldDouble.New( ON_CELLS ) + array = DataArrayDouble( v, 2, 2 ) # 2 tuples per 2 components + field = MEDCouplingFieldDouble( ON_CELLS ) field.setArray( array ) func = "IVec * v + JVec * w*w + 10" field.applyFunc( 2, func ) @@ -171,8 +171,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): #! [PySnippet_MEDCouplingFieldDouble_applyFunc3_1] # create a 2D vector field values = [1.,1., 2.,1.] - array = DataArrayDouble.New( values, 2, 2 ) # 2 tuples per 2 components - field = MEDCouplingFieldDouble.New( ON_CELLS ) + array = DataArrayDouble( values, 2, 2 ) # 2 tuples per 2 components + field = MEDCouplingFieldDouble( ON_CELLS ) field.setArray( array ) # transform the field to a 3D vector field func = "IVec * b + JVec * a + KVec * sqrt( a*a + b*b ) + 10" @@ -193,10 +193,10 @@ class MEDCouplingBasicsTest(unittest.TestCase): #! [PySnippet_MEDCouplingFieldDouble_applyFunc2_1] # create a 2D vector field values = [1.,1., 2.,1.] - array = DataArrayDouble.New( values, 2, 2 ) # 2 tuples per 2 components + array = DataArrayDouble( values, 2, 2 ) # 2 tuples per 2 components array.setInfoOnComponent(0,"a") # name used to refer to X component within a function array.setInfoOnComponent(1,"b") # name used to refer to Y component within a function - field = MEDCouplingFieldDouble.New( ON_CELLS ) + field = MEDCouplingFieldDouble( ON_CELLS ) field.setArray( array ) # transform the field to a 3D vector field func = "IVec * b + JVec * a + KVec * sqrt( a*a + b*b ) + 10" @@ -216,8 +216,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): #! [PySnippet_MEDCouplingFieldDouble_applyFunc_1] # create a 2D vector field values = [1.,1., 2.,1.] - array = DataArrayDouble.New( values, 2, 2 ) # 2 tuples per 2 components - field = MEDCouplingFieldDouble.New( ON_CELLS ) + array = DataArrayDouble( values, 2, 2 ) # 2 tuples per 2 components + field = MEDCouplingFieldDouble( ON_CELLS ) field.setArray( array ) # transform the field to a 3D vector field func = "IVec * b + JVec * a + KVec * sqrt( a*a + b*b ) + 10" @@ -236,10 +236,10 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_applyFunc_val(self): #! [PySnippet_MEDCouplingFieldDouble_applyFunc_val_1] coords = [0.,2.,4.] - coordsArr=DataArrayDouble.New(coords,3,1) - mesh=MEDCouplingCMesh.New() + coordsArr=DataArrayDouble(coords,3,1) + mesh=MEDCouplingCMesh() mesh.setCoords(coordsArr,coordsArr) - field = MEDCouplingFieldDouble.New( ON_CELLS ) + field = MEDCouplingFieldDouble( ON_CELLS ) field.setMesh( mesh ) field.fillFromAnalytic(2,"IVec * x + JVec * y") # 2 components #! [PySnippet_MEDCouplingFieldDouble_applyFunc_val_1] @@ -255,13 +255,13 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_fillFromAnalytic3(self): #! [PySnippet_MEDCouplingFieldDouble_fillFromAnalytic3_1] coords = [0.,2.,4.,6.] # 6. is not used - x=DataArrayDouble.New(coords[:3],3,1) - y=DataArrayDouble.New(coords[:2],2,1) - mesh=MEDCouplingCMesh.New() + x=DataArrayDouble(coords[:3],3,1) + y=DataArrayDouble(coords[:2],2,1) + mesh=MEDCouplingCMesh() mesh.setCoords(x,y) #! [PySnippet_MEDCouplingFieldDouble_fillFromAnalytic3_1] #! [PySnippet_MEDCouplingFieldDouble_fillFromAnalytic3_2] - field = MEDCouplingFieldDouble.New( ON_CELLS ) + field = MEDCouplingFieldDouble( ON_CELLS ) field.setMesh( mesh ) func = "IVec * b + JVec * a + KVec * sqrt( a*a + b*b ) + 10" varNames=["a","b"] # names used to refer to X and Y coord components @@ -284,15 +284,15 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_fillFromAnalytic2(self): #! [PySnippet_MEDCouplingFieldDouble_fillFromAnalytic2_1] coords = [0.,2.,4.] - x=DataArrayDouble.New(coords[:3],3,1) - y=DataArrayDouble.New(coords[:2],2,1) + x=DataArrayDouble(coords[:3],3,1) + y=DataArrayDouble(coords[:2],2,1) x.setInfoOnComponent(0,"a") # name used to refer to X coordinate within a function y.setInfoOnComponent(0,"b") # name used to refer to Y coordinate within a function - mesh=MEDCouplingCMesh.New() + mesh=MEDCouplingCMesh() mesh.setCoords(x,y) #! [PySnippet_MEDCouplingFieldDouble_fillFromAnalytic2_1] #! [PySnippet_MEDCouplingFieldDouble_fillFromAnalytic2_2] - field = MEDCouplingFieldDouble.New( ON_CELLS ) + field = MEDCouplingFieldDouble( ON_CELLS ) field.setMesh( mesh ) func = "IVec * b + JVec * a + KVec * sqrt( a*a + b*b ) + 10" field.fillFromAnalytic2(3,func) @@ -314,13 +314,13 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_fillFromAnalytic(self): #! [PySnippet_MEDCouplingFieldDouble_fillFromAnalytic_1] coords = [0.,2.,4.] - x=DataArrayDouble.New(coords[:3],3,1) - y=DataArrayDouble.New(coords[:2],2,1) - mesh=MEDCouplingCMesh.New() + x=DataArrayDouble(coords[:3],3,1) + y=DataArrayDouble(coords[:2],2,1) + mesh=MEDCouplingCMesh() mesh.setCoords(x,y) #! [PySnippet_MEDCouplingFieldDouble_fillFromAnalytic_1] #! [PySnippet_MEDCouplingFieldDouble_fillFromAnalytic_2] - field = MEDCouplingFieldDouble.New( ON_CELLS ) + field = MEDCouplingFieldDouble( ON_CELLS ) field.setMesh( mesh ) func = "IVec * b + JVec * a + KVec * sqrt( a*a + b*b ) + 10" field.fillFromAnalytic(3,func) @@ -342,12 +342,12 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_getValueOn_time(self): #! [PySnippet_MEDCouplingFieldDouble_getValueOn_time_1] coords = [0.,2.,4.] - coordsArr=DataArrayDouble.New(coords,3,1) - mesh=MEDCouplingCMesh.New() + coordsArr=DataArrayDouble(coords,3,1) + mesh=MEDCouplingCMesh() mesh.setCoords(coordsArr,coordsArr) #! [PySnippet_MEDCouplingFieldDouble_getValueOn_time_1] #! [PySnippet_MEDCouplingFieldDouble_getValueOn_time_2] - field = MEDCouplingFieldDouble.New( ON_CELLS, LINEAR_TIME ) + field = MEDCouplingFieldDouble( ON_CELLS, LINEAR_TIME ) field.setMesh( mesh ) field.fillFromAnalytic(1,"10") # all values == 10. field.setEndArray( field.getArray() + field.getArray() ) # all values == 20. @@ -365,8 +365,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_getValueOnMulti(self): #! [PySnippet_MEDCouplingFieldDouble_getValueOnMulti_1] coords = [0.,2.,4.] - coordsArr=DataArrayDouble.New(coords,3,1) - mesh=MEDCouplingCMesh.New() + coordsArr=DataArrayDouble(coords,3,1) + mesh=MEDCouplingCMesh() mesh.setCoords(coordsArr,coordsArr) field = mesh.fillFromAnalytic(ON_CELLS,1,"x+y") #! [PySnippet_MEDCouplingFieldDouble_getValueOnMulti_1] @@ -380,8 +380,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_getValueOn(self): #! [PySnippet_MEDCouplingFieldDouble_getValueOn_1] coords = [0.,2.,4.] - coordsArr=DataArrayDouble.New(coords,3,1) - mesh=MEDCouplingCMesh.New() + coordsArr=DataArrayDouble(coords,3,1) + mesh=MEDCouplingCMesh() mesh.setCoords(coordsArr,coordsArr) field = mesh.fillFromAnalytic(ON_CELLS,1,"x+y") #! [PySnippet_MEDCouplingFieldDouble_getValueOn_1] @@ -397,8 +397,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_getValueOnPos(self): #! [PySnippet_MEDCouplingFieldDouble_getValueOnPos_1] coords = [0.,2.,4.] - coordsArr=DataArrayDouble.New(coords,3,1) - mesh=MEDCouplingCMesh.New() + coordsArr=DataArrayDouble(coords,3,1) + mesh=MEDCouplingCMesh() mesh.setCoords(coordsArr,coordsArr) field = mesh.fillFromAnalytic(ON_CELLS,1,"x+y") #! [PySnippet_MEDCouplingFieldDouble_getValueOnPos_1] @@ -412,8 +412,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_renumberNodes(self): #! [PySnippet_MEDCouplingFieldDouble_renumberNodes_1] coords = [0.,2.,4.] - coordsArr=DataArrayDouble.New(coords,3,1) - mesh=MEDCouplingCMesh.New() + coordsArr=DataArrayDouble(coords,3,1) + mesh=MEDCouplingCMesh() mesh.setCoords(coordsArr,coordsArr) mesh=mesh.buildUnstructured() #! [PySnippet_MEDCouplingFieldDouble_renumberNodes_1] @@ -437,8 +437,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_renumberCells(self): #! [PySnippet_MEDCouplingFieldDouble_renumberCells_1] coords = [0.,2.,4.] - coordsArr=DataArrayDouble.New(coords,3,1) - mesh=MEDCouplingCMesh.New() + coordsArr=DataArrayDouble(coords,3,1) + mesh=MEDCouplingCMesh() mesh.setCoords(coordsArr,coordsArr) mesh=mesh.buildUnstructured() #! [PySnippet_MEDCouplingFieldDouble_renumberCells_1] @@ -461,8 +461,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingFieldDouble_buildNewTimeReprFromThis(self): #! [PySnippet_MEDCouplingFieldDouble_buildNewTimeReprFromThis_1] coords = [0.,2.,4.] - coordsArr=DataArrayDouble.New(coords,3,1) - mesh=MEDCouplingCMesh.New() + coordsArr=DataArrayDouble(coords,3,1) + mesh=MEDCouplingCMesh() mesh.setCoords(coordsArr,coordsArr) field1 = mesh.fillFromAnalytic(ON_NODES,1,"x+y") self.assertTrue( field1.getTimeDiscretization() == ONE_TIME ) @@ -476,9 +476,9 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingMesh_fillFromAnalytic3(self): #! [PySnippet_MEDCouplingMesh_fillFromAnalytic3_1] coords = [0.,2.,4.,6.] # 6. is not used - x=DataArrayDouble.New(coords[:3],3,1) - y=DataArrayDouble.New(coords[:2],2,1) - mesh=MEDCouplingCMesh.New() + x=DataArrayDouble(coords[:3],3,1) + y=DataArrayDouble(coords[:2],2,1) + mesh=MEDCouplingCMesh() mesh.setCoords(x,y) #! [PySnippet_MEDCouplingMesh_fillFromAnalytic3_1] #! [PySnippet_MEDCouplingMesh_fillFromAnalytic3_2] @@ -503,11 +503,11 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingMesh_fillFromAnalytic2(self): #! [PySnippet_MEDCouplingMesh_fillFromAnalytic2_1] coords = [0.,2.,4.,6.] # 6. is not used - x=DataArrayDouble.New(coords[:3],3,1) - y=DataArrayDouble.New(coords[:2],2,1) + x=DataArrayDouble(coords[:3],3,1) + y=DataArrayDouble(coords[:2],2,1) x.setInfoOnComponent(0,"a") # name used to refer to X coordinate within a function y.setInfoOnComponent(0,"b") # name used to refer to Y coordinate within a function - mesh=MEDCouplingCMesh.New() + mesh=MEDCouplingCMesh() mesh.setCoords(x,y) #! [PySnippet_MEDCouplingMesh_fillFromAnalytic2_1] #! [PySnippet_MEDCouplingMesh_fillFromAnalytic2_2] @@ -531,9 +531,9 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingMesh_fillFromAnalytic(self): #! [PySnippet_MEDCouplingMesh_fillFromAnalytic_1] coords = [0.,2.,4.,6.] # 6. is not used - x=DataArrayDouble.New(coords[:3],3,1) - y=DataArrayDouble.New(coords[:2],2,1) - mesh=MEDCouplingCMesh.New() + x=DataArrayDouble(coords[:3],3,1) + y=DataArrayDouble(coords[:2],2,1) + mesh=MEDCouplingCMesh() mesh.setCoords(x,y) #! [PySnippet_MEDCouplingMesh_fillFromAnalytic_1] #! [PySnippet_MEDCouplingMesh_fillFromAnalytic_2] @@ -557,8 +557,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingCMesh_getCoordsAt(self): #! [PySnippet_MEDCouplingCMesh_getCoordsAt_1] coords = [1.,2.,4.] - x=DataArrayDouble.New(coords,3,1) - mesh=MEDCouplingCMesh.New() + x=DataArrayDouble(coords,3,1) + mesh=MEDCouplingCMesh() mesh.setCoordsAt(0,x) x2=mesh.getCoordsAt(0) assert coords == x2.getValues() @@ -567,20 +567,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_areCellsIncludedIn(self): #! [PySnippet_MEDCouplingUMesh_areCellsIncludedIn_1] - mesh1=MEDCouplingUMesh.New(); - mesh1.setMeshDimension(2); - mesh1.allocateCells(5); - conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh1.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh1.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh1.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh1.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh1.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh1.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh1.setCoords(coordsArr); + mesh1=MEDCouplingUMesh() + mesh1.setMeshDimension(2) + mesh1.allocateCells(5) + conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh1.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh1.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh1.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh1.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh1.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh1.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh1.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_areCellsIncludedIn_1] #! [PySnippet_MEDCouplingUMesh_areCellsIncludedIn_2] cells2 = [ 4,2,0 ] @@ -601,9 +600,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_findAndCorrectBadOriented3DExtrudedCells(self): #! [PySnippet_MEDCouplingUMesh_findAndCorrectBadOriented3DExtrudedCells_1] # 2D coordinates of 5 base nodes - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,5,2); + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2] + coordsArr=DataArrayDouble(coords,5,2) # coordinates of 5 top nodes coordsArr2 = coordsArr.deepCpy() # 3D coordinates of base + top nodes @@ -611,15 +609,15 @@ class MEDCouplingBasicsTest(unittest.TestCase): coordsArr2 = coordsArr2.changeNbOfComponents( 3, 1 ) coordsArr = DataArrayDouble.Aggregate([coordsArr,coordsArr2]) # mesh - mesh=MEDCouplingUMesh.New(); - mesh.setCoords(coordsArr); - mesh.setMeshDimension(3); - mesh.allocateCells(2); + mesh=MEDCouplingUMesh() + mesh.setCoords(coordsArr) + mesh.setMeshDimension(3) + mesh.allocateCells(2) # connectivity of reversed HEXA8 and PENTA6 conn=[0,1,4,3, 5,6,9,8, 1,2,4, 6,7,9] mesh.insertNextCell(NORM_HEXA8, 8,conn[0:0+8]) mesh.insertNextCell(NORM_PENTA6,6,conn[8:8+6]) - mesh.finishInsertingCells(); + mesh.finishInsertingCells() #! [PySnippet_MEDCouplingUMesh_findAndCorrectBadOriented3DExtrudedCells_1] #! [PySnippet_MEDCouplingUMesh_findAndCorrectBadOriented3DExtrudedCells_2] fixedCells = mesh.findAndCorrectBadOriented3DExtrudedCells() @@ -632,9 +630,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_arePolyhedronsNotCorrectlyOriented(self): #! [PySnippet_MEDCouplingUMesh_arePolyhedronsNotCorrectlyOriented_1] # 2D coordinates of 5 base nodes - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,5,2); + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2] + coordsArr=DataArrayDouble(coords,5,2) # coordinates of 5 top nodes coordsArr2 = coordsArr.deepCpy() # 3D coordinates of base + top nodes @@ -642,15 +639,15 @@ class MEDCouplingBasicsTest(unittest.TestCase): coordsArr2 = coordsArr2.changeNbOfComponents( 3, 1 ) coordsArr = DataArrayDouble.Aggregate([coordsArr,coordsArr2]) # mesh - mesh=MEDCouplingUMesh.New(); - mesh.setCoords(coordsArr); - mesh.setMeshDimension(3); - mesh.allocateCells(2); + mesh=MEDCouplingUMesh() + mesh.setCoords(coordsArr) + mesh.setMeshDimension(3) + mesh.allocateCells(2) # connectivity of a HEXA8 + a reversed PENTA6 conn=[0,3,4,1, 5,8,9,6, 1,2,4, 6,7,9] mesh.insertNextCell(NORM_POLYHED, 8,conn[0:0+8]) # "extruded" polyhedron mesh.insertNextCell(NORM_POLYHED,6,conn[8:8+6]) - mesh.finishInsertingCells(); + mesh.finishInsertingCells() # fix connectivity of NORM_POLYHED's mesh.convertExtrudedPolyhedra() #! [PySnippet_MEDCouplingUMesh_arePolyhedronsNotCorrectlyOriented_1] @@ -667,20 +664,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_are2DCellsNotCorrectlyOriented(self): #! [PySnippet_MEDCouplingUMesh_are2DCellsNotCorrectlyOriented_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) mesh.changeSpaceDimension(3) #! [PySnippet_MEDCouplingUMesh_are2DCellsNotCorrectlyOriented_1] #! [PySnippet_MEDCouplingUMesh_are2DCellsNotCorrectlyOriented_2] @@ -697,20 +693,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_getCellsContainingPoints(self): #! [PySnippet_MEDCouplingUMesh_getCellsContainingPoints_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_getCellsContainingPoints_1] #! [PySnippet_MEDCouplingUMesh_getCellsContainingPoints_2] pos = [ 10., 10, # point out of the mesh @@ -726,20 +721,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_getCellsContainingPoint(self): #! [PySnippet_MEDCouplingUMesh_getCellsContainingPoint_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_getCellsContainingPoint_1] #! [PySnippet_MEDCouplingUMesh_getCellsContainingPoint_2] pos4 = coords[ 4*2 : ] # coordinates of the node #4 @@ -753,20 +747,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_buildPartOrthogonalField(self): #! [PySnippet_MEDCouplingUMesh_buildPartOrthogonalField_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_buildPartOrthogonalField_1] #! [PySnippet_MEDCouplingUMesh_buildPartOrthogonalField_2] part = DataArrayInt([1,2,3,4],4,1) # cell #0 is omitted @@ -779,20 +772,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_getPartMeasureField(self): #! [PySnippet_MEDCouplingUMesh_getPartMeasureField_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,2,4, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_getPartMeasureField_1] #! [PySnippet_MEDCouplingUMesh_getPartMeasureField_2] isAbs = True @@ -813,16 +805,15 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_getCellsInBoundingBox(self): #! [PySnippet_MEDCouplingUMesh_getCellsInBoundingBox_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - coords=[0.,0., 0.,1., 1.,1]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,3,2); - mesh.setCoords(coordsArr); - mesh.allocateCells(1); - conn=[0,1,2]; - mesh.insertNextCell(NORM_TRI3,3,conn); - mesh.finishInsertingCells(); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + coords=[0.,0., 0.,1., 1.,1] + coordsArr=DataArrayDouble(coords,3,2) + mesh.setCoords(coordsArr) + mesh.allocateCells(1) + conn=[0,1,2] + mesh.insertNextCell(NORM_TRI3,3,conn) + mesh.finishInsertingCells() #! [PySnippet_MEDCouplingUMesh_getCellsInBoundingBox_1] #! [PySnippet_MEDCouplingUMesh_getCellsInBoundingBox_2] bbox = [1., 1., 1.001,1.001] # xMin, xMax, yMin, yMax @@ -835,12 +826,12 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_renumberNodesInConn(self): #! [PySnippet_MEDCouplingUMesh_renumberNodesInConn_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(1); - conn=[4,3,2,1]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); - mesh.finishInsertingCells(); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(1) + conn=[4,3,2,1] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) + mesh.finishInsertingCells() #! [PySnippet_MEDCouplingUMesh_renumberNodesInConn_1] #! [PySnippet_MEDCouplingUMesh_renumberNodesInConn_2] old2newIds = [-1,3,2,1,0] @@ -853,23 +844,22 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_renumberNodes(self): #! [PySnippet_MEDCouplingUMesh_renumberNodes_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.3]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,4,2); - mesh.setCoords(coordsArr); - mesh.allocateCells(0); - mesh.finishInsertingCells(); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.3] + coordsArr=DataArrayDouble(coords,4,2) + mesh.setCoords(coordsArr) + mesh.allocateCells(0) + mesh.finishInsertingCells() #! [PySnippet_MEDCouplingUMesh_renumberNodes_1] #! [PySnippet_MEDCouplingUMesh_renumberNodes_2] - mesh.renumberNodes([ 2,1,0,-1 ], 3); + mesh.renumberNodes([ 2,1,0,-1 ], 3) coordsArr = mesh.getCoords() # get a shorten array assert coordsArr.getValues() == [0.7,-0.3, 0.2,-0.3, -0.3,-0.3] #! [PySnippet_MEDCouplingUMesh_renumberNodes_2] #! [PySnippet_MEDCouplingUMesh_renumberNodes_3] - coordsArr.setValues(coords,4,2); # restore old nodes - mesh.renumberNodes2([ 2,1,0,2 ], 3); + coordsArr.setValues(coords,4,2) # restore old nodes + mesh.renumberNodes2([ 2,1,0,2 ], 3) coordsArr = mesh.getCoords() # get a shorten array assert coordsArr.getValues() == [0.7,-0.3, 0.2,-0.3, -0.3,0.0] #! [PySnippet_MEDCouplingUMesh_renumberNodes_3] @@ -877,20 +867,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_findBoundaryNodes(self): #! [PySnippet_MEDCouplingUMesh_findBoundaryNodes_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_findBoundaryNodes_1] #! [PySnippet_MEDCouplingUMesh_findBoundaryNodes_2] nodeIdsArr=mesh.findBoundaryNodes() @@ -900,20 +889,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_buildBoundaryMesh(self): #! [PySnippet_MEDCouplingUMesh_buildBoundaryMesh_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_buildBoundaryMesh_1] #! [PySnippet_MEDCouplingUMesh_buildBoundaryMesh_2] mesh1=mesh.buildBoundaryMesh(True) @@ -925,20 +913,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_buildFacePartOfMySelfNode(self): #! [PySnippet_MEDCouplingUMesh_buildFacePartOfMySelfNode_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_buildFacePartOfMySelfNode_1] #! [PySnippet_MEDCouplingUMesh_buildFacePartOfMySelfNode_2] nodeIds = mesh.getNodeIdsOfCell( 0 ) @@ -953,20 +940,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_buildPartOfMySelfNode(self): #! [PySnippet_MEDCouplingUMesh_buildPartOfMySelfNode_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_buildPartOfMySelfNode_1] #! [PySnippet_MEDCouplingUMesh_buildPartOfMySelfNode_2] nodeIds = mesh.getNodeIdsOfCell( 0 ) @@ -981,20 +967,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_getCellIdsLyingOnNodes(self): #! [PySnippet_MEDCouplingUMesh_getCellIdsLyingOnNodes_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_getCellIdsLyingOnNodes_1] #! [PySnippet_MEDCouplingUMesh_getCellIdsLyingOnNodes_2] nodeIds = mesh.getNodeIdsOfCell( 0 ) @@ -1009,20 +994,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_getCellIdsFullyIncludedInNodeIds(self): #! [PySnippet_MEDCouplingUMesh_getCellIdsFullyIncludedInNodeIds_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_getCellIdsFullyIncludedInNodeIds_1] #! [PySnippet_MEDCouplingUMesh_getCellIdsFullyIncludedInNodeIds_2] cellIds = [1,2] @@ -1036,20 +1020,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_buildPartOfMySelf(self): #! [PySnippet_MEDCouplingUMesh_buildPartOfMySelf_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_buildPartOfMySelf_1] #! [PySnippet_MEDCouplingUMesh_buildPartOfMySelf_2] cellIds=[1,2] @@ -1066,23 +1049,22 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_mergeNodes(self): #! [PySnippet_MEDCouplingUMesh_mergeNodes_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); - mesh.finishInsertingCells(); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) + mesh.finishInsertingCells() coords=[0.3,-0.301, # 0 0.2,-0.3, # 1 0.3,-0.302, # 2 ~~ 0 1.1,0.0, # 3 1.1,0.0, # 4 == 3 - 0.3,-0.303];# 5 ~~ 0 - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,6,2); - mesh.setCoords(coordsArr); + 0.3,-0.303]# 5 ~~ 0 + coordsArr=DataArrayDouble(coords,6,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_mergeNodes_1] #! [PySnippet_MEDCouplingUMesh_mergeNodes_2] arr,areNodesMerged,newNbOfNodes=mesh.mergeNodes(0.004) @@ -1095,8 +1077,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): coordsArr = mesh.getCoords() # retrieve a new shorten coord array self.assertNotAlmostEqual( baryCoords2[1], coordsArr.getIJ(0,1), 13 ) # Y of node #0 differs from that of baryCoords2 # restore coordinates - coordsArr = DataArrayDouble(coords,6,2); - mesh.setCoords(coordsArr); + coordsArr = DataArrayDouble(coords,6,2) + mesh.setCoords(coordsArr) # call mergeNodes2() mesh.mergeNodes2(0.004) coordsArr = mesh.getCoords() # retrieve a new shorten coord array @@ -1106,20 +1088,19 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_zipConnectivityTraducer(self): #! [PySnippet_MEDCouplingUMesh_zipConnectivityTraducer_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 2 == 1 - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 3 == 0 - mesh.insertNextCell(NORM_QUAD4,4,conn[2:4]+conn[0:2]); # 4 ~~ 0 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 2 == 1 + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 3 == 0 + mesh.insertNextCell(NORM_QUAD4,4,conn[2:4]+conn[0:2]) # 4 ~~ 0 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_zipConnectivityTraducer_1] #! [PySnippet_MEDCouplingUMesh_zipConnectivityTraducer_2] oldNbCells = mesh.getNumberOfCells() @@ -1131,25 +1112,24 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_zipCoordsTraducer(self): #! [PySnippet_MEDCouplingUMesh_zipCoordsTraducer_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_zipCoordsTraducer_1] #! [PySnippet_MEDCouplingUMesh_zipCoordsTraducer_2] cellIds=[1,2] - mesh2=mesh.buildPartOfMySelf(cellIds,True); - arr=mesh2.zipCoordsTraducer(); + mesh2=mesh.buildPartOfMySelf(cellIds,True) + arr=mesh2.zipCoordsTraducer() assert mesh2.getNumberOfNodes() == 4 # nb of nodes decreased assert arr.getValues() == [-1,0,1,-1,2,3,-1,-1,-1] # -1 for unused nodes #! [PySnippet_MEDCouplingUMesh_zipCoordsTraducer_2] @@ -1157,53 +1137,51 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_getNodeIdsInUse(self): #! [PySnippet_MEDCouplingUMesh_getNodeIdsInUse_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_getNodeIdsInUse_1] #! [PySnippet_MEDCouplingUMesh_getNodeIdsInUse_2] cellIds=[1,2] - mesh2=mesh.buildPartOfMySelf(cellIds,True); - arr,newNbOfNodes=mesh2.getNodeIdsInUse(); + mesh2=mesh.buildPartOfMySelf(cellIds,True) + arr,newNbOfNodes=mesh2.getNodeIdsInUse() assert arr.getValues() == [-1,0,1,-1,2,3,-1,-1,-1] #! [PySnippet_MEDCouplingUMesh_getNodeIdsInUse_2] #! [PySnippet_MEDCouplingUMesh_getNodeIdsInUse_3] - arr2=arr.invertArrayO2N2N2O(newNbOfNodes); + arr2=arr.invertArrayO2N2N2O(newNbOfNodes) assert arr2.getValues() == [1,2,4,5] #! [PySnippet_MEDCouplingUMesh_getNodeIdsInUse_3] return def testExample_MEDCouplingUMesh_convertToPolyTypes(self): #! [PySnippet_MEDCouplingUMesh_convertToPolyTypes_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_convertToPolyTypes_1] #! [PySnippet_MEDCouplingUMesh_convertToPolyTypes_2] - cells=[1,3]; - mesh.convertToPolyTypes(cells); + cells=[1,3] + mesh.convertToPolyTypes(cells) assert mesh.getTypeOfCell(0) == NORM_QUAD4 assert mesh.getTypeOfCell(1) == NORM_POLYGON, mesh.getTypeOfCell(1) assert mesh.getTypeOfCell(2) == NORM_TRI3 @@ -1213,27 +1191,22 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_buildDescendingConnectivity2(self): #! [PySnippet_MEDCouplingUMesh_buildDescendingConnectivity2_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_buildDescendingConnectivity2_1] #! [PySnippet_MEDCouplingUMesh_buildDescendingConnectivity2_2] - desc=DataArrayInt.New(); - descIndx=DataArrayInt.New(); - revDesc=DataArrayInt.New(); - revDescIndx=DataArrayInt.New(); - mesh2=mesh.buildDescendingConnectivity2(desc,descIndx,revDesc,revDescIndx); + mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity2() assert desc.getValues() == [1,2,3,4,-3,5,6, 7,8,-5,9,10,-2,11, 12,13,-7,-10] assert descIndx.getValues() == [0,4,7,10,14,18] assert revDesc.getValues() == [0, 0,3, 0,1, 0, 1,2, 1, 2,4, 2, 3, 3,4, 3, 4, 4] @@ -1246,27 +1219,22 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_buildDescendingConnectivity(self): #! [PySnippet_MEDCouplingUMesh_buildDescendingConnectivity_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_buildDescendingConnectivity_1] #! [PySnippet_MEDCouplingUMesh_buildDescendingConnectivity_2] - desc=DataArrayInt.New(); - descIndx=DataArrayInt.New(); - revDesc=DataArrayInt.New(); - revDescIndx=DataArrayInt.New(); - mesh2=mesh.buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx); + mesh2,desc,descIndx,revDesc,revDescIndx=mesh.buildDescendingConnectivity() assert desc.getValues() == [0,1,2,3, 2,4,5, 6,7,4, 8,9,1,10, 11,12,6,9] assert descIndx.getValues() == [0,4,7,10,14,18] assert revDesc.getValues() == [0, 0,3, 0,1, 0, 1,2, 1, 2,4, 2, 3, 3,4, 3, 4, 4] @@ -1276,56 +1244,55 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingUMesh_getReverseNodalConnectivity(self): #! [PySnippet_MEDCouplingUMesh_getReverseNodalConnectivity_1] - mesh=MEDCouplingUMesh.New(); - mesh.setMeshDimension(2); - mesh.allocateCells(5); - conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4]; - mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]); # 0 - mesh.insertNextCell(NORM_TRI3,3, conn[4:7]); # 1 - mesh.insertNextCell(NORM_TRI3,3, conn[7:10]); # 2 - mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]); # 3 - mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]); # 4 - mesh.finishInsertingCells(); - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,9,2); - mesh.setCoords(coordsArr); + mesh=MEDCouplingUMesh() + mesh.setMeshDimension(2) + mesh.allocateCells(5) + conn=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] + mesh.insertNextCell(NORM_QUAD4,4,conn[0:4]) # 0 + mesh.insertNextCell(NORM_TRI3,3, conn[4:7]) # 1 + mesh.insertNextCell(NORM_TRI3,3, conn[7:10]) # 2 + mesh.insertNextCell(NORM_QUAD4,4,conn[10:14]) # 3 + mesh.insertNextCell(NORM_QUAD4,4,conn[14:18]) # 4 + mesh.finishInsertingCells() + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2, 0.7,0.2, -0.3,0.7, 0.2,0.7, 0.7,0.7 ] + coordsArr=DataArrayDouble(coords,9,2) + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingUMesh_getReverseNodalConnectivity_1] #! [PySnippet_MEDCouplingUMesh_getReverseNodalConnectivity_2] - revNodal,revNodalIndx=mesh.getReverseNodalConnectivity(); - assert revNodal.getValues() == [0,0,1,1,2,0,3,0,1,2,3,4,2,4,3,3,4,4]; - assert revNodalIndx.getValues() == [0,1,3,5,7,12,14,15,17,18]; + revNodal,revNodalIndx=mesh.getReverseNodalConnectivity() + assert revNodal.getValues() == [0,0,1,1,2,0,3,0,1,2,3,4,2,4,3,3,4,4] + assert revNodalIndx.getValues() == [0,1,3,5,7,12,14,15,17,18] #! [PySnippet_MEDCouplingUMesh_getReverseNodalConnectivity_2] return def testExample_MEDCouplingUMesh_checkDeepEquivalWith(self): #! [PySnippet_MEDCouplingUMesh_checkDeepEquivalWith_1] # mesh 1 - mesh1=MEDCouplingUMesh.New(); - mesh1.setMeshDimension(2); + mesh1=MEDCouplingUMesh() + mesh1.setMeshDimension(2) coords=[0.0,0.0, #0 1.0,0.0, #1 1.0,1.0, #2 0.0,1.0] #3 - coordsArr=DataArrayDouble.New(coords,4,2); - mesh1.setCoords(coordsArr); - mesh1.allocateCells(2); - mesh1.insertNextCell(NORM_TRI3,3,[0,1,2]); #0 - mesh1.insertNextCell(NORM_TRI3,3,[1,2,3]); #1 - mesh1.finishInsertingCells(); + coordsArr=DataArrayDouble(coords,4,2) + mesh1.setCoords(coordsArr) + mesh1.allocateCells(2) + mesh1.insertNextCell(NORM_TRI3,3,[0,1,2]) #0 + mesh1.insertNextCell(NORM_TRI3,3,[1,2,3]) #1 + mesh1.finishInsertingCells() # mesh 2 - mesh2=MEDCouplingUMesh.New(); - mesh2.setMeshDimension(2); + mesh2=MEDCouplingUMesh() + mesh2.setMeshDimension(2) coords=[0.0,1.0, #0 = #3 0.0,0.0, #1 = #0 1.0,0.0, #2 = #1 1.0,1.001] #3 ~ #2 - coordsArr2=DataArrayDouble.New(coords,4,2) - mesh2.setCoords(coordsArr2); - mesh2.allocateCells(2); - mesh2.insertNextCell(NORM_TRI3,3,[2,3,0]); #0 = #1 - mesh2.insertNextCell(NORM_TRI3,3,[3,1,2]); #1 ~ #0 - mesh2.finishInsertingCells(); + coordsArr2=DataArrayDouble(coords,4,2) + mesh2.setCoords(coordsArr2) + mesh2.allocateCells(2) + mesh2.insertNextCell(NORM_TRI3,3,[2,3,0]) #0 = #1 + mesh2.insertNextCell(NORM_TRI3,3,[3,1,2]) #1 ~ #0 + mesh2.finishInsertingCells() #! [PySnippet_MEDCouplingUMesh_checkDeepEquivalWith_1] #! [PySnippet_MEDCouplingUMesh_checkDeepEquivalWith_2] cellCompPol = 1 # "permuted same orientation" - policy of medium severity @@ -1336,10 +1303,10 @@ class MEDCouplingBasicsTest(unittest.TestCase): #! [PySnippet_MEDCouplingUMesh_checkDeepEquivalWith_3] self.assertRaises( InterpKernelException, mesh1.checkDeepEquivalOnSameNodesWith, mesh2, cellCompPol, 0.002) mesh2.setCoords(coordsArr) # make meshes share the same coordinates array - mesh2.allocateCells(2); - mesh2.insertNextCell(NORM_TRI3,3,[1,2,3]); #0 = #1 - mesh2.insertNextCell(NORM_TRI3,3,[1,0,2]); #1 ~ #0 - mesh2.finishInsertingCells(); + mesh2.allocateCells(2) + mesh2.insertNextCell(NORM_TRI3,3,[1,2,3]) #0 = #1 + mesh2.insertNextCell(NORM_TRI3,3,[1,0,2]) #1 ~ #0 + mesh2.finishInsertingCells() cellCompPol = 2 # the weakest policy mesh1.checkDeepEquivalOnSameNodesWith( mesh2, cellCompPol, 0 ) #! [PySnippet_MEDCouplingUMesh_checkDeepEquivalWith_3] @@ -1348,10 +1315,9 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingPointSet_scale(self): #! [PySnippet_MEDCouplingPointSet_scale_1] coords=[0.0,0.0, 1.0,0.0, 1.0,1.0, 0.0,1.0] # 2D coordinates of 4 nodes - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,4,2); - mesh=MEDCouplingUMesh.New(); - mesh.setCoords(coordsArr); + coordsArr=DataArrayDouble(coords,4,2) + mesh=MEDCouplingUMesh() + mesh.setCoords(coordsArr) initCoords = coordsArr.deepCpy() #! [PySnippet_MEDCouplingPointSet_scale_1] #! [PySnippet_MEDCouplingPointSet_scale_2] @@ -1369,10 +1335,9 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingPointSet_translate(self): #! [PySnippet_MEDCouplingPointSet_translate_1] coords=[0.0,0.0, 1.0,0.0, 1.0,1.0, 0.0,1.0] # 2D coordinates of 4 nodes - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,4,2); - mesh=MEDCouplingUMesh.New(); - mesh.setCoords(coordsArr); + coordsArr=DataArrayDouble(coords,4,2) + mesh=MEDCouplingUMesh() + mesh.setCoords(coordsArr) initCoords = coordsArr.deepCpy() #! [PySnippet_MEDCouplingPointSet_translate_1] #! [PySnippet_MEDCouplingPointSet_translate_2] @@ -1389,10 +1354,9 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingPointSet_rotate(self): #! [PySnippet_MEDCouplingPointSet_rotate_1] coords=[0.0,0.0, 0.1,0.0, 0.1,0.1, 0.0,0.1] # 2D coordinates of 4 nodes - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,4,2); - mesh=MEDCouplingUMesh.New(); - mesh.setCoords(coordsArr); + coordsArr=DataArrayDouble(coords,4,2) + mesh=MEDCouplingUMesh() + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingPointSet_rotate_1] #! [PySnippet_MEDCouplingPointSet_rotate_2] center = [0.,0.] @@ -1416,10 +1380,9 @@ class MEDCouplingBasicsTest(unittest.TestCase): #! [PySnippet_MEDCouplingPointSet_getBoundingBox_1] cc=[0.0, 0.1, 0.2, # 3D coordinates of 2 nodes 2.0, 2.1, 2.2] - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(cc,2,3); - mesh=MEDCouplingUMesh.New(); - mesh.setCoords(coordsArr); + coordsArr=DataArrayDouble(cc,2,3) + mesh=MEDCouplingUMesh() + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingPointSet_getBoundingBox_1] #! [PySnippet_MEDCouplingPointSet_getBoundingBox_2] bbox=mesh.getBoundingBox() @@ -1435,15 +1398,14 @@ class MEDCouplingBasicsTest(unittest.TestCase): 0.2,-0.3, # 1 0.3,-0.302, # 2 1.1,0.0, # 3 - 0.3,-0.30299999999999];# 4 - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,5,2); - mesh=MEDCouplingUMesh.New(); - mesh.setCoords(coordsArr); + 0.3,-0.30299999999999]# 4 + coordsArr=DataArrayDouble(coords,5,2) + mesh=MEDCouplingUMesh() + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingPointSet_getNodeIdsNearPoint_1] #! [PySnippet_MEDCouplingPointSet_getNodeIdsNearPoint_2] point=[0.3, -0.3] # point close to nodes #0, #2 and #4 - ids=mesh.getNodeIdsNearPoint(point,0.003); + ids=mesh.getNodeIdsNearPoint(point,0.003) assert ids.getValues() == [0,2,4] #! [PySnippet_MEDCouplingPointSet_getNodeIdsNearPoint_2] return @@ -1457,17 +1419,16 @@ class MEDCouplingBasicsTest(unittest.TestCase): 1.1,0.0, # 3 1.1,0.0, # 4 1.1,0.002, # 5 - 0.3,-0.303];# 6 - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,7,2); - mesh=MEDCouplingUMesh.New(); - mesh.setCoords(coordsArr); + 0.3,-0.303]# 6 + coordsArr=DataArrayDouble(coords,7,2) + mesh=MEDCouplingUMesh() + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingPointSet_getNodeIdsNearPoints_1] #! [PySnippet_MEDCouplingPointSet_getNodeIdsNearPoints_2] points=[0.2,-0.301, # ~ node #1 0.0, 0.0, 1.1, 0.002] # ~ nodes #3, #4 and #5 - ids,idsIndex=mesh.getNodeIdsNearPoints(points,3,0.003); + ids,idsIndex=mesh.getNodeIdsNearPoints(points,3,0.003) assert ids.getValues() == [1, 3, 4, 5] assert idsIndex.getValues() == [0, 1, 1, 4] #! [PySnippet_MEDCouplingPointSet_getNodeIdsNearPoints_2] @@ -1480,11 +1441,10 @@ class MEDCouplingBasicsTest(unittest.TestCase): 0.3,-0.302, # 2 1.1,0.0, # 3 1.1,0.0, # 4 - 0.3,-0.303];# 5 - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,6,2); - mesh=MEDCouplingUMesh.New(); - mesh.setCoords(coordsArr); + 0.3,-0.303]# 5 + coordsArr=DataArrayDouble(coords,6,2) + mesh=MEDCouplingUMesh() + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingPointSet_findCommonNodes_1] #! [PySnippet_MEDCouplingPointSet_findCommonNodes_2] comm,commI=mesh.findCommonNodes(1e-13) @@ -1496,22 +1456,21 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_MEDCouplingPointSet_getCoordinatesOfNode(self): #! [PySnippet_MEDCouplingPointSet_getCoordinatesOfNode_1] - coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3]; - coordsArr=DataArrayDouble.New(); - coordsArr.setValues(coords,3,2); - mesh=MEDCouplingUMesh.New(); - mesh.setCoords(coordsArr); + coords=[-0.3,-0.3, 0.2,-0.3, 0.7,-0.3] + coordsArr=DataArrayDouble(coords,3,2) + mesh=MEDCouplingUMesh() + mesh.setCoords(coordsArr) #! [PySnippet_MEDCouplingPointSet_getCoordinatesOfNode_1] #! [PySnippet_MEDCouplingPointSet_getCoordinatesOfNode_2] nodeCoords=mesh.getCoordinatesOfNode(1) - self.assertAlmostEqual(0.2, nodeCoords[0],13); - self.assertAlmostEqual(-0.3,nodeCoords[1],13); + self.assertAlmostEqual(0.2, nodeCoords[0],13) + self.assertAlmostEqual(-0.3,nodeCoords[1],13) #! [PySnippet_MEDCouplingPointSet_getCoordinatesOfNode_2] return def testExample_DataArrayInt_getTuple(self): #! [Snippet_DataArrayInt_getTuple_1] - dv=DataArrayInt.New(); + dv=DataArrayInt() dv.alloc( 6, 1 ) dv.iota(7) dv.rearrange( 2 ) @@ -1525,9 +1484,9 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayInt_buildPermutationArr(self): #! [PySnippet_DataArrayInt_buildPermutationArr_1] - a=DataArrayInt.New() + a=DataArrayInt() a.setValues([4,5,6,7,8],5,1) - b=DataArrayInt.New() + b=DataArrayInt() b.setValues([5,4,8,6,7],5,1) c=a.buildPermutationArr(b) #! [PySnippet_DataArrayInt_buildPermutationArr_1] @@ -1537,12 +1496,12 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayInt_invertArrayO2N2N2O(self): #! [PySnippet_DataArrayInt_invertArrayO2N2N2O_1] arr1=[2,0,4,1,5,3] - da=DataArrayInt.New(); - da.setValues(arr1,6,1); - da2=da.invertArrayO2N2N2O(6); + da=DataArrayInt() + da.setValues(arr1,6,1) + da2=da.invertArrayO2N2N2O(6) expected1=[1,3,0,5,2,4] for i in xrange(6): - self.assertEqual(expected1[i],da2.getIJ(i,0)); + self.assertEqual(expected1[i],da2.getIJ(i,0)) pass #! [PySnippet_DataArrayInt_invertArrayO2N2N2O_1] return @@ -1550,12 +1509,12 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayInt_invertArrayN2O2O2N(self): #! [PySnippet_DataArrayInt_invertArrayN2O2O2N_1] arr1=[2,0,4,1,5,3] - da=DataArrayInt.New(); - da.setValues(arr1,6,1); - da2=da.invertArrayN2O2O2N(7); + da=DataArrayInt() + da.setValues(arr1,6,1) + da2=da.invertArrayN2O2O2N(7) expected1=[1,3,0,5,2,4,-1] for i in xrange(6): - self.assertEqual(expected1[i],da2.getIJ(i,0)); + self.assertEqual(expected1[i],da2.getIJ(i,0)) pass #! [PySnippet_DataArrayInt_invertArrayN2O2O2N_1] return @@ -1563,7 +1522,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayDouble_getIdsInRange(self): #! [PySnippet_DataArrayDouble_getIdsInRange_1] - da=DataArrayDouble.New() + da=DataArrayDouble() da.alloc( 10, 1 ) da[ :, :] = range(10) da2 = da.getIdsInRange( 2.5, 6 ) @@ -1572,10 +1531,10 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayDouble_setPartOfValues2(self): #! [Snippet_DataArrayDouble_setPartOfValues2_1] - da=DataArrayDouble.New() + da=DataArrayDouble() da.alloc( 4, 7 ) # - dv=DataArrayDouble.New(); + dv=DataArrayDouble() dv.alloc( 6, 1 ) dv.iota(7) dv.rearrange( 2 ) @@ -1593,10 +1552,10 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayInt_setPartOfValues2(self): #! [Snippet_DataArrayInt_setPartOfValues2_1] - da=DataArrayInt.New() + da=DataArrayInt() da.alloc( 4, 7 ) # - dv=DataArrayInt.New(); + dv=DataArrayInt() dv.alloc( 6, 1 ) dv.iota(7) dv.rearrange( 2 ) @@ -1614,10 +1573,10 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayDouble_setPartOfValues3(self): #! [Snippet_DataArrayDouble_setPartOfValues3_1] - da=DataArrayDouble.New() + da=DataArrayDouble() da.alloc( 4, 7 ) # - dv=DataArrayDouble.New(); + dv=DataArrayDouble() dv.alloc( 6, 1 ) dv.iota(7) dv.rearrange( 2 ) @@ -1635,10 +1594,10 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayInt_setPartOfValues3(self): #! [Snippet_DataArrayInt_setPartOfValues3_1] - da=DataArrayInt.New() + da=DataArrayInt() da.alloc( 4, 7 ) # - dv=DataArrayInt.New(); + dv=DataArrayInt() dv.alloc( 6, 1 ) dv.iota(7) dv.rearrange( 2 ) @@ -1656,11 +1615,11 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayDouble_setPartOfValues1(self): #! [Snippet_DataArrayDouble_setPartOfValues1_1] - da=DataArrayDouble.New() + da=DataArrayDouble() da.alloc( 4, 4 ) da.setInfoOnComponents( ["v1","v2","v3","v4"]) # - dv=DataArrayDouble.New(); + dv=DataArrayDouble() dv.alloc( 4, 1 ) dv.iota(7) dv.rearrange( 2 ) @@ -1692,11 +1651,11 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayInt_setPartOfValues1(self): #! [Snippet_DataArrayInt_setPartOfValues1_1] - da=DataArrayInt.New() + da=DataArrayInt() da.alloc( 4, 4 ) da.setInfoOnComponents( ["v1","v2","v3","v4"]) # - dv=DataArrayInt.New(); + dv=DataArrayInt() dv.alloc( 4, 1 ) dv.iota(7) dv.rearrange( 2 ) @@ -1728,7 +1687,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayDouble_setPartOfValuesSimple1(self): #! [Snippet_DataArrayDouble_setPartOfValuesSimple1_1] - da=DataArrayDouble.New() + da=DataArrayDouble() da.alloc( 4, 4 ) dv = 7 #! [Snippet_DataArrayDouble_setPartOfValuesSimple1_1] @@ -1758,7 +1717,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayInt_setPartOfValuesSimple1(self): #! [Snippet_DataArrayInt_setPartOfValuesSimple1_1] - da=DataArrayInt.New() + da=DataArrayInt() da.alloc( 4, 4 ) dv = 7 #! [Snippet_DataArrayInt_setPartOfValuesSimple1_1] @@ -1788,7 +1747,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayDouble_setPartOfValuesSimple2(self): #! [Snippet_DataArrayDouble_setPartOfValuesSimple2_1] - da=DataArrayDouble.New() + da=DataArrayDouble() da.alloc( 4, 4 ) dv = 7 #! [Snippet_DataArrayDouble_setPartOfValuesSimple2_1] @@ -1812,7 +1771,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayInt_setPartOfValuesSimple2(self): #! [Snippet_DataArrayInt_setPartOfValuesSimple2_1] - da=DataArrayInt.New() + da=DataArrayInt() da.alloc( 4, 4 ) dv = 7 #! [Snippet_DataArrayInt_setPartOfValuesSimple2_1] @@ -1836,7 +1795,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayDouble_setPartOfValuesSimple3(self): #! [Snippet_DataArrayDouble_setPartOfValuesSimple3_1] - da=DataArrayDouble.New() + da=DataArrayDouble() da.alloc( 4, 4 ) dv = 7 #! [Snippet_DataArrayDouble_setPartOfValuesSimple3_1] @@ -1860,7 +1819,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayInt_setPartOfValuesSimple3(self): #! [Snippet_DataArrayInt_setPartOfValuesSimple3_1] - da=DataArrayInt.New() + da=DataArrayInt() da.alloc( 4, 4 ) dv = 7 #! [Snippet_DataArrayInt_setPartOfValuesSimple3_1] @@ -1884,13 +1843,12 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayDouble_setSelectedComponents(self): #! [Snippet_DataArrayDouble_setSelectedComponents1] - da=DataArrayDouble.New(); array1=[1.,2., 3.,4., 5.,6.] - da.setValues(array1,3,2) + da=DataArrayDouble(array1,3,2) da.setInfoOnComponents( ["a1","a2"]) #! [Snippet_DataArrayDouble_setSelectedComponents1] #! [Snippet_DataArrayDouble_setSelectedComponents2] - dv=DataArrayDouble.New(); + dv=DataArrayDouble() dv.alloc( 4, 4 ) dv.fillWithZero() dv.setInfoOnComponents( ["v1","v2","v3","v4"]) @@ -1905,13 +1863,13 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayInt_setSelectedComponents(self): #! [Snippet_DataArrayInt_setSelectedComponents1] - da=DataArrayInt.New(); + da=DataArrayInt() array1=[1,2, 3,4, 5,6] da.setValues(array1,3,2) da.setInfoOnComponents( ["a1","a2"]) #! [Snippet_DataArrayInt_setSelectedComponents1] #! [Snippet_DataArrayInt_setSelectedComponents2] - dv=DataArrayInt.New(); + dv=DataArrayInt() dv.alloc( 4, 4 ) dv.fillWithZero() dv.setInfoOnComponents( ["v1","v2","v3","v4"]) @@ -1926,27 +1884,25 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExample_DataArrayDouble_getDifferentValues(self): #! [Snippet_DataArrayDouble_getDifferentValues1] - da=DataArrayDouble.New(); array1=[2.3,1.2,1.3,2.3,2.301,0.8] - da.setValues(array1,6,1) + da=DataArrayDouble(array1,6,1) # - dv=da.getDifferentValues(2e-1); + dv=da.getDifferentValues(2e-1) expected2=[2.301,1.3,0.8] - self.assertEqual(3,dv.getNbOfElems()); + self.assertEqual(3,dv.getNbOfElems()) for i in xrange(3): - self.assertAlmostEqual(expected2[i],dv.getIJ(i,0),14); + self.assertAlmostEqual(expected2[i],dv.getIJ(i,0),14) pass #! [Snippet_DataArrayDouble_getDifferentValues1] return def testExample_DataArrayDouble_findCommonTuples1(self): #! [PySnippet_DataArrayDouble_findCommonTuples1] - da=DataArrayDouble.New(); array2=[2.3,2.3, 1.2,1.2, 1.3,1.3, 2.3,2.3, 2.301,2.301, 0.8,0.8] - da.setValues(array2,6,2) + da=DataArrayDouble(array2,6,2) #! [PySnippet_DataArrayDouble_findCommonTuples1] #! [PySnippet_DataArrayDouble_findCommonTuples2] - c,cI=da.findCommonTuples(1.01e-1); + c,cI=da.findCommonTuples(1.01e-1) expected3=[0,3,4,1,2] expected4=[0,3,5] self.assertEqual(expected3,c.getValues()) @@ -1956,40 +1912,40 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExampleDataArrayDoubleMeldWith(self): #! [PySnippet_DataArrayDouble_Meld1_1] - da1=DataArrayDouble.New(); - da1.alloc(7,2); - da2=DataArrayDouble.New(); - da2.alloc(7,1); + da1=DataArrayDouble() + da1.alloc(7,2) + da2=DataArrayDouble() + da2.alloc(7,1) # - da1.fillWithValue(7.); - da2.iota(0.); - da3=da2.applyFunc(3,"10*x*IVec+100*x*JVec+1000*x*KVec"); + da1.fillWithValue(7.) + da2.iota(0.) + da3=da2.applyFunc(3,"10*x*IVec+100*x*JVec+1000*x*KVec") # - da1.setInfoOnComponent(0,"c0da1"); - da1.setInfoOnComponent(1,"c1da1"); - da3.setInfoOnComponent(0,"c0da3"); - da3.setInfoOnComponent(1,"c1da3"); - da3.setInfoOnComponent(2,"c2da3"); + da1.setInfoOnComponent(0,"c0da1") + da1.setInfoOnComponent(1,"c1da1") + da3.setInfoOnComponent(0,"c0da3") + da3.setInfoOnComponent(1,"c1da3") + da3.setInfoOnComponent(2,"c2da3") # - da1C=da1.deepCpy(); - da1.meldWith(da3); + da1C=da1.deepCpy() + da1.meldWith(da3) #! [PySnippet_DataArrayDouble_Meld1_1] def testExampleDataArrayIntMeldWith(self): #! [PySnippet_DataArrayInt_Meld1_1] - da1=DataArrayInt.New(); - da1.alloc(7,2); - da2=DataArrayInt.New(); - da2.alloc(7,1); + da1=DataArrayInt() + da1.alloc(7,2) + da2=DataArrayInt() + da2.alloc(7,1) # - da1.fillWithValue(7); - da2.iota(0); + da1.fillWithValue(7) + da2.iota(0) # - da1.setInfoOnComponent(0,"c0da1"); - da1.setInfoOnComponent(1,"c1da1"); - da2.setInfoOnComponent(0,"c0da2"); + da1.setInfoOnComponent(0,"c0da1") + da1.setInfoOnComponent(1,"c1da1") + da2.setInfoOnComponent(0,"c0da2") # - da1.meldWith(da2); + da1.meldWith(da2) #! [PySnippet_DataArrayInt_Meld1_1] def testExampleDataArrayDoubleKeepSelectedComponents1(self): @@ -1999,12 +1955,11 @@ class MEDCouplingBasicsTest(unittest.TestCase): 21.,22.,23.,24., # ... 31.,32.,33.,34., 41.,42.,43.,44.] - a1=DataArrayDouble.New() - a1.setValues(arr1,5,4) - a1.setInfoOnComponent(0,"a"); - a1.setInfoOnComponent(1,"b"); - a1.setInfoOnComponent(2,"c"); - a1.setInfoOnComponent(3,"d"); + a1=DataArrayDouble(arr1,5,4) + a1.setInfoOnComponent(0,"a") + a1.setInfoOnComponent(1,"b") + a1.setInfoOnComponent(2,"c") + a1.setInfoOnComponent(3,"d") #! [SnippeDataArrayDoubleKeepSelectedComponents1_1] #! [SnippeDataArrayDoubleKeepSelectedComponents1_2] arr2V=[1,2,1,2,0,0] @@ -2019,12 +1974,12 @@ class MEDCouplingBasicsTest(unittest.TestCase): 21,22,23,24, # 31,32,33,34, 41,42,43,44] - a1=DataArrayInt.New() + a1=DataArrayInt() a1.setValues(arr1,5,4) - a1.setInfoOnComponent(0,"a"); - a1.setInfoOnComponent(1,"b"); - a1.setInfoOnComponent(2,"c"); - a1.setInfoOnComponent(3,"d"); + a1.setInfoOnComponent(0,"a") + a1.setInfoOnComponent(1,"b") + a1.setInfoOnComponent(2,"c") + a1.setInfoOnComponent(3,"d") #! [SnippeDataArrayIntKeepSelectedComponents1_1] #! [SnippeDataArrayIntKeepSelectedComponents1_2] arr2V=[1,2,1,2,0,0] @@ -2039,12 +1994,11 @@ class MEDCouplingBasicsTest(unittest.TestCase): from MEDCouplingDataForTest import MEDCouplingDataForTest #! [PySnippetFieldDoubleBuildSubPart1_1] mesh1=MEDCouplingDataForTest.build2DTargetMesh_1() - f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME) + f1=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) f1.setTime(2.3,5,6) f1.setMesh(mesh1) - array=DataArrayDouble.New() arr1=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.] - array.setValues(arr1,mesh1.getNumberOfCells(),2) + array=DataArrayDouble(arr1,mesh1.getNumberOfCells(),2) f1.setArray(array) # ! [PySnippetFieldDoubleBuildSubPart1_1] # ! [PySnippetFieldDoubleBuildSubPart1_2] @@ -2074,12 +2028,11 @@ class MEDCouplingBasicsTest(unittest.TestCase): self.assertEqual(expected4,list(m2C.getNodalConnectivityIndex().getValues())) # Test with field on nodes. # ! [PySnippetFieldDoubleBuildSubPart1_3] - f1=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME) + f1=MEDCouplingFieldDouble(ON_NODES,ONE_TIME) f1.setTime(2.3,5,6) f1.setMesh(mesh1) - array=DataArrayDouble.New() arr2=[3.,103.,4.,104.,5.,105.,6.,106.,7.,107.,8.,108.,9.,109.,10.,110.,11.,111.] - array.setValues(arr2,mesh1.getNumberOfNodes(),2) + array=DataArrayDouble(arr2,mesh1.getNumberOfNodes(),2) f1.setArray(array) # ! [PySnippetFieldDoubleBuildSubPart1_3] # ! [PySnippetFieldDoubleBuildSubPart1_4] @@ -2106,7 +2059,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): self.assertEqual(expected4[:3],[int(i) for i in m2C.getNodalConnectivityIndex()]) #idem previous because nodes of cell#4 are not fully present in part3 part3=[1,2] - arrr=DataArrayInt.New() + arrr=DataArrayInt() arrr.setValues(part3,2,1) f2=f1.buildSubPart(arrr) self.assertEqual(4,f2.getNumberOfTuples()) @@ -2158,7 +2111,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): nodalConnPerCell=[0,3,4,1, 1,4,2, 4,5,2, 6,7,4,3, 7,8,5,4] # ! [PySnippetUMeshStdBuild1_1] # ! [PySnippetUMeshStdBuild1_2] - mesh=MEDCouplingUMesh.New("My2DMesh",2) + mesh=MEDCouplingUMesh("My2DMesh",2) # ! [PySnippetUMeshStdBuild1_2] # ! [PySnippetUMeshStdBuild1_3] mesh.allocateCells(5)#You can put more than 5 if you want but not less. @@ -2170,7 +2123,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): mesh.finishInsertingCells() # ! [PySnippetUMeshStdBuild1_3] # ! [PySnippetUMeshStdBuild1_4] - coordsArr=DataArrayDouble.New(coords,9,3)#here coordsArr are declared to have 3 components, mesh will deduce that its spaceDim==3. + coordsArr=DataArrayDouble(coords,9,3)#here coordsArr are declared to have 3 components, mesh will deduce that its spaceDim==3. mesh.setCoords(coordsArr)#coordsArr contains 9 tuples, that is to say mesh contains 9 nodes. # ! [PySnippetUMeshStdBuild1_4] # ! [PySnippetUMeshStdBuild1_5] @@ -2182,13 +2135,13 @@ class MEDCouplingBasicsTest(unittest.TestCase): # ! [PySnippetCMeshStdBuild1_1] XCoords=[-0.3,0.,0.1,0.3,0.45,0.47,0.49,1.,1.22] # 9 values along X YCoords=[0.,0.1,0.37,0.45,0.47,0.49,1.007] # 7 values along Y - arrX=DataArrayDouble.New(XCoords) + arrX=DataArrayDouble(XCoords) arrX.setInfoOnComponent(0,"X [m]") - arrY=DataArrayDouble.New(YCoords) + arrY=DataArrayDouble(YCoords) arrY.setInfoOnComponent(0,"Y [m]") # ! [PySnippetCMeshStdBuild1_1] # ! [PySnippetCMeshStdBuild1_2] - mesh=MEDCouplingCMesh.New("My2D_CMesh") + mesh=MEDCouplingCMesh("My2D_CMesh") mesh.setCoords(arrX,arrY) # ! [PySnippetCMeshStdBuild1_2] # ! [PySnippetCMeshStdBuild1_3] @@ -2197,7 +2150,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): self.assertEqual(2,mesh.getSpaceDimension()) self.assertEqual(2,mesh.getMeshDimension()) # ! [PySnippetCMeshStdBuild1_3] - mesh=MEDCouplingCMesh.New("My2D_CMesh") + mesh=MEDCouplingCMesh("My2D_CMesh") # ! [PySnippetCMeshStdBuild1_2bis] mesh.setCoordsAt(0,arrX) mesh.setCoordsAt(1,arrY) @@ -2216,15 +2169,15 @@ class MEDCouplingBasicsTest(unittest.TestCase): nodalConnPerCellIndex=[0,5,9,13,18,23] # ! [PySnippetUMeshAdvBuild1_1] # ! [PySnippetUMeshAdvBuild1_2] - mesh=MEDCouplingUMesh.New("My2DMesh",2) + mesh=MEDCouplingUMesh("My2DMesh",2) # ! [PySnippetUMeshAdvBuild1_2] # ! [PySnippetUMeshAdvBuild1_3] - nodalConn=DataArrayInt.New(nodalConnPerCell,23,1) - nodalConnI=DataArrayInt.New(nodalConnPerCellIndex,6,1) + nodalConn=DataArrayInt(nodalConnPerCell,23,1) + nodalConnI=DataArrayInt(nodalConnPerCellIndex,6,1) mesh.setConnectivity(nodalConn,nodalConnI,True) # ! [PySnippetUMeshAdvBuild1_3] # ! [PySnippetUMeshAdvBuild1_4] - coordsArr=DataArrayDouble.New(coords,9,3)#here coordsArr are declared to have 3 components, mesh will deduce that its spaceDim==3. + coordsArr=DataArrayDouble(coords,9,3)#here coordsArr are declared to have 3 components, mesh will deduce that its spaceDim==3. mesh.setCoords(coordsArr)#coordsArr contains 9 tuples, that is to say mesh contains 9 nodes. # ! [PySnippetUMeshAdvBuild1_4] # ! [PySnippetUMeshAdvBuild1_5] @@ -2237,34 +2190,34 @@ class MEDCouplingBasicsTest(unittest.TestCase): dataDouble=[0.,10.,20.,1.,11.,21.,2.,12.,22.,3.,13.,23.,4.,14.,24.] # ! [PySnippetDataArrayBuild1_0] # ! [PySnippetDataArrayBuild1_1] - arrayDouble=DataArrayDouble.New() + arrayDouble=DataArrayDouble() arrayDouble.setValues(dataDouble,5,3)# 5 tuples containing each 3 components # ! [PySnippetDataArrayBuild1_1] # ! [PySnippetDataArrayBuild1_1bis] - arrayDouble=DataArrayDouble.New(dataDouble,5,3) + arrayDouble=DataArrayDouble(dataDouble,5,3) # ! [PySnippetDataArrayBuild1_1bis] # ! [PySnippetDataArrayBuild1_2] dataInt=[0, 10, 20, 1, 11, 21, 2, 12, 22, 3, 13, 23, 4, 14, 24] # ! [PySnippetDataArrayBuild1_2] # ! [PySnippetDataArrayBuild1_3] - arrayInt=DataArrayInt.New() + arrayInt=DataArrayInt() arrayInt.setValues(dataInt,5,3)# 5 tuples containing each 3 components # ! [PySnippetDataArrayBuild1_3] # ! [PySnippetDataArrayBuild1_3bis] - arrayInt=DataArrayInt.New(dataInt,5,3) + arrayInt=DataArrayInt(dataInt,5,3) # ! [PySnippetDataArrayBuild1_3bis] return def testExampleFieldDoubleBuild1(self): - XCoords=[-0.3,0.07,0.1,0.3,0.45,0.47,0.49,1.,1.22] ; arrX=DataArrayDouble.New(XCoords) - YCoords=[0.07,0.1,0.37,0.45,0.47,0.49,1.007] ; arrY=DataArrayDouble.New(YCoords) - mesh=MEDCouplingCMesh.New("My2D_CMesh") + XCoords=[-0.3,0.07,0.1,0.3,0.45,0.47,0.49,1.,1.22]; arrX=DataArrayDouble(XCoords) + YCoords=[0.07,0.1,0.37,0.45,0.47,0.49,1.007]; arrY=DataArrayDouble(YCoords) + mesh=MEDCouplingCMesh("My2D_CMesh") mesh.setCoords(arrX,arrY) # ! [PySnippetFieldDoubleBuild1_1] - fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,NO_TIME) + fieldOnCells=MEDCouplingFieldDouble(ON_CELLS,NO_TIME) fieldOnCells.setName("MyTensorFieldOnCellNoTime") fieldOnCells.setMesh(mesh) - array=DataArrayDouble.New() + array=DataArrayDouble() array.alloc(fieldOnCells.getMesh().getNumberOfCells(),9) # Implicitely fieldOnCells will be a 9 components field. array.fillWithValue(7.) fieldOnCells.setArray(array) @@ -2288,15 +2241,15 @@ class MEDCouplingBasicsTest(unittest.TestCase): return def testExampleFieldDoubleBuild2(self): - XCoords=[-0.3,0.,0.1,0.3,0.45,0.47,0.49,1.,1.22] ; arrX=DataArrayDouble.New(XCoords) - YCoords=[0.,0.1,0.37,0.45,0.47,0.49,1.007] ; arrY=DataArrayDouble.New(YCoords) - mesh=MEDCouplingCMesh.New("My2D_CMesh") + XCoords=[-0.3,0.,0.1,0.3,0.45,0.47,0.49,1.,1.22]; arrX=DataArrayDouble(XCoords) + YCoords=[0.,0.1,0.37,0.45,0.47,0.49,1.007]; arrY=DataArrayDouble(YCoords) + mesh=MEDCouplingCMesh("My2D_CMesh") mesh.setCoords(arrX,arrY) # ! [PySnippetFieldDoubleBuild2_1] - fieldOnNodes=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME) + fieldOnNodes=MEDCouplingFieldDouble(ON_NODES,NO_TIME) fieldOnNodes.setName("MyScalarFieldOnNodeNoTime") fieldOnNodes.setMesh(mesh) - array=DataArrayDouble.New() + array=DataArrayDouble() array.alloc(fieldOnNodes.getMesh().getNumberOfNodes(),1) # Implicitely fieldOnNodes will be a 1 component field. array.fillWithValue(7.) fieldOnNodes.setArray(array) @@ -2306,17 +2259,17 @@ class MEDCouplingBasicsTest(unittest.TestCase): return def testExampleFieldDoubleBuild3(self): - XCoords=[-0.3,0.,0.1,0.3,0.45,0.47,0.49,1.,1.22] ; arrX=DataArrayDouble.New(XCoords) - YCoords=[0.,0.1,0.37,0.45,0.47,0.49,1.007] ; arrY=DataArrayDouble.New(YCoords) - mesh=MEDCouplingCMesh.New("My2D_CMesh") + XCoords=[-0.3,0.,0.1,0.3,0.45,0.47,0.49,1.,1.22]; arrX=DataArrayDouble(XCoords) + YCoords=[0.,0.1,0.37,0.45,0.47,0.49,1.007]; arrY=DataArrayDouble(YCoords) + mesh=MEDCouplingCMesh("My2D_CMesh") mesh.setCoords(arrX,arrY) # ! [PySnippetFieldDoubleBuild3_1] - fieldOnCells=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME) + fieldOnCells=MEDCouplingFieldDouble(ON_CELLS,ONE_TIME) fieldOnCells.setName("MyTensorFieldOnCellNoTime") fieldOnCells.setTimeUnit("ms") # Time unit is ms. fieldOnCells.setTime(4.22,2,-1) # Time attached is 4.22 ms, iteration id is 2 and order id (or sub iteration id) is -1 fieldOnCells.setMesh(mesh) - array=DataArrayDouble.New() + array=DataArrayDouble() array.alloc(fieldOnCells.getMesh().getNumberOfCells(),2) # Implicitely fieldOnCells will be a 2 components field. array.fillWithValue(7.) fieldOnCells.setArray(array) @@ -2326,18 +2279,18 @@ class MEDCouplingBasicsTest(unittest.TestCase): return def testExampleFieldDoubleBuild4(self): - XCoords=[-0.3,0.,0.1,0.3,0.45,0.47,0.49,1.,1.22] ; arrX=DataArrayDouble.New(XCoords) - YCoords=[0.,0.1,0.37,0.45,0.47,0.49,1.007] ; arrY=DataArrayDouble.New(YCoords) - mesh=MEDCouplingCMesh.New("My2D_CMesh") + XCoords=[-0.3,0.,0.1,0.3,0.45,0.47,0.49,1.,1.22]; arrX=DataArrayDouble(XCoords) + YCoords=[0.,0.1,0.37,0.45,0.47,0.49,1.007]; arrY=DataArrayDouble(YCoords) + mesh=MEDCouplingCMesh("My2D_CMesh") mesh.setCoords(arrX,arrY) # ! [PySnippetFieldDoubleBuild4_1] - fieldOnNodes=MEDCouplingFieldDouble.New(ON_NODES,CONST_ON_TIME_INTERVAL) + fieldOnNodes=MEDCouplingFieldDouble(ON_NODES,CONST_ON_TIME_INTERVAL) fieldOnNodes.setName("MyVecFieldOnNodeWithConstTime") fieldOnNodes.setTimeUnit("ms") # Time unit is ms. fieldOnNodes.setStartTime(4.22,2,-1) fieldOnNodes.setEndTime(6.44,4,-1)# fieldOnNodes is defined in interval [4.22 ms,6.44 ms] fieldOnNodes.setMesh(mesh) - array=DataArrayDouble.New() + array=DataArrayDouble() array.alloc(fieldOnNodes.getMesh().getNumberOfNodes(),3) # Implicitely fieldOnNodes will be a 3 components field. array.fillWithValue(7.) fieldOnNodes.setArray(array) @@ -2348,11 +2301,11 @@ class MEDCouplingBasicsTest(unittest.TestCase): def testExampleDataArrayApplyFunc1(self): # ! [PySnippetDataArrayApplyFunc1_1] - d=DataArrayDouble.New([1.,2.,11.,12.,21.,22.,31.,41.],4,2) + d=DataArrayDouble([1.,2.,11.,12.,21.,22.,31.,41.],4,2) self.assertRaises(InterpKernelException,d.applyFunc,"x*y") # ! [PySnippetDataArrayApplyFunc1_1] # ! [PySnippetDataArrayApplyFunc1_2] - d=DataArrayDouble.New([1.,2.,11.,12.,21.,22.,31.,41.],4,2) + d=DataArrayDouble([1.,2.,11.,12.,21.,22.,31.,41.],4,2) d1=d.applyFunc("smth*smth") self.assertTrue(d1.isEqual(DataArrayDouble([1.,4.,121.,144.,441.,484.,961.,1681.],4,2),1e-12)) # ! [PySnippetDataArrayApplyFunc1_2] @@ -2361,7 +2314,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): self.assertTrue(d2.isEqual(DataArrayDouble([1.,4.,11.,24.,21.,44.,31.,82.],4,2),1e-12)) # ! [PySnippetDataArrayApplyFunc1_3] # ! [PySnippetDataArrayApplyFunc1_4] - dd=DataArrayDouble.New([1.,4.,3.,11.,144.,13.,21.,484.,23.,31.,1024.,33.],4,3) + dd=DataArrayDouble([1.,4.,3.,11.,144.,13.,21.,484.,23.,31.,1024.,33.],4,3) # ! [PySnippetDataArrayApplyFunc1_4] # ! [PySnippetDataArrayApplyFunc1_5] dd1=dd.applyFunc(1,"f+sqrt(g)+h") @@ -2372,7 +2325,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): self.assertTrue(dd2.isEqual(DataArrayDouble([4.,24.,44.,64.],4,1),1e-12)) # ! [PySnippetDataArrayApplyFunc1_6] # ! [PySnippetDataArrayApplyFunc1_7] - ddd=DataArrayDouble.New([1.,4.,3.,11.,144.,13.,21.,484.,23.,31.,1024.,33.],4,3) + ddd=DataArrayDouble([1.,4.,3.,11.,144.,13.,21.,484.,23.,31.,1024.,33.],4,3) ddd.setInfoOnComponents(["Y [m]","AA [m/s]","GG [MW]"]) # ! [PySnippetDataArrayApplyFunc1_7] # ! [PySnippetDataArrayApplyFunc1_8] diff --git a/src/MEDLoader/MEDFileField.cxx b/src/MEDLoader/MEDFileField.cxx index cc4974c17..932e70028 100644 --- a/src/MEDLoader/MEDFileField.cxx +++ b/src/MEDLoader/MEDFileField.cxx @@ -2570,7 +2570,7 @@ MFFPMIter2::MFFPMIter2(const std::vector& cts } } -/// @cond INTERNAL +/// @endcond MEDFileFieldPerMesh::MEDFileFieldPerMesh(med_idt fid, MEDFileAnyTypeField1TSWithoutSDA *fath, int meshCsit, int meshIteration, int meshOrder, const MEDFileFieldNameScope& nasc, const MEDFileMesh *mm, const std::vector< std::pair > *entities):_mesh_iteration(meshIteration),_mesh_order(meshOrder), _father(fath) @@ -2942,6 +2942,7 @@ const MEDFileFieldLoc& MEDFileFieldGlobs::getLocalizationFromId(int locId) const return *_locs[locId]; } +/// @cond INTERNAL namespace ParaMEDMEMImpl { class LocFinder @@ -2962,6 +2963,7 @@ namespace ParaMEDMEMImpl const std::string& _pfl; }; } +/// @endcond int MEDFileFieldGlobs::getLocalizationId(const std::string& loc) const { diff --git a/src/MEDLoader/MEDFileMesh.cxx b/src/MEDLoader/MEDFileMesh.cxx index 812e30c1a..a2ae03287 100644 --- a/src/MEDLoader/MEDFileMesh.cxx +++ b/src/MEDLoader/MEDFileMesh.cxx @@ -3767,12 +3767,14 @@ bool MEDFileUMesh::unPolyze(std::vector& oldCode, std::vector& newCode return ret; } +/*! \cond HIDDEN_ITEMS */ struct MEDLoaderAccVisit1 { MEDLoaderAccVisit1():_new_nb_of_nodes(0) { } int operator()(bool val) { return val?_new_nb_of_nodes++:-1; } int _new_nb_of_nodes; }; +/*! \endcond */ /*! * Array returned is the correspondance in \b old \b to \b new format. The returned array is newly created and should be dealt by the caller. diff --git a/src/MEDLoader/MEDLoader.cxx b/src/MEDLoader/MEDLoader.cxx index 9c7189655..70c6d889a 100644 --- a/src/MEDLoader/MEDLoader.cxx +++ b/src/MEDLoader/MEDLoader.cxx @@ -44,6 +44,15 @@ #include #include +/*! \class MEDLoader + * + * \brief Static class offering the "basic" API to read and write MED files/ + * + * This class implements only static methods and offers the high level API to access MED files. + * Take a look at \ref medloader for more details. + * + */ + med_geometry_type typmai[MED_N_CELL_FIXED_GEO] = { MED_POINT1, MED_SEG2, MED_SEG3, diff --git a/src/MEDOP/CMakeLists.txt b/src/MEDOP/CMakeLists.txt index 276489a86..1818efef3 100644 --- a/src/MEDOP/CMakeLists.txt +++ b/src/MEDOP/CMakeLists.txt @@ -28,7 +28,3 @@ IF(SALOME_MED_ENABLE_PYTHON) ADD_SUBDIRECTORY(tui) ADD_SUBDIRECTORY(exe) ENDIF() - -IF(SALOME_BUILD_DOC) - ADD_SUBDIRECTORY(doc) -ENDIF(SALOME_BUILD_DOC) diff --git a/src/ParaMEDMEM/CommInterface.cxx b/src/ParaMEDMEM/CommInterface.cxx index ae9e2d9f1..948f099d8 100644 --- a/src/ParaMEDMEM/CommInterface.cxx +++ b/src/ParaMEDMEM/CommInterface.cxx @@ -21,14 +21,17 @@ namespace ParaMEDMEM { - /*! \defgroup comm_interface CommInterface - Class \a CommInterface is the gateway to the MPI library. + /*! \anchor CommInterface-det + \class CommInterface + + The class \a CommInterface is the gateway to the MPI library. + It is a helper class that gathers the calls to the MPI - library that are made in the ParaMEDMEM library. This gathering + library that are made in the %ParaMEDMEM library. This gathering allows easier gathering of information about the communication in the library. - It is typically called after the MPI_Init() call in a program. It is afterwards passed as a parameter to the constructors of ParaMEDMEM objects so that they access the MPI library via the CommInterface. + It is typically called after the MPI_Init() call in a program. It is afterwards passed as a parameter to the constructors of %ParaMEDMEM objects so that they access the MPI library via the CommInterface. As an example, the following code excerpt initializes a processor group made of the zero processor. diff --git a/src/ParaMEDMEM/DisjointDEC.cxx b/src/ParaMEDMEM/DisjointDEC.cxx index f3f9bf666..e8ee329e9 100644 --- a/src/ParaMEDMEM/DisjointDEC.cxx +++ b/src/ParaMEDMEM/DisjointDEC.cxx @@ -31,49 +31,47 @@ #include #include -/*! \defgroup dec DEC - * - * \section decintroduction Introduction - * - * Interface class for creation of a link between two - * processor groups for exhanging mesh or field data. - * The \c DEC is defined by attaching a field on the receiving or on the - * sending side. - * On top of attaching a \c ParaMEDMEM::FIELD, it is possible to - * attach a ICoCo::Field. This class is an abstract class that enables - * coupling of codes that respect the ICoCo interface \ref icoco. It has two implementations: - * one for codes that express their fields as \ref medoupling fields (ICoCo::MEDField). - * - * \section dec_options DEC Options - * Options supported by \c DEC objects are - * - * - * - * - *
OptionDescriptionDefault value
ForcedRenormalizationAfter receiving data, the target field is renormalized so that L2-norms of the source and target fields match. false
- - - The following code excerpt shows how to set options for an object that inherits from \c DEC : - - \code - InterpKernelDEC dec(source_group,target_group); - dec.setOptions("ForcedRenormalization",true); - dec.attachLocalField(field); - dec.synchronize(); - if (source_group.containsMyRank()) - dec.sendData(); - else - dec.recvData(); - \endcode -*/ namespace ParaMEDMEM { - - /*! \addtogroup dec - @{ + /*! + * \anchor DisjointDEC-det + * \class DisjointDEC + * + * Interface class for creation of a link between two + * processor groups for exhanging mesh or field data. + * The \c DEC is defined by attaching a field on the receiving or on the + * sending side. + * On top of attaching a \c ParaMEDMEM::ParaFIELD, it is possible to + * attach a ICoCo::Field. This class is an abstract class that enables + * coupling of codes that respect the ICoCo interface \ref icoco. It has two implementations: + * one for codes that express their fields as \ref fields "MEDCoupling fields" (ICoCo::MEDField). + * + * \section dec_options DEC Options + * Options supported by \c DEC objects are + * + * + * + * + *
OptionDescriptionDefault value
ForcedRenormalizationAfter receiving data, the target field is renormalized so that L2-norms of the source and target fields match. false
+ + + The following code excerpt shows how to set options for an object that inherits from \c DEC : + + \code + InterpKernelDEC dec(source_group,target_group); + dec.setOptions("ForcedRenormalization",true); + dec.attachLocalField(field); + dec.synchronize(); + if (source_group.containsMyRank()) + dec.sendData(); + else + dec.recvData(); + \endcode */ + + DisjointDEC::DisjointDEC(ProcessorGroup& source_group, ProcessorGroup& target_group):_local_field(0), _source_group(&source_group), _target_group(&target_group), @@ -305,7 +303,6 @@ namespace ParaMEDMEM } } } - /*! @} */ bool DisjointDEC::isInSourceSide() const { diff --git a/src/ParaMEDMEM/ExplicitCoincidentDEC.cxx b/src/ParaMEDMEM/ExplicitCoincidentDEC.cxx index 79852a1ca..5d30c60d4 100644 --- a/src/ParaMEDMEM/ExplicitCoincidentDEC.cxx +++ b/src/ParaMEDMEM/ExplicitCoincidentDEC.cxx @@ -32,7 +32,14 @@ using namespace std; namespace ParaMEDMEM { - /*! \defgroup explicitcoincidentdec ExplicitCoincidentDEC + /*! + * \anchor ExplicitCoincidentDEC-det + * \class ExplicitCoincidentDEC + * + * TODO: doc + */ + + /*! Constructor */ ExplicitCoincidentDEC::ExplicitCoincidentDEC():_toposource(0),_topotarget(0) { @@ -42,12 +49,6 @@ namespace ParaMEDMEM { } - - /*! - \addtogroup explicitcoincidentdec - @{ - */ - /*! Synchronization process for exchanging topologies */ void ExplicitCoincidentDEC::synchronize() @@ -388,8 +389,5 @@ namespace ParaMEDMEM _comm_interface->allToAllV(_sendbuffer, _sendcounts, _senddispls, MPI_DOUBLE, _recvbuffer, _recvcounts, _recvdispls, MPI_DOUBLE,MPI_COMM_WORLD); } - /*! - @} - */ } diff --git a/src/ParaMEDMEM/InterpKernelDEC.cxx b/src/ParaMEDMEM/InterpKernelDEC.cxx index e8605ded2..a7557e509 100644 --- a/src/ParaMEDMEM/InterpKernelDEC.cxx +++ b/src/ParaMEDMEM/InterpKernelDEC.cxx @@ -34,21 +34,34 @@ namespace ParaMEDMEM { /*! - \defgroup interpkerneldec InterpKernelDEC + \anchor InterpKernelDEC-det + \class InterpKernelDEC - \section overview Overview + \section dec-over Overview - The InterpKernelDEC enables the \ref conservativeremapping of fields between two parallel codes. This remapping is based on the computation of intersection volumes between elements from code A and elements from code B. The computation is possible for 3D meshes, 2D meshes, and 3D-surface meshes. Dimensions must be similar for code A and code B (for instance, though it could be desirable, it is not yet possible to couple 3D surfaces with 2D surfaces). + The InterpKernelDEC enables the \ref InterpKerRemapGlobal "remapping" of fields between two parallel codes. + This remapping is based on the computation of intersection volumes between elements from code A + and elements from code B. The computation is possible for 3D meshes, 2D meshes, and 3D-surface + meshes. Dimensions must be similar for code A and code B (for instance, though it could be + desirable, it is not yet possible to couple 3D surfaces with 2D surfaces). In the present version, only fields lying on elements are considered. - \image html NonCoincident_small.png "Example showing the transfer from a field based on a quadrangular mesh to a triangular mesh. In a P0-P0 interpolation, to obtain the value on a triangle, the values on quadrangles are weighted by their intersection area and summed." + \image html NonCoincident_small.png "Example showing the transfer from a field based on a + quadrangular mesh to a triangular mesh. In a P0-P0 interpolation, to obtain the value on a triangle, + the values on quadrangles are weighted by their intersection area and summed." - \image latex NonCoincident_small.eps "Example showing the transfer from a field based on a quadrangular mesh to a triangular mesh. In a P0-P0 interpolation, to obtain the value on a triangle, the values on quadrangles are weighted by their intersection area and summed." + \image latex NonCoincident_small.eps "Example showing the transfer from a field based on a quadrangular + mesh to a triangular mesh. In a P0-P0 interpolation, to obtain the value on a triangle, the values + on quadrangles are weighted by their intersection area and summed." A typical use of InterpKernelDEC encompasses two distinct phases : - - A setup phase during which the intersection volumes are computed and the communication structures are setup. This corresponds to calling the InterpKernelDEC::synchronize() method. - - A use phase during which the remappings are actually performed. This corresponds to the calls to sendData() and recvData() which actually trigger the data exchange. The data exchange are synchronous in the current version of the library so that recvData() and sendData() calls must be synchronized on code A and code B processor groups. + - A setup phase during which the intersection volumes are computed and the communication structures are + setup. This corresponds to calling the InterpKernelDEC::synchronize() method. + - A use phase during which the remappings are actually performed. This corresponds to the calls to + sendData() and recvData() which actually trigger the data exchange. The data exchange are synchronous + in the current version of the library so that recvData() and sendData() calls must be synchronized + on code A and code B processor groups. The following code excerpt illutrates a typical use of the InterpKernelDEC class. @@ -63,12 +76,19 @@ namespace ParaMEDMEM dec.sendData(); ... \endcode - A \ref conservativeremapping of the field from the source mesh to the target mesh is performed by the function synchronise(), which computes the \ref remappingmatrix. + A \ref InterpKerRemapGlobal "remapping" of the field from the source mesh to the target mesh is performed by + the function synchronise(), which computes the interpolation matrix. - Computing the field on the receiving side can be expressed in terms of a matrix-vector product : \f$ \phi_t=W.\phi_s\f$, with \f$ \phi_t \f$ the field on the target side and \f$ \phi_s \f$ the field on the source side. - When remapping a 3D surface to another 3D surface, a projection phase is necessary to match elements from both sides. Care must be taken when defining this projection to obtain a \ref conservative remapping. + Computing the field on the receiving side can be expressed in terms of a matrix-vector product : + \f$ \phi_t=W.\phi_s\f$, with \f$ \phi_t \f$ the field on the target side and \f$ \phi_s \f$ the field + on the source side. + When remapping a 3D surface to another 3D surface, a projection phase is necessary to match elements + from both sides. Care must be taken when defining this projection to obtain a + \ref InterpKerRemapGlobal "conservative remapping". - In the P0-P0 case, this matrix is a plain rectangular matrix with coefficients equal to the intersection areas between triangle and quadrangles. For instance, in the above figure, the matrix is : + In the P0-P0 case, this matrix is a plain rectangular matrix with coefficients equal to the + intersection areas between triangle and quadrangles. For instance, in the above figure, the matrix + is : \f[ \begin{tabular}{|cccc|} @@ -85,7 +105,8 @@ namespace ParaMEDMEM On top of \ref dec_options, options supported by %InterpKernelDEC objects are related to the underlying Intersector class. All the options available in the intersector objects are - available for the %InterpKernelDEC object. The various options available for * intersectors can be reviewed in \ref InterpKerIntersectors. + available for the %InterpKernelDEC object. The various options available for * intersectors can + be reviewed in \ref InterpKerIntersectors. For instance : \verbatim @@ -98,11 +119,6 @@ namespace ParaMEDMEM \warning{ Options must be set before calling the synchronize method. } */ - - /*! - \addtogroup interpkerneldec - @{ - */ InterpKernelDEC::InterpKernelDEC():_interpolation_matrix(0) { @@ -272,9 +288,5 @@ namespace ParaMEDMEM _interpolation_matrix->getAccessDEC()->setTime(time,deltatime); sendData() ; } - - /*! - @} - */ } diff --git a/src/ParaMEDMEM/InterpolationMatrix.cxx b/src/ParaMEDMEM/InterpolationMatrix.cxx index 99c12981a..8b8c50f61 100644 --- a/src/ParaMEDMEM/InterpolationMatrix.cxx +++ b/src/ParaMEDMEM/InterpolationMatrix.cxx @@ -39,27 +39,20 @@ #include -// class InterpolationMatrix -// This class enables the storage of an interpolation matrix Wij mapping -// source field Sj to target field Ti via Ti=Vi^(-1).Wij.Sj. -// The matrix is built and stored on the processors belonging to the source -// group. - using namespace std; namespace ParaMEDMEM { - // ==================================================================== - // Creates an empty matrix structure linking two distributed supports. - // The method must be called by all processors belonging to source - // and target groups. - // param source_support local support - // param source_group processor group containing the local processors - // param target_group processor group containing the distant processors - // param method interpolation method - // ==================================================================== - + /**! + Creates an empty matrix structure linking two distributed supports. + The method must be called by all processors belonging to source + and target groups. + \param source_support local support + \param source_group processor group containing the local processors + \param target_group processor group containing the distant processors + \param method interpolation method + */ InterpolationMatrix::InterpolationMatrix(const ParaMEDMEM::ParaFIELD *source_field, const ProcessorGroup& source_group, const ProcessorGroup& target_group, @@ -84,22 +77,21 @@ namespace ParaMEDMEM } - // ====================================================================== - // \brief Adds the contribution of a distant subdomain to the* - // interpolation matrix. - // The method adds contribution to the interpolation matrix. - // For each row of the matrix, elements are addded as - // a (column, coeff) pair in the _coeffs array. This column number refers - // to an element on the target side via the _col_offsets array. - // It is made of a series of (iproc, ielem) pairs. - // The number of elements per row is stored in the row_offsets array. - - // param distant_support local representation of the distant subdomain - // param iproc_distant id of the distant subdomain (in the distant group) - // param distant_elems mapping between the local representation of - // the subdomain and the actual elem ids on the distant subdomain - // ====================================================================== - + /*! + \brief Adds the contribution of a distant subdomain to the* + interpolation matrix. + The method adds contribution to the interpolation matrix. + For each row of the matrix, elements are addded as + a (column, coeff) pair in the _coeffs array. This column number refers + to an element on the target side via the _col_offsets array. + It is made of a series of (iproc, ielem) pairs. + The number of elements per row is stored in the row_offsets array. + + param distant_support local representation of the distant subdomain + param iproc_distant id of the distant subdomain (in the distant group) + param distant_elems mapping between the local representation of + the subdomain and the actual elem ids on the distant subdomain + */ void InterpolationMatrix::addContribution ( MEDCouplingPointSet& distant_support, int iproc_distant, const int* distant_elems, @@ -840,14 +832,13 @@ namespace ParaMEDMEM } } - // ================================================================== - // The call to this method updates the arrays on the target side - // so that they know which amount of data from which processor they - // should expect. - // That call makes actual interpolations via multiply method - // available. - // ================================================================== + /**! The call to this method updates the arrays on the target side + so that they know which amount of data from which processor they + should expect. + That call makes actual interpolations via multiply method + available. + */ void InterpolationMatrix::prepare() { int nbelems = _source_field->getField()->getNumberOfTuples(); @@ -859,18 +850,18 @@ namespace ParaMEDMEM } - // ======================================================================= - // brief performs t=Ws, where t is the target field, s is the source field - // The call to this method must be called both on the working side - // and on the idle side. On the working side, the vector T=VT^(-1).(W.S) - // is computed and sent. On the idle side, no computation is done, but the - // result from the working side is received and the field is updated. + /*! + \brief performs t=Ws, where t is the target field, s is the source field - // param field source field on processors involved on the source side, - // target field on processors on the target side - // ======================================================================= + The call to this method must be called both on the working side + and on the idle side. On the working side, the vector T=VT^(-1).(W.S) + is computed and sent. On the idle side, no computation is done, but the + result from the working side is received and the field is updated. + \param field source field on processors involved on the source side, + target field on processors on the target side + */ void InterpolationMatrix::multiply(MEDCouplingFieldDouble& field) const { int nbcomp = field.getArray()->getNumberOfComponents(); @@ -917,20 +908,19 @@ namespace ParaMEDMEM } - // ========================================================================= - // brief performs s=WTt, where t is the target field, s is the source field, - // WT is the transpose matrix from W - - // The call to this method must be called both on the working side - // and on the idle side. On the working side, the target vector T is - // received and the vector S=VS^(-1).(WT.T) is computed to update - // the field. - // On the idle side, no computation is done, but the field is sent. + /**! + \brief performs s=WTt, where t is the target field, s is the source field, + WT is the transpose matrix from W - // param field source field on processors involved on the source side, - // target field on processors on the target side - // ========================================================================= + The call to this method must be called both on the working side + and on the idle side. On the working side, the target vector T is + received and the vector S=VS^(-1).(WT.T) is computed to update + the field. + On the idle side, no computation is done, but the field is sent. + param field source field on processors involved on the source side, + target field on processors on the target side + */ void InterpolationMatrix::transposeMultiply(MEDCouplingFieldDouble& field) const { int nbcomp = field.getArray()->getNumberOfComponents(); diff --git a/src/ParaMEDMEM/InterpolationMatrix.hxx b/src/ParaMEDMEM/InterpolationMatrix.hxx index 71f4eeca0..97fc2a300 100644 --- a/src/ParaMEDMEM/InterpolationMatrix.hxx +++ b/src/ParaMEDMEM/InterpolationMatrix.hxx @@ -29,6 +29,12 @@ namespace ParaMEDMEM { class ElementLocator; + /**! class InterpolationMatrix + This class enables the storage of an interpolation matrix Wij mapping + source field Sj to target field Ti via Ti=Vi^(-1).Wij.Sj. + The matrix is built and stored on the processors belonging to the source + group. + */ class InterpolationMatrix : public INTERP_KERNEL::InterpolationOptions, public DECOptions { diff --git a/src/ParaMEDMEM/MPIAccess.cxx b/src/ParaMEDMEM/MPIAccess.cxx index 2ca867122..b9389cdcc 100644 --- a/src/ParaMEDMEM/MPIAccess.cxx +++ b/src/ParaMEDMEM/MPIAccess.cxx @@ -26,8 +26,11 @@ using namespace std; namespace ParaMEDMEM { - /*! \defgroup mpi_access MPIAccess - Class \a MPIAccess is the gateway to the MPI library. + /**! + \anchor MPIAccess-det + \class MPIAccess + + The class \a MPIAccess is the gateway to the MPI library. It is a helper class that gathers the calls to the MPI library that are made in the ParaMEDMEM library. This gathering allows easier gathering of information about the communication diff --git a/src/ParaMEDMEM/MPIProcessorGroup.cxx b/src/ParaMEDMEM/MPIProcessorGroup.cxx index 055cc5122..5b7c24055 100644 --- a/src/ParaMEDMEM/MPIProcessorGroup.cxx +++ b/src/ParaMEDMEM/MPIProcessorGroup.cxx @@ -29,36 +29,34 @@ using namespace std; -/*! \defgroup processor_group Processor Groups - * - * \section processor_group_overview Overview - * The MPIProcessorGroup class is used to set up processor groups that help to define - * the MPI topology of the couplings. They can be set up in various ways, the most common being - * the use of the \c MPIProcessorGroup(Comminterface, int pfirst, int plast) - * constructor. - * - * The following code excerpt creates two processor groups on respectively 3 and 2 processors. - \verbatim - int main() - { - MPI_Init(&argc,&argv); - CommInterface comm_interface; - MPIProcessorGroup codeA_group(comm_interface, 0, 2); - MPIProcessorGroup codeB_group(comm_interface, 3, 4); - - ... - } - \endverbatim -*/ - namespace ParaMEDMEM { - /*! - \addtogroup processor_group - @{ + /*! + * \anchor MPIProcessorGroup-det + * \class MPIProcessorGroup + * + * \section processor_group_overview Overview + * The MPIProcessorGroup class is used to set up processor groups that help to define + * the MPI topology of the couplings. They can be set up in various ways, the most common being + * the use of the \c MPIProcessorGroup(Comminterface, int pfirst, int plast) + * constructor. + * + * The following code excerpt creates two processor groups on respectively 3 and 2 processors. + \verbatim + int main() + { + MPI_Init(&argc,&argv); + CommInterface comm_interface; + MPIProcessorGroup codeA_group(comm_interface, 0, 2); // groups processors 0, 1 and 2 + MPIProcessorGroup codeB_group(comm_interface, 3, 4); // groups processors 3 and 4 + + ... + } + \endverbatim */ + /*! * Creates a processor group that is based on all the MPI_COMM_WORLD processor.This routine must be called by all processors in MPI_COMM_WORLD. @@ -164,9 +162,6 @@ namespace ParaMEDMEM delete[] ranks; _comm_interface.groupFree(&group_world); // MPI_Group is a C structured and won't get de-allocated automatically? } - /*! - @} - */ MPIProcessorGroup::MPIProcessorGroup (const ProcessorGroup& proc_group, set proc_ids) : ProcessorGroup(proc_group.getCommInterface()),_world_comm(MPI_COMM_WORLD) @@ -188,10 +183,6 @@ namespace ParaMEDMEM _comm_interface.commFree(&_comm); } - /*! - \addtogroup processor_group - @{ - */ /*! Translation of the rank id between two processor groups. This method translates rank \a rank on the current processor group to the rank on group pointed by \a group. @@ -251,9 +242,6 @@ namespace ParaMEDMEM return rank; } - /*! - @} - */ ProcessorGroup* MPIProcessorGroup::createProcGroup() const { set procs; diff --git a/src/ParaMEDMEM/NonCoincidentDEC.cxx b/src/ParaMEDMEM/NonCoincidentDEC.cxx index 830d3d11c..4f44a7f54 100644 --- a/src/ParaMEDMEM/NonCoincidentDEC.cxx +++ b/src/ParaMEDMEM/NonCoincidentDEC.cxx @@ -38,18 +38,18 @@ namespace ParaMEDMEM { /*! - \defgroup noncoincidentdec NonCoincidentDEC - - \section overview Overview + \anchor NonCoincidentDEC-det + \class NonCoincidentDEC \c NonCoincidentDEC enables nonconservative remapping of fields between two parallel codes. The computation is possible for 3D meshes and 2D meshes. It is not available for 3D surfaces. The computation enables fast parallel localization, and is based on a point in element search, followed by a field evaluation at the point location. Thus, it is typically - faster than the \ref interpkerneldec which gives a \ref conservativeremapping. + faster than the \ref InterpKernelDEC-det "InterpKernelDEC" which gives a + \ref InterpKerRemapGlobal "conservative remapping". It is particularly true for the initialisation phase (synchronize) - which is very computationnaly intensive in \ref interpkerneldec. + which is very computationnaly intensive in \ref InterpKernelDEC-det. In the present version, only fields lying on elements are considered. The value is estimated by locating the barycenter of the target @@ -242,12 +242,7 @@ namespace ParaMEDMEM { } - /*! - \addtogroup noncoincidentdec - @{ - */ - - /*! Constructor of a non coincident \ref dec with + /*! Constructor of a non coincident \ref para-dec "DEC" with * a source group on which lies a field lying on a mesh and a * target group on which lies a mesh. * @@ -392,7 +387,4 @@ namespace ParaMEDMEM renormalizeTargetField(); } - /*! - @} - */ } diff --git a/src/ParaMEDMEM/OverlapDEC.cxx b/src/ParaMEDMEM/OverlapDEC.cxx index 61f80ba6a..c799c23aa 100644 --- a/src/ParaMEDMEM/OverlapDEC.cxx +++ b/src/ParaMEDMEM/OverlapDEC.cxx @@ -24,95 +24,141 @@ #include "MPIProcessorGroup.hxx" #include "OverlapElementLocator.hxx" #include "OverlapInterpolationMatrix.hxx" + +namespace ParaMEDMEM +{ /*! - \defgroup overlapdec OverlapDEC - The \c OverlapDEC enables the \ref InterpKerRemapGlobal "conservative remapping" of fields between two parallel codes. This remapping is based on the computation of intersection volumes on a \b same \b processor \b group. On this processor group are defined two field-templates called A and B. The computation is possible for 3D meshes, 2D meshes, 3D-surface meshes, 1D meshes and 2D-curve meshes. Dimensions must be similar for the distribution templates A and B. - The main difference with \ref interpkerneldec is that this \ref dec manages 2 field templates on each processor of the processor group (A and B) called source and target. - Furthermore all processors in processor group cooperates in global interpolation matrix computation. In this respect \ref InterpKernelIDEC is a specialization of \c OverlapDEC. + \anchor OverlapDEC-det + \class OverlapDEC + + The \c OverlapDEC enables the \ref InterpKerRemapGlobal "conservative remapping" of fields between + two parallel codes. This remapping is based on the computation of intersection volumes on + a \b same \b processor \b group. On this processor group are defined two field-templates called A + and B. The computation is possible for 3D meshes, 2D meshes, 3D-surface meshes, 1D meshes and + 2D-curve meshes. Dimensions must be similar for the distribution templates A and B. + The main difference with \ref InterpKernelDEC-det is that this \ref para-dec "DEC" manages 2 field templates + on each processor of the processor group (A and B) called source and target. + Furthermore all processors in processor group cooperates in global interpolation matrix + computation. In this respect \ref InterpKernelDEC is a specialization of \c OverlapDEC. \section ParaMEDMEMOverlapDECAlgorithmDescription Algorithm Description - Let's consider the following use case that is ran in ParaMEDMEMTest_OverlapDEC.cxx to describes the different steps of the computation. The processor group contains 3 processors. + Let's consider the following use case that is ran in ParaMEDMEMTest_OverlapDEC.cxx to describes + the different steps of the computation. The processor group contains 3 processors. \anchor ParaMEDMEMOverlapDECImgTest1 \image html OverlapDEC1.png "Example showing the use case in order to explain the different steps." - \subsection ParaMEDMEMOverlapDECAlgoStep1 Step 1 : Bounding box exchange and global interaction between procs computation. + \subsection ParaMEDMEMOverlapDECAlgoStep1 Step 1 : Bounding box exchange and global interaction + between procs computation. - In order to reduce as much as possible the amount of communications between distant processors, every processor computes a bounding box for A and B. Then a AllToAll communication is performed so that + In order to reduce as much as possible the amount of communications between distant processors, + every processor computes a bounding box for A and B. Then a AllToAll communication is performed + so that every processor can compute the \b global interactions between processor. - This computation leads every processor to compute the same global TODO list expressed as a list of pair. A pair (x,y) means that proc \b x fieldtemplate A can interact with fieltemplate B of proc \b y because the two bounding boxes interact. - In the \ref ParaMEDMEMOverlapDECImgTest1 "example above" this computation leads to the following a \b global TODO list : + This computation leads every processor to compute the same global TODO list expressed as a list + of pair. A pair ( x, y ) means that proc \b x fieldtemplate A can interact with fieltemplate B of + proc \b y because the two bounding boxes interact. + In the \ref ParaMEDMEMOverlapDECImgTest1 "example above" this computation leads to the following + a \b global TODO list : \b (0,0),(0,1),(1,0),(1,2),(2,0),(2,1),(2,2) - Here the pair (0,2) does not appear because the bounding box of fieldtemplateA of proc#2 does not intersect that of fieldtemplate B on proc#0. + Here the pair (0,2) does not appear because the bounding box of fieldtemplateA of proc#2 does + not intersect that of fieldtemplate B on proc#0. Stage performed by ParaMEDMEM::OverlapElementLocator::computeBoundingBoxes. \subsection ParaMEDMEMOverlapDECAlgoStep2 Step 2 : Computation of local TODO list - Starting from the global interaction previously computed in \ref ParaMEDMEMOverlapDECAlgoStep1 "Step 1", each proc computes the TODO list per proc. - The following rules is chosen : a pair (x,y) can be treated by either proc #x or proc #y, in order to reduce the amount of data transfert among - processors. The algorithm chosen for load balancing is the following : Each processor has an empty \b local TODO list at the beginning. Then for each pair (k,m) in - \b global TODO list, if proc#k has less temporary local list than proc#m pair, (k,m) is added to temparary local TODO list of proc#k. - If proc#m has less temporary local TODO list than proc#k pair, (k,m) is added to temporary local TODO list of proc#m. - If proc#k and proc#m have the same amount of temporary local TODO list pair, (k,m) is added to temporary local TODO list of proc#k. - - In the \ref ParaMEDMEMOverlapDECImgTest1 "example above" this computation leads to the following local TODO list : - - - proc#0 : (0,0) - - proc#1 : (0,1),(1,0) - - proc#2 : (1,2),(2,0),(2,1),(2,2) + Starting from the global interaction previously computed in \ref ParaMEDMEMOverlapDECAlgoStep1 + "Step 1", each proc computes the TODO list per proc. + The following rules is chosen : a pair (x,y) can be treated by either proc \#x or proc \#y, + in order to reduce the amount of data transfert among + processors. The algorithm chosen for load balancing is the following : Each processor has + an empty \b local TODO list at the beginning. Then for each pair (k,m) in + \b global TODO list, if proc\#k has less temporary local list than proc\#m pair, (k,m) is added + to temparary local TODO list of proc\#k. + If proc\#m has less temporary local TODO list than proc\#k pair, (k,m) is added to temporary + local TODO list of proc\#m. + If proc\#k and proc\#m have the same amount of temporary local TODO list pair, (k,m) is added to + temporary local TODO list of proc\#k. + + In the \ref ParaMEDMEMOverlapDECImgTest1 "example above" this computation leads to the following + local TODO list : + + - proc\#0 : (0,0) + - proc\#1 : (0,1),(1,0) + - proc\#2 : (1,2),(2,0),(2,1),(2,2) The algorithm described here is not perfect for this use case, we hope to enhance it soon. - At this stage each proc knows precisely its \b local TODO list (with regard to interpolation). The \b local TODO list of other procs than local + At this stage each proc knows precisely its \b local TODO list (with regard to interpolation). + The \b local TODO list of other procs than local is kept for future computations. \subsection ParaMEDMEMOverlapDECAlgoStep3 Step 3 : Matrix echange between procs - Knowing the \b local TODO list, the aim now is to exchange field-templates between procs. Each proc computes knowing TODO list per + Knowing the \b local TODO list, the aim now is to exchange field-templates between procs. + Each proc computes knowing TODO list per proc computed in \ref ParaMEDMEMOverlapDECAlgoStep2 "Step 2" the exchange TODO list : - In the \ref ParaMEDMEMOverlapDECImgTest1 "example above" the exchange TODO list gives the following results : + In the \ref ParaMEDMEMOverlapDECImgTest1 "example above" the exchange TODO list gives the + following results : Sending TODO list per proc : - - proc #0 : Send fieldtemplate A to Proc#1, Send fieldtemplate B to Proc#1, Send fieldtemplate B to Proc#2 - - Proc #1 : Send fieldtemplate A to Proc#2, Send fieldtemplate B to Proc#2 - - Proc #2 : No send. + - proc \#0 : Send fieldtemplate A to Proc\#1, Send fieldtemplate B to Proc\#1, Send fieldtemplate + B to Proc\#2 + - Proc \#1 : Send fieldtemplate A to Proc\#2, Send fieldtemplate B to Proc\#2 + - Proc \#2 : No send. Receiving TODO list per proc : - - proc #0 : No receiving - - proc #1 : receiving fieldtemplate A from Proc#0, receiving fieldtemplate B from Proc#0 - - proc #2 : receiving fieldtemplate B from Proc#0, receiving fieldtemplate A from Proc#1, receiving fieldtemplate B from Proc#1 - - To avoid as much as possible large volumes of transfers between procs, only relevant parts of meshes are sent. In order for proc#k to send fieldtemplate A to fieldtemplate B - of proc #m., proc#k computes the part of mesh A contained in the boundingbox B of proc#m. It implies that the corresponding cellIds or nodeIds of the - corresponding part are sent to proc #m too. - - Let's consider the couple (k,m) in the TODO list. This couple is treated by either k or m as seen in \ref ParaMEDMEMOverlapDECAlgoStep2 "here in Step2". - - As will be dealt in Step 6, for final matrix-vector computations, the resulting matrix of the couple (k,m) whereever it is computed (proc #k or proc #m) - will be stored in \b proc#m. - - - If proc #k is in charge (performs the matrix computation) for this couple (k,m), target ids (cells or nodes) of the mesh in proc #m are renumbered, because proc #m has seelected a sub mesh of the target mesh to avoid large amounts of data to transfer. In this case as proc #m is ultimately in charge of the matrix, proc #k must keep preciously the - source ids needed to be sent to proc#m. No problem will appear for matrix assembling in proc m for source ids because no restriction was done. - Concerning source ids to be sent for the matrix-vector computation, proc k will know precisely which source ids field values to send to proc #m. + - proc \#0 : No receiving + - proc \#1 : receiving fieldtemplate A from Proc\#0, receiving fieldtemplate B from Proc\#0 + - proc \#2 : receiving fieldtemplate B from Proc\#0, receiving fieldtemplate A from Proc\#1, + receiving fieldtemplate B from Proc\#1 + + To avoid as much as possible large volumes of transfers between procs, only relevant parts of + meshes are sent. In order for proc\#k to send fieldtemplate A to fieldtemplate B + of proc \#m., proc\#k computes the part of mesh A contained in the boundingbox B of proc\#m. It + implies that the corresponding cellIds or nodeIds of the + corresponding part are sent to proc \#m too. + + Let's consider the couple (k,m) in the TODO list. This couple is treated by either k or m as + seen in \ref ParaMEDMEMOverlapDECAlgoStep2 "here in Step2". + + As will be dealt in Step 6, for final matrix-vector computations, the resulting matrix of the + couple (k,m) whereever it is computed (proc \#k or proc \#m) + will be stored in \b proc\#m. + + - If proc \#k is in charge (performs the matrix computation) for this couple (k,m), target ids + (cells or nodes) of the mesh in proc \#m are renumbered, because proc \#m has seelected a sub mesh + of the target mesh to avoid large amounts of data to transfer. In this case as proc \#m is ultimately + in charge of the matrix, proc \#k must keep preciously the + source ids needed to be sent to proc\#m. No problem will appear for matrix assembling in proc m + for source ids because no restriction was done. + Concerning source ids to be sent for the matrix-vector computation, proc k will know precisely + which source ids field values to send to proc \#m. This is embodied by OverlapMapping::keepTracksOfTargetIds in proc m. - - If proc #m is in charge (performs matrix computation) for this couple (k,m), source ids (cells or nodes) of the mesh in proc #k are renumbered, because proc #k has selected a sub mesh of the source mesh to avoid large amounts of data to transfer. In this case as proc #k is ultimately in charge of the matrix, proc #m receives the source ids - from remote proc #k, and thus the matrix is directly correct, no need for renumbering as in \ref ParaMEDMEMOverlapDECAlgoStep5 "Step 5". However proc #k must - keep track of the ids sent to proc #m for te matrix-vector computation. + - If proc \#m is in charge (performs matrix computation) for this couple (k,m), source ids (cells + or nodes) of the mesh in proc \#k are renumbered, because proc \#k has selected a sub mesh of the + source mesh to avoid large amounts of data to transfer. In this case as proc \#k is ultimately + in charge of the matrix, proc \#m receives the source ids + from remote proc \#k, and thus the matrix is directly correct, no need for renumbering as + in \ref ParaMEDMEMOverlapDECAlgoStep5 "Step 5". However proc \#k must + keep track of the ids sent to proc \#m for te matrix-vector computation. This is incarnated by OverlapMapping::keepTracksOfSourceIds in proc k. This step is performed in ParaMEDMEM::OverlapElementLocator::exchangeMeshes method. \subsection ParaMEDMEMOverlapDECAlgoStep4 Step 4 : Computation of the interpolation matrix - After mesh exchange in \ref ParaMEDMEMOverlapDECAlgoStep3 "Step3" each processor has all the required information to treat its \b local TODO list computed in - \ref ParaMEDMEMOverlapDECAlgoStep2 "Step2". This step is potentially CPU costly, which is why the \b local TODO list per proc is expected to + After mesh exchange in \ref ParaMEDMEMOverlapDECAlgoStep3 "Step3" each processor has all the + required information to treat its \b local TODO list computed in + \ref ParaMEDMEMOverlapDECAlgoStep2 "Step2". This step is potentially CPU costly, which is why + the \b local TODO list per proc is expected to be as well balanced as possible. The interpolation is performed as \ref ParaMEDMEM::MEDCouplingRemapper "Remapper" does. @@ -121,39 +167,42 @@ \subsection ParaMEDMEMOverlapDECAlgoStep5 Step 5 : Global matrix construction. - After having performed the TODO list at the end of \ref ParaMEDMEMOverlapDECAlgoStep4 "Step4" we need to assemble the final matrix. + After having performed the TODO list at the end of \ref ParaMEDMEMOverlapDECAlgoStep4 "Step4" + we need to assemble the final matrix. - The final aim is to have a distributed matrix \f$ M_k \f$ on each proc#k. In order to reduce data exchange during the matrix product process, + The final aim is to have a distributed matrix \f$ M_k \f$ on each proc\#k. In order to reduce + data exchange during the matrix product process, \f$ M_k \f$ is built using sizeof(Proc group) \c std::vector< \c std::map \c >. - For a proc#k, it is necessary to fetch info of all matrices built in \ref ParaMEDMEMOverlapDECAlgoStep4 "Step4" where the first element in pair (i,j) + For a proc\#k, it is necessary to fetch info of all matrices built in + \ref ParaMEDMEMOverlapDECAlgoStep4 "Step4" where the first element in pair (i,j) is equal to k. - After this step, the matrix repartition is the following after a call to ParaMEDMEM::OverlapMapping::prepare : + After this step, the matrix repartition is the following after a call to + ParaMEDMEM::OverlapMapping::prepare : - - proc#0 : (0,0),(1,0),(2,0) - - proc#1 : (0,1),(2,1) - - proc#2 : (1,2),(2,2) + - proc\#0 : (0,0),(1,0),(2,0) + - proc\#1 : (0,1),(2,1) + - proc\#2 : (1,2),(2,2) - Tuple (2,1) computed on proc 2 is stored in proc 1 after execution of the function "prepare". This is an example of item 0 in \ref ParaMEDMEMOverlapDECAlgoStep2 "Step2". + Tuple (2,1) computed on proc 2 is stored in proc 1 after execution of the function + "prepare". This is an example of item 0 in \ref ParaMEDMEMOverlapDECAlgoStep2 "Step2". Tuple (0,1) computed on proc 1 is stored in proc 1 too. This is an example of item 1 in \ref ParaMEDMEMOverlapDECAlgoStep2 "Step2". In the end ParaMEDMEM::OverlapMapping::_proc_ids_to_send_vector_st will contain : - - Proc#0 : 0,1 - - Proc#1 : 0,2 - - Proc#2 : 0,1,2 + - Proc\#0 : 0,1 + - Proc\#1 : 0,2 + - Proc\#2 : 0,1,2 In the end ParaMEDMEM::OverlapMapping::_proc_ids_to_recv_vector_st will contain : - - Proc#0 : 0,1,2 - - Proc#1 : 0,2 - - Proc#2 : 1,2 + - Proc\#0 : 0,1,2 + - Proc\#1 : 0,2 + - Proc\#2 : 1,2 The method in charge to perform this is : ParaMEDMEM::OverlapMapping::prepare. */ -namespace ParaMEDMEM -{ OverlapDEC::OverlapDEC(const std::set& procIds, const MPI_Comm& world_comm):_own_group(true),_interpolation_matrix(0), _source_field(0),_own_source_field(false), _target_field(0),_own_target_field(false) diff --git a/src/ParaMEDMEM/ParaFIELD.cxx b/src/ParaMEDMEM/ParaFIELD.cxx index f33acf919..9995ccae1 100644 --- a/src/ParaMEDMEM/ParaFIELD.cxx +++ b/src/ParaMEDMEM/ParaFIELD.cxx @@ -35,17 +35,22 @@ namespace ParaMEDMEM { /*! - \defgroup parafield ParaFIELD - This class encapsulates parallel fields. It basically encapsulates + \anchor ParaFIELD-det + \class ParaFIELD + + This class encapsulates parallel fields. + + It basically encapsulates a MEDCouplingField with extra information related to parallel topology. + It is most conveniently created by giving a pointer to a MEDCouplingField object and a \c ProcessorGroup. By default, a ParaFIELD object will be constructed with all field components located on the same processors. In some specific cases, it might be necessary to scatter components over several processors. In this case, the constructor using a ComponentTopology is required. - @{ */ + */ /*! diff --git a/src/ParaMEDMEM/StructuredCoincidentDEC.cxx b/src/ParaMEDMEM/StructuredCoincidentDEC.cxx index af0f9fe84..1e88a9581 100644 --- a/src/ParaMEDMEM/StructuredCoincidentDEC.cxx +++ b/src/ParaMEDMEM/StructuredCoincidentDEC.cxx @@ -34,7 +34,9 @@ using namespace std; namespace ParaMEDMEM { - /*! \defgroup structuredcoincidentdec StructuredCoincidentDEC + /*! + \anchor StructuredCoincidentDEC-det + \class StructuredCoincidentDEC This class is meant for remapping fields that have identical supports with different parallel topologies. It can be used to couple @@ -43,12 +45,13 @@ namespace ParaMEDMEM the computation is much faster than the other. It can also be used to couple together codes that share an interface that was generated in the same manner (with identical global ids). - Also, this \ref dec can be used for fields that have component topologies, + Also, this \ref para-dec can be used for fields that have component topologies, i.e., components that are scattered over several processors. The remapping between the two supports is based on identity of global ids, instead of geometrical considerations as it is the case for - \ref NonCoincidentDEC and \ref InterpKernelDEC. Therefore, this \ref dec must not be used + \ref NonCoincidentDEC-det "NonCoincidentDEC" and \ref InterpKernelDEC-det "InterpKernelDEC". + Therefore, this \ref para-dec "DEC" must not be used for coincident meshes that do not have the same numbering. As all the other DECs, its use is made of two phases : @@ -75,7 +78,7 @@ namespace ParaMEDMEM other DECs in the case when the remapping concerns similar meshes that only have different partitionings. In the case when the fields have also different component topologies, creating the ParaFIELD - requires some more effort. See \ref parafield section for more details. + requires some more effort. See the \ref para-over section for more details. */ @@ -101,10 +104,6 @@ namespace ParaMEDMEM delete _topo_target; } - /*! - \addtogroup structuredcoincidentdec - @{ - */ StructuredCoincidentDEC::StructuredCoincidentDEC(ProcessorGroup& local_group, ProcessorGroup& distant_group):DisjointDEC(local_group,distant_group), _topo_source(0),_topo_target(0), _send_counts(0),_recv_counts(0), @@ -409,8 +408,5 @@ namespace ParaMEDMEM prepareTargetDE(); } } - /*! - @} - */ } -- 2.30.2

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≪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 PR_gK7$D)qt-TFTOD~|aA literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/captureFineMesh.png b/doc/tutorial/images/captureFineMesh.png new file mode 100644 index 0000000000000000000000000000000000000000..0b60d1cc9972feb11ebffa437351c37cddea67fd GIT binary patch literal 114802 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�cT{6*?Ewux3ZtP@6DN}J+<7!80f%a! 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 literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/cube.jpg b/doc/tutorial/images/cube.jpg new file mode 100644 index 0000000000000000000000000000000000000000..735ecbce39bbf9b881e0280ea91baaa5a1b618d8 GIT binary patch literal 10472 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 literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/fixm.jpg b/doc/tutorial/images/fixm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..475f248bb67becc83773e54ceb00083725016ca0 GIT binary patch literal 44429 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 z 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 literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/mobm.jpg b/doc/tutorial/images/mobm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ba1e0c91819ced966e657a784b6d02c86bb5c558 GIT binary patch literal 22167 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 gP9GCt@FLz&n+a literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/partFixmAndzone1Mobm.jpg b/doc/tutorial/images/partFixmAndzone1Mobm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fb9ca78c9ca90f6077bca2c6f56a9375febd4ee8 GIT binary patch literal 24901 zcmd43WmH|wwk4?rwnuhed$k9w4~81%kV~OK^9)E8l(X zz1GfYd++mZdq3V>t@yE+)T~jXW{p1j=*7$2%Nl?wD+QJUU|?VXBj^WsSp*~i1UPtj zcsK;;4+I1RL?kq1Bw0RYhN z{<(nv>w{1#;wXPaqH@IL z2#m`{rhZr1iKjAt3gR?&3PO2>Pe4dSO!JnOj-G*wn}?T=UqIr$q?EJ_SXNa{T|-k# zTgSxI?31~LrIoXbtDC!rr&sXjkkBt*!@?o)-x3m&z9*;TV zx4V=3j7>)U{Miu0fA!%7cn0S@i#bneO1uClwo8W1l@mh3=5``mqVt$~wpUME2cW3< z_zV6X2R7(S3VfdIcDyiix6kh%8_u8WG-1RzP71^dzZ3-bi1GE|S|JIm=!*-N4%N-F z^~0YwMr-A%ltjLM73&F4&Su?w>%J*UsP7|odQ>|ael@?As$L7dV~WPim7|bB+y+yc zkb7j|cC-h-Zd_N_qg+1-SxFjKc^~^{PGCS5Vh7+DD0_&;z?cmk$3f2vaLIT3>Qq;#0CDpX*PRpq-~8=G0M$}tFn`( zqe8FSVOdyOP+RntmdR%597{%I!n6uA#vVf7TRN|-Wtc2^^fT8pOL;As)5k8Fpa>a6Pqb>;lB2** z)mKgmB(HcWPLr%O(meb~{LzaZcI7xgW!^jHZb_DRe)10-Sx2MXqso%af2XM9pu7d^ zDcz)CdEbwItR&>A#vO~gbSXq4r$LInV}O(~n=vh5-;3>S(j)bP^b>{w`3ula@B%zW z>AM~WZ$u1R^)o*Tdi&?>>u4m9+y(d5Cxm=s2%&YXq(PI-HGLdXMI(#LpY$X1aJw;# zk@%upAAj?kYD%inWP2sUt*7qKC`fPwSHz5R?fbJafr#Cq8@ti1E!Q();~A45)9KB% zeq9&S5X)4+=yowYn>~Xb9vTdh2GN}^;p%COCB>z%hxhZN;R|ri?dIi8vyxi2B)(~g zA;Cpq(xMT%aF!EFh`Ydq7Gs|nnLm&{a^C6C8C;D#_??*3Jt86Y`fS7Fj!;2eU6Vgp;!PVEj!AH-O91k&gAC~9u06qjEB6OYhEcXIdZ5>8LgXI9q3 zy>>FU6TQo&R*9K4iqkJvFTlm!`pF}mjp*%_oc)@w+l~ZTOB3!0RvsgHyKy%|(I*>} zCItBSIarI@Ng)bXXFO=|+OXVB?sk+U560oF}=|OJ3fEm?W=lso*oAw{8^;QUj4=AU6zvtljDDVy0quIu<@)yQ@i;@LC`cl z_<68cXNiN}RqQu)Tq;Srl;e_G=4rUR=;#mYHu9-Aq+FQ`$_pRco2w26oO@osOV}mq zqqHjc;#x|we)5$Yh3k$-&e_~*HWo{`C2`2i6LugZ*XV8d625AJ5dk%bV0ed-R32_~$3w-#x5Lv+>S#wE8xPv&-K~dRJE33@3;`Wu5vn3 zZf^EAm#lrUrl!XgRdiK1KnAt3_r8wb5F%g3%c5qg!L2oEUtTjfcj9s|7{OS0u{~_h zC{4A6=`bKp1Rs-Knt3FTqjBfDEO^L^^lW(f9gFk%sZN7u4S`%cf{1D5W3C!>?vxPN|w)M)X)287k6fx2-LRytl8rctz|!u|}}B<`q5lwxuFE&9JzRb?}EI}=2RZo#cnJizt80Qonrqbgvn*IzpQ+w0E|zo*H2 z=MHXHKIHa61Pey}RF*r|9)F8>^b_jZ)0P#(}RL!;5TV2xZL6DPBFeP+q8JD`^x&-Eom+7YfM^ZNy-17!wGo-)KIW& zT^D}OVI&NF(r>wFpBEu+c^XOBkPB%Nb##?Os127Gql=@7WyF?d!27E``RY?#CrU za=sJ<_)UVItWT>v9=2PX*+Z%_Etku2K`;b9mU;V$1_WcQ+{-*Sic@k+T1QQRIi5zJ z-;WC-k$jKg&qd0T$yGvJvGnkMBKajk+v;bML1N4Q?h3nKUhAf%WsP2)7{VO ziV)sOv-CI*bVdWcH%@|;TAM0f>$on;@|S-xX1i*`oolMEpsvOXpfh{@b8>L6Y1?hY zv4@><4dJ1knZo)svK5dBIm#Cx6R=aT29 z%tz&-(T5~Ht;GPXyC5c0hPzNG z5+XU`xRzs<8rc}w7xIiJIIwVsw^Rq{x9} z3^3t7^)m3>eO2$EMPrbc1J`=fbL(Rt9PwC&X3Sq)M^JXd>^x@cyOZU-@7v}@o}Z>` zcVI8f2{*!3mIVIiO@nKZ1PTZRnFU7v0>V3o#cn7dgim7#QUGZG(7_67(Ka=PFDwwz zW|(9B#$?r*u4PV)m`nEuV=X>o-Y&YO#S490>3;stoaY>zW^Y2)y`~P zxq`h5X^~tG!V`OAqe0@h&>(zLOeu*zksF4BPdiDk64$`4LN}TmOH0F`i=iE`SzH8X zB|j5*3*y;d_@}r@DqW<&Y5e_J7p{z1L&LW?T&y4%cS@YdSO7?*Q5XLNRM2ZmJOx|l z`8+c=G*mW_MlsMSE)u$u+yE7fMv-;9L>gFC6`<#t+A)9k_2gp$CBsC0eN(z_cl?7I zE?G~6FqQ$N`-)Mb-6AOToobQxbvApOZi&~H@S{J5W8k+obv!)V1yPu%!~Dk`PFv8? z0$+(0-H(I-y1#flX_iNMpVw(|Psb+t{KP&P!p|m~$*e|@gdQTIQ#T=Xl$%odl)YZc zna(KJFm;@CtiK=fUVEQV_pO*2AE75m3OH6weN~2N5SO=~@_SI%lGye*TOd0wr#3L( zC@VlK1b!2Q_7D!;G(X$TOs1Q3H*u$8eDAbpZ%vq-MuW*&@`N#X&krXkj;?m)k7cb> zS~b72k4*w{1i2~0px4+2@q*~!Ej(=!lp#ZkpdDcniRr6MuDul3-$M>YOCQ1>3SmZw zrA3*nI|aW70H8EDsaCOr+Atwng5XP%7l2xQ<^zW7NBdpe%1GpS^X|%`ggk_@@7PsR zZUKlGLk|Ay^yi{m1nZ+1mW%B({@K3e{soV|L~fgzjrIJye1t2lryCNdFMv$_w2(x$ zFn1a8(NpB+@_H-`QLHBI8d5ydtUAo?fWs`2L7_I8%8Az7Pfc zGu>@|u1D$zXzWkb4LVV)iIU?kCYoMRLV649tXt$kdt}qeCqT}K z^o;!^`79SD*fsfX2~2TKmgha&bP~<&+PBFt&{aseHgh#oynZJ_v3KOUZgFJPIBoYi zEZf=LR>Jiyh^v-rcau(a{y>Q=55%NAUnK@}yQYL|n zUVz_Nt}lSZ>zMlIhJA87|C62}|Bj2y^oueGHN^CgG1C*SAV3nDj^L!gFY{1}Di@V^*;G|9}T1d8#s?rid)7@z%o z-W`+Ij#PsiccFm{;~KrJ{Nh$+W8;49+@ z*U?LVOlf<($){m`Dk^om6|Vy9BAN)1NfuqV-No&yX_!$ce!f0XXpKG}F=R3AgD*7d z2qMx}kf4VT%EJ_=3_`(UDbKeemK<2z=Yi-pXF;gC7@16CK~fZq*_~ZQ4Bj|uMaM`I zPw5z8qMqwVy!}&2PoLs#cfdQWkC*jm+KX@}*-TwY@MY@+e`z4g$}@_7zg4qY(>;IC zK!twApSSQn5FUq5%Qdn29ZcsFbI_m<*+)6DGplP1m7xt8a{5h`U~1%`7Tia97OXt^ zKP3`j<^E;Fv)PaD%-<88)8Le59*WjgZ3+wqH7uwsYneMy(;E-GYmU45?ARFpEE%DA zV$D0_uU1o+!P>tCp%?zec;oy~=9RdHtE?+vmu!Of%`2l-xEsG}YhiIQC%Nnzf`SlD z9Ya~3BH^>dATs-E5muO5A@C?wecC|Ar7tZDE0(4y7Vs&oLLNb8+QJM75@-6lQ(mg* zY13qz1sRnN>*_MDO4RSb+7T58<>4ezy8a4L`dNGBE9I-OZI(bCN*60>Z;weuM-3nQ z6@``v1OYS2abgdF^JSMi=%AqLFjXJvCgW|;x+}t6&IB<>q_l~{V(|NdAY9nPtQVjd z4T3*Mbk7sx`qQ&Ynx?h3gz!OfdMJl42Z?X%d^p4y3r-Nh_NRlj#Dkp7xW8+j*5bZq zQP)0i$?%1J z>ht2dPg{woOXao#g}+YEq>X*8;M`%&fnda95$AT7Jr0=K2;1Q&3LlV}RZvJGx^VwC z`30b4CKzcT^{v*Jcbtssx33?R??@}jaO2>qU~Jeu5ZEa%xsyU%us9PDC1dm+Bc=?3bF(Eh3gAV> z3}$<{E7bK;ShP#Fr%#=$e~#F?`lCT(1Q3a`n-z$$?4>9aZLoeh)3r#kJ$k&?C}v8+ z((Rb2Tl}7j+(AbREHoH9M)gN-Z6raNCF#cyAtMGS8cJwS;Y1-3qz^`18v;i4bzQeui z0rQYG7z@?yGG=a;P~1vzU*6f}PS)IgS*dTIW-g^wlpmL)YT9z*Koo~}5HCH!@vxkg zJgt~=ZADcKXQtoes6Af_b@q1YU|771l)_kDtiV*Ou%qWGZ|GWIo(*2yK>DJw_-@uX zZNDyuHeNeyT6b6vJ7*4`=n#3d@IXt{=2ZF#b>+qA1ZH z&DSZV#Z1awUc~Qc^yrrD2xtpH7%GfN4@mFhcfa)9b4V@aEa@6B{S-t(K`pdbD(T|y z!Wt&lgF6yIj=%ArTX|Er+?)PXjJ9InA2IkKVBf3XJS)u0s@z(l<)QCGk!9)V5q(Y2 z;9V+v(r5bd|$RK$?ybR_k*+gw>r@`+_& zQ6&1LP6md1Ti>F(&g`Vm+2y8Dsco>bu%}B?Q$59e%!1;byrUl{wY@}`FFg>%lXi&& zSC3XE86b%A`WvmA?}7RmgpX96d<`(q60CS!)Q_E>Ez!NBwU zcr6+4$Y{cKvw4IcdwO#KwCE9|tlLI7;VO^QO%PFPS>I$SkE0Y9vV{J6+FLtEN-&_q zl1PdCuv3~AFC^ExX(eI@%1BxZM5peW3_s8e{%$AgIm$C9;u|gcQSOKsRc3Y1o5D3L zwXwi|%JN3~X==?Jm5L%!ax1C?nKD)ir4-}H7e^I}F^(g)mdHis^A76|dUopPHw|h#m3c0dYWXidh*?!@{B_{6+{0%jPAM< zTFLrpst2?(F9>0E2LaiNIw%Ns*KSiGi{do$1+aL0#&3OI7=3K=G*CZ(0T$8flgDF@ zQ$ElQ9`0!^*j`;Hdy^ffdperAlKV84Zd+{W1-&Mcp{9(xT`)UL)QL*}oiOEb z@undxH_i#lHUp7C7-KV|kD%2BQQB~u_PT0lGU;cZ;M0D+3Z=7@AEx79v84)3PQgL9 z)tPqJ;dcvej+AV8Y-sjiUFJM9# zzmE;O{@~ah5aSqzOJt^ELB%s7!;Ln5b&keh8CaZW#YR(Ysq+)elgyZe$c9!|g^84k zFGJJ;6B|nkpdctu2%CR+z({bm6b7dyyt%}zi&wG$cY2c7L z&u*vz1=gt%(ugy_XTRgwdMNo|9VIUqI5ubKZ>LR0q203Th|7>7KRwidS(N~b7#A~$ zqTc~`o_oYEX$k(-6y&X&Y+Lpbg0k*RS}BvSO-PDId5$b(H03(B*M6q*n><1EF(mtQ zX-KcCL*eJr>gbX={YtFFk-1Z~>@XWB35%=xAF)U2G7Bhm^+^@aF>O#{b zlHetdwBz??ukZpio%~Lt-?QIZ4NTpo%oG!(=FQ1tHhgABcRFf>0Md*tQg?pgKYJ4w zqSA{DmaTZJ3=HIUKHS2Gyut-we-?JA0{|{G&Hw;x;yn!6)Wx#iptCbq{3vHKO`;Uj zNcUDHEd;##HaDlnNA!okl|hS>;M8O_$Hr~WJBF0`<7F@Vcy0S zh+Pl=+%E?Sm?|hC_hB!~03vGI@aFLNPRL^7l!@=X?ssxU%8T{(c~MC11&^`bBS+Kx zsmuZ$Nh;xKRuz){ls8v>a8IzcMVjY2u!*oXdZ;reNneEXi3)5yn5x*hE*M?Z8tVYWv6*h1d~)RC#NCL#$SJvA=qL=Jyj)+IX0F=mbaK$yqKKaNeh6 zpl8c7aG=~8Ju2YvC)Q%a*{vKdsrPFO`_BJk8`r4Pf0u;9)?&v0tD)dLS?5;XS28pl9HLGOlS-ogwb8Xq+|rgM zbNxZ)$jF6V&KqR3qE|!+s$_Ztk559im|$BrVd4nHKTybzH=YS4p}Rf`n0>3f%W@HM zDR2l3e1?s_lR~T9)|&kv5hXvpq!J3PZkX*0bifXOLcy|;Ov*tpadVG_!PG3>bjOlb z{=eCCUx2AW57C1>e8v|bYnT=3`TLRC3y>IY36q&?k&;oqQyW$H$EY{c5fp)oX*aUU zq4@^K5gxtU^pwM+6yvZQ!}4)|0lFE#HK=R)AoYRmVZ3FumVh?kEG((06R;bdacx!9 zJWssebzw8_tB>XmN9HwgPr?Sm8Uhr?I6V16M#-t6Z?Q5D)TXJ_jeG8STnYN%lA3iE$=jw0ZvoZ65!a?(LIb8)Ve{_o(8xdvU?zh*P ziqbfV5sqt#GGkk$w(zC0s~^*@+?4+4KpB?{nN(S5U{;Z{mAyvtwl@F%8-LLJJ&pK6 zbA|@o5AD9Klo2TA-Tb|GzHl3%Jh@Kcw(`rw64vV|oVl=3C=CVz7J^tEXBS&#P~Q5x zJC|8$Hl^MB72A^K)vMM-VUObOs3Sznyj`IVp0w=Y<Muay0S;%Gd$j0{tI85GbKY!xALwn#H z;Wgpo8+nZpYIv^V!w#))M<_m#Liy9ujz9kE2xsk2DF5Iv)73|L3e5H`VcQqL$d?n! zEK!zuwFYk#KMvIscR;nHPApE}KJt2GF9h%m!_;wKU ztC8alig^R_DgFs4*HJmN%1lFf0*-g$!9du;ESCsCS*QwTMd3x>flg8L5T6qCJqLaRw24HPNk&S0z0l zBg%2sH|$HIJ9QbuZDZ%wB_j0TNv&;^Y3Ftq$4B=72H7DY#RU(moMV~DpOIbFe)Do& z(zq{6CHHA&+%}IEg7glWz1bN27?U{I5ZLUnQQ~j1*EA|Z2wAslkND77i-ILv;{zw$GkuiFbABUkxPs==W_sa_yl=HG}BG313OMt*TxZA$Nwb6d6Yu-E;qLg8MrhEa!9z#x?-qqGXmt8=?{Y99Tr=7t zU!1wM`~CNVNC;duC8;TYSP#TcPiSG_nVNWR1*0-Fk(q56=9{LVK zL?gs}RaMbvMj1qijZ7INj`+EQYjLqu;978y-={I25<5E>7TL^^cZHj9d= z4Ym&1`pyX-UVnjxyYMe^@mdP5jD!+a`Athj->8;$vu*lG?L^K5O$U==3xuInjQ=p~ zFq=~8q*6;|PaXNki3krl?3s~f?KRN(B7E4FKLZ0EwtdC6K+nHZ_ozp43>>IVmAV|z zwJa7lLXb_C2%M`Cl;Z<9WVX)K53;ME#cjmEr#z3TS}g-X)(xx$-c+=6tVw6g@iONC z8W8>YLcEdYneb6brpd(Ryw9+x;+H`%Yy!^ED%YgZreNx}in{J#G-Vf~)|9e5BaDfB zRnwHcNp*F^Q1ZDL6D}Q)_{k*TCjhFX1W-VLyv0F%U6Gl6j-|>;b^YD3xjF-@9mi^G z=Uv^;x^DC_MBBm%f$50y+qhd}!S{Er=$|M!4#_{brH-%1ARSlN_*wSxD^eE0q>=x_ zOX;I$KB}fzt+pRuEk?x{3DoA%fH~tHv3XPng<_l25Z)5}m_y8e0dS{OES3EGbS&Pj zF1hgR|3THI+%FAXr026aj)9R#cD}UbJX*0G9(n;xCrc~r>}2ic(~jQjMV<4!p6VMx zp;6aP6vj}<)SND@IdG5WO}|by14(0FS&|00Koub_@VP*;XJ0-*Z~sR0D?0PPvq)FaJ-a8IFTL7xaYzCmPWwM|B1h+`UB ze4@z(`zKIpViOZS&$!|3_mz2Z4isi)ldmWzxRIeG71Up&g(gVi&r4DbZ8ASqp6-tN zwOh@a?0p0=jOnod`2>1AXW{s`Sc9G2&v2%}d+%0MS}5A2+TCm>__uG{t7hy z2VvPzzq!3m7dbaZabmnXZtuEe10f!s2-)qEIX|^GzRgGRS9s!i7MkwY!~RThd-pp0 z(em&1^u(%+un6f&hIT0rm4+iLVIIS7+unUGbc43kRxuc2<4Xxa(4EA}G2{KoKq0PE z*94ELE9tp`t{}{Tq6Egp%E~xbr+)MKO@Me%X|j&+z+$|=Z2U8}{ozUcuNlLC_`P=C zzxO<-&1wG0E_n|(vLQQ_IJ zlQO$c5YL^7TJ3)_sGgp+M9?`{Xls`9ox+-n=%N=qMN{pmK{^-XjluKz4tTU|CtN1> zViLK<1iD*#cV*Bv_+#9rkl50`tF5W62;WEj_(M`4FJ~Y5CNWL0agnRT{!{OFv5pSX zvbgnjENlE>=R6DIvTWGKsQlV$h&mcT16Go95btd$EACuDI}7SB*3!RK)el;DkZp)s zuDMeSjq)4EE@F(VsgP>eee;zNgqi=b_)Awi{z3d-IcJO0yf$c|w8WWARI$F=(uAYX zVmVv#lf*I#g98U2-ruTIZ^Y_$(;0ql;XA*p*2kV>q|0U8=C}$^A|!ZNeqiRNs~zb! zXB5h#*}0OvzWER&tT8>*6y%$ri(Rx3s-L|SAR{?QN(vXOCHh~KW#mU)D#sxk=@zf%_}DkSzR9Fc5QX`u`IEYcn2%3QpbufsXpgOh=JcjNG?*2pOlmTm~%%XFtZzd@& zQE3jS5=ek>xRrgdX|AKQ?JzFhgRbj5z1p61cbeuV!tGa1RXs9qc~#GwNYQd(3mUkK zuH`wqDbA7WpGT$_Lnf)w#uTH+nw$AzBaPpVY>-$Vn}%l=;$1Pnoj%N)c9AQung2oT zZ9cld6b$8=&O=<6+`@3Ezb#RltNpy^DY&NKS=hm--J9hj;Q4)h(&N^|^SYma)_QFd zggG!&sw>~xG+A!aQk^uI%mKqd$VM5ep&C0NPFVzxDMJ|~X#-W#NNgysczDa7yVAS> z+Ifqf5YLDgK$y7;->u`}j~v@}Cu75VuRul3iM614S2BiUxhM9t_n#nGxRu}_H`&1N zZz!?z*wJ7*2bzlVtoE#J7W}eJ$ny&Xlg`QJi3unXA+!{Z0|ESKUtVcb7;m)2{oE&( z9MrR%b<%Clj#esw*3p7YTtykPI|kSoyn{8l85wmK>A9oGSy^y9TdUBt<{@Hed0RE0 zSU7B12v$E0xy00~`;p{p3Wl8pf2igBJhN|jPI`E$%M|(vsGUqVDT4+EhMg5N&<(-C z?^;p>y;IHICXe%taCSR+&e=lwNr}YN)!Wkvm$^6F?71KexG;`` zgHPZPGtQAlK!FKn8%QsM)|~`=Ikt@xHdE-8-qLS^0{+M#5y4}MF-R~117bj_ zEBtjm$D&>rRBO4zZyYCE#m2`VzJ=-0S$F_dTE<04UQTmGh!(ZfNxcAVk#UUPF>giJ z&fEOFQjBbFt*)m$Q&@^w6Y^Gvu^PV9Gus?AsyHAqSIFEcM3!`gE*zx)2dG;-D}nT= zc!~Ng=_aKv=@l661t7f+J8v;>t})7GrC^d{QJ4}dHsar(KmC1F;%_r?Meoxps`O>h z^Hn0|hjuPbBXbhnZDYLDL5NZ=v(}WV)tc7SVOh=Ud#kj@t2wT`wIL>sFI-0q~=Tt69m?t}l4PSfRt1OK%( zXYWn!-`Ccq+nx1Xv`sSQecdo9rH*|)rH+u?%n-j&;!&U+tTLTkq9Sv7V5)14oCk1- zrO_LqC>;&9t)Mp7do`N80NC~@qlFZS51Px?*7Lb_sty0Q z|GL(wlH)1)fW!G;b)+fD3V)(!eSC%o`54)war@As9YSB6o6Ki-o}OoQ>_IM;R`RBkG>~pTExL{V}7* zTjtDTqf@_!MmeX!(7#bkoNDQaQOiJQ1wa3)OyRdPby`TDLL;K-nMmC45{x5~!&kvu zifN&a8urJq9MkXT-pM(a$e+*l4pRzYTGZ-&1$j*_rJozRz{{^vI9Hx$Il1r7jH^h> z{ytPUA`FZrPDn}M1jE-404T=lYWPOzF_`;o`u*q`X%J{PS#lm}2uzD=U`{{*+6|QF z<;gNGY!C`4FW%?ecV}cOf_4X8j2v|Ccw z>qd9-;3_=!5zQYa?V}iMYYPiT?a_EBlzyy0gHe7oMY3Ph+WWI$zSy#un*7{fplh_W z^liDCf8lE*$(9XSQCu3f?9XcYwk+v9OZSx0L2=VK$XC<2?c_J%+P@EZU0ue1}#>+pStqrF0rkbKooii18HRiySd## z8j(}KQrc0|2FCvu4k-PxYG|2Mxw1E#gs-W*JD9Sf5iQwAx&AGP1BF6DcczW=>}YyO zV`hc%jO$`(gD)pWDLr{E4FTW*(?-6EFc0A>qw$Wx(tj-;xUeuRvjwZ|Gq1LVNccGt zlW>a-sxVHOT$D366Y_%cR>qJ;g|E6yad82VZ(Sb%5F8`_b`|*3TZ2|$eEO1=a9@+r zePeK**(?e+X|@)IbPp4Btd(!iKZZRw7X=}tV~$g6ujE1&^>*Eq7qHMgp$SPJiqDiU zW^#P9Tc+4`U*@D%at8Ws&ugAe! z@Imkw&h!3k_kAQM@3Qw3r8IE0G%n8=E%1>f%^VKoJf&>UCO~m3T@!Op-Xi=0__4kK zcf>Kb60Y-i6FK!WQ;&UI&EFco6g1;i1(&*-ga?BWpyEd&Wtpv^Z5j$m7PSdMczl)tu zB6fI)Jo#p>1qS`*o&-r8MzMr!Mq*F})|+oZ$VN~Ef&x!m4i%A9w+#rB=s-4h!FqR; zWD{DIpyW630UThaWK_z133wM>8-$p;-VMVgtE$D$V*kO`2Zs0cNKJZd9ZbC-g{5QK zAsQJEs0fx3O83YK_O&#|!v}N*!@_825TWH^O2CT$g*(&f=HPgR^L)8t?*saC%9gs- zZ5d6Hq+NA0v%Z0<;Goi|lDxS|ds};(-0`b0p9WQ`fy*M3Phe0n3}g%fW`JP;yTB)b zF~pes`=+6_UX16o7vLfH1%Sr%S;MP&FP2=9gu?to6w=Ss-DiC$+SGAGAc-Jkw8+6& zap(b#wXgqSfHNbdF904*>&;h_J6F2)32uvfrqnHUUivvZccrsya|96;4a!$uZRxPO zEXDak@s^N=cOc3^>o@RsDr+!lu<9K!9Uwq`oXLW-vry}ANxe{>6w5wwqi21NGITo@ zy+nb)v`x=K4ihuPw^QOv`TDRFs$gc76&SQ2JejllE&zW4#SnoV4+iFsu3b#Ym z>^q8KMY6)D&qy&1b)nJjBbwW({!)v(MjRcgIX_HYAt{prDq&~m9mp_saAm>(D!zRI z#GWTe_jT0h$xcqgm`f#pI;vkMfTF6-l~{K5&s zUZdNpk*p7BVB&r2)(qRy(Nj!pb~KY*q_fYXa;K>g4?69y;hEJyD?p-L3+&v8k{y5o z8py~wD~o9-C7V%4fOmwXZtR!M* z4tx1c?-aoO(ouc-4^rGNB7{(atSr@YJ?ZX8(i5ZnC`d2oahz54VQSz=IVq00S6uIk zW)9sD)r!rssjBuI{5IVw%GMv(2;YMulmX?HzK6?lhl|va`qi+2FSSPFWEnX>Inn~n z*Lc$6Y14ONOObgT^{z(V(+q#?+c%uo`M6;&3@u4)?V4*6hy0!C_Z7OnLo0Vhb>dP( zP_Y=@kNscFQL<6E+h}V>{@j#7`S%rdkhh5R_*fMK0S@qG$LT* zqqj-7ic%BOgWNMu3V(cONJf*;>{=D3Bp7fWd8Glk#N8s6HN3Go=rT$D<-Cuy-8Oxr zvv6&3^zHdxc`RxdixDkU*(tQ@Qdq#(P@`_LbcJuleZlNo9I4!No)gSMcvdy9nTof1 z4DLRgl}52KF6tn4LbkO~Gt@bEN25Jw2OUm$7q z?Coh9vB#Z#t#7@ieu|)(XyeyQYR{pPf;ZoE`3fJ&;IWoQ%M2w*XLM9hhExho8`9Dw zP>@2=UI5Ow;_RS2r<(F96mG-Y*gpmD47f>#Ay&!jN7tM-wR|r?K;K&Y1@hF-8u=72 z#B_uycdyW_^S9|n;TLzNj6*}6Dui=E*^BWb4q?;?wyE;0{{rij8saG;w79L1R;BPC z)zl{qHG~CAJ3Af1$G_R#Vu+)<2&(+@E6Io=mgqlJzl&8ap6Q3VOK@(yj(RTJg>@#d zvyfq)QAk*!9Fu;bY&?hZ`pGTCvS_1gc*{MAj9zj1B2J>Em&~VhEcOdbilitJdXttHx7KG(sua_qRJQEzNp(n{FFtYeV5SwCUVzWFJ?-D}v|%y!!dGj(c%Y zt*U;UtH^zR@$rW9X97Vzk^RcrnEnlx{l~sh3bi;oGI7dXs|wf-MtbE&3Co|p*#Ref;te& zblHvl+)!53o?)p~WZZLTr;<;2#2cD&ZpZLiwiV~YV? z(?I_@!4ZNR8zcs2Cw?QxWTtwI5P@-9#1x&$J6fXquDAfY#Lw}qDTUyw#;a>y^FC{a;8ekY7XX^PN>dzK48Nk zq9G$_YngJyild>xLnXYyx*|~ZTi8mBwIIu5*Clk?&n zIs{>Vg`gQhc?m^N3Watl520T~>t@E~Xpw-*LFXosbX0iRQ_fD(3xG2Ws}JpO^X5aS z^&rx|>DP}t0rBJN8sMZ@80<(+S$2vL^PmmE%-06Pr1%TDzqglUJ5A~urKtGR&dw1$ zl^Z*>QP;!i_@RlO!QVs=pLZtSzm~LOAnF#+NO}rOIu`p+QzSI)A2-mBol}4z--sQKfZCHqr(rMl$aL9yh&?Xi!`9q@%|K-Ks=u%ed{WrS!VnU-! zn7R~fQKPf$lNjs2k3V`>R=2v!(19eBL;eoL+WIyZfDVLRNk-+M>&G!%4zE>tndKzZ zc_Zl#XHe&jGrfm8ub2uOam(yYLUS?PO3I`dqs}Pw+`cByBpCj*0YYzL3_Z6m0m~0h z?!;)`!zNBMM7$lz-evYPJ53ThM9#Cbdn|xYsr-V$G!Ca*ky%T9?9b{M*J(yUUOT7d z-PB>gb}9{ZLnPhSHmt0opvHU!@QKp5W4GA75l!v&<7kUnpkfFP5Kt;u4 zgCC#YF|K)VK?Z&X4=OLm{+ItpzzP~Zou5;^?Kk+IJ+3_7Pm2227NR~Hxm%s;TEm}Wy>!+h!!W1mOvry#(2JR$K<&=13DwzN4U9{nUn_yYzN2Hi&(LPbjsz|e-AUTTLcn<|%vB&y_wgX**VX~^sRapV7mJOPZ zu>&kh6Bqxho9hZ_Vr#cSKok+A3K+_fP*i&FMWlm>3ZWP2V(6iFrHDW%3epm!BON4& zlt}M{rXsxukQ$2Aa7XXUz5eH%hx>RR=4BqT_w3AG^L=ZtwJxBd;f!K@MrrL3#C^01 zx*}SU7;?EK8T5v7vVLQ>zTUeSg(upcImLe!({0i6zln;IJp*JbwJB_#>1ja>BUz(0 zwkEhlIqC1r%LKzNig<2by7J{you& z3K}(_E$x4kH}6q8eV02Fak1s5I<(V5Dr7o$JF4qPGTh;4Epg3vv&^=xE)8%a_a*jn zFxWqFH%#h=>?Y|A#*@%#Y=G9q9~m*WZnO@AJSIQL0r0Nj=@84UU!uqf!;fCg+^`hWhq~p**!Xo;5J-~ z>r>+8reX2%DQ`!C2@ESH? zEnCP7hQx72*6WhQq&YUvEU7cDQC(QZ0AF#1tE+xnCQ+DqBi~xozBd4X> zRV`zaI3^}=_}1r!W}~^yaDJe)WdljHs^cuToKb37C`Sl~X^1+nkJg!t&euII+y(>8 z-vvp}Rb%kFjsvyN=BOw|nrj+Ie0zmV&bWzY)DoDFy}wT)FrRjRu;s7$JhWlrAkDEi zU8K$kqvE(7T~K%(J|!KYMIe+D(?ORC-7_!PD&qZr)`8uE*v_&dmV&i|wM z92yo)g<8Zg%J;Id`#x*WZshbwCiBgznw)vWVjJkd9t?*1$A> z13{0SOMTYV8R%43&b$<+;=~;DVOT+lk%VP3>{5rj2v*-rP$Gbcgx053H*u2@_u+$A z)29d(3eK=8?cw~9Rt6x<#Rn3i&LkH5kH*^48B)UhOdE5WhgdQ~Ah}=@C9l3=A$O=1 z$&s*2%FV&PJDLpijx&HD^N>uZ2C(jl7x?n67k}%I_-je=Xhm>&+tL!5OI`5|SQCT- zJUD->v%RqlVZB)JGhmEn{=Q#EuV^e*XN(a9k^|}owN_*Mg8__nJ`(}U($-ULN;k>= zs<@|>V@ZXgEfGYn!R}%7W$;koCj)_fbR@OpgKt2Mg69!l?dj20i>VYC@%EM!6Nx_& zYCcf+#HlSUzk1P^&7~n3*E3UZ|8@zDBbFQx2{mQ~1cCQnsSZ6lGs{n>Sciu4*7ERQ zd9&VZ6L-@Wa<}m!o&BM;Heq~+D<#L5pf<5}6TR!@{C!!{Y^-ZQB*RAUUw>ZhfheEC zyv6K|-gj-|?Xy*?=57>3oT-eg7jga%FLj?y#Duo8QJsT^fc4twn3tnr81-gVOqRVw zOqplw6@Cdk*WD9h$SMfTv1-uM4PR51mNY;cHEj}RPbp{8ok;RT)q@cn{^%atiUk$F z-6~gc5rp~^9A7#TP>4Gz8JQ3Shdt?T*6&$eyGUO`J7wAqgHZqi?x^`_F+jjQ%R`)~ zv2Xz$;37+A@JgpTO{!G1*kS#N&s$mN-XxKnU>eyCks^hbg%H7PT~Kh&k4H{?__73h zv9;cBJ*iMw^}-=$n3X7o8rvtnS#sweEpYN#&VZ?t219Ie55xJjR;2&dChR6GAw+Ha zLkq0OBZ)*OG{gj1I>V|CPwpWkav$clOcB?-uFqKJVKWqz-aFrdF; z38@M5FMeBE`VNp%xPkRl^M3Q&?i#X|2G|(;FqyZaGE4xMqNxl@=AuZUO-jutacxE| zK|garqF4=bw-Lvr$;I;`_--rmRvTPA|1#%;oi5v0`vgO4r?yC`&(40aW58!m`$9BN z*1ug>XUKF(Qbbm~N7Sw+zYinkEurVbkqP!`%-zNGV8ia|@_=is|Fya`BcN>ad}0EI zEm{VrKhECxs1B9I8|64a?4%~~bp!77&w!oq?m2-Ad9m(glYc3VO&Z6fvE~GX1T|+A zBlFn$qOS=Vq+HIVi3CZq0~UuS0W--(Sb0E7Nc2itE#EZHMrGt?fjyWria??3Bq-or z`=t_H7hjfhW*9*uiITM$udu!|fQNU3=PtEgcs%!y-2u-(dK$iNA%LG1D}=u}N`Y2K z?B}g6_w}Nec1{&mFH3fS7M5;!4UJwpbs-@(c=fP4LJ}rs;;@yi{u<)YpCAm7n&gll z!aNEs&l3eZv@pPj;Nrl_t~kQyS!Q}ntE8`$3i0!r;gv+!V4vp@*W7c^Du#+L{|DEb zB3T-leS8^hfO_P~`$5x6Fvzy6+pZZD=g>GZrVf$kY7t@z>lQSQe%J)uSs4Bf>Q2xU!6afL18mPYaFvyNM4>W3 z_bQ-TTNH>Lu)!Vb3Ib9O8r0CbaKx6#;+}JSM;i019kosm^SyyTdKR z<}2J&UIM5X4_J$S22JHm5Vp#&900F>($tU1>Nxd?LHdPPuu!l8tH5vdYZV|n*>GSL zY|0jZRWRX^1=%)t+jasV8;S{bD_%vkNqmx$VtdPF_)==ezU;y*2)==IX<8qkI<8{0QV5qNOpE#y)>6Gl24h53E=m4{5 zH0aK7gMxjQLhCJ0#~L#!_=aB4l%w4U_c*6MNzP4s|6BS&ik;>krFM-c0Zn8A6_5#1 zk%u5e*OzC`Yd4jNhl|}Wj^v%)gVrx=z>T@KoY7Oxu)9zBrYw}b^>zqL$BmgcAN z3*-d~FCWXeav{GC@hyg4@to}acV##~wjJi2f`@G~{-Y~=ep$TFb*Bxs-k zZrmzX835+*P`SJRX8%3Ci@btjaY{7S0e=l6IBXbmU1bb4Ezx}8R>A%t%asl!*{-qO zOVHGfP*@joJO||@)~!j0K$Y!JFcISgsrbMg!)m;@+p@3gly7>V*HI;oMYat)%>)3$ z7mV91%Z0BN$&M}pE_!~;*RS0xM`koOw6X+gFObj(Qh@@}8uwdIE826`SZyN1bq*3c zQspk8;ymR>mzNMKSyC zO8G}WuaztD;v3%Mzzhz|6WmE5?|n@v{XVfp&D8I}`x5}hszBMLKwC{UdHm9>d((Sk zarO)_bvzZ_Mir>y9Hg{OnFlA7!S3Vl@T8ZgQz-Xm3JqHIr*=2X5pnqBd}doY9v$xu zD9$zN_p92+=j%^AJ0u9~MTS_DcMEFH5t3- zR&1x3qw$OZ4F5T3TCBmXg20Eo7jt4 zPR1EuYYl*fWH+uz&C=>`sL8+KJOKXU{+a&x!K=B*&D*@0wGxg|@8EF2_ak3s9=6 zuc+T3W#t5rEWCjae!ZWnQT|$4o8JPAtG8{d$ja@#BoLkWq!WJo!bopt}#ZeDM z!fovyQjyS5T|`7;@T_$JZpas$gK}ws469m2`oUA>qXyL^RvVPg2rdwkrewl?)&xiCB zXUPSsK|nu~2m{0`W7ZFV%1vA!3sq)2hPFDM4k%Q^qfRq1?FWSxeN#UWRcbNTOaV9! z@V+RSGO$~aQo|*P<3?4N_0_1gO4Fjyo?}5H#;{*rWH40DM4q$}NXK(|2N>~=4A5zB z8g?~4phu1L-_F`(fPBDTy$WpMzvD{Q&GmnWm26(E`4U~x)g{S}m&_@o|M6}|VC$4` z&Z)4;;Yl^Jdm^7pE7jJf)0}3W7KxG0a)Sr==eACEg3m!+Uy4h|9H8TN;jrtmdz^vt&82yKE`br&9jE!;#D@StZVN8v020Fgb9uZRdy#MQCGB(28LQ|q}O#W(!B^6DbjYs;70 z%C3}sMK^bmSZ;ef-uz%DzqV|Wj*4QY`yG>%D0A?e-GTjbZD#IMUw_r4!_k7?!uK=8 z1$1F4(lF4<&CR4)+gX!2aFPv0hyYOlJG$Jt0@Q^mD4CJo=d^AM{bg z@=V7uO}3%Y1T|;lw#++pG?%Oi^2%Qv6D-ntaI1G(b9@Tw7B^Pz`a7Kzr&zlLekiG& zcpnmk%~)o@vUHlemRAgLm8}5h-W|18xhArXa{GN=L!vLjDc0#|6n}|%OLhPJ6F&q9 zIc7V^Lx%Ue8?187It$EIytYl6eV2PUT$gAA$m`<-C4^%V63Ij-=wk#Jp9(s$@_mK- z+a$0zVUWw5@t|gNRm)2xF|!9;RfX9_4*zkO`*(qcP)|NpfGw!_vXS_UEdUJSiU3 zmNKxU`i{@*elE!-ku37l0C-~@3}`IceHQ}BwX`NKm*&OE_^(&PW-epDcU%~VuWMe( zb-zq%p_FPtL2!u*Vtug-K7M^oJ2E#xeU63E+rYqmZ2M0p?7&7CH;wO4-8$N3zz8Hn02wi~E# zs3Yx6MSedqpY+1-qSA?>?c&S~#YL?iE(?K|^>}$Vq7tVMSq3LmXj%ENr11$GahW`y zDhBhmlTo<>v3q~X)tr6lt*mVtH!$4zqNrd$;Bm!1ZlPRKVE{ig{b3-(L=nVcUVNs&?z0qwDRvP(L?mLO)V95VWzdm3Obd7 z3$h9OOcsBnz>2ncd>K3iX!gXU`QQ@@Ga%>>mqVc5;2=bn1G&sV6-iJ9PKW_KLsuRg z0_ac7S@UUN*kr~z5gy9mc$opmxkx#I;P%pm3nCSdeQ=Z?;{S5Cg#JfFibIRG`VYSVRF5(L6$*{Zo>wuagGCUX zm}|--EZl>yzi(JqcEBdth_PCRHn9zT>3T{2aSrhoZ2IvAXBA!Mo8~)67ZtbyjhLj}ml36rtdBKAdu+lz zJxtR&I2xfuNBYkbkQfcC8dvc$dE=$R`zruB@Sk#!zeAA!>pfG?%07N(Df*cD3Z=!w z;7l)3C<^hJ_X(oW32fNM+?H2b0*4|whike@$^!Hp=V6Z?MGV~V4of@)@L#m(NljStE`H#0h2+}DJel5%43xka6N(No!V#j}4I>pAO~^b_p! zLg$&sq~YvEEvBn{);Ao3UP5M^rpJHUD=i4nplD--*YJI6?B?5DTbf-v4cM1|B(lL=PC8WDkO1itdL_k82=De=& z+k2nA_gQOwXJ6;XdASB$Oa|k9Mn3m*KlgZ;dsqYT73AP@01^@sU;=&t4~u{dfQEvK zii&~;enUe;L&w0u!~h?>M~|>@2=E9A3GfIAh)Ai)h=?gk2nfiZkyAc-LPJACL`Dmx zeF~+1O7rw@BS_%CVxVK-Vq)SxB_<$#`v3ZQXa@)|k^T=WCA1<0;Gp-fCd1- z&;IcM|M?&xqo9ITVq#%G0xQ(w1IS1yD9E7wU(gMtK39tr^<37lOsWw-L;XNNNZ|GzCw zG?&kPRcLPgt+VEZZ?YC9dtdMP9GuMyZblxC@bE@PX3eFNWQmlAAI^UqIJWjEcV}~4 zBD^UA?t@?9`LEtQ0Qd0hdnwl`9hnCJ%YNxqbLE7XxRry%mgGFXq5b*Y)=y|u zeEgYkj}sTTNrB+WZs#)#PshCevEjVA4l`D~qohEB@ZX~F9x0(dVjB!`bt7r<(xJLp zu71?x#%SGK^^!{xHqr(Cwpm!6xFwSzY3hIEUgQ zOtocJ|840O0l>4k9bCnXg1|yW###&K2xosNDNadO2Pvq) ztmIGf*KM#r!V7a6@3kds`IH#9$7+7n8{%F0Pk)y0y-A#ZGYhsDVz|b0Wm#Fv`twlv zLUCE{bmL8tMGidFD!{pp0{p3m{0yUTA6z?O}~GyguH z#ryVatNU1K!*hjZgTS!|pi?~8f9!ny*UgFl1JF0+|3CjeJ*uX>V&buaS20%OPrA3z zIvVwxF{tPMQHr+c+l}w)vZjE*niWbTNx}nwS)cU)K)w-NzExYiuf7vJNE4Ub+>>n< zyBnVC73v!mmnA(z`MXp_bsm7MQ9S>3nb!|MZ^8feNpWU&l+>R8I_~rXuzS|EdZ{|+ zf3hEa*6H)TEW`cXXr2mM5nKFSl6Gx_x%z%!xICSJph)CqLkY`|8X-m+JYPjWTb#&^ zot~K;S@jO~^q~W)s`qRH4}hRy0Ph*TMiWX(A-h%P%noasb#9QCA)L6fQdI`$CvYRJcQl;fE{Ezz1aJFRtr^2-@+fly70%eq1Iou5uxt= zpmCFQdE|@L%}*yRBu}9S zK)aXq6kgl2JrEh*Q%q@pev$I_$x(*4vxWOp-^SAIH(Q25xD+rtNZfD!>bt^hn^lhH ze7}&j2Vn3%9+|;^wQiti3CJ1bHlt4);`I!MQMVC5Ebceid7W|E>17I? zK9Awn#fV@}cxqa@NNS4O{(d->e8$j_kQ-M4P*_6K0gN#%A0`-b zc;(l*RU6OBdFvTZvU+u^!H^XOgj_pxU6arWNmANCa^8m_{>-*1X0Z(8w!xY=XY=kR zozJ!dN34>=Nvow=#^kkrhxqi6_RLtn*qKl?Q;z!3fiiM{Ff@~k)$<|bF0T(NP>beLD( zSq!sxbuffG^Tx#m&X`j6@q5-O(s9gP;MM~$anrP05Z&Gx&h!;YmRR*4#Yj_dc0oSi zcf>Nw=|<;|^N8g$1BG$eBBTy0Q5|c6;S-)T-R3Xq)7r7ioImfVkJFh?<*x0jt2mMJ zYzKomDFU-;;);+A-hOX7#83{j|QfpP*sc{D@Ewlp6Tvxt(+P z4!`XIh$*F0n_%#7W&hBZiCH;mM|isnG1+;C#U_NrnwcE|5uv$!QC`+KR$g=HU!U}v z)%#$1+I~wjCY^y6I82^`>B|bPtgO6sLJ7ZqUy2~BhonS zsez+vMtB#-Va2`+q&XKJCIjr&Y*9yPTkdFL6HkQI`11i@CA z5pQx0;~JsQwR&WjS(LFW#DdURrYHFCWR&V`N!}dQ{Ge{BBZKcq9Y~=CWi@Qet#V^G zpss&_7g`IHTQC%78~J@5=9*lTcsFiN9w4^*iM4FA29`qob)8BikL(DYpIGfBayZlH z|9WBRNi*{+Tfq@M4Y-mF$J4%ta zQV1K^LU^^8u3jd3dEN&u>=gK~AZCVQ`mJKQ9smbwyer#pThaSoe5}@PcM@-Qrz~Zj z93H%+FjMCmd)^g<+2@V1vaNZrG_kI}gvF7cxxZtOmXe$4o!-w@#ck=qNFOGKP!Z;T zLgERV%%3{aXUY^Z4a2D?BSg>!aY=D(Av+@gfUvu$fUTVrjb+cj!rm<=>$@izsUS*R zo-Edl8E($IHBvM?g2bgwmQDd})U1V>CcL9tUh&TTN2i0uB_GJ6HS7Y|)Qp>xgNjY8$38csS)L?HmUyB9 zjimbPrOWlsfVkX|fgh_zmd18b(CKu~U8$=bT=`2CY0OKC3 z)jdH>rSA%4hVPJ(I?bQ=kW8M&PpqKc+XXj`f!oD7E`;@!`iWe#zXg48(yCQu61st? z5MpNKIp(uerl1@FsjE=NZDTL;{9J31uazz{3vy|13zQ4Y-;|nI>oP$|pGgb#qeyH- zNiCoF=nk*P;2B%bk`d`I-sQiHT#~AU-5Zp4#1=K9^|vrbX3{NZrP-X;&U$4jHB7Y8 z?0Nj*(Sscp?c+W!-O^!=VHt86=VcOeV-y#cb>WjYc`Zw<@!w;RvY+3-9Y=`Iq?!5O zRlkN(iU$%cdh2lAUR3rCRM2o*?!=|nC(oPqIvB=v&ibDab%nh>LFra`z3~KlWBc47 z|E(T}{&Y6F_K5MiS!gVbT*uTWG60s;KrVS4wXl4abD1R9Vs?hf!62ZX?bDdfX7CXx zg6%>#ozRLobtc@Eo^IRM`U(6|$%utj8cB_FtHW?m0OwdazbJUgp8iV2w!hupLUh`$ z)xeEW_4jY&Bg^ep6coJ$g?uptw)$Gtdh<4fj~HE{iRyv;HBkYAVjMUQUWTL^K}GVA z*FVQ_idetgcz)o=OZ+3-FrF)hRnwUICKlJlBqKufsoaY`pko0hTD)&e-Bwo>uU3<| zsx@iWoATCl=%g1x>>b`Nre{}hM&gO@aYQ}t#9eHqbn@i9_LGnMlJ<33+Ed?V)@`e3 zF+}g6#j}mU*D;BM4S~&08^I4T8zUik(s!d z4kak}sWe6;Wppwcv6|F>r4ase2XCdB`Ir-a-&vU|>|pM)kTHcrLEkfxxZfojN1;fn zPO=o!LKiiZb;_pi|5mT9`Z_PK=H#6UG!A}5@Txg$*>$QOT;lVSZiD0{IaB99jv%#3 z3^Oas#KWF7u`o7gYHu{(396lSwTlMrIf5UQZg_SJWkshlUteqkk%8<}0VvzDv2sq* zR*+y+LM(H6em|SHgBFwasEIye%1^0CK2;q7G2GW!^pNyMlrmzL4_f8L`@H*}tZaqU z+%JMy-+BcSNRvZ@rQkySPz2mmFFDaviADPeNtOhJ|K0{KbeYB zg)C9hi{XDJv%t91HIJ=pA04lGTdFaP5N1CtHR)a8D6=5=jxXHHm}tj}A4)ODYOnEL zpJqW{F5;$?wr5qnRhdSuHD)+8bBD@P^^3BeE0>Fu_9G%E-t!Dcjp^IGw#H=~ic|K@ zDASijC>hmvoV&R|^p&N0n*^Rxt0vYo>jkrsm?!{4B)>Cl+_#=UZrPsrJ0xFL$iR z2qAR%bt{aA(EkoS8@>iaYnOt0HJ@LufY4k%^N}8 z_>tw?S2iESTH6|KpeZBVpL$%JM|CXR%WSSkyX-Y>e4@S&IoXmTuaNmKOW_En=#KeT zmIL;xAkD>v=3Fxd?v($I4{$%OC*6L^!ttLooqPb~>8*Z>kk)5ky;>9z$oYCTf7&){ zcjDN?Tkk~CBj>!&D$`EGQ10jS0I+etx&D~)Y+b`IxALosbmKCS2W*nH>O6Hc1}557(1K))aRU?h#NIB=2PKa;MaZXOaE8(8A-o7ioAV%KYN-O z%Y~M+aPK%WN;07D^X(&n5p7M<(xszn{jBaOyNQnCcZ^sZHYAT8Ma-99JP-!tj8sZ( zZIhg4t&`;(Y-Ks4N&GFP)Df}LUCgNFgc2c93OzS3TM>h5)eTimF;C3}3HV$%r07`M z31X$MDd#~e({ALqPLz@^X8gB*4WE`L-7kWHO}L~_)oVE-D}A2;e`{;X*`wOGRDJ^I zmr8O2k}Qz76s6+|3FKNs&oI%FOG-ONXWZVFat__%iqw`0ld4#e|H;1e=!#7Z3zqJO7k{Bi+b(o8eIp8Q@Ukg%$E>tu}QWna>4aZ-%~tkeud5@V?5;l+CsemP2p6m;IIOZtRTi!3;V zpA(Q(zfigO%`ou)jeYm*IKS1iMaPt^I5vcnC^78s7-H%v1fsxtw}Z>pkgn7&(z9!F z*Z(PJXCt!bwt87;8l#YP|9q@dyK}R!LG!uxe6O}0$6V;3m7N!hYIhw<=6{9B(mqN; zr8JJeYxcu&S?XJN8`PWPQH<(1qEPmv<@tc!&e|yHB~MF!%Wq-hJ8Y{JF+5?%5Ni0G zJfzWMsUM(ASfTU%CaYyOXfHQ1RqjwrHP6XOf5za8{QLtpfTX2q!V&;rgF73f-WC0T z=zZ^_GKRQPVn5Mq#y)XLOFH@+Ww7Oyt0FF`XYS<7iG%y`3Jg5UamxVhkuWL*601ln?&qqO zr88aTP8A$2nDGZQ8&#h0x9%9BM|J^r@w_JPG(&aaUGqR)-TQ-7_d40y3cp3(sFB0K zHo5ktOOS13DJt4kmm;ArAzC*4Zf}nhKgt`r5zfyx(!Iunf`D%#=T6#{)l$tJ9BhF7 zjD3WL4bZ0~udxJRvB3ajI6$Odub)e4RMTV}e9{ny|IYmZV_6sOsvb+K&96u za8EAx-UNOzcgueh#bV%n?s(<(O$)BQbfM@WjPz+OWj3ST+nkA$Lm)loz zk`mx&H|48}hmGglNTkjY!cHI!&5-v^Iuy^~*e|5RIi_xga3Yb+4k;Z!e)F__+?HR$ zNN6}f*H9gh)e=U6qd^KhOOfP#bI^59 zOKkUz=|DC$Ub!axFPqw%VqsbWvZ>_Wk=-DhT5(2EhwwP0))J>vnBsq%SU*_`ZE%x; z=E;#VbpU+_?=+?3l1zy`X=^1nlE*o#f zI%oPli*8(IqYVhza7;lf#}wAsu!bP?4IVEFG3}2RIv;E9-R=Dk<2enC80Z+t{q|O@ z79!%?y}Add)&c}USGAH~e5L5;+C1>`FSBkRWXM}{VNO^Mer!DNf3mR-28vevu=NyO0wj4tCM$SNvhOH9D20z0-$&b0Pu zd(t*Uf7&wr{@GA^ZX_Uf<)Je$O6^S_lQmnsflV6=@11$a$;F0FKubg*^Ozge~3r;?`g<_%lzwN%D3&*@WJWd z&BH9)CatgzH$u6Sm+`W+TT%VAgk?MwaCIlGz%6`yw3h3yABrj1cUnO#qw{7^ZWw2* zo@FpDL}QBJoTTs~O0Zk9xhZ7zektxCA{D}Ore3T~JOCRrm;42-M$d+tTBg=`4 z1y($Q#eQdE7+rl!ou)xDKqa>!|7%$9JB=pd>nwz)||EB)>1{bkRTI znW4k046TGDI+g)k>^gxeM0@nc6PXv&L6wM!i}@MYR=Bd}aX+m{I=W|UC%xRVVZzz2@92y2$*zqsQEefi*5UK=VgFG2oC16gil*Mu`m{C zR6h7D6x(Fp#CI$f!)t#rUcctcj*%fjuYO>?dd?~f#QHaPXT zLI`Vww=}m31>}ge%a6)I6EH`X^ z-G6H}eO2vK_RV zZ=bxsTb||){3a{^^()-9G#{{^RBZts? zoKiD2S-ujqD1m{WYOT>DBb+=|{Xm84XJoyUXygI_(H#IlW0ClC%2pQg657J@6x&8t zcN;S_3tAfn-~GYZStwe>7nGu?%YpsW=J>WDzaDx>v^~Y2>^oTD&As3#A0kH6G%|jb z57`zA%0+kb-ZudAU2X#YC(72v?;e2WSqA~}fc=@+1n7wTF>GFi?ezJP6LGR}nh9mn zt%e#rPx=9PX8q-nzw_8)@n?3s_eFJ7cDd`-O=4)c7NB<-t@o}M%Ie)OYy}6U?NV-J_td3N+tdr1Lni6goNiu3Mt-u^ z)~;K4Gh3_Ma-+f9VQWJkQ~NT!q@!<}PIXT=h@u|N&>~apP~ifc2*l~>D;}$MD3j`E zfJ93UoCx4Ei2MM6*ayiA~SCJKH83q*f!c#0K8u#G|YiGxR+f;h?`) zp}Q#SzhU;)0<{lXQyUFoY*FVScW95M6*_}Cs0>uu`&Id+_I727U*8oQ#pDIY7E8bB z{gNDi*4NPg(P2#CBeeLt?&^<)uX$iZO*T90>R$`3Rye#&G*y|3m;X%W?&ooIKW|4H zEiS1jPbi!iwS1v=?pha)T|*k_LlGt^77>~3afn*rqR^t1RJ`95 zQtnbu8MTyz8%h_--T9py8aggN5X$2ejvU>twuhd7k@T_VTReP1vSx=mVp$Ki(3N0b zFF(hnj2ZV;djXf2Fkez{mfz26fHE`3*_E1t^tkzcA8<~H!Wg7HMxO=;76s56G(yH? z&u%$E&wrYNS^y2l98>XTiHq&TZ-;bf50!$1V*j^1IH)5)i_RDgaq~a8ijlNyNpU!e zeE=o}=E9z0sy|VMpkg3TXU*#VSG;7-;WjJ(DsGnbpb5 zo+FStUT4ZRm1C^FvU$ha+B#Lv!Re4Ye$L5b8>SDZqV!$+PX@%Wl)nLuq&U~hv0MLp zwc!s+^x^`kGBay?yR8Hn083qyARXWNh-LQ{(kA!-d=c%Iyktvz0K&5OaDBpml=`A< zQk0q2$9K)vsqlubiv&gRCq8$o%z3G$H)@Vr+0ni>_3HSe%>!_Dwf^gt$xia}oO-Z9 zcekMI<30Z2t9ySj@dx0;V^E6lH0Pe+kna9tIVi1&0HqajIVosS#5I%j$G8!%3-=#@ zdCz!bW8;Ms_EZ=p8UFV+`Ik+;7ZU~8(QxDEg*Yx{EsUk~HT8+A^2K^DLi9M?e#j2= zl2hO@y{v%*zzB<;Qb9;epeN~dG!|oQZ2Y2riU*Xo(tI;NSbAHQ4HW}-Xt_b^z&Ub; zq~vU2>AR~vU#!ZbFxo@`mcI5aF1lFhU0Or~sauqR=J=8RE^MmY?P?y!p1tIdhy+TQ zTZlmcY|d%tUwj2qMNLN;|40>aUcbZyQ$_CGnjKYsHMVird*!y(~~iYEsG?D^)Jj3vK-BQ_e4tNi}Exfvv4aa=wKgG4M5 zRUt^kqN@dJEKyF~aKx3LeZ9+)n~J$@R1_E#2KLpxbLpw54`SC2O=;LFC(n`F^1kX0 zS}^2)9(5Kk(G}DNgF0KKZUC+kM%VvnC*YePPFN#~&Umdg-!B2i+WNMtEcCac8TXnW zTx;9pw6zV>c`Ah18W)CeJkIu0NlVP@Q~$i2vNy_Mr{d#%zEsR1N1>uBKc$^Nmvh4T z>vuuv+Vr>WjSf9pgZJ}?Q){GV0Vc+t1lvKmx$*_X=YArnbw)Z0-VBrUPQftg#F^(< zr+MutLa4<7C;>2_IGa+g>LPJC-`JqnFK=KwuijmC00z{krF36PJlZq+#5^!a0ZCp~8Q62;iNwxan;upen7J5GGLw%O{J`aC_nuV1JQjsn zm>mlWbR%+uUEuPu;IRB#>cVhx_r1=9$yhl<^vcfsa?MSlF6z~>QcL8!4N|nYDiWhr zPeL+`XM5ONIlZ1_}H-n?L4sn>%Sr_{I^WU{rHt=NB14s10K*}%5 zTFR^5G+AzXT2{*7#Sr6UUsj?OA}8H}5eMR#kE-B-wHh+3eFNrXw)Iz#Zaq3kMZG;@ zj_gh|+SG=g=p|?RAWVqWWVx`JvIG9t!m;P$cHLHLpKs9O-14htkeOB}sTj6}QcEIj z=`fIcQT&v7%4Dk6(v}z@E;3KL(8&zo#4=**B5R7e{HhN+I$SB!eE_=CI$ifMw%exv z=r3HnIs9~gtu_|5OTdZ~qUI9PxNlH_J%8MqP=XjP+K=;YGES>92(2d(e9`d8p@cic zKY5Ef7*35oU$dzrv*CZ4U|si)LM8Fdw~1OdC#AviK_WNFrk5Nu6!52OZhR8$W;UMn z`k8qkEit&WY&3K>%rMrRkz7rUgM?5)2``s58vFg@+)sZ|x!!Bjd(}Eo{e?59c3dBZ z4NK6_asvEN#e`2x7?o6D^*H`j*OPA2B<3fjxkcD3%1HJlc#jEzuTnhkyk@u01j}^( z3E!}azt3gV|2Q)pA(J=%S3%l{4y1ToCwdTF}sF@cbHSDf&#D6xz-NTIIFcSk{oJJ;kjRg7%O zsek|U!ISP6=BDebt_3$T7bWk4me?O2Z;UrIpD7B=aChdu{}`9_X1y+IM6*bM70j4i zXAH^`_2Q^KOWfE{f1xUeiMAA=%p(OL>n3QSC8L;ii$s#S$XMk=|29Lo!ic0OFirTf zod|5kdAlyEfV_wU55l^C9eJHGFvud0qXr3IS%H8JVLihqROW$05xR+%Amvg>bE_es zofI}w?~R#>E=GkJ_UzRY-yIa6_)a>yGQH`X7+BC_PGx&nwGhF?7n1YZrv>h*Qfm|$ ze}{L?DkPR=ecA$r^-ffC3Owbmua6uraucnMz7Y<=uMuy6e@|{jWhU8kWPHhWQP?wW zn1(sCb%Z>jMGd5W;f%37KIpQVlFyd{8&&ItnPd8^Rsz zBD$oLJz+>Hc>wIaLi{U?WnH)ZO*@-!>mS!k+6awsr&EsHj~oX-08Oh|1&pXvkW4b}LE><&xWEo|JjnZ=$MObsZEQ1$1y<4d&FPYC zX=0Cs$miQ;kvPPmZTk39KynJ+qaf@;LjUjFCH_;jUj9FGFW5n(sYHfypXOls03_Nl zHG>LNb^TFL8>=HQ2}eC{Krow`g4$RaWMR~&E-XjY*)~4%pJrzkUuQ|kcDt}usMJ%n zG^&2`%MI{|f8WuuQC)b1A#+!3R(Aihn{J@ZF;QHbUTfR z;vb%=S_2(EaY1{~sErhcaM^w;#0z>ua~?$QS}{r=M7`9APBZ9{&3HRp+y#sSmg(vbJs?isuX5?aGG4}k4t znTvhdbNkgu2YJH`1c%&Ke~&a;LPBa!+FRSV7EfbJ6t_E5NOkfQsd(V@x;Tl!2)HVi zy5eVO6U+z6>|UfCQ0){7H~BdY!xDWg+{o78#ns zLfQMcV)=3NRocQvvM@90%*W4r?+J#Vzgdg$ttS=4?LZY|3$QnJYNkKke6AZ1%zA`PE$)wN!=<-$ z7q1Ry7(dD&y(R|g##DaM^#ck4mD-~&`79%)ukz5@t)8Y(+u?4+nY@_ zVNwRdeUEFU)=iysdvNjkX>V7IFA#t38Lu%eVt3UizQBI@2gBdAX>!3Zlm--f=6a+< z1A2#S%GVVabsY_qr!5w9U)}HTRVCu5<0m1>(`U1{pmn@%uI-!mQqgjRrVHx2r6~zka|nu zLB;_WWd$*Z=f4)Xi@zNA-YU5*j^cb9=KJk&$}piOz1_2duA+K~*WlfGk#akdx9 z+s4JTgy>rq&k~x8QC13dWc)y2mxa|)fR}m$TeNjw&aE@MNl{Vvpza=WB2lWs7BF$0 z`hUV$h#9P-GSj-c5HR1=?JP@~Xl3d|jMNW32~?YvS|Q zGUoOcpdd}J=*>XcSj7#Zaai_Ge8x* zoeW2hnmB#ROKo`fn<7?5;(8RIaB7ne(L&?ud=${wf}%!fd?Z2{J_QOX!vurZCVL0{ ziVvHb4#pRm?}p^RP>onv2;*eWf0tj|gGBH6xm=U)R87Pxn4X@OPQ|0aB^0=1#AC&o7AM+mRGNghVQ2k!>siidSR04N;a28 zUhJE7$J?LANA2@k+AO+XQi`S}nLtzUB%f)9k)@MFN)R^#w*jNG{1hOj-BoLVftc1Q z90Fom*(fAN8xo$j%L->5ko1bQf$ObK%%8t zKoJ0~gaBaFrv&I7U!>d>7eWa~FAVs)laee1*-M@USY!5$@BoI}$wiUXfRdHQjc0AUGW8MHjOG~Trzd(rUPI0Ues~O=AzQVapO4Rr%VjQg7ozhfq$`}+BO7<`h{yiryP~X z2OYxjf3LA-NtilYHXL+y>i}KLAFf8ZRF|q0+d)OS5;ySor-j z{ZX3fjpwGQ5fz4cM11YBGXm4XQk(zZI?*(dI$z1RHYXBM#e?-qX>WUx|ZdYx7rVAuS!oAmn-_?uQ({6^y7Je$CslgFpI+mBh>31UbnVk9E*Eds z>ZYG^a%^ZndQv;UO)#_@6U#afHG@2)N{5m`(^Gi9VfNCT z;xn{NjBOcw&{VaH<0ntvYQ>OupeAwICUW&YPAm#>CRQL}-^Cz$4y-@_HdKgsp+X>5 z3kQWwplcb;&jMY`vb*g+T+7}^(6uNOagiturt0h?{X6foTddQ$5DA)6>WctP$uW5K zog6e}Jv``nlJOHkrzZr>T7Is|;N+FL{rm_{-bI)xw3p>v4?h;1Je<;H-KW22Qjzp$ zybm2r8|zYGj32t=6sbteOjNmc^BXxf8 zPtkyeX3~1wbe4UT0}tK&;B#^Mt2C97d~*!8dFChGujLt;2-Uq8>V^YQxKWNU#0}ao zGLcH7I4<6-S4>YHkh%1AXw!SBBjS4r`YHz_qgIS3q!=pxN;VPuSceW4b&VmQK|?Oz zX%oy%oHXC}K~CO--g7hS_u`^ILGM{_aVJB{&0VRKLG0YRZhwkEbQqfzHaXI$YQ|qF z*Z(YhbQ4LsRlI$ir^iWXQ!SChZ7lPhiVq(pGqR-qMPLUZ2ONU7Tm0qn<4p`ve;!_f zTe9h7IOlaG8xx`F`=ND~bCdq9aS{J`;5i3LrreG6O7rrbdGFk!!&c6r_(DWbr}zD7z;hzLrEv%Xr|k zN2v-C=s$~?NKoR`-AeO=pMJKwq+)`DcIOD%K|4U z>5Xo7UtHm90_Q(sJy`e-UvdqRop3$!-?|s>>*z-vwAoKDjfzd!KWdzh;BIfHfF29w zPdx_pdEjeWPIzy@*F=2X{rehg9q=_4^~?jXi`_3Jt$50yCa1LKrzfb%xk#~q$`hVj zQwM;W9Jb+k&CKaSa5=Fq`s2!<%I7|RmLhsr8eofIpf8KTN=syJ#^v&WZ8PN7 z>7sW1I++3qx?4&4P%{dOkc%#~P--P1%xba@mzJ1poBjm*T)phIX)#p>L!W#7Tqsl! z();11t(QGx_z67EzAgtKBrm_(m2whgIGhrQ;dluU5I%1cxf()0XAG8;H>@s}AJt6K z7y(!Wq+3qk{wf)!ix9FW(-3a73RC{_XYm8n%USn)4)( z^;jzZlgxqoo~k0#nzKp$Z$|iE#R;j%tt8bORIF+iW~D#Iy#+k)P5F=_9@&QWozbeV z@^Z|EbqKe|GFzHk3QbKmJi)vD*aGHp#NDGfPY@e@jO$r+RyRu9{qxT@vO?U+**G&< ze`TJ4>pXa6jD~r;oLeAtX!22$9^d{kr01ac>P~Ar&TF`^lKT@hMK-pYt?pT5Ksg zk7*l!EEvtTnOTTxlBa9GiBu0VOYq@yK%$EKlwfgGBJUINvbAZFpVdfi;1$dMgn1@~ zK*+*=$EUR|YJ4Fv?U=}eQoHl3t;y`u-_4`HTgA}X&{|TM(xP4ZhwS^iaw5|$vsCF$ z95T=oHbe(m1rdsn4FhHe3tIbU3<bxpQ!uvzRZdlYvlv~Ks zW}UBoEI8DE5tMvWZM*1uT*zNklh;rE02JIPAoa1+ZaGotND1#xA1CJgHA!@_8#HN$ zb#4;?O+t=`^n)ge>_Q^9@VzNCwZx^G%YIDmT`%9qxtz3I2=ahez7U#K-0IR0YI9Fy zFdE!g{e39-Vpb=sMz1uXM@TbuS{oAZ)PKq^rGJYwuEL9@<($6a2`-pSB*H_nsZ$zC z)$A|mGzf@;4Wh1@74z~J0>`NKL0Hck_xIjC1=IQ6CqLwOjPxno)}ro926>2s8}9dq zOnuj4Rk=_D4bLAr{SOSP9UYfDSP<;&Zf#4@5;UII7@I9O@vEz{7gK=SY;kOA#5t%X zqwdw)s#|H+6!1QS#o8$Tl2@5O&Y;DG=ue|zuUR%iR^2I!uW{Fy?U17_d^z5@OrN43 zfz4}}khC63-z2AA@w}Yc^C=#t*KDNwmI(rx>B_ss0k%!ri9E#GM^$#!M?7 zMYc%2jIe%F6=?j3lEWqEAJTis)MQFYjkj;Dq}$c0yv^0GPD5epm}F*Q3XII$dN6=| z0PZl_MeNJ38*4@T9W9L8?6~n*Fh-?63cg1{J%>br34=Xf@0;Q~fgTC=L$|jy^pedx z?MZ~LQ#*RO4n7X;?En%8BJ?FFCnf9LZ=P_CUU(fbXr-=wT}L%C)~29gVX}nA0_t#- z)RD4}9sUjVC+J_(hb?jjw+nCbM-ierqwfgU`?h>L;C+2`b2#7}?fWkpL#O$(==yH_ zw(2Fc?-s>++3STUdYsd-$4;`Yq51;hS^I~4b5^D;SQd@aPKM={kD$&({j?-|Tse|m zlvWqBVSKGrqo)$9-X!&D)gGhVokyS^JbjZk=3llh68Oa$T=x$EuwsPEFvE$4;5iF5 z!D8!cKNb{Sh?P@0S~ABazx2P4DhKb32@>qZ*5x#uqE@a+k-M`@)-Xx!;woz*x1W5x zrcZpI6O&NtHkIj=E_b>_B;>rm@-mi=kT0p{Nx49O#ZlXsX|3XFO=K5|EcxLpk%LBhGOZmB^3u7(<*66+ zM0PtPa(pn~dc@9-k^v_Q^+izw-8TKPxoHE=(Qsf>MS%g*KUdDy`I?ClEOmUD`^%@O zlcQF0nKz`T4|CClfa`#z4T&2nby~|9>_5g<`-&hdQ4v#{icu`klbhvZv<#cASa=te zF;sX2#dXTz@AcuoX*J+q6^Ba^FKAqmXcjsR}m9y|ynQt+&*6 zG3CF)xEsHI->|cGo9!U(Nkh(if#uHUjk}0pDrq|Ik==w5*Vtl93~?hIniIZb{voBa z^k?}^F9>CgenL8TmvzyiydU9Y}5!MHw zxOvhtL(zpcasF|;Q|nxb%L_bIth9oG^alXP#(%C2I&q#wH+qA%r30QD|42#*{UawK z#$EUTm|n&!&iKYi9+1TuUKw2cI$aW2TH6%rae8wik#ZNYp`;;qcKZNS7%STE94vkt zbZM@PkK7dM&!0l+zP7sH4C7a#8a=!3@MZ@O6^93aec-4^nKyEip}P3X$u|%65y6vIy@+P<|`&R++QOwtBsS70a**|*r@S!w6M*;tX2!^T*6nAtnw9{3cfxcSd(*TxC!H{wY56pA@Y zML!11Z6YpyDhi}XjI$KbQxJ*HD-@rii=20irp|09-G=(q-+f^7|E;y``-{-x+_{Fi z$lXxb3M0F9l}E8?T=1=X-A`8=A~lEoYpSO5&?AmE(jVXL`Tnm~t~;pdYzqew0Ttqc zB^V?q0nvbTkS07(0TmDn77V?&fV4me!5|=I3B}N*2#5#-g#Zc&C@RVVp?8)VdJVmW zch~o3_O1J7=gqwRD>IqQ@1D%P=ls6&-S2$Ou6WdBoI-Q&BiYrG5Db#TD0`p!0muQM z)PGj7&@QB}Y$RNydy=SN$8)OIzKHE$wfo+{>-zYNrduA%Qif7WCuG(LP`U1y(Wn&^ z2VW<#SsJaVfy=QSF;}uWykhWR#T@`qhA!1)>!3YiQ>5kamVL9N?Wg^8^IJkcKiU(>>Yv8)<*a^?3FC&Z6iCc4{T+TX&7f^h8CWJ>H6O3(gxD`$uSYX1)3_FJAaD=nK)XwU3AqO=M&Z``Iac`yG)-Q zgH1DRV1iNpSk}?@c?yCaB#yYggj6|;p~lL7n@~`G4mI>(jYh$*0ZwoQg;uJQke`~f zB*NC%`er`dvK%}Zt*By13$ALe5E{mHjwue6v_6$E5R1thOkMTt(dL|vt}u;;1`U)i zHj;e^?UStp+j@4x(C%w<$J#@`RI@&cmR27lubJLi{5(s^7&&3g_-G>ic^-Mx^33&; zp(i1?_4dD1Pdm2{!paKE6*#vGx!kg?2+(Y9G?xPHZJ-aQ4VixD{9uuKN4H8c+s(Q` zxAvy(%R2*M6i3o#gAyFCWUeGz(xk;oUb)fyX7Au&xIZ@ADUvOC6YB4QDp+x|_lmlA zvER4LT)=TMB7obmQIB(i6aHBM0*1UgUUV4I(We?6+T#ky(v)7C+C@U93M)(~HQuTJ z@_T03AdRaFa57YU?#+Q#OoCu3V{rgs*`LC+mST)1LN_G>RCEYy%;r_JjE!!kWza}H z%@-fzth|vx`-ND>0^Cc0yM|KdCNw}6&an%j??M{e#ymE>n2Y%%KL;;5GLWYF`l{8e z(S0lKYT(iu@P1p|Ro#`w2~|uVe5_pQl2or3xtt%AiZA-ASCmz4-gzYt zmK(q%mGj%czBX#aR!97ntL&PKP;g%qa~mN&)%5vgoXLvyy-1Z0&^1Ggvld8Vpbql5 z1d#Vtu)gRgQKO?ys)hlY$i3fbcglYmRUP^_R&&T zoq8q)llhm$OGrTkAUlU@ct_x`aENHOXlJ@age&Kwq$9C{kyu$@RnUL0&~_fJsO<=* zyqgj)gHVEp5e>t#@k_`}=TwzOpKoHZF6HF{GxhbL(M6`{B6ta-nd_;{nq!1b#fe2P zS|-+T2sBpBw1kuNRIC1ayO_4wix&k#L)jq)_;|Km$aaj=F=oy2U}i`m#itAgj3p}J z`eUv;NqJhMvrLI%4W{+{1AMfK1?-n`Mc8;wni3*tpaSHHC82#vhG26|>vkyp8uy)M z;@3~SQIXOd;2OGnL41~yFoHi|@IJ1tnA(;8bcSVNWX(_Jb=CAv(wIF?Z9Kc%!hs~ATIy}&)+m$AZ@Sdp zi@jf?(Ne5PaaO^kOREObU;orQz+2{EXMVHc?Vt=1U(}gp^@FERo5}UxUVrz%SSbSJ zV3&aYjzsy7Ld|@%bB#u2t1Qa40+WuKT;*~)tfm_+pLkQ>W&l z0`rP~$S!0?$_qr1LiLr(#5&i0N<`0Pk07AvyS=|&60cXYdQXrSc0qdjN6Ry(aw+%Hg=#EUSqATdb?T<=sqPV-d5T3zNG4L$#xyOO<@~o9F8d$$usvfaOqcf`KpjHS9pO4Y zr>ew2l@fnFK$ACs2a6^R-tKdK^zNx;c%kXSlo99x1`eKG;X@s|8Nih1+vT2#`eKn18m=sdJ7AUMysqchD0$R9un~Gm2uzb~9;{opS@P9fSUw#; z-j+tRR7HkraZJ>d6&9UgCvvg}JXrBGhP`Q#HQ}-Ip>2!!38a39y2j|u?^t)|>2F}y z{#j?RyYM@*Qw2W#D&*lQZ*fdig4>6);$Lq@R44nSP{Glw6!Kg8+^LYgW1YcOnIU=N zs8PJovyYpib}-08mwh@a%>{%ktV|6!?`|{T1h&e1^wYndQ>kC2^{kGR#wBle9j`p| zx~Ukg2TvlvC$5B;**IQ|U8|l8>Jg1!bjFH3COHDxbbC;s#AE8tNncDl=WM|o1^x5; z)t16q=T|IS7u@2FRJ=}jf7HJygVNdAh4_1H-L15HUQzhoWAe#$eclT`E^CLvJvNrY z_h_l2OG3=j?@lJpQY#gj5>^hdl|0FRzj`FFo`+u5yy+AY%r{DU32MY+oHn5Ur)vh* zhIaw9h{|~(lmcEk7%)-}Hm=JYq?48^Vu56bSXRa2nA;`*H_Cx~;TnzhVp8dc5j+Q< zcz%ax^sig)F?k$C+S;Xx5`vz6-pYmEB4JbPylAe}`3rFS6dT$q-kkQWpB6W!=`rTC z+)vj^_F%NCxq}|y#~5BUwAkIp1Qef;R{P1W=V|Ai*v_BClkf2D6Hd^^$ct9r5IOCF zq~CHn87A6aO}Bj>n)W>fCS>DJmn~Rle4j{_FEHabxSW;HRqOt51E|#es}8-g3x3(w zYo5~&H_1sz5%m-P5u-fEav)%+aX_=IcnFV3RFD;ym8Qr8{N3^C6 z98vB!NWXoI-PF{pR1lJ$`?xFxmz&`1Y#r@A=7uc%`Z=L1ITp##Q5o$tcX|@>uZhED z(qn_uB=_-kypMI_X@p~o$KfyQWXdHgx8X2-Ui-vk zd6(XA%F|J%GwSE}bwAlV$^b&nt2{dNxlp;beEa+(?;e`#z;Um}{p<~+~j`R zgDUFQB5R>l1}1!Np{@ki*i6N2x57izDyr6KyAb1WogIK#D+!y+Q)h6nH3DuIB9k$_ zg3|&-R`4$5lmZXIn=qfsd~c5R95D*MxFt-ck4pAGhkrOcri_a-h^&9cZ$lQ=Qwlen zJx#p^gu&Ic$17<2nwo-mA+xB3s6*o#jeUKJ3%=WV^UKvF56V zJq=Ena~;=qN^Lk%dlbBrT=>G|XAU~C9-%c~^89l4?AHaW(`OVfqyt->Lw}El;@{=P L_X(nAnFgxNrAiuU>1f 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 b3HYBy;+y|3`1}9=*$)K&59fgR-`xKKI>~if literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/IndirectIndex.jpg b/doc/tutorial/images/IndirectIndex.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f5ccf5d6df435369a269195c952a3848f061ba5 GIT binary patch literal 44628 zcmdqJ2UJtr_Ak5RV9Fk zhzKwv`~hbZfC4~DOhQ6JOiK7iN=kYjL`eoByr?NCE>O}^)6vmV)6!mIWM{fW&&ohc z%Y2!cm4gEe247<0=H=$(W#I*Ez6 zfpfG(#I!_bEdUq*h)4<4{v!B4Uqt7KNeEPuT_C3*Tu@E}oFgJ8K1ZORzyRTDPr~N_ z2`wqzRo|+cnp;}i+B-VC1_p%Tes17EZRzRnTELIV257tuLa!XTz4A-#O-Je|B2$i(3ix5!&E z`g@V-rQa{`+_?h5)BYk%YHpJUAD{}pHd&Dj6o3kgsX6A^?*Obb8& z?2Talv~&M(2!2OcfkW~97^C@A(3(D}e}pqt#df8TCuMjC!-Ce=m%$(^cVDEp%z7}0 ziHvBz#lJY9 z!uZa58FWOjmniODKTdw0qDQIuQIxzT$q(}85Pz-82su)~Q(lo?lSq-F4emHP(R2oY zYW0d+ulak}+_2-8v)9&s9QhtGW0pqsGZ=jaj4jI;)dQ>U;oov+pfgs&GJ|TaQV*~X zLvzJ%@v$*HlGzA8jV`aVZi6z_U&CbY=rnvA;2Dzb&YtLevqNd|@;xs9QQtjY_*>jl zqWvNU9i5@FQ}Dy8p#y^n4>rMFg^l^CAUVq5ujhT}x1v7YR*sJy?Fr~EA+^H<7zn}qGpwJ1)(6zkL0MsKd6Mmw1a)6n!IN_6(q~;=D4t z?N^*+!jvQ(-`OSyP%TCQ9GwiisW^J&hY`xdaN32f>z+xvK6A6;7rx8t>AiqFv%z6U z`=KQU#ji|gr0oV7!Es?$8NDM-7E7Zs**mIZ#x*;V9zrHT=w%vQNx zW^|$3`dlFUN7j+j(@a@nxEN|G^w&Fl)=0zzV?`H|#XsDFe zD41#g38i)tOdFbs>76J;kT~1p?{VJ}oj_av7t5%3m=UECQQO8-Z-5>{T9Ke;Mvw zD&~qO2Nh3^;i&t|a<7;f>1YMnKJq$IW|JK}1Bk~EvtpYK09?#u4&s}_*uTj|%RiW& zVmh@PsnF4K)O`zgQ%Vz*fa5#;6#jLg3J=C9qhfk};mWrIw^|C}d4{J$mm6OS^?RZ0 zjOC<3IC^UQ1Eyxk$%ZgK%)jmom@oO>0D`NG?%TK;GojX5WxaaEKFnXWix=6JQkBv* zvsV%qFM<>7os_;>4a^Les*BVcnAxKH68`D>`;XLJ-m+Pkn1xg-oHWX>Hwdl<6WY4W zeBY3T?|nq9#3&|y0k!xMPA&M)UKSMJ&`20C<34m&dNC+0!ni@QF2`9KHe1B{fBZl96JT& zz*lkSF%f7g>Ofg>Ovv1fUt&P;@@R2amrcTlPkjk_|{m6J;JVK$xb zJsoqyEjb!I((5kzY9-39G10aleF}znJi49pt!|J#xj&xlzETIt%8!eoE}TB~6)53= z&Dv|TQ#{Rya7&JgWJ``}Qf82qx54@&Rhdq)U8b$6LQD72zA}5;>DKAt^yzVUQSo6Ozr^0HWh5?ZuzV< z9(o+vb~6OKI>WqG9>lOd!zp_mCrI#QHmtj6DD|yV?!KG>jbEP^*Yr2?g)iEwckg5jaF35er2}&8KSWC>@`& zu>(8i^$B?HxLQ$_3o?~!DLLGw7}oYk9zef=860*5sM^s+aIEe^N%kJSFSzhVDqA{2 z(6zr|R zH!X@rT!j)YoD<{q)_BtA{2e%f%&)XlGhuS(uT(Zudw)@sEnxq&&f5DSs+q=^ z`P_PEspH;V5FgPS_fzWGI*9%NPR!hFUdT%w@$CK?@SxrUHoM1ufQ-z~&s~-HDH&zG ztbyUHsGIAy5i~+cpFEU=h6>$aHOPrnN!;a{uy^dZRoSKEEkY%tJ38V-lsq4QUKbNSSVbc`J!(JL;-pcKQM#pKcQ}3Dkb2u4A0|!XOF5auXZ!a zbE-xNSi>6Fx2s4Ck&8-S4JnEDBce8ylhGzf z8Q&Js>`svJZ4^gON>YhJ+Nxv#@_^r#D^N{BL`g+ak371ZnKJSym$#ukM0XuKlqBek(XOO zl5WYZWXt!=?%Gd%?q*piAaSs8H354MKQv8&UTHFdHp#LK;FPUBbB|Tb>MH$sbVn3j zSX6Zv{n{TLjC=K*0cASPRr?yG@Ee~8;1829`=z@E_u0h#8(VVL`?O{@Dumd z%fc@u&F=&`Ddb_Y_ta6#sh8M7*j~p~eW;|oy?c$KZJznC6^_Nq!GxQQiBB_RX)%Z< z+3RYq~*rU7Ot`(2fp7A6{u`E z1CTj712e7DU<@>~IZg8Ta3qe{v%5Le_v=qR=E&9jM@ppbI-67IZZ*ueoN2w@=S~PZ z%QUu$b4za@F8m06Pc?~>Us45DxZYDg�|D48rtg!ojG6@}A+Ob@%$TAF+%VuJ&LZ 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 DXLV4l literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/LocationEx2.jpg b/doc/tutorial/images/LocationEx2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f7d109e33f08617dd7751a60fc738b21c6872594 GIT binary patch literal 17647 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%0D6&0mHbKC-#&7Q?^z zp6*@p^wK07LGWqPONXtvViOMjmh8Bwt)x9DO!o)e+m5g^DD#8&MH>d>^lpmX0pIiK zQAC<|z(o4hYQ>th`iUf-H&v<{5bBR1eB?=G zLCc`Y=|_fNxhxIs2@sxK2v>J(DL{vsfuGv>8fVapK==8QR;@~4?_DY$ z84Gh5t(p$F_k#IUh4TXQCHvP%<5SP?A3l4>FZO&fe?{m2feGtGgh9pnDLdO!hak>o z@}0Vn*NL<08H!70XkJif@m~=_4lWtcO1jrd{YZ>RiAy98s=CGW_1bc#GCJ3$?dP30>~-cl zjMHM@%d{j77OD8g%CfQ*5bwrD$zqX}mpF28xcMU`y5^mg+r2l$@*>ML;h4LwW?}o*L+3Bw%omC1DKn?8RG*`;i)$6cg2_SO>AZmNFZ@(3}U! z5MyfzK^xMQ`F~Xo5yKy-&R4|H>-$@5Ioz5?FMhP2@Y3__ik0ju#v>oG1!2mFQ6K5*tLT zC9c=1KkXkuB%Q>6@)S7-D^ycd7Q%r#zM9L#UV6+|=2Bv~G&~4A#{633!2IM=`%-H> zNWW2mdX=}>BKQ(h0ETxv|8khuGw5yTxQx9R+ zmVD1kbbE)87eD=h+YGJsZ|wmYY>DNvQ;wrldPMs#qkfdY9*d{F$beY>sJ*`)wpIH$5qbXWsF53Da?Ack<2n$K6i3 z8w>VfM@39w3T!vv{jSD^Wb7ir<_NHZS8&v%akq>`i3ZqcNeX0@7}KbFM2!fIY)A*8%n$5Kg^mwdY#WQ zb)6iisz48Y_q@<5pEIwC$I2{0x`%19$!_y8gT24|+k4~kWHMkTCk0i2kXCA+!e6a1 zMYqW#TSYz0=7Lt+@JcL-^q0|79Wm=Etfm--FmNC+okFp)G} zt>LR1$JzN~)5LrNKSUU`QsCAXXmS@$81DI<^@z8cjXCH_3EZnufV3sQGRXXZ z;D>Djke>}YY{yS;KwTyayA>^8BYChURH?GvsBu^J+1qZI>#}o{Wa`AwAiy)pjHv9+ zY0bSoWPs`8h@QzStkRdI&{-m{HFO}2u4T(9`w-7^v(_)v55y*W@yEoxjqV8;u@!7R zXmxPNsLr&s5YQjEj8=3KIyke?oy%Nf5-Id2-^Z{Pp53ic|FWFp$#+DEPly)CeK1G$oTeP3lj8HP)mi!4ilodsQV+~51(*9Jvl00|+3YN5} zLd8I7v`guFV;n{bhJR{2=-Jf{_YIk>J6Dcq8g=}day3xJg|02HA}SBAf_7kq7TR|J zA>@|!cPnJvs9^zlFr9qdjR>Hwd@dLvNcn8&7Wu%Y#laq3A3KBnojU3kz6%(Vf`)5s zkJ&Z3?ak&Pn??t|s@1$Ky)XY_@KU1`5fs$AU+ zBfi}iT_XLC?Mm{o#RbQv`PtBM!=~2o!?IQJ=*qArS3?y6Ba@f6Rs-i=%PQdV zJi}hhhdUh!nC+Oq*n`-dB?J}61}A$R#uQCsXJ15C&wlHW<)Ou3&>~;5Ij5xcC)AF4 z1tCfD6sKTLIsN+HYo5>)R6!l?KUA($B4~0$#fokYQiPt1+KJu%r0{V$Ha5vBVp01L z`41<%u#7dsf%awF$HERO@yK4bCD8#^bjg`MW9WAI4!FHvrag73h+oDgRwJ_IK;{H< z_-+9)0`*Lkmf;SREQpui@8v7kIzcQXZOn!dvn+l^W zK_A0xWZ|c^99p}UsUd%Bs@-p=**O|*Sw;ahcJn)93X9sOY156f{0B)KNi7M)WBKpC z(Z{KOz_#e$f(S{PtGQ>My{f+1Y|bdQ^~(2S2jX+kSy9Q6PH9ETK$Oy~j;-#r_(STe z4vI>TY3#P2<14CVgpN$a@(_;fzWzHvB>!JnDgndyw_)>Ng!Uuo8lL<>SGL!V^R~9e zxtVtA-_KmM&&4C4kT7sM+TcfEPEe@pN7k-PccrD(vr)&CHwE*@e-x#^9K67WRzV&# z4IYm=4j*KTo_!pOSK~>8tu#|#mOs96a8$E3R@=C;@#-*miY~Ys75>Yr>wm1qn!k(U zrQJyB>9*u{YA3Ybcy=FrQXL37$c8!n`1vxUMm%j$B87Zys*mC1`k>o?uM9_XW-9uu zekqqU0r!UtfvK%`_Lp7t8f5e z#C8Xi3E15Mr}#}yd*poCGWVqEmIG}jAZs&_y`PXoHJG_TD}-e z0B#k4F95y4Mt46AWrDV(9&7{%MT$fixb zt0+=pmdF~$5_72V`j6{4-ADffT3rc&4y$nnwk>`xG+=F+R}4w#K}e>ketYMKl9^h% z_(hDwH(2SXJRZFXuxTnhmo6#LXJSOxGvc3KcYcE2hem;J zjb4VM>jCR#Xyj>LX~?ealt<+bFh-lwZMSjHXSwzPO@;lv*4(2nwep#Y{^Ux{o$-LZ z=|pZ?l#1V%E2DxQnOvQMP|sS69_S?HQ*73~QSTF}XUjFz*-}e|+#E!@@B9oKTFIO! z4ZfVxN~e??b&@9QM)W?CbAeqWaa8^h!5ul+o?A2Vy#x4sSf&li(B=swymT=S-L5H< z)G53Jq@pX~H^g_qqt|n@yNLsC2LlUJWMBGZyXdjX;P{8(cs{Q66sBu*t|DM;u$#=txFbw|Uw!&B<1**H zwXF*v01_q`neTa2*#iCKrd$oy9=QY7$*s|x9C9>IjFM%ewVb73q_c2=Ira&Ma0W>S zQ%J%EqjW%Iak}82(inh_1UQFZNG`^<3SL#7Jz{RA-1o`4h~OAI_M>6Mx($}h8M(S} zR%0a|@`I{9zql-#G1yJ`)ibNo%c>9hz_>lA2Lp6~zVNrKl1g4|#fMgU+#6pyI3GWv_iU#wx-m#YVm@m-T8ALsD0o_zyfNr=5a?aw zXNVE+eK^t6txA*Wk0Hp>@?=l&DrY^-B6qZWaZDNA{aNzPRB^geMkdhpMmwFoGVx<( zM)Iy_7#e%}hxGeDrsDtY?_y`i(ZfMMeFE%sq1dPkAciKuQ;=fJb^&jLi^X=|amxiu ziL4RptKxu)y1~q@PF=MjEuRk|JJYiyx!Nk;#57#c>jz5zs1Fy1El+m-T04;&mg(|G zh_DLCUZ}|}#YbZ_7jz&V=?%H%-Z`)@^>1W*!@BP6!2wWihQ_nrJ#)i8Ov`kU#1TtNAdG%5zZjL+SwB6BF& zT&I%#Di(ckVf@!)`{kaBW|oeu>&aa4U5OsnT#)$T;nb#_)>QX``Ga?fz!~G9v^g{$ znXB^Ow)QVIhNfxOdaW3UGT|cgYXcD}Z5*|)jSO~^R2=ru%Kuck&NBLIx3MHtgTt9q z1C8R#O(79zh%vgvb4TCrue0z>$?IV$nz(v;AMGkC?xQb>`tgse{2-;G1e;FNR#-y( z08_DwqMAbz9TEh^+ksm+-`oG&aZ=N;Wv*xqB*U8R(IZ}+Jz0}%n4iAQHi-U%Zr&zE zH*Z53(A45xf7ZooyOVik3og=c&!14!LLy7n?CIQEM5x%ZczjN@ZN>OrDm!gA$dzzE zK=-=08tvk<=LO<#3w&a0I)0n)=t!76Bvffeqb^_gc^c+{87Rt}#lx9hu53Ria2!zd z_R4F|?KUNYnN^B5Fm9dfQ3>!JT}_dlY;b=BFGR6JcU);K^Ddwh(QU`U*Gs6-Ba%B{ z`MWcUwW=Z~YjV@j{*z_!J0lpE##0@6TpUG-U}7r4g=+&m3F3mv=-OfnM>MZ4KEmOR ztkM%ubHMV3_9I+VQ}23uAh#^EDa)_yvy;=?B%e)p=I=efKTl_-GM_3*tWTLcM#e?4 zm!f<2&*MYY+2TF6uKj)Arn7+@Mm;H_hu-jnG-(D(pB7Sq{G3jUY`GH(_ABlio%wQ> zTql-v3RR>NeZl!%5ubCDs`GmA)LA4kCRwrK-VC$3@`JLVTG!JlZW(VWbUMKE_hS9E zVE=E-wZb?vmyw=tRtv$z%*lwo>b#$b01OKX|2@6cZqrE?ZbysKpC`{!D&(x(SEJR) z?b0)aT+oejdx@s|QX=ze^JPS*^=>j^?8yhn&$g=}wC9OYLT;e@m!Y@kyHEY7(0su= zfIoll!Virt0cgEOmo%V0(4%Zri}^dRHN%J(aF&#fb)JR1Cmj@<;(lrB3H@JatW#K2 z#bR_0C=vERz+A*6lO1CvII3h@O7>K9%I8X~aO2CVW-(&wcOS1aZPRqo zXs^!ffTQ!X$ydmF>-(IT!af-;)X_rwgpOF0LnCrt-5eY}$5w1lMJ03PC^Sj_xlHr_ K^Vb-6Gyes(q0E#3 literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/Mesh_cube3D.jpg b/doc/tutorial/images/Mesh_cube3D.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aaefb731daf3f1e8e3eb5154b993fdf20b35f39c GIT binary patch literal 31176 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 literal 0 HcmV?d00001 diff --git a/doc/tutorial/images/Mesh_polygons2D.jpg b/doc/tutorial/images/Mesh_polygons2D.jpg new file mode 100644 index 0000000000000000000000000000000000000000..37330742c6d532814aa8182d3b0d8f360620568f GIT binary patch literal 21326 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

*yD2qO@WFIKs zOB?ANdytLxU)CKwIt9g}3XjG*vs5SRUjy@|b{3=OGf&Ew6fE%kzf=HvRyZov^JEFy z-!BGuRl`R>*}XgRQCH}kmi=>-aQ^08E<9fmUj5oQ*;eUS#G#NJaf>=h;m2hk;_LU3 z_!9V2ed1Mx9WPfBeENOZcFv#sUdQ`EGUP@)PFYLys6Ir6pQ+pfJgng;piZ`i^36bV zEh7$~yrQ4NK5pE@9b3Q{>X+HsVjg(}+jrI}w7n2;mGEklw4LjC;$p^zfZ{XUL zSm)(q5pTW;WMAwi&@P?<9y=-(;o&zp*G>Nkt(-rT<@!3bUCsd2_TMnyGTnk0PHzS; zec|>szc&M)ynYZoYN7&)r)%;0!#-UPe|@t=f9Gc(lmxP&E1(ziZsK{7>3Hn9W-KDN&XhbQXCR90%licR{bC=YX9#I30c_)AJk7 zjxBo&Sti|tb^RQFr>%&j)Z$-Slt3#GM zCt}^y8nxZ=i0I-(Kp?91(~^onG!0fKcPRan9fp2xM|@}*Yw`j&HM3X?a8sFDx*74C zKK&0n9wj<2W%YwV{dQy{$hoE-aJ;fse7b2)@1uC*$EKU6FK*fB z_+-dZ#htzBJff#V+ps(4j;B5bl!XGoYbLzLqy$N?_;xxM|hAJ_|k@(+eL?#bPcx;rQ6qEIR@M zK|C$h(AkSuALw=YzGgk0Y({SMb;vJGJ?89G^6jXTU6dL(WY4_j`uJ(yvrW&8W|nDEPqXW zxRyTHcAfLHSr;~R{CcqWUMKUnjcG1Ntpkt#_!9nF=fF*q+-n_pZRdM5PfaeP@2v1W z)W!T(?Udt@h2~QKu0#iqD0zx_E?0rSm>ZKmyzXv+BhFrVkH`Khc1HvMyrb6x?^Oq~ z{mDpw?dcw;7as)b!|!y(oa-0)!6SZuwGVzhil8nszRw)kce?2x5a`D$9Ulu!9e1|V zt2*JfIh3>RQ2tNvU=DfIQIPG)P~hRca&>Tarv8BK&R=wBg+7WL!+{N`Lvz?xm zjkwy&*>`TW$sw!h<>&NbR#wU{O)`qdKMc+@)A=gmlDSqOUVHr`<$t!%Oy_4Wp*Wg`|HH}b;dQFpXx`7sYUxYlr)C#NKlGA3m>U~4)j`K2 zFAUudd>nd#L!NT%Wanq*w4UwI`YrRvdf3Xub4cxRGApzl{`Pome8`;K6M=Y_J;ofW zCC3f?k`7-B+)^6#u@5!QX%_0%E~i(ur-Da^8%F2(^!w_b33Dra z_KXK#%s<9Cv}MdphwO4N)LS+ENc&_hP1jGt&frn!i>`Ebd~$DG7pBwH0q~2KUj;b- zk>mS16iNIP^vh#nUX5&q{aNef;MK8)Qaqhzfk!88)!Nzf0dZzIe>0-}a^TW5D;%=( zQRg`16*Ja!Xq!IPUV&&bmS60UFMEQ#c%fv2Ao~;nkGz#_owHX3x^8o5ij_vc#oaCI zovg=Ro(o(xtdWKWnvoSs#fr=7jsoC|%>Z@aB@vbJf#V-jZW;bgh3JJoG; z)rHQ_zUhv+(R1RU-{L`r`A#p2JVrfO{{4Q=PrbT0+#x$typmftvuA*ZSLm_C$tp$J zRStF0$D1JgW}7F|;-O`O57BoWE%DM@NVHxOaPprfAH5kjsu8?NAM!i1USY=rP^N?0y6An2#MN zIN6rVGZgyvg_@InvStB+dU@n{Ylk9w-6~EmABXMlP}d&i@6g_gLg!Zb(BquUUVZ?N zNX+X)w#WMgIDPW-qk#!GV=mO@>4TiC14>kOD9eXJyu3+N)I)wOfw^HhX1DbUTo-S) z^o8A>(Gwis)eDCcYUNo z5$h=U?31(LGxd)X-=qw)U^m@oyhFaSfr5R3HCer!oUX`lhbpJ-0=yBK*6$~weD_VI zd{6d5T%v4}sm`CR>N3KiJaweLL-k=E=72pugTAu)y-`p8vRoU-%g(h$9a-(J=mRTM zeJpq;d>H0X_=RZ+EEc1uvlltGqo2HDdF^DLtmI^e>_pm;4pn;vUOUlZPIw8`Il$Qs zD_hYaTePYd?3b@W9C~Bk@lF;WpW&QkJ)(ivrfm(qY?uh=q1m~jowMUpn>KQ&Cw}hc z&{a1%I1ki_JAO{Dy3Oq4kOw3~9rfvSO`*Tpt|IgU3YT$c#$>~M@+4cZ zkLuT{htuo5$>Gnso&w4XBcT`P22uSwC-VW%z=Gui0`29r&Q%7@#eUK+@QOMgGAYSF) z0CA|d1zUMJyTSviIaHBCqyK#RvM$bEj2P0#p;^`j{T5d?_kw$NP=ow{5mJuvo%| zUV(bahf!U6Wdff}G9P?)l?0!9I~9CtU^GAHCo;C^=Fs%%(FF3Eo24ON_M8LxXG<@) zU%HRAonC%Uj(mCW!^l^yNd1SaLmkDL${n1aiINQSta7(*3!Z5$t2q>V##C{By!SYouOyK%f2MwB<@D@8^7amO z=a;Cjn67A~Q4apFD9Kfj*3 zxzqDFwaUS+%;$`dYoDy-P>FmkfL;26hgHto)9X8TMYX*VKG2J?Z1_K8KYv$LkxDFT z*ucLxfg@+Z12IJ4e^H|{mg72+F7S}D2w(mIjP|h7>n}Iksd4vf+TyCGr!`{g%G z_xh^{Q26bT!nwBk29)PQ+%r*!K1qJKerH``sfN8$XPZ?+rLt6dT<)}IsBE9UJ3Yk@f}jcn zRp9Sd0p7IYVLW+Bc=H&ZtUNpThePo?{Yi&>&UK*fd=n_wdGzrPz>YP&20xpyVA;a>DuR$xBW-luwJE0e*~r7W#ZKfGUj_^fvN5*fF1u@RQZAQaoq(V;_^5cvQ2L z@Dm50p95c?!{;5Udk28V?+WzFHxBW)@bJbX9=0G2@-Qw_L%e~OnUq&i6dYv2rsct-ir;ekku6iKVneCeH4S%&6!MpV>8vzw?7 zKlcLtWQX2g#=Pu!4V0IzL$Ab1*s(;R;Ad8D0*{Ux1+q_w{9nIg&)_SX+G-Rpm=r=kM({-_LE9oclP4c6`*Yu05qT9TyuK0 zZaM7Okz3$ZaSwqBoia;tuGIbOsH@zz47?@})klRjlvfxFG{dM*tiWs7sY;$c z_PvgNsQjPMXS;g~`Yzw!r#a}Hl;V9w`LKmFH!MYQ=*1G^;S+Ad&s3(l)1he&)fk#f zp5YYsF$Hc?{MX;m9B=#pH2GdqeIC%9sm9SUzpCyox-OzTguh%A7jw)*Ji`9AYkuS> z-%_3|(jCY=4e8CqI~3>XSmf6#7{&RS;+CgJq7SCjdYZdpId5TZ@7w~~_j`b**&Xy- zC29aWkx|kd4vk9J)wRdiM~RJC*PrMci%kBzcQD7P>62GY|8jSoEE1H2UX|)k`_-)p zKU4lXc=(iJ$U|+VPja=DH0hP|SA&*!H4bhrq# z*VkY_-kZJ&M}?UaSBSeV=35d{ckm@TAlU5xVj zKz?>B@#v<+%hS<5c58OnnRct;C*xhBJO|U9>nwDA$_?~QKrA}tB{=12fA{45s2B2O zy=PHfYD5K}%0uUf+}m>iqt zlHWzVW{ziWL(?3qjWpN%V?L_;ng_76FNsGteoNPHceE(=wzFwU_MTuL7^ScpcZHm_*mR&ejz1%V_K2$M3bH`RXlEH+`@c)$dpxs%z}= zu(La}Qr(}@xn!#y!an9M&7W*s0e&oaQ<~pqeK2?SNq3-J>r47k)F*y@40vURofPkd zvWQ>wZcKeUR*vR1E`2kU{80Uo>mwUl5@?pqc!=vIQ9I%dQ4xNsVJYJI6ocwAKMCb? zBsJpDiz|@-xZ;nUzZ^~9V8v_;=yj$duw#*Fu30>)vk4X(e0oAI@Yx4tVJBucr?{s1 zfX{>^UNfEc(d%hnwI?an=XEryXDLsdd8#6A=F@`mojMtLv3_O1t7g?D{yaUQH%E)Z zj_siSux2Hx@3D5Hj_jhRU#txFFp_>gcN@xGzQRkoD+ zZZyrY>=O(AIuFgW)q7|@&Xb=yb`Lyu#uGfg@YJQjCl6PIow{-f`|`T$P!}sV09iN- zy*g9^cA|Sq__4h6z+=Ldf~*DxBfD$O5Qk}&3wasew3Ki6Y2ukjc^O@h>L0BE z?9G~u#Ite*P$ZcPR5_OeZO)q1=MMSc$4=j(`b<57y2v*)&n8PD@_%;_DDxGgc{^MJ zC^`i|Z|>$I9G(UF$Uk<1hp*X0I3N}DtU`9!@iNX&Kisk46-@Md-zN$0TO?EAgI+_R6FY~Mj z_7j&Xz+O*CMLe4_0(FrZ(5v0_cqt+`L?7kWqSTN48EEbzP~UAZ;?->^UfY%Cghfw> zee4|4i$x7+u7bY?kFA-S=C0ck%%P~79H_r|`e^-b{bGZo>-$M{kIT686SLT~8J z_~?ZFhm&8=h2W9B%h2QdiAvbd_)dYH3~>SeEb$AVZW{u66^<@b7`*${XSjSV{VHD`CgI$&c^$^sC%l%J<1Y#4QT`20PQN z8rerY0)L&H&TVyoo(HjPv9K=IP=DCsdEgOs8&W@BhN9~vOe>0WYZ&6q-xFv#G#Jf=;UfZT1{8R>d9AwWZ9`T&M@k3O2L_8tA zz+*d>px3`!a}n<~idXwn-&t{Q^h@q4Nm!8PSv_k49+QxGbm%hlIwV{xdLL?EVR~O7 z{3?1ssbe3ko9vzGeU{;btWqz!4z?_&_YwMMg`dh(3p}DkQOGvoV7%^P#meA$9KT(H z;vMKkk6SrQ0(rJFq#sbu^E#*(y)Lgvymrf4>?4Pl#kx-35Pm9HQRJh#wx+s%7))}^ z(m;8z3GDQK;x%h2UfHid;@9bXu&+)~lKeUxCtOqnXo6P+vet`9KH&qDGs{xE6MKS3 zF6@H(u-xS+pS!bQCoYdA`(0i@rt6XZkKRDLa1Nm^1wR(IBh|S~C!k*9L;BBiVaHEX zpZR9Wk0+wIMXHWim)=W>Zx_{7Kkon@o`&L7?@J?YmY2>O(Tn~_)YKmaKXtzq;fsaD zGob>I7x(l>Qs3?PMd*i0SsMLdbs8W}k&Wz4v}y1YGd=k~t4zGs(~qe>@DtmY63@jf z^g1|w59)i$QZxrGi&33@3xi)yDGoGQ%0bU7l!u)f(-(e9<^+$fLvzTc5U;wpfabJs zSL*vH`eR~Uu|4%|5alJ?ETcJVOFU|nqBKqutT*d4832LZvxQ1 z8Bgzfr3wYqht9*!TsZ|l<5LVgw)PE@_r5v;-W3^-gLh8@x(>U&1FDW6fTnVNpv;yY zcJ}H6__0UC%ii6>K5}{{;#m})-v3Qsl-^ghyMS!}As|0ei12e5*qIf?Ypz@XkA51C z^19QA;z&~x_GWl{)R*n`;6+XH)A~S@qzLT9dCEiXqB_`Mlc^r#g3EFCOta^ zKD+%B`1oex;~OYW>4{s_D+N1Qr78UExk*4Cg7{e+%2!S=Mtr*|U(tbh#8K+I$V7Ej zo2kyMehJvCttWx(<_W^x#fj&!rysR5ppPokC7QD=o<8rmPxJC19oEftnhQRg@{#8} zn7bkJv(t!&)p!CwG4>qhjvt~w7B{hoSN1qZ^HV4!>S|w%1DZipAHB^}pKBD4T~0hU zaw(eUm76!Z`Q^tKYz6jI2J;+Y-F9H4syl$As{n1cwWQzO3wCzOEb^g>8&eo%NYEOl|xiOM>LjD0+TsZ?&Cp>=~ zKV~uM>ota-8omiUa&L92OT;+XPn}2t9^RV%NLh932fZ0MmEx&e3OxKp9I|`BX}wh) z@Q6Oufc$-QvR|Ep;_7t^eztCV=xw$!Kpl{k_*6{T$s-AAJwEZ-h}1{9qAuc=g%(mC zAI8F731M5vUy_CXFCWxwz?<$#N1`z;dO~eNAJ7>JUJSz0%o|n+M$TK zW)1KeArEs2dMoO~PDkzlKX$Jdc;%&I*heNJ9zAY8{CNlOb&f}W?g&(VzCc^O0O=#m zfSvUtUOw~?#oHkX#sB&;_T@4i`7e46d(-e7;;?Nm0$J6vYu!HPdJ@=~Ugs%~fm8?H z?;zFX`V#mvzZ9@zCo7Zxx|zsFR^ANcvLf+&?FO%Wvl@Q-)lu-6mBeRKk>1Xk2R_?4 zD)yDX&nCV>I|!S`0-p(<7Irf2M(~NIC&0(za-bS=f%2W;Lw5bLVt@AX4XsaFN%qy3 z!QXbSO?ixa06!ZyHP(5`1E`~ITaWU4Ms+srO2A%?Ob@gLnt@*!K|Gf>gIASo2|qFE z9C*}K`eSa>vpw=*kv#pXc@g`nUMu0pe6|72ktd{&(3%Yt}WP(GxxAX0LnC#p%2H!FFO{29WNXYe!QI@c=cL}N6quby1n#8%jvT={&`q|EXI~^`IMUe#O;; z`OWP+Pv-Vj4fu$5Ss@s@rbr!-y>|P=YnOBW(Md5bTe2a>tMJ}7H!_CEvfUmFf8jafh&p(-V?pQV ze~v($tu-Hcdh|8u*ga0iUP+655nEzB^5<@z0Dc%Vk!ZU|gS_N+__?PP;?%1&$kUJJ zL09FCL_g|^(~-3vj zw@pt$IoJ!oNg0GVm8!qXJ2D0B?1aSzx4CiJ8GeXYzg%>BUEH`--#c!7PliCB-74hr<_ z?baW4F(njv=3o#gLgO(WJ3gP&sgnYEB9W^XTi?~QdhhB|RC9I83fyq|Bd20rMAivz z9jly&-~1ekdC8u0T;2U~8TD)$Eb2z zKJXxqJzW4D;i={9Z*_Yk|J&KVVAJ{iiFQi#05HIjFIxb=Y;g{8=4l<|$uv&aTvZs4 znCIGgj#%WI+rc5w?IH#dRbdY(7WIeUY@UWVkk*m%?+u6|ST`ctIg=U_&3s4M$oa*aM~Ji8T%NkV9y&5% zG;~bH!wsR+VN??^#js{Xerr^7qJ8G55;(tp9f>$w;}G)Xu_)+B_89%hLrzDXi$T6x z(5@x)hCFnPb!4ZU-*k0xW}4F#9yeaIXF2AjGDKiJ>`xbOkA=1(J=Nqp$o4ska$&IT zBp1gj40U-Wm$~)1GzIHpOGIN_`sgE!#|~w!NspDE3i60p(DZYD(cO(#J&$zr$u|)? zGIA=&`zZKDna9x6-4Y>R&zc5`WivqgBq7M!x_)I>x303V(-T8iy7}H5fpM$m9iS(Z zM_^uZpUXF65}9s3Cs6CL#s=a=g?B2H!Bf;`zL zgVQY-Us6|H-6}@chvQR z;kQNHe9iYwZoZ|{yK&7MjdkQpE!LGk-|ps}b_aAt*S#38-s1Ly|GNQxJI$?+*mwEFmEkacY!Uj@1pvBw6pLZ`;%g|)1SQpv{&7DM1<4PX&WFg8&)4rl(0FWa%)Zb1KEe%bEZiHy}y0snKq zY}Yl9o7(@wFWY5YnK0@9-Iwj=q^BnVWBof4Bc%Xm2ConPH#t zRwJ^DU)#VAxX=Uk%w+wEyk(z$;0OghJ#RmLh*CScRfK<7g+$<>EUCS|cpd)Q9`;eq zb3aU(!R{}}sK1jBK-|B3plj~0zz^x>*og+@H?<3Yp*(#&EGu+I<;X^4qFX7V-IL#s z;`rotort>ms$N8Pp?@$@jOfxCtiQKBxasezUh=1SUji)k9^+(3zdoXV?Cpq*6erc0 znneEFC-+0@%3oT*&bc4!Y!A)ILHY9iLqTMJ=P3=gSyqVR)Di#6L{{DLXM0tBhBO>o}pc*(Owmi}IW?+8Mf3SOz`cp5gtDe%Z4*YybccR?bw;z#> z+S`XH!rDn9_X}xAv>(>xAK9wFe0FQ9A`-x#JW%Pokk z-czij@6DC3w6Ah~rV1YN$NY*qu>&&?CR~sYUG~ z%cNdJrn8O(AC-wC@?>M?z^)QImuPyPf?p&l?8d(~6#K*Wq-yV__@3|DApXg?ZbW-N zK_vM_aXSl)OEHgVp6;Im?#&rTw58LGBeK#d+`eai(wJ;h&8$HWeH{iuJiUbaT+Lde^>tN>A!8G`$O=i8N$Y&KziTgumoo?~5flWh@X+kc0R zfd6v<_EY4TiMldp65xD@)^$oDZo$~1V9>419$%hlniu1jnFB|Xt^9W@_*>PFB$@^> zJ&5+{ZRzz<4lm^PWA9wli=JJj9sJvF;a;-khcuyh8B{g~Tsme77~B{2tW#eMC7VxJ zgE}$&=V3j?;$j%Dx|Rs*B=^sm==H_1Y?%g7ytopnp_4K#>e=r4w47|UyAkxwoklT; zpOXyxBpUn<9i2OJF!}Y!i?b1b>%~T*%z11pQ4DVlvMN)z!2UgO6XMn%T}tE`-vxUq ze^$~_L^G&J82QDvOw)|eD`m#Rig;>$3{HF`CxZ5f$H$Jz7%Jl=6Cx( z_#*Bjo{RVP`ut-0kvO7SI?|nw&bw#B9+i0>k@bp-C)$1OVe@^xr;{!2tqmob+4Dww zsJ&L}5F)#s0`;%h?oHILH^grt@}W^%iFRUwZQ#PjXt#B5INj;zaBs4R`a?XvII%zT zBqC365%rRJy7u8p|)D+4^fFzLyT@!Ai5Bghuv zsj;r|eR+(VZ;im~5Op=#aLO|W5=k~<-BeR?_Rn`JvM^ic`DhM-lD3CZTArJJpTnTmEEd@9O^2nSHVX&kn09-oI!cEde+56wKM|f zSQeA0FY&Pp=BpE>#y+X1eW1s8r-`L_ndQnPFXgRYu$;*ICR+?1?l22{=|2YTRq`Uv zo}1$QodTgJ`;@`+n!Ow3`l}R=^P{szuSedB*&B%L&^S#rI|EQRBIC1eWb^3XanI=0 z53ru{Zowb>7=!WgD*bRiRFmN&k^gVnDbU;F=f>5ye<;~vd0RXOWrDY;Z+62!0{)m* zLp{EB)+zC1qBt^t0#UcW*N-U61Pu22Xg733U9)%F#*xi)ea1eRYNbFq?jX*SPLf~{ z<*5^A#)2Q`1xk9{!P{85KC|5NmX38md-v^(CJ}Z;mo%3RuvA)tj-zv&iDNF8v&g?eZ ziQ@XQg+voMXrYJN14nEk3bPL9MfMx6$<~qEvF@_Ct4A$5Zbe@5%KM4D=H)#^apDrj zE6yKZM0s{>v0X%Qp8ZTzeot`zc1oZi_*U%G<7Gl0)^qFmx zFEiBv^~a+tVBah^9{Oo>hI@VOy!!rGM3uS4tUOQT2 zKiHRIZa<117(#k>Q29X0vw8l){l&-j#(l;-3i>Rg*VRq?%Mbm1ajg3|)V+Do8tc#N z9Y@`p(0!;ER(x(K>eG836al-x4^lwvAvp* zpIzTjmhyS(?EQ#lf_F5L`CoANN8No2?K5|vA6e}*?jgOi71mv^t2fW%3)ipA9B_&l zLsaKVgi@aQFckYD*R;cZp;8TtB)=Rxy#ZJxGtPlMvHQP4us`)SgcH`sMYJ(0hC=3EGq2!gEotP1J(?vcwJO%CGTQ4}LHl?KWrsfrvj* z4*O=y){LZhv8pEaUq^;x|M-&R6)IWZP^vux@ti6U;{?d*tfk@y|1zXO>sS-e@pVq z;$^xMZRu%<6T94BfHl8O5#-meQ=pxD8-|n3x=ciW_Vz+|Z@f<+y*{_Ocw-Qe4a$K! zGU9q&idP%nI9Bb@iEN(!liT;{lctf)VnY`YMeZ2bzI%PLm*Q%)nFHpDMLnp@iE&qw8p&1=)!x%?y_?p>J?{G-hj`QZHR?(PKCVW7 znaw`~#o1JQi^I+zQ-y5aGX?rJYAO0NVc%Sx_gR{f;`rV#$%!_4R}qT014GasU-er< zvgPGe&4@hL?$$(cHFtZ&CH@SXdAnhpd}jR*cn-FBR~&g&9;431v(2r@Hp6qYAnNM< z+`NMFg1X7z#_*pNO_5h*k{?l3yNmIdpMu>uq7vb}=r*Z(BHkl95c#Y-b-X^Z;}cpF zb%RM&h%)AFDQY(_oQ`eatx7hF^hcg3zOy&kHqo_E#I-5XgD5hk>*@8;oNv{S$TB~` ze)zt`Ukmn}gg=29?qHp4vZCEQ6gObiVDMoi?pxk&LO-(g%p0yQVy1>up3JcX`)7AW zw;)?3D^!%oXJo2L@hYOFtCNlHJWHJ!_Y9BB?CParB<>YEB`@^Eqhqdq+JrZQUf9b* zM4Q9Qq1V^19#I~7i+QVRb@80lN2j0;c%y{%C|*za7xQHC*ISY;T2(0t9&DI^^6lMI z1<97BDwPEzG9@Ix>E5_9kyYx0_4VDq38~#?Tv?2$CLJ$J?c$#<0&KMvHvc7gWol=B zx!rjw7y`Op+3-Gua{tX7&RY|9!HuQ%L8K3iS6J=t<~**0Lasje=Mo@`3-wo{m^hvsSUIzc=? zg}M-x&$gm=vG}E=JodQ&?th->I%xjR)EE9v+fe^9!mmBW>s_M;6V=zq5k%Xw?nv0N zxq1=Vx)cLFJkMBq}pSh)n*GH4++h`)|^ZOK{J#A)y{nJN* zgBmK2&o2YSOwfOFERnNQ@SAd~7uhDyOpHq}%pU9Y*}^niOk^o@tt9fHk$4`fwHIem zyuEaC1<}m9wS=gWMolNmwjVHmxjsdN*Jq0=XXX&i@y2V2wnN?Zu!EP*C9>t?=X;1d z)@~-+(+k(bzR(ZP37&Q62(o#G+R)>Z|9~E!b=>Jy>a)@7Ygc6pFCxnOZ>Lebin_Rt zC~NvVMtzwFdrdg>SQft_6z}_gfTs~z<;F{i@_tL`%F&k=kge0)obB<^q`th0D9b-x zM&!?4&LHZc=iR=HOoaUtrQ?*B+Q<4qSIpfvi)>LU=~$w!R2{E_&EBY z9YcEN?zLc|Sl*`t#q(!bL%~v&MiH&wC+w^C8|UgU^v(c^XLa9=CaNq?Q8()P_%O1? z%V~k|cWB|xMV*4Zz2r|j#MNQBPa$OMq~lzF*;Ek4vqSFv0D0sV_LJSHMLmo3 zdHpEQj9=E8$WI*zBFg+paUb!Z?~TY7>|+NH`MtGq--i5Gv6!)zz*5A(9)17Qncn0nXb*e)fidUD? zVV-<%X6%c|5sv3IUsE2s`sI48JMYm-Z(*}-NkYhG>(aRSeyh-(^z^3`(L~!h z80U;N{{!cj_Z`)S;?-C)p4vr*v{(nr>R`Xw<~WSg)IAYEakfAc+~e}!Pt&27TQ5Z3 zh^w$otsce6W;LR)kNmUyy|P%<+MSClm&cQi$P|zB>-$seuAb92!s`+_y#mgy+z zzCAD2Rdmhj>Y-I$oPVC9?o86*Z-2+Vpn~EClC7Jb?Lqz9`t`7Gyvu6Lm)8iy{8`SJ z+UUQKHyCkoi6@b*x?RJ05nmR^kZo2j=t;D}BT*-6^qT$@uZEQvN)&(o9SM7L*AYb7 zs$4%0wI^vjj;Q+>)U*8lb}-p|QK@!B(WSlcQv1_20YvqArCV>muC7knjBiJNdA=s< z*+kBB^P1YZ59O=OJ>XZFQq?6}daISCc;0nUeekBI1yS}0X-d?|auNBT>cpw87dR?iu0%kTY6%D#64N;_CK^R=3y#l$3DnvPdj>j@$3~xJ?LVS zP_KHy9-LG4`0tiz&m4yFimdK+v>9F&`={UcaO<=5cg)L#{eyc!HIkz#&yMPgdqX#U zgnLBKPZCIe**FEprREGr9kIt1aUW?l2sFuVL!bQ{kMklUEPU(k%Mw?{kga<+ z!Z>;P;=?>Xo2~tT{WnG3|KO!M^w8wD9kZh!Q~hx<O8v1Lb7F}$eBd7pn5pk zQ|%w=@!4$4mH9+ly7M|BuTy3fQ7291>Z8{S+=udU-&I~}A8{Se1O2x7QnE$Lf3XfS z*_Q~)GxPOaBJZ0PdOF!Z%gMG?lB4cS)w*s!>n6gu%!+zzNJsPFc%u4c!$_jIe0~V! zvA?EGCyKZ{crMs~n=B?oYbn1TzcQJ((r6UJ%E`Hv&p^iGNMXwr|DWV7B~+menLH3;X3olS!I z>A25WR~^(7>!G_`tb+W}%fpEFw09U$)k`^;D0Yr&4}YE|IL9)0v(w9QBg{i_=lZ&J zU0(p>*VPYnqImi9E99H=7f{El_#rpX=~>%SySbDzi1KCUhM2Dk{ou~UtaErhuGabE z`NLD3LA}ay<8be=nBs( zpu4Mwfgh$)o;`GMGLeN3Q$*gqbTCn_c#e5-&q&;}GIl@eT2%2{;-U5rE#3Y5?{=IE zJAe2R==5!Yx?^QGO(9!*KVlv1fk9Y*e(?g%tEh8#1?l)c=du=hAEV-lEV!b}zr1)Y zyku%SfNZ3XT*y{5?&580~mJxNq zXBe;PyaDr7gI;33`l|afkz9Hobu2P}g0A>y7tWtrb{F-`a;HK6=FmB;Bl{&I^!eU# zxUXbDN9@1pd#MY?)oKvt&4(`>^5H&1a7h+|2i$5PztO1gT-zD}fLo>-#dmDDtZ+ zYcM`jvU5+0w@ZUCUwPsx=4;wFa_e~B{k}-oON;%mk5*zoY>OvYM^-GkThHvTdXO&v z+x`CB4m*SW(8W$dhxsqVe#p=$+^1qqs}>Y5uC8`<*XzgYr;(E|Pd4>F#?K~yXhh>< zo3;iM#rbcj7tSNyxZ5XhPJX>(cq7u2<@$Cb+Ik(_eVo2M^u_QiZu~uB1jXAmL$L1h zw+YbE>oUP+$v-rpcC}emBpueTbrY~uuU16eyJ9n6R@v2CUmXs%x?re+vYLlRA7NxC8wrIYn3gxqZ@_#oBm%!loUQ9?Bb44fmLh?9q^HU7%%Minlw`;2fA@V^ME1{6+wDf=1OMvKA-m zQal?m59dyeDvkOO!Iz;cJ2q%a?K<>0?hlsq6z&st=I?HluReVXBcH-G1bV7s zJoMy20X;J(751BrY=eCfWwS!hhK`3G&w9=2UA_xF_F^gY_}6J}zBR%yU)jsO|DjjU z48pi7Y{S0WBHu9|&4;=C-!@eZoW4U`%|83{2KdVnETv`*>tl5`Q`Iv z4T!APc0Vu0MRvwH;0yL+KUB$5Za<0)$9}Lxd8#75^HdJv#rv#0@@2z&FS&^b>EWZiB@E9k zOH{W%RV1>9`(excrLx1G9+$^M{zii<5>?7{)rca~Ym8eTJ)56w^UGJniwtEj4pn?# z6)(ljxLKa48@0+slt+>xULP*$M|oll^AJ^hP3YRIV+zCG8kLvg#hYZ%VN2>^{bk>_ zSU0|VAE$O{|0ziER@JCM7jp&JIBhke$Qw}r z?L*$8f8G59>c&>ii2CN~Dq8af2y)aCsOk*)8g zEkg13Rw0Z>1lNL|9X8VK>*>a2s9lC!!T4nF`q0zQ6GBgpZv{P@rV#XOrA~z?UQfS< z`I@)KFkjKIjUc}&-yY)=(+Xhy%+Z2wewiC%zH;jEs$O3lpV|!Lm;1M4KX~UVsB4?7 zH+0OP9nja4E|ef$)?)$cMa4|3METN&V;$9|53ohPiJbg;MS0X0|LF?qgI5oNj=209 z`z<>aC`Njs_sTRBZ@+XeN95lQVqbN~{-_sT=3Y*;&ufvJ;_dB2s9#-lHO8s<(#qsF z|8&FpGCMpebi!|xBFcl0QHT6lZPc@Qx-A>|h3`5=UZoz;(Oqx4^%|JA0Qp7ReHfoj ze9P5)*-|d<=|{{*Oh4!LKieJb0}KDw0eb(oXoviWaNM6}^$NEy6GplEY10jUcHjY? zuX_4u_gwtE0d>aHy(vfex7-JmNy?}PZzg8hhQihG@5Hty(2wtlsu9#LF4(!opZ`;PY`s`|GE!!Dl4YsM4 z7IkNb|8t+-=aMT^)}nUX>}F%+C3}c_n6K^Lj%>MjW@qF_iS9&m>yKXWul2Zjf82?B zRYaBL~$ZTgj%N8QTl(Hp|ce`1iZdYnzyHg~;Yr`j;V^ z1;61OnZ28E&RLGyIG?8cl@iph;}#Sl%4N6Qz5L=U?iXI7FXkntG(aKfmEY9jK&d!zoV8N{0GkJs$KTTh_l2g#5z^o&RA6)SHmMq8@bI;_;-T zA~kgRi%yXg&w92QhrAJ;h7m=HUr|@~-`yCmN?CXm`Q@me#t?0F8RzxUq&>fw$Ug^; zCE9kyr%^i#%)f}J`%Rfh5vYB$*}>cCDL7zO|K%P~ap=hzk0t{Tr-10EPI_nM<$+xA`vehgZt?jj?mzXZSAUPsuOIbr zdOZ%}zS1jJ;QaAh>u|o!XK>Gv`CCx8X6Wdeq^sWj zS)SVUx6L>QD))T&rJC=~#k90;-qX_bq&QPMe=X>(Xw#kY&89`DSG%QCDA}UUER0uN z`Wba7n_cWmep@JcH_8(qFHI%tSBWMPnSYJ};Pq{&Q?|J9bdS%i*i~1L>0O=43&A7d zUzi?bw<2*aOzXw#C|@V9yPPOOLZXR0ap)Y1=P!<~BAVqlG*K37GJz--{fzU&4=HnR2nQ26D4${rfuD4YoEX%II@Ace?$`5ni9oAFYfbYQNmmh$3~$>0pcg z=#OQ(-p@mE2OEqhs$To15Ltji{j!RA22s38`dbeoYc>`2!j9c`=W%dvP!{ctb7a~r zsZROw+wE@9`QrYVj-7etB|R6-_Pwo1M<>gOy5@mN1|WXK@2G#3x)o^0{|P_)XBf_d z&N>hEs$Y#AP4PN+R@AxaGk+-AynEaTFn^yhM6)s+_o|K_jC|YH{rs$3xZjVd#tB{h z{91vwJODn6qj&bOn9K%@0c$$$gg)iSClV)zB8YwVzZ5d zee9f@m$#cc$MwsPCBLn>d4ZSm(i~Y!6s_0I1x2zbYL{s`tR(7$hgTC-t&;A3|MIml z*`h+ZE?$ZYS%7_3lZ#_q>QcC?ziUNCpgrj;jK@A~hPo5Y&M%{U^EUZ-YB%eLqyAXz z*%-uUssz94vT8QjV$cQLS0?*boHO0D`U=XompI19THNUiJNp={tNgRTbjo89ZzmH~ zmL9N0^xY|Bi|3W_I>(${hJ6&N)6b)PQ)kp9qMkQ@9L2HwX`rX~XT@_&|Jiy1`AtNL zSfV``h;?UY-RCLgm@eUHZ~3Mt_^c+*i>;9eDu;YDl)a{*S-MM;$*4etGb=BEKyVg8M`)-LQ;ocBI-m z@WFA^k6gmx=i7h5dWj;Phf%w!H@-bl3?71U>((!@ZgycsS103t-$?Cxc8%R&nAk;R zec!{cCU!-g^T>4=zewI1I)>$O^RKoJ^D+JfFdotP%vQ=bJSB8QrzAVcR{fLUp0(rS z*N`nnS8?;{eFW>HCZumne$59}_E7%)gV=9rjxK?J$6=7=PPdqBwtE%ktIADw^Uk;l zb>{oeHL!oiE{-G}*1PEpBHvVC6;Us|w~#387@PxLb&`f%f9E2i?6hYR(e5aUePEAT zU_AV(dq0AIFEfYQ`Kom55qGrRCL-Gyw38@}cQ;W7-rYu2?1ekWhn7wtTcnB$Bbu3^ z7@vMxV>;RLx2+h5PQ2gguDIm%CKcO5?Y4fVt;nxD266VcLeS$OnL@~~8_wuKWXl@j zc_T*tJQI0+cP=4vzs+l5X9`{idcH!3UyDSXN%{ceQU!hy)Gl_kDNNKgQ*OR9`(Z1+9$cI-MOSZ|f3voK_<~n5Cl9y|GeU!Ne4I=v9NDYUb$UX0*_#OfO z(Y5Zpl?jI}8mz>5WSz63KJ>@^I4>+{2<|I&z9Iag>TT4Ch)On*ba>wnqlu<|G|r_- z+|1SM!UVY2*ow1p)NV_5oeL(rHHRpUwsH4M?osYute&YC+B2+d?eVp%f4V55nOkcZ zQRL3plE||x!F^(CKEZv-mUfuu_4(PCB^V!D(=(cEbMKK`w@mA?&a&6Q3CJ&U1B8U6D8MhTsr)+g_Hpl!bCgA}$p5dpk&T7x2R$kI;-xALm{vh71V~Ps{ z$*-a^bfY|Ru;~z@UeaJDk=5ISdQhdJp=S%+o<{Nfue{LZ&(~soMWM(T^2@&}NTQv8 z1@)t+_)jGrU3m`9nQZmfY_e7As?g;vP7kJd9E|hG=gU4JV4hsfWU5-`sj!Fm7ITIwMb4&I29Za8DG) z@x5uVuk!j?)Q3#-3eS0V`w!@_4VO_bJfuD1)xT>I&obn8{jMxMnsnsW7R9~Pf8JDO z(Z64o0HVl0W+2*m$r0e;y{HrU=1pJNe`IS!WIg89_xhmy>b3>>h5SUB^rF+ra2I*@ zW|nCbZ|Xe4J;<{pT0pk`qY~C#o*RJuWLwiWp?qHI=U}k^&$TH|1~tKb!>1;jLbfPz za50fhnZAvvOoGisGdnfzS2l7t*3mTQZ4j?dqK@U)x9yO(HV4+pWU^Rab-3md^4n>1 zonDsv8)4rXzMQE3E`{|M?`HNVn{RvF%1aEa+Lmm2Ahb78>xJl-^$8pgf1`YJiRMu8 znM9R)tgExa4PE;R_x>i&AZmH3y+{7K6lX`5=t{O36FPw?Cq0-2o{66czo#l}w(B}< z`FnZ9>E*MqZfw}m#tcAyy&!S2UfUVymPZjFDl5E@MyTQ*Vb)7?g zGwfU_@@7{rN7Ut5H;<2eifu=>y)fJLJFM?gve|UD5&ob5hMpZ0gy*=vmvRdEb?{p3 z0}tDYec_ee`#UO=`+T}6nPv#Z$&!mE6GdR~JlK=2gX|{*9kp$I82NeZmn%=uzmD8ik;slz#Pf#7j>5gCuLcw(zgW7kD8<{%m#Y!Q#ts5@R`+)( zCty9;>^$Ac7FX7|`Q#YffNUFfv@+$hsHrW9;>7c|uv@i6-H1W0 z3X-kX>~H8HPLS9q`*WtjWZV2VP`7qN*LGy%_hd_HvJTlzVXr+J3{ zbex~7`&~2e`cRC2j{0DU^GM29?`AhAnjt%@5`BNP8vXEdY27}*`MVP7Dp{j7;=aG? z4<^1BLA2|$f^6oro@9%<)tV7i);pO!#HH@Jr#FpnOSY|fr7=;b`nwRtvC5}95cSBv zx)G%`&@o>k1IRY-7nLOPbeFLnHvGIhx9M|ZedT~-O+CJLRsK+AqPg0)62-HOU9m3W zTVM;aRoS1b5P7BBWZR4TTYM^p z^|3Y9oI30a(}~U%r8u)BJNg%|PgjMVCkfVH4LgT<*i;dim(KQJu-6yQqcdUMOsCJo zU=PbUglIfTdJ(P1y-%$!6mA87fvea@er*flSfU(?{K`K*mMC9bm;*cSY>=NzGL3Be z*D}P3Jj+7KW>4a9u6d53ZXA*Bb6Wc9i>Zje@f5G;&93un5Z~q7YNE_>cM0r*>!B+z zM@5k>di;U$$ZanNk!^=nfS=dCG!yZO?&IEMCXXFt)&&|u})5)&}cZZ%_Q5rhD%&(Xyn{_r6`FFo7qRn&@@uExF zc(P3qJC7*rz8Q!sbO`fRzqSrT`<)|BXY|}wWUCK*u#WoLonC0qSswbLWWWfr^|o4| zS+)p%GjUlk`DL3XfkYd)3_5aiff`<)ZJO7qPgL=@+rqw^$eojsu0B;`_xhSmYJ}&b z`m((x#fhIg)+F+qWy=zE>&fkqzbO*;h^>7F`>!5l9YcQGV8%?M$g~%*Vd$_lKcTMquzC2oL4;hGMe(e3{0bt^wsAR8*_v@g+amoyFh@2? zltB~m98ukR^n$;}rJ+R8yvYQjirW!GH1C(7j`iCssBb0SxOUUdovVO#{V0yrywVB$ ztz{r6vY_Ttt=iRA-|7SQGP9p+9~vH>?Wo0rhiR=%``Ga4(CA z8G2GYk1r5I)Fp2Pdr2p0JnEfg7>#)AnK6v~Hs3Gq{7lH(l;TBf-{j<%dEFoHwiQZ8 zkl$<>IF+ckzUoJ00WT+lGY1YNiX4%sPZ8(-sK2aGV=(#cAceYNvm$!HPP||USa7|o z(@FE8s|vWEFSPHQUeL?86X#Lv^v68p^{N;@AO0nX+EuCt9f<7CR_LmtC7terw2{z1 zTxJ4MXRGJ*&)tUw`@3(f?iu9Uk7dR~=kkeJV2@Y057@$<3&^(RTVnnAt!iV@ z&v^HFYu2U`_KPoy!Fq{5(_r7spvTbB^IET_cyZwCTIi-ew23I6R9FiC-A_(;OLy!a zKk_-8{OV$n{$Ruo%!kbxzL0E|Fd6iC`Wwq(S828eajB!+IG^o6obBlTE{5J)5PCA* zFzkojGOZcn-_OLo$FrA@Bb#qN>FP~;F%Gk?5%!z?vJ36H!Un9jnj4ApBfs|R;q~Q- zkGtG+wB@rgWUGZMYm=VL@vaWhq+K?i{JL>DoPSg0r%|xqXAdW`iQl>r&B4rriL%db z*B*Qm_lK%?avu3b`B06xU!Scb+C_ga0_XnZ;x3gR4f{cYAw=;d7xeUkDM zru3WP)GkIf>rZ4Qn{|P`>Ue9S&6c>G$43(~#?^Vtb~s=5(?HavUe1P5ySVddC{ZPG z?{lk=--F?gKZ-n+;TCiRKQVy(df8)Fk1hJ6E?C{AIREmN2lZ`V*8%0b$5SYtH^_-N znNFY|QR>If<2jPL^SCD>isIP)UeGbaR?jEfu5;fTmleM(ht8K5IDaNbAs09G;Ar^k zZ^d}{zo&73nUOI#A7Wp_SZWvg9?q3LeFf*ue0sHp{3`G+{Bm1r)V=h7hjFMw+e4Ap z@nUPlZQdq{Z0uhcFYBr&lg(E}&O>|UZgYv^Q)SH8WIsBbY!gt_-81K^1(7YAJ$7~7 zZVsMDBK;sdFHO}mab91$4Y;tF$je2cPRz#l)5&JpRz?y<6K@})+>os^;#!{=LbS8; zjv_L@!&8a+ND|buK6)DGf<<0mjri;3782#*pQeEC7mOsTgvZ@E8}r1S+rvemXO3l_ zOzrISnR!HhHFi1TZ%six>p4Z@;onvkapF@UgArholm&=nmEME zTEAo7;-9{=q0`=r@$-Ba+&MZ~1m{ElmU{rTvqxLnfO|`H0=Kp8Mbv*a#Q5!CGn8!J zv1J5NT)u(z;Xw&{ldT%<$GX|V1~ke|Ok4vLN!;1^3v z4TQhopUBfKrn-8&pBAZKt0>`yYO6B zvES=byG&3V>!5q(>WF@#a%0@8lj@6h{}dqmat-5?b#RYDPCj$#r})fS6*{ZEApEj&l?g|srucC>`Fc4 z%T3Kt-{RM+sC$_@g`##oZWEppYEaD)$m^3Eb>sV94(@jqwo5{1!MvVC8@31I5Z6M& zkbh}2&ZmveF@|j2>??HjcmY4Z%v@ZH=NPw)ci&?Ws|$3cc-izpl27dM+AL>MH z`|(#`4#774KG zPZXCtbztXR+JMM%4r)ZyMXI9y?f#8*;SbO0A&To$D#I@Kv>doOUo)aQ+qMY?V7V z>eu$m?3mraFEb@YoP71f&2LnFjL)9jPysrNUb}Uu5?=#4$H&$pvVOl}Jz1+$pa>l4 z{C>3&C%gAXp6QelI%fa)>>gj5NpL$Cku58pk0?~`f~XZ9nTze(ou9#zBn)sNES^|=1-2dc$e;a8PMp-$C{m#8~-ttj-(+PfGZ zThP~y@BTsfS^1eY&|myh50RM?f~dCMLVvdA0q9tD*PVkvcdxJ{O|oEI<)-HVb0o#O zn0*5ak!=s(DoPX;-xMRtz!}c&v<2+8A5rgmfqGyq{5)jK zfOYOXes`ZkH#1#**#nP|Z=y$+MO-$C`r*&hSB3p=bWNhYoELS*3ofb++iw7lf%{ZE-`SM>Tt9%G zjDL&u^8HugxEI9pluf8VIk0n5iWAd%w?TZI34%Sd9cW_Q-`$ZvO+~vb_Np-D*?QaS zgC6&HvzRxm2ifeWe{p|m{jDqM*!z+FiLyyZA0q#JsvFTHnA{0=kwBbNSs*ll*XP$& zMh6i^swRO%JF7w_A`i=sJekrC@%U^xHw?60gM!IsO&3V;Nkn_1&b=X!Xa<+V^U0+9 z@t>guFYHKumG*mgBA?4JK2xa4V8kEzs|WlWuVVf@&rIkFcCjb%?NA#!Ti(~y&jzU;3^YSVDVt!TZk6v2`{YsUnFZyZxD4b~XHwz=OvklxlbG(0n z_XoC}YUlO2&8YhUMESA)SNQ*0R+-}Yq9BZu9goB~OqKclpfkM@#%CvWaO<+O8TLi~ zmBH=PgsN_xk3DM${S6l@5moO`Zk+Fyy7fCJkgqGa{Zxl6=EYWoGwR2jTH#**j6dI! z^2O?n(6ia@;XIm*Yg;0&*Fxm+-uJOT;#_{WPhCHvj(Nkyr6|sRi@|+i7N~lpXSbw7 zovH8d-1v|3p5$j&mh~d4>m!1RX4_l||77=f)kMag!sGMvvCXj`=19UiWSic-+_)C! z#Cr1bb)hF#zvxT(JlUQhL}lXK>&h{$Ta(T9{SkotJy-`as}VK%k#`lu6K z9Y|zh9m9!Y&QGqs#{L>Ywwb@fy>1)7zBu9sXKmske}^wPFLKGtT4eKuIh#?tOm`aR zS7%57T^*cZF!}kUxggs zPV~ok*#T9J{IY5H{zThld??X8yNvy{omZiL)XE?Kx$&mk&fl_wJ7@nSap$+>8my~$ z5Yn9T`LiP!kMHMB)Gt5&3(k|saBM2{)8w0u{t`}}0K0G-SMQbDpbpfP1tq;So;l?{ z(D+$a_n(on1|Jb8CoIRfWYU?j&{-xy{xNVY*{Vv9Fe2X`G=M1l>r_BozlB&=R_qDp z&31poJ;aJ7#Jtp_AD?HQ-eMBPvr;n^@=JGf=lW0*oO_eI5AHSb{nRk8FU)57?B>7e z@5&U0qAc}%NPlbO@1B_S1`1L1S znTzO$^_w=CY_=tA9+6)E;*q!FOef#zOERWC6G6&5gitRUG zt3{nrM|$_{KFF&VKa0r!JPutEv&Z%K-u?e0vcQJLlrM+oUQ5(1o6RAb@%vDJa!{6d z_}f350!|r^`$acfHQ!5l5trS1_Ut`_+HLV-%ZV~$5S|NsL6qy?+j0@b>(I(mi0t^p z1r#R^HXH`leKmvp>eCmjquF_5GWmJ&k6VfQj}n-dt#uvGDN&-*Xo}arS914Ul{~8{ zPHz4@p2%ht$G+O>g|QDd*@GzZivk|RiAra2@A7vku`j&#W~{Fm>;At7cH*B+6mM00 zEYaMkJI3pys(&|*$SW3b&zAzTu|CqjDB5+C4vVRs9Y5^qYPJ{S(H|bJBpsP6GuBC* z8t(SB9bZ84W=nfT6a%tNq&U@PC)S5mFT99s-J~q?_1pq$$QC8uR_0n9(H6fm7d%qj)y?wcXy?B%jLWo1yb$?orz|J( zTDPIgBAP%~ygZC`HG7M=d-6>Z^dplE8b$H!Z0_mEJHHn?x@~IY+tcmf7v+v3Ul;2) z4gC!5H_+ot(~qK2XZ*_w?7vR`Ehz6lba*TZ{OAdu@e1un+1*g%3j=nXePw zel)JQf%I5GzKtm28lsNakmz;rM|tKGZ9pfiyO}cqx@Or$jLYtBigqzcxxCAr_8@Ot zGPjR6y00Kx{*!kXQB0nUIC0=_^l!TVZ|uEwa8=3E27GW9cUfQ=+#$Gg2SRYS;0zET zNRU8C@F9ki1QHx}(BSTt!Ce-YU3P$l#bt5-Za>4X3i9K9tG@61YpdR=+I`YJ-Ou#& z>7H{g$-OrUd6HEt2V!b;q8z zFF&vCg!zrPz{fT$wEG+UWQ&V<3bour^Lo~1@Ht*t4nX#(qzRppl{S!_HnFH{wKGi! z$<7gu=M}xm1AIK7`$p2UUS;8DK0LF0zx)d1yVJ)JA7kmUF28HP&qPigA4-0rwEcTL z{<`E+@W(#1`<;_(3HizQzgwO^`U2U#tEhi3LbUn*&xjS{J~!5#xvlrpERFKdd~Bs z?pP0tYGn-03E6Iqq_F8A>SCq2;tLNc5n~n33C(*5_B0E*=E%Y*b zIoLTN_2DOKeMa4>CmUeTUiCvfyxnGN_n|)e+v&0RB(2N$FFXZIy=*<98WxJ{@3hGe zKY9KSn}=RckRSPL3-IW!)v=z*ctN^!iNyWj-q`+j-vfizkgSFtgq~=YBaqr9?l!zF=BU2Xq`y{A_a-d*0=4 zgLrxAWY~`=*BNLw->}zh=`!2z>lQ|mpH46~gm}bspBO@C+)ub4@-_DNW4!);Trd6N zJo3v1T?eY)I%8kXqBl044SB=KUvEo|b3o-RJe~Mi{wvXhI)7$+-d|4&KQ{FU`b3zP zK=!4b&3Dpq@H0MVC&901$xuR5C_DOJwv4tsp;v5PbJth^yDphf$4>nVwytv*nooL` zXPCV|Bw03%WI4@P-tqQ%fZh5BJR+ALcueWa@RQjl1;YNZ{W}tME!6UPo&-7%gTbr& zhaz6*#EJAtl#>k;1vZL z*z<6D7VOJJ?6P?t<+GdoRn-AU!P7P45ki?I*&9US6Ugc$C*r>{lOr0ee}dm-S1r9z0ITcgUj*427(wO#jO3Y4a1X9?y3?bUpH* zJ8wlivXK4zMSiZj&37JO)SL87gFL7V3Bjw*vETo*MdDUf$s4IY!|9C%D< zIPA=qXA>xHUfVv8@b_QeXP$Es;t&Pw=RWfe=k2;nzuv#Q@3j3Ay&8I!?-lM(+|Rc& z@#$V2ac(dcGM28hsGYJ6=~aPDVZfG45Vy0%zVF5qYKl0;=G_x%UY?oVjZim#5*6o0 z^Dfy+LTL^yBjo7@L=y@EPHXB+fJi9h?l)O5$tm7MZ!6VlPw${L9+Q+6@1SAukR-vIud+p-u)fKC%h5zr#n?cobJRR&${l<-HBHQT^UXOPEY&!hP>shE~Mv8%E8XL zm*4KML>J4W<^koYVn8z>ALhA7CB)0>g`m$^x=4%LTiQAr+rzHksfXpsY(H;OY?uO> z=bmHv;%Wn(hP`e4#nM~;4P~r_G2#R z2Z~dJW?n7Q$53^I5&^1$56+7$MkI^v)v!U2~Dykh}Q{D1%FvY16lih z;87;P?kjSnKjMj-X#3)gIYj<^`Z}PhoOTc7>a7RB?#ye%>GZU()7Z-h@JZWIc{iDG%)V)5}(dP4jH{ugDKiGX1*<;sPT@2@qh-*6@ zJfl)-LVe2vJWfoX86-O?A0aR9H;mYL=FGNyiF?`oH~$2^bL<*;wHb^2@Sl73aZ!9( zj$wbM{}ZgIzGSiXFTZ}?>Y?X0e-md~jFA)O7b3Yt<^zGFbKWiL<`J!|zb8La=?@<8WKX&}Fr6ez~*!Trii zc)o!4#nukA_w|4&cs>)y8!jTf8du$7>-Nwa?~?XD&HBO5w5ecus=c*xgRYk6gZ;Zf zCu4#o#3MZXmI6b4ftqhzOfs*w3cURAFV;_mfJZMKZsiP#vA#Z57=Ci&-R1Cmv>5BE z&a-eoR++LvuX=64daU4S@aoL1!NXh&Z2ZM@VP5K=Vu{B&J#BrQ8`!=Ns5|X-6sVq# zTSa=6pf&8&IqS!I+IU%?)`&~Q4z_VUOJdKtS`ClF@2WmaXrg0*Vnr?JP4+9^F5|R2(_I3Oy!-XK z7yK16`*}L%P5N=jyZ&SFWb#uFTj6yDD_Fqt?Ae33oNl(Bcvk7sM;GILHqx`vz!6+1EANTiQI8SPDOtt|^|sRF-C_2lg@A^4{~dycbv7c-NhV zp9v^n^ReF6wMp>@>{#LcmgiFn__Np$Jcp?cA$VS8H?v#*yq|4-zVLvbv$TL+r`9&> z_joPpQ8!KrKUMB0@UX_=kewZmF)vnj#d_j;GrRBg8*O}zV}ZIRgWd!l2d}K`4L{TS zoqawG%wyxp;bVC!{%!4BOI#OGyf&UgRkBq$4^)k>^*g&c?8Jj$%X@!-ji+oXyZ@AS zo(+wI9gi5Xf$G8;61pGgBtAf>Myy1Ch$cs2=l=Wz_91F=r?&vyO0EA9T$RI_gmKMJIqHsPRZM_ zQ+Jxck7Z0^&oz%$s2ABd7QCw4U97_k|A{;}J#yPTbm|8*t;&MO>2Lc%rZCp;X@IT6 zxh-rxpRNO$jXH>VlWM%pLyd=a{Ws~ruYJD$efEfyh)3iLf}dVL6g(!XrF|~jVc#FE z?)StwBpcVq^Q&VbrqKR%+ytN#(;a%T+Z%T3abo!Ep*ev@mau$Y(=5-^$=2WZBA)kk zTqfj?ufH*#cxAT!cpWZ>9E2So-PH2R8y3$60$Da2hgcN`KXy3j81h%Yb?irI{z}|~ zkXOhZ4E$>n)-i*df>$g*g}9kdfQ|q13B;pZ?Ssf(oSr{1&W&vCspY`eNmmg%pSF%9 zRM|>Mmm9^jyzt{GTHAd1+3$6Bzt0ovsa>bKk)3lP!+P>FS9;p|T{;-(?DtwrdOq!C zJK(lq;bhMeWJ7(MHPaEFKD-I*n740jzeV3#O!n;JO7N(QAMu&DMrW@h!+#7~^ z5&skcGLI0u|3Z_%t5>{$pDNKD{QS^0$mUft@bClkt$m&t?2~7P}AmR&QF*(r@O=6{Bj#8=A=L#RKIegX&=t1Ny7rqhRNpe=rL3@0Xxn&1n~S_+Pz7kX~dz7y$b*5B&(8j46Bw*>5?3 zB0Q`=$@2YW*qJoB;O7k44PHIo{yxc6Igfc+Mf3vCyx}~~?Wc2|?E^e_5$JR~Qmh{r$)UR203ak;%7%0)^&dMt4;Rox8#!0{MBGGp?K*4o&9n&$+FT$tf%VF z=;w0F`fY^Wm;cw#lW&z7{mG<#KZCsW%|6GQ&$Qz9Tw|0neN*2eze9n!Qb_|n+V z2h+|I)D!QL7yD!teR`6eZnL?7m$S`aiv}UsxOS4h^IP&IjK>+y=QJasR@pPvo3^*kv%c%?@L z)RVete;+3=PeNW;$&rJIN2aZ4`}gKbcG*{=q&?-wC)bX5B@^ zCCs=k#KVsH1GQLhAbNOAx}3Lyt4BCo+OJ5-r#W>RccSNe(;XLZsDR1ac-HlZ{bVmEN=wVZT_(OzhKpYo7homgd*|p|FITlOA!}1QBcYSp6ZzpI27rg3y^8ZhT&ZHu&D+WP zkiRoIp^dj}QCuIMdPq~!>j7&U5~|i)?DY>SXn984_vz`H3E{8W46}XJ`gK3D7ptqH zo=o+pw!VT=b|yU^Gz9rD+y1iG@62$-Bir4u{g=58{AFwkyYD=!Q2#Px&kp3zF1@T$#j{C{D|?MO%Qka z$GDEFd?x5whNQ655BFnzz1qHihz~ko<5`gh*Fm(})|~uh`qf^9&iW#i5$|$QiO?Jk ztWBt=twI0ELE90p7*qi9imPjEJi#UGe)6@g1Ap&&`QU$QRIxbnpAk?3*stWzq}RRH zdJ;NO-LXEqzZBQWDNzH+PZY*_d~3~WWG7D)E=>NSV3;Scaf#YM)4+q!X z9Im@4vJrVu>n4IvT_0-Ck)4C9lbzmJuORtx-WhzXc{R(oWG(o#i9p?}F|EL-PXyY0 zdjuhG{NoGkm(AEym-vi-@E*00wFp`5^@xL2d)kU*-r)kS zs~DEso@?do=lVLOhaivoq&KbucbZ~<>Q!s-h`#Ziw%2phaMX=V_ZI!E z)Bg%RyMGq(bKf4Q6ZzsI_Qk_iAs#1SIC#X9GPtgi|848-(n8cTd+rThXMI{5ug-|; zE(VWB9-P7lY<@00#=h83x3R7{^gHbN$^2bhP3zTek&tci@@w|(e?jTex&L`@LrQlx z9LEFycmH#HLMMUykEb#?i5=%lypbx8<0NuVq@u|twOcvqlDj{L8IH_J=tlaPNYAdb zq|3jOI#&FTh`i;E0 z)Nj(tt3{KVjhrHWMUs2`XOzCT_CM5RimurN(h`<56G+`bre`k49jAM6r(8;>+?Pal zff1S3*1b7=iR=4aHEr=0j&>Nt)Mj zUzn`_LsqJOy^24+Zgfdbf3@g9OVF?>!H;8#6zoN*`|@%);o^Sh)es&Th$mHHff&>ZHXR)0B z!9B<==Hlp=Ws_x}?FY_s9WE!Njr{}um5us)zj@BgLvQq%QK=-IU2*P_bs zKI+ZCXm|e?>i=cn|1$7DXJBA9JfziZhKEwl=Hnq*4u8}O4{1ML!o$5L_a)?gHsVEv9uS3x zc~NEv_UoSdZkWtI)xj5S-+U$dx2s3~I?-19;w|ZY`y$EX0rKFa>VW--5u5U2okqzE zk$?OlTed>Hs@pm*nm6s<=Yjp3b$Dphm0I9Mj!C~B``2^4@uEPLtXG=s)uKZce#9#d zZpEA7xN=};E+1_Kem~#FggSeZDujGim0w(LlrwLX0G^mxiu7h~^Rk5T2aicyknGfn zH<@W(@9^pb+_R_`uu1x!z|7S;6PhIF>k%^Fi_dBh=ID}v!+mW2Q$()Rp>e2>QYO$D2c3ZYQ>XpOrt^H)FE*{qW*f z_B*=+{Th#$5A;X8&h9%^Xs~jIPuMcl93zzXi7>Av>`K{QU3>oJ&rE4b_N`H_C~ABCc--|NB5Y ztXJqg>d2JnF&sQ0O(F^P!VJ?1dC{MyK!1A{&LPujN!K{HUa{u(dVfnw`WHLO)4WI+ zk&V!a&J#-h;$+b%LiI|3S5Hj`SAo2DM)<;j&tk9JTns5 zI1>Aoi*vUnd*%7CE@Aw^2Cm9N_D(?BCWLyl%NO#OszV9chdkgHOMihZ!}4QYCuSh} zUk4<<@}s^Gg>1ixm04PXXMbz(^0(cGKyGE<1SV_$3RyX+Fwbt@Z%*^-MxL^S@rRy~ z8Rv(paMF|J<&r4e*G$f6)Unw&eT>Vk=Z9tvCDeIGdlRy`eL9f6zPlUewfo2KhOBj? z3(bp>g|R=Gc2F(-1;fq%RZ3#!<2dfaQ^ccgAXJw1y3i8^;} z9^ds00dM*wGl26>&jgOQACf6^@4$UikGmKc=k{k4i{U(t&ubcX$Glecv0t&d@&e+~ zBg-!%RF$&E5{eW#7D29cKa$X-*no3WcT0(Q+^X*eThyjC{7QX6pE{#&^Y!+ud8e?nC`^O(5r7_DG--ABL6%avP@9UHN&CfSMWn@bYP1r>@C z>KXN_LqF~33WQu_$GO9c#{Mu~BkVaSGF|c~d*h6p1Du(65&Vy;#f0+Dk{0VG{gq@L zkzzV9YvvzbH{rixgp2H6?&?qIq^mlO>{*pK%lmFyEXm?SPN4Ej1722ob};GHsG-)+ z{qwiO+-qsi)8{vEzi}34LA~jLCnCW=Z0c-6-mcOtLMcm)BQyt2!(Qi0-_P|e;n$zl zgDIUzuh&MQ-p#7IJ;{%qOFfoQZ23E!Q0Gg8b4>a6M_ux;PhR9F_9v`K_+KN~eu#uQ zSET{$=HHv zzWukcB&*6_P_L$eZ{IkYuWY}Jg}-Ikhgk~e`=#pQ$<`S1H@#LYAXKhS%LrMa zj4PmD(pN!lvfJkQaJva{-x7ZP*?jCfhV1m2LbHHno=zj=#pcc-R1F)Wk4=lnL+#C$Ms87oXS>&YUgyMXl?ccX~7m(}}OEUv@r83VXG&2^V z&S~nqk;Z!6;~0|p!`+jC{*}=0yy(gw^2)7+h7q5b*+UZY zcB%)k$gUvr*SD9Vj(Cao;Uue)bf^gvfdZ^~z+6Xp)^@YemBUbNQ8o%+G$fw#X*HZ~kcP zL;CnbR$77hSn8v;PFu9vKzzz)&^$tuy({|KM1`({|D0@l=$>&y%|`sAmSH`b48FGe~8ovkymlKH1==2 zgEte8bPlW~bWYAdf5^Mpa1NQ(57rWoNjD1XsFbnef5=-X1@g{^zKJ3p9V~4=+H_qB zxz1|aXF)ll$zL`pyogX7OE;5Hxk~#J#viijI6NQgE5!oh+>2W%DLGRyJffA*(bMec(J9(~I3P_0`zjL@8I+S5hy{XP>2&CpAzXLTqG(0N+W z=Eptv?O=mS*mJARnGo<*$r?^5+f}sdjM_Ai_~cOgM`hgC)AmEl72svNQv9%f<>?0Y z9K7j0mH0%9(vt~wg1p$jtTewL@v0MLabM9P_Dx5^cN_YJZGDSd08|I18@M zBtAJcJCIjyJ{J68l?8aq4nTayWAJp6P4Rg#gtAf%n~(2U-TIo@qRF4n-Li;KX6?I_ zP>nq?2Xbfo;i$Ue;<+xjUU(lx{mSCC6v?dV5!AK&$M46W`m?~(Eq^Sbsgh|mAuqp0 z0Y{#%>vGGoevMxVoxWw!zs{1z=r?(CIr@X9z8$7`NA#0PmLKt|cW)OGpRU{r>#^{d zW{?BR+IWZL0iW45$oAc=!pO(BobNSiCCw~s&?Xm3-u%<0Sc;zE39-^84Q4=S?d^?^b;` zWW!rM$xmGv(3emIogP5Q&E=+qCWrka619O1caf|Yh7+nx|pmk{o{+kKF;}FUuSTFHhvG2j8{3^9a@FF?c?Z<(6CC zd>hsgkAAWYeXidY9zybejg#RG;9uc7&MAKR#0rw-#U6;)T<(axi?NsRJRuX@!TnUq zlgNwdzOu&;dFL-3M0(a_av<^XpU>HI;6*E(C%oIGmNc&qrJYTvYMirt)klvdS=>q2 zm;B-n*6`zKn&+8+9!jVm`1_Nc^w@;^i~h8`HtAW0bf^cFx?X>hMV(Mw7jdxMkNcw7 zElGC#m#krgDr=eHg!;F=ZQx)0aR--MHjn(f6Y`x^M-hsw!S-AT-1oyelgV3v*A&k> zj(FJg$vD4+Mt^7DQ1Etbj(%oE>;90J*KJdp_{6is4tSRr_XN+y zs;vo~MfuPdI&Det^YiwP(nRGnzL@V_5%o=`-wr)FXF}q0D#U<~H+|Zk>}Bph?Y=V| zX-+b)Jt!xkz8ef#)OZd)=49wh`uIa`ebx~6&6i<)zE}i7j(LIoiQt$DB#XCy2gSKj z)-Q_uh`Yl$$*lUhMl>IPh@7K(kY3I?gX=19*Tp%dtMtM7pz?-$(Y#=faDJ-%*(MR6 zh^Y`rD6bT5Mi_sHcVEA};_;oS@V~wteJ1~`i9XSDW6&3Dzt1%AWni}NT6s+XUqbt# zPVsr2)BDiJyi(0+;2l_bF`+6^KblYnn%dBpE&*P)==H)ln%~_#l28Vx^e2ozp$y#U_GBteT8?jpszfD?5AOeh{Bm1$=5j@tDb%hZ5>G zsqtLIPuUMYVk$}dDFbU#G_A5!*$Td>vttt&FutU=hGSFhqWC!n0UmE zQv(T2=J(wQ;}4Z>wjh7mCpq$`ed-J*Sr4iWe!lQN@*&E_fRDeJjeg{P3l0Hq|6DzP z#A}L#^&uV+USR~Gob@Dx&@6c}mQX!j*33onhp{1qqSUi6;MD_T2<7w4h}-?+_oHey z)C-I5ZR;^i%!qSaC{J&o7@Zl{O9g#GpRleTGl`Eaoq&F4RR#|uIsOncx=G@Zb!JBs zicC?9A#e4W4>{MZR)i+O`voqV_dmFl(46lJe#ay7hv%boJ97DpaU+Ymfo%VI~D5TBEz!9qgz zdL-(E&p9-Q_?%if5wGl<-R7fW%n#!gWisJhHN9Muz*k_!OhR5e7V)#l3NDh(hU+tk zSIe5S2-(R(QwW{+?|+zIxw%Sz_@!w%nvlIZh5M&$^dOXES>dhiiy4!{iAUY@A4e!7 z0wtkI5cb1*FmHeFPX79@VmR*%ONII{`?8^)*;!ei{B_kB)T=tX9r2mH8*Tm081}>Z zWy8bK7tZ6Pe#9>ulplz7rgropG<}xVC0=o0Y=1(P`~&(!ZBK{iJ-O)@oD=S;?}ogy zwl#R765*U;J5r+0Oy=v@2Y>m@6TGLs^aX}D0-yT%TpyCz@bh@S_>R;q@XrN1g7;Ej zKSGu}(-1qb<*y~oeKF&ci(=U|x*`%W53C*%9cy-e+_a?yhai&Pr8T*Ar zkzVEqFF`!gcNpqQmKudRGm}^0z9QDH#r-ipulvKmZC^B93O*5VeKGMleP5xkxw8#< zQc1pkxI*m{OK2UQrCkgm^DB;eBbRRnA36;8EirNOuf)e4`(>yqeQ)%I@axf&^yc@K z=r=a{@-pJnk37-WCQAVF^DQU+EC*x`f#26^0=MkwecM_4 z^-EQHckM!Yxwuw2Lj7r6yEr$Rz3vO9O>EjPs=U!LxGw-eqfd83CIQK-a ziQOPyzRxjVD|@#%x1A~#iTj6>r!(>W1Ap9|*pU z&jq30VE=tXWgCtAwkmN6btDUQwAUpbv5x%{{!XLgwr<|_izXg+G}kn&b0|v{@aOl5 zjC1S7)g4m^dF?b4AZPsv{PAcV^}&8vr)K%4lfTob!a_oQO`}fv%u{X2U(T2SUcTTr zMY7ubWdvE^;7$CT1(*bAQMc_V4`EVLbSY=Ephv9j9C1 zi|vPXs|krl5-e@Ls0RG~J6GVK>>pt$^Y}iip$9JS|L9DHW`gHom;(p7+ z?3-hyR~f9s^fmO2yqethxp&+^;uWdZVjbzxNst_W@MBkTpH(Ra+Vd{$^WiSHkt+Op z5FsC%>SsbT|Ir}wR}};8xwm!rP?A|a-yimcIGG0i;_ma&A$W^;^V8Dj3g9m(&7Ab|M=ZdzuiH6PHYtFOct~sx+H28oIrf$SnVc+JWoUP zg&dI_$ogI%N4z@yVC4HdQnw(}e*LiM1I=cUzs|e~{U*crLpGmh)+4>@lpl4*{F^Nx zK1cBwLXrG2`h`^A4jDFo3i*kjt1cqcO$V$Y~nbfP}NM3Od z{b3q3okDW_At#NEAU|hRnB_S?Vgt$gQ~RZaqT=1=ggoV(MR9I4iI1%(Sw1msoRuJkMX@0VLmD9#(?!<oqUXX5|N+B z6Axby9Yv@so(4+aqdp`%8|uf9zj;vGJ_l86gE*Df@!_P8KiqGc9YlW2BdH{meS3sL zepe%y&|JuZ`;v1h8|sz+H5BoQ>PuxDku^DmexV<~9Xi<^dw>1w>zmm(6$L+k+|fQC zG^~m9gO4w5pXVDV9}T{jp@>s9h(JGo%Sk`8tPb`m@0LQ`X3Yeg3%uEUUy4`soS6=B z|GBFd@#zirLy`5x8UsmImrmk->i+S&!A^ShB0uM>7(ysZL=Poof9y$j?z?on3Z^)SC_GGRj1cj z@VuLYe9L`_e|SDPzdW_~p$(J9kv|`HcPe-?Hniu%u;YbEmNz3N5}yuxi2mZUiieYI z4lTmD=Kk@!!4lRS1HaupA_>`Y`@G2KPqojbVb48DuZFLmK|Hd{8k`eOhVi(+>8N7% zI)2CMUcbg&Tz~Z-`!w>`1Jce1&bWuZkk9O!D@F5=xx{P4V2fd~Q6%dMF}B{~^Nx9D zpL6mQ!a2dm-J40gPUgxu&s5vs?j)NWp@>soev7z;|1#X~^!7EQh(G?2Nzdc@o5^9g zAIqHf!$o+_ZaC-k^MXCV>-S|c`SV(}uz$8H68Uv9-Tz^JRoODA2ezak>VfS_8$vwn zU{&NtEGf{DWM0F5sU2g#27`ZGVdRzPsE9g_AFoJ$#@6qG?g8-kEn{E*M%Xv=^YOb| zkY0v9??-%c*>l9F)5Z)TS-HH?FY$R*#BKB&%N^uT{!UOu@T=gab{}0X;6B6#-$wnj zoe}6~naF1l);Z?kLl}SP>z!H>pQ>6{5VBA9&F9RwMjMiyEi2Oya__dS;@oITq!onv z%9hTATza-3j6e9N(XCx>rEFLc=ZllR8Lq#q)2SWlO{y1Z3Hj=N-sG(-O!g4bcjnY`UQ2s za@glSo%39O@QGdE6}fl!B_7?u6$n1h{HQaN`4{ZNJ@wttdHoQtJQs?1^})A@SC@JV zUZ-lmBE+xXY(%^!aX-ZCES-*cMdE2cj8~O9Y4e-x0rD#**bk}TDRcBCK34m9MM6>W zXPe(=DQtcpl|g>_5c{0@U9jXg^QEnaOH*;*adI36A1~4i{UQ!^sY<*mUpVSjfBaex znGRtcRjyn6xcH=QSwsc5AwRQs5b9Q!8jHLrk9u9e_q;5gOGKZiwlB71viGw(qfx)? z=&>KyZh@Q}4Q5 zZkcyj)c{y$TSG#JXRJl2o0d&ND11KFh;yUq-n>2`KcVXp%KZnb6UHB=<$d^zDtj0{lrEVPcCO-XOnLQuN+($n2@0GHWUacz9 z2)vuicoV9@$-ysgpGLmF<)oiY#?Ch0;X4tpT(u1GI-M8WJg>-=3+tu$`sI?@FSjOM zKK>lymGy@IINou*F8T47uWWwXtZYrP{G7H4p>V?U5VFB(QCH67*~qIC^AGA-udnyR z{ECkoJju_wdCJDOwO|YIr$V%Z1q^Ng{z zX&p5)(#G3%R7K*I6LQ&nGzzhpF7$`}rgLR1fjCV!oC7SnG|m~5HrNBa<$8X=`_UZV zqQt9rc~&5FsuTw539Fzd)we_UJ5-YV#hG*969=|eA=w!aRvLI|A>MZ)f9Ib^KwVJbK4DHIO+knwgz8?z;{>#-M#%0ZOGPMymVnp&0;v}9=m|N1rqUX#ck8|#W>Ol<+kYD3WpbB| z_dq7_s>p@uh*#IGjJQP35w;I?EH-U%2}6ee)GJ=dF-?(fjp>@A2SfI zsM4%7#c5t^obPh`PN1_V^oRL%g2Kv>pZa4Y`hyicV(&lOCt@G6#;i;<&o;a+M!ah0 zAC(E&hbpKCo%M7nlH(6Ebb<%@@xPhfcg94hGcluidD5GcjWT2Y%;kdQuS=ywKd7f` zf$U@~){D<8a)y>7KfU=3_HBM!0Dk?#5BX7l4*;)N{2)JgL!xb-J)7Zr$+0Pa*l+RI z`Tr}kq#ihL&B+eUDPHIA+4Ts`jh_&&%&{AFZG3y#KDlxb^P+2Sdmr#Efb-6&aLHbe za$fd%AaXlnQ37vZ-CUgs*?wO^ z=qy`l@nLVo$wFTPdF2p)7un6OG>DKt{ER%QtN(bAZ2bDbk5{VWM?7Lj$$`M%eftxd zQ=6RcA-lPyHTk(e+`SK>%v8=F@};=JKyeeYI?@Pe z_%)mdx>Pu>BdeF)erePCe4On0i874{1@G0KP;Q>w1Gs;AUqX}k>zBLjE{(YLD*Jkt zU3-mwk*n&0$N6cup zkL$p)R2%Ga%c|*gL6qAJ&OKwk}bx0Wj0LiNIYypcR{GKPicpB*Nv`1 zC~oZVa=FpeY>4}hIaR(i>Gk6S;NiRcu`jpk-!*zvZ$c+#o`|tj_>K@t`V@zwkrf>#D<1zw*HS2;y-z zF4hPNv*%5eTA~suVLgboUtnj^`S#+ z3Hg>33xSF240O3=lQhW^;L-kT2<7?QklCFlD#QheJ$|CjOB#l+<3$*X7!&)_G&{Bf1vLT^r2HS z80Uhn>ZeFA?~R*J$nvhmxgzJTnB{WICiS_cgtF+}nZWZI(Z77-h;XuZO4Wg^!-pY$ zXH;w$>A6P?*45>k1Vf%QuL1dsdOLBQMc!YhlI;H64Ag6#UX60!pt`_pIM z4BV4608b^-QjxZ zN3%F)ILUHpGW3f$xv6U$+50}gbycI&qo2*O*^o{2!XEH{8Hai`wd~(9=+0jt>wHZn zVSeH>+*d@KtrGkmsiVQ`w`3WizS$P_%Qpm|{>+T6xF4%%`{gIHccp0frF?+6&9i*i zhZ%eb^&%#p97{Z=Orlue`MawL)$)N$Am_Y+dSm}go9&|gM4VkssLw>i0uz3kNXU2C z52xlQx8Odkr)`=R=hll%bJh~d60gz6%Kc>kkOw9~zIC-)i^yMn$-RM4x6ZPbP~IsV z3H^=a!{Xes<53CqX_gO~3VG#n#Or)GjCh@)i|3GDdH;_6>Bsg@ojhT$tCvr zrb<>kkGMZ1)jpTFZT?MzZ#mW6Nv1YkF(GVen7CANNgu;p`^*oD`G2bSvW19~MYLG5s%F7xQwX?^tLo>Q3wo zUktnROL1NK-I%r{J4e&`yWGILCPY8TvQN5`te*VS0rvO9rvv3;)UhdhdLzlQam*G% z=k-q;2-%5w=oi+d8|p~UFM{jnw6vcS!_Fn_>LR-gmLOE*bWXu;mhUaIe!=%A+q<^;y_f56Ee>akyUecHB*y0%2vjk&t ze(`1r5g$uB6X%1;Iz1Y8qub;8OP#9)wy)wt!#L z@*#wx!EAefNPQy=^1d{^flqJuiX*>bz5#^JNxz{$`uSfpM4H_8`J-B(ecm}bIE?lo zB5tAH<>zrxB(qgtP?S-z%WONrM^9Q`ZSDY0?}}FVUCc+*=!O z!?%b}mT8T+ovwFh6Q7!u5q#qD6xeA$jyUzxIumJL)bs4=awCi0Zu{=lh;fkj-bQ_y zEcV|OMUe~{N$)&}>_mQQ+b=_aza+r@m+kq2dR3L8asHUc^CytK>9jVIP{k&;eS78# zo)g5zD4YYV$}fuMb^E(>2>H%M)8N-N&3NcL92`q1)DWO}qSbrtvJAS8Ybd zz`l3-xrEN^pB$cvU7cKKUT}n*uJTe(Dvz+k&yYrE#T*M%A!9_P(JYT z8m;DG9lr^Pm*u;Fby&t0*oW8}YvWnD7(8;$)`?hma9JCFNSRQ`KP9qx`874{oIjge zzxCa)p4#6Lva@y&&L`(#5#&L5EC?oldF&9L2WX4`rol@b8W`seSYBH*h|u|S8)R`b z3GR1hL~IY_r%Tvi>~mSy&V=U5blB;hbJ4G=dlfv#aR1amac0?I;#0AgVdr>!DNTOP z_QzrHPm&OIrCkqj-DEgN9q`=~M$GDi?PGd4{XcPDJ1K+cfhO9B@`s{#1F#B zUN7&6Iu^6WuY~ODx1LZwPXk#!t%LPUVEyjUM>j;j^4$UUoJl^;H_mO(8nfnv;<5b_ zTKOeC{KS?!s4Mwcl`MscL&oiOUOwBB)BeQ2fFY;H{eQ`eWyDdtCuSw~S&__3D zOaA8e(GG+>y?y_r?zgc#&9fDkVaGn?Z%MN0+Mx*9IfsswClvmkuj%)SqR5y4lG&MH zALvt_8x`l4)e;xZ7hNX!SCXAw!{-vppL)&**6THoP`~Vpb5N}~*xu!qRrnKJUy3IX^Up(D6A89^GgY&Smy4za+hwu-TvZ*lqi|*`(S6 zJ{h+Ieay;~M<1HKk%(K}P6T`BU_meNKYHH}Ja@XZA!MD04J1Ajwg~p-(HHoOY2iTk z)W2%*+h6L^zMMJjIU&C`1odM23>CCbZh8(PWMypKh|<6JCs{;$w}5^`=B9CEcRZ&c zR2dp|BQ%G<)F+hsbphzZ?U(vE2bPU;x%F({N1T_U+~H{?J2f^lm1qcpQf1W4}?6$AE%gv{g-fl=T`)kxlLbWk(B;-vo(+N#v9Xxk9{->c=hc4k< z)I(Daqj{Nlizgv3d90d?6a zbHPO0=X2*~NlyN(l>OXQ5qRB)WOHd}7edixdL`o1uM!3j^29C20mDX4C6xU-;(3Tq zzB`m;vHGWagzAd@QWak1es>q?kF@DbsJqzr%Zp}x8j`FIHf=!ma(nY$gyL@TfrLh` zz?xj`51hx3egEC4>5`Zo=|dT$r(XJ(@AgleLFpCwx|821xZ^tB{C zFJQk6Tx9&m%1H_akzQVp7(l2?{N96*)!l)*)TfW&{9~c#24TKh$SBx{?m-=?oLzAK zvK<9b2P#Qc$j-0rQ4f6Ii!o#`c6$wh-_2dP4r*Kt@UgZlaeY}8`#djamYqpVzWqBGeZ;>4~;;6BJER4PM$dRKWMpV%0DJnh3?F1KDLxj2weB(|>u)%*lANOn?3 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 z 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�Xje=F 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≷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