1
/*************************************************************************
2
* Copyright (C) 2009 by Vincent Richefeu *
3
* vincent.richefeu@hmg.inpg.fr *
5
* This program is free software; it is licensed under the terms of the *
6
* GNU General Public License v2 or later. See file LICENSE for details. *
7
**************************************************************************/
9
#include"SpherePadder/SpherePadder.hpp"
10
#include<yade/lib/pyutil/doc_opts.hpp>
13
BOOST_PYTHON_MODULE(_packSpherePadder){
15
YADE_SET_DOCSTRING_OPTS;
17
// not wrapped directly; only pass filename to SpherePadder ctor
19
class_<TetraMesh>("TetraMesh")
20
.def("read", &TetraMesh::read)
21
.def("read_gmsh", &TetraMesh::read_gmsh)
22
.def("read_inp", &TetraMesh::read_inp)
26
py::class_<SpherePadder>("SpherePadder","Geometrical algorithm for filling tetrahedral mesh with spheres; the algorithm was designed by Jean-François Jerier and is described in [Jerier2009]_.",py::init<std::string,std::string>((py::arg("fileName"),py::arg("meshType")=""),"Initialize using tetrahedral mesh stored in *fileName*. Type of file is determined by extension: .gmsh implies *meshType*='GMSH', .inp implies *meshType*='INP'. If the extension is different, specify *meshType* explicitly. Possible values are 'GMSH' and 'INP'."))
28
.add_property("radiusRatio", &SpherePadder::getRadiusRatio,&SpherePadder::setRadiusRatio_simple)
29
.def("setRadiusRatio",&SpherePadder::setRadiusRatio,"Like radiusRatio, but taking 2nd parameter.")
30
.add_property("radiusRange", &SpherePadder::getRadiusRange,&SpherePadder::setRadiusRange_py)
31
.add_property("maxOverlapRate", &SpherePadder::getMaxOverlapRate,&SpherePadder::setMaxOverlapRate)
32
.add_property("virtualRadiusFactor", &SpherePadder::getVirtualRadiusFactor,&SpherePadder::setVirtualRadiusFactor)
33
.add_property("maxNumberOfSpheres", &SpherePadder::getMaxNumberOfSpheres,&SpherePadder::setMaxNumberOfSpheres)
34
.add_property("maxSolidFractioninProbe", &SpherePadder::getMaxSolidFractionInProbe,&SpherePadder::setMaxSolidFractioninProbe_py)
35
.add_property("numberOfSpheres", &SpherePadder::getNumberOfSpheres)
36
.def_readonly("meanSolidFraction",&SpherePadder::getMeanSolidFraction)
38
// .def("plugTetraMesh", &SpherePadder::plugTetraMesh) // takes pointer
39
.def("save_mgpost", &SpherePadder::save_mgpost)
40
// .def("save_Rxyz", &SpherePadder::save_Rxyz) /// is asSpherePack.save(...) instead
42
.def("pad_5", &SpherePadder::pad_5)
43
.def("place_virtual_spheres", &SpherePadder::place_virtual_spheres)
44
.def("densify", &SpherePadder::densify)
45
.def("insert_sphere", &SpherePadder::insert_sphere)
47
.def("asSpherePack",&SpherePadder::getSpherePackObject);