Changeset a5551b
- Timestamp:
- Nov 4, 2009, 2:54:31 PM (15 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
- Children:
- c9bce3e
- Parents:
- eecd33
- Location:
- src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
src/analysis_correlation.cpp
reecd33 ra5551b 14 14 #include "tesselationhelpers.hpp" 15 15 #include "vector.hpp" 16 #include "verbose.hpp" 16 17 17 18 … … 19 20 * Note given element order is unimportant (i.e. g(Si, O) === g(O, Si)) 20 21 * \param *out output stream for debugging 21 * \param *mol molecule with atoms22 * \param *molecules list of molecules structure 22 23 * \param *type1 first element or NULL (if any element) 23 24 * \param *type2 second element or NULL (if any element) 24 25 * \return Map of doubles with values the pair of the two atoms. 25 26 */ 26 PairCorrelationMap *PairCorrelation( const ofstream *out, const molecule * const mol, const element * const type1, const element * const type2 )27 PairCorrelationMap *PairCorrelation( ofstream * const out, MoleculeListClass * const &molecules, const element * const type1, const element * const type2 ) 27 28 { 28 29 PairCorrelationMap *outmap = NULL; 29 30 double distance = 0.; 30 31 31 if ( (mol == NULL)) {32 c out <<"No molecule given." << endl;32 if (molecules->ListOfMolecules.empty()) { 33 cerr << Verbose(1) <<"No molecule given." << endl; 33 34 return outmap; 34 35 } 35 36 outmap = new PairCorrelationMap; 36 atom *Walker = mol->start; 37 while (Walker->next != mol->end) { 38 Walker = Walker->next; 39 if ((type1 == NULL) || (Walker->type == type1)) { 40 atom *OtherWalker = mol->start; 41 while (OtherWalker->next != mol->end) { // only go up to Walker 42 OtherWalker = OtherWalker->next; 43 if (Walker->nr < OtherWalker->nr) 44 if ((type2 == NULL) || (OtherWalker->type == type2)) { 45 distance = Walker->node->Distance(OtherWalker->node); 46 //cout << "Inserting " << *Walker << " and " << *OtherWalker << endl; 47 outmap->insert ( pair<double, pair <atom *, atom*> > (distance, pair<atom *, atom*> (Walker, OtherWalker) ) ); 37 for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin(); MolWalker != molecules->ListOfMolecules.end(); MolWalker++) 38 if ((*MolWalker)->ActiveFlag) { 39 cerr << Verbose(2) << "Current molecule is " << *MolWalker << "." << endl; 40 atom *Walker = (*MolWalker)->start; 41 while (Walker->next != (*MolWalker)->end) { 42 Walker = Walker->next; 43 *out << Verbose(3) << "Current atom is " << *Walker << "." << endl; 44 if ((type1 == NULL) || (Walker->type == type1)) { 45 for (MoleculeList::const_iterator MolOtherWalker = MolWalker; MolOtherWalker != molecules->ListOfMolecules.end(); MolOtherWalker++) 46 if ((*MolOtherWalker)->ActiveFlag) { 47 *out << Verbose(2) << "Current other molecule is " << *MolOtherWalker << "." << endl; 48 atom *OtherWalker = (*MolOtherWalker)->start; 49 while (OtherWalker->next != (*MolOtherWalker)->end) { // only go up to Walker 50 OtherWalker = OtherWalker->next; 51 *out << Verbose(3) << "Current otheratom is " << *OtherWalker << "." << endl; 52 if (Walker->nr < OtherWalker->nr) 53 if ((type2 == NULL) || (OtherWalker->type == type2)) { 54 distance = Walker->node->Distance(OtherWalker->node); 55 //*out << Verbose(1) <<"Inserting " << *Walker << " and " << *OtherWalker << endl; 56 outmap->insert ( pair<double, pair <atom *, atom*> > (distance, pair<atom *, atom*> (Walker, OtherWalker) ) ); 57 } 58 } 48 59 } 60 } 49 61 } 50 62 } 51 }52 63 53 64 return outmap; … … 56 67 /** Calculates the distance (pair) correlation between a given element and a point. 57 68 * \param *out output stream for debugging 58 * \param *mol molecule with atoms69 * \param *molecules list of molecules structure 59 70 * \param *type element or NULL (if any element) 60 71 * \param *point vector to the correlation point 61 72 * \return Map of dobules with values as pairs of atom and the vector 62 73 */ 63 CorrelationToPointMap *CorrelationToPoint( const ofstream *out, const molecule * const mol, const element * const type, const Vector *point )74 CorrelationToPointMap *CorrelationToPoint( ofstream * const out, MoleculeListClass * const &molecules, const element * const type, const Vector *point ) 64 75 { 65 76 CorrelationToPointMap *outmap = NULL; 66 77 double distance = 0.; 67 78 68 if ( (mol == NULL)) {69 cout <<"No molecule given." << endl;79 if (molecules->ListOfMolecules.empty()) { 80 *out << Verbose(1) <<"No molecule given." << endl; 70 81 return outmap; 71 82 } 72 83 outmap = new CorrelationToPointMap; 73 atom *Walker = mol->start; 74 while (Walker->next != mol->end) { 75 Walker = Walker->next; 76 if ((type == NULL) || (Walker->type == type)) { 77 distance = Walker->node->Distance(point); 78 outmap->insert ( pair<double, pair<atom *, const Vector*> >(distance, pair<atom *, const Vector*> (Walker, point) ) ); 84 for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin(); MolWalker != molecules->ListOfMolecules.end(); MolWalker++) 85 if ((*MolWalker)->ActiveFlag) { 86 *out << Verbose(2) << "Current molecule is " << *MolWalker << "." << endl; 87 atom *Walker = (*MolWalker)->start; 88 while (Walker->next != (*MolWalker)->end) { 89 Walker = Walker->next; 90 *out << Verbose(3) << "Current atom is " << *Walker << "." << endl; 91 if ((type == NULL) || (Walker->type == type)) { 92 distance = Walker->node->Distance(point); 93 *out << Verbose(4) << "Current distance is " << distance << "." << endl; 94 outmap->insert ( pair<double, pair<atom *, const Vector*> >(distance, pair<atom *, const Vector*> (Walker, point) ) ); 95 } 96 } 79 97 } 80 }81 98 82 99 return outmap; … … 85 102 /** Calculates the distance (pair) correlation between a given element and a surface. 86 103 * \param *out output stream for debugging 87 * \param *mol molecule with atoms104 * \param *molecules list of molecules structure 88 105 * \param *type element or NULL (if any element) 89 106 * \param *Surface pointer to Tesselation class surface … … 91 108 * \return Map of doubles with values as pairs of atom and the BoundaryTriangleSet that's closest 92 109 */ 93 CorrelationToSurfaceMap *CorrelationToSurface( ofstream *out, const molecule * const mol, const element * const type, const Tesselation * const Surface, const LinkedCell *LC ) 94 { 95 110 CorrelationToSurfaceMap *CorrelationToSurface( ofstream * const out, MoleculeListClass * const &molecules, const element * const type, const Tesselation * const Surface, const LinkedCell *LC ) 111 { 96 112 CorrelationToSurfaceMap *outmap = NULL; 97 113 double distance = 0.; … … 99 115 Vector centroid; 100 116 101 if ((Surface == NULL) || (LC == NULL) || (mol == NULL)) {102 cout <<"No Tesselation, no LinkedCell or no molecule given." << endl;117 if ((Surface == NULL) || (LC == NULL) || (molecules->ListOfMolecules.empty())) { 118 *out << Verbose(1) <<"No Tesselation, no LinkedCell or no molecule given." << endl; 103 119 return outmap; 104 120 } 105 121 outmap = new CorrelationToSurfaceMap; 106 atom *Walker = mol->start; 107 while (Walker->next != mol->end) { 108 Walker = Walker->next; 109 if ((type == NULL) || (Walker->type == type)) { 110 triangle = Surface->FindClosestTriangleToPoint(out, Walker->node, LC ); 111 if (triangle != NULL) { 112 distance = DistanceToTrianglePlane(out, Walker->node, triangle); 113 outmap->insert ( pair<double, pair<atom *, BoundaryTriangleSet*> >(distance, pair<atom *, BoundaryTriangleSet*> (Walker, triangle) ) ); 122 for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin(); MolWalker != molecules->ListOfMolecules.end(); MolWalker++) 123 if ((*MolWalker)->ActiveFlag) { 124 *out << Verbose(2) << "Current molecule is " << *MolWalker << "." << endl; 125 atom *Walker = (*MolWalker)->start; 126 while (Walker->next != (*MolWalker)->end) { 127 Walker = Walker->next; 128 *out << Verbose(3) << "Current atom is " << *Walker << "." << endl; 129 if ((type == NULL) || (Walker->type == type)) { 130 triangle = Surface->FindClosestTriangleToPoint(out, Walker->node, LC ); 131 if (triangle != NULL) { 132 distance = DistanceToTrianglePlane(out, Walker->node, triangle); 133 outmap->insert ( pair<double, pair<atom *, BoundaryTriangleSet*> >(distance, pair<atom *, BoundaryTriangleSet*> (Walker, triangle) ) ); 134 } 135 } 114 136 } 115 137 } 116 }117 138 118 139 return outmap; … … 135 156 * \param *map map to write 136 157 */ 137 void OutputCorrelation( ofstream * file, const BinPairMap * const map )158 void OutputCorrelation( ofstream * const file, const BinPairMap * const map ) 138 159 { 139 160 *file << "# BinStart\tCount" << endl; … … 147 168 * \param *map map to write 148 169 */ 149 void OutputPairCorrelation( ofstream * file, const PairCorrelationMap * const map )170 void OutputPairCorrelation( ofstream * const file, const PairCorrelationMap * const map ) 150 171 { 151 172 *file << "# BinStart\tAtom1\tAtom2" << endl; … … 159 180 * \param *map map to write 160 181 */ 161 void OutputCorrelationToPoint( ofstream * file, const CorrelationToPointMap * const map )182 void OutputCorrelationToPoint( ofstream * const file, const CorrelationToPointMap * const map ) 162 183 { 163 184 *file << "# BinStart\tAtom::x[i]-point.x[i]" << endl; … … 174 195 * \param *map map to write 175 196 */ 176 void OutputCorrelationToSurface( ofstream * file, const CorrelationToSurfaceMap * const map )197 void OutputCorrelationToSurface( ofstream * const file, const CorrelationToSurfaceMap * const map ) 177 198 { 178 199 *file << "# BinStart\tTriangle" << endl; -
src/analysis_correlation.hpp
reecd33 ra5551b 32 32 class element; 33 33 class LinkedCell; 34 class molecule;34 class MoleculeListClass; 35 35 class Tesselation; 36 36 class Vector; … … 45 45 /********************************************** declarations *******************************/ 46 46 47 PairCorrelationMap *PairCorrelation( const ofstream *out, const molecule * const mol, const element * const type1, const element * const type2 );48 CorrelationToPointMap *CorrelationToPoint( const ofstream *out, const molecule * const mol, const element * const type, const Vector *point );49 CorrelationToSurfaceMap *CorrelationToSurface( ofstream * out, const molecule * const mol, const element * const type, const Tesselation * const Surface, const LinkedCell *LC );47 PairCorrelationMap *PairCorrelation( ofstream * const out, MoleculeListClass * const &molecules, const element * const type1, const element * const type2 ); 48 CorrelationToPointMap *CorrelationToPoint( ofstream * const out, MoleculeListClass * const &molecules, const element * const type, const Vector *point ); 49 CorrelationToSurfaceMap *CorrelationToSurface( ofstream * const out, MoleculeListClass * const &molecules, const element * const type, const Tesselation * const Surface, const LinkedCell *LC ); 50 50 double GetBin ( const double value, const double BinWidth, const double BinStart ); 51 void OutputCorrelation( ofstream * file, const BinPairMap * const map );52 void OutputPairCorrelation( ofstream * file, const BinPairMap * const map );53 void OutputCorrelationToPoint( ofstream * file, const BinPairMap * const map );54 void OutputCorrelationToSurface( ofstream * file, const BinPairMap * const map );51 void OutputCorrelation( ofstream * const file, const BinPairMap * const map ); 52 void OutputPairCorrelation( ofstream * const file, const BinPairMap * const map ); 53 void OutputCorrelationToPoint( ofstream * const file, const BinPairMap * const map ); 54 void OutputCorrelationToSurface( ofstream * const file, const BinPairMap * const map ); 55 55 56 56 -
src/builder.cpp
reecd33 ra5551b 1616 1616 const LinkedCell *LCList = NULL; 1617 1617 // find biggest molecule 1618 int counter = 0; 1618 1619 for (MoleculeList::iterator BigFinder = molecules->ListOfMolecules.begin(); BigFinder != molecules->ListOfMolecules.end(); BigFinder++) { 1619 1620 if ((Boundary == NULL) || (Boundary->AtomCount < (*BigFinder)->AtomCount)) { 1620 1621 Boundary = *BigFinder; 1621 1622 } 1623 counter++; 1624 } 1625 bool *Actives = Malloc<bool>(counter, "ParseCommandLineOptions() - case C -- *Actives"); 1626 counter = 0; 1627 for (MoleculeList::iterator BigFinder = molecules->ListOfMolecules.begin(); BigFinder != molecules->ListOfMolecules.end(); BigFinder++) { 1628 Actives[counter] = (*BigFinder)->ActiveFlag; 1629 (*BigFinder)->ActiveFlag = (*BigFinder == Boundary) ? false : true; 1622 1630 } 1623 1631 LCList = new LinkedCell(Boundary, 2.*radius); 1624 1632 element *elemental = periode->FindElement((const int) atoi(argv[argptr])); 1625 1633 FindNonConvexBorder((ofstream *)&cout, Boundary, TesselStruct, LCList, radius, NULL); 1626 CorrelationToSurfaceMap *surfacemap = CorrelationToSurface( (ofstream *)&cout, mol , elemental, TesselStruct, LCList );1634 CorrelationToSurfaceMap *surfacemap = CorrelationToSurface( (ofstream *)&cout, molecules, elemental, TesselStruct, LCList ); 1627 1635 BinPairMap *binmap = BinData( (ofstream *)&cout, surfacemap, 0.5, 0., 0. ); 1628 1636 OutputCorrelation ( &binoutput, binmap ); 1629 1637 output.close(); 1630 1638 binoutput.close(); 1639 for (MoleculeList::iterator BigFinder = molecules->ListOfMolecules.begin(); BigFinder != molecules->ListOfMolecules.end(); BigFinder++) 1640 (*BigFinder)->ActiveFlag = Actives[counter]; 1641 Free(&Actives); 1631 1642 delete(LCList); 1632 1643 delete(TesselStruct); -
src/unittests/AnalysisCorrelationToPointUnitTest.cpp
reecd33 ra5551b 33 33 34 34 // init private all pointers to zero 35 TestList = NULL; 35 36 TestMolecule = NULL; 36 37 hydrogen = NULL; … … 73 74 CPPUNIT_ASSERT_EQUAL( TestMolecule->AtomCount, 4 ); 74 75 76 TestList = new MoleculeListClass; 77 TestMolecule->ActiveFlag = true; 78 TestList->insert(TestMolecule); 79 75 80 // init point 76 81 point = new Vector(1.,1.,1.); 77 82 78 83 // init maps 79 pointmap = CorrelationToPoint( (ofstream *)&cout, ( const molecule * const)TestMolecule, (const element * const)hydrogen, (const Vector *)point );84 pointmap = CorrelationToPoint( (ofstream *)&cout, (MoleculeListClass * const)TestList, (const element * const)hydrogen, (const Vector *)point ); 80 85 binmap = NULL; 81 86 … … 91 96 92 97 // remove 93 delete(Test Molecule);98 delete(TestList); 94 99 // note that all the atoms are cleaned by TestMolecule 95 100 delete(point); -
src/unittests/AnalysisCorrelationToPointUnitTest.hpp
reecd33 ra5551b 12 12 13 13 class element; 14 class LinkedCell; 14 15 class molecule; 15 class LinkedCell;16 class MoleculeListClass; 16 17 class periodentafel; 17 18 class Tesselation; … … 37 38 private: 38 39 40 MoleculeListClass *TestList; 39 41 molecule *TestMolecule; 40 42 element *hydrogen; -
src/unittests/AnalysisCorrelationToSurfaceUnitTest.cpp
reecd33 ra5551b 33 33 34 34 // init private all pointers to zero 35 TestList = NULL; 35 36 TestMolecule = NULL; 36 37 hydrogen = NULL; … … 40 41 Surface = NULL; 41 42 LC = NULL; 42 43 43 44 44 // construct element … … 79 79 CPPUNIT_ASSERT_EQUAL( TestMolecule->AtomCount, 4 ); 80 80 81 TestList = new MoleculeListClass; 82 TestMolecule->ActiveFlag = true; 83 TestList->insert(TestMolecule); 84 81 85 // init tesselation and linked cell 82 86 Surface = new Tesselation; … … 121 125 122 126 // remove 123 delete(Test Molecule);127 delete(TestList); 124 128 delete(Surface); 125 129 // note that all the atoms are cleaned by TestMolecule … … 133 137 { 134 138 // do the pair correlation 135 surfacemap = CorrelationToSurface( (ofstream *)&cout, Test Molecule, hydrogen, Surface, LC );139 surfacemap = CorrelationToSurface( (ofstream *)&cout, TestList, hydrogen, Surface, LC ); 136 140 CPPUNIT_ASSERT( surfacemap != NULL ); 137 141 CPPUNIT_ASSERT_EQUAL( (size_t)4, surfacemap->size() ); … … 141 145 { 142 146 BinPairMap::iterator tester; 143 surfacemap = CorrelationToSurface( (ofstream *)&cout, Test Molecule, hydrogen, Surface, LC );147 surfacemap = CorrelationToSurface( (ofstream *)&cout, TestList, hydrogen, Surface, LC ); 144 148 // put pair correlation into bins and check with no range 145 149 binmap = BinData( (ofstream *)&cout, surfacemap, 0.5, 0., 0. ); … … 155 159 { 156 160 BinPairMap::iterator tester; 157 surfacemap = CorrelationToSurface( (ofstream *)&cout, Test Molecule, hydrogen, Surface, LC );161 surfacemap = CorrelationToSurface( (ofstream *)&cout, TestList, hydrogen, Surface, LC ); 158 162 // ... and check with [0., 2.] range 159 163 binmap = BinData( (ofstream *)&cout, surfacemap, 0.5, 0., 2. ); … … 172 176 { 173 177 BinPairMap::iterator tester; 174 surfacemap = CorrelationToSurface( (ofstream *)&cout, Test Molecule, carbon, Surface, LC );178 surfacemap = CorrelationToSurface( (ofstream *)&cout, TestList, carbon, Surface, LC ); 175 179 // put pair correlation into bins and check with no range 176 180 binmap = BinData( (ofstream *)&cout, surfacemap, 0.5, 0., 0. ); … … 190 194 { 191 195 BinPairMap::iterator tester; 192 surfacemap = CorrelationToSurface( (ofstream *)&cout, Test Molecule, carbon, Surface, LC );196 surfacemap = CorrelationToSurface( (ofstream *)&cout, TestList, carbon, Surface, LC ); 193 197 // ... and check with [0., 2.] range 194 198 binmap = BinData( (ofstream *)&cout, surfacemap, 0.5, -2., 4. ); -
src/unittests/AnalysisCorrelationToSurfaceUnitTest.hpp
reecd33 ra5551b 12 12 13 13 class element; 14 class LinkedCell; 14 15 class molecule; 15 class LinkedCell;16 class MoleculeListClass; 16 17 class periodentafel; 17 18 class Tesselation; … … 40 41 private: 41 42 43 MoleculeListClass *TestList; 42 44 molecule *TestMolecule; 43 45 element *hydrogen; -
src/unittests/AnalysisPairCorrelationUnitTest.cpp
reecd33 ra5551b 34 34 35 35 // init private all pointers to zero 36 TestList = NULL; 36 37 TestMolecule = NULL; 37 38 hydrogen = NULL; … … 72 73 CPPUNIT_ASSERT_EQUAL( TestMolecule->AtomCount, 4 ); 73 74 75 TestList = new MoleculeListClass; 76 TestMolecule->ActiveFlag = true; 77 TestList->insert(TestMolecule); 78 74 79 // init maps 75 correlationmap = PairCorrelation( (ofstream *)&cout, Test Molecule, hydrogen, hydrogen );80 correlationmap = PairCorrelation( (ofstream *)&cout, TestList, hydrogen, hydrogen ); 76 81 binmap = NULL; 77 82 … … 87 92 88 93 // remove 89 delete(Test Molecule);94 delete(TestList); 90 95 // note that all the atoms are cleaned by TestMolecule 91 96 delete(tafel); -
src/unittests/AnalysisPairCorrelationUnitTest.hpp
reecd33 ra5551b 12 12 13 13 class element; 14 class LinkedCell; 14 15 class molecule; 15 class LinkedCell;16 class MoleculeListClass; 16 17 class periodentafel; 17 18 class Tesselation; … … 37 38 private: 38 39 40 MoleculeListClass *TestList; 39 41 molecule *TestMolecule; 40 42 element *hydrogen;
Note:
See TracChangeset
for help on using the changeset viewer.