32
32
33
33
#include " Config.hpp"
34
34
35
- #include < boost/current_function.hpp>
36
-
37
35
#include " Cavity.hpp"
38
36
39
37
/* ! \file GePolCavity.hpp
40
38
* \class GePolCavity
41
39
* \brief A class for GePol cavity.
42
- * \author Krzysztof Mozgawa
43
- * \date 2011
40
+ * \author Krzysztof Mozgawa, Roberto Di Remigio
41
+ * \date 2011, 2016
44
42
*
45
43
* This class is an interface to the Fortran code PEDRA for the generation
46
44
* of cavities according to the GePol algorithm.
@@ -50,22 +48,9 @@ class GePolCavity __final : public Cavity
50
48
{
51
49
public:
52
50
GePolCavity () {}
53
- GePolCavity (const Molecule & molec, double a, double pr, double minR, const std::string & suffix = " " ) :
54
- Cavity (molec), averageArea(a), probeRadius(pr), minimalRadius(minR)
55
- {
56
- std::string checkpointName = " GePolCavity::build" ;
57
- TIMER_ON (checkpointName);
58
- build (suffix, 10000 , 200 , 25000 );
59
- TIMER_OFF (checkpointName);
60
- }
61
- GePolCavity (const std::vector<Sphere> & sph, double a, double pr, double minR, const std::string & suffix = " " ) :
62
- Cavity (sph), averageArea(a), probeRadius(pr), minimalRadius(minR)
63
- {
64
- std::string checkpointName = " GePolCavity::build" ;
65
- TIMER_ON (checkpointName);
66
- build (suffix, 10000 , 200 , 25000 );
67
- TIMER_OFF (checkpointName);
68
- }
51
+ GePolCavity (const Molecule & molec, double a, double pr, double minR, const std::string & suffix = " " );
52
+ GePolCavity (const Sphere & sph, double a, double pr, double minR, const std::string & suffix = " " );
53
+ GePolCavity (const std::vector<Sphere> & sph, double a, double pr, double minR, const std::string & suffix = " " );
69
54
virtual ~GePolCavity () {}
70
55
friend std::ostream & operator <<(std::ostream & os, GePolCavity & cavity) {
71
56
return cavity.printCavity (os);
@@ -91,4 +76,52 @@ class GePolCavity __final : public Cavity
91
76
void writeOFF (const std::string & suffix);
92
77
};
93
78
79
+ /* ! \fn extern "C" void generatecavity_cpp(int * maxts, int * maxsph, int * maxvert,
80
+ * double * xtscor, double * ytscor, double * ztscor, double * ar,
81
+ * double * xsphcor, double * ysphcor, double * zsphcor, double * rsph,
82
+ * int * nts, int * ntsirr, int * nesfp, int * addsph,
83
+ * double * xe, double * ye, double * ze, double * rin,
84
+ * double * avgArea, double * rsolv, double * ret,
85
+ * int * nr_gen, int * gen1, int * gen2, int * gen3,
86
+ * int * nvert, double * vert, double * centr)
87
+ * \param[in] maxts maximum number of tesserae allowed
88
+ * \param[in] maxsph maximum number of spheres allowed
89
+ * \param[in] maxvert maximum number of vertices allowed
90
+ * \param[out] xtscor x-coordinate of tesserae centers (dimension maxts)
91
+ * \param[out] ytscor y-coordinate of tesserae centers (dimension maxts)
92
+ * \param[out] ztscor z-coordinate of tesserae centers (dimension maxts)
93
+ * \param[out] ar area of the tessera (dimension maxts)
94
+ * \param[out] xsphcor x-coordinate of the sphere center the tessera belongs to (dimension maxts)
95
+ * \param[out] ysphcor y-coordinate of the sphere center the tessera belongs to (dimension maxts)
96
+ * \param[out] zsphcor z-coordinate of the sphere center the tessera belongs to (dimension maxts)
97
+ * \param[out] rsph radii of the sphere the tessera belongs to, i.e. its curvature (dimension maxts)
98
+ * \param[out] nts number of generated tesserae
99
+ * \param[out] ntsirr number of generated irreducible tesserae
100
+ * \param[out] nesfp number of spheres (original + added)
101
+ * \param[out] addsph number of added spheres
102
+ * \param[out] xe x-coordinate of the sphere center (dimension nSpheres_ + maxAddedSpheres)
103
+ * \param[out] ye y-coordinate of the sphere center (dimension nSpheres_ + maxAddedSpheres)
104
+ * \param[out] ze z-coordinate of the sphere center (dimension nSpheres_ + maxAddedSpheres)
105
+ * \param[out] rin radius of the spheres (dimension nSpheres_ + maxAddedSpheres)
106
+ * \param[in] masses atomic masses (for inertia tensor formation in PEDRA)
107
+ * \param[in] avgArea average tesserae area
108
+ * \param[in] rsolv solvent probe radius
109
+ * \param[in] ret minimal radius for an added sphere
110
+ * \param[in] nr_gen number of symmetry generators
111
+ * \param[in] gen1 first generator
112
+ * \param[in] gen2 second generator
113
+ * \param[in] gen3 third generator
114
+ * \param[out] nvert number of vertices per tessera
115
+ * \param[out] vert coordinates of tesserae vertices
116
+ * \param[out] centr centers of arcs defining the edges of the tesserae
117
+ */
118
+ extern " C" void generatecavity_cpp (int * maxts, int * maxsph, int * maxvert,
119
+ double * xtscor, double * ytscor, double * ztscor, double * ar,
120
+ double * xsphcor, double * ysphcor, double * zsphcor, double * rsph,
121
+ int * nts, int * ntsirr, int * nesfp, int * addsph,
122
+ double * xe, double * ye, double * ze, double * rin, double * masses,
123
+ double * avgArea, double * rsolv, double * ret,
124
+ int * nr_gen, int * gen1, int * gen2, int * gen3,
125
+ int * nvert, double * vert, double * centr, int * isphe, const char * pedra, int * len_f_pedra);
126
+
94
127
#endif // GEPOLCAVITY_HPP
0 commit comments