Package specific_fns :: Module base_class
[hide private]
[frames] | no frames]

Source Code for Module specific_fns.base_class

 1  ############################################################################### 
 2  #                                                                             # 
 3  # Copyright (C) 2004 Edward d'Auvergne                                        # 
 4  #                                                                             # 
 5  # This file is part of the program relax.                                     # 
 6  #                                                                             # 
 7  # relax is free software; you can redistribute it and/or modify               # 
 8  # it under the terms of the GNU General Public License as published by        # 
 9  # the Free Software Foundation; either version 2 of the License, or           # 
10  # (at your option) any later version.                                         # 
11  #                                                                             # 
12  # relax is distributed in the hope that it will be useful,                    # 
13  # but WITHOUT ANY WARRANTY; without even the implied warranty of              # 
14  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               # 
15  # GNU General Public License for more details.                                # 
16  #                                                                             # 
17  # You should have received a copy of the GNU General Public License           # 
18  # along with relax; if not, write to the Free Software                        # 
19  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   # 
20  #                                                                             # 
21  ############################################################################### 
22   
23   
24 -class Common_functions:
25 - def __init__(self):
26 """Base class containing functions common to the specific functions."""
27 28
29 - def initialise_data(self, data, run, sim=0, err=0):
30 """Function for the initialisation of data structures. 31 32 Only data structures which do not exist are created. 33 """ 34 35 # Get the data names. 36 data_names = self.data_names() 37 38 # Standard data structures. 39 if not sim and not err: 40 for name in data_names: 41 # If the name is not in 'data', add it. 42 if not hasattr(data, name): 43 setattr(data, name, self.data_init(name)) 44 45 # Simulation data structures. 46 if sim: 47 for name in data_names: 48 # Add '_sim' to the names. 49 name = name + '_sim' 50 51 # If the name is not in 'data', add it. 52 if not hasattr(data, name): 53 setattr(data, name, self.data_init(name)) 54 55 # Error data structures. 56 if err: 57 for name in data_names: 58 # Add '_sim' to the names. 59 name = name + '_sim' 60 61 # If the name is not in 'data', add it. 62 if not hasattr(data, name): 63 setattr(data, name, self.data_init(name))
64 65
66 - def return_data(self, run, i):
67 """Function for returning the Ri data structure.""" 68 69 return self.relax.data.res[run][i].relax_data
70 71
72 - def return_error(self, run, i):
73 """Function for returning the Ri error structure.""" 74 75 return self.relax.data.res[run][i].relax_error
76 77
78 - def sim_pack_data(self, run, i, sim_data):
79 """Function for packing Monte Carlo simulation data.""" 80 81 # Test if the simulation data already exists. 82 if hasattr(self.relax.data.res[run][i], 'relax_sim_data'): 83 raise RelaxError, "Monte Carlo simulation data already exists." 84 85 # Create the data structure. 86 self.relax.data.res[run][i].relax_sim_data = sim_data
87