Changeset a25aae


Ignore:
Timestamp:
Feb 2, 2010, 12:22:06 PM (15 years ago)
Author:
Tillmann Crueger <crueger@…>
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:
6b59ab, 7ba324
Parents:
520c8b (diff), 1f1b23 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge commit 'heber/Analysis_PairCorrelation' into MenuRefactoring

Location:
src
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • src/analysis_correlation.cpp

    r520c8b ra25aae  
    370370{
    371371  Info FunctionInfo(__func__);
    372   *file << "# BinStart\tCount" << endl;
     372  *file << "BinStart\tCount" << endl;
    373373  for (BinPairMap::const_iterator runner = map->begin(); runner != map->end(); ++runner) {
    374374    *file << runner->first << "\t" << runner->second << endl;
     
    383383{
    384384  Info FunctionInfo(__func__);
    385   *file << "# BinStart\tAtom1\tAtom2" << endl;
     385  *file << "BinStart\tAtom1\tAtom2" << endl;
    386386  for (PairCorrelationMap::const_iterator runner = map->begin(); runner != map->end(); ++runner) {
    387387    *file << runner->first << "\t" << *(runner->second.first) << "\t" << *(runner->second.second) << endl;
     
    396396{
    397397  Info FunctionInfo(__func__);
    398   *file << "# BinStart\tAtom::x[i]-point.x[i]" << endl;
     398  *file << "BinStart\tAtom::x[i]-point.x[i]" << endl;
    399399  for (CorrelationToPointMap::const_iterator runner = map->begin(); runner != map->end(); ++runner) {
    400400    *file << runner->first;
     
    412412{
    413413  Info FunctionInfo(__func__);
    414   *file << "# BinStart\tTriangle" << endl;
     414  *file << "BinStart\tTriangle" << endl;
    415415  for (CorrelationToSurfaceMap::const_iterator runner = map->begin(); runner != map->end(); ++runner) {
    416416    *file << runner->first << "\t" << *(runner->second.first) << "\t" << *(runner->second.second) << endl;
  • src/analysis_correlation.hpp

    r520c8b ra25aae  
    9090/** Puts given correlation data into bins of given size (histogramming).
    9191 * Note that BinStart and BinEnd are desired to fill the complete range, even where Bins are zero. If this is
    92  * not desired, give equal BinStart and BinEnd and the map will contain only Bins where the count is one or greater.
     92 * not desired, give equal BinStart and BinEnd and the map will contain only Bins where the count is one or greater. If a
     93 * certain start value is desired, give BinStart and a BinEnd that is smaller than BinStart, then only BinEnd will be
     94 * calculated automatically, i.e. BinStart = 0. and BinEnd = -1. .
    9395 * Also note that the range is given inclusive, i.e. [ BinStart, BinEnd ].
    9496 * \param *map map of doubles to count
     
    114116  if (BinStart == BinEnd) { // if same, find range ourselves
    115117    GetMinMax( map, start, end);
    116   } else { // if not, initialise range to zero
     118  } else if (BinEnd < BinStart) { // if BinEnd smaller, just look for new max
     119    GetMinMax( map, start, end);
     120    start = BinStart;
     121  } else { // else take both values
    117122    start = BinStart;
    118123    end = BinEnd;
  • src/atom_bondedparticle.cpp

    r520c8b ra25aae  
    5656 * \param *AdjacencyFile output stream
    5757 */
    58 void BondedParticle::OutputAdjacency(ofstream *AdjacencyFile) const
     58void BondedParticle::OutputAdjacency(ofstream * const AdjacencyFile) const
    5959{
    6060  *AdjacencyFile << nr << "\t";
     
    6262    *AdjacencyFile << (*Runner)->GetOtherAtom(this)->nr << "\t";
    6363  *AdjacencyFile << endl;
     64};
     65
     66/** Output of atom::nr along each bond partner per line.
     67 * Only bonds are printed where atom::nr is smaller than the one of the bond partner.
     68 * \param *AdjacencyFile output stream
     69 */
     70void BondedParticle::OutputBonds(ofstream * const BondFile) const
     71{
     72  for (BondList::const_iterator Runner = ListOfBonds.begin(); Runner != ListOfBonds.end(); (++Runner))
     73    if (nr < (*Runner)->GetOtherAtom(this)->nr)
     74      *BondFile << nr << "\t" << (*Runner)->GetOtherAtom(this)->nr << "\n";
    6475};
    6576
  • src/atom_bondedparticle.hpp

    r520c8b ra25aae  
    4444  int CorrectBondDegree();
    4545  void OutputBondOfAtom() const;
    46   void OutputAdjacency(ofstream *AdjacencyFile) const;
     46  void OutputAdjacency(ofstream * const AdjacencyFile) const;
     47  void OutputBonds(ofstream * const BondFile) const;
    4748  void OutputOrder(ofstream *file) const;
    4849
  • src/boundary.cpp

    r520c8b ra25aae  
    1919
    2020#include<gsl/gsl_poly.h>
     21#include<time.h>
    2122
    2223// ========================================== F U N C T I O N S =================================
     
    840841  Log() << Verbose(1) << "INFO: Grid steps are " << N[0] << ", " << N[1] << ", " << N[2] << "." << endl;
    841842
     843  // initialize seed of random number generator to current time
     844  srand ( time(NULL) );
     845
    842846  // go over [0,1]^3 filler grid
    843847  for (n[0] = 0; n[0] < N[0]; n[0]++)
  • src/builder.cpp

    r520c8b ra25aae  
    13081308            Log() << Verbose(0) << "\t-h/-H/-?\tGive this help screen." << endl;
    13091309            Log() << Verbose(0) << "\t-I\t Dissect current system of molecules into a set of disconnected (subgraphs of) molecules." << endl;
     1310            Log() << Verbose(0) << "\t-j\t<path> Store all bonds to file." << endl;
     1311            Log() << Verbose(0) << "\t-J\t<path> Store adjacency per atom to file." << endl;
    13101312            Log() << Verbose(0) << "\t-L <step0> <step1> <prefix>\tStore a linear interpolation between two configurations <step0> and <step1> into single config files with prefix <prefix> and as Trajectories into the current config file." << endl;
    13111313            Log() << Verbose(0) << "\t-m <0/1>\tCalculate (0)/ Align in(1) PAS with greatest EV along z axis." << endl;
     
    15941596                int ranges[NDIM] = {1,1,1};
    15951597                CorrelationToSurfaceMap *surfacemap = PeriodicCorrelationToSurface( molecules, elemental, TesselStruct, LCList, ranges );
    1596                 //OutputCorrelationToSurface(&output, surfacemap);
    1597                 BinPairMap *binmap = BinData( surfacemap, 0.5, 0., 0. );
     1598                OutputCorrelationToSurface(&output, surfacemap);
     1599                BinPairMap *binmap = BinData( surfacemap, 0.5, 0., 20. );
    15981600                OutputCorrelation ( &binoutput, binmap );
    15991601                output.close();
     
    16791681              }
    16801682              break;
     1683
     1684            case 'J':
     1685              if (ExitFlag == 0) ExitFlag = 1;
     1686              if ((argptr >= argc) || (argv[argptr][0] == '-')) {
     1687                ExitFlag =255;
     1688                eLog() << Verbose(0) << "Missing path of adjacency file: -j <path>" << endl;
     1689                performCriticalExit();
     1690              } else {
     1691                Log() << Verbose(0) << "Storing adjacency to path " << argv[argptr] << "." << endl;
     1692                configuration.BG->ConstructBondGraph(mol);
     1693                mol->StoreAdjacencyToFile(argv[argptr]);
     1694                argptr+=1;
     1695              }
     1696              break;
     1697
     1698            case 'j':
     1699              if (ExitFlag == 0) ExitFlag = 1;
     1700              if ((argptr >= argc) || (argv[argptr][0] == '-')) {
     1701                ExitFlag =255;
     1702                eLog() << Verbose(0) << "Missing path of bonds file: -j <path>" << endl;
     1703                performCriticalExit();
     1704              } else {
     1705                Log() << Verbose(0) << "Storing bonds to path " << argv[argptr] << "." << endl;
     1706                configuration.BG->ConstructBondGraph(mol);
     1707                mol->StoreBondsToFile(argv[argptr]);
     1708                argptr+=1;
     1709              }
     1710              break;
     1711
    16811712            case 'N':
    16821713              if (ExitFlag == 0) ExitFlag = 1;
  • src/molecule.hpp

    r520c8b ra25aae  
    277277  int FragmentMolecule(int Order, config *configuration);
    278278  bool CheckOrderAtSite(bool *AtomMask, Graph *GlobalKeySetList, int Order, int *MinimumRingSize, char *path = NULL);
     279  bool StoreBondsToFile(char *path);
    279280  bool StoreAdjacencyToFile(char *path);
    280281  bool CheckAdjacencyFileAgainstMolecule(char *path, atom **ListOfAtoms);
  • src/molecule_graph.cpp

    r520c8b ra25aae  
    992992  Log() << Verbose(1) << "Saving adjacency list ... ";
    993993  if (AdjacencyFile != NULL) {
     994    AdjacencyFile << "m\tn" << endl;
    994995    ActOnAllAtoms(&atom::OutputAdjacency, &AdjacencyFile);
    995996    AdjacencyFile.close();
     997    Log() << Verbose(1) << "done." << endl;
     998  } else {
     999    Log() << Verbose(1) << "failed to open file " << line.str() << "." << endl;
     1000    status = false;
     1001  }
     1002
     1003  return status;
     1004}
     1005;
     1006
     1007/** Storing the bond structure of a molecule to file.
     1008 * Simply stores Atom::nr and then the Atom::nr of all bond partners, one per line.
     1009 * \param *out output stream for debugging
     1010 * \param *path path to file
     1011 * \return true - file written successfully, false - writing failed
     1012 */
     1013bool molecule::StoreBondsToFile(char *path)
     1014{
     1015  ofstream BondFile;
     1016  stringstream line;
     1017  bool status = true;
     1018
     1019  line << path << "/" << FRAGMENTPREFIX << ADJACENCYFILE;
     1020  BondFile.open(line.str().c_str(), ios::out);
     1021  Log() << Verbose(1) << "Saving adjacency list ... ";
     1022  if (BondFile != NULL) {
     1023    BondFile << "m\tn" << endl;
     1024    ActOnAllAtoms(&atom::OutputBonds, &BondFile);
     1025    BondFile.close();
    9961026    Log() << Verbose(1) << "done." << endl;
    9971027  } else {
Note: See TracChangeset for help on using the changeset viewer.