# Data Structrue of COSMOSS Here I document the data structure within COSMOSS. Before getting into the map, I want to explain the box diagram (Class diagram) used to depict the data structure map. <!-- ![](https://i.imgur.com/z4KEhQg.png) --> ```mermaid classDiagram class Example_Class{ Property A Property B Property C Property ... ChildA() ChildB() ChildC() Child...() } ``` For example, the above "Example_Class" is defined with certain properties listed in the middle box. The children indicated in the bottom box inherent the same properties of such class. A specific example in COSMOSS is the "Data_2DIR" and "Data_2DSFG": <!-- ![](https://i.imgur.com/MFuFVwj.png) --> ```mermaid classDiagram class Data_2D{ SpectraGrid Response CVL SpecType Data_2DIR() Data_2DSFG() } ``` Since both of them share the same properties, (i.e. SpectraGrid, Response, CVL, and SpecType) They can be defined using the "Data_2D" class. A property within a class can also be a class. In this case, the sub-class will be further defined in another box that connected by an arrow. ## The map of data structure in COSMOSS **version 2.3.0** <!-- ![](https://i.imgur.com/y4hqnN4.png) --> ```mermaid classDiagram Data_COSMOSS <|-- Data_Models Data_COSMOSS <|-- Data_2D Data_COSMOSS <|-- Data_1D Data_Models <|-- Structure Data_2D <|-- FeynmanPath Data_2D <|-- Response Data_2D <|-- CVL Data_1D <|-- H Response <|-- H Response <|-- FeynmanPath Data_1D <|-- TransitionMoment Response <|-- TransitionMoment class Data_COSMOSS{ Structure Data_FTIR Data_SFG Data_2DIR Data_2DSFG hCOSMOSS hModel } class Data_Models{ Parent Structure CombOrder GUI_Inputs app Data_TCO() Data_PDB_AmideI() Data_2DGrid() Data_BSheet() Data_Comb2() } class Structure{ +XYZ +AtomName +LocCenter +LocMu +LocAlpha +GUI_Inputs +hPlotFunc +FilesName +Children +Extra +LocFreq +LocAnharm +Beta #Nmodes #NAtoms #NStucture #LocAlphaM #CoM #OneExH #TwoExH -Scaled_LocMu -Scaled_LocAlpha } class Data_1D{ FilesName SpecType Response1D freq_OneD Mu H Res_Int Alpha MolFrame R_Avg LabFrame Jones JLabFrame E EJLabFrame Data_FTIR() Data_SFG() } class Data_2D{ SpectraGrid Response CVL SpecType Data_2DIR() Data_2DSFG() } class FeynmanPath{ R1 R2 R3 NR1 NR2 NR3 SpectraGrid() IntGrid() Beta() } class Response{ H Mu Alpha PCutOff EJLR SpecType Gamma IntGrid SparseMax } class CVL{ R NR sum R_No_Conv NR_No_Conv sum_No_Conv selected selected_No_Conv Lineshape FreqRange FilesName } class H{ Sort_Ex_F1 Sort_Ex_V1 Sort_Ex_F2 Sort_Ex_V2 TEDIndexBegin TEDIndexEnd } class TransitionMoment{ M_Lo_01 M_Ex_01 M_Lo_12 M_Ex_12 M_Ex_01_N M_Ex_12_N M_Ex_01_D M_Ex_01_V M_Ex_12_D M_Ex_12_V Mu() Alpha() } ``` ### Detail explanation of each class and their properties can be found here: - [StructureData Class](/_pCi32hpSFm-r1Or4bxVnA) - Others class explanation will coming up soon... ## Todos: - Organize Data_1D class - Add method to FeynmanPath class to select 'Rephasing', 'non-Rephasing', and 'All path' - Write details about each class - Turn them in to real class ###### tags: `COSMOSS` `code`