// Uncomment the following line to change the fontsize: // fontsize=14 ////////////////////////////////////////////////////////////////////////////////////////////// // Welcome to UMLet! // // Double-click on UML elements to add them to the diagram, or to copy them // Edit elements by modifying the text in this panel // Hold Ctrl to select multiple elements // Use Ctrl+mouse to select via lasso // // Use ± or Ctrl+mouse wheel to zoom // Drag a whole relation at its central square icon // // Press Ctrl+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word) // Edit the files in the "palettes" directory to create your own element palettes // // Select "Custom Elements > New..." to create new element types ////////////////////////////////////////////////////////////////////////////////////////////// // This text will be stored with each diagram; use it for notes.10com.umlet.element.base.Class2650300210100AtomInfo -- -x,v,F: Vector element *type; //!< pointing to element -- #AtomInfo(); #~AtomInfo(); com.umlet.element.base.Relation235033032050lt=<<<<-300;30;30;30com.umlet.element.base.Class182090560370Element -- mass: double CovalentRadius: double VanDerWaalsRadius: double Z: int name: char[64] symbol: char[3] period: char[8] group: char[8] block: char[8] sort: int * No: int Valence: double NoValenceOrbitals: int HBondDistance: double[NDIM] HBondAngle: double[NDIM] -- #element(); #~element(); #Output(ofstream * const out) const: bool #Checkout(ofstream * const out, const int No, const int NoOfAtoms) const: boolcom.umlet.element.base.Class2800640400230BondedParticle -- -- #Operation(i: int): int #BondedParticle() /+virtual ~BondedParticle()/ #RegisterBond(bond *Binder): bool #UnregisterBond(bond *Binder): bool #IsBondedTo(BondedParticle * const BondPartner): bool #UnregisterAllBond(); #CountBonds() const: int #CorrectBondDegree(): int #OutputBondOfAtom() const #OutputAdjacency(ofstream *AdjacencyFile) const #OutputOrder(ofstream *file) constcom.umlet.element.base.Relation3120370370290lt=<<-350;30;350;220;30;220;30;270com.umlet.element.base.Relation2750370420290lt=<<- 30;30;30;220;400;220;400;270com.umlet.element.base.Relation312037050290lt=<<-30;30;30;270com.umlet.element.base.Class3370300210100BondedParticleInfo -- AdaptiveOrder: unsigned char MaxOrder: bool -- #BondedParticleInfo() #~BondedParticleInfo() com.umlet.element.base.Class2970280310120ParticleInfo -- nr: int Name: char * -- #ParticleInfo() #~ParticleInfo() #ostream & operator << (ostream &ost) const com.umlet.element.base.Relation355033025050lt=<<<<-30;30;230;30com.umlet.element.base.Class3780230210190BondList {Some Properties} -- -id: Long _-ClassAttribute: Long_ -- #Operation(i: int): int /+AbstractOperation()/ -- Responsibilities -- Resp1 *-- Resp2*com.umlet.element.base.Class1960490210150GraphNodeInfo -- -- GraphNr: int ComponentNr: int * LowpointNr: int SeparationVertex: bool IsCyclic: bool -- #GraphNodeInfo() #~GraphNodeInfo() com.umlet.element.base.Class2120750180100GraphNode -- -- #GraphNode() /+~GraphNode()/ #OutputGraphInfo() const #OutputComponentNumber() const com.umlet.element.base.Relation21203701070400lt=<<-1050;30;1050;100;310;100;310;300;30;300;30;380com.umlet.element.base.Relation212061050160lt=<<-30;30;30;140com.umlet.element.base.Class1840960840350Atom -- sort: int* -- #atom() #atom(class atom *pointer) /+~atom()/ #OutputIndexed(ofstream * const out, const int ElementNo, const int AtomNo, const char *comment = NULL) const: bool #OutputArrayIndexed(ofstream * const out, const int *ElementNo, int *AtomNo, const char *comment = NULL) const: bool #OutputXYZLine(ofstream *out) const: bool #OutputTrajectory(ofstream * const out, const int *ElementNo, int *AtomNo, const int step) const: bool #OutputTrajectoryXYZ(ofstream * const out, const int step) const: bool #OutputMPQCLine(ofstream * const out, const Vector *center, int *AtomNo) const #InitComponentNr() #EqualsFather ( const atom *ptr, const atom **res ) const #CorrectFather() #GetTrueFather(): atom * #Compare(const atom &ptr) const: bool #DistanceToVector(const Vector &origin) const: double #DistanceSquaredToVector(const Vector &origin) const: double #IsInParallelepiped(const Vector offset, const double *parallelepiped) const: boolcom.umlet.element.base.Relation1970610120370lt=<<<<-30;30;30;260;100;260;100;350com.umlet.element.base.Class3180950720300TrajectoryParticle -- -- #TrajectoryParticle() /+~TrajectoryParticle()/ #AddKineticToTemperature(double *temperature, int step) const #EvaluateConstrainedForce(int startstep, int endstep, atom **PermutationMap, ForceMatrix *Force) const #CorrectVelocity(double *ActualTemp, int Step, Vector *CoGVelocity) #ResizeTrajectory(int MaxSteps) #CopyStepOnStep(int dest, int src) #VelocityVerletUpdate(int MDSteps, config *configuration, ForceMatrix *Force) #SumUpKineticEnergy( int Step, double *TotalMass, Vector *TotalVelocity ) const #Thermostat_Woodcock(double ScaleTempFactor, int Step, double *ekin) #Thermostat_Gaussian_init(int Step, double *G, double *E) #Thermostat_Gaussian_least_constraint(int Step, double G_over_E, double *ekin, config *configuration) #Thermostat_Langevin(int Step, gsl_rng * r, double *ekin, config *configuration) #Thermostat_Berendsen(int Step, double ScaleTempFactor, double *ekin, config *configuration) #Thermostat_NoseHoover_init(int Step, double *delta_alpha) #Thermostat_NoseHoover_scale(int Step, double *ekin, config *configuration)com.umlet.element.base.Relation3070370300600lt=<<-30;30;30;160;280;160;280;580com.umlet.element.base.Relation2810370560600lt=<<-30;30;30;160;540;160;540;580com.umlet.element.base.Class2310700290100TrajectoryParticleInfo -- Trajectory: struct {vector<Vector> R,U,V} FixedIon: int -- #TrajectoryParticleInfo() #~TrajectoryParticleInfo()com.umlet.element.base.Relation2510770860200lt=<<-30;30;30;150;840;150;840;180com.umlet.element.base.Relation247077050210lt=<<-30;30;30;190com.umlet.element.base.Relation2170820350160lt=<<-30;30;30;80;330;80;330;140com.umlet.element.base.Class2480520210160TesselPoint -- -id: Long _-ClassAttribute: Long_ -- #Operation(i: int): int /+AbstractOperation()/ -- Responsibilities -- Resp1 *-- Resp2*com.umlet.element.base.Relation2470650210330lt=<<-190;30;190;250;30;250;30;310com.umlet.element.base.Relation2470840570140lt=<<-550;30;550;60;30;60;30;120com.umlet.element.base.Relation2470370570610lt=<<-550;30;550;240;280;240;280;530;30;530;30;590com.umlet.element.base.Relation2470370300610lt=<<-280;30;280;530;30;530;30;590com.umlet.element.base.Class11901100510320Bond -- HydrogenBond: int BondDegree: int nr: int Cyclic: bool Type: enum EdgeType Used: enum Shading -- #GetOtherAtom(const ParticleInfo * const Atom) const: atom * #MarkUsed(const enum Shading color): bool #IsUsed(): enum Shading #ResetUsed() #Contains(const ParticleInfo * const ptr): bool #Contains(const int nr): bool #GetDistance() const: double #GetDistanceSquared() const: double #bond() #bond(atom *left, atom *right, const int degree=1, const int number=0) #~bond()com.umlet.element.base.Relation2620890154180lt=<<<<- 360;160;130;160;130;50;30;50;30;70com.umlet.element.base.Relation1670116019070lt=<<<<- 230;50;170;50com.umlet.element.base.Relation1100940160240lt=<<<<- 290;220;40;220;40;50;140;50;140;160com.umlet.element.base.Class15901780720240BondGraph -- max_distance: double IsAngstroem: bool -- #BondGraph(bool IsA); #~BondGraph(); #LoadBondLengthTable(const string &filename): bool #ConstructBondGraph(molecule * const mol): bool #GetBondLength(int firstelement, int secondelement): double #SetMaxDistanceToMaxOfCovalentRadii(const molecule * const mol): double #BondLengthMatrixMinMaxDistance(BondedParticle * const Walker, BondedParticle * const OtherWalker, double &MinDistance, double &MaxDistance, bool IsAngstroem) #CovalentMinMaxDistance(BondedParticle * const Walker, BondedParticle * const OtherWalker, double &MinDistance, double &MaxDistance, bool IsAngstroem)com.umlet.element.base.Relation2280189024050lt=<<<<-30;30;220;30com.umlet.element.base.Class25001830210190MatrixContainer -- -id: Long _-ClassAttribute: Long_ -- #Operation(i: int): int /+AbstractOperation()/ -- Responsibilities -- Resp1 *-- Resp2*com.umlet.element.base.Class06507301500config -- PsiType: int MaxPsiDouble: int PsiMaxNoUp: int PsiMaxNoDown: int MaxMinStopStep: int InitMaxMinStopStep: int ProcPEGamma: int ProcPEPsi: int configpath: char * configname: char * FastParsing: bool Deltat: double basis: string databasepath: char * DoConstrainedMD: int MaxOuterStep: int Thermostat: int ThermostatImplemented: int * ThermostatNames: char ** TempFrequency: double alpha: double HooverMass: double TargetTemp: double ScaleTempStep: int mainname: char * defaultpath: char * pseudopotpath: char * DoOutVis: int DoOutMes: int DoOutNICS: int DoOutOrbitals: int DoOutCurrent: int DoFullCurrent: int DoPerturbation: int DoWannier: int CommonWannier: int SawtoothStart: double VectorPlane: int VectorCut: double UseAddGramSch: int Seed: int OutVisStep: int OutSrcStep: int MaxPsiStep: int EpsWannier: double MaxMinStep: int RelEpsTotalEnergy: double RelEpsKineticEnergy: double MaxMinGapStopStep: int MaxInitMinStep: int InitRelEpsTotalEnergy: double InitRelEpsKineticEnergy: double InitMaxMinGapStopStep: int ECut: double MaxLevel: int RiemannTensor: int LevRFactor: int RiemannLevel: int Lev0Factor: int RTActualUse: int AddPsis: int RCut: double StructOpt: int IsAngstroem: int RelativeCoord: int MaxTypes: int -- #config(); #~config(); #TestSyntax(const char * const filename, const periodentafel * const periode) const: int #Load(const char * const filename, const string &BondGraphFileName, const periodentafel * const periode, MoleculeListClass * const &MolList); #LoadOld(const char * const filename, const string &BondGraphFileName, const periodentafel * const periode, MoleculeListClass * const &MolList); #RetrieveConfigPathAndName(const string filename); #Save(const char * const filename, const periodentafel * const periode, molecule * const mol) const: bool #SaveMPQC(const char * const filename, const molecule * const mol) const: bool #SavePDB(const char * const filename, const MoleculeListClass * const MolList) const: bool #SavePDB(const char * const filename, const molecule * const mol) const: bool #SaveTREMOLO(const char * const filename, const molecule * const mol) const: bool #SaveTREMOLO(const char * const filename, const MoleculeListClass * const MolList) const: bool #Edit(); #GetIsAngstroem() const: bool #GetDefaultPath() const: char * #SetDefaultPath(const char * const path); #InitThermostats(); #ParseThermostats(class ConfigFileBuffer * const fb);com.umlet.element.base.Relation700192091050lt=<<<<-30;30;890;30com.umlet.element.base.Relation22800176200lt=<<<<- 2100;180;150;180;150;50;30;50;30;90com.umlet.element.base.Class36001280320200<<Singleton>> errorLogger -- static ostream *nix; static int verbosity; static errorLogger* instance; -- #static getInstance(): errorLogger* #static purgeInstance() #static DoOutput(): bool #static setVerbosity(int verbosityLevel); #protected errorLogger() #protected ~errorLogger()com.umlet.element.base.Class2990140052050KeyCompare -- -- #operator() (const KeySet SubgraphA, const KeySet SubgraphB) const: bool com.umlet.element.base.Class16701620210150UniqueFragments -- ANOVAOrder: int FragmentCounter: int CurrentIndex: int TEFactor: double ShortestPathList: int * UsedList: bool ** BondsPerSPCount: int *com.umlet.element.base.Relation700167099050lt=<<<<-970;30;30;30com.umlet.element.base.Relation16001280360440lt=<<<<-70;420;30;420;30;320;340;320;340;30com.umlet.element.base.Class1200149035040Graph {map <KeySet, NumberValuePair, KeyCompare>} com.umlet.element.base.Relation12301500460220lt=<<<<-440;200;30;200;30;30com.umlet.element.base.Class135015808040KeySet {set<int>}com.umlet.element.base.Relation13501590340130lt=<<<<-320;110;30;110;30;30com.umlet.element.base.Relation15501390140330lt=<<<<- 0...N X 0...N120;310;80;310;80;160;30;160;30;30com.umlet.element.base.Class2480314021060LSQ_params -- vectors: const Vector ** num: int com.umlet.element.base.Class149026021050lsq_params -- x: gsl_vector *com.umlet.element.base.Relation167026017050lt=<<<<-30;30;150;30