Changeset 24213
- Timestamp:
- 10/11/19 00:25:20 (5 years ago)
- Location:
- issm/trunk-jpl/src/m
- Files:
-
- 280 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/archive/arch.py
r23716 r24213 4 4 from collections import OrderedDict 5 5 6 def archwrite(filename,*args): # {{{ 7 """ 8 ARCHWRITE - Write data to a field, given the file name, field name, and data. 9 10 Usage: 11 archwrite('archive101.arch','variable_name',data); 12 """ 13 nargs=len(args); 14 if nargs % 2 != 0 : 15 raise ValueError('Incorrect number of arguments.') 16 # open file 17 try: 18 if not path.isfile(filename): 19 fid=open(filename,'wb') 20 else: 21 fid=open(filename,'ab') 22 except IOError as e: 23 raise IOError("archwrite error: could not open '%s' to write to." % filename) 24 25 nfields=len(args)/2 26 # generate data to write 27 for i in range(nfields): 28 # write field name 29 name=args[2*i] 30 write_field_name(fid,name) 31 32 # write data associated with field name 33 data=args[2*i+1] 34 code=format_archive_code(data) 35 if code==1: 36 raise ValueError("archwrite : error writing data, string should not be written as field data") 37 elif code==2: 38 write_scalar(fid,data) 39 elif code==3: 40 write_vector(fid,data) 41 else: 42 raise ValueError("archwrite : error writing data, invalid code entered '%d'" % code) 43 44 fid.close() 45 46 # }}} 47 def archread(filename,fieldname): # {{{ 48 """ 49 ARCHREAD - Given an arch file name, and a field name, find and return the data 50 associated with that field name. 51 Usage: 52 archread('archive101.arch','field_var_1') 53 """ 54 try: 55 if path.isfile(filename): 56 fid=open(filename,'rb') 57 else: 58 raise IOError("archread error : file '%s' does not exist" % filename) 59 except IOError as e: 60 raise IOError("archread error : could not open file '%s' to read from" % filename) 61 62 archive_results=[] 63 64 # read first result 65 result=read_field(fid) 66 67 while result: 68 if fieldname == result['field_name']: 69 # found the data we wanted 70 archive_results=result['data']; # we only want the data 71 break 72 73 # read next result 74 result=read_field(fid) 75 76 # close file 77 fid.close() 78 79 return archive_results 80 # }}} 81 def archdisp(filename): # {{{ 82 """ 83 ARCHDISP - Given an arch filename, display the contents of that file 84 85 Usage: 86 archdisp('archive101.arch') 87 """ 88 try: 89 if path.isfile(filename): 90 fid=open(filename,'rb') 91 else: 92 raise IOError("archread error : file '%s' does not exist" % filename) 93 except IOError as e: 94 raise IOError("archread error : could not open file '%s' to read from" % filename) 95 96 print('Source file: ') 97 print(('\t{0}'.format(filename))) 98 print('Variables: ') 99 100 result=read_field(fid) 101 while result: 102 print(('\t{0}'.format(result['field_name']))) 103 print(('\t\tSize:\t\t{0}'.format(result['size']))) 104 print(('\t\tDatatype:\t{0}'.format(result['data_type']))) 105 # go to next result 106 result=read_field(fid) 107 108 # close file 109 fid.close() 110 111 # }}} 112 113 # Helper functions 114 def write_field_name(fid,data): # {{{ 115 """ 116 Routine to write field name (variable name) to an archive file. 117 """ 118 # write the length of the record 119 # length to write + string size (len) + format code 120 reclen=len(data)+4+4 121 fid.write(struct.pack('>i',reclen)) 122 123 # write format code 124 code=format_archive_code(data); 125 if code != 1: 126 raise TypeError("archwrite : error writing field name, expected string, but got %s" % type(data)) 127 fid.write(struct.pack('>i',1)) 128 129 # write string length, and then the string 130 fid.write(struct.pack('>i',len(data))) 131 fid.write(struct.pack('>{}s'.format(len(data)),data.encode('utf8'))) 132 # }}} 133 def write_scalar(fid,data): # {{{ 134 """ 135 Procedure to write a double to an arch file pointed to by fid 136 """ 137 # write length of record 138 # double (8 bytes) + format code (4 bytes) 139 reclen=8+4 140 fid.write(struct.pack('>i',reclen)) 141 142 # write the format code (2 for scalar) 143 fid.write(struct.pack('>i',2)) 144 145 # write the double 146 fid.write(struct.pack('>d',data)) 147 148 # }}} 149 def write_vector(fid,data): # {{{ 150 """ 151 Procedure to write a np.array to an arch file 152 """ 153 # Make sure our vector is the correct shape. 154 # Reshape it into a row vector if it is not correct. 155 if isinstance(data,(bool,int,float)): 156 data=np.array([data]) 157 elif isinstance(data,(list,tuple)): 158 data=np.array(data).reshape(-1,) 159 160 if np.ndim(data) == 1: 161 if np.size(data): 162 data=data.reshape(np.size(data),) 163 else: 164 data=data.reshape(0,0) 165 166 # get size of data 167 sz=data.shape 168 169 # write length of record 170 # format code + row size + col size + (double size * row amt * col amt) 171 reclen=4+4+4+8*sz[0]*sz[1] 172 # make sure we can fit data into file 173 if reclen>2**31: 174 raise ValueError("archwrite error : can not write vector to binary file because it is too large") 175 fid.write(struct.pack('>i',reclen)) 176 177 # write format code 178 fid.write(struct.pack('>i',3)) 179 180 # write vector 181 fid.write(struct.pack('>i',sz[0])) 182 fid.write(struct.pack('>i',sz[1])) 183 for i in range(sz[0]): 184 for j in range(sz[1]): 185 fid.write(struct.pack('>d',float(data[i][j]))) 186 187 # }}} 188 189 def read_field(fid): # {{{ 190 """ 191 Procedure to read a field and return a results list with the following attributes: 192 result['field_name'] -> the name of the variable that was just read 193 result['size'] -> size (dimensions) of the variable just read 194 result['data_type'] -> the type of data that was just read 195 result['data'] -> the actual data 196 """ 197 198 try: 199 # first, read the string 200 reclen=struct.unpack('>i',fid.read(struct.calcsize('>i')))[0] 201 check_name=struct.unpack('>i',fid.read(struct.calcsize('>i')))[0] 202 if check_name != 1: 203 raise ValueError('archread error : a string was not present at the start of the arch file') 204 namelen=struct.unpack('>i',fid.read(struct.calcsize('>i')))[0] 205 fieldname=struct.unpack('>{}s'.format(namelen),fid.read(namelen))[0] 206 207 # then, read the data 208 datalen=struct.unpack('>i',fid.read(struct.calcsize('>i')))[0] 209 data_type=struct.unpack('>i',fid.read(struct.calcsize('>i')))[0] 210 211 if data_type==2: 212 # struct.upack scalar 213 data=struct.unpack('>d',fid.read(struct.calcsize('>d')))[0] 214 elif data_type==3: 215 rows=struct.unpack('>i',fid.read(struct.calcsize('>i')))[0] 216 cols=struct.unpack('>i',fid.read(struct.calcsize('>i')))[0] 217 raw_data=np.zeros(shape=(rows,cols),dtype=float) 218 for i in range(rows): 219 raw_data[i,:]=struct.unpack('>{}d'.format(cols),fid.read(cols*struct.calcsize('>d'))) 220 # The matrix will be struct.upacked in order and will be filled left -> right by column 221 # We need to reshape and transpose the matrix so it can be read correctly 222 data=raw_data.reshape(raw_data.shape[::-1]).T 223 else: 224 raise TypeError("Cannot read data type %d" % data_type) 225 226 # give additional data to user 227 if data_type==2: 228 data_size='1x1' 229 data_type_str='double' 230 elif data_type==3: 231 data_size='{0}x{1}'.format(rows,cols) 232 data_type_str='vector/matrix' 233 234 result=OrderedDict() 235 result['field_name']=fieldname.decode('utf8') 236 result['size']=data_size 237 result['data_type']=data_type_str 238 result['data']=data 239 240 except struct.error as e: 241 result=None 242 243 return result 244 # }}} 245 246 def format_archive_code(format): # {{{ 247 """ 248 Given a variable, determine it's type and return 249 an integer value: 250 251 1 : string 252 2 : double (scalar) 253 3 : vector or matrix (of type double) 254 255 """ 256 if isinstance(format,str): 257 code=1 258 elif format.shape[0] == 1 and format.shape[1] == 1: 259 code=2 260 elif isinstance(format,(list,tuple,np.ndarray)): 261 code=3 262 else: 263 raise TypeError("archwrite error: data type '%s' is not valid." % type(format)) 264 return code 265 # }}} 6 7 def archwrite(filename, *args): # {{{ 8 """ 9 ARCHWRITE - Write data to a field, given the file name, field name, and data. 10 11 Usage: 12 archwrite('archive101.arch', 'variable_name', data) 13 """ 14 nargs = len(args) 15 if nargs % 2 != 0: 16 raise ValueError('Incorrect number of arguments.') 17 # open file 18 try: 19 if not path.isfile(filename): 20 fid = open(filename, 'wb') 21 else: 22 fid = open(filename, 'ab') 23 except IOError as e: 24 raise IOError("archwrite error: could not open '{}' to write to due to:".format(filename), e) 25 26 nfields = len(args) / 2 27 # generate data to write 28 for i in range(nfields): 29 # write field name 30 name = args[2 * i] 31 write_field_name(fid, name) 32 33 # write data associated with field name 34 data = args[2 * i + 1] 35 code = format_archive_code(data) 36 if code == 1: 37 raise ValueError("archwrite : error writing data, string should not be written as field data") 38 elif code == 2: 39 write_scalar(fid, data) 40 elif code == 3: 41 write_vector(fid, data) 42 else: 43 raise ValueError("archwrite : error writing data, invalid code entered '{}'".format(code)) 44 45 fid.close() 46 47 # }}} 48 49 50 def archread(filename, fieldname): # {{{ 51 """ 52 ARCHREAD - Given an arch file name, and a field name, find and return the data 53 associated with that field name. 54 Usage: 55 archread('archive101.arch', 'field_var_1') 56 """ 57 try: 58 if path.isfile(filename): 59 fid = open(filename, 'rb') 60 else: 61 raise IOError("archread error : file '{}' does not exist".format(filename)) 62 except IOError as e: 63 raise IOError("archread error : could not open file '{}' to read from due to :".format(filename), e) 64 65 archive_results = [] 66 67 # read first result 68 result = read_field(fid) 69 70 while result: 71 if fieldname == result['field_name']: 72 # found the data we wanted 73 archive_results = result['data'] # we only want the data 74 break 75 76 # read next result 77 result = read_field(fid) 78 79 # close file 80 fid.close() 81 82 return archive_results 83 # }}} 84 85 86 def archdisp(filename): # {{{ 87 """ 88 ARCHDISP - Given an arch filename, display the contents of that file 89 90 Usage: 91 archdisp('archive101.arch') 92 """ 93 try: 94 if path.isfile(filename): 95 fid = open(filename, 'rb') 96 else: 97 raise IOError("archread error : file '{}' does not exist".format(filename)) 98 except IOError as e: 99 raise IOError("archread error : could not open file '{}' to read from due to ".format(filename), e) 100 101 print('Source file: ') 102 print(('\t{0}'.format(filename))) 103 print('Variables: ') 104 105 result = read_field(fid) 106 while result: 107 print(('\t{0}'.format(result['field_name']))) 108 print(('\t\tSize:\t\t{0}'.format(result['size']))) 109 print(('\t\tDatatype:\t{0}'.format(result['data_type']))) 110 # go to next result 111 result = read_field(fid) 112 113 # close file 114 fid.close() 115 116 # }}} 117 118 # Helper functions 119 120 121 def write_field_name(fid, data): # {{{ 122 """ 123 Routine to write field name (variable name) to an archive file. 124 """ 125 # write the length of the record 126 # length to write + string size (len) + format code 127 reclen = len(data) + 4 + 4 128 fid.write(struct.pack('>i', reclen)) 129 130 # write format code 131 code = format_archive_code(data) 132 if code != 1: 133 raise TypeError("archwrite : error writing field name, expected string, but got %s" % type(data)) 134 fid.write(struct.pack('>i', 1)) 135 136 # write string length, and then the string 137 fid.write(struct.pack('>i', len(data))) 138 fid.write(struct.pack('>{}s'.format(len(data)), data.encode('utf8'))) 139 # }}} 140 141 142 def write_scalar(fid, data): # {{{ 143 """ 144 Procedure to write a double to an arch file pointed to by fid 145 """ 146 # write length of record 147 # double (8 bytes) + format code (4 bytes) 148 reclen = 8 + 4 149 fid.write(struct.pack('>i', reclen)) 150 151 # write the format code (2 for scalar) 152 fid.write(struct.pack('>i', 2)) 153 154 # write the double 155 fid.write(struct.pack('>d', data)) 156 157 # }}} 158 159 160 def write_vector(fid, data): # {{{ 161 """ 162 Procedure to write a np.array to an arch file 163 """ 164 # Make sure our vector is the correct shape. 165 # Reshape it into a row vector if it is not correct. 166 if isinstance(data, (bool, int, float)): 167 data = np.array([data]) 168 elif isinstance(data, (list, tuple)): 169 data = np.array(data).reshape(- 1, ) 170 171 if np.ndim(data) == 1: 172 if np.size(data): 173 data = data.reshape(np.size(data), ) 174 else: 175 data = data.reshape(0, 0) 176 177 # get size of data 178 sz = data.shape 179 180 # write length of record 181 # format code + row size + col size + (double size * row amt * col amt) 182 reclen = 4 + 4 + 4 + 8 * sz[0] * sz[1] 183 # make sure we can fit data into file 184 if reclen > 2**31: 185 raise ValueError("archwrite error : can not write vector to binary file because it is too large") 186 fid.write(struct.pack('>i', reclen)) 187 188 # write format code 189 fid.write(struct.pack('>i', 3)) 190 191 # write vector 192 fid.write(struct.pack('>i', sz[0])) 193 fid.write(struct.pack('>i', sz[1])) 194 for i in range(sz[0]): 195 for j in range(sz[1]): 196 fid.write(struct.pack('>d', float(data[i][j]))) 197 198 # }}} 199 200 201 def read_field(fid): # {{{ 202 """ 203 Procedure to read a field and return a results list with the following attributes: 204 result['field_name'] - > the name of the variable that was just read 205 result['size'] - > size (dimensions) of the variable just read 206 result['data_type'] - > the type of data that was just read 207 result['data'] - > the actual data 208 """ 209 210 try: 211 # first, read the string 212 #first read the size and continue reading 213 struct.unpack('>i', fid.read(struct.calcsize('>i')))[0] #name length 214 check_name = struct.unpack('>i', fid.read(struct.calcsize('>i')))[0] 215 if check_name != 1: 216 raise ValueError('archread error : a string was not present at the start of the arch file') 217 namelen = struct.unpack('>i', fid.read(struct.calcsize('>i')))[0] 218 fieldname = struct.unpack('>{}s'.format(namelen), fid.read(namelen))[0] 219 # then, read the data 220 #first read the size and continue reading 221 struct.unpack('>i', fid.read(struct.calcsize('>i')))[0] #data length 222 data_type = struct.unpack('>i', fid.read(struct.calcsize('>i')))[0] 223 224 if data_type == 2: 225 # struct.upack scalar 226 data = struct.unpack('>d', fid.read(struct.calcsize('>d')))[0] 227 elif data_type == 3: 228 rows = struct.unpack('>i', fid.read(struct.calcsize('>i')))[0] 229 cols = struct.unpack('>i', fid.read(struct.calcsize('>i')))[0] 230 raw_data = np.zeros(shape=(rows, cols), dtype=float) 231 for i in range(rows): 232 raw_data[i, :] = struct.unpack('>{}d'.format(cols), fid.read(cols * struct.calcsize('>d'))) 233 # The matrix will be struct.upacked in order and will be filled left - > right by column 234 # We need to reshape and transpose the matrix so it can be read correctly 235 data = raw_data.reshape(raw_data.shape[::-1]).T 236 else: 237 raise TypeError("Cannot read data type {}".format(data_type)) 238 239 # give additional data to user 240 if data_type == 2: 241 data_size = '1x1' 242 data_type_str = 'double' 243 elif data_type == 3: 244 data_size = '{0}x{1}'.format(rows, cols) 245 data_type_str = 'vector/matrix' 246 247 result = OrderedDict() 248 result['field_name'] = fieldname.decode('utf8') 249 result['size'] = data_size 250 result['data_type'] = data_type_str 251 result['data'] = data 252 253 except struct.error as e: 254 result = None 255 print("result is empty due to", e) 256 257 return result 258 # }}} 259 260 261 def format_archive_code(format): # {{{ 262 """ 263 Given a variable, determine it's type and return 264 an integer value: 265 266 1 : string 267 2 : double (scalar) 268 3 : vector or matrix (of type double) 269 270 """ 271 if isinstance(format, str): 272 code = 1 273 elif format.shape[0] == 1 and format.shape[1] == 1: 274 code = 2 275 elif isinstance(format, (list, tuple, np.ndarray)): 276 code = 3 277 else: 278 raise TypeError("archwrite error: data type '%s' is not valid." % type(format)) 279 return code 280 # }}} -
issm/trunk-jpl/src/m/array/MatlabArray.py
r23716 r24213 2 2 import numpy as np 3 3 from MatlabFuncs import * 4 5 4 #move this later 6 5 from helpers import * 7 6 from functools import reduce 8 7 8 9 9 def allempty(cin): 10 ''' 11 function to return an empty cell array if all array elements are empty 12 cout=allempty(cin) 13 ''' 14 for i in cin: 15 if not isempty(i): 16 cout = cin 17 return cout 18 return [] 19 20 def allequal(ain,aval): 21 ''' 22 function to return an empty array if all array elements are 23 equal to the given value, which may also be empty but not nan. 24 25 (note that by definition, nan is not equal to nan; this could 26 be changed by using isequalwithequalnans.) 27 28 aout=allequal(ain,aval) 29 ''' 30 if type(ain) != type(aval): 31 print((allequal.__doc__)) 32 raise RuntimeError("ain and aval must be of the same type") 33 34 if type(ain) == list: 35 ain = np.array(ain) 36 if type(ain) == np.ndarray: 37 ain = ain.flatten() 38 39 for i in ain: 40 if i != aval: 41 if type(ain) == str: 42 return '' 43 else: 44 return [] 45 return ain 10 ''' 11 function to return an empty cell array if all array elements are empty 12 cout = allempty(cin) 13 ''' 14 for i in cin: 15 if not isempty(i): 16 cout = cin 17 return cout 18 return [] 19 20 21 def allequal(ain, aval): 22 ''' 23 function to return an empty array if all array elements are 24 equal to the given value, which may also be empty but not nan. 25 26 (note that by definition, nan is not equal to nan; this could 27 be changed by using isequalwithequalnans.) 28 29 aout = allequal(ain, aval) 30 ''' 31 if type(ain) != type(aval): 32 print((allequal.__doc__)) 33 raise RuntimeError("ain and aval must be of the same type") 34 35 if type(ain) == list: 36 ain = np.array(ain) 37 if type(ain) == np.ndarray: 38 ain = ain.flatten() 39 40 for i in ain: 41 if i != aval: 42 if type(ain) == str: 43 return '' 44 else: 45 return [] 46 return ain 47 46 48 47 49 def array_numel(*args): 48 ''' 49 function to find a number of elements from a list of arrays. 50 51 asize=array_numel(varargin) 52 53 see array_size to check the number and shape of elements, if 54 multiple indices will be used. 55 ''' 56 anum = 0 57 inum = 0 58 for arg in args: 59 if type(arg) == str: 60 inum = len(arg) 61 else: 62 inum = np.size(arg) 63 64 if inum != 0: 65 if anum == 0: 66 anum = inum 67 else: 68 if inum != anum: 69 raise RuntimeError('Inputs had inconsistent number of elements') 70 return anum 50 ''' 51 function to find a number of elements from a list of arrays. 52 53 asize = array_numel(varargin) 54 55 see array_size to check the number and shape of elements, if 56 multiple indices will be used. 57 ''' 58 anum = 0 59 inum = 0 60 for arg in args: 61 if type(arg) == str: 62 inum = len(arg) 63 else: 64 inum = np.size(arg) 65 66 if inum != 0: 67 if anum == 0: 68 anum = inum 69 else: 70 if inum != anum: 71 raise RuntimeError('Inputs had inconsistent number of elements') 72 return anum 73 71 74 72 75 def array_size(*args): 73 ''' 74 function to find an array size from a list of arrays. 75 76 asize=array_size(varargin) 77 78 see array_numel to check only the number of elements, if 79 single indices will be used. 80 all arguments are assumed to be 1 or 2 dimensional 81 82 Note: to call on all elements of an array use: array_size(*x) 83 in Matlab this would be array_size(x{1:end}) 84 85 Note: to get all elements in a linear array use: array_size(np.array(x).flatten()[0:]) 86 in Matlab this would be array_size(x{1:end}) 87 because Matlab allows direct 1D access of nD arrays 88 ''' 89 asize = (0,0) 90 isize = (0,0) 91 for arg in args: 92 if type(arg) == str: 93 isize = (1,1) #cellstr in matlab makes this happen 94 else: 95 isize = np.shape(arg) 96 if isize == (): #arg is a single value, ex. 0.3, 5, False, etc 97 isize = (1,1) 98 99 if isize != (0,0): 100 if asize == (0,0): 101 asize = isize 102 else: 103 if isize != asize: 104 raise RuntimeError('Inputs had inconsistent shapes') 105 106 #numpy gives (y,) if x = 1, must be reversed to match matlab syntax in this case 107 if len(asize) == 1: 108 asize = (1,asize[0]) 109 110 return asize 111 112 def str2int(astr,cfl='first',asint=True): 113 ''' 114 function to find and read the first or last positive integer 115 in a character string. cfl={'first','f','last','l'}; default: 'first' 116 returns 0 if astr has no positive integers 117 118 Setting asint=False returns a list of strings 119 eg. ['1','2','3'] from '123' 120 121 aint=str2int(astr,cfl) 122 ''' 123 aint = [] 124 125 num = '1234567890' 126 127 if type(cfl) != str or type(astr) != str or len(cfl) == 0 or len(astr) == 0: 128 raise TypeError('str2int(astr,cfl): both arguments must be strings with length > 0') 129 130 # find last positive int 131 if cfl[0] in ['l','L']: 132 for i in reversed(astr): 133 if i in num: 134 aint.append(i) 135 else: 136 if len(aint) > 0: 137 # aint is backwards since we were iterating backwards 138 aint = list(reversed(aint)) 139 if asint: 140 # convert list(str) to int 141 aint = int(reduce(lambda x,y: x+y,aint)) 142 break 143 144 elif cfl[0] in ['f','F']: 145 for i in astr: 146 if i in num: 147 aint.append(i) 148 else: 149 if len(aint) > 0: 150 if asint: 151 # convert list(str) to int 152 aint = int(reduce(lambda x,y: x+y,aint)) 153 break 154 155 # return 0 if aint is still [] (no integers found) 156 return aint or 0 157 158 def string_dim(a,idim,*args): 159 ''' 160 function to return the string dimension of an array element 161 162 function sdim=string_dim(a,idim,varargin) 163 164 such that: given the array/matrix a, 165 idim is the linear index of an element in a, 166 return the x/y/z/w/... coordinates of idim in n dimensions 167 168 ex. a = [1 2 3 169 4 5 6] 170 171 idim = 4 172 (a[4] == 5; counted as [1,4,2,5,3,6] linearly in matlab) 173 174 x = string_dim(a,4) -> '[1,1]' 175 176 a[x] == a[4] == a[1,1] == 5 177 178 example use: exec('print a'+string_dim(a,4)) -> print a[1,1] 179 ''' 180 sdmin = '' 181 if type(a) == list: 182 a = np.array(a) 183 if type(a) != np.ndarray: 184 raise TypeError('string_dim(a,idim,*args): a must be a numpy array <numpy.ndarray>. Try passing np.array(a) instead') 185 186 if np.size(a) == 0 and idim == 0: 187 return sdim 188 189 if idim >= np.size(a): 190 raise RuntimeError('string_dim(a,idim,*args): index idim exceeds number of elements in a') 191 192 #check for column or row vector 193 for iarg in args: 194 if strcmpi(iarg,'vector'): 195 if a.ndim == 2 and (np.shape(a,1) == 1 or np.shape(a,2) == 1): 196 return '('+str(idim)+')' 197 198 #transpose to compensate for differences in linear indexing in 199 # matlab vs in python (y/x + linear vs x/y) 200 a = a.T 201 202 #general case 203 asize = np.shape(a) 204 i = np.zeros((np.shape(asize))) 205 aprod = np.prod(asize) 206 idim = idim - 1 207 index = np.zeros((len(asize))) 208 209 #calculate indices base 0 210 for i in range(len(asize)): 211 aprod=aprod/asize[i] 212 index[i]=np.floor(idim/aprod) 213 idim=idim-index[i]*aprod 214 215 #assemble string for output 216 sdim ='[' 217 for i in range(len(asize)-1): 218 sdim += str(int(index[i])) + ',' 219 220 sdim += str(int(index[-1])) + ']' 221 222 # happens due to how python does indexing, this response in matlab is just '' 223 if sdim == '[-1]': 224 return '' 225 226 return sdim 76 ''' 77 function to find an array size from a list of arrays. 78 79 asize = array_size(varargin) 80 81 see array_numel to check only the number of elements, if 82 single indices will be used. 83 all arguments are assumed to be 1 or 2 dimensional 84 85 Note: to call on all elements of an array use: array_size(* x) 86 in Matlab this would be array_size(x{1:end}) 87 88 Note: to get all elements in a linear array use: array_size(np.array(x).flatten()[0:]) 89 in Matlab this would be array_size(x{1:end}) 90 because Matlab allows direct 1D access of nD arrays 91 ''' 92 asize = (0, 0) 93 isize = (0, 0) 94 for arg in args: 95 if type(arg) == str: 96 isize = (1, 1) #cellstr in matlab makes this happen 97 else: 98 isize = np.shape(arg) 99 if isize == (): #arg is a single value, ex. 0.3, 5, False, etc 100 isize = (1, 1) 101 102 if isize != (0, 0): 103 if asize == (0, 0): 104 asize = isize 105 else: 106 if isize != asize: 107 raise RuntimeError('Inputs had inconsistent shapes') 108 109 #numpy gives (y, ) if x = 1, must be reversed to match matlab syntax in this case 110 if len(asize) == 1: 111 asize = (1, asize[0]) 112 113 return asize 114 115 116 def str2int(astr, cfl='first', asint=True): 117 ''' 118 function to find and read the first or last positive integer 119 in a character string. cfl={'first', 'f', 'last', 'l'}; default: 'first' 120 returns 0 if astr has no positive integers 121 122 Setting asint = False returns a list of strings 123 eg. ['1', '2', '3'] from '123' 124 125 aint = str2int(astr, cfl) 126 ''' 127 aint = [] 128 129 num = '1234567890' 130 131 if type(cfl) != str or type(astr) != str or len(cfl) == 0 or len(astr) == 0: 132 raise TypeError('str2int(astr, cfl): both arguments must be strings with length > 0') 133 134 # find last positive int 135 if cfl[0] in ['l', 'L']: 136 for i in reversed(astr): 137 if i in num: 138 aint.append(i) 139 else: 140 if len(aint) > 0: 141 # aint is backwards since we were iterating backwards 142 aint = list(reversed(aint)) 143 if asint: 144 # convert list(str) to int 145 aint = int(reduce(lambda x, y: x + y, aint)) 146 break 147 148 elif cfl[0] in ['f', 'F']: 149 for i in astr: 150 if i in num: 151 aint.append(i) 152 else: 153 if len(aint) > 0: 154 if asint: 155 # convert list(str) to int 156 aint = int(reduce(lambda x, y: x + y, aint)) 157 break 158 159 # return 0 if aint is still [] (no integers found) 160 return aint or 0 161 162 163 def string_dim(a, idim, *args): 164 ''' 165 function to return the string dimension of an array element 166 167 function sdim = string_dim(a, idim, varargin) 168 169 such that: given the array / matrix a, 170 idim is the linear index of an element in a, 171 return the x / y / z / w / ... coordinates of idim in n dimensions 172 173 ex. a = [1 2 3 174 4 5 6] 175 176 idim = 4 177 (a[4] == 5; counted as [1, 4, 2, 5, 3, 6] linearly in matlab) 178 179 x = string_dim(a, 4) - > '[1, 1]' 180 181 a[x] == a[4] == a[1, 1] == 5 182 183 example use: exec('print a' + string_dim(a, 4)) - > print a[1, 1] 184 ''' 185 186 if type(a) == list: 187 a = np.array(a) 188 if type(a) != np.ndarray: 189 raise TypeError('string_dim(a, idim, *args): a must be a numpy array < numpy.ndarray > . Try passing np.array(a) instead') 190 191 if np.size(a) == 0 and idim == 0: 192 return sdim 193 194 if idim >= np.size(a): 195 raise RuntimeError('string_dim(a, idim, *args): index idim exceeds number of elements in a') 196 197 #check for column or row vector 198 for iarg in args: 199 if strcmpi(iarg, 'vector'): 200 if a.ndim == 2 and (np.shape(a, 1) == 1 or np.shape(a, 2) == 1): 201 return '(' + str(idim) + ')' 202 203 #transpose to compensate for differences in linear indexing in 204 # matlab vs in python (y / x + linear vs x / y) 205 a = a.T 206 207 #general case 208 asize = np.shape(a) 209 i = np.zeros((np.shape(asize))) 210 aprod = np.prod(asize) 211 idim = idim - 1 212 index = np.zeros((len(asize))) 213 214 #calculate indices base 0 215 for i in range(len(asize)): 216 aprod = aprod / asize[i] 217 index[i] = np.floor(idim / aprod) 218 idim = idim - index[i] * aprod 219 220 #assemble string for output 221 sdim = '[' 222 for i in range(len(asize) - 1): 223 sdim += str(int(index[i])) + ', ' 224 225 sdim += str(int(index[-1])) + ']' 226 227 # happens due to how python does indexing, this response in matlab is just '' 228 if sdim == '[-1]': 229 return '' 230 231 return sdim 232 227 233 228 234 def string_vec(a): 229 ''' 230 function to return the string of a vector 231 232 function svec=string_vec(a) 233 ''' 234 return str(a) 235 236 def struc_class(sclass,cstr,name): 237 ''' 238 function to find the structural fields of a specified class 239 240 sclasso=struc_class(sclass,cstr,variable_name) 241 242 such that: 243 sclasso.variable_name == sclass (hard copy) 244 245 if variable_name == '' 246 sclasso.cstr == sclass (hard copy) 247 ''' 248 try: 249 # I tried other methods, but this is, unfortunately, the best behaving by far 250 exec('from '+cstr+' import *') 251 except: 252 raise RuntimeError('MatlabArray.struc_class Class Error: class "'+cstr+'" does not exist') 253 254 sclasso = struct() 255 256 if isinstance(sclass,eval(cstr)): 257 # if we were given no name, call it by its class name 258 if name != '': 259 setattr(sclasso, name, deepcopy(sclass)) 260 else: 261 setattr(sclasso, cstr, deepcopy(sclass)) 262 else: 263 raise RuntimeError('MatlabArray.struc_class Match Error: provided object of type "'+str(type(sclass))+'" does not match provided string; object should be of type '+cstr) 264 265 #may need this later depending on how src/m/classes/qmu works out 266 267 #if len(vars(sclass)) == 0: 268 #return Lstruct() 269 270 #else: 271 #fnames = fieldnames(sclass) 272 #for f in fnames: 273 #if isinstance(vars(sclass)[f],eval(cstr)): 274 #exec('sclasso.%s = vars(sclass)[f]')%(f) 275 #vars(sclasso)[f] = vars(sclass)[f] 276 277 return sclasso 235 ''' 236 function to return the string of a vector 237 238 function svec = string_vec(a) 239 ''' 240 return str(a) 241 242 243 def struc_class(sclass, cstr, name): 244 ''' 245 function to find the structural fields of a specified class 246 247 sclasso = struc_class(sclass, cstr, variable_name) 248 249 such that: 250 sclasso.variable_name == sclass (hard copy) 251 252 if variable_name == '' 253 sclasso.cstr == sclass (hard copy) 254 ''' 255 try: 256 # I tried other methods, but this is, unfortunately, the best behaving by far 257 exec('from ' + cstr + ' import * ') 258 except: 259 raise RuntimeError('MatlabArray.struc_class Class Error: class "' + cstr + '" does not exist') 260 261 sclasso = struct() 262 263 if isinstance(sclass, eval(cstr)): 264 # if we were given no name, call it by its class name 265 if name != '': 266 setattr(sclasso, name, deepcopy(sclass)) 267 else: 268 setattr(sclasso, cstr, deepcopy(sclass)) 269 else: 270 raise RuntimeError('MatlabArray.struc_class Match Error: provided object of type "' + str(type(sclass)) + '" does not match provided string; object should be of type ' + cstr) 271 272 #may need this later depending on how src / m / classes / qmu works out 273 274 #if len(vars(sclass)) == 0: 275 #return Lstruct() 276 277 #else: 278 #fnames = fieldnames(sclass) 279 #for f in fnames: 280 #if isinstance(vars(sclass)[f], eval(cstr)): 281 #exec('sclasso.%s = vars(sclass)[f]')%(f) 282 #vars(sclasso)[f] = vars(sclass)[f] 283 284 return sclasso -
issm/trunk-jpl/src/m/boundaryconditions/PattynSMB.py
r21303 r24213 1 import os 2 import numpy as np 3 def PattynSMB(md,Tf): 4 """ 5 PATTYNSMB- Compute SMB over Antarctica (from Pattyn 2006, pg. 18, "GRANTISM: An ExcelTM model for Greenland 6 and Antarctic ice-sheet response to climate changes") 1 import numpy as np 2 3 4 def PattynSMB(md, Tf): 5 """ 6 PATTYNSMB - Compute SMB over Antarctica (from Pattyn 2006, pg. 18, "GRANTISM: An ExcelTM model for Greenland 7 and Antarctic ice-sheet response to climate changes") 7 8 8 9 Usage: 9 md =PattynSMB(md,Tf)10 md = PattynSMB(md, Tf) 10 11 11 12 where Tf is a background forcing temperature ("an anomalous temperature relative to the present conditions) … … 13 14 14 15 See also: SETICESHELFBC, SETMARINEICESHEETBC 15 """ 16 17 # Tma : Mean annual surface temperature in [deg C] 18 # Tms : Mean summer temperature in [deg C] 19 # h : Surface/bedrock elevation (I assume in meters but paper does not specify) 20 # phi : Latitude in degrees SOUTH 21 # lambda : Longitude in degrees WEST 22 # Tf : Background forcing temperature ("an anomalous temperature relative to the present conditions) 23 # ACCdot : Accumulation rate in units of [m/a] ice equivalent 24 # ABLdot : Surface ablation rate in [m/a] ice equivalent 16 """ 25 17 26 #Double check lat and long exist: 27 if np.any(np.isnan(md.mesh.lat)): 28 raise IOError('PattynSMB error message: md.mesh.lat field required') 18 # Tma : Mean annual surface temperature in [deg C] 19 # Tms : Mean summer temperature in [deg C] 20 # h : Surface / bedrock elevation (I assume in meters but paper does not specify) 21 # phi : Latitude in degrees SOUTH 22 # lambda : Longitude in degrees WEST 23 # Tf : Background forcing temperature ("an anomalous temperature relative to the present conditions) 24 # ACCdot : Accumulation rate in units of [m / a] ice equivalent 25 # ABLdot : Surface ablation rate in [m / a] ice equivalent 29 26 30 # Calculate mean annual surface temperature, Eqn (11) 31 # Here, -0.012 is the atmospheric Lapse rate from sea level in deg/m. 32 # It is multiplied by surface elevation from sea level 33 Tma = -15.15 - 0.012*md.geometry.surface 34 27 #Double check lat and long exist: 28 if np.any(np.isnan(md.mesh.lat)): 29 raise IOError('PattynSMB error message: md.mesh.lat field required') 35 30 36 # Calculate summer temperature, Eqn (12)37 # No melting at PIG in mean conditions - need about 6 degress Tf to start having a negative yearly SMB 38 Tms = 16.81 - 0.00692*md.geometry.surface - 0.27937*np.abs(md.mesh.lat) + Tf 39 Tms= Tms[0] 31 # Calculate mean annual surface temperature, Eqn (11) 32 # Here, - 0.012 is the atmospheric Lapse rate from sea level in deg / m. 33 # It is multiplied by surface elevation from sea level 34 Tma = - 15.15 - 0.012 * md.geometry.surface 40 35 41 # Calculate Accumulation perturbation with Tf forcing, Eqn (9) 42 ACCdot = 2.5*2**((Tma+Tf)/10.) - 2.5*2**(Tma/10.) 36 # Calculate summer temperature, Eqn (12) 37 # No melting at PIG in mean conditions - need about 6 degress Tf to start having a negative yearly SMB 38 Tms = 16.81 - 0.00692 * md.geometry.surface - 0.27937 * np.abs(md.mesh.lat) + Tf 39 Tms = Tms[0] 43 40 44 # Calculate Ablation, Eqn (10) (use for both Antarctica & Greenland), max melt is 10m/a 45 ABLdot=0.*np.ones(md.mesh.numberofvertices) 46 pos=np.nonzero(Tms>=0) 47 ABLdot[pos]=np.minimum(1.4*Tms[pos],10) 41 # Calculate Accumulation perturbation with Tf forcing, Eqn (9) 42 ACCdot = 2.5 * 2**((Tma + Tf) / 10.) - 2.5 * 2**(Tma / 10.) 48 43 49 smb=ACCdot-ABLdot 50 return smb[0] 44 # Calculate Ablation, Eqn (10) (use for both Antarctica & Greenland), max melt is 10m / a 45 ABLdot = 0. * np.ones(md.mesh.numberofvertices) 46 pos = np.nonzero(Tms >= 0) 47 ABLdot[pos] = np.minimum(1.4 * Tms[pos], 10) 48 49 smb = ACCdot - ABLdot 50 return smb[0] -
issm/trunk-jpl/src/m/boundaryconditions/SetIceSheetBC.py
r23716 r24213 1 import os2 1 import numpy as np 3 from ContourToMesh import ContourToMesh 2 4 3 5 4 def SetIceSheetBC(md): 6 7 5 """ 6 SETICESHEETBC - Create the boundary conditions for stressbalance and thermal models for an IceSheet with no Ice Front 8 7 9 10 md=SetIceSheetBC(md)8 Usage: 9 md = SetIceSheetBC(md) 11 10 12 13 11 See also: SETICESHELFBC, SETMARINEICESHEETBC 12 """ 14 13 15 16 pos=np.nonzero(md.mesh.vertexonboundary)17 md.stressbalance.spcvx=float('nan')*np.ones((md.mesh.numberofvertices))18 md.stressbalance.spcvy=float('nan')*np.ones((md.mesh.numberofvertices))19 md.stressbalance.spcvz=float('nan')*np.ones((md.mesh.numberofvertices))20 md.stressbalance.spcvx[pos]=021 md.stressbalance.spcvy[pos]=022 md.stressbalance.spcvz[pos]=023 md.stressbalance.referential=float('nan')*np.ones((md.mesh.numberofvertices,6))24 md.stressbalance.loadingforce=0*np.ones((md.mesh.numberofvertices,3))14 #node on Dirichlet 15 pos = np.nonzero(md.mesh.vertexonboundary) 16 md.stressbalance.spcvx = float('nan') * np.ones((md.mesh.numberofvertices)) 17 md.stressbalance.spcvy = float('nan') * np.ones((md.mesh.numberofvertices)) 18 md.stressbalance.spcvz = float('nan') * np.ones((md.mesh.numberofvertices)) 19 md.stressbalance.spcvx[pos] = 0 20 md.stressbalance.spcvy[pos] = 0 21 md.stressbalance.spcvz[pos] = 0 22 md.stressbalance.referential = float('nan') * np.ones((md.mesh.numberofvertices, 6)) 23 md.stressbalance.loadingforce = 0 * np.ones((md.mesh.numberofvertices, 3)) 25 24 26 27 if isinstance(md.inversion.vx_obs,np.ndarray) and np.size(md.inversion.vx_obs,axis=0)==md.mesh.numberofvertices and isinstance(md.inversion.vy_obs,np.ndarray) and np.size(md.inversion.vy_obs,axis=0)==md.mesh.numberofvertices:28 29 md.stressbalance.spcvx[pos]=md.inversion.vx_obs[pos]30 md.stressbalance.spcvy[pos]=md.inversion.vy_obs[pos]31 32 25 #Dirichlet Values 26 if isinstance(md.inversion.vx_obs, np.ndarray) and np.size(md.inversion.vx_obs, axis=0) == md.mesh.numberofvertices and isinstance(md.inversion.vy_obs, np.ndarray) and np.size(md.inversion.vy_obs, axis=0) == md.mesh.numberofvertices: 27 print(" boundary conditions for stressbalance model: spc set as observed velocities") 28 md.stressbalance.spcvx[pos] = md.inversion.vx_obs[pos] 29 md.stressbalance.spcvy[pos] = md.inversion.vy_obs[pos] 30 else: 31 print(" boundary conditions for stressbalance model: spc set as zero") 33 32 34 #No ice front -> do nothing33 #No ice front - > do nothing 35 34 36 37 38 35 #Create zeros basalforcings and smb 36 md.smb.initialize(md) 37 md.basalforcings.initialize(md) 39 38 40 41 42 md.balancethickness.thickening_rate=np.zeros((md.mesh.numberofvertices))43 44 md.masstransport.spcthickness=float('nan')*np.ones((md.mesh.numberofvertices))45 md.balancethickness.spcthickness=float('nan')*np.ones((md.mesh.numberofvertices))46 md.damage.spcdamage=float('nan')*np.ones((md.mesh.numberofvertices))39 #Deal with other boundary conditions 40 if np.all(np.isnan(md.balancethickness.thickening_rate)): 41 md.balancethickness.thickening_rate = np.zeros((md.mesh.numberofvertices)) 42 print(" no balancethickness.thickening_rate specified: values set as zero") 43 md.masstransport.spcthickness = float('nan') * np.ones((md.mesh.numberofvertices)) 44 md.balancethickness.spcthickness = float('nan') * np.ones((md.mesh.numberofvertices)) 45 md.damage.spcdamage = float('nan') * np.ones((md.mesh.numberofvertices)) 47 46 48 if isinstance(md.initialization.temperature,np.ndarray) and np.size(md.initialization.temperature,axis=0)==md.mesh.numberofvertices:49 md.thermal.spctemperature=float('nan')*np.ones((md.mesh.numberofvertices))50 if hasattr(md.mesh,'vertexonsurface'):51 pos=np.nonzero(md.mesh.vertexonsurface)[0]52 md.thermal.spctemperature[pos]=md.initialization.temperature[pos]#impose observed temperature on surface53 if not isinstance(md.basalforcings.geothermalflux,np.ndarray) or not np.size(md.basalforcings.geothermalflux)==md.mesh.numberofvertices:54 md.basalforcings.geothermalflux=50.*10**-3*np.ones((md.mesh.numberofvertices)) #50 mW/m^255 56 47 if isinstance(md.initialization.temperature, np.ndarray) and np.size(md.initialization.temperature, axis=0) == md.mesh.numberofvertices: 48 md.thermal.spctemperature = float('nan') * np.ones((md.mesh.numberofvertices)) 49 if hasattr(md.mesh, 'vertexonsurface'): 50 pos = np.nonzero(md.mesh.vertexonsurface)[0] 51 md.thermal.spctemperature[pos] = md.initialization.temperature[pos] #impose observed temperature on surface 52 if not isinstance(md.basalforcings.geothermalflux, np.ndarray) or not np.size(md.basalforcings.geothermalflux) == md.mesh.numberofvertices: 53 md.basalforcings.geothermalflux = 50. * 10**- 3 * np.ones((md.mesh.numberofvertices)) #50 mW / m^2 54 else: 55 print(" no thermal boundary conditions created: no observed temperature found") 57 56 58 return md 59 57 return md -
issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.py
r23716 r24213 4 4 import MatlabFuncs as m 5 5 6 def SetIceShelfBC(md,icefrontfile=''):7 """8 SETICESHELFBC - Create the boundary conditions for stressbalance and thermal models for a Ice Shelf with Ice Front9 6 10 Neumann BC are used on the ice front (an ARGUS contour around the ice front 11 must be given in input) 12 Dirichlet BC are used elsewhere for stressbalance 7 def SetIceShelfBC(md, icefrontfile=''): 8 """ 9 SETICESHELFBC - Create the boundary conditions for stressbalance and thermal models for a Ice Shelf with Ice Front 13 10 14 Usage: 15 md=SetIceShelfBC(md,varargin) 11 Neumann BC are used on the ice front (an ARGUS contour around the ice front 12 must be given in input) 13 Dirichlet BC are used elsewhere for stressbalance 16 14 17 Example: 18 md=SetIceShelfBC(md); 19 md=SetIceShelfBC(md,'Front.exp'); 15 Usage: 16 md = SetIceShelfBC(md, varargin) 20 17 21 See also: SETICESHEETBC, SETMARINEICESHEETBC 22 """ 18 Example: 19 md = SetIceShelfBC(md) 20 md = SetIceShelfBC(md, 'Front.exp') 23 21 24 #node on Dirichlet (boundary and ~icefront) 25 if icefrontfile: 26 if not os.path.exists(icefrontfile): 27 raise IOError("SetIceShelfBC error message: ice front file '%s' not found." % icefrontfile) 28 nodeinsideicefront=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,icefrontfile,'node',2) 29 nodeonicefront=np.logical_and(md.mesh.vertexonboundary,nodeinsideicefront.reshape(-1)) 30 else: 31 nodeonicefront=np.zeros((md.mesh.numberofvertices),bool) 22 See also: SETICESHEETBC, SETMARINEICESHEETBC 23 """ 32 24 33 # pos=find(md.mesh.vertexonboundary & ~nodeonicefront); 34 pos=np.nonzero(np.logical_and(md.mesh.vertexonboundary,np.logical_not(nodeonicefront)))[0] 35 md.stressbalance.spcvx=float('nan')*np.ones(md.mesh.numberofvertices) 36 md.stressbalance.spcvy=float('nan')*np.ones(md.mesh.numberofvertices) 37 md.stressbalance.spcvz=float('nan')*np.ones(md.mesh.numberofvertices) 38 md.stressbalance.referential=float('nan')*np.ones((md.mesh.numberofvertices,6)) 39 md.stressbalance.loadingforce=0*np.ones((md.mesh.numberofvertices,3)) 25 #node on Dirichlet (boundary and ~icefront) 26 if icefrontfile: 27 if not os.path.exists(icefrontfile): 28 raise IOError("SetIceShelfBC error message: ice front file '%s' not found." % icefrontfile) 29 nodeinsideicefront = ContourToMesh(md.mesh.elements, md.mesh.x, md.mesh.y, icefrontfile, 'node', 2) 30 nodeonicefront = np.logical_and(md.mesh.vertexonboundary, nodeinsideicefront.reshape(- 1)) 31 else: 32 nodeonicefront = np.zeros((md.mesh.numberofvertices), bool) 40 33 41 #Icefront position 42 pos=np.nonzero(nodeonicefront)[0] 43 md.mask.ice_levelset[pos]=0 34 # pos = find(md.mesh.vertexonboundary & ~nodeonicefront) 35 pos = np.nonzero(np.logical_and(md.mesh.vertexonboundary, np.logical_not(nodeonicefront)))[0] 36 md.stressbalance.spcvx = float('nan') * np.ones(md.mesh.numberofvertices) 37 md.stressbalance.spcvy = float('nan') * np.ones(md.mesh.numberofvertices) 38 md.stressbalance.spcvz = float('nan') * np.ones(md.mesh.numberofvertices) 39 md.stressbalance.referential = float('nan') * np.ones((md.mesh.numberofvertices, 6)) 40 md.stressbalance.loadingforce = 0 * np.ones((md.mesh.numberofvertices, 3)) 44 41 45 #First find segments that are not completely on the front 46 if m.strcmp(md.mesh.elementtype(),'Penta'): 47 numbernodesfront=4; 48 elif m.strcmp(md.mesh.elementtype(),'Tria'): 49 numbernodesfront=2; 50 else: 51 raise error('mesh type not supported yet') 52 if any(md.mask.ice_levelset<=0): 53 values=md.mask.ice_levelset[md.mesh.segments[:,0:-1]-1] 54 segmentsfront=1-values 55 np.sum(segmentsfront,axis=1)!=numbernodesfront 56 segments=np.nonzero(np.sum(segmentsfront,axis=1)!=numbernodesfront)[0] 57 #Find all nodes for these segments and spc them 58 pos=md.mesh.segments[segments,0:-1]-1 59 else: 60 pos=np.nonzero(md.mesh.vertexonboundary)[0] 61 md.stressbalance.spcvx[pos]=0 62 md.stressbalance.spcvy[pos]=0 63 md.stressbalance.spcvz[pos]=0 64 65 #Dirichlet Values 66 if isinstance(md.inversion.vx_obs,np.ndarray) and np.size(md.inversion.vx_obs,axis=0)==md.mesh.numberofvertices and isinstance(md.inversion.vy_obs,np.ndarray) and np.size(md.inversion.vy_obs,axis=0)==md.mesh.numberofvertices: 67 #reshape to rank-2 if necessary to match spc arrays 68 if np.ndim(md.inversion.vx_obs)==1: 69 md.inversion.vx_obs=md.inversion.vx_obs.reshape(-1,) 70 if np.ndim(md.inversion.vy_obs)==1: 71 md.inversion.vy_obs=md.inversion.vy_obs.reshape(-1,) 72 print(" boundary conditions for stressbalance model: spc set as observed velocities") 73 md.stressbalance.spcvx[pos]=md.inversion.vx_obs[pos] 74 md.stressbalance.spcvy[pos]=md.inversion.vy_obs[pos] 75 else: 76 print(" boundary conditions for stressbalance model: spc set as zero") 42 #Icefront position 43 pos = np.nonzero(nodeonicefront)[0] 44 md.mask.ice_levelset[pos] = 0 77 45 78 #Create zeros basalforcings and smb 79 md.smb.initialize(md) 80 md.basalforcings.initialize(md) 46 #First find segments that are not completely on the front 47 if m.strcmp(md.mesh.elementtype(), 'Penta'): 48 numbernodesfront = 4 49 elif m.strcmp(md.mesh.elementtype(), 'Tria'): 50 numbernodesfront = 2 51 else: 52 raise NameError('mesh type not supported yet') 53 if any(md.mask.ice_levelset <= 0): 54 values = md.mask.ice_levelset[md.mesh.segments[:, 0: - 1] - 1] 55 segmentsfront = 1 - values 56 np.sum(segmentsfront, axis=1) != numbernodesfront 57 segments = np.nonzero(np.sum(segmentsfront, axis=1) != numbernodesfront)[0] 58 #Find all nodes for these segments and spc them 59 pos = md.mesh.segments[segments, 0: - 1] - 1 60 else: 61 pos = np.nonzero(md.mesh.vertexonboundary)[0] 62 md.stressbalance.spcvx[pos] = 0 63 md.stressbalance.spcvy[pos] = 0 64 md.stressbalance.spcvz[pos] = 0 81 65 82 #Deal with other boundary conditions 83 if np.all(np.isnan(md.balancethickness.thickening_rate)): 84 md.balancethickness.thickening_rate=np.zeros((md.mesh.numberofvertices)) 85 print(" no balancethickness.thickening_rate specified: values set as zero") 86 md.masstransport.spcthickness=float('nan')*np.ones((md.mesh.numberofvertices)) 87 md.balancethickness.spcthickness=float('nan')*np.ones((md.mesh.numberofvertices)) 88 md.damage.spcdamage=float('nan')*np.ones((md.mesh.numberofvertices)) 66 #Dirichlet Values 67 if isinstance(md.inversion.vx_obs, np.ndarray) and np.size(md.inversion.vx_obs, axis=0) == md.mesh.numberofvertices and isinstance(md.inversion.vy_obs, np.ndarray) and np.size(md.inversion.vy_obs, axis=0) == md.mesh.numberofvertices: 68 #reshape to rank - 2 if necessary to match spc arrays 69 if np.ndim(md.inversion.vx_obs) == 1: 70 md.inversion.vx_obs = md.inversion.vx_obs.reshape(- 1, ) 71 if np.ndim(md.inversion.vy_obs) == 1: 72 md.inversion.vy_obs = md.inversion.vy_obs.reshape(- 1, ) 73 print(" boundary conditions for stressbalance model: spc set as observed velocities") 74 md.stressbalance.spcvx[pos] = md.inversion.vx_obs[pos] 75 md.stressbalance.spcvy[pos] = md.inversion.vy_obs[pos] 76 else: 77 print(" boundary conditions for stressbalance model: spc set as zero") 89 78 90 if isinstance(md.initialization.temperature,np.ndarray) and np.size(md.initialization.temperature,axis=0)==md.mesh.numberofvertices: 91 md.thermal.spctemperature=float('nan')*np.ones((md.mesh.numberofvertices)) 92 if hasattr(md.mesh,'vertexonsurface'): 93 pos=np.nonzero(md.mesh.vertexonsurface)[0] 94 md.thermal.spctemperature[pos]=md.initialization.temperature[pos] #impose observed temperature on surface 95 if not isinstance(md.basalforcings.geothermalflux,np.ndarray) or not np.size(md.basalforcings.geothermalflux,axis=0)==md.mesh.numberofvertices: 96 md.basalforcings.geothermalflux=np.zeros((md.mesh.numberofvertices)) 97 else: 98 print(" no thermal boundary conditions created: no observed temperature found") 79 #Create zeros basalforcings and smb 80 md.smb.initialize(md) 81 md.basalforcings.initialize(md) 99 82 100 return md 83 #Deal with other boundary conditions 84 if np.all(np.isnan(md.balancethickness.thickening_rate)): 85 md.balancethickness.thickening_rate = np.zeros((md.mesh.numberofvertices)) 86 print(" no balancethickness.thickening_rate specified: values set as zero") 87 md.masstransport.spcthickness = float('nan') * np.ones((md.mesh.numberofvertices)) 88 md.balancethickness.spcthickness = float('nan') * np.ones((md.mesh.numberofvertices)) 89 md.damage.spcdamage = float('nan') * np.ones((md.mesh.numberofvertices)) 101 90 91 if isinstance(md.initialization.temperature, np.ndarray) and np.size(md.initialization.temperature, axis=0) == md.mesh.numberofvertices: 92 md.thermal.spctemperature = float('nan') * np.ones((md.mesh.numberofvertices)) 93 if hasattr(md.mesh, 'vertexonsurface'): 94 pos = np.nonzero(md.mesh.vertexonsurface)[0] 95 md.thermal.spctemperature[pos] = md.initialization.temperature[pos] #impose observed temperature on surface 96 if not isinstance(md.basalforcings.geothermalflux, np.ndarray) or not np.size(md.basalforcings.geothermalflux, axis=0) == md.mesh.numberofvertices: 97 md.basalforcings.geothermalflux = np.zeros((md.mesh.numberofvertices)) 98 else: 99 print(" no thermal boundary conditions created: no observed temperature found") 100 101 return md -
issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py
r23716 r24213 2 2 import numpy as np 3 3 from ContourToMesh import ContourToMesh 4 import MatlabFuncs as m5 4 6 def SetMarineIceSheetBC(md,icefrontfile=''):7 """8 SETICEMARINESHEETBC - Create the boundary conditions for stressbalance and thermal models for a Marine Ice Sheet with Ice Front9 5 10 Neumann BC are used on the ice front (an ARGUS contour around the ice front 11 can be given in input, or it will be deduced as onfloatingice & onboundary) 12 Dirichlet BC are used elsewhere for stressbalance 6 def SetMarineIceSheetBC(md, icefrontfile=''): 7 """ 8 SETICEMARINESHEETBC - Create the boundary conditions for stressbalance and thermal models for a Marine Ice Sheet with Ice Front 13 9 14 Usage: 15 md=SetMarineIceSheetBC(md,icefrontfile)16 md=SetMarineIceSheetBC(md) 10 Neumann BC are used on the ice front (an ARGUS contour around the ice front 11 can be given in input, or it will be deduced as onfloatingice & onboundary) 12 Dirichlet BC are used elsewhere for stressbalance 17 13 18 Example:19 md=SetMarineIceSheetBC(md,'Front.exp')20 md=SetMarineIceSheetBC(md)14 Usage: 15 md = SetMarineIceSheetBC(md, icefrontfile) 16 md = SetMarineIceSheetBC(md) 21 17 22 See also: SETICESHELFBC, SETMARINEICESHEETBC 23 """ 18 Example: 19 md = SetMarineIceSheetBC(md, 'Front.exp') 20 md = SetMarineIceSheetBC(md) 24 21 25 #node on Dirichlet (boundary and ~icefront) 26 if icefrontfile: 27 #User provided Front.exp, use it 28 if not os.path.exists(icefrontfile): 29 raise IOError("SetMarineIceSheetBC error message: ice front file '%s' not found." % icefrontfile) 30 incontour=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,icefrontfile,'node',2) 31 vertexonicefront=np.logical_and(md.mesh.vertexonboundary,incontour.reshape(-1)) 32 else: 33 #Guess where the ice front is 34 vertexonfloatingice=np.zeros((md.mesh.numberofvertices)) 35 pos=np.nonzero(np.sum(md.mask.groundedice_levelset[md.mesh.elements-1]<0.,axis=1) >0.)[0] 36 vertexonfloatingice[md.mesh.elements[pos].astype(int)-1]=1. 37 vertexonicefront=np.logical_and(np.reshape(md.mesh.vertexonboundary,(-1,)),vertexonfloatingice>0.) 22 See also: SETICESHELFBC, SETMARINEICESHEETBC 23 """ 24 #node on Dirichlet (boundary and ~icefront) 25 if icefrontfile: 26 #User provided Front.exp, use it 27 if not os.path.exists(icefrontfile): 28 raise IOError("SetMarineIceSheetBC error message: ice front file '%s' not found." % icefrontfile) 29 incontour = ContourToMesh(md.mesh.elements, md.mesh.x, md.mesh.y, icefrontfile, 'node', 2) 30 vertexonicefront = np.logical_and(md.mesh.vertexonboundary, incontour.reshape(- 1)) 31 else: 32 #Guess where the ice front is 33 vertexonfloatingice = np.zeros((md.mesh.numberofvertices)) 34 pos = np.nonzero(np.sum(md.mask.groundedice_levelset[md.mesh.elements - 1] < 0., axis=1) > 0.)[0] 35 vertexonfloatingice[md.mesh.elements[pos].astype(int) - 1] = 1. 36 vertexonicefront = np.logical_and(np.reshape(md.mesh.vertexonboundary, (- 1, )), vertexonfloatingice > 0.) 38 37 39 # pos=find(md.mesh.vertexonboundary & ~vertexonicefront); 40 pos=np.nonzero(np.logical_and(md.mesh.vertexonboundary,np.logical_not(vertexonicefront)))[0]41 42 38 #pos = find(md.mesh.vertexonboundary & ~vertexonicefront) 39 pos = np.nonzero(np.logical_and(md.mesh.vertexonboundary, np.logical_not(vertexonicefront)))[0] 40 if not np.size(pos): 41 print("SetMarineIceSheetBC warning: ice front all around the glacier, no dirichlet found. Dirichlet must be added manually.") 43 42 44 md.stressbalance.spcvx=float('nan')*np.ones(md.mesh.numberofvertices)45 md.stressbalance.spcvy=float('nan')*np.ones(md.mesh.numberofvertices)46 md.stressbalance.spcvz=float('nan')*np.ones(md.mesh.numberofvertices)47 md.stressbalance.referential=float('nan')*np.ones((md.mesh.numberofvertices,6))48 md.stressbalance.loadingforce=0*np.ones((md.mesh.numberofvertices,3))43 md.stressbalance.spcvx = float('nan') * np.ones(md.mesh.numberofvertices) 44 md.stressbalance.spcvy = float('nan') * np.ones(md.mesh.numberofvertices) 45 md.stressbalance.spcvz = float('nan') * np.ones(md.mesh.numberofvertices) 46 md.stressbalance.referential = float('nan') * np.ones((md.mesh.numberofvertices, 6)) 47 md.stressbalance.loadingforce = 0 * np.ones((md.mesh.numberofvertices, 3)) 49 48 50 51 pos=np.nonzero(vertexonicefront)[0]52 md.mask.ice_levelset[pos]=049 #Position of ice front 50 pos = np.nonzero(vertexonicefront)[0] 51 md.mask.ice_levelset[pos] = 0 53 52 54 55 if m.strcmp(md.mesh.elementtype(),'Penta'):56 numbernodesfront=457 elif m.strcmp(md.mesh.elementtype(),'Tria'):58 numbernodesfront=259 60 61 if any(md.mask.ice_levelset<=0):62 values=md.mask.ice_levelset[md.mesh.segments[:,0:-1]-1]63 segmentsfront=1-values64 np.sum(segmentsfront,axis=1)!=numbernodesfront65 segments=np.nonzero(np.sum(segmentsfront,axis=1)!=numbernodesfront)[0]66 67 pos=md.mesh.segments[segments,0:-1]-168 69 pos=np.nonzero(md.mesh.vertexonboundary)[0]70 md.stressbalance.spcvx[pos]=071 md.stressbalance.spcvy[pos]=072 md.stressbalance.spcvz[pos]=053 #First find segments that are not completely on the front 54 if md.mesh.elementtype() == 'Penta': 55 numbernodesfront = 4 56 elif md.mesh.elementtype() == 'Tria': 57 numbernodesfront = 2 58 else: 59 raise Exception("Mesh type not supported") 60 if any(md.mask.ice_levelset <= 0): 61 values = md.mask.ice_levelset[md.mesh.segments[:, 0:-1] - 1] 62 segmentsfront = 1 - values 63 np.sum(segmentsfront, axis=1) != numbernodesfront 64 segments = np.nonzero(np.sum(segmentsfront, axis=1) != numbernodesfront)[0] 65 #Find all nodes for these segments and spc them 66 pos = md.mesh.segments[segments, 0: - 1] - 1 67 else: 68 pos = np.nonzero(md.mesh.vertexonboundary)[0] 69 md.stressbalance.spcvx[pos] = 0 70 md.stressbalance.spcvy[pos] = 0 71 md.stressbalance.spcvz[pos] = 0 73 72 74 75 if isinstance(md.inversion.vx_obs,np.ndarray) and np.size(md.inversion.vx_obs,axis=0)==md.mesh.numberofvertices and isinstance(md.inversion.vy_obs,np.ndarray) and np.size(md.inversion.vy_obs,axis=0)==md.mesh.numberofvertices:76 77 md.stressbalance.spcvx[pos]=md.inversion.vx_obs[pos]78 md.stressbalance.spcvy[pos]=md.inversion.vy_obs[pos]79 80 73 #Dirichlet Values 74 if isinstance(md.inversion.vx_obs, np.ndarray) and np.size(md.inversion.vx_obs, axis=0) == md.mesh.numberofvertices and isinstance(md.inversion.vy_obs, np.ndarray) and np.size(md.inversion.vy_obs, axis=0) == md.mesh.numberofvertices: 75 print(" boundary conditions for stressbalance model: spc set as observed velocities") 76 md.stressbalance.spcvx[pos] = md.inversion.vx_obs[pos] 77 md.stressbalance.spcvy[pos] = md.inversion.vy_obs[pos] 78 else: 79 print(" boundary conditions for stressbalance model: spc set as zero") 81 80 82 md.hydrology.spcwatercolumn=np.zeros((md.mesh.numberofvertices,2))83 pos=np.nonzero(md.mesh.vertexonboundary)[0]84 md.hydrology.spcwatercolumn[pos,0]=181 md.hydrology.spcwatercolumn = np.zeros((md.mesh.numberofvertices, 2)) 82 pos = np.nonzero(md.mesh.vertexonboundary)[0] 83 md.hydrology.spcwatercolumn[pos, 0] = 1 85 84 86 87 88 85 #Create zeros basalforcings and smb 86 md.smb.initialize(md) 87 md.basalforcings.initialize(md) 89 88 90 91 92 md.balancethickness.thickening_rate=np.zeros((md.mesh.numberofvertices))93 89 #Deal with other boundary conditions 90 if np.all(np.isnan(md.balancethickness.thickening_rate)): 91 md.balancethickness.thickening_rate = np.zeros((md.mesh.numberofvertices)) 92 print(" no balancethickness.thickening_rate specified: values set as zero") 94 93 95 md.masstransport.spcthickness=float('nan')*np.ones((md.mesh.numberofvertices))96 md.balancethickness.spcthickness=float('nan')*np.ones((md.mesh.numberofvertices))97 md.damage.spcdamage=float('nan')*np.ones((md.mesh.numberofvertices))94 md.masstransport.spcthickness = float('nan') * np.ones((md.mesh.numberofvertices)) 95 md.balancethickness.spcthickness = float('nan') * np.ones((md.mesh.numberofvertices)) 96 md.damage.spcdamage = float('nan') * np.ones((md.mesh.numberofvertices)) 98 97 99 if isinstance(md.initialization.temperature,np.ndarray) and np.size(md.initialization.temperature,axis=0)==md.mesh.numberofvertices:100 md.thermal.spctemperature=float('nan')*np.ones((md.mesh.numberofvertices))101 if hasattr(md.mesh,'vertexonsurface'):102 pos=np.nonzero(md.mesh.vertexonsurface)[0]103 md.thermal.spctemperature[pos]=md.initialization.temperature[pos]#impose observed temperature on surface104 if not isinstance(md.basalforcings.geothermalflux,np.ndarray) or not np.size(md.basalforcings.geothermalflux,axis=0)==md.mesh.numberofvertices:105 md.basalforcings.geothermalflux=np.zeros((md.mesh.numberofvertices))106 md.basalforcings.geothermalflux[np.nonzero(md.mask.groundedice_levelset>0.)]=50.*10.**-3 #50mW/m2107 108 98 if isinstance(md.initialization.temperature, np.ndarray) and np.size(md.initialization.temperature, axis=0) == md.mesh.numberofvertices: 99 md.thermal.spctemperature = float('nan') * np.ones((md.mesh.numberofvertices)) 100 if hasattr(md.mesh, 'vertexonsurface'): 101 pos = np.nonzero(md.mesh.vertexonsurface)[0] 102 md.thermal.spctemperature[pos] = md.initialization.temperature[pos] #impose observed temperature on surface 103 if not isinstance(md.basalforcings.geothermalflux, np.ndarray) or not np.size(md.basalforcings.geothermalflux, axis=0) == md.mesh.numberofvertices: 104 md.basalforcings.geothermalflux = np.zeros((md.mesh.numberofvertices)) 105 md.basalforcings.geothermalflux[np.nonzero(md.mask.groundedice_levelset > 0.)] = 50. * 10.**- 3 #50mW / m2 106 else: 107 print(" no thermal boundary conditions created: no observed temperature found") 109 108 110 return md 111 109 return md -
issm/trunk-jpl/src/m/boundaryconditions/love_numbers.py
r23737 r24213 1 from MatlabFuncs import *2 from model import *3 1 import numpy as np 4 2 5 def love_numbers(value,*varargin): 6 #LOVE_NUMBERS: provide love numbers (value 'h','k','l','gamma' and 'lambda' 7 # retrieved from: http://www.srosat.com/iag-jsg/loveNb.php 8 # Usage: series=love_numbers(value) 9 # series=love_numbers(value,reference_frame) 10 # 11 # where value is one of 'h','k','l','gamma' and 'lambda'. 12 # reference_frame = one of 'CM' (default) and 'CF'. 13 # 14 # Example: 15 # love_k=love_numbers('k'); 16 # love_k=love_numbers('k','CF'); 17 # 3 4 def love_numbers(value, * varargin): 5 '''LOVE_NUMBERS: provide love numbers (value 'h', 'k', 'l', 'gamma' and 'lambda' 6 retrieved from: http: / / www.srosat.com / iag - jsg / loveNb.php 7 Usage: series = love_numbers(value) 8 series = love_numbers(value, reference_frame) 9 10 where value is one of 'h', 'k', 'l', 'gamma' and 'lambda'. 11 reference_frame = one of 'CM' (default) and 'CF'. 12 13 Example: 14 love_k = love_numbers('k') 15 love_k = love_numbers('k', 'CF') 16 17 ''' 18 18 19 19 # some checks: 20 if len(varargin) ==0:21 frame ='CM';20 if len(varargin) == 0: 21 frame = 'CM' 22 22 print('Info: computation is done in Center of Mass (CM) reference frame by default') 23 elif len(varargin) ==1:23 elif len(varargin) == 1: 24 24 reference_frame = varargin[0] 25 if (reference_frame in ['CF', 'CM']):26 frame =reference_frame;25 if (reference_frame in ['CF', 'CM']): 26 frame = reference_frame 27 27 else: 28 28 raise RuntimeError('reference_frame should be one of ''CM'' or ''CF''') 29 29 else: 30 raise RuntimeError('love_numbers error message: bad usage') 31 32 if value not in ['h', 'k','l','gamma','lambda']:33 raise RuntimeError('value should be one of ''h'', ''k'',''l'',''gamma'' and ''lambda''')34 35 if len(varargin) >1:36 raise RuntimeError('love_numbers error message: wrong usage') 37 38 love_numbers =np.array([[ 0 , 0 ,0 ,0 ,0 ,0 ,0],39 [ -1.28740059,-1.00000000,-0.89858519,1.28740059, 0.42519882 ,0.89858519 ,0.00000000],40 [ -1.00025365, -0.30922675, 0.02060926, 1.69102690, 0.46358648, 0.67016399, 0.61829668],41 [ -1.06243501, -0.19927948, 0.06801636, 1.86315553, 0.55741597, 0.73270416, 0.56270589],42 [ -1.06779588, -0.13649834, 0.05667027, 1.93129754, 0.63672498, 0.80683140, 0.51132745],43 [ -1.10365923, -0.10736896, 0.04401221, 1.99629027, 0.68737906, 0.84861883, 0.48642259],44 [ -1.16440348, -0.09295485, 0.03638747, 2.07144863, 0.72031283, 0.87065768, 0.47898268],45 [ -1.23634156, -0.08469861, 0.03202759, 2.15164295, 0.74355796, 0.88327380, 0.47955214],46 [ -1.31140380, -0.07921412, 0.02937593, 2.23218968, 0.76126493, 0.89140995, 0.48323250],47 [ -1.38582399, -0.07513541, 0.02762338, 2.31068858, 0.77552290, 0.89724121, 0.48795424],48 [ -1.45807465, -0.07187005, 0.02638627, 2.38620460, 0.78744212, 0.90174369, 0.49291061],49 [ -1.52763314, -0.06913154, 0.02547640, 2.45850160, 0.79766475, 0.90539206, 0.49779422],50 [ -1.59437866, -0.06676258, 0.02479080, 2.52761607, 0.80659635, 0.90844662, 0.50248477],51 [ -1.65833071, -0.06466619, 0.02426511, 2.59366452, 0.81451271, 0.91106870, 0.50693175],52 [ -1.71954820, -0.06277732, 0.02385464, 2.65677088, 0.82161167, 0.91336804, 0.51111243],53 [ -1.77809640, -0.06105001, 0.02352654, 2.71704639, 0.82804049, 0.91542346, 0.51501712],54 [ -1.83403970, -0.05945081, 0.02325609, 2.77458889, 0.83391153, 0.91729309, 0.51864363],55 [ -1.88744242, -0.05795502, 0.02302469, 2.82948740, 0.83931209, 0.91902029, 0.52199490],56 [ -1.93837115, -0.05654418, 0.02281843, 2.88182697, 0.84431095, 0.92063739, 0.52507761],57 [ -1.98689666, -0.05520447, 0.02262706, 2.93169219, 0.84896295, 0.92216847, 0.52790108],58 [ -2.03309477, -0.05392545, 0.02244322, 2.97916932, 0.85331225, 0.92363132, 0.53047654],59 [ -2.07704643, -0.05269926, 0.02226173, 3.02434717, 0.85739480, 0.92503902, 0.53281639],60 [ -2.11883714, -0.05151988, 0.02207909, 3.06731726, 0.86124014, 0.92640103, 0.53493369],61 [ -2.15855611, -0.05038274, 0.02189307, 3.10817337, 0.86487276, 0.92772419, 0.53684176],62 [ -2.19629514, -0.04928430, 0.02170238, 3.14701084, 0.86831322, 0.92901331, 0.53855386],63 [ -2.23214747, -0.04822179, 0.02150643, 3.18392568, 0.87157886, 0.93027178, 0.54008294],64 [ -2.26620674, -0.04719301, 0.02130509, 3.21901373, 0.87468453, 0.93150190, 0.54144148],65 [ -2.29856595, -0.04619619, 0.02109858, 3.25236976, 0.87764301, 0.93270523, 0.54264140],66 [ -2.32931659, -0.04522983, 0.02088735, 3.28408675, 0.88046543, 0.93388282, 0.54369397],67 [ -2.35854794, -0.04429270, 0.02067197, 3.31425524, 0.88316156, 0.93503533, 0.54460979],68 [ -2.38634650, -0.04338368, 0.02045310, 3.34296281, 0.88574004, 0.93616321, 0.54539877],69 [ -2.41279547, -0.04250179, 0.02023142, 3.37029367, 0.88820859, 0.93726678, 0.54607015],70 [ -2.43797451, -0.04164613, 0.02000761, 3.39632839, 0.89057416, 0.93834626, 0.54663248],71 [ -2.46195951, -0.04081583, 0.01978231, 3.42114367, 0.89284301, 0.93940185, 0.54709369],72 [ -2.48482241, -0.04001011, 0.01955614, 3.44481230, 0.89502085, 0.94043375, 0.54746112],73 [ -2.50663126, -0.03922817, 0.01932966, 3.46740309, 0.89711291, 0.94144217, 0.54774153],74 [ -2.52745016, -0.03846928, 0.01910337, 3.48898088, 0.89912397, 0.94242735, 0.54794114],75 [ -2.54733938, -0.03773269, 0.01887774, 3.50960670, 0.90105847, 0.94338957, 0.54806571],76 [ -2.56635547, -0.03701769, 0.01865317, 3.52933779, 0.90292050, 0.94432915, 0.54812051],77 [ -2.58455138, -0.03632358, 0.01843000, 3.54822780, 0.90471386, 0.94524642, 0.54811044],78 [ -2.60197665, -0.03564968, 0.01820854, 3.56632697, 0.90644209, 0.94614178, 0.54803997],79 [ -2.61867756, -0.03499532, 0.01798905, 3.58368224, 0.90810850, 0.94701563, 0.54791326],80 [ -2.63469733, -0.03435985, 0.01777176, 3.60033748, 0.90971616, 0.94786840, 0.54773413],81 [ -2.65007629, -0.03374263, 0.01755683, 3.61633367, 0.91126798, 0.94870054, 0.54750610],82 [ -2.66485208, -0.03314303, 0.01734443, 3.63170905, 0.91276665, 0.94951253, 0.54723245],83 [ -2.67905981, -0.03256047, 0.01713468, 3.64649934, 0.91421471, 0.95030485, 0.54691620],84 [ -2.69273222, -0.03199435, 0.01692767, 3.66073787, 0.91561457, 0.95107798, 0.54656015],85 [ -2.70589990, -0.03144411, 0.01672347, 3.67445580, 0.91696845, 0.95183242, 0.54616691],86 [ -2.71859139, -0.03090919, 0.01652215, 3.68768220, 0.91827849, 0.95256866, 0.54573889],87 [ -2.73083334, -0.03038907, 0.01632374, 3.70044427, 0.91954667, 0.95328719, 0.54527835],88 [ -2.74265068, -0.02988323, 0.01612826, 3.71276745, 0.92077487, 0.95398851, 0.54478739],89 [ -2.75406669, -0.02939118, 0.01593573, 3.72467551, 0.92196486, 0.95467309, 0.54426797],90 [ -2.76510320, -0.02891245, 0.01574615, 3.73619076, 0.92311833, 0.95534141, 0.54372191],91 [ -2.77578063, -0.02844656, 0.01555950, 3.74733406, 0.92423685, 0.95599393, 0.54315095],92 [ -2.78611812, -0.02799309, 0.01537578, 3.75812503, 0.92532192, 0.95663113, 0.54255669],93 [ -2.79613364, -0.02755161, 0.01519496, 3.76858203, 0.92637496, 0.95725343, 0.54194065],94 [ -2.80584405, -0.02712170, 0.01501701, 3.77872235, 0.92739730, 0.95786128, 0.54130424],95 [ -2.81526521, -0.02670298, 0.01484191, 3.78856223, 0.92839022, 0.95845511, 0.54064880],96 [ -2.82441204, -0.02629506, 0.01466961, 3.79811697, 0.92935491, 0.95903532, 0.53997561],97 [ -2.83329857, -0.02589759, 0.01450009, 3.80740098, 0.93029251, 0.95960232, 0.53928586],98 [ -2.84193804, -0.02551021, 0.01433329, 3.81642782, 0.93120412, 0.96015649, 0.53858067],99 [ -2.85034293, -0.02513260, 0.01416919, 3.82521033, 0.93209074, 0.96069821, 0.53786112],100 [ -2.85852503, -0.02476443, 0.01400773, 3.83376061, 0.93295337, 0.96122784, 0.53712821],101 [ -2.86649548, -0.02440538, 0.01384888, 3.84209010, 0.93379291, 0.96174574, 0.53638291],102 [ -2.87426481, -0.02405518, 0.01369258, 3.85020963, 0.93461026, 0.96225224, 0.53562612],103 [ -2.88184299, -0.02371352, 0.01353880, 3.85812947, 0.93540625, 0.96274768, 0.53485873],104 [ -2.88923945, -0.02338014, 0.01338749, 3.86585931, 0.93618168, 0.96323236, 0.53408154],105 [ -2.89646316, -0.02305478, 0.01323861, 3.87340838, 0.93693730, 0.96370661, 0.53329534],106 [ -2.90352261, -0.02273718, 0.01309211, 3.88078542, 0.93767383, 0.96417071, 0.53250089],107 [ -2.91042585, -0.02242710, 0.01294795, 3.88799874, 0.93839197, 0.96462494, 0.53169888],108 [ -2.91718054, -0.02212431, 0.01280609, 3.89505623, 0.93909236, 0.96506960, 0.53089002],109 [ -2.92379397, -0.02182859, 0.01266648, 3.90196538, 0.93977564, 0.96550493, 0.53007493],110 [ -2.93027306, -0.02153971, 0.01252908, 3.90873334, 0.94044240, 0.96593120, 0.52925424],111 [ -2.93662439, -0.02125748, 0.01239386, 3.91536691, 0.94109322, 0.96634866, 0.52842854],112 [ -2.94285425, -0.02098169, 0.01226077, 3.92187256, 0.94172863, 0.96675754, 0.52759839],113 [ -2.94896860, -0.02071215, 0.01212977, 3.92825645, 0.94234915, 0.96715808, 0.52676434],114 [ -2.95497314, -0.02044868, 0.01200082, 3.93452446, 0.94295529, 0.96755050, 0.52592690],115 [ -2.96087331, -0.02019110, 0.01187388, 3.94068220, 0.94354752, 0.96793501, 0.52508656],116 [ -2.96667427, -0.01993924, 0.01174893, 3.94673503, 0.94412630, 0.96831183, 0.52424380],117 [ -2.97238097, -0.01969293, 0.01162591, 3.95268804, 0.94469206, 0.96868116, 0.52339906],118 [ -2.97799813, -0.01945201, 0.01150481, 3.95854612, 0.94524521, 0.96904318, 0.52255277],119 [ -2.98353025, -0.01921634, 0.01138557, 3.96431391, 0.94578617, 0.96939809, 0.52170535],120 [ -2.98898162, -0.01898576, 0.01126817, 3.96999586, 0.94631531, 0.96974607, 0.52085719],121 [ -2.99435636, -0.01876014, 0.01115257, 3.97559622, 0.94683300, 0.97008729, 0.52000868],122 [ -2.99965838, -0.01853932, 0.01103875, 3.98111905, 0.94733959, 0.97042193, 0.51916016],123 [ -3.00489143, -0.01832319, 0.01092666, 3.98656824, 0.94783543, 0.97075015, 0.51831198],124 [ -3.01005909, -0.01811161, 0.01081628, 3.99194748, 0.94832084, 0.97107211, 0.51746448],125 [ -3.01516479, -0.01790446, 0.01070757, 3.99726033, 0.94879613, 0.97138796, 0.51661796],126 [ -3.02021180, -0.01770162, 0.01060052, 4.00251017, 0.94926160, 0.97169786, 0.51577273],127 [ -3.02520323, -0.01750298, 0.01049508, 4.00770025, 0.94971755, 0.97200194, 0.51492908],128 [ -3.03014209, -0.01730842, 0.01039123, 4.01283367, 0.95016424, 0.97230035, 0.51408727],129 [ -3.03503122, -0.01711783, 0.01028894, 4.01791339, 0.95060195, 0.97259323, 0.51324758],130 [ -3.03987336, -0.01693111, 0.01018819, 4.02294225, 0.95103094, 0.97288070, 0.51241024],131 [ -3.04467112, -0.01674816, 0.01008894, 4.02792295, 0.95145145, 0.97316290, 0.51157550],132 [ -3.04942699, -0.01656889, 0.00999117, 4.03285810, 0.95186373, 0.97343995, 0.51074358],133 [ -3.05414335, -0.01639319, 0.00989485, 4.03775017, 0.95226799, 0.97371196, 0.50991471],134 [ -3.05882250, -0.01622097, 0.00979997, 4.04260153, 0.95266447, 0.97397906, 0.50908908],135 [ -3.06346660, -0.01605215, 0.00970649, 4.04741445, 0.95305338, 0.97424136, 0.50826689],136 [ -3.06807773, -0.01588664, 0.00961439, 4.05219109, 0.95343492, 0.97449897, 0.50744832],137 [ -3.07265789, -0.01572436, 0.00952364, 4.05693353, 0.95380929, 0.97475200, 0.50663356],138 [ -3.07720897, -0.01556522, 0.00943423, 4.06164375, 0.95417670, 0.97500055, 0.50582277],139 [ -3.08173279, -0.01540916, 0.00934613, 4.06632364, 0.95453731, 0.97524472, 0.50501611],140 [ -3.08623109, -0.01525608, 0.00925931, 4.07097501, 0.95489131, 0.97548461, 0.50421372],141 [ -3.09070551, -0.01510592, 0.00917376, 4.07559959, 0.95523888, 0.97572032, 0.50341576],142 [ -3.09515765, -0.01495861, 0.00908946, 4.08019904, 0.95558018, 0.97595193, 0.50262236],143 [ -3.09958899, -0.01481408, 0.00900637, 4.08477492, 0.95591537, 0.97617955, 0.50183364],144 [ -3.10400100, -0.01467225, 0.00892449, 4.08932875, 0.95624461, 0.97640325, 0.50104973],145 [ -3.10839504, -0.01453308, 0.00884379, 4.09386196, 0.95656806, 0.97662313, 0.50027073],146 [ -3.11277241, -0.01439648, 0.00876425, 4.09837593, 0.95688585, 0.97683927, 0.49949676],147 [ -3.11713438, -0.01426240, 0.00868586, 4.10287198, 0.95719812, 0.97705174, 0.49872791],148 [ -3.12148213, -0.01413079, 0.00860858, 4.10735134, 0.95750503, 0.97726063, 0.49796429],149 [ -3.12581680, -0.01400157, 0.00853241, 4.11181522, 0.95780669, 0.97746601, 0.49720597],150 [ -3.13013947, -0.01387471, 0.00845733, 4.11626476, 0.95810324, 0.97766796, 0.49645304],151 [ -3.13445117, -0.01375013, 0.00838331, 4.12070104, 0.95839480, 0.97786656, 0.49570558],152 [ -3.13875289, -0.01362779, 0.00831034, 4.12512510, 0.95868150, 0.97806186, 0.49496366],153 [ -3.14304556, -0.01350764, 0.00823841, 4.12953792, 0.95896344, 0.97825395, 0.49422734],154 [ -3.14733008, -0.01338963, 0.00816748, 4.13394045, 0.95924075, 0.97844289, 0.49349669],155 [ -3.15160728, -0.01327370, 0.00809756, 4.13833358, 0.95951352, 0.97862874, 0.49277177],156 [ -3.15587797, -0.01315981, 0.00802862, 4.14271816, 0.95978188, 0.97881157, 0.49205262],157 [ -3.16014293, -0.01304792, 0.00796064, 4.14709501, 0.96004592, 0.97899144, 0.49133930],158 [ -3.16440288, -0.01293797, 0.00789361, 4.15146491, 0.96030574, 0.97916842, 0.49063185],159 [ -3.16865852, -0.01282993, 0.00782751, 4.15582858, 0.96056144, 0.97934256, 0.48993030],160 [ -3.17291049, -0.01272375, 0.00776233, 4.16018673, 0.96081312, 0.97951392, 0.48923471],161 [ -3.17715942, -0.01261940, 0.00769805, 4.16454003, 0.96106086, 0.97968255, 0.48854509],162 [ -3.18140591, -0.01251682, 0.00763466, 4.16888910, 0.96130476, 0.97984852, 0.48786148],163 [ -3.18565052, -0.01241598, 0.00757215, 4.17323454, 0.96154490, 0.98001187, 0.48718390],164 [ -3.18989378, -0.01231685, 0.00751049, 4.17757693, 0.96178137, 0.98017266, 0.48651237],165 [ -3.19413619, -0.01221938, 0.00744968, 4.18191681, 0.96201424, 0.98033094, 0.48584692],166 [ -3.19837823, -0.01212354, 0.00738970, 4.18625469, 0.96224360, 0.98048676, 0.48518756],167 [ -3.20262035, -0.01202930, 0.00733053, 4.19059105, 0.96246952, 0.98064017, 0.48453431],168 [ -3.20686298, -0.01193661, 0.00727217, 4.19492637, 0.96269208, 0.98079121, 0.48388717],169 [ -3.21110653, -0.01184546, 0.00721461, 4.19926107, 0.96291135, 0.98093994, 0.48324615],170 [ -3.21535137, -0.01175579, 0.00715782, 4.20359557, 0.96312741, 0.98108639, 0.48261126],171 [ -3.21959786, -0.01166759, 0.00710179, 4.20793027, 0.96334031, 0.98123062, 0.48198250],172 [ -3.22384634, -0.01158082, 0.00704652, 4.21226552, 0.96355014, 0.98137266, 0.48135988],173 [ -3.22809714, -0.01149545, 0.00699199, 4.21660169, 0.96375694, 0.98151256, 0.48074338],174 [ -3.23235055, -0.01141146, 0.00693819, 4.22093909, 0.96396080, 0.98165035, 0.48013301],175 [ -3.23660685, -0.01132880, 0.00688511, 4.22527805, 0.96416176, 0.98178609, 0.47952876],176 [ -3.24086631, -0.01124746, 0.00683273, 4.22961885, 0.96435989, 0.98191980, 0.47893063],177 [ -3.24512918, -0.01116741, 0.00678105, 4.23396177, 0.96455525, 0.98205153, 0.47833860],178 [ -3.24939569, -0.01108862, 0.00673005, 4.23830707, 0.96474789, 0.98218132, 0.47775267],179 [ -3.25366606, -0.01101107, 0.00667973, 4.24265499, 0.96493787, 0.98230920, 0.47717282],180 [ -3.25794050, -0.01093473, 0.00663007, 4.24700577, 0.96512525, 0.98243520, 0.47659903],181 [ -3.26221918, -0.01085957, 0.00658106, 4.25135961, 0.96531007, 0.98255937, 0.47603130],182 [ -3.26650230, -0.01078557, 0.00653269, 4.25571672, 0.96549239, 0.98268174, 0.47546960],183 [ -3.27079000, -0.01071272, 0.00648495, 4.26007729, 0.96567225, 0.98280233, 0.47491391],184 [ -3.27508246, -0.01064097, 0.00643784, 4.26444149, 0.96584971, 0.98292119, 0.47436422],185 [ -3.27937980, -0.01057032, 0.00639134, 4.26880948, 0.96602482, 0.98303834, 0.47382051],186 [ -3.28368216, -0.01050074, 0.00634544, 4.27318141, 0.96619761, 0.98315382, 0.47328275],187 [ -3.28798965, -0.01043222, 0.00630013, 4.27755743, 0.96636814, 0.98326765, 0.47275091],188 [ -3.29230239, -0.01036472, 0.00625541, 4.28193767, 0.96653645, 0.98337988, 0.47222499],189 [ -3.29662047, -0.01029823, 0.00621126, 4.28632224, 0.96670258, 0.98349051, 0.47170494],190 [ -3.30094399, -0.01023273, 0.00616768, 4.29071126, 0.96686657, 0.98359960, 0.47119074],191 [ -3.30527303, -0.01016819, 0.00612465, 4.29510483, 0.96702847, 0.98370715, 0.47068237],192 [ -3.30960766, -0.01010461, 0.00608218, 4.29950304, 0.96718831, 0.98381321, 0.47017979],193 [ -3.31394795, -0.01004197, 0.00604024, 4.30390598, 0.96734614, 0.98391779, 0.46968299],194 [ -3.31829395, -0.00998024, 0.00599883, 4.30831372, 0.96750198, 0.98402093, 0.46919192],195 [ -3.32264573, -0.00991940, 0.00595795, 4.31272633, 0.96765588, 0.98412265, 0.46870656],196 [ -3.32700331, -0.00985945, 0.00591759, 4.31714387, 0.96780788, 0.98422297, 0.46822687],197 [ -3.33136675, -0.00980035, 0.00587773, 4.32156640, 0.96795801, 0.98432191, 0.46775284],198 [ -3.33573607, -0.00974211, 0.00583838, 4.32599396, 0.96810630, 0.98441951, 0.46728441],199 [ -3.34011130, -0.00968470, 0.00579951, 4.33042660, 0.96825278, 0.98451579, 0.46682157],200 [ -3.34449246, -0.00962810, 0.00576113, 4.33486436, 0.96839750, 0.98461077, 0.46636427],201 [ -3.34887956, -0.00957230, 0.00572323, 4.33930726, 0.96854048, 0.98470447, 0.46591248],202 [ -3.35327261, -0.00951729, 0.00568581, 4.34375533, 0.96868175, 0.98479691, 0.46546617],203 [ -3.35767163, -0.00946304, 0.00564884, 4.34820858, 0.96882135, 0.98488812, 0.46502531],204 [ -3.36207660, -0.00940956, 0.00561233, 4.35266704, 0.96895930, 0.98497811, 0.46458986],205 [ -3.36648753, -0.00935681, 0.00557627, 4.35713071, 0.96909563, 0.98506691, 0.46415977],206 [ -3.37090440, -0.00930480, 0.00554066, 4.36159960, 0.96923037, 0.98515454, 0.46373503],207 [ -3.37532721, -0.00925350, 0.00550548, 4.36607371, 0.96936355, 0.98524102, 0.46331559],208 [ -3.37975593, -0.00920290, 0.00547073, 4.37055303, 0.96949520, 0.98532636, 0.46290141],209 [ -3.38419056, -0.00915300, 0.00543641, 4.37503756, 0.96962535, 0.98541059, 0.46249246],210 [ -3.38863105, -0.00910377, 0.00540251, 4.37952729, 0.96975401, 0.98549373, 0.46208870],211 [ -3.39307740, -0.00905520, 0.00536901, 4.38402220, 0.96988122, 0.98557578, 0.46169009],212 [ -3.39752956, -0.00900729, 0.00533593, 4.38852227, 0.97000699, 0.98565678, 0.46129660],213 [ -3.40198751, -0.00896002, 0.00530324, 4.39302749, 0.97013137, 0.98573674, 0.46090819],214 [ -3.40645121, -0.00891338, 0.00527095, 4.39753783, 0.97025435, 0.98581567, 0.46052482],215 [ -3.41092063, -0.00886736, 0.00523904, 4.40205326, 0.97037598, 0.98589360, 0.46014645],216 [ -3.41539571, -0.00882195, 0.00520752, 4.40657376, 0.97049628, 0.98597053, 0.45977305],217 [ -3.41987643, -0.00877713, 0.00517637, 4.41109929, 0.97061526, 0.98604649, 0.45940458],218 [ -3.42436272, -0.00873290, 0.00514560, 4.41562982, 0.97073295, 0.98612149, 0.45904100],219 [ -3.42885456, -0.00868925, 0.00511520, 4.42016531, 0.97084936, 0.98619555, 0.45868227],220 [ -3.43335188, -0.00864617, 0.00508515, 4.42470571, 0.97096453, 0.98626868, 0.45832835],221 [ -3.43785464, -0.00860364, 0.00505546, 4.42925100, 0.97107847, 0.98634090, 0.45797921],222 [ -3.44236278, -0.00856166, 0.00502613, 4.43380112, 0.97119120, 0.98641222, 0.45763480],223 [ -3.44687625, -0.00852021, 0.00499714, 4.43835604, 0.97130274, 0.98648265, 0.45729509],224 [ -3.45139500, -0.00847930, 0.00496849, 4.44291570, 0.97141311, 0.98655221, 0.45696005],225 [ -3.45591895, -0.00843890, 0.00494017, 4.44748005, 0.97152233, 0.98662092, 0.45662962],226 [ -3.46044807, -0.00839902, 0.00491219, 4.45204905, 0.97163042, 0.98668879, 0.45630378],227 [ -3.46498227, -0.00835964, 0.00488454, 4.45662264, 0.97173739, 0.98675583, 0.45598249],228 [ -3.46952151, -0.00832075, 0.00485721, 4.46120077, 0.97184326, 0.98682205, 0.45566570],229 [ -3.47406572, -0.00828234, 0.00483019, 4.46578338, 0.97194805, 0.98688746, 0.45535338],230 [ -3.47861484, -0.00824442, 0.00480349, 4.47037042, 0.97205179, 0.98695209, 0.45504550],231 [ -3.48316880, -0.00820696, 0.00477710, 4.47496184, 0.97215447, 0.98701594, 0.45474201],232 [ -3.48772753, -0.00816996, 0.00475102, 4.47955756, 0.97225612, 0.98707902, 0.45444287],233 [ -3.49229097, -0.00813342, 0.00472523, 4.48415755, 0.97235676, 0.98714134, 0.45414806],234 [ -3.49685904, -0.00809733, 0.00469975, 4.48876172, 0.97245640, 0.98720293, 0.45385753],235 [ -3.50143169, -0.00806167, 0.00467455, 4.49337002, 0.97255506, 0.98726378, 0.45357123],236 [ -3.50600884, -0.00802644, 0.00464964, 4.49798240, 0.97265275, 0.98732391, 0.45328915],237 [ -3.51059042, -0.00799164, 0.00462502, 4.50259878, 0.97274949, 0.98738333, 0.45301123],238 [ -3.51517637, -0.00795726, 0.00460068, 4.50721911, 0.97284528, 0.98744206, 0.45273745],239 [ -3.51976660, -0.00792329, 0.00457662, 4.51184331, 0.97294015, 0.98750009, 0.45246776],240 [ -3.52436105, -0.00788972, 0.00455283, 4.51647133, 0.97303411, 0.98755745, 0.45220214],241 [ -3.52895964, -0.00785655, 0.00452930, 4.52110309, 0.97312718, 0.98761414, 0.45194053],242 [ -3.53356231, -0.00782377, 0.00450605, 4.52573854, 0.97321936, 0.98767018, 0.45168291],243 [ -3.53816898, -0.00779138, 0.00448306, 4.53037760, 0.97331067, 0.98772556, 0.45142923],244 [ -3.54277957, -0.00775937, 0.00446032, 4.53502021, 0.97340111, 0.98778031, 0.45117947],245 [ -3.54739402, -0.00772773, 0.00443784, 4.53966629, 0.97349072, 0.98783443, 0.45093359],246 [ -3.55201224, -0.00769645, 0.00441562, 4.54431579, 0.97357949, 0.98788793, 0.45069155],247 [ -3.55663417, -0.00766554, 0.00439364, 4.54896864, 0.97366744, 0.98794082, 0.45045331],248 [ -3.56125973, -0.00763498, 0.00437190, 4.55362475, 0.97375458, 0.98799311, 0.45021885],249 [ -3.56588885, -0.00760478, 0.00435041, 4.55828407, 0.97384092, 0.98804481, 0.44998812],250 [ -3.57052145, -0.00757491, 0.00432916, 4.56294653, 0.97392648, 0.98809593, 0.44976109],251 [ -3.57515745, -0.00754539, 0.00430814, 4.56761206, 0.97401126, 0.98814646, 0.44953772],252 [ -3.57979678, -0.00751620, 0.00428736, 4.57228058, 0.97409528, 0.98819644, 0.44931799],253 [ -3.58443937, -0.00748734, 0.00426681, 4.57695203, 0.97417854, 0.98824585, 0.44910185],254 [ -3.58908514, -0.00745880, 0.00424648, 4.58162633, 0.97426107, 0.98829472, 0.44888928],255 [ -3.59373401, -0.00743059, 0.00422637, 4.58630343, 0.97434286, 0.98834304, 0.44868023],256 [ -3.59838592, -0.00740268, 0.00420649, 4.59098323, 0.97442393, 0.98839083, 0.44847468],257 [ -3.60304078, -0.00737509, 0.00418682, 4.59566569, 0.97450428, 0.98843809, 0.44827259],258 [ -3.60769852, -0.00734780, 0.00416737, 4.60035072, 0.97458394, 0.98848483, 0.44807392],259 [ -3.61235907, -0.00732081, 0.00414813, 4.60503826, 0.97466290, 0.98853106, 0.44787865],260 [ -3.61702235, -0.00729411, 0.00412910, 4.60972823, 0.97474118, 0.98857678, 0.44768674],261 [ -3.62168828, -0.00726771, 0.00411028, 4.61442057, 0.97481879, 0.98862201, 0.44749816],262 [ -3.62635680, -0.00724159, 0.00409166, 4.61911521, 0.97489573, 0.98866675, 0.44731288],263 [ -3.63102782, -0.00721575, 0.00407325, 4.62381207, 0.97497202, 0.98871100, 0.44713086],264 [ -3.63570128, -0.00719020, 0.00405503, 4.62851108, 0.97504766, 0.98875478, 0.44695207],265 [ -3.64037709, -0.00716491, 0.00403700, 4.63321218, 0.97512267, 0.98879808, 0.44677649],266 [ -3.64505519, -0.00713990, 0.00401918, 4.63791530, 0.97519704, 0.98884093, 0.44660407],267 [ -3.64973550, -0.00711515, 0.00400154, 4.64262036, 0.97527080, 0.98888331, 0.44643478],268 [ -3.65441795, -0.00709066, 0.00398409, 4.64732729, 0.97534394, 0.98892525, 0.44626861],269 [ -3.65910247, -0.00706643, 0.00396683, 4.65203604, 0.97541648, 0.98896674, 0.44610551],270 [ -3.66378898, -0.00704246, 0.00394975, 4.65674652, 0.97548842, 0.98900779, 0.44594545],271 [ -3.66847740, -0.00701873, 0.00393286, 4.66145867, 0.97555978, 0.98904841, 0.44578841],272 [ -3.67316767, -0.00699526, 0.00391614, 4.66617242, 0.97563055, 0.98908860, 0.44563435],273 [ -3.67785972, -0.00697202, 0.00389960, 4.67088770, 0.97570076, 0.98912838, 0.44548324],274 [ -3.68255347, -0.00694903, 0.00388324, 4.67560444, 0.97577039, 0.98916773, 0.44533506],275 [ -3.68724885, -0.00692627, 0.00386705, 4.68032258, 0.97583947, 0.98920668, 0.44518977],276 [ -3.69194579, -0.00690374, 0.00385103, 4.68504204, 0.97590800, 0.98924523, 0.44504735],277 [ -3.69664421, -0.00688145, 0.00383518, 4.68976277, 0.97597598, 0.98928338, 0.44490776],278 [ -3.70134406, -0.00685938, 0.00381949, 4.69448468, 0.97604342, 0.98932113, 0.44477099],279 [ -3.70604525, -0.00683753, 0.00380397, 4.69920772, 0.97611034, 0.98935850, 0.44463698],280 [ -3.71074772, -0.00681590, 0.00378861, 4.70393182, 0.97617673, 0.98939548, 0.44450573],281 [ -3.71545140, -0.00679449, 0.00377342, 4.70865691, 0.97624261, 0.98943209, 0.44437720],282 [ -3.72015622, -0.00677330, 0.00375838, 4.71338292, 0.97630797, 0.98946833, 0.44425137],283 [ -3.72486211, -0.00675231, 0.00374349, 4.71810980, 0.97637283, 0.98950420, 0.44412820],284 [ -3.72956899, -0.00673153, 0.00372877, 4.72283746, 0.97643720, 0.98953970, 0.44400767],285 [ -3.73427682, -0.00671096, 0.00371419, 4.72756585, 0.97650107, 0.98957485, 0.44388975],286 [ -3.73898550, -0.00669059, 0.00369976, 4.73229491, 0.97656446, 0.98960965, 0.44377441],287 [ -3.74369498, -0.00667042, 0.00368549, 4.73702457, 0.97662737, 0.98964409, 0.44366163],288 [ -3.74840519, -0.00665044, 0.00367136, 4.74175475, 0.97668980, 0.98967820, 0.44355139],289 [ -3.75311607, -0.00663066, 0.00365738, 4.74648541, 0.97675177, 0.98971196, 0.44344364],290 [ -3.75782754, -0.00661107, 0.00364354, 4.75121648, 0.97681327, 0.98974540, 0.44333838],291 [ -3.76253955, -0.00659167, 0.00362984, 4.75594788, 0.97687432, 0.98977850, 0.44323557],292 [ -3.76725202, -0.00657245, 0.00361628, 4.76067957, 0.97693492, 0.98981127, 0.44313518],293 [ -3.77196489, -0.00655341, 0.00360286, 4.76541147, 0.97699508, 0.98984372, 0.44303720],294 [ -3.77667809, -0.00653456, 0.00358958, 4.77014353, 0.97705479, 0.98987586, 0.44294159],295 [ -3.78139156, -0.00651589, 0.00357643, 4.77487568, 0.97711407, 0.98990768, 0.44284833],296 [ -3.78610525, -0.00649739, 0.00356342, 4.77960786, 0.97717292, 0.98993920, 0.44275740],297 [ -3.79081907, -0.00647906, 0.00355053, 4.78434001, 0.97723134, 0.98997040, 0.44266877],298 [ -3.79553298, -0.00646091, 0.00353778, 4.78907207, 0.97728935, 0.99000131, 0.44258241],299 [ -3.80024690, -0.00644292, 0.00352516, 4.79380398, 0.97734694, 0.99003192, 0.44249831],300 [ -3.80496078, -0.00642510, 0.00351266, 4.79853567, 0.97740413, 0.99006223, 0.44241644],301 [ -3.80967455, -0.00640745, 0.00350029, 4.80326710, 0.97746090, 0.99009226, 0.44233677],302 [ -3.81438815, -0.00638996, 0.00348804, 4.80799819, 0.97751728, 0.99012200, 0.44225928],303 [ -3.81910152, -0.00637262, 0.00347592, 4.81272889, 0.97757326, 0.99015145, 0.44218395],304 [ -3.82381460, -0.00635545, 0.00346392, 4.81745915, 0.97762886, 0.99018063, 0.44211076],305 [ -3.82852732, -0.00633843, 0.00345204, 4.82218889, 0.97768406, 0.99020953, 0.44203968],306 [ -3.83323964, -0.00632157, 0.00344027, 4.82691808, 0.97773889, 0.99023816, 0.44197068],307 [ -3.83795149, -0.00630485, 0.00342863, 4.83164664, 0.97779333, 0.99026652, 0.44190376],308 [ -3.84266280, -0.00628829, 0.00341709, 4.83637452, 0.97784741, 0.99029462, 0.44183887],309 [ -3.84737353, -0.00627187, 0.00340568, 4.84110166, 0.97790111, 0.99032245, 0.44177601],310 [ -3.85208361, -0.00625560, 0.00339437, 4.84582801, 0.97795446, 0.99035003, 0.44171515],311 [ -3.85679299, -0.00623948, 0.00338318, 4.85055351, 0.97800744, 0.99037735, 0.44165627],312 [ -3.86150160, -0.00622349, 0.00337210, 4.85527811, 0.97806006, 0.99040441, 0.44159934],313 [ -3.86620939, -0.00620765, 0.00336112, 4.86000175, 0.97811233, 0.99043123, 0.44154435],314 [ -3.87091631, -0.00619194, 0.00335026, 4.86472437, 0.97816426, 0.99045780, 0.44149127],315 [ -3.87562229, -0.00617637, 0.00333950, 4.86944592, 0.97821584, 0.99048413, 0.44144009],316 [ -3.88032729, -0.00616094, 0.00332885, 4.87416635, 0.97826708, 0.99051022, 0.44139078],317 [ -3.88503124, -0.00614564, 0.00331830, 4.87888561, 0.97831798, 0.99053607, 0.44134332],318 [ -3.88973410, -0.00613047, 0.00330785, 4.88360363, 0.97836855, 0.99056168, 0.44129769],319 [ -3.89443580, -0.00611543, 0.00329750, 4.88832037, 0.97841879, 0.99058707, 0.44125387],320 [ -3.89913629, -0.00610051, 0.00328726, 4.89303577, 0.97846870, 0.99061223, 0.44121185],321 [ -3.90383552, -0.00608573, 0.00327711, 4.89774979, 0.97851829, 0.99063716, 0.44117159],322 [ -3.90853343, -0.00607107, 0.00326707, 4.90246236, 0.97856756, 0.99066187, 0.44113309],323 [ -3.91322998, -0.00605653, 0.00325712, 4.90717345, 0.97861652, 0.99068635, 0.44109632],324 [ -3.91792511, -0.00604212, 0.00324726, 4.91188299, 0.97866516, 0.99071062, 0.44106126],325 [ -3.92261876, -0.00602782, 0.00323750, 4.91659094, 0.97871350, 0.99073468, 0.44102790],326 [ -3.92731089, -0.00601364, 0.00322784, 4.92129724, 0.97876153, 0.99075852, 0.44099621],327 [ -3.93200144, -0.00599958, 0.00321826, 4.92600186, 0.97880926, 0.99078215, 0.44096618],328 [ -3.93669036, -0.00598564, 0.00320878, 4.93070472, 0.97885669, 0.99080558, 0.44093779],329 [ -3.94137761, -0.00597181, 0.00319939, 4.93540580, 0.97890383, 0.99082880, 0.44091101],330 [ -3.94606313, -0.00595809, 0.00319009, 4.94010504, 0.97895067, 0.99085182, 0.44088584],331 [ -3.95074687, -0.00594449, 0.00318088, 4.94480238, 0.97899722, 0.99087463, 0.44086225],332 [ -3.95542878, -0.00593099, 0.00317175, 4.94949779, 0.97904349, 0.99089725, 0.44084022],333 [ -3.96010882, -0.00591761, 0.00316271, 4.95419121, 0.97908947, 0.99091968, 0.44081975],334 [ -3.96478693, -0.00590433, 0.00315376, 4.95888260, 0.97913517, 0.99094191, 0.44080080],335 [ -3.96946306, -0.00589116, 0.00314489, 4.96357191, 0.97918060, 0.99096395, 0.44078336],336 [ -3.97413718, -0.00587809, 0.00313611, 4.96825909, 0.97922575, 0.99098581, 0.44076742],337 [ -3.97880922, -0.00586512, 0.00312740, 4.97294410, 0.97927063, 0.99100747, 0.44075296],338 [ -3.98347915, -0.00585226, 0.00311878, 4.97762689, 0.97931524, 0.99102895, 0.44073996],339 [ -3.98814692, -0.00583950, 0.00311024, 4.98230742, 0.97935959, 0.99105026, 0.44072841],340 [ -3.99281247, -0.00582684, 0.00310178, 4.98698564, 0.97940367, 0.99107138, 0.44071828],341 [ -3.99747577, -0.00581428, 0.00309340, 4.99166150, 0.97944749, 0.99109232, 0.44070956],342 [ -4.00213677, -0.00580181, 0.00308510, 4.99633496, 0.97949105, 0.99111309, 0.44070224],343 [ -4.00679542, -0.00578944, 0.00307688, 5.00100598, 0.97953436, 0.99113368, 0.44069630],344 [ -4.01145168, -0.00577717, 0.00306873, 5.00567451, 0.97957741, 0.99115410, 0.44069173],345 [ -4.01610551, -0.00576499, 0.00306065, 5.01034052, 0.97962021, 0.99117436, 0.44068850],346 [ -4.02075685, -0.00575290, 0.00305266, 5.01500395, 0.97966277, 0.99119444, 0.44068660],347 [ -4.02540567, -0.00574091, 0.00304473, 5.01966476, 0.97970508, 0.99121436, 0.44068602],348 [ -4.03005191, -0.00572900, 0.00303688, 5.02432291, 0.97974715, 0.99123412, 0.44068674],349 [ -4.03469555, -0.00571719, 0.00302910, 5.02897837, 0.97978897, 0.99125371, 0.44068875],350 [ -4.03933654, -0.00570546, 0.00302139, 5.03363108, 0.97983056, 0.99127315, 0.44069203],351 [ -4.04397482, -0.00569382, 0.00301375, 5.03828100, 0.97987192, 0.99129242, 0.44069657],352 [ -4.04861037, -0.00568227, 0.00300619, 5.04292810, 0.97991304, 0.99131154, 0.44070234],353 [ -4.05324314, -0.00567080, 0.00299869, 5.04757234, 0.97995393, 0.99133051, 0.44070935],354 [ -4.05787308, -0.00565942, 0.00299126, 5.05221367, 0.97999459, 0.99134932, 0.44071756],355 [ -4.06250017, -0.00564812, 0.00298390, 5.05685205, 0.98003502, 0.99136799, 0.44072698],356 [ -4.06712435, -0.00563690, 0.00297660, 5.06148744, 0.98007523, 0.99138650, 0.44073757],357 [ -4.07174558, -0.00562577, 0.00296937, 5.06611981, 0.98011522, 0.99140486, 0.44074934],358 [ -4.07636383, -0.00561471, 0.00296221, 5.07074912, 0.98015498, 0.99142308, 0.44076227],359 [ -4.08097906, -0.00560374, 0.00295511, 5.07537532, 0.98019453, 0.99144116, 0.44077633],360 [ -4.08559122, -0.00559284, 0.00294807, 5.07999838, 0.98023386, 0.99145909, 0.44079153],361 [ -4.09020028, -0.00558202, 0.00294110, 5.08461826, 0.98027298, 0.99147688, 0.44080784],362 [ -4.09480620, -0.00557128, 0.00293419, 5.08923492, 0.98031189, 0.99149453, 0.44082525],363 [ -4.09940894, -0.00556061, 0.00292734, 5.09384833, 0.98035059, 0.99151204, 0.44084375],364 [ -4.10400846, -0.00555002, 0.00292056, 5.09845844, 0.98038908, 0.99152942, 0.44086333],365 [ -4.10860473, -0.00553950, 0.00291383, 5.10306522, 0.98042736, 0.99154666, 0.44088396],366 [ -4.11319770, -0.00552906, 0.00290717, 5.10766864, 0.98046544, 0.99156377, 0.44090565],367 [ -4.11778734, -0.00551869, 0.00290056, 5.11226865, 0.98050332, 0.99158075, 0.44092838],368 [ -4.12237362, -0.00550839, 0.00289401, 5.11686523, 0.98054100, 0.99159760, 0.44095213],369 [ -4.12695649, -0.00549816, 0.00288752, 5.12145833, 0.98057848, 0.99161431, 0.44097689],370 [ -4.13153592, -0.00548801, 0.00288109, 5.12604792, 0.98061577, 0.99163090, 0.44100265],371 [ -4.13611188, -0.00547792, 0.00287471, 5.13063396, 0.98065286, 0.99164737, 0.44102940],372 [ -4.14068433, -0.00546790, 0.00286839, 5.13521643, 0.98068975, 0.99166371, 0.44105712],373 [ -4.14525323, -0.00545795, 0.00286213, 5.13979528, 0.98072646, 0.99167992, 0.44108581],374 [ -4.14981854, -0.00544806, 0.00285592, 5.14437048, 0.98076298, 0.99169602, 0.44111544],375 [ -4.15438025, -0.00543824, 0.00284976, 5.14894200, 0.98079931, 0.99171199, 0.44114602],376 [ -4.15893830, -0.00542849, 0.00284366, 5.15350981, 0.98083545, 0.99172785, 0.44117753],377 [ -4.16349267, -0.00541880, 0.00283761, 5.15807386, 0.98087141, 0.99174358, 0.44120995],378 [ -4.16804332, -0.00540918, 0.00283162, 5.16263414, 0.98090719, 0.99175920, 0.44124328],379 [ -4.17259021, -0.00539962, 0.00282567, 5.16719060, 0.98094278, 0.99177471, 0.44127750],380 [ -4.17713333, -0.00539012, 0.00281978, 5.17174321, 0.98097820, 0.99179010, 0.44131260],381 [ -4.18167262, -0.00538069, 0.00281394, 5.17629194, 0.98101344, 0.99180537, 0.44134857],382 [ -4.18620807, -0.00537131, 0.00280815, 5.18083676, 0.98104851, 0.99182054, 0.44138541],383 [ -4.19073963, -0.00536200, 0.00280241, 5.18537763, 0.98108340, 0.99183560, 0.44142309],384 [ -4.19526728, -0.00535274, 0.00279671, 5.18991453, 0.98111811, 0.99185054, 0.44146162],385 [ -4.19979098, -0.00534355, 0.00279107, 5.19444743, 0.98115266, 0.99186538, 0.44150097],386 [ -4.20431070, -0.00533441, 0.00278548, 5.19897629, 0.98118704, 0.99188011, 0.44154114],387 [ -4.20882641, -0.00532534, 0.00277993, 5.20350108, 0.98122125, 0.99189474, 0.44158211],388 [ -4.21333809, -0.00531632, 0.00277443, 5.20802177, 0.98125529, 0.99190926, 0.44162389],389 [ -4.21784569, -0.00530735, 0.00276897, 5.21253834, 0.98128916, 0.99192367, 0.44166645],390 [ -4.22234919, -0.00529845, 0.00276357, 5.21705075, 0.98132288, 0.99193799, 0.44170979],391 [ -4.22684856, -0.00528959, 0.00275820, 5.22155897, 0.98135643, 0.99195220, 0.44175389],392 [ -4.23134377, -0.00528080, 0.00275289, 5.22606297, 0.98138982, 0.99196631, 0.44179875],393 [ -4.23583479, -0.00527206, 0.00274762, 5.23056273, 0.98142305, 0.99198033, 0.44184436],394 [ -4.24032159, -0.00526337, 0.00274239, 5.23505822, 0.98145612, 0.99199424, 0.44189070],395 [ -4.24480413, -0.00525473, 0.00273720, 5.23954940, 0.98148904, 0.99200806, 0.44193777],396 [ -4.24928241, -0.00524615, 0.00273206, 5.24403626, 0.98152180, 0.99202179, 0.44198557],397 [ -4.25375637, -0.00523762, 0.00272697, 5.24851875, 0.98155440, 0.99203541, 0.44203406],398 [ -4.25822600, -0.00522914, 0.00272191, 5.25299686, 0.98158685, 0.99204895, 0.44208326],399 [ -4.26269127, -0.00522071, 0.00271690, 5.25747055, 0.98161916, 0.99206239, 0.44213315],400 [ -4.26715214, -0.00521233, 0.00271193, 5.26193981, 0.98165131, 0.99207574, 0.44218372],401 [ -4.27160860, -0.00520401, 0.00270700, 5.26640459, 0.98168331, 0.99208900, 0.44223496],402 [ -4.27606061, -0.00519573, 0.00270211, 5.27086489, 0.98171516, 0.99210217, 0.44228686],403 [ -4.28050816, -0.00518750, 0.00269726, 5.27532066, 0.98174687, 0.99211524, 0.44233942],404 [ -4.28495120, -0.00517932, 0.00269245, 5.27977188, 0.98177844, 0.99212824, 0.44239262],405 [ -4.28938971, -0.00517119, 0.00268767, 5.28421853, 0.98180986, 0.99214114, 0.44244646],406 [ -4.29382368, -0.00516310, 0.00268294, 5.28866058, 0.98184113, 0.99215396, 0.44250093],407 [ -4.29825306, -0.00515506, 0.00267825, 5.29309800, 0.98187227, 0.99216669, 0.44255601],408 [ -4.30267785, -0.00514707, 0.00267359, 5.29753078, 0.98190326, 0.99217934, 0.44261171],409 [ -4.30709800, -0.00513912, 0.00266898, 5.30195888, 0.98193412, 0.99219190, 0.44266801],410 [ -4.31151350, -0.00513122, 0.00266440, 5.30638227, 0.98196483, 0.99220438, 0.44272490],411 [ -4.31592431, -0.00512337, 0.00265985, 5.31080095, 0.98199542, 0.99221678, 0.44278238],412 [ -4.32033043, -0.00511555, 0.00265535, 5.31521487, 0.98202586, 0.99222910, 0.44284044],413 [ -4.32473181, -0.00510779, 0.00265088, 5.31962403, 0.98205617, 0.99224134, 0.44289907],414 [ -4.32912844, -0.00510006, 0.00264644, 5.32402838, 0.98208635, 0.99225350, 0.44295825],415 [ -4.33352030, -0.00509238, 0.00264204, 5.32842792, 0.98211639, 0.99226558, 0.44301800],416 [ -4.33790735, -0.00508474, 0.00263768, 5.33282261, 0.98214630, 0.99227758, 0.44307829],417 [ -4.34228957, -0.00507715, 0.00263335, 5.33721243, 0.98217609, 0.99228950, 0.44313911],418 [ -4.34666695, -0.00506959, 0.00262906, 5.34159736, 0.98220574, 0.99230135, 0.44320047],419 [ -4.35103946, -0.00506208, 0.00262479, 5.34597738, 0.98223526, 0.99231313, 0.44326235],420 [ -4.35540706, -0.00505461, 0.00262057, 5.35035246, 0.98226466, 0.99232483, 0.44332475],421 [ -4.35976976, -0.00504718, 0.00261637, 5.35472258, 0.98229393, 0.99233645, 0.44338766],422 [ -4.36412751, -0.00503978, 0.00261221, 5.35908772, 0.98232308, 0.99234800, 0.44345107],423 [ -4.36848029, -0.00503243, 0.00260808, 5.36344786, 0.98235210, 0.99235949, 0.44351497],424 [ -4.37282810, -0.00502512, 0.00260399, 5.36780298, 0.98238100, 0.99237089, 0.44357936],425 [ -4.37717089, -0.00501785, 0.00259992, 5.37215304, 0.98240977, 0.99238223, 0.44364422],426 [ -4.38150866, -0.00501061, 0.00259589, 5.37649804, 0.98243843, 0.99239350, 0.44370956],427 [ -4.38584137, -0.00500341, 0.00259189, 5.38083796, 0.98246696, 0.99240470, 0.44377537],428 [ -4.39016901, -0.00499626, 0.00258792, 5.38517276, 0.98249538, 0.99241583, 0.44384163],429 [ -4.39449156, -0.00498913, 0.00258397, 5.38950243, 0.98252368, 0.99242689, 0.44390835],430 [ -4.39880900, -0.00498205, 0.00258006, 5.39382695, 0.98255186, 0.99243789, 0.44397551],431 [ -4.40312130, -0.00497500, 0.00257618, 5.39814630, 0.98257992, 0.99244881, 0.44404311],432 [ -4.40742845, -0.00496799, 0.00257233, 5.40246046, 0.98260787, 0.99245968, 0.44411114],433 [ -4.41173042, -0.00496101, 0.00256851, 5.40676940, 0.98263570, 0.99247047, 0.44417960],434 [ -4.41602719, -0.00495407, 0.00256472, 5.41107312, 0.98266342, 0.99248121, 0.44424847],435 [ -4.42031875, -0.00494717, 0.00256096, 5.41537158, 0.98269102, 0.99249187, 0.44431776],436 [ -4.42460508, -0.00494030, 0.00255722, 5.41966478, 0.98271852, 0.99250248, 0.44438745],437 [ -4.42888615, -0.00493346, 0.00255351, 5.42395268, 0.98274590, 0.99251302, 0.44445755],438 [ -4.43316194, -0.00492666, 0.00254984, 5.42823528, 0.98277317, 0.99252350, 0.44452803],439 [ -4.43743244, -0.00491989, 0.00254618, 5.43251255, 0.98280033, 0.99253392, 0.44459891],440 [ -4.44169763, -0.00491316, 0.00254256, 5.43678447, 0.98282738, 0.99254428, 0.44467016],441 [ -4.44595749, -0.00490646, 0.00253896, 5.44105103, 0.98285433, 0.99255458, 0.44474179],442 [ -4.45021200, -0.00489979, 0.00253539, 5.44531221, 0.98288117, 0.99256482, 0.44481379],443 [ -4.45446115, -0.00489316, 0.00253185, 5.44956799, 0.98290790, 0.99257500, 0.44488616],444 [ -4.45870490, -0.00488655, 0.00252833, 5.45381835, 0.98293452, 0.99258512, 0.44495888],445 [ -4.46294326, -0.00487998, 0.00252484, 5.45806327, 0.98296105, 0.99259518, 0.44503195],446 [ -4.46717619, -0.00487344, 0.00252137, 5.46230275, 0.98298746, 0.99260519, 0.44510537],447 [ -4.47140368, -0.00486693, 0.00251793, 5.46653675, 0.98301378, 0.99261514, 0.44517912],448 [ -4.47562571, -0.00486046, 0.00251451, 5.47076526, 0.98303999, 0.99262503, 0.44525322],449 [ -4.47984227, -0.00485401, 0.00251112, 5.47498827, 0.98306610, 0.99263487, 0.44532764],450 [ -4.48405334, -0.00484759, 0.00250775, 5.47920575, 0.98309211, 0.99264465, 0.44540238],451 [ -4.48825891, -0.00484121, 0.00250441, 5.48341770, 0.98311802, 0.99265438, 0.44547744],452 [ -4.49245894, -0.00483485, 0.00250109, 5.48762409, 0.98314383, 0.99266406, 0.44555282],453 [ -4.49665344, -0.00482852, 0.00249780, 5.49182492, 0.98316954, 0.99267368, 0.44562850],454 [ -4.50084238, -0.00482223, 0.00249453, 5.49602015, 0.98319515, 0.99268325, 0.44570449],455 [ -4.50502575, -0.00481596, 0.00249128, 5.50020979, 0.98322067, 0.99269277, 0.44578077],456 [ -4.50920352, -0.00480972, 0.00248805, 5.50439380, 0.98324609, 0.99270223, 0.44585734],457 [ -4.51337569, -0.00480350, 0.00248485, 5.50857219, 0.98327141, 0.99271164, 0.44593420],458 [ -4.51754224, -0.00479732, 0.00248167, 5.51274492, 0.98329664, 0.99272101, 0.44601134],459 [ -4.52170315, -0.00479117, 0.00247851, 5.51691199, 0.98332177, 0.99273032, 0.44608876],460 [ -4.52585842, -0.00478504, 0.00247538, 5.52107338, 0.98334681, 0.99273958, 0.44616645],461 [ -4.53000801, -0.00477894, 0.00247227, 5.52522907, 0.98337176, 0.99274880, 0.44624440],462 [ -4.53415192, -0.00477286, 0.00246917, 5.52937906, 0.98339661, 0.99275796, 0.44632262],463 [ -4.53829014, -0.00476682, 0.00246610, 5.53352332, 0.98342137, 0.99276708, 0.44640109],464 [ -4.54242264, -0.00476080, 0.00246306, 5.53766184, 0.98344605, 0.99277615, 0.44647982],465 [ -4.54654942, -0.00475480, 0.00246003, 5.54179461, 0.98347063, 0.99278517, 0.44655879],466 [ -4.55067046, -0.00474884, 0.00245702, 5.54592162, 0.98349512, 0.99279414, 0.44663801],467 [ -4.55478574, -0.00474290, 0.00245404, 5.55004285, 0.98351952, 0.99280307, 0.44671746],468 [ -4.55889526, -0.00473698, 0.00245107, 5.55415828, 0.98354383, 0.99281195, 0.44679715],469 [ -4.56299899, -0.00473109, 0.00244812, 5.55826790, 0.98356806, 0.99282079, 0.44687706],470 [ -4.56709693, -0.00472522, 0.00244520, 5.56237170, 0.98359219, 0.99282958, 0.44695720],471 [ -4.57118906, -0.00471938, 0.00244229, 5.56646967, 0.98361625, 0.99283832, 0.44703756],472 [ -4.57527536, -0.00471357, 0.00243940, 5.57056179, 0.98364021, 0.99284703, 0.44711814],473 [ -4.57935583, -0.00470778, 0.00243654, 5.57464806, 0.98366409, 0.99285569, 0.44719893],474 [ -4.58343045, -0.00470201, 0.00243369, 5.57872844, 0.98368788, 0.99286430, 0.44727992],475 [ -4.58749921, -0.00469627, 0.00243086, 5.58280295, 0.98371159, 0.99287287, 0.44736112],476 [ -4.59156210, -0.00469055, 0.00242805, 5.58687155, 0.98373522, 0.99288140, 0.44744252],477 [ -4.59561910, -0.00468485, 0.00242526, 5.59093424, 0.98375876, 0.99288989, 0.44752411],478 [ -4.59967020, -0.00467918, 0.00242248, 5.59499102, 0.98378222, 0.99289833, 0.44760589],479 [ -4.60371538, -0.00467353, 0.00241973, 5.59904185, 0.98380560, 0.99290674, 0.44768785],480 [ -4.60775465, -0.00466791, 0.00241699, 5.60308674, 0.98382890, 0.99291510, 0.44777000],481 [ -4.61178797, -0.00466230, 0.00241427, 5.60712567, 0.98385211, 0.99292343, 0.44785233],482 [ -4.61581536, -0.00465672, 0.00241157, 5.61115863, 0.98387525, 0.99293171, 0.44793483],483 [ -4.61983678, -0.00465116, 0.00240889, 5.61518561, 0.98389830, 0.99293995, 0.44801750],484 [ -4.62385223, -0.00464563, 0.00240622, 5.61920660, 0.98392128, 0.99294815, 0.44810034],485 [ -4.62786170, -0.00464011, 0.00240357, 5.62322158, 0.98394418, 0.99295632, 0.44818334],486 [ -4.63186517, -0.00463462, 0.00240093, 5.62723055, 0.98396700, 0.99296444, 0.44826650],487 [ -4.63586264, -0.00462915, 0.00239832, 5.63123349, 0.98398974, 0.99297253, 0.44834982],488 [ -4.63985410, -0.00462370, 0.00239572, 5.63523040, 0.98401240, 0.99298058, 0.44843328],489 [ -4.64383953, -0.00461827, 0.00239313, 5.63922126, 0.98403499, 0.99298859, 0.44851690],490 [ -4.64781892, -0.00461286, 0.00239057, 5.64320606, 0.98405750, 0.99299657, 0.44860066],491 [ -4.65179227, -0.00460748, 0.00238802, 5.64718479, 0.98407993, 0.99300451, 0.44868455],492 [ -4.65575956, -0.00460211, 0.00238548, 5.65115744, 0.98410229, 0.99301241, 0.44876859],493 [ -4.65972078, -0.00459677, 0.00238296, 5.65512401, 0.98412458, 0.99302027, 0.44885276],494 [ -4.66367592, -0.00459144, 0.00238046, 5.65908448, 0.98414679, 0.99302810, 0.44893706],495 [ -4.66762497, -0.00458614, 0.00237797, 5.66303884, 0.98416893, 0.99303590, 0.44902148],496 [ -4.67156793, -0.00458085, 0.00237549, 5.66698708, 0.98419099, 0.99304366, 0.44910603],497 [ -4.67550478, -0.00457558, 0.00237303, 5.67092920, 0.98421298, 0.99305138, 0.44919070],498 [ -4.67943552, -0.00457034, 0.00237059, 5.67486518, 0.98423490, 0.99305907, 0.44927549],499 [ -4.68336012, -0.00456511, 0.00236816, 5.67879501, 0.98425675, 0.99306673, 0.44936038],500 [ -4.68727860, -0.00455990, 0.00236575, 5.68271869, 0.98427852, 0.99307435, 0.44944539],501 [ -4.69119092, -0.00455472, 0.00236335, 5.68663621, 0.98430023, 0.99308194, 0.44953051],502 [ -4.69509710, -0.00454955, 0.00236096, 5.69054755, 0.98432186, 0.99308949, 0.44961572],503 [ -4.69899711, -0.00454440, 0.00235859, 5.69445271, 0.98434343, 0.99309701, 0.44970104],504 [ -4.70289095, -0.00453926, 0.00235623, 5.69835168, 0.98436492, 0.99310450, 0.44978646],505 [ -4.70677861, -0.00453415, 0.00235389, 5.70224446, 0.98438635, 0.99311196, 0.44987197],506 [ -4.71066008, -0.00452905, 0.00235156, 5.70613103, 0.98440771, 0.99311939, 0.44995757],507 [ -4.71453535, -0.00452398, 0.00234924, 5.71001138, 0.98442899, 0.99312678, 0.45004326],508 [ -4.71840442, -0.00451892, 0.00234694, 5.71388551, 0.98445021, 0.99313414, 0.45012903],509 [ -4.72226728, -0.00451387, 0.00234465, 5.71775341, 0.98447137, 0.99314147, 0.45021488],510 [ -4.72612392, -0.00450885, 0.00234237, 5.72161507, 0.98449245, 0.99314877, 0.45030082],511 [ -4.72997433, -0.00450384, 0.00234011, 5.72547048, 0.98451347, 0.99315604, 0.45038683],512 [ -4.73381850, -0.00449885, 0.00233786, 5.72931964, 0.98453443, 0.99316328, 0.45047291],513 [ -4.73765643, -0.00449388, 0.00233562, 5.73316254, 0.98455532, 0.99317049, 0.45055907],514 [ -4.74148810, -0.00448893, 0.00233340, 5.73699917, 0.98457614, 0.99317767, 0.45064529],515 [ -4.74531352, -0.00448399, 0.00233119, 5.74082953, 0.98459690, 0.99318483, 0.45073158],516 [ -4.74913267, -0.00447907, 0.00232899, 5.74465360, 0.98461759, 0.99319195, 0.45081792],517 [ -4.75294555, -0.00447416, 0.00232680, 5.74847138, 0.98463822, 0.99319904, 0.45090433],518 [ -4.75675214, -0.00446927, 0.00232462, 5.75228287, 0.98465878, 0.99320610, 0.45099080],519 [ -4.76055246, -0.00446440, 0.00232246, 5.75608805, 0.98467929, 0.99321314, 0.45107732],520 [ -4.76434647, -0.00445955, 0.00232031, 5.75988693, 0.98469973, 0.99322015, 0.45116389],521 [ -4.76813419, -0.00445471, 0.00231816, 5.76367948, 0.98472010, 0.99322713, 0.45125051],522 [ -4.77191560, -0.00444988, 0.00231604, 5.76746572, 0.98474042, 0.99323408, 0.45133717],523 [ -4.77569070, -0.00444507, 0.00231392, 5.77124562, 0.98476067, 0.99324101, 0.45142388],524 [ -4.77945947, -0.00444028, 0.00231181, 5.77501919, 0.98478086, 0.99324791, 0.45151063],525 [ -4.78322192, -0.00443550, 0.00230972, 5.77878642, 0.98480099, 0.99325478, 0.45159742],526 [ -4.78697804, -0.00443074, 0.00230763, 5.78254730, 0.98482106, 0.99326162, 0.45168425],527 [ -4.79072783, -0.00442600, 0.00230556, 5.78630183, 0.98484107, 0.99326844, 0.45177111],528 [ -4.79447127, -0.00442127, 0.00230350, 5.79005000, 0.98486102, 0.99327523, 0.45185800],529 [ -4.79820836, -0.00441655, 0.00230145, 5.79379181, 0.98488091, 0.99328200, 0.45194492],530 [ -4.80193909, -0.00441185, 0.00229941, 5.79752724, 0.98490074, 0.99328874, 0.45203187],531 [ -4.80566347, -0.00440716, 0.00229738, 5.80125630, 0.98492051, 0.99329546, 0.45211884],532 [ -4.80938148, -0.00440249, 0.00229536, 5.80497899, 0.98494022, 0.99330215, 0.45220583],533 [ -4.81309312, -0.00439783, 0.00229335, 5.80869528, 0.98495988, 0.99330881, 0.45229285],534 [ -4.81679838, -0.00439319, 0.00229135, 5.81240519, 0.98497947, 0.99331546, 0.45237988],535 [ -4.82049726, -0.00438856, 0.00228937, 5.81610870, 0.98499901, 0.99332207, 0.45246692],536 [ -4.82418976, -0.00438395, 0.00228739, 5.81980581, 0.98501850, 0.99332866, 0.45255398],537 [ -4.82787587, -0.00437935, 0.00228542, 5.82349652, 0.98503792, 0.99333523, 0.45264105],538 [ -4.83155558, -0.00437476, 0.00228346, 5.82718082, 0.98505729, 0.99334178, 0.45272813],539 [ -4.83522889, -0.00437019, 0.00228151, 5.83085870, 0.98507660, 0.99334830, 0.45281521],540 [ -4.83889580, -0.00436563, 0.00227957, 5.83453017, 0.98509586, 0.99335480, 0.45290231],541 [ -4.84255630, -0.00436109, 0.00227764, 5.83819521, 0.98511506, 0.99336127, 0.45298940],542 [ -4.84621038, -0.00435656, 0.00227572, 5.84185383, 0.98513421, 0.99336772, 0.45307649],543 [ -4.84985805, -0.00435204, 0.00227381, 5.84550601, 0.98515330, 0.99337415, 0.45316358],544 [ -4.85349930, -0.00434753, 0.00227191, 5.84915177, 0.98517233, 0.99338056, 0.45325067],545 [ -4.85713412, -0.00434304, 0.00227002, 5.85279108, 0.98519132, 0.99338694, 0.45333775],546 [ -4.86076252, -0.00433856, 0.00226813, 5.85642396, 0.98521024, 0.99339330, 0.45342482],547 [ -4.86438448, -0.00433410, 0.00226626, 5.86005038, 0.98522912, 0.99339964, 0.45351189],548 [ -4.86800001, -0.00432965, 0.00226439, 5.86367036, 0.98524794, 0.99340596, 0.45359894],549 [ -4.87160909, -0.00432521, 0.00226253, 5.86728389, 0.98526671, 0.99341226, 0.45368598],550 [ -4.87521174, -0.00432078, 0.00226069, 5.87089096, 0.98528542, 0.99341853, 0.45377301],551 [ -4.87880793, -0.00431637, 0.00225885, 5.87449157, 0.98530409, 0.99342479, 0.45386001],552 [ -4.88239768, -0.00431196, 0.00225701, 5.87808572, 0.98532270, 0.99343102, 0.45394700],553 [ -4.88598098, -0.00430758, 0.00225519, 5.88167340, 0.98534126, 0.99343723, 0.45403397],554 [ -4.88955781, -0.00430320, 0.00225338, 5.88525462, 0.98535976, 0.99344342, 0.45412092],555 [ -4.89312819, -0.00429883, 0.00225157, 5.88882936, 0.98537822, 0.99344960, 0.45420784],556 [ -4.89669211, -0.00429448, 0.00224977, 5.89239763, 0.98539662, 0.99345575, 0.45429473],557 [ -4.90024957, -0.00429014, 0.00224798, 5.89595942, 0.98541498, 0.99346188, 0.45438160],558 [ -4.90380055, -0.00428581, 0.00224620, 5.89951474, 0.98543328, 0.99346799, 0.45446844],559 [ -4.90734507, -0.00428150, 0.00224442, 5.90306357, 0.98545154, 0.99347408, 0.45455524],560 [ -4.91088312, -0.00427719, 0.00224266, 5.90660592, 0.98546974, 0.99348015, 0.45464201],561 [ -4.91441469, -0.00427290, 0.00224090, 5.91014179, 0.98548790, 0.99348620, 0.45472875],562 [ -4.91793978, -0.00426862, 0.00223915, 5.91367116, 0.98550600, 0.99349224, 0.45481546],563 [ -4.92145840, -0.00426435, 0.00223740, 5.91719405, 0.98552406, 0.99349825, 0.45490212],564 [ -4.92497053, -0.00426009, 0.00223566, 5.92071044, 0.98554206, 0.99350425, 0.45498875],565 [ -4.92847618, -0.00425584, 0.00223394, 5.92422034, 0.98556002, 0.99351022, 0.45507533],566 [ -4.93197535, -0.00425160, 0.00223221, 5.92772375, 0.98557793, 0.99351618, 0.45516187],567 [ -4.93546803, -0.00424738, 0.00223050, 5.93122065, 0.98559579, 0.99352212, 0.45524837],568 [ -4.93895423, -0.00424317, 0.00222879, 5.93471106, 0.98561361, 0.99352804, 0.45533482],569 [ -4.94243393, -0.00423896, 0.00222709, 5.93819497, 0.98563138, 0.99353395, 0.45542123],570 [ -4.94590714, -0.00423477, 0.00222540, 5.94167237, 0.98564910, 0.99353983, 0.45550758],571 [ -4.94937386, -0.00423059, 0.00222371, 5.94514327, 0.98566677, 0.99354570, 0.45559389],572 [ -4.95283409, -0.00422642, 0.00222203, 5.94860767, 0.98568439, 0.99355155, 0.45568014],573 [ -4.95628782, -0.00422226, 0.00222036, 5.95206556, 0.98570197, 0.99355738, 0.45576634],574 [ -4.95973505, -0.00421811, 0.00221869, 5.95551694, 0.98571951, 0.99356320, 0.45585249],575 [ -4.96317579, -0.00421397, 0.00221703, 5.95896181, 0.98573699, 0.99356900, 0.45593858],576 [ -4.96661002, -0.00420984, 0.00221538, 5.96240018, 0.98575444, 0.99357478, 0.45602462],577 [ -4.97003776, -0.00420573, 0.00221373, 5.96583204, 0.98577183, 0.99358054, 0.45611059],578 [ -4.97345900, -0.00420162, 0.00221209, 5.96925738, 0.98578918, 0.99358629, 0.45619651],579 [ -4.97687374, -0.00419752, 0.00221046, 5.97267622, 0.98580649, 0.99359202, 0.45628236],580 [ -4.98028197, -0.00419344, 0.00220883, 5.97608854, 0.98582375, 0.99359774, 0.45636816],581 [ -4.98368371, -0.00418936, 0.00220721, 5.97949435, 0.98584096, 0.99360343, 0.45645388],582 [ -4.98707894, -0.00418529, 0.00220559, 5.98289365, 0.98585814, 0.99360912, 0.45653955],583 [ -4.99046767, -0.00418123, 0.00220398, 5.98628643, 0.98587526, 0.99361478, 0.45662514],584 [ -4.99384989, -0.00417719, 0.00220238, 5.98967270, 0.98589235, 0.99362043, 0.45671067],585 [ -4.99722561, -0.00417315, 0.00220078, 5.99305246, 0.98590939, 0.99362607, 0.45679613],586 [ -5.00059483, -0.00416912, 0.00219919, 5.99642571, 0.98592638, 0.99363169, 0.45688152],587 [ -5.00395754, -0.00416511, 0.00219761, 5.99979244, 0.98594334, 0.99363729, 0.45696684],588 [ -5.00731375, -0.00416110, 0.00219603, 6.00315266, 0.98596025, 0.99364288, 0.45705209],589 [ -5.01066346, -0.00415710, 0.00219445, 6.00650636, 0.98597712, 0.99364845, 0.45713726],590 [ -5.01400667, -0.00415311, 0.00219288, 6.00985356, 0.98599394, 0.99365401, 0.45722236],591 [ -5.01734337, -0.00414913, 0.00219132, 6.01319424, 0.98601072, 0.99365955, 0.45730738],592 [ -5.02067356, -0.00414516, 0.00218976, 6.01652841, 0.98602746, 0.99366508, 0.45739233],593 [ -5.02399726, -0.00414120, 0.00218821, 6.01985606, 0.98604416, 0.99367059, 0.45747719],594 [ -5.02731445, -0.00413724, 0.00218666, 6.02317721, 0.98606082, 0.99367609, 0.45756198],595 [ -5.03062515, -0.00413330, 0.00218512, 6.02649184, 0.98607744, 0.99368157, 0.45764669],596 [ -5.03392934, -0.00412937, 0.00218359, 6.02979997, 0.98609401, 0.99368704, 0.45773131],597 [ -5.03722703, -0.00412544, 0.00218206, 6.03310159, 0.98611054, 0.99369250, 0.45781585],598 [ -5.04051822, -0.00412153, 0.00218053, 6.03639670, 0.98612704, 0.99369794, 0.45790031],599 [ -5.04380292, -0.00411762, 0.00217901, 6.03968530, 0.98614349, 0.99370337, 0.45798469],600 [ -5.04708112, -0.00411372, 0.00217750, 6.04296739, 0.98615990, 0.99370878, 0.45806897],601 [ -5.05035282, -0.00410983, 0.00217599, 6.04624299, 0.98617627, 0.99371418, 0.45815318],602 [ -5.05361802, -0.00410595, 0.00217448, 6.04951207, 0.98619260, 0.99371957, 0.45823729],603 [ -5.05687674, -0.00410208, 0.00217298, 6.05277466, 0.98620889, 0.99372494, 0.45832131],604 [ -5.06012896, -0.00409821, 0.00217148, 6.05603074, 0.98622514, 0.99373030, 0.45840525],605 [ -5.06337469, -0.00409436, 0.00216999, 6.05928033, 0.98624135, 0.99373565, 0.45848909],606 [ -5.06661393, -0.00409051, 0.00216851, 6.06252341, 0.98625753, 0.99374098, 0.45857285],607 [ -5.06984668, -0.00408668, 0.00216703, 6.06576000, 0.98627366, 0.99374630, 0.45865651],608 [ -5.07307294, -0.00408285, 0.00216555, 6.06899010, 0.98628975, 0.99375161, 0.45874007],609 [ -5.07629272, -0.00407902, 0.00216408, 6.07221370, 0.98630581, 0.99375690, 0.45882355],610 [ -5.07950602, -0.00407521, 0.00216261, 6.07543081, 0.98632182, 0.99376218, 0.45890693],611 [ -5.08271283, -0.00407141, 0.00216115, 6.07864143, 0.98633780, 0.99376745, 0.45899021],612 [ -5.08591317, -0.00406761, 0.00215969, 6.08184556, 0.98635374, 0.99377270, 0.45907339],613 [ -5.08910703, -0.00406382, 0.00215823, 6.08504321, 0.98636965, 0.99377795, 0.45915648],614 [ -5.09229441, -0.00406004, 0.00215678, 6.08823437, 0.98638551, 0.99378318, 0.45923947],615 [ -5.09547532, -0.00405627, 0.00215534, 6.09141905, 0.98640134, 0.99378840, 0.45932235],616 [ -5.09864975, -0.00405250, 0.00215390, 6.09459725, 0.98641713, 0.99379360, 0.45940514],617 [ -5.10181772, -0.00404874, 0.00215246, 6.09776897, 0.98643288, 0.99379880, 0.45948783],618 [ -5.10497922, -0.00404500, 0.00215102, 6.10093422, 0.98644859, 0.99380398, 0.45957041],619 [ -5.10813425, -0.00404125, 0.00214960, 6.10409300, 0.98646427, 0.99380915, 0.45965289],620 [ -5.11128282, -0.00403752, 0.00214817, 6.10724530, 0.98647991, 0.99381431, 0.45973527],621 [ -5.11442494, -0.00403379, 0.00214675, 6.11039114, 0.98649552, 0.99381946, 0.45981755],622 [ -5.11756059, -0.00403008, 0.00214533, 6.11353051, 0.98651108, 0.99382459, 0.45989972],623 [ -5.12068979, -0.00402637, 0.00214392, 6.11666343, 0.98652662, 0.99382971, 0.45998178],624 [ -5.12381254, -0.00402266, 0.00214251, 6.11978988, 0.98654211, 0.99383483, 0.46006373],625 [ -5.12692884, -0.00401897, 0.00214110, 6.12290987, 0.98655757, 0.99383993, 0.46014558],626 [ -5.13003869, -0.00401528, 0.00213970, 6.12602341, 0.98657300, 0.99384502, 0.46022732],627 [ -5.13314210, -0.00401160, 0.00213831, 6.12913050, 0.98658838, 0.99385010, 0.46030896],628 [ -5.13623906, -0.00400792, 0.00213691, 6.13223114, 0.98660374, 0.99385516, 0.46039048],629 [ -5.13932959, -0.00400426, 0.00213552, 6.13532533, 0.98661906, 0.99386022, 0.46047189],630 [ -5.14241368, -0.00400060, 0.00213413, 6.13841308, 0.98663434, 0.99386527, 0.46055319],631 [ -5.14549135, -0.00399695, 0.00213275, 6.14149440, 0.98664959, 0.99387030, 0.46063438],632 [ -5.14856258, -0.00399330, 0.00213137, 6.14456928, 0.98666480, 0.99387532, 0.46071546],633 [ -5.15162739, -0.00398967, 0.00213000, 6.14763772, 0.98667998, 0.99388034, 0.46079643],634 [ -5.15468577, -0.00398604, 0.00212862, 6.15069974, 0.98669512, 0.99388534, 0.46087728],635 [ -5.15773774, -0.00398241, 0.00212725, 6.15375533, 0.98671023, 0.99389033, 0.46095802],636 [ -5.16078329, -0.00397880, 0.00212589, 6.15680449, 0.98672531, 0.99389532, 0.46103864],637 [ -5.16382243, -0.00397519, 0.00212453, 6.15984724, 0.98674035, 0.99390029, 0.46111915],638 [ -5.16685516, -0.00397159, 0.00212317, 6.16288358, 0.98675535, 0.99390525, 0.46119954],639 [ -5.16988149, -0.00396799, 0.00212181, 6.16591350, 0.98677033, 0.99391020, 0.46127982],640 [ -5.17290141, -0.00396440, 0.00212046, 6.16893701, 0.98678527, 0.99391514, 0.46135997],641 [ -5.17591494, -0.00396082, 0.00211911, 6.17195412, 0.98680017, 0.99392007, 0.46144001],642 [ -5.17892208, -0.00395724, 0.00211776, 6.17496483, 0.98681505, 0.99392499, 0.46151994],643 [ -5.18192282, -0.00395368, 0.00211642, 6.17796914, 0.98682989, 0.99392990, 0.46159974],644 [ -5.18491718, -0.00395011, 0.00211508, 6.18096706, 0.98684470, 0.99393481, 0.46167943],645 [ -5.18790516, -0.00394656, 0.00211374, 6.18395860, 0.98685947, 0.99393970, 0.46175899],646 [ -5.19088675, -0.00394301, 0.00211241, 6.18694374, 0.98687421, 0.99394458, 0.46183843],647 [ -5.19386198, -0.00393947, 0.00211108, 6.18992251, 0.98688892, 0.99394945, 0.46191776],648 [ -5.19683083, -0.00393593, 0.00210975, 6.19289490, 0.98690360, 0.99395432, 0.46199696],649 [ -5.19979332, -0.00393241, 0.00210843, 6.19586092, 0.98691824, 0.99395917, 0.46207604],650 [ -5.20274945, -0.00392888, 0.00210710, 6.19882057, 0.98693285, 0.99396401, 0.46215500],651 [ -5.20569922, -0.00392537, 0.00210578, 6.20177385, 0.98694743, 0.99396885, 0.46223383],652 [ -5.20864264, -0.00392186, 0.00210447, 6.20472078, 0.98696198, 0.99397367, 0.46231254],653 [ -5.21157971, -0.00391835, 0.00210315, 6.20766135, 0.98697650, 0.99397849, 0.46239113],654 [ -5.21451043, -0.00391486, 0.00210184, 6.21059558, 0.98699098, 0.99398330, 0.46246959],655 [ -5.21743482, -0.00391137, 0.00210054, 6.21352345, 0.98700544, 0.99398810, 0.46254793],656 [ -5.22035287, -0.00390788, 0.00209923, 6.21644499, 0.98701986, 0.99399289, 0.46262614],657 [ -5.22326459, -0.00390440, 0.00209793, 6.21936019, 0.98703425, 0.99399767, 0.46270423],658 [ -5.22616999, -0.00390093, 0.00209663, 6.22226905, 0.98704861, 0.99400244, 0.46278219],659 [ -5.22906906, -0.00389747, 0.00209533, 6.22517159, 0.98706294, 0.99400720, 0.46286003],660 [ -5.23196182, -0.00389401, 0.00209404, 6.22806781, 0.98707724, 0.99401196, 0.46293774],661 [ -5.23484826, -0.00389055, 0.00209274, 6.23095771, 0.98709151, 0.99401670, 0.46301532],662 [ -5.23772840, -0.00388711, 0.00209145, 6.23384129, 0.98710574, 0.99402144, 0.46309277],663 [ -5.24060224, -0.00388366, 0.00209017, 6.23671857, 0.98711995, 0.99402617, 0.46317009],664 [ -5.24346978, -0.00388023, 0.00208888, 6.23958955, 0.98713413, 0.99403089, 0.46324729],665 [ -5.24633103, -0.00387680, 0.00208760, 6.24245423, 0.98714827, 0.99403560, 0.46332436],666 [ -5.24918599, -0.00387338, 0.00208632, 6.24531261, 0.98716239, 0.99404030, 0.46340129],667 [ -5.25203467, -0.00386996, 0.00208504, 6.24816471, 0.98717648, 0.99404500, 0.46347810],668 [ -5.25487707, -0.00386655, 0.00208377, 6.25101053, 0.98719053, 0.99404969, 0.46355478],669 [ -5.25771320, -0.00386314, 0.00208250, 6.25385007, 0.98720456, 0.99405436, 0.46363133],670 [ -5.26054307, -0.00385974, 0.00208123, 6.25668333, 0.98721856, 0.99405904, 0.46370775],671 [ -5.26336668, -0.00385634, 0.00207996, 6.25951033, 0.98723253, 0.99406370, 0.46378403],672 [ -5.26618402, -0.00385295, 0.00207869, 6.26233107, 0.98724646, 0.99406835, 0.46386019],673 [ -5.26899512, -0.00384957, 0.00207743, 6.26514555, 0.98726037, 0.99407300, 0.46393621],674 [ -5.27179998, -0.00384619, 0.00207617, 6.26795379, 0.98727425, 0.99407764, 0.46401210],675 [ -5.27459860, -0.00384282, 0.00207491, 6.27075577, 0.98728810, 0.99408227, 0.46408786],676 [ -5.27739098, -0.00383945, 0.00207365, 6.27355152, 0.98730193, 0.99408689, 0.46416348],677 [ -5.28017713, -0.00383609, 0.00207240, 6.27634104, 0.98731572, 0.99409151, 0.46423898],678 [ -5.28295706, -0.00383274, 0.00207115, 6.27912432, 0.98732949, 0.99409612, 0.46431433],679 [ -5.28573078, -0.00382939, 0.00206989, 6.28190139, 0.98734322, 0.99410072, 0.46438956],680 [ -5.28849828, -0.00382604, 0.00206865, 6.28467224, 0.98735693, 0.99410531, 0.46446465],681 [ -5.29125958, -0.00382271, 0.00206740, 6.28743687, 0.98737061, 0.99410989, 0.46453961],682 [ -5.29401468, -0.00381937, 0.00206616, 6.29019530, 0.98738426, 0.99411447, 0.46461443],683 [ -5.29676358, -0.00381604, 0.00206491, 6.29294754, 0.98739789, 0.99411904, 0.46468912],684 [ -5.29950630, -0.00381272, 0.00206367, 6.29569358, 0.98741148, 0.99412361, 0.46476368],685 [ -5.30224283, -0.00380940, 0.00206243, 6.29843343, 0.98742505, 0.99412816, 0.46483809],686 [ -5.30497319, -0.00380609, 0.00206120, 6.30116710, 0.98743859, 0.99413271, 0.46491238],687 [ -5.30769738, -0.00380279, 0.00205996, 6.30389459, 0.98745210, 0.99413725, 0.46498652],688 [ -5.31041540, -0.00379948, 0.00205873, 6.30661592, 0.98746559, 0.99414179, 0.46506054],689 [ -5.31312727, -0.00379619, 0.00205750, 6.30933108, 0.98747905, 0.99414631, 0.46513441],690 [ -5.31583299, -0.00379290, 0.00205627, 6.31204009, 0.98749248, 0.99415083, 0.46520815],691 [ -5.31853255, -0.00378961, 0.00205504, 6.31474294, 0.98750588, 0.99415535, 0.46528175],692 [ -5.32122598, -0.00378633, 0.00205382, 6.31743965, 0.98751926, 0.99415985, 0.46535522],693 [ -5.32391328, -0.00378306, 0.00205259, 6.32013023, 0.98753261, 0.99416435, 0.46542855],694 [ -5.32659445, -0.00377979, 0.00205137, 6.32281466, 0.98754593, 0.99416884, 0.46550174],695 [ -5.32926950, -0.00377652, 0.00205015, 6.32549298, 0.98755923, 0.99417333, 0.46557479],696 [ -5.33193843, -0.00377326, 0.00204893, 6.32816517, 0.98757249, 0.99417781, 0.46564771],697 [ -5.33460126, -0.00377000, 0.00204772, 6.33083125, 0.98758574, 0.99418228, 0.46572049],698 [ -5.33725798, -0.00376675, 0.00204650, 6.33349123, 0.98759895, 0.99418674, 0.46579313],699 [ -5.33990861, -0.00376351, 0.00204529, 6.33614511, 0.98761214, 0.99419120, 0.46586563],700 [ -5.34255316, -0.00376027, 0.00204408, 6.33879289, 0.98762531, 0.99419565, 0.46593799],701 [ -5.34519162, -0.00375703, 0.00204287, 6.34143458, 0.98763844, 0.99420010, 0.46601022],702 [ -5.34782400, -0.00375380, 0.00204166, 6.34407020, 0.98765155, 0.99420454, 0.46608230],703 [ -5.35045032, -0.00375058, 0.00204045, 6.34669974, 0.98766464, 0.99420897, 0.46615425],704 [ -5.35307057, -0.00374736, 0.00203925, 6.34932321, 0.98767770, 0.99421340, 0.46622606],705 [ -5.35568477, -0.00374414, 0.00203804, 6.35194063, 0.98769073, 0.99421781, 0.46629773],706 [ -5.35829292, -0.00374093, 0.00203684, 6.35455199, 0.98770374, 0.99422223, 0.46636926],707 [ -5.36089503, -0.00373773, 0.00203564, 6.35715730, 0.98771672, 0.99422663, 0.46644065],708 [ -5.36349110, -0.00373453, 0.00203444, 6.35975657, 0.98772968, 0.99423103, 0.46651190],709 [ -5.36608114, -0.00373133, 0.00203324, 6.36234981, 0.98774261, 0.99423543, 0.46658301],710 [ -5.36866517, -0.00372814, 0.00203205, 6.36493703, 0.98775552, 0.99423982, 0.46665398],711 [ -5.37124318, -0.00372495, 0.00203085, 6.36751823, 0.98776840, 0.99424420, 0.46672482],712 [ -5.37381518, -0.00372177, 0.00202966, 6.37009341, 0.98778125, 0.99424857, 0.46679551],713 [ -5.37638118, -0.00371859, 0.00202847, 6.37266259, 0.98779408, 0.99425294, 0.46686606],714 [ -5.37894119, -0.00371542, 0.00202728, 6.37522577, 0.98780689, 0.99425730, 0.46693647],715 [ -5.38149521, -0.00371225, 0.00202609, 6.37778296, 0.98781967, 0.99426166, 0.46700674],716 [ -5.38404325, -0.00370909, 0.00202490, 6.38033416, 0.98783243, 0.99426601, 0.46707687],717 [ -5.38658532, -0.00370593, 0.00202371, 6.38287939, 0.98784516, 0.99427036, 0.46714686],718 [ -5.38912142, -0.00370278, 0.00202253, 6.38541865, 0.98785786, 0.99427470, 0.46721671],719 [ -5.39165157, -0.00369963, 0.00202134, 6.38795194, 0.98787055, 0.99427903, 0.46728642],720 [ -5.39417576, -0.00369648, 0.00202016, 6.39047928, 0.98788320, 0.99428336, 0.46735598],721 [ -5.39669401, -0.00369334, 0.00201898, 6.39300067, 0.98789584, 0.99428768, 0.46742541],722 [ -5.39920633, -0.00369021, 0.00201780, 6.39551612, 0.98790845, 0.99429200, 0.46749470],723 [ -5.40171272, -0.00368707, 0.00201662, 6.39802564, 0.98792103, 0.99429631, 0.46756384],724 [ -5.40421318, -0.00368395, 0.00201544, 6.40052923, 0.98793359, 0.99430061, 0.46763284],725 [ -5.40670773, -0.00368082, 0.00201427, 6.40302690, 0.98794613, 0.99430491, 0.46770170],726 [ -5.40919637, -0.00367771, 0.00201309, 6.40551867, 0.98795864, 0.99430920, 0.46777042],727 [ -5.41167912, -0.00367459, 0.00201192, 6.40800452, 0.98797113, 0.99431349, 0.46783900],728 [ -5.41415597, -0.00367148, 0.00201075, 6.41048448, 0.98798360, 0.99431777, 0.46790744],729 [ -5.41662693, -0.00366838, 0.00200957, 6.41295855, 0.98799604, 0.99432205, 0.46797574],730 [ -5.41909202, -0.00366528, 0.00200840, 6.41542674, 0.98800846, 0.99432632, 0.46804389],731 [ -5.42155124, -0.00366218, 0.00200724, 6.41788906, 0.98802085, 0.99433058, 0.46811190],732 [ -5.42400460, -0.00365909, 0.00200607, 6.42034551, 0.98803323, 0.99433484, 0.46817978],733 [ -5.42645210, -0.00365600, 0.00200490, 6.42279610, 0.98804557, 0.99433910, 0.46824751],734 [ -5.42889376, -0.00365292, 0.00200374, 6.42524084, 0.98805790, 0.99434334, 0.46831509],735 [ -5.43132958, -0.00364984, 0.00200257, 6.42767973, 0.98807020, 0.99434759, 0.46838254],736 [ -5.43375956, -0.00364677, 0.00200141, 6.43011279, 0.98808248, 0.99435183, 0.46844985],737 [ -5.43618372, -0.00364370, 0.00200024, 6.43254002, 0.98809474, 0.99435606, 0.46851701],738 [ -5.43860207, -0.00364063, 0.00199908, 6.43496143, 0.98810697, 0.99436029, 0.46858403],739 [ -5.44101460, -0.00363757, 0.00199792, 6.43737703, 0.98811918, 0.99436451, 0.46865091],740 [ -5.44342134, -0.00363451, 0.00199676, 6.43978683, 0.98813137, 0.99436872, 0.46871765],741 [ -5.44582228, -0.00363146, 0.00199561, 6.44219082, 0.98814353, 0.99437294, 0.46878424],742 [ -5.44821744, -0.00362841, 0.00199445, 6.44458903, 0.98815567, 0.99437714, 0.46885070],743 [ -5.45060682, -0.00362536, 0.00199329, 6.44698145, 0.98816779, 0.99438134, 0.46891701],744 [ -5.45299043, -0.00362232, 0.00199214, 6.44936811, 0.98817989, 0.99438554, 0.46898318],745 [ -5.45536828, -0.00361929, 0.00199098, 6.45174899, 0.98819196, 0.99438973, 0.46904921],746 [ -5.45774037, -0.00361625, 0.00198983, 6.45412412, 0.98820402, 0.99439392, 0.46911510],747 [ -5.46010672, -0.00361323, 0.00198868, 6.45649350, 0.98821605, 0.99439810, 0.46918084],748 [ -5.46246734, -0.00361020, 0.00198753, 6.45885714, 0.98822805, 0.99440227, 0.46924645],749 [ -5.46482222, -0.00360718, 0.00198638, 6.46121504, 0.98824004, 0.99440644, 0.46931191],750 [ -5.46717138, -0.00360417, 0.00198523, 6.46356722, 0.98825200, 0.99441061, 0.46937723],751 [ -5.46951483, -0.00360115, 0.00198408, 6.46591367, 0.98826395, 0.99441477, 0.46944241],752 [ -5.47185257, -0.00359814, 0.00198293, 6.46825442, 0.98827587, 0.99441892, 0.46950744],753 [ -5.47418461, -0.00359514, 0.00198178, 6.47058947, 0.98828776, 0.99442308, 0.46957234],754 [ -5.47651097, -0.00359214, 0.00198064, 6.47291883, 0.98829964, 0.99442722, 0.46963709],755 [ -5.47883164, -0.00358914, 0.00197949, 6.47524250, 0.98831150, 0.99443136, 0.46970170],756 [ -5.48114664, -0.00358615, 0.00197835, 6.47756049, 0.98832333, 0.99443550, 0.46976617],757 [ -5.48345598, -0.00358316, 0.00197721, 6.47987281, 0.98833514, 0.99443963, 0.46983050],758 [ -5.48575966, -0.00358018, 0.00197606, 6.48217948, 0.98834693, 0.99444376, 0.46989469],759 [ -5.48805769, -0.00357720, 0.00197492, 6.48448049, 0.98835870, 0.99444788, 0.46995873],760 [ -5.49035007, -0.00357422, 0.00197378, 6.48677585, 0.98837045, 0.99445200, 0.47002264],761 [ -5.49263683, -0.00357125, 0.00197264, 6.48906558, 0.98838217, 0.99445611, 0.47008640],762 [ -5.49491797, -0.00356828, 0.00197150, 6.49134968, 0.98839388, 0.99446022, 0.47015002],763 [ -5.49719348, -0.00356532, 0.00197036, 6.49362817, 0.98840556, 0.99446432, 0.47021350],764 [ -5.49946339, -0.00356236, 0.00196923, 6.49590104, 0.98841723, 0.99446842, 0.47027684],765 [ -5.50172771, -0.00355940, 0.00196809, 6.49816831, 0.98842887, 0.99447251, 0.47034004],766 [ -5.50398643, -0.00355645, 0.00196695, 6.50042998, 0.98844049, 0.99447660, 0.47040310],767 [ -5.50623957, -0.00355350, 0.00196582, 6.50268607, 0.98845209, 0.99448068, 0.47046602],768 [ -5.50848713, -0.00355055, 0.00196468, 6.50493658, 0.98846367, 0.99448476, 0.47052879],769 [ -5.51072913, -0.00354761, 0.00196355, 6.50718152, 0.98847523, 0.99448884, 0.47059143],770 [ -5.51296557, -0.00354467, 0.00196242, 6.50942090, 0.98848677, 0.99449291, 0.47065392],771 [ -5.51519647, -0.00354174, 0.00196129, 6.51165473, 0.98849828, 0.99449698, 0.47071627],772 [ -5.51742182, -0.00353881, 0.00196016, 6.51388301, 0.98850978, 0.99450104, 0.47077849],773 [ -5.51964164, -0.00353588, 0.00195902, 6.51610576, 0.98852126, 0.99450510, 0.47084056],774 [ -5.52185594, -0.00353296, 0.00195789, 6.51832298, 0.98853271, 0.99450915, 0.47090249],775 [ -5.52406473, -0.00353004, 0.00195677, 6.52053469, 0.98854415, 0.99451320, 0.47096428],776 [ -5.52626800, -0.00352712, 0.00195564, 6.52274088, 0.98855556, 0.99451724, 0.47102593],777 [ -5.52846578, -0.00352421, 0.00195451, 6.52494157, 0.98856696, 0.99452128, 0.47108744],778 [ -5.53065808, -0.00352130, 0.00195338, 6.52713677, 0.98857834, 0.99452532, 0.47114881],779 [ -5.53284489, -0.00351840, 0.00195226, 6.52932649, 0.98858969, 0.99452935, 0.47121004],780 [ -5.53502623, -0.00351550, 0.00195113, 6.53151073, 0.98860103, 0.99453337, 0.47127113],781 [ -5.53720210, -0.00351260, 0.00195001, 6.53368950, 0.98861234, 0.99453740, 0.47133208],782 [ -5.53937252, -0.00350971, 0.00194888, 6.53586282, 0.98862364, 0.99454141, 0.47139289],783 [ -5.54153750, -0.00350682, 0.00194776, 6.53803068, 0.98863491, 0.99454543, 0.47145356],784 [ -5.54369704, -0.00350393, 0.00194663, 6.54019311, 0.98864617, 0.99454944, 0.47151409],785 [ -5.54585115, -0.00350105, 0.00194551, 6.54235010, 0.98865740, 0.99455344, 0.47157449],786 [ -5.54799984, -0.00349817, 0.00194439, 6.54450167, 0.98866862, 0.99455744, 0.47163474],787 [ -5.55014311, -0.00349529, 0.00194327, 6.54664782, 0.98867982, 0.99456144, 0.47169485],788 [ -5.55228099, -0.00349242, 0.00194215, 6.54878857, 0.98869099, 0.99456543, 0.47175483],789 [ -5.55441347, -0.00348955, 0.00194103, 6.55092392, 0.98870215, 0.99456942, 0.47181466],790 [ -5.55654057, -0.00348669, 0.00193991, 6.55305388, 0.98871329, 0.99457340, 0.47187436],791 [ -5.55866229, -0.00348383, 0.00193879, 6.55517846, 0.98872441, 0.99457738, 0.47193391],792 [ -5.56077864, -0.00348097, 0.00193767, 6.55729767, 0.98873551, 0.99458136, 0.47199333],793 [ -5.56288964, -0.00347811, 0.00193655, 6.55941152, 0.98874659, 0.99458533, 0.47205261],794 [ -5.56499528, -0.00347526, 0.00193544, 6.56152002, 0.98875765, 0.99458930, 0.47211176],795 [ -5.56709558, -0.00347242, 0.00193432, 6.56362317, 0.98876869, 0.99459326, 0.47217076],796 [ -5.56919055, -0.00346957, 0.00193321, 6.56572098, 0.98877972, 0.99459722, 0.47222962],797 [ -5.57128020, -0.00346673, 0.00193209, 6.56781347, 0.98879072, 0.99460118, 0.47228835],798 [ -5.57336453, -0.00346390, 0.00193098, 6.56990064, 0.98880171, 0.99460513, 0.47234694],799 [ -5.57544356, -0.00346106, 0.00192986, 6.57198250, 0.98881267, 0.99460907, 0.47240539],800 [ -5.57751729, -0.00345823, 0.00192875, 6.57405906, 0.98882362, 0.99461302, 0.47246371],801 [ -5.57958573, -0.00345541, 0.00192764, 6.57613032, 0.98883455, 0.99461696, 0.47252188],802 [ -5.58164889, -0.00345259, 0.00192652, 6.57819631, 0.98884546, 0.99462089, 0.47257992],803 [ -5.58370679, -0.00344977, 0.00192541, 6.58025702, 0.98885635, 0.99462482, 0.47263782],804 [ -5.58575942, -0.00344695, 0.00192430, 6.58231247, 0.98886722, 0.99462875, 0.47269559],805 [ -5.58780679, -0.00344414, 0.00192319, 6.58436266, 0.98887808, 0.99463267, 0.47275321],806 [ -5.58984893, -0.00344133, 0.00192208, 6.58640760, 0.98888891, 0.99463659, 0.47281070],807 [ -5.59188583, -0.00343852, 0.00192097, 6.58844731, 0.98889973, 0.99464051, 0.47286806],808 [ -5.59391750, -0.00343572, 0.00191986, 6.59048178, 0.98891053, 0.99464442, 0.47292528],809 [ -5.59594396, -0.00343292, 0.00191875, 6.59251104, 0.98892131, 0.99464833, 0.47298236],810 [ -5.59796521, -0.00343013, 0.00191764, 6.59453508, 0.98893207, 0.99465223, 0.47303930],811 [ -5.59998126, -0.00342733, 0.00191653, 6.59655393, 0.98894281, 0.99465613, 0.47309611],812 [ -5.60199212, -0.00342455, 0.00191543, 6.59856758, 0.98895354, 0.99466003, 0.47315278],813 [ -5.60399781, -0.00342176, 0.00191432, 6.60057605, 0.98896425, 0.99466392, 0.47320932],814 [ -5.60599831, -0.00341898, 0.00191321, 6.60257934, 0.98897493, 0.99466781, 0.47326572],815 [ -5.60799366, -0.00341620, 0.00191211, 6.60457746, 0.98898561, 0.99467169, 0.47332198],816 [ -5.60998385, -0.00341342, 0.00191100, 6.60657043, 0.98899626, 0.99467557, 0.47337811],817 [ -5.61196890, -0.00341065, 0.00190990, 6.60855825, 0.98900689, 0.99467945, 0.47343411],818 [ -5.61394881, -0.00340788, 0.00190879, 6.61054093, 0.98901751, 0.99468332, 0.47348997],819 [ -5.61592360, -0.00340512, 0.00190769, 6.61251848, 0.98902811, 0.99468719, 0.47354569],820 [ -5.61789327, -0.00340235, 0.00190659, 6.61449091, 0.98903869, 0.99469106, 0.47360128],821 [ -5.61985783, -0.00339960, 0.00190548, 6.61645823, 0.98904926, 0.99469492, 0.47365674],822 [ -5.62181729, -0.00339684, 0.00190438, 6.61842045, 0.98905980, 0.99469878, 0.47371206],823 [ -5.62377166, -0.00339409, 0.00190328, 6.62037757, 0.98907033, 0.99470263, 0.47376724],824 [ -5.62572095, -0.00339134, 0.00190218, 6.62232961, 0.98908084, 0.99470648, 0.47382230],825 [ -5.62766517, -0.00338859, 0.00190108, 6.62427658, 0.98909133, 0.99471033, 0.47387721],826 [ -5.62960432, -0.00338585, 0.00189998, 6.62621847, 0.98910181, 0.99471417, 0.47393200],827 [ -5.63153842, -0.00338311, 0.00189888, 6.62815531, 0.98911227, 0.99471801, 0.47398665],828 [ -5.63346748, -0.00338037, 0.00189778, 6.63008711, 0.98912271, 0.99472185, 0.47404117],829 [ -5.63539150, -0.00337764, 0.00189668, 6.63201386, 0.98913313, 0.99472568, 0.47409555],830 [ -5.63731050, -0.00337491, 0.00189558, 6.63393558, 0.98914354, 0.99472951, 0.47414980],831 [ -5.63922447, -0.00337218, 0.00189448, 6.63585229, 0.98915393, 0.99473333, 0.47420392],832 [ -5.64113344, -0.00336946, 0.00189338, 6.63776398, 0.98916430, 0.99473716, 0.47425791],833 [ -5.64303741, -0.00336674, 0.00189229, 6.63967067, 0.98917466, 0.99474097, 0.47431176],834 [ -5.64493639, -0.00336402, 0.00189119, 6.64157237, 0.98918499, 0.99474479, 0.47436548],835 [ -5.64683039, -0.00336131, 0.00189009, 6.64346908, 0.98919531, 0.99474860, 0.47441907],836 [ -5.64871942, -0.00335860, 0.00188899, 6.64536082, 0.98920562, 0.99475241, 0.47447252],837 [ -5.65060348, -0.00335589, 0.00188790, 6.64724759, 0.98921590, 0.99475621, 0.47452585],838 [ -5.65248259, -0.00335319, 0.00188680, 6.64912941, 0.98922617, 0.99476001, 0.47457904],839 [ -5.65435676, -0.00335049, 0.00188571, 6.65100628, 0.98923642, 0.99476381, 0.47463210],840 [ -5.65622600, -0.00334779, 0.00188461, 6.65287821, 0.98924666, 0.99476760, 0.47468503],841 [ -5.65809030, -0.00334509, 0.00188352, 6.65474521, 0.98925688, 0.99477139, 0.47473783],842 [ -5.65994970, -0.00334240, 0.00188243, 6.65660729, 0.98926708, 0.99477517, 0.47479050],843 [ -5.66180418, -0.00333971, 0.00188133, 6.65846447, 0.98927727, 0.99477896, 0.47484303],844 [ -5.66365377, -0.00333703, 0.00188024, 6.66031674, 0.98928744, 0.99478273, 0.47489544],845 [ -5.66549846, -0.00333434, 0.00187915, 6.66216412, 0.98929759, 0.99478651, 0.47494772],846 [ -5.66733828, -0.00333166, 0.00187805, 6.66400662, 0.98930772, 0.99479028, 0.47499986],847 [ -5.66917323, -0.00332899, 0.00187696, 6.66584424, 0.98931784, 0.99479405, 0.47505187],848 [ -5.67100331, -0.00332631, 0.00187587, 6.66767700, 0.98932794, 0.99479781, 0.47510376],849 [ -5.67282855, -0.00332364, 0.00187478, 6.66950490, 0.98933803, 0.99480158, 0.47515552],850 [ -5.67464894, -0.00332098, 0.00187369, 6.67132796, 0.98934810, 0.99480533, 0.47520714],851 [ -5.67646450, -0.00331831, 0.00187260, 6.67314618, 0.98935815, 0.99480909, 0.47525864],852 [ -5.67827523, -0.00331565, 0.00187151, 6.67495958, 0.98936819, 0.99481284, 0.47531001],853 [ -5.68008115, -0.00331299, 0.00187042, 6.67676816, 0.98937821, 0.99481659, 0.47536125],854 [ -5.68188226, -0.00331034, 0.00186933, 6.67857192, 0.98938821, 0.99482033, 0.47541236],855 [ -5.68367858, -0.00330769, 0.00186824, 6.68037089, 0.98939820, 0.99482407, 0.47546334],856 [ -5.68547011, -0.00330504, 0.00186715, 6.68216507, 0.98940817, 0.99482781, 0.47551419],857 [ -5.68725686, -0.00330239, 0.00186606, 6.68395447, 0.98941813, 0.99483154, 0.47556492],858 [ -5.68903884, -0.00329975, 0.00186498, 6.68573909, 0.98942807, 0.99483527, 0.47561551],859 [ -5.69081606, -0.00329711, 0.00186389, 6.68751895, 0.98943799, 0.99483900, 0.47566598],860 [ -5.69258853, -0.00329447, 0.00186280, 6.68929406, 0.98944790, 0.99484272, 0.47571632],861 [ -5.69435627, -0.00329184, 0.00186172, 6.69106443, 0.98945779, 0.99484644, 0.47576654],862 [ -5.69611926, -0.00328921, 0.00186063, 6.69283005, 0.98946767, 0.99485016, 0.47581663],863 [ -5.69787754, -0.00328658, 0.00185954, 6.69459096, 0.98947753, 0.99485388, 0.47586659],864 [ -5.69963110, -0.00328396, 0.00185846, 6.69634715, 0.98948737, 0.99485759, 0.47591642],865 [ -5.70137996, -0.00328133, 0.00185737, 6.69809863, 0.98949720, 0.99486129, 0.47596613],866 [ -5.70312413, -0.00327872, 0.00185629, 6.69984541, 0.98950701, 0.99486500, 0.47601571],867 [ -5.70486360, -0.00327610, 0.00185520, 6.70158750, 0.98951681, 0.99486870, 0.47606516],868 [ -5.70659840, -0.00327349, 0.00185412, 6.70332492, 0.98952659, 0.99487239, 0.47611449],869 [ -5.70832854, -0.00327088, 0.00185304, 6.70505766, 0.98953636, 0.99487609, 0.47616370],870 [ -5.71005402, -0.00326827, 0.00185195, 6.70678575, 0.98954611, 0.99487978, 0.47621277],871 [ -5.71177484, -0.00326567, 0.00185087, 6.70850918, 0.98955584, 0.99488347, 0.47626172],872 [ -5.71349103, -0.00326306, 0.00184979, 6.71022797, 0.98956556, 0.99488715, 0.47631055],873 [ -5.71520259, -0.00326047, 0.00184870, 6.71194212, 0.98957526, 0.99489083, 0.47635925],874 [ -5.71690953, -0.00325787, 0.00184762, 6.71365166, 0.98958495, 0.99489451, 0.47640783],875 [ -5.71861185, -0.00325528, 0.00184654, 6.71535658, 0.98959462, 0.99489818, 0.47645628],876 [ -5.72030958, -0.00325269, 0.00184546, 6.71705689, 0.98960428, 0.99490185, 0.47650461],877 [ -5.72200271, -0.00325010, 0.00184438, 6.71875261, 0.98961392, 0.99490552, 0.47655282],878 [ -5.72369126, -0.00324752, 0.00184330, 6.72044374, 0.98962355, 0.99490918, 0.47660090],879 [ -5.72537523, -0.00324494, 0.00184222, 6.72213029, 0.98963316, 0.99491284, 0.47664886],880 [ -5.72705463, -0.00324236, 0.00184114, 6.72381227, 0.98964276, 0.99491650, 0.47669669],881 [ -5.72872948, -0.00323979, 0.00184006, 6.72548970, 0.98965234, 0.99492016, 0.47674440],882 [ -5.73039979, -0.00323721, 0.00183898, 6.72716257, 0.98966190, 0.99492381, 0.47679198],883 [ -5.73206555, -0.00323464, 0.00183790, 6.72883091, 0.98967145, 0.99492746, 0.47683945],884 [ -5.73372679, -0.00323208, 0.00183682, 6.73049471, 0.98968099, 0.99493110, 0.47688679],885 [ -5.73538351, -0.00322952, 0.00183574, 6.73215399, 0.98969051, 0.99493474, 0.47693401],886 [ -5.73703572, -0.00322695, 0.00183466, 6.73380876, 0.98970002, 0.99493838, 0.47698111],887 [ -5.73868343, -0.00322440, 0.00183359, 6.73545903, 0.98970951, 0.99494202, 0.47702808],888 [ -5.74032664, -0.00322184, 0.00183251, 6.73710480, 0.98971898, 0.99494565, 0.47707494],889 [ -5.74196538, -0.00321929, 0.00183143, 6.73874609, 0.98972844, 0.99494928, 0.47712167],890 [ -5.74359964, -0.00321674, 0.00183036, 6.74038290, 0.98973789, 0.99495290, 0.47716828],891 [ -5.74522943, -0.00321419, 0.00182928, 6.74201524, 0.98974732, 0.99495653, 0.47721477],892 [ -5.74685478, -0.00321165, 0.00182820, 6.74364312, 0.98975674, 0.99496014, 0.47726113],893 [ -5.74847567, -0.00320911, 0.00182713, 6.74526656, 0.98976614, 0.99496376, 0.47730738],894 [ -5.75009213, -0.00320657, 0.00182605, 6.74688556, 0.98977552, 0.99496737, 0.47735351],895 [ -5.75170417, -0.00320404, 0.00182498, 6.74850013, 0.98978490, 0.99497098, 0.47739952],896 [ -5.75331179, -0.00320151, 0.00182390, 6.75011028, 0.98979425, 0.99497459, 0.47744540],897 [ -5.75491499, -0.00319898, 0.00182283, 6.75171602, 0.98980360, 0.99497819, 0.47749117],898 [ -5.75651380, -0.00319645, 0.00182176, 6.75331735, 0.98981293, 0.99498179, 0.47753682],899 [ -5.75810822, -0.00319393, 0.00182068, 6.75491429, 0.98982224, 0.99498539, 0.47758234],900 [ -5.75969826, -0.00319141, 0.00181961, 6.75650685, 0.98983154, 0.99498899, 0.47762775],901 [ -5.76128392, -0.00318889, 0.00181854, 6.75809504, 0.98984082, 0.99499258, 0.47767304],902 [ -5.76286523, -0.00318637, 0.00181746, 6.75967886, 0.98985009, 0.99499616, 0.47771821],903 [ -5.76444218, -0.00318386, 0.00181639, 6.76125832, 0.98985935, 0.99499975, 0.47776327],904 [ -5.76601479, -0.00318135, 0.00181532, 6.76283343, 0.98986859, 0.99500333, 0.47780820],905 [ -5.76758306, -0.00317884, 0.00181425, 6.76440421, 0.98987782, 0.99500691, 0.47785302],906 [ -5.76914700, -0.00317634, 0.00181318, 6.76597066, 0.98988703, 0.99501049, 0.47789772],907 [ -5.77070663, -0.00317384, 0.00181210, 6.76753279, 0.98989623, 0.99501406, 0.47794230],908 [ -5.77226195, -0.00317134, 0.00181103, 6.76909061, 0.98990542, 0.99501763, 0.47798676],909 [ -5.77381298, -0.00316884, 0.00180996, 6.77064413, 0.98991459, 0.99502119, 0.47803110],910 [ -5.77535971, -0.00316635, 0.00180889, 6.77219336, 0.98992374, 0.99502476, 0.47807533],911 [ -5.77690216, -0.00316386, 0.00180782, 6.77373830, 0.98993289, 0.99502832, 0.47811945],912 [ -5.77844035, -0.00316137, 0.00180675, 6.77527898, 0.98994201, 0.99503187, 0.47816344],913 [ -5.77997427, -0.00315889, 0.00180569, 6.77681538, 0.98995113, 0.99503543, 0.47820732],914 [ -5.78150394, -0.00315640, 0.00180462, 6.77834753, 0.98996023, 0.99503898, 0.47825108],915 [ -5.78302936, -0.00315393, 0.00180355, 6.77987544, 0.98996931, 0.99504253, 0.47829473],916 [ -5.78455056, -0.00315145, 0.00180248, 6.78139911, 0.98997839, 0.99504607, 0.47833826],917 [ -5.78606752, -0.00314897, 0.00180141, 6.78291855, 0.98998744, 0.99504961, 0.47838168],918 [ -5.78758027, -0.00314650, 0.00180035, 6.78443377, 0.98999649, 0.99505315, 0.47842498],919 [ -5.78908882, -0.00314403, 0.00179928, 6.78594478, 0.99000552, 0.99505669, 0.47846816],920 [ -5.79059316, -0.00314157, 0.00179821, 6.78745159, 0.99001453, 0.99506022, 0.47851123],921 [ -5.79209332, -0.00313911, 0.00179715, 6.78895421, 0.99002354, 0.99506375, 0.47855419],922 [ -5.79358930, -0.00313665, 0.00179608, 6.79045265, 0.99003253, 0.99506727, 0.47859703],923 [ -5.79508110, -0.00313419, 0.00179501, 6.79194692, 0.99004150, 0.99507080, 0.47863976],924 [ -5.79656875, -0.00313173, 0.00179395, 6.79343702, 0.99005046, 0.99507432, 0.47868238],925 [ -5.79805224, -0.00312928, 0.00179288, 6.79492296, 0.99005941, 0.99507784, 0.47872487],926 [ -5.79953159, -0.00312683, 0.00179182, 6.79640476, 0.99006834, 0.99508135, 0.47876726],927 [ -5.80100681, -0.00312438, 0.00179075, 6.79788243, 0.99007726, 0.99508486, 0.47880954],928 [ -5.80247790, -0.00312194, 0.00178969, 6.79935596, 0.99008617, 0.99508837, 0.47885170],929 [ -5.80394487, -0.00311950, 0.00178863, 6.80082538, 0.99009506, 0.99509187, 0.47889374],930 [ -5.80540774, -0.00311706, 0.00178756, 6.80229068, 0.99010394, 0.99509538, 0.47893568],931 [ -5.80686651, -0.00311462, 0.00178650, 6.80375189, 0.99011281, 0.99509888, 0.47897750],932 [ -5.80832119, -0.00311219, 0.00178544, 6.80520900, 0.99012166, 0.99510237, 0.47901921],933 [ -5.80977179, -0.00310976, 0.00178438, 6.80666204, 0.99013050, 0.99510587, 0.47906081],934 [ -5.81121832, -0.00310733, 0.00178331, 6.80811099, 0.99013933, 0.99510936, 0.47910230],935 [ -5.81266079, -0.00310490, 0.00178225, 6.80955589, 0.99014814, 0.99511284, 0.47914367],936 [ -5.81409921, -0.00310248, 0.00178119, 6.81099673, 0.99015694, 0.99511633, 0.47918494],937 [ -5.81553358, -0.00310006, 0.00178013, 6.81243352, 0.99016573, 0.99511981, 0.47922609],938 [ -5.81696392, -0.00309764, 0.00177907, 6.81386627, 0.99017450, 0.99512329, 0.47926714],939 [ -5.81839023, -0.00309523, 0.00177801, 6.81529500, 0.99018326, 0.99512676, 0.47930807],940 [ -5.81981252, -0.00309282, 0.00177695, 6.81671970, 0.99019200, 0.99513024, 0.47934889],941 [ -5.82123081, -0.00309041, 0.00177589, 6.81814040, 0.99020074, 0.99513370, 0.47938960],942 [ -5.82264509, -0.00308800, 0.00177483, 6.81955709, 0.99020946, 0.99513717, 0.47943020],943 [ -5.82405539, -0.00308560, 0.00177377, 6.82096980, 0.99021816, 0.99514063, 0.47947070],944 [ -5.82546171, -0.00308319, 0.00177271, 6.82237851, 0.99022686, 0.99514410, 0.47951108],945 [ -5.82686405, -0.00308079, 0.00177165, 6.82378326, 0.99023554, 0.99514755, 0.47955135],946 [ -5.82826243, -0.00307840, 0.00177059, 6.82518403, 0.99024421, 0.99515101, 0.47959152],947 [ -5.82965686, -0.00307600, 0.00176954, 6.82658086, 0.99025286, 0.99515446, 0.47963157],948 [ -5.83104734, -0.00307361, 0.00176848, 6.82797373, 0.99026150, 0.99515791, 0.47967152],949 [ -5.83243389, -0.00307122, 0.00176742, 6.82936266, 0.99027013, 0.99516135, 0.47971136],950 [ -5.83381650, -0.00306884, 0.00176637, 6.83074767, 0.99027875, 0.99516480, 0.47975109],951 [ -5.83519520, -0.00306645, 0.00176531, 6.83212875, 0.99028735, 0.99516824, 0.47979072],952 [ -5.83656999, -0.00306407, 0.00176425, 6.83350592, 0.99029594, 0.99517167, 0.47983023],953 [ -5.83794088, -0.00306169, 0.00176320, 6.83487918, 0.99030451, 0.99517511, 0.47986964],954 [ -5.83930788, -0.00305932, 0.00176214, 6.83624856, 0.99031308, 0.99517854, 0.47990894],955 [ -5.84067099, -0.00305695, 0.00176109, 6.83761404, 0.99032163, 0.99518197, 0.47994814],956 [ -5.84203023, -0.00305458, 0.00176003, 6.83897565, 0.99033017, 0.99518539, 0.47998722],957 [ -5.84338560, -0.00305221, 0.00175898, 6.84033340, 0.99033869, 0.99518881, 0.48002620],958 [ -5.84473712, -0.00304984, 0.00175793, 6.84168728, 0.99034721, 0.99519223, 0.48006508],959 [ -5.84608479, -0.00304748, 0.00175687, 6.84303731, 0.99035571, 0.99519565, 0.48010385],960 [ -5.84742862, -0.00304512, 0.00175582, 6.84438350, 0.99036419, 0.99519906, 0.48014251],961 [ -5.84876862, -0.00304276, 0.00175477, 6.84572586, 0.99037267, 0.99520247, 0.48018107],962 [ -5.85010480, -0.00304041, 0.00175371, 6.84706439, 0.99038113, 0.99520588, 0.48021952],963 [ -5.85143717, -0.00303805, 0.00175266, 6.84839911, 0.99038958, 0.99520929, 0.48025787],964 [ -5.85276573, -0.00303570, 0.00175161, 6.84973003, 0.99039802, 0.99521269, 0.48029611],965 [ -5.85409050, -0.00303336, 0.00175056, 6.85105714, 0.99040644, 0.99521609, 0.48033425],966 [ -5.85541148, -0.00303101, 0.00174951, 6.85238047, 0.99041485, 0.99521948, 0.48037228],967 [ -5.85672868, -0.00302867, 0.00174846, 6.85370002, 0.99042325, 0.99522288, 0.48041021],968 [ -5.85804212, -0.00302633, 0.00174741, 6.85501579, 0.99043164, 0.99522627, 0.48044803],969 [ -5.85935180, -0.00302399, 0.00174636, 6.85632781, 0.99044002, 0.99522965, 0.48048575],970 [ -5.86065772, -0.00302166, 0.00174531, 6.85763607, 0.99044838, 0.99523304, 0.48052337],971 [ -5.86195991, -0.00301932, 0.00174426, 6.85894058, 0.99045673, 0.99523642, 0.48056088],972 [ -5.86325835, -0.00301699, 0.00174321, 6.86024136, 0.99046507, 0.99523980, 0.48059829],973 [ -5.86455308, -0.00301467, 0.00174216, 6.86153841, 0.99047339, 0.99524317, 0.48063560],974 [ -5.86584409, -0.00301234, 0.00174111, 6.86283174, 0.99048171, 0.99524655, 0.48067281],975 [ -5.86713139, -0.00301002, 0.00174006, 6.86412137, 0.99049001, 0.99524992, 0.48070991],976 [ -5.86841499, -0.00300770, 0.00173902, 6.86540729, 0.99049829, 0.99525328, 0.48074691],977 [ -5.86969490, -0.00300538, 0.00173797, 6.86668952, 0.99050657, 0.99525665, 0.48078381],978 [ -5.87097113, -0.00300307, 0.00173692, 6.86796806, 0.99051483, 0.99526001, 0.48082060],979 [ -5.87224368, -0.00300076, 0.00173588, 6.86924293, 0.99052309, 0.99526337, 0.48085730],980 [ -5.87351257, -0.00299845, 0.00173483, 6.87051413, 0.99053133, 0.99526672, 0.48089389],981 [ -5.87477781, -0.00299614, 0.00173378, 6.87178167, 0.99053955, 0.99527008, 0.48093038],982 [ -5.87603940, -0.00299383, 0.00173274, 6.87304557, 0.99054777, 0.99527343, 0.48096678],983 [ -5.87729735, -0.00299153, 0.00173169, 6.87430582, 0.99055597, 0.99527677, 0.48100307],984 [ -5.87855167, -0.00298923, 0.00173065, 6.87556244, 0.99056416, 0.99528012, 0.48103926],985 [ -5.87980237, -0.00298694, 0.00172961, 6.87681543, 0.99057234, 0.99528346, 0.48107535],986 [ -5.88104946, -0.00298464, 0.00172856, 6.87806482, 0.99058051, 0.99528680, 0.48111134],987 [ -5.88229294, -0.00298235, 0.00172752, 6.87931059, 0.99058867, 0.99529013, 0.48114723],988 [ -5.88353283, -0.00298006, 0.00172648, 6.88055277, 0.99059681, 0.99529347, 0.48118302],989 [ -5.88476913, -0.00297777, 0.00172543, 6.88179135, 0.99060494, 0.99529680, 0.48121871],990 [ -5.88600185, -0.00297549, 0.00172439, 6.88302636, 0.99061306, 0.99530012, 0.48125430],991 [ -5.88723100, -0.00297320, 0.00172335, 6.88425779, 0.99062117, 0.99530345, 0.48128980],992 [ -5.88845659, -0.00297093, 0.00172231, 6.88548566, 0.99062927, 0.99530677, 0.48132519],993 [ -5.88967862, -0.00296865, 0.00172127, 6.88670998, 0.99063735, 0.99531009, 0.48136049],994 [ -5.89089712, -0.00296637, 0.00172022, 6.88793074, 0.99064542, 0.99531340, 0.48139569],995 [ -5.89211207, -0.00296410, 0.00171918, 6.88914797, 0.99065348, 0.99531671, 0.48143079],996 [ -5.89332350, -0.00296183, 0.00171814, 6.89036167, 0.99066153, 0.99532002, 0.48146579],997 [ -5.89453141, -0.00295956, 0.00171710, 6.89157185, 0.99066957, 0.99532333, 0.48150069],998 [ -5.89573581, -0.00295730, 0.00171607, 6.89277851, 0.99067760, 0.99532664, 0.48153550],999 [ -5.89693670, -0.00295504, 0.00171503, 6.89398167, 0.99068561, 0.99532994, 0.48157021],1000 [ -5.89813411, -0.00295278, 0.00171399, 6.89518133, 0.99069361, 0.99533324, 0.48160482],1001 [ -5.89932802, -0.00295052, 0.00171295, 6.89637751, 0.99070160, 0.99533653, 0.48163934],1002 [ -5.90051846, -0.00294826, 0.00171191, 6.89757020, 0.99070958, 0.99533983, 0.48167376],1003 [ -5.90170544, -0.00294601, 0.00171088, 6.89875943, 0.99071755, 0.99534312, 0.48170809],1004 [ -5.90288895, -0.00294376, 0.00170984, 6.89994519, 0.99072550, 0.99534640, 0.48174231],1005 [ -5.90406901, -0.00294151, 0.00170880, 6.90112750, 0.99073345, 0.99534969, 0.48177645],1006 [ -5.90524562, -0.00293927, 0.00170777, 6.90230636, 0.99074138, 0.99535297, 0.48181048],1007 [ -5.90641881, -0.00293702, 0.00170673, 6.90348178, 0.99074930, 0.99535625, 0.48184443],1008 [ -5.90758856, -0.00293478, 0.00170569, 6.90465378, 0.99075721, 0.99535952, 0.48187827],1009 [ -5.90875490, -0.00293254, 0.00170466, 6.90582235, 0.99076511, 0.99536280, 0.48191202],1010 [ -5.90991782, -0.00293031, 0.00170363, 6.90698751, 0.99077300, 0.99536607, 0.48194568],1011 [ -5.91107735, -0.00292807, 0.00170259, 6.90814927, 0.99078087, 0.99536933, 0.48197924],1012 [ -5.91223348, -0.00292584, 0.00170156, 6.90930763, 0.99078874, 0.99537260, 0.48201271],1013 [ -5.91338622, -0.00292362, 0.00170052, 6.91046261, 0.99079659, 0.99537586, 0.48204608],1014 [ -5.91453559, -0.00292139, 0.00169949, 6.91161420, 0.99080443, 0.99537912, 0.48207936],1015 [ -5.91568159, -0.00291917, 0.00169846, 6.91276243, 0.99081226, 0.99538238, 0.48211255],1016 [ -5.91682423, -0.00291694, 0.00169743, 6.91390729, 0.99082008, 0.99538563, 0.48214564],1017 [ -5.91796352, -0.00291472, 0.00169639, 6.91504879, 0.99082789, 0.99538888, 0.48217864],1018 [ -5.91909946, -0.00291251, 0.00169536, 6.91618695, 0.99083569, 0.99539213, 0.48221155],1019 [ -5.92023207, -0.00291029, 0.00169433, 6.91732177, 0.99084347, 0.99539537, 0.48224436],1020 [ -5.92136135, -0.00290808, 0.00169330, 6.91845327, 0.99085124, 0.99539862, 0.48227709],1021 [ -5.92248731, -0.00290587, 0.00169227, 6.91958144, 0.99085901, 0.99540186, 0.48230971],1022 [ -5.92360996, -0.00290367, 0.00169124, 6.92070629, 0.99086676, 0.99540509, 0.48234225],1023 [ -5.92472930, -0.00290146, 0.00169021, 6.92182784, 0.99087450, 0.99540833, 0.48237470],1024 [ -5.92584536, -0.00289926, 0.00168918, 6.92294610, 0.99088223, 0.99541156, 0.48240705],1025 [ -5.92695812, -0.00289706, 0.00168816, 6.92406106, 0.99088995, 0.99541479, 0.48243931],1026 [ -5.92806761, -0.00289486, 0.00168713, 6.92517274, 0.99089766, 0.99541801, 0.48247148],1027 [ -5.92917382, -0.00289267, 0.00168610, 6.92628115, 0.99090535, 0.99542123, 0.48250356],1028 [ -5.93027677, -0.00289047, 0.00168507, 6.92738630, 0.99091304, 0.99542445, 0.48253555],1029 [ -5.93137647, -0.00288828, 0.00168405, 6.92848819, 0.99092071, 0.99542767, 0.48256745],1030 [ -5.93247293, -0.00288610, 0.00168302, 6.92958683, 0.99092837, 0.99543089, 0.48259926],1031 [ -5.93356614, -0.00288391, 0.00168199, 6.93068223, 0.99093603, 0.99543410, 0.48263098],1032 [ -5.93465613, -0.00288173, 0.00168097, 6.93177440, 0.99094367, 0.99543731, 0.48266260],1033 [ -5.93574289, -0.00287955, 0.00167994, 6.93286334, 0.99095130, 0.99544051, 0.48269414],1034 [ -5.93682644, -0.00287737, 0.00167892, 6.93394907, 0.99095892, 0.99544371, 0.48272559],1035 [ -5.93790678, -0.00287519, 0.00167789, 6.93503159, 0.99096653, 0.99544692, 0.48275695],1036 [ -5.93898392, -0.00287302, 0.00167687, 6.93611091, 0.99097412, 0.99545011, 0.48278822],1037 [ -5.94005788, -0.00287085, 0.00167585, 6.93718703, 0.99098171, 0.99545331, 0.48281940],1038 [ -5.94112865, -0.00286868, 0.00167482, 6.93825997, 0.99098929, 0.99545650, 0.48285049],1039 [ -5.94219625, -0.00286651, 0.00167380, 6.93932974, 0.99099685, 0.99545969, 0.48288150],1040 [ -5.94326068, -0.00286435, 0.00167278, 6.94039634, 0.99100441, 0.99546288, 0.48291241],1041 [ -5.94432196, -0.00286218, 0.00167176, 6.94145977, 0.99101195, 0.99546606, 0.48294324],1042 [ -5.94538008, -0.00286002, 0.00167074, 6.94252006, 0.99101949, 0.99546924, 0.48297398],1043 [ -5.94643506, -0.00285787, 0.00166971, 6.94357720, 0.99102701, 0.99547242, 0.48300463],1044 [ -5.94748691, -0.00285571, 0.00166869, 6.94463120, 0.99103452, 0.99547559, 0.48303520],1045 [ -5.94853563, -0.00285356, 0.00166767, 6.94568207, 0.99104202, 0.99547877, 0.48306568],1046 [ -5.94958124, -0.00285141, 0.00166666, 6.94672983, 0.99104951, 0.99548194, 0.48309607],1047 [ -5.95062373, -0.00284926, 0.00166564, 6.94777447, 0.99105699, 0.99548510, 0.48312637],1048 [ -5.95166312, -0.00284711, 0.00166462, 6.94881600, 0.99106446, 0.99548827, 0.48315659],1049 [ -5.95269941, -0.00284497, 0.00166360, 6.94985444, 0.99107192, 0.99549143, 0.48318672],1050 [ -5.95373262, -0.00284283, 0.00166258, 6.95088979, 0.99107937, 0.99549459, 0.48321676],1051 [ -5.95476275, -0.00284069, 0.00166156, 6.95192206, 0.99108681, 0.99549775, 0.48324672],1052 [ -5.95578980, -0.00283855, 0.00166055, 6.95295125, 0.99109423, 0.99550090, 0.48327660],1053 [ -5.95681380, -0.00283642, 0.00165953, 6.95397738, 0.99110165, 0.99550405, 0.48330638],1054 [ -5.95783474, -0.00283429, 0.00165852, 6.95500045, 0.99110906, 0.99550720, 0.48333609],1055 [ -5.95885262, -0.00283216, 0.00165750, 6.95602047, 0.99111645, 0.99551034, 0.48336571],1056 [ -5.95986747, -0.00283003, 0.00165648, 6.95703744, 0.99112384, 0.99551348, 0.48339524],1057 [ -5.96087929, -0.00282791, 0.00165547, 6.95805138, 0.99113121, 0.99551662, 0.48342469],1058 [ -5.96188808, -0.00282578, 0.00165446, 6.95906230, 0.99113858, 0.99551976, 0.48345405],1059 [ -5.96289385, -0.00282366, 0.00165344, 6.96007019, 0.99114593, 0.99552290, 0.48348333],1060 [ -5.96389662, -0.00282154, 0.00165243, 6.96107507, 0.99115327, 0.99552603, 0.48351252],1061 [ -5.96489638, -0.00281943, 0.00165142, 6.96207695, 0.99116061, 0.99552916, 0.48354163],1062 [ -5.96589315, -0.00281732, 0.00165040, 6.96307584, 0.99116793, 0.99553228, 0.48357066],1063 [ -5.96688693, -0.00281520, 0.00164939, 6.96407173, 0.99117524, 0.99553540, 0.48359961],1064 [ -5.96787774, -0.00281310, 0.00164838, 6.96506464, 0.99118255, 0.99553852, 0.48362846],1065 [ -5.96886557, -0.00281099, 0.00164737, 6.96605458, 0.99118984, 0.99554164, 0.48365724],1066 [ -5.96985044, -0.00280888, 0.00164636, 6.96704156, 0.99119712, 0.99554476, 0.48368594],1067 [ -5.97083235, -0.00280678, 0.00164535, 6.96802557, 0.99120439, 0.99554787, 0.48371455],1068 [ -5.97181132, -0.00280468, 0.00164434, 6.96900664, 0.99121165, 0.99555098, 0.48374308],1069 [ -5.97278734, -0.00280258, 0.00164333, 6.96998476, 0.99121891, 0.99555409, 0.48377153],1070 [ -5.97376044, -0.00280049, 0.00164232, 6.97095995, 0.99122615, 0.99555719, 0.48379989],1071 [ -5.97473060, -0.00279840, 0.00164131, 6.97193221, 0.99123338, 0.99556029, 0.48382818],1072 [ -5.97569785, -0.00279631, 0.00164031, 6.97290155, 0.99124060, 0.99556339, 0.48385638],1073 [ -5.97666219, -0.00279422, 0.00163930, 6.97386797, 0.99124781, 0.99556648, 0.48388450],1074 [ -5.97762362, -0.00279213, 0.00163829, 6.97483149, 0.99125501, 0.99556958, 0.48391254],1075 [ -5.97858216, -0.00279005, 0.00163729, 6.97579212, 0.99126220, 0.99557267, 0.48394050],1076 [ -5.97953782, -0.00278796, 0.00163628, 6.97674985, 0.99126938, 0.99557576, 0.48396837],1077 [ -5.98049059, -0.00278589, 0.00163527, 6.97770470, 0.99127655, 0.99557884, 0.48399617],1078 [ -5.98144049, -0.00278381, 0.00163427, 6.97865668, 0.99128371, 0.99558192, 0.48402389],1079 [ -5.98238752, -0.00278173, 0.00163326, 6.97960579, 0.99129087, 0.99558500, 0.48405152],1080 [ -5.98333170, -0.00277966, 0.00163226, 6.98055204, 0.99129801, 0.99558808, 0.48407908],1081 [ -5.98427302, -0.00277759, 0.00163126, 6.98149543, 0.99130514, 0.99559115, 0.48410655],1082 [ -5.98521150, -0.00277552, 0.00163025, 6.98243598, 0.99131226, 0.99559422, 0.48413395],1083 [ -5.98614715, -0.00277346, 0.00162925, 6.98337369, 0.99131937, 0.99559729, 0.48416127],1084 [ -5.98707997, -0.00277139, 0.00162825, 6.98430858, 0.99132647, 0.99560036, 0.48418851],1085 [ -5.98800996, -0.00276933, 0.00162725, 6.98524063, 0.99133356, 0.99560342, 0.48421567],1086 [ -5.98893715, -0.00276727, 0.00162625, 6.98616988, 0.99134064, 0.99560648, 0.48424275],1087 [ -5.98986153, -0.00276521, 0.00162525, 6.98709631, 0.99134771, 0.99560954, 0.48426975],1088 [ -5.99078310, -0.00276316, 0.00162425, 6.98801995, 0.99135477, 0.99561259, 0.48429667],1089 [ -5.99170189, -0.00276111, 0.00162325, 6.98894079, 0.99136183, 0.99561565, 0.48432352],1090 [ -5.99261789, -0.00275906, 0.00162225, 6.98985884, 0.99136887, 0.99561870, 0.48435028],1091 [ -5.99353112, -0.00275701, 0.00162125, 6.99077411, 0.99137590, 0.99562174, 0.48437697],1092 [ -5.99444158, -0.00275496, 0.00162025, 6.99168662, 0.99138292, 0.99562479, 0.48440358],1093 [ -5.99534927, -0.00275292, 0.00161925, 6.99259635, 0.99138994, 0.99562783, 0.48443012],1094 [ -5.99625421, -0.00275088, 0.00161826, 6.99350334, 0.99139694, 0.99563087, 0.48445657],1095 [ -5.99715640, -0.00274884, 0.00161726, 6.99440757, 0.99140393, 0.99563390, 0.48448295],1096 [ -5.99805585, -0.00274680, 0.00161626, 6.99530906, 0.99141092, 0.99563694, 0.48450926],1097 [ -5.99895257, -0.00274476, 0.00161527, 6.99620781, 0.99141789, 0.99563997, 0.48453548],1098 [ -5.99984656, -0.00274273, 0.00161427, 6.99710383, 0.99142485, 0.99564299, 0.48456163],1099 [ -6.00073784, -0.00274070, 0.00161328, 6.99799714, 0.99143181, 0.99564602, 0.48458771],1100 [ -6.00162640, -0.00273867, 0.00161228, 6.99888773, 0.99143875, 0.99564904, 0.48461370],1101 [ -6.00251225, -0.00273665, 0.00161129, 6.99977561, 0.99144569, 0.99565206, 0.48463962],1102 [ -6.00339541, -0.00273462, 0.00161030, 7.00066079, 0.99145261, 0.99565508, 0.48466547],1103 [ -6.00427588, -0.00273260, 0.00160931, 7.00154328, 0.99145953, 0.99565809, 0.48469124],1104 [ -6.00515367, -0.00273058, 0.00160831, 7.00242309, 0.99146644, 0.99566111, 0.48471693],1105 [ -6.00602878, -0.00272856, 0.00160732, 7.00330021, 0.99147334, 0.99566411, 0.48474255],1106 [ -6.00690122, -0.00272655, 0.00160633, 7.00417467, 0.99148022, 0.99566712, 0.48476810],1107 [ -6.00777100, -0.00272454, 0.00160534, 7.00504646, 0.99148710, 0.99567012, 0.48479357],1108 [ -6.00863812, -0.00272252, 0.00160435, 7.00591560, 0.99149397, 0.99567313, 0.48481896],1109 [ -6.00950260, -0.00272052, 0.00160336, 7.00678208, 0.99150083, 0.99567612, 0.48484429],1110 [ -6.01036444, -0.00271851, 0.00160237, 7.00764593, 0.99150768, 0.99567912, 0.48486953],1111 [ -6.01122364, -0.00271651, 0.00160138, 7.00850713, 0.99151452, 0.99568211, 0.48489471],1112 [ -6.01208022, -0.00271450, 0.00160039, 7.00936571, 0.99152135, 0.99568510, 0.48491980],1113 [ -6.01293417, -0.00271250, 0.00159941, 7.01022167, 0.99152817, 0.99568809, 0.48494483],1114 [ -6.01378552, -0.00271051, 0.00159842, 7.01107501, 0.99153498, 0.99569107, 0.48496978],1115 [ -6.01463426, -0.00270851, 0.00159743, 7.01192575, 0.99154179, 0.99569406, 0.48499466],1116 [ -6.01548040, -0.00270652, 0.00159645, 7.01277388, 0.99154858, 0.99569704, 0.48501947],1117 [ -6.01632394, -0.00270453, 0.00159546, 7.01361942, 0.99155537, 0.99570001, 0.48504420],1118 [ -6.01716491, -0.00270254, 0.00159448, 7.01446237, 0.99156214, 0.99570299, 0.48506886],1119 [ -6.01800329, -0.00270055, 0.00159349, 7.01530274, 0.99156891, 0.99570596, 0.48509345],1120 [ -6.01883911, -0.00269856, 0.00159251, 7.01614055, 0.99157566, 0.99570893, 0.48511797],1121 [ -6.01967236, -0.00269658, 0.00159153, 7.01697578, 0.99158241, 0.99571189, 0.48514241],1122 [ -6.02050306, -0.00269460, 0.00159054, 7.01780845, 0.99158915, 0.99571486, 0.48516678],1123 [ -6.02133120, -0.00269262, 0.00158956, 7.01863858, 0.99159588, 0.99571782, 0.48519108],1124 [ -6.02215680, -0.00269065, 0.00158858, 7.01946615, 0.99160260, 0.99572077, 0.48521531],1125 [ -6.02297987, -0.00268867, 0.00158760, 7.02029119, 0.99160931, 0.99572373, 0.48523947],1126 [ -6.02380040, -0.00268670, 0.00158662, 7.02111370, 0.99161601, 0.99572668, 0.48526355],1127 [ -6.02461841, -0.00268473, 0.00158564, 7.02193368, 0.99162270, 0.99572963, 0.48528757],1128 [ -6.02543391, -0.00268276, 0.00158466, 7.02275115, 0.99162938, 0.99573258, 0.48531151],1129 [ -6.02624690, -0.00268080, 0.00158368, 7.02356610, 0.99163606, 0.99573552, 0.48533539],1130 [ -6.02705738, -0.00267883, 0.00158270, 7.02437855, 0.99164272, 0.99573847, 0.48535919],1131 [ -6.02786537, -0.00267687, 0.00158172, 7.02518850, 0.99164938, 0.99574141, 0.48538292],1132 [ -6.02867087, -0.00267491, 0.00158074, 7.02599596, 0.99165602, 0.99574434, 0.48540659],1133 [ -6.02947389, -0.00267296, 0.00157977, 7.02680093, 0.99166266, 0.99574728, 0.48543018],1134 [ -6.03027443, -0.00267100, 0.00157879, 7.02760343, 0.99166929, 0.99575021, 0.48545370],1135 [ -6.03107251, -0.00266905, 0.00157781, 7.02840346, 0.99167591, 0.99575314, 0.48547716],1136 [ -6.03186812, -0.00266710, 0.00157684, 7.02920102, 0.99168252, 0.99575606, 0.48550054],1137 [ -6.03266127, -0.00266515, 0.00157586, 7.02999612, 0.99168912, 0.99575899, 0.48552386],1138 [ -6.03345198, -0.00266320, 0.00157489, 7.03078878, 0.99169571, 0.99576191, 0.48554710],1139 [ -6.03424025, -0.00266126, 0.00157391, 7.03157899, 0.99170230, 0.99576483, 0.48557028],1140 [ -6.03502608, -0.00265932, 0.00157294, 7.03236676, 0.99170887, 0.99576774, 0.48559339],1141 [ -6.03580948, -0.00265738, 0.00157197, 7.03315210, 0.99171544, 0.99577065, 0.48561643],1142 [ -6.03659046, -0.00265544, 0.00157100, 7.03393502, 0.99172199, 0.99577356, 0.48563940],1143 [ -6.03736903, -0.00265350, 0.00157002, 7.03471552, 0.99172854, 0.99577647, 0.48566231],1144 [ -6.03814518, -0.00265157, 0.00156905, 7.03549361, 0.99173508, 0.99577938, 0.48568514],1145 [ -6.03891894, -0.00264964, 0.00156808, 7.03626930, 0.99174161, 0.99578228, 0.48570791],1146 [ -6.03969029, -0.00264771, 0.00156711, 7.03704258, 0.99174813, 0.99578518, 0.48573061],1147 [ -6.04045926, -0.00264578, 0.00156614, 7.03781348, 0.99175464, 0.99578807, 0.48575324],1148 [ -6.04122585, -0.00264386, 0.00156517, 7.03858199, 0.99176115, 0.99579097, 0.48577581],1149 [ -6.04199006, -0.00264193, 0.00156421, 7.03934813, 0.99176764, 0.99579386, 0.48579831],1150 [ -6.04275190, -0.00264001, 0.00156324, 7.04011189, 0.99177413, 0.99579675, 0.48582075],1151 [ -6.04351138, -0.00263809, 0.00156227, 7.04087328, 0.99178061, 0.99579964, 0.48584311],1152 [ -6.04426850, -0.00263618, 0.00156130, 7.04163232, 0.99178707, 0.99580252, 0.48586541],1153 [ -6.04502327, -0.00263426, 0.00156034, 7.04238901, 0.99179353, 0.99580540, 0.48588765],1154 [ -6.04577570, -0.00263235, 0.00155937, 7.04314335, 0.99179998, 0.99580828, 0.48590981],1155 [ -6.04652579, -0.00263044, 0.00155841, 7.04389535, 0.99180643, 0.99581115, 0.48593191],1156 [ -6.04727354, -0.00262853, 0.00155744, 7.04464502, 0.99181286, 0.99581403, 0.48595395],1157 [ -6.04801898, -0.00262662, 0.00155648, 7.04539236, 0.99181929, 0.99581690, 0.48597592],1158 [ -6.04876210, -0.00262472, 0.00155552, 7.04613738, 0.99182570, 0.99581977, 0.48599782],1159 [ -6.04950290, -0.00262282, 0.00155455, 7.04688009, 0.99183211, 0.99582263, 0.48601966],1160 [ -6.05024140, -0.00262092, 0.00155359, 7.04762049, 0.99183851, 0.99582549, 0.48604144],1161 [ -6.05097760, -0.00261902, 0.00155263, 7.04835858, 0.99184490, 0.99582835, 0.48606315],1162 [ -6.05171151, -0.00261712, 0.00155167, 7.04909439, 0.99185128, 0.99583121, 0.48608479],1163 [ -6.05244313, -0.00261523, 0.00155071, 7.04982791, 0.99185765, 0.99583407, 0.48610637],1164 [ -6.05317248, -0.00261334, 0.00154975, 7.05055914, 0.99186402, 0.99583692, 0.48612789],1165 [ -6.05389955, -0.00261145, 0.00154879, 7.05128810, 0.99187037, 0.99583977, 0.48614934],1166 [ -6.05462435, -0.00260956, 0.00154783, 7.05201479, 0.99187672, 0.99584261, 0.48617073],1167 [ -6.05534689, -0.00260767, 0.00154687, 7.05273922, 0.99188306, 0.99584546, 0.48619205],1168 [ -6.05606718, -0.00260579, 0.00154591, 7.05346139, 0.99188939, 0.99584830, 0.48621331],1169 [ -6.05678521, -0.00260391, 0.00154495, 7.05418131, 0.99189571, 0.99585114, 0.48623450],1170 [ -6.05750101, -0.00260203, 0.00154400, 7.05489898, 0.99190203, 0.99585398, 0.48625564],1171 [ -6.05821457, -0.00260015, 0.00154304, 7.05561442, 0.99190833, 0.99585681, 0.48627671],1172 [ -6.05892590, -0.00259827, 0.00154209, 7.05632763, 0.99191463, 0.99585964, 0.48629772],1173 [ -6.05963501, -0.00259640, 0.00154113, 7.05703861, 0.99192092, 0.99586247, 0.48631866],1174 [ -6.06034190, -0.00259453, 0.00154018, 7.05774737, 0.99192720, 0.99586529, 0.48633954],1175 [ -6.06104657, -0.00259266, 0.00153922, 7.05845392, 0.99193347, 0.99586812, 0.48636036],1176 [ -6.06174905, -0.00259079, 0.00153827, 7.05915826, 0.99193973, 0.99587094, 0.48638112],1177 [ -6.06244932, -0.00258893, 0.00153732, 7.05986040, 0.99194598, 0.99587376, 0.48640181],1178 [ -6.06314740, -0.00258706, 0.00153637, 7.06056034, 0.99195223, 0.99587657, 0.48642244],1179 [ -6.06384330, -0.00258520, 0.00153541, 7.06125810, 0.99195847, 0.99587938, 0.48644301],1180 [ -6.06453701, -0.00258334, 0.00153446, 7.06195367, 0.99196470, 0.99588220, 0.48646352],1181 [ -6.06522855, -0.00258148, 0.00153351, 7.06264707, 0.99197092, 0.99588500, 0.48648397],1182 [ -6.06591793, -0.00257963, 0.00153256, 7.06333830, 0.99197713, 0.99588781, 0.48650436],1183 [ -6.06660514, -0.00257778, 0.00153161, 7.06402736, 0.99198334, 0.99589061, 0.48652468],1184 [ -6.06729019, -0.00257592, 0.00153067, 7.06471427, 0.99198953, 0.99589341, 0.48654494],1185 [ -6.06797309, -0.00257408, 0.00152972, 7.06539902, 0.99199572, 0.99589621, 0.48656515],1186 [ -6.06865385, -0.00257223, 0.00152877, 7.06608163, 0.99200190, 0.99589900, 0.48658529],1187 [ -6.06933248, -0.00257038, 0.00152782, 7.06676209, 0.99200807, 0.99590179, 0.48660537],1188 [ -6.07000896, -0.00256854, 0.00152688, 7.06744043, 0.99201424, 0.99590458, 0.48662539],1189 [ -6.07068333, -0.00256670, 0.00152593, 7.06811663, 0.99202039, 0.99590737, 0.48664535],1190 [ -6.07135557, -0.00256486, 0.00152499, 7.06879071, 0.99202654, 0.99591015, 0.48666525],1191 [ -6.07202570, -0.00256302, 0.00152404, 7.06946268, 0.99203268, 0.99591294, 0.48668509],1192 [ -6.07269372, -0.00256119, 0.00152310, 7.07013254, 0.99203881, 0.99591572, 0.48670487],1193 [ -6.07335964, -0.00255935, 0.00152215, 7.07080029, 0.99204493, 0.99591849, 0.48672460],1194 [ -6.07402346, -0.00255752, 0.00152121, 7.07146594, 0.99205104, 0.99592127, 0.48674426],1195 [ -6.07468520, -0.00255569, 0.00152027, 7.07212950, 0.99205715, 0.99592404, 0.48676386],1196 [ -6.07534484, -0.00255387, 0.00151933, 7.07279098, 0.99206325, 0.99592681, 0.48678341],1197 [ -6.07600241, -0.00255204, 0.00151839, 7.07345037, 0.99206934, 0.99592957, 0.48680289],1198 [ -6.07665791, -0.00255022, 0.00151745, 7.07410769, 0.99207542, 0.99593234, 0.48682232],1199 [ -6.07731134, -0.00254840, 0.00151651, 7.07476294, 0.99208149, 0.99593510, 0.48684169],1200 [ -6.07796271, -0.00254658, 0.00151557, 7.07541613, 0.99208756, 0.99593786, 0.48686100],1201 [ -6.07861202, -0.00254476, 0.00151463, 7.07606726, 0.99209362, 0.99594061, 0.48688025],1202 [ -6.07925928, -0.00254294, 0.00151369, 7.07671634, 0.99209967, 0.99594336, 0.48689944],1203 [ -6.07990450, -0.00254113, 0.00151275, 7.07736337, 0.99210571, 0.99594612, 0.48691858],1204 [ -6.08054769, -0.00253932, 0.00151182, 7.07800837, 0.99211174, 0.99594886, 0.48693766],1205 [ -6.08118884, -0.00253751, 0.00151088, 7.07865133, 0.99211777, 0.99595161, 0.48695668],1206 [ -6.08182796, -0.00253570, 0.00150994, 7.07929226, 0.99212379, 0.99595435, 0.48697564],1207 [ -6.08246507, -0.00253390, 0.00150901, 7.07993117, 0.99212980, 0.99595709, 0.48699454],1208 [ -6.08310016, -0.00253210, 0.00150807, 7.08056806, 0.99213580, 0.99595983, 0.48701339],1209 [ -6.08373324, -0.00253029, 0.00150714, 7.08120294, 0.99214179, 0.99596257, 0.48703218],1210 [ -6.08436431, -0.00252849, 0.00150621, 7.08183582, 0.99214778, 0.99596530, 0.48705092],1211 [ -6.08499339, -0.00252670, 0.00150527, 7.08246669, 0.99215376, 0.99596803, 0.48706960],1212 [ -6.08562048, -0.00252490, 0.00150434, 7.08309558, 0.99215973, 0.99597076, 0.48708821],1213 [ -6.08624558, -0.00252311, 0.00150341, 7.08372247, 0.99216569, 0.99597348, 0.48710678],1214 [ -6.08686870, -0.00252132, 0.00150248, 7.08434738, 0.99217164, 0.99597620, 0.48712529],1215 [ -6.08748985, -0.00251953, 0.00150155, 7.08497032, 0.99217759, 0.99597892, 0.48714374],1216 [ -6.08810902, -0.00251774, 0.00150062, 7.08559128, 0.99218353, 0.99598164, 0.48716214],1217 [ -6.08872624, -0.00251595, 0.00149969, 7.08621028, 0.99218946, 0.99598436, 0.48718048],1218 [ -6.08934149, -0.00251417, 0.00149876, 7.08682732, 0.99219538, 0.99598707, 0.48719876],1219 [ -6.08995479, -0.00251239, 0.00149784, 7.08744241, 0.99220130, 0.99598978, 0.48721699],1220 [ -6.09056615, -0.00251061, 0.00149691, 7.08805554, 0.99220721, 0.99599248, 0.48723517],1221 [ -6.09117556, -0.00250883, 0.00149598, 7.08866673, 0.99221310, 0.99599519, 0.48725329],1222 [ -6.09178304, -0.00250705, 0.00149506, 7.08927599, 0.99221900, 0.99599789, 0.48727135],1223 [ -6.09238859, -0.00250528, 0.00149413, 7.08988331, 0.99222488, 0.99600059, 0.48728936],1224 [ -6.09299221, -0.00250351, 0.00149320, 7.09048871, 0.99223076, 0.99600329, 0.48730732],1225 [ -6.09359392, -0.00250174, 0.00149228, 7.09109218, 0.99223663, 0.99600598, 0.48732522],1226 [ -6.09419371, -0.00249997, 0.00149136, 7.09169374, 0.99224249, 0.99600867, 0.48734306],1227 [ -6.09479159, -0.00249820, 0.00149043, 7.09229339, 0.99224834, 0.99601136, 0.48736085],1228 [ -6.09538757, -0.00249644, 0.00148951, 7.09289113, 0.99225419, 0.99601405, 0.48737859],1229 [ -6.09598165, -0.00249468, 0.00148859, 7.09348698, 0.99226003, 0.99601673, 0.48739628],1230 [ -6.09657385, -0.00249292, 0.00148767, 7.09408093, 0.99226586, 0.99601942, 0.48741390],1231 [ -6.09716415, -0.00249116, 0.00148675, 7.09467299, 0.99227168, 0.99602210, 0.48743148],1232 [ -6.09775257, -0.00248940, 0.00148583, 7.09526317, 0.99227749, 0.99602477, 0.48744900],1233 [ -6.09833912, -0.00248765, 0.00148491, 7.09585148, 0.99228330, 0.99602745, 0.48746647],1234 [ -6.09892380, -0.00248589, 0.00148399, 7.09643791, 0.99228910, 0.99603012, 0.48748389],1235 [ -6.09950662, -0.00248414, 0.00148307, 7.09702248, 0.99229489, 0.99603279, 0.48750125],1236 [ -6.10008757, -0.00248239, 0.00148215, 7.09760518, 0.99230068, 0.99603545, 0.48751856],1237 [ -6.10066667, -0.00248065, 0.00148124, 7.09818603, 0.99230646, 0.99603812, 0.48753582],1238 [ -6.10124393, -0.00247890, 0.00148032, 7.09876503, 0.99231223, 0.99604078, 0.48755302],1239 [ -6.10181934, -0.00247716, 0.00147941, 7.09934218, 0.99231799, 0.99604344, 0.48757018],1240 [ -6.10239291, -0.00247542, 0.00147849, 7.09991749, 0.99232374, 0.99604609, 0.48758728],1241 [ -6.10296465, -0.00247368, 0.00147758, 7.10049097, 0.99232949, 0.99604875, 0.48760432],1242 [ -6.10353456, -0.00247194, 0.00147666, 7.10106262, 0.99233523, 0.99605140, 0.48762132],1243 [ -6.10410265, -0.00247020, 0.00147575, 7.10163245, 0.99234096, 0.99605405, 0.48763826],1244 [ -6.10466892, -0.00246847, 0.00147484, 7.10220045, 0.99234669, 0.99605669, 0.48765516],1245 [ -6.10523338, -0.00246674, 0.00147393, 7.10276665, 0.99235240, 0.99605934, 0.48767200],1246 [ -6.10579604, -0.00246501, 0.00147301, 7.10333103, 0.99235811, 0.99606198, 0.48768879],1247 [ -6.10635689, -0.00246328, 0.00147210, 7.10389362, 0.99236382, 0.99606462, 0.48770552],1248 [ -6.10691595, -0.00246155, 0.00147119, 7.10445440, 0.99236951, 0.99606725, 0.48772221],1249 [ -6.10747322, -0.00245983, 0.00147028, 7.10501339, 0.99237520, 0.99606989, 0.48773885],1250 [ -6.10802871, -0.00245811, 0.00146937, 7.10557060, 0.99238088, 0.99607252, 0.48775543],1251 [ -6.10858241, -0.00245639, 0.00146847, 7.10612603, 0.99238655, 0.99607515, 0.48777197],1252 [ -6.10913434, -0.00245467, 0.00146756, 7.10667967, 0.99239222, 0.99607777, 0.48778845],1253 [ -6.10968450, -0.00245295, 0.00146665, 7.10723155, 0.99239787, 0.99608040, 0.48780488],1254 [ -6.11023289, -0.00245123, 0.00146575, 7.10778166, 0.99240353, 0.99608302, 0.48782127],1255 [ -6.11077953, -0.00244952, 0.00146484, 7.10833001, 0.99240917, 0.99608564, 0.48783760],1256 [ -6.11132441, -0.00244781, 0.00146393, 7.10887660, 0.99241480, 0.99608825, 0.48785388],1257 [ -6.11186754, -0.00244610, 0.00146303, 7.10942144, 0.99242043, 0.99609087, 0.48787012],1258 [ -6.11240893, -0.00244439, 0.00146213, 7.10996454, 0.99242605, 0.99609348, 0.48788630],1259 [ -6.11294858, -0.00244269, 0.00146122, 7.11050589, 0.99243167, 0.99609609, 0.48790243],1260 [ -6.11348649, -0.00244098, 0.00146032, 7.11104551, 0.99243728, 0.99609869, 0.48791852],1261 [ -6.11402268, -0.00243928, 0.00145942, 7.11158340, 0.99244288, 0.99610130, 0.48793455],1262 [ -6.11455714, -0.00243758, 0.00145852, 7.11211956, 0.99244847, 0.99610390, 0.48795053],1263 [ -6.11508989, -0.00243588, 0.00145762, 7.11265400, 0.99245405, 0.99610650, 0.48796647],1264 [ -6.11562092, -0.00243419, 0.00145672, 7.11318673, 0.99245963, 0.99610909, 0.48798236],1265 [ -6.11615024, -0.00243249, 0.00145582, 7.11371775, 0.99246520, 0.99611169, 0.48799820],1266 [ -6.11667786, -0.00243080, 0.00145492, 7.11424706, 0.99247077, 0.99611428, 0.48801399],1267 [ -6.11720378, -0.00242911, 0.00145402, 7.11477467, 0.99247632, 0.99611687, 0.48802973],1268 [ -6.11772800, -0.00242742, 0.00145312, 7.11530058, 0.99248187, 0.99611945, 0.48804543],1269 [ -6.11825054, -0.00242574, 0.00145223, 7.11582481, 0.99248741, 0.99612204, 0.48806107],1270 [ -6.11877140, -0.00242405, 0.00145133, 7.11634735, 0.99249295, 0.99612462, 0.48807667],1271 [ -6.11929057, -0.00242237, 0.00145043, 7.11686820, 0.99249847, 0.99612720, 0.48809222],1272 [ -6.11980807, -0.00242069, 0.00144954, 7.11738739, 0.99250400, 0.99612978, 0.48810772],1273 [ -6.12032390, -0.00241901, 0.00144864, 7.11790490, 0.99250951, 0.99613235, 0.48812317],1274 [ -6.12083807, -0.00241733, 0.00144775, 7.11842074, 0.99251501, 0.99613492, 0.48813858],1275 [ -6.12135058, -0.00241565, 0.00144686, 7.11893493, 0.99252051, 0.99613749, 0.48815394],1276 [ -6.12186144, -0.00241398, 0.00144597, 7.11944746, 0.99252601, 0.99614006, 0.48816925],1277 [ -6.12237064, -0.00241231, 0.00144507, 7.11995834, 0.99253149, 0.99614262, 0.48818451],1278 [ -6.12287820, -0.00241064, 0.00144418, 7.12046757, 0.99253697, 0.99614518, 0.48819973],1279 [ -6.12338412, -0.00240897, 0.00144329, 7.12097516, 0.99254244, 0.99614774, 0.48821490],1280 [ -6.12388841, -0.00240730, 0.00144240, 7.12148111, 0.99254790, 0.99615030, 0.48823002],1281 [ -6.12439107, -0.00240563, 0.00144151, 7.12198543, 0.99255336, 0.99615285, 0.48824510],1282 [ -6.12489210, -0.00240397, 0.00144062, 7.12248813, 0.99255881, 0.99615540, 0.48826013],1283 [ -6.12539151, -0.00240231, 0.00143974, 7.12298920, 0.99256425, 0.99615795, 0.48827512],1284 [ -6.12588931, -0.00240065, 0.00143885, 7.12348866, 0.99256969, 0.99616050, 0.48829005],1285 [ -6.12638549, -0.00239899, 0.00143796, 7.12398650, 0.99257512, 0.99616304, 0.48830495],1286 [ -6.12688007, -0.00239734, 0.00143708, 7.12448273, 0.99258054, 0.99616559, 0.48831979],1287 [ -6.12737305, -0.00239568, 0.00143619, 7.12497736, 0.99258596, 0.99616813, 0.48833460],1288 [ -6.12786443, -0.00239403, 0.00143531, 7.12547040, 0.99259136, 0.99617066, 0.48834935],1289 [ -6.12835422, -0.00239238, 0.00143442, 7.12596184, 0.99259676, 0.99617320, 0.48836406],1290 [ -6.12884242, -0.00239073, 0.00143354, 7.12645169, 0.99260216, 0.99617573, 0.48837872],1291 [ -6.12932904, -0.00238908, 0.00143266, 7.12693996, 0.99260755, 0.99617826, 0.48839334],1292 [ -6.12981408, -0.00238744, 0.00143177, 7.12742664, 0.99261293, 0.99618079, 0.48840792],1293 [ -6.13029755, -0.00238580, 0.00143089, 7.12791176, 0.99261830, 0.99618331, 0.48842244],1294 [ -6.13077945, -0.00238416, 0.00143001, 7.12839530, 0.99262367, 0.99618583, 0.48843693],1295 [ -6.13125979, -0.00238252, 0.00142913, 7.12887728, 0.99262903, 0.99618835, 0.48845136],1296 [ -6.13173857, -0.00238088, 0.00142825, 7.12935769, 0.99263438, 0.99619087, 0.48846576],1297 [ -6.13221579, -0.00237924, 0.00142737, 7.12983655, 0.99263972, 0.99619339, 0.48848011],1298 [ -6.13269147, -0.00237761, 0.00142649, 7.13031386, 0.99264506, 0.99619590, 0.48849441],1299 [ -6.13316560, -0.00237598, 0.00142562, 7.13078962, 0.99265040, 0.99619841, 0.48850867],1300 [ -6.13363819, -0.00237434, 0.00142474, 7.13126384, 0.99265572, 0.99620092, 0.48852289],1301 [ -6.13410924, -0.00237272, 0.00142386, 7.13173652, 0.99266104, 0.99620342, 0.48853706],1302 [ -6.13457876, -0.00237109, 0.00142299, 7.13220767, 0.99266635, 0.99620593, 0.48855119],1303 [ -6.13504676, -0.00236946, 0.00142211, 7.13267729, 0.99267166, 0.99620843, 0.48856528],1304 [ -6.13551323, -0.00236784, 0.00142124, 7.13314539, 0.99267696, 0.99621092, 0.48857932],1305 [ -6.13597818, -0.00236622, 0.00142036, 7.13361197, 0.99268225, 0.99621342, 0.48859332],1306 [ -6.13644163, -0.00236460, 0.00141949, 7.13407703, 0.99268753, 0.99621591, 0.48860727],1307 [ -6.13690356, -0.00236298, 0.00141862, 7.13454058, 0.99269281, 0.99621840, 0.48862118],1308 [ -6.13736399, -0.00236136, 0.00141774, 7.13500263, 0.99269808, 0.99622089, 0.48863505],1309 [ -6.13782292, -0.00235975, 0.00141687, 7.13546317, 0.99270335, 0.99622338, 0.48864888],1310 [ -6.13828035, -0.00235814, 0.00141600, 7.13592222, 0.99270861, 0.99622586, 0.48866266],1311 [ -6.13873630, -0.00235652, 0.00141513, 7.13637977, 0.99271386, 0.99622834, 0.48867640],1312 [ -6.13919076, -0.00235492, 0.00141426, 7.13683584, 0.99271910, 0.99623082, 0.48869010],1313 [ -6.13964373, -0.00235331, 0.00141339, 7.13729042, 0.99272434, 0.99623330, 0.48870375],1314 [ -6.14009523, -0.00235170, 0.00141253, 7.13774353, 0.99272957, 0.99623577, 0.48871736],1315 [ -6.14054526, -0.00235010, 0.00141166, 7.13819516, 0.99273480, 0.99623824, 0.48873093],1316 [ -6.14099381, -0.00234850, 0.00141079, 7.13864532, 0.99274001, 0.99624071, 0.48874446],1317 [ -6.14144091, -0.00234689, 0.00140993, 7.13909401, 0.99274523, 0.99624318, 0.48875794],1318 [ -6.14188654, -0.00234530, 0.00140906, 7.13954125, 0.99275043, 0.99624564, 0.48877139],1319 [ -6.14233072, -0.00234370, 0.00140820, 7.13998702, 0.99275563, 0.99624811, 0.48878479],1320 [ -6.14277345, -0.00234210, 0.00140733, 7.14043134, 0.99276082, 0.99625057, 0.48879815],1321 [ -6.14321473, -0.00234051, 0.00140647, 7.14087422, 0.99276601, 0.99625302, 0.48881147],1322 [ -6.14365457, -0.00233892, 0.00140561, 7.14131565, 0.99277118, 0.99625548, 0.48882475],1323 [ -6.14409297, -0.00233733, 0.00140474, 7.14175564, 0.99277636, 0.99625793, 0.48883798],1324 [ -6.14452994, -0.00233574, 0.00140388, 7.14219420, 0.99278152, 0.99626038, 0.48885118],1325 [ -6.14496548, -0.00233415, 0.00140302, 7.14263132, 0.99278668, 0.99626283, 0.48886433],1326 [ -6.14539959, -0.00233257, 0.00140216, 7.14306702, 0.99279183, 0.99626527, 0.48887745],1327 [ -6.14583228, -0.00233098, 0.00140130, 7.14350130, 0.99279698, 0.99626772, 0.48889052],1328 [ -6.14626356, -0.00232940, 0.00140044, 7.14393416, 0.99280212, 0.99627016, 0.48890355],1329 [ -6.14669342, -0.00232782, 0.00139958, 7.14436560, 0.99280725, 0.99627259, 0.48891654],1330 [ -6.14712188, -0.00232625, 0.00139873, 7.14479564, 0.99281238, 0.99627503, 0.48892949],1331 [ -6.14754894, -0.00232467, 0.00139787, 7.14522427, 0.99281750, 0.99627746, 0.48894240],1332 [ -6.14797459, -0.00232309, 0.00139701, 7.14565150, 0.99282261, 0.99627989, 0.48895527],1333 [ -6.14839885, -0.00232152, 0.00139616, 7.14607733, 0.99282772, 0.99628232, 0.48896810],1334 [ -6.14882172, -0.00231995, 0.00139530, 7.14650177, 0.99283282, 0.99628475, 0.48898089],1335 [ -6.14924320, -0.00231838, 0.00139445, 7.14692482, 0.99283791, 0.99628717, 0.48899364],1336 [ -6.14966330, -0.00231681, 0.00139359, 7.14734649, 0.99284300, 0.99628959, 0.48900634],1337 [ -6.15008202, -0.00231525, 0.00139274, 7.14776677, 0.99284808, 0.99629201, 0.48901902],1338 [ -6.15049937, -0.00231368, 0.00139189, 7.14818569, 0.99285316, 0.99629443, 0.48903165],1339 [ -6.15091535, -0.00231212, 0.00139104, 7.14860323, 0.99285823, 0.99629684, 0.48904424],1340 [ -6.15132996, -0.00231056, 0.00139018, 7.14901940, 0.99286329, 0.99629926, 0.48905679],1341 [ -6.15174321, -0.00230900, 0.00138933, 7.14943421, 0.99286834, 0.99630166, 0.48906930],1342 [ -6.15215510, -0.00230744, 0.00138848, 7.14984766, 0.99287339, 0.99630407, 0.48908178],1343 [ -6.15256564, -0.00230589, 0.00138763, 7.15025975, 0.99287844, 0.99630648, 0.48909421],1344 [ -6.15297483, -0.00230433, 0.00138679, 7.15067050, 0.99288347, 0.99630888, 0.48910661],1345 [ -6.15338268, -0.00230278, 0.00138594, 7.15107989, 0.99288850, 0.99631128, 0.48911897],1346 [ -6.15378918, -0.00230123, 0.00138509, 7.15148795, 0.99289353, 0.99631368, 0.48913128],1347 [ -6.15419435, -0.00229968, 0.00138424, 7.15189467, 0.99289855, 0.99631607, 0.48914356],1348 [ -6.15459818, -0.00229814, 0.00138340, 7.15230005, 0.99290356, 0.99631847, 0.48915581],1349 [ -6.15500069, -0.00229659, 0.00138255, 7.15270410, 0.99290856, 0.99632086, 0.48916801],1350 [ -6.15540187, -0.00229505, 0.00138171, 7.15310682, 0.99291356, 0.99632324, 0.48918017],1351 [ -6.15580173, -0.00229350, 0.00138087, 7.15350822, 0.99291855, 0.99632563, 0.48919230],1352 [ -6.15620027, -0.00229196, 0.00138002, 7.15390831, 0.99292354, 0.99632801, 0.48920439],1353 [ -6.15659750, -0.00229042, 0.00137918, 7.15430708, 0.99292852, 0.99633040, 0.48921644],1354 [ -6.15699342, -0.00228889, 0.00137834, 7.15470454, 0.99293349, 0.99633278, 0.48922846],1355 [ -6.15738804, -0.00228735, 0.00137750, 7.15510069, 0.99293846, 0.99633515, 0.48924043],1356 [ -6.15778136, -0.00228582, 0.00137666, 7.15549554, 0.99294342, 0.99633753, 0.48925237],1357 [ -6.15817338, -0.00228429, 0.00137582, 7.15588909, 0.99294838, 0.99633990, 0.48926427],1358 [ -6.15856410, -0.00228276, 0.00137498, 7.15628135, 0.99295333, 0.99634227, 0.48927613],1359 [ -6.15895354, -0.00228123, 0.00137414, 7.15667231, 0.99295827, 0.99634464, 0.48928796],1360 [ -6.15934170, -0.00227970, 0.00137330, 7.15706199, 0.99296321, 0.99634700, 0.48929975],1361 [ -6.15972857, -0.00227818, 0.00137246, 7.15745039, 0.99296814, 0.99634936, 0.48931151],1362 [ -6.16011416, -0.00227665, 0.00137162, 7.15783751, 0.99297306, 0.99635172, 0.48932322],1363 [ -6.16049848, -0.00227513, 0.00137079, 7.15822335, 0.99297798, 0.99635408, 0.48933490],1364 [ -6.16088154, -0.00227361, 0.00136995, 7.15860793, 0.99298289, 0.99635644, 0.48934654],1365 [ -6.16126332, -0.00227209, 0.00136912, 7.15899123, 0.99298780, 0.99635879, 0.48935815],1366 [ -6.16164385, -0.00227057, 0.00136828, 7.15937328, 0.99299270, 0.99636114, 0.48936972],1367 [ -6.16202312, -0.00226906, 0.00136745, 7.15975406, 0.99299759, 0.99636349, 0.48938125],1368 [ -6.16240113, -0.00226754, 0.00136662, 7.16013359, 0.99300248, 0.99636584, 0.48939275],1369 [ -6.16277790, -0.00226603, 0.00136579, 7.16051186, 0.99300736, 0.99636818, 0.48940421],1370 [ -6.16315341, -0.00226452, 0.00136495, 7.16088889, 0.99301224, 0.99637052, 0.48941563],1371 [ -6.16352769, -0.00226301, 0.00136412, 7.16126468, 0.99301711, 0.99637286, 0.48942702],1372 [ -6.16390073, -0.00226151, 0.00136329, 7.16163922, 0.99302197, 0.99637520, 0.48943837],1373 [ -6.16427253, -0.00226000, 0.00136246, 7.16201253, 0.99302683, 0.99637753, 0.48944969],1374 [ -6.16464310, -0.00225850, 0.00136164, 7.16238461, 0.99303168, 0.99637987, 0.48946098],1375 [ -6.16501245, -0.00225700, 0.00136081, 7.16275545, 0.99303653, 0.99638220, 0.48947222],1376 [ -6.16538057, -0.00225549, 0.00135998, 7.16312507, 0.99304136, 0.99638453, 0.48948343],1377 [ -6.16574747, -0.00225400, 0.00135915, 7.16349348, 0.99304620, 0.99638685, 0.48949461],1378 [ -6.16611316, -0.00225250, 0.00135833, 7.16386066, 0.99305103, 0.99638918, 0.48950575],1379 [ -6.16647763, -0.00225100, 0.00135750, 7.16422663, 0.99305585, 0.99639150, 0.48951685],1380 [ -6.16684090, -0.00224951, 0.00135668, 7.16459139, 0.99306066, 0.99639382, 0.48952792],1381 [ -6.16720296, -0.00224802, 0.00135585, 7.16495494, 0.99306547, 0.99639613, 0.48953896],1382 [ -6.16756382, -0.00224653, 0.00135503, 7.16531729, 0.99307027, 0.99639845, 0.48954996],1383 [ -6.16792348, -0.00224504, 0.00135421, 7.16567845, 0.99307507, 0.99640076, 0.48956093],1384 [ -6.16828195, -0.00224355, 0.00135338, 7.16603840, 0.99307986, 0.99640307, 0.48957186],1385 [ -6.16863923, -0.00224206, 0.00135256, 7.16639717, 0.99308465, 0.99640538, 0.48958276],1386 [ -6.16899533, -0.00224058, 0.00135174, 7.16675475, 0.99308943, 0.99640768, 0.48959363],1387 [ -6.16935024, -0.00223910, 0.00135092, 7.16711114, 0.99309420, 0.99640998, 0.48960445],1388 [ -6.16970397, -0.00223762, 0.00135010, 7.16746636, 0.99309897, 0.99641228, 0.48961525],1389 [ -6.17005653, -0.00223614, 0.00134928, 7.16782039, 0.99310373, 0.99641458, 0.48962601],1390 [ -6.17040791, -0.00223466, 0.00134846, 7.16817326, 0.99310849, 0.99641688, 0.48963673],1391 [ -6.17075813, -0.00223318, 0.00134765, 7.16852495, 0.99311324, 0.99641917, 0.48964743],1392 [ -6.17110719, -0.00223171, 0.00134683, 7.16887548, 0.99311798, 0.99642146, 0.48965809],1393 [ -6.17145508, -0.00223024, 0.00134601, 7.16922484, 0.99312272, 0.99642375, 0.48966871],1394 [ -6.17180182, -0.00222876, 0.00134520, 7.16957305, 0.99312745, 0.99642604, 0.48967931],1395 [ -6.17214740, -0.00222729, 0.00134438, 7.16992010, 0.99313218, 0.99642832, 0.48968987],1396 [ -6.17249183, -0.00222583, 0.00134357, 7.17026601, 0.99313690, 0.99643061, 0.48970039],1397 [ -6.17283512, -0.00222436, 0.00134275, 7.17061076, 0.99314162, 0.99643289, 0.48971088],1398 [ -6.17317726, -0.00222289, 0.00134194, 7.17095437, 0.99314633, 0.99643517, 0.48972134],1399 [ -6.17351827, -0.00222143, 0.00134113, 7.17129683, 0.99315103, 0.99643744, 0.48973177],1400 [ -6.17385813, -0.00221997, 0.00134032, 7.17163816, 0.99315573, 0.99643971, 0.48974217],1401 [ -6.17419687, -0.00221851, 0.00133950, 7.17197836, 0.99316042, 0.99644199, 0.48975252],1402 [ -6.17453448, -0.00221705, 0.00133869, 7.17231743, 0.99316511, 0.99644425, 0.48976285],1403 [ -6.17487096, -0.00221559, 0.00133788, 7.17265537, 0.99316979, 0.99644652, 0.48977314],1404 [ -6.17520632, -0.00221414, 0.00133708, 7.17299218, 0.99317446, 0.99644879, 0.48978341],1405 [ -6.17554056, -0.00221269, 0.00133627, 7.17332788, 0.99317913, 0.99645105, 0.48979364],1406 [ -6.17587369, -0.00221123, 0.00133546, 7.17366246, 0.99318379, 0.99645331, 0.48980384],1407 [ -6.17620571, -0.00220978, 0.00133465, 7.17399593, 0.99318845, 0.99645557, 0.48981400],1408 [ -6.17653662, -0.00220833, 0.00133385, 7.17432829, 0.99319310, 0.99645782, 0.48982414],1409 [ -6.17686642, -0.00220689, 0.00133304, 7.17465954, 0.99319775, 0.99646007, 0.48983424],1410 [ -6.17719513, -0.00220544, 0.00133223, 7.17498969, 0.99320239, 0.99646233, 0.48984431],1411 [ -6.17752273, -0.00220400, 0.00133143, 7.17531874, 0.99320702, 0.99646457, 0.48985434],1412 [ -6.17784925, -0.00220255, 0.00133063, 7.17564669, 0.99321165, 0.99646682, 0.48986435],1413 [ -6.17817467, -0.00220111, 0.00132982, 7.17597356, 0.99321628, 0.99646906, 0.48987432],1414 [ -6.17849900, -0.00219967, 0.00132902, 7.17629933, 0.99322089, 0.99647131, 0.48988427],1415 [ -6.17882225, -0.00219823, 0.00132822, 7.17662402, 0.99322551, 0.99647355, 0.48989418],1416 [ -6.17914442, -0.00219680, 0.00132742, 7.17694762, 0.99323011, 0.99647578, 0.48990406],1417 [ -6.17946552, -0.00219536, 0.00132662, 7.17727015, 0.99323471, 0.99647802, 0.48991391],1418 [ -6.17978554, -0.00219393, 0.00132582, 7.17759161, 0.99323931, 0.99648025, 0.48992373],1419 [ -6.18010448, -0.00219250, 0.00132502, 7.17791199, 0.99324390, 0.99648248, 0.48993351],1420 [ -6.18042237, -0.00219107, 0.00132422, 7.17823130, 0.99324848, 0.99648471, 0.48994327],1421 [ -6.18073919, -0.00218964, 0.00132342, 7.17854955, 0.99325306, 0.99648694, 0.48995299],1422 [ -6.18105494, -0.00218821, 0.00132262, 7.17886673, 0.99325763, 0.99648916, 0.48996269],1423 [ -6.18136964, -0.00218679, 0.00132183, 7.17918286, 0.99326220, 0.99649139, 0.48997235],1424 [ -6.18168329, -0.00218536, 0.00132103, 7.17949793, 0.99326676, 0.99649361, 0.48998198],1425 [ -6.18199589, -0.00218394, 0.00132024, 7.17981195, 0.99327132, 0.99649582, 0.48999158],1426 [ -6.18230744, -0.00218252, 0.00131944, 7.18012492, 0.99327587, 0.99649804, 0.49000115],1427 [ -6.18261795, -0.00218110, 0.00131865, 7.18043684, 0.99328041, 0.99650025, 0.49001070],1428 [ -6.18292741, -0.00217968, 0.00131785, 7.18074773, 0.99328495, 0.99650246, 0.49002020],1429 [ -6.18323584, -0.00217827, 0.00131706, 7.18105757, 0.99328949, 0.99650467, 0.49002969],1430 [ -6.18354323, -0.00217685, 0.00131627, 7.18136638, 0.99329401, 0.99650688, 0.49003913],1431 [ -6.18384960, -0.00217544, 0.00131548, 7.18167416, 0.99329854, 0.99650908, 0.49004855],1432 [ -6.18415493, -0.00217403, 0.00131469, 7.18198091, 0.99330305, 0.99651129, 0.49005794],1433 [ -6.18445924, -0.00217262, 0.00131390, 7.18228663, 0.99330757, 0.99651349, 0.49006730],1434 [ -6.18476253, -0.00217121, 0.00131311, 7.18259133, 0.99331207, 0.99651568, 0.49007664],1435 [ -6.18506481, -0.00216980, 0.00131232, 7.18289501, 0.99331657, 0.99651788, 0.49008594],1436 [ -6.18536606, -0.00216840, 0.00131153, 7.18319767, 0.99332107, 0.99652007, 0.49009521],1437 [ -6.18566631, -0.00216699, 0.00131074, 7.18349932, 0.99332556, 0.99652226, 0.49010445],1438 [ -6.18596555, -0.00216559, 0.00130996, 7.18379996, 0.99333004, 0.99652445, 0.49011367],1439 [ -6.18626378, -0.00216419, 0.00130917, 7.18409959, 0.99333452, 0.99652664, 0.49012285],1440 [ -6.18656101, -0.00216279, 0.00130839, 7.18439822, 0.99333900, 0.99652882, 0.49013200],1441 [ -6.18685724, -0.00216139, 0.00130760, 7.18469585, 0.99334346, 0.99653101, 0.49014113],1442 [ -6.18715248, -0.00216000, 0.00130682, 7.18499249, 0.99334793, 0.99653319, 0.49015022],1443 [ -6.18744673, -0.00215860, 0.00130603, 7.18528812, 0.99335238, 0.99653537, 0.49015929],1444 [ -6.18773998, -0.00215721, 0.00130525, 7.18558277, 0.99335684, 0.99653754, 0.49016833],1445 [ -6.18803225, -0.00215582, 0.00130447, 7.18587643, 0.99336128, 0.99653972, 0.49017734],1446 [ -6.18832353, -0.00215443, 0.00130369, 7.18616911, 0.99336572, 0.99654189, 0.49018632],1447 [ -6.18861384, -0.00215304, 0.00130291, 7.18646080, 0.99337016, 0.99654406, 0.49019527],1448 [ -6.18890316, -0.00215165, 0.00130213, 7.18675152, 0.99337459, 0.99654622, 0.49020420],1449 [ -6.18919152, -0.00215026, 0.00130135, 7.18704125, 0.99337901, 0.99654839, 0.49021309],1450 [ -6.18947890, -0.00214888, 0.00130057, 7.18733002, 0.99338343, 0.99655055, 0.49022196],1451 [ -6.18976532, -0.00214750, 0.00129979, 7.18761782, 0.99338785, 0.99655271, 0.49023080],1452 [ -6.19005077, -0.00214612, 0.00129901, 7.18790465, 0.99339226, 0.99655487, 0.49023961],1453 [ -6.19033526, -0.00214474, 0.00129823, 7.18819052, 0.99339666, 0.99655703, 0.49024839],1454 [ -6.19061879, -0.00214336, 0.00129746, 7.18847543, 0.99340106, 0.99655918, 0.49025714],1455 [ -6.19090136, -0.00214198, 0.00129668, 7.18875938, 0.99340545, 0.99656134, 0.49026588],1456 [ -6.19118298, -0.00214061, 0.00129591, 7.18904238, 0.99340984, 0.99656349, 0.49027457],1457 [ -6.19146366, -0.00213923, 0.00129513, 7.18932442, 0.99341422, 0.99656563, 0.49028324],1458 [ -6.19174338, -0.00213786, 0.00129436, 7.18960552, 0.99341860, 0.99656778, 0.49029189],1459 [ -6.19202217, -0.00213649, 0.00129359, 7.18988568, 0.99342297, 0.99656992, 0.49030051],1460 [ -6.19230001, -0.00213512, 0.00129281, 7.19016489, 0.99342734, 0.99657207, 0.49030909],1461 [ -6.19257691, -0.00213375, 0.00129204, 7.19044316, 0.99343170, 0.99657421, 0.49031766],1462 [ -6.19285288, -0.00213239, 0.00129127, 7.19072050, 0.99343606, 0.99657634, 0.49032619],1463 [ -6.19312792, -0.00213102, 0.00129050, 7.19099690, 0.99344041, 0.99657848, 0.49033470],1464 [ -6.19340203, -0.00212966, 0.00128973, 7.19127237, 0.99344475, 0.99658061, 0.49034317],1465 [ -6.19367521, -0.00212830, 0.00128896, 7.19154692, 0.99344909, 0.99658274, 0.49035163],1466 [ -6.19394748, -0.00212694, 0.00128819, 7.19182054, 0.99345343, 0.99658487, 0.49036006],1467 [ -6.19421882, -0.00212558, 0.00128743, 7.19209324, 0.99345776, 0.99658700, 0.49036845],1468 [ -6.19448924, -0.00212422, 0.00128666, 7.19236502, 0.99346208, 0.99658912, 0.49037683],1469 [ -6.19475875, -0.00212286, 0.00128589, 7.19263589, 0.99346640, 0.99659124, 0.49038517],1470 [ -6.19502735, -0.00212151, 0.00128513, 7.19290584, 0.99347072, 0.99659336, 0.49039349],1471 [ -6.19529504, -0.00212016, 0.00128436, 7.19317489, 0.99347503, 0.99659548, 0.49040178],1472 [ -6.19556183, -0.00211880, 0.00128360, 7.19344302, 0.99347933, 0.99659760, 0.49041005],1473 [ -6.19582771, -0.00211745, 0.00128283, 7.19371026, 0.99348363, 0.99659971, 0.49041829],1474 [ -6.19609270, -0.00211611, 0.00128207, 7.19397659, 0.99348792, 0.99660182, 0.49042650],1475 [ -6.19635678, -0.00211476, 0.00128131, 7.19424203, 0.99349221, 0.99660393, 0.49043469],1476 [ -6.19661998, -0.00211341, 0.00128054, 7.19450656, 0.99349650, 0.99660604, 0.49044285],1477 [ -6.19688228, -0.00211207, 0.00127978, 7.19477021, 0.99350077, 0.99660815, 0.49045099],1478 [ -6.19714369, -0.00211073, 0.00127902, 7.19503297, 0.99350505, 0.99661025, 0.49045909],1479 [ -6.19740422, -0.00210938, 0.00127826, 7.19529484, 0.99350932, 0.99661235, 0.49046717],1480 [ -6.19766387, -0.00210804, 0.00127750, 7.19555583, 0.99351358, 0.99661445, 0.49047523],1481 [ -6.19792264, -0.00210671, 0.00127674, 7.19581593, 0.99351784, 0.99661655, 0.49048326],1482 [ -6.19818053, -0.00210537, 0.00127599, 7.19607516, 0.99352209, 0.99661864, 0.49049127],1483 [ -6.19843754, -0.00210403, 0.00127523, 7.19633351, 0.99352634, 0.99662074, 0.49049925],1484 [ -6.19869369, -0.00210270, 0.00127447, 7.19659099, 0.99353058, 0.99662283, 0.49050720],1485 [ -6.19894896, -0.00210137, 0.00127372, 7.19684760, 0.99353482, 0.99662492, 0.49051513],1486 [ -6.19920337, -0.00210004, 0.00127296, 7.19710334, 0.99353905, 0.99662700, 0.49052303],1487 [ -6.19945692, -0.00209871, 0.00127221, 7.19735822, 0.99354328, 0.99662909, 0.49053091],1488 [ -6.19970961, -0.00209738, 0.00127145, 7.19761223, 0.99354750, 0.99663117, 0.49053876],1489 [ -6.19996144, -0.00209605, 0.00127070, 7.19786539, 0.99355172, 0.99663325, 0.49054659],1490 [ -6.20021242, -0.00209473, 0.00126995, 7.19811769, 0.99355593, 0.99663533, 0.49055439],1491 [ -6.20046254, -0.00209340, 0.00126919, 7.19836914, 0.99356014, 0.99663741, 0.49056217],1492 [ -6.20071181, -0.00209208, 0.00126844, 7.19861973, 0.99356434, 0.99663948, 0.49056992],1493 [ -6.20096024, -0.00209076, 0.00126769, 7.19886948, 0.99356854, 0.99664155, 0.49057765],1494 [ -6.20120782, -0.00208944, 0.00126694, 7.19911839, 0.99357273, 0.99664362, 0.49058536],1495 [ -6.20145457, -0.00208812, 0.00126619, 7.19936645, 0.99357692, 0.99664569, 0.49059304],1496 [ -6.20170047, -0.00208680, 0.00126544, 7.19961367, 0.99358110, 0.99664776, 0.49060069],1497 [ -6.20194554, -0.00208549, 0.00126469, 7.19986005, 0.99358528, 0.99664982, 0.49060832],1498 [ -6.20218978, -0.00208417, 0.00126395, 7.20010560, 0.99358945, 0.99665188, 0.49061593],1499 [ -6.20243318, -0.00208286, 0.00126320, 7.20035032, 0.99359362, 0.99665394, 0.49062351],1500 [ -6.20267576, -0.00208155, 0.00126245, 7.20059421, 0.99359778, 0.99665600, 0.49063106],1501 [ -6.20291751, -0.00208024, 0.00126171, 7.20083727, 0.99360194, 0.99665805, 0.49063859],1502 [ -6.20315844, -0.00207893, 0.00126096, 7.20107951, 0.99360609, 0.99666011, 0.49064611],1503 [ -6.20339855, -0.00207762, 0.00126022, 7.20132093, 0.99361024, 0.99666216, 0.49065358],1504 [ -6.20363785, -0.00207632, 0.00125947, 7.20156153, 0.99361438, 0.99666421, 0.49066104],1505 [ -6.20387633, -0.00207501, 0.00125873, 7.20180131, 0.99361852, 0.99666626, 0.49066848],1506 [ -6.20411399, -0.00207371, 0.00125799, 7.20204028, 0.99362265, 0.99666830, 0.49067589],1507 [ -6.20435085, -0.00207241, 0.00125725, 7.20227844, 0.99362678, 0.99667034, 0.49068328],1508 [ -6.20458690, -0.00207111, 0.00125650, 7.20251579, 0.99363090, 0.99667238, 0.49069064],1509 [ -6.20482215, -0.00206981, 0.00125576, 7.20275234, 0.99363502, 0.99667442, 0.49069799],1510 [ -6.20505660, -0.00206852, 0.00125502, 7.20298808, 0.99363914, 0.99667646, 0.49070530],1511 [ -6.20529024, -0.00206722, 0.00125428, 7.20322302, 0.99364325, 0.99667850, 0.49071260],1512 [ -6.20552310, -0.00206593, 0.00125355, 7.20345717, 0.99364735, 0.99668053, 0.49071987],1513 [ -6.20575515, -0.00206463, 0.00125281, 7.20369052, 0.99365145, 0.99668256, 0.49072711],1514 [ -6.20598642, -0.00206334, 0.00125207, 7.20392308, 0.99365554, 0.99668459, 0.49073434],1515 [ -6.20621690, -0.00206205, 0.00125133, 7.20415485, 0.99365963, 0.99668662, 0.49074154],1516 [ -6.20644659, -0.00206076, 0.00125060, 7.20438583, 0.99366372, 0.99668864, 0.49074872],1517 [ -6.20667550, -0.00205947, 0.00124986, 7.20461602, 0.99366780, 0.99669066, 0.49075587],1518 [ -6.20690362, -0.00205819, 0.00124913, 7.20484543, 0.99367187, 0.99669268, 0.49076300],1519 [ -6.20713097, -0.00205690, 0.00124839, 7.20507407, 0.99367594, 0.99669470, 0.49077011],1520 [ -6.20735754, -0.00205562, 0.00124766, 7.20530192, 0.99368001, 0.99669672, 0.49077720],1521 [ -6.20758334, -0.00205434, 0.00124693, 7.20552900, 0.99368407, 0.99669873, 0.49078426],1522 [ -6.20780837, -0.00205306, 0.00124619, 7.20575531, 0.99368812, 0.99670075, 0.49079130],1523 [ -6.20803263, -0.00205178, 0.00124546, 7.20598085, 0.99369217, 0.99670276, 0.49079832],1524 [ -6.20825612, -0.00205050, 0.00124473, 7.20620562, 0.99369622, 0.99670477, 0.49080531],1525 [ -6.20847885, -0.00204923, 0.00124400, 7.20642963, 0.99370026, 0.99670677, 0.49081228],1526 [ -6.20870082, -0.00204795, 0.00124327, 7.20665287, 0.99370430, 0.99670878, 0.49081924],1527 [ -6.20892203, -0.00204668, 0.00124254, 7.20687536, 0.99370833, 0.99671078, 0.49082617],1528 [ -6.20914249, -0.00204540, 0.00124181, 7.20709708, 0.99371236, 0.99671278, 0.49083307],1529 [ -6.20936219, -0.00204413, 0.00124109, 7.20731805, 0.99371638, 0.99671478, 0.49083996],1530 [ -6.20958114, -0.00204286, 0.00124036, 7.20753827, 0.99372040, 0.99671678, 0.49084681],1531 [ -6.20979934, -0.00204160, 0.00123963, 7.20775774, 0.99372441, 0.99671877, 0.49085365],1532 [ -6.21001679, -0.00204033, 0.00123891, 7.20797646, 0.99372842, 0.99672076, 0.49086047],1533 [ -6.21023350, -0.00203906, 0.00123818, 7.20819444, 0.99373242, 0.99672275, 0.49086727],1534 [ -6.21044947, -0.00203780, 0.00123746, 7.20841167, 0.99373642, 0.99672474, 0.49087404],1535 [ -6.21066470, -0.00203654, 0.00123673, 7.20862816, 0.99374042, 0.99672673, 0.49088079],1536 [ -6.21087920, -0.00203528, 0.00123601, 7.20884392, 0.99374441, 0.99672871, 0.49088752],1537 [ -6.21109295, -0.00203402, 0.00123529, 7.20905894, 0.99374839, 0.99673070, 0.49089423],1538 [ -6.21130598, -0.00203276, 0.00123456, 7.20927322, 0.99375237, 0.99673268, 0.49090092],1539 [ -6.21151828, -0.00203150, 0.00123384, 7.20948678, 0.99375635, 0.99673466, 0.49090759],1540 [ -6.21172985, -0.00203024, 0.00123312, 7.20969960, 0.99376032, 0.99673663, 0.49091423],1541 [ -6.21194069, -0.00202899, 0.00123240, 7.20991170, 0.99376428, 0.99673861, 0.49092085],1542 [ -6.21215082, -0.00202774, 0.00123168, 7.21012308, 0.99376825, 0.99674058, 0.49092745],1543 [ -6.21236022, -0.00202648, 0.00123096, 7.21033373, 0.99377220, 0.99674255, 0.49093403],1544 [ -6.21256890, -0.00202523, 0.00123025, 7.21054367, 0.99377616, 0.99674452, 0.49094059],1545 [ -6.21277687, -0.00202398, 0.00122953, 7.21075289, 0.99378010, 0.99674649, 0.49094712],1546 [ -6.21298413, -0.00202274, 0.00122881, 7.21096139, 0.99378405, 0.99674845, 0.49095364],1547 [ -6.21319067, -0.00202149, 0.00122809, 7.21116918, 0.99378798, 0.99675042, 0.49096013],1548 [ -6.21339651, -0.00202025, 0.00122738, 7.21137627, 0.99379192, 0.99675238, 0.49096661],1549 [ -6.21360164, -0.00201900, 0.00122666, 7.21158264, 0.99379585, 0.99675434, 0.49097306],1550 [ -6.21380607, -0.00201776, 0.00122595, 7.21178831, 0.99379977, 0.99675629, 0.49097950],1551 [ -6.21400979, -0.00201652, 0.00122523, 7.21199328, 0.99380369, 0.99675825, 0.49098591],1552 [ -6.21421282, -0.00201528, 0.00122452, 7.21219754, 0.99380761, 0.99676020, 0.49099230],1553 [ -6.21441515, -0.00201404, 0.00122381, 7.21240111, 0.99381152, 0.99676215, 0.49099867],1554 [ -6.21461678, -0.00201280, 0.00122310, 7.21260398, 0.99381543, 0.99676410, 0.49100502],1555 [ -6.21481773, -0.00201157, 0.00122239, 7.21280616, 0.99381933, 0.99676605, 0.49101135],1556 [ -6.21501798, -0.00201033, 0.00122167, 7.21300765, 0.99382323, 0.99676799, 0.49101767],1557 [ -6.21521754, -0.00200910, 0.00122096, 7.21320844, 0.99382712, 0.99676994, 0.49102395],1558 [ -6.21541642, -0.00200787, 0.00122026, 7.21340855, 0.99383101, 0.99677188, 0.49103022],1559 [ -6.21561461, -0.00200664, 0.00121955, 7.21360798, 0.99383489, 0.99677382, 0.49103647],1560 [ -6.21581213, -0.00200541, 0.00121884, 7.21380672, 0.99383877, 0.99677575, 0.49104269],1561 [ -6.21600896, -0.00200418, 0.00121813, 7.21400478, 0.99384265, 0.99677769, 0.49104891],1562 [ -6.21620512, -0.00200295, 0.00121742, 7.21420217, 0.99384652, 0.99677962, 0.49105509],1563 [ -6.21640060, -0.00200173, 0.00121672, 7.21439887, 0.99385038, 0.99678156, 0.49106126],1564 [ -6.21659541, -0.00200050, 0.00121601, 7.21459491, 0.99385424, 0.99678349, 0.49106741],1565 [ -6.21678955, -0.00199928, 0.00121531, 7.21479027, 0.99385810, 0.99678541, 0.49107353],1566 [ -6.21698302, -0.00199806, 0.00121460, 7.21498497, 0.99386195, 0.99678734, 0.49107964],1567 [ -6.21717583, -0.00199684, 0.00121390, 7.21517899, 0.99386580, 0.99678926, 0.49108574],1568 [ -6.21736797, -0.00199562, 0.00121320, 7.21537235, 0.99386965, 0.99679119, 0.49109180],1569 [ -6.21755945, -0.00199440, 0.00121249, 7.21556505, 0.99387349, 0.99679311, 0.49109786],1570 [ -6.21775028, -0.00199319, 0.00121179, 7.21575709, 0.99387732, 0.99679502, 0.49110388],1571 [ -6.21794044, -0.00199197, 0.00121109, 7.21594847, 0.99388115, 0.99679694, 0.49110989],1572 [ -6.21812995, -0.00199076, 0.00121039, 7.21613919, 0.99388498, 0.99679885, 0.49111588],1573 [ -6.21831881, -0.00198955, 0.00120969, 7.21632926, 0.99388880, 0.99680077, 0.49112186],1574 [ -6.21850702, -0.00198833, 0.00120899, 7.21651868, 0.99389261, 0.99680268, 0.49112781],1575 [ -6.21869457, -0.00198712, 0.00120829, 7.21670745, 0.99389643, 0.99680459, 0.49113374],1576 [ -6.21888149, -0.00198592, 0.00120759, 7.21689557, 0.99390024, 0.99680649, 0.49113965],1577 [ -6.21906775, -0.00198471, 0.00120689, 7.21708304, 0.99390404, 0.99680840, 0.49114555],1578 [ -6.21925338, -0.00198350, 0.00120620, 7.21726987, 0.99390784, 0.99681030, 0.49115142],1579 [ -6.21943836, -0.00198230, 0.00120550, 7.21745606, 0.99391163, 0.99681220, 0.49115728],1580 [ -6.21962271, -0.00198110, 0.00120481, 7.21764161, 0.99391542, 0.99681410, 0.49116312],1581 [ -6.21980642, -0.00197989, 0.00120411, 7.21782653, 0.99391921, 0.99681600, 0.49116895],1582 [ -6.21998950, -0.00197869, 0.00120342, 7.21801081, 0.99392299, 0.99681789, 0.49117474],1583 [ -6.22017194, -0.00197749, 0.00120272, 7.21819445, 0.99392677, 0.99681979, 0.49118052],1584 [ -6.22035376, -0.00197630, 0.00120203, 7.21837746, 0.99393054, 0.99682168, 0.49118629],1585 [ -6.22053495, -0.00197510, 0.00120134, 7.21855985, 0.99393431, 0.99682357, 0.49119203],1586 [ -6.22071551, -0.00197390, 0.00120064, 7.21874161, 0.99393808, 0.99682545, 0.49119776],1587 [ -6.22089545, -0.00197271, 0.00119995, 7.21892274, 0.99394184, 0.99682734, 0.49120347],1588 [ -6.22107477, -0.00197152, 0.00119926, 7.21910325, 0.99394559, 0.99682922, 0.49120916],1589 [ -6.22125347, -0.00197032, 0.00119857, 7.21928314, 0.99394935, 0.99683111, 0.49121482],1590 [ -6.22143155, -0.00196913, 0.00119788, 7.21946242, 0.99395309, 0.99683299, 0.49122047],1591 [ -6.22160902, -0.00196794, 0.00119719, 7.21964107, 0.99395684, 0.99683486, 0.49122611],1592 [ -6.22178587, -0.00196676, 0.00119650, 7.21981911, 0.99396058, 0.99683674, 0.49123173],1593 [ -6.22196211, -0.00196557, 0.00119582, 7.21999654, 0.99396431, 0.99683861, 0.49123732],1594 [ -6.22213774, -0.00196438, 0.00119513, 7.22017336, 0.99396804, 0.99684049, 0.49124290],1595 [ -6.22231277, -0.00196320, 0.00119444, 7.22034957, 0.99397177, 0.99684236, 0.49124846],1596 [ -6.22248719, -0.00196202, 0.00119376, 7.22052517, 0.99397549, 0.99684423, 0.49125400],1597 [ -6.22266101, -0.00196083, 0.00119307, 7.22070017, 0.99397920, 0.99684609, 0.49125953],1598 [ -6.22283422, -0.00195965, 0.00119239, 7.22087457, 0.99398292, 0.99684796, 0.49126504],1599 [ -6.22300684, -0.00195848, 0.00119170, 7.22104836, 0.99398663, 0.99684982, 0.49127053],1600 [ -6.22317886, -0.00195730, 0.00119102, 7.22122156, 0.99399033, 0.99685168, 0.49127600],1601 [ -6.22335028, -0.00195612, 0.00119034, 7.22139416, 0.99399403, 0.99685354, 0.49128145],1602 [ -6.22352111, -0.00195495, 0.00118965, 7.22156617, 0.99399773, 0.99685540, 0.49128689],1603 [ -6.22369135, -0.00195377, 0.00118897, 7.22173758, 0.99400142, 0.99685726, 0.49129231],1604 [ -6.22386100, -0.00195260, 0.00118829, 7.22190841, 0.99400511, 0.99685911, 0.49129771],1605 [ -6.22403007, -0.00195143, 0.00118761, 7.22207864, 0.99400879, 0.99686096, 0.49130310],1606 [ -6.22419854, -0.00195026, 0.00118693, 7.22224829, 0.99401247, 0.99686281, 0.49130846],1607 [ -6.22436644, -0.00194909, 0.00118625, 7.22241735, 0.99401615, 0.99686466, 0.49131381],1608 [ -6.22453375, -0.00194792, 0.00118557, 7.22258583, 0.99401982, 0.99686651, 0.49131914],1609 [ -6.22470048, -0.00194675, 0.00118490, 7.22275373, 0.99402348, 0.99686835, 0.49132446],1610 [ -6.22486664, -0.00194559, 0.00118422, 7.22292105, 0.99402715, 0.99687019, 0.49132975],1611 [ -6.22503222, -0.00194442, 0.00118354, 7.22308780, 0.99403081, 0.99687204, 0.49133503],1612 [ -6.22519722, -0.00194326, 0.00118287, 7.22325396, 0.99403446, 0.99687387, 0.49134030],1613 [ -6.22536166, -0.00194210, 0.00118219, 7.22341956, 0.99403811, 0.99687571, 0.49134554],1614 [ -6.22552552, -0.00194094, 0.00118152, 7.22358458, 0.99404176, 0.99687755, 0.49135077],1615 [ -6.22568881, -0.00193978, 0.00118084, 7.22374904, 0.99404540, 0.99687938, 0.49135598],1616 [ -6.22585154, -0.00193862, 0.00118017, 7.22391292, 0.99404904, 0.99688121, 0.49136117],1617 [ -6.22601370, -0.00193746, 0.00117950, 7.22407624, 0.99405267, 0.99688304, 0.49136635],1618 [ -6.22617531, -0.00193631, 0.00117882, 7.22423900, 0.99405630, 0.99688487, 0.49137152],1619 [ -6.22633635, -0.00193515, 0.00117815, 7.22440119, 0.99405992, 0.99688670, 0.49137666],1620 [ -6.22649683, -0.00193400, 0.00117748, 7.22456283, 0.99406354, 0.99688852, 0.49138179],1621 [ -6.22665675, -0.00193285, 0.00117681, 7.22472390, 0.99406716, 0.99689034, 0.49138690],1622 [ -6.22681612, -0.00193170, 0.00117614, 7.22488442, 0.99407077, 0.99689216, 0.49139199],1623 [ -6.22697494, -0.00193055, 0.00117547, 7.22504439, 0.99407438, 0.99689398, 0.49139707],1624 [ -6.22713320, -0.00192940, 0.00117480, 7.22520380, 0.99407799, 0.99689580, 0.49140214],1625 [ -6.22729092, -0.00192825, 0.00117413, 7.22536266, 0.99408159, 0.99689762, 0.49140718],1626 [ -6.22744808, -0.00192711, 0.00117346, 7.22552098, 0.99408519, 0.99689943, 0.49141221],1627 [ -6.22760470, -0.00192596, 0.00117280, 7.22567874, 0.99408878, 0.99690124, 0.49141723],1628 [ -6.22776078, -0.00192482, 0.00117213, 7.22583596, 0.99409237, 0.99690305, 0.49142222],1629 [ -6.22791631, -0.00192368, 0.00117147, 7.22599264, 0.99409595, 0.99690486, 0.49142719],1630 [ -6.22807131, -0.00192253, 0.00117080, 7.22614877, 0.99409953, 0.99690667, 0.49143216],1631 [ -6.22822576, -0.00192139, 0.00117014, 7.22630437, 0.99410311, 0.99690847, 0.49143711],1632 [ -6.22837968, -0.00192026, 0.00116947, 7.22645942, 0.99410668, 0.99691027, 0.49144204],1633 [ -6.22853306, -0.00191912, 0.00116881, 7.22661394, 0.99411025, 0.99691207, 0.49144696],1634 [ -6.22868591, -0.00191798, 0.00116815, 7.22676793, 0.99411381, 0.99691387, 0.49145186],1635 [ -6.22883823, -0.00191685, 0.00116748, 7.22692138, 0.99411737, 0.99691567, 0.49145674],1636 [ -6.22899002, -0.00191571, 0.00116682, 7.22707430, 0.99412093, 0.99691747, 0.49146161],1637 [ -6.22914128, -0.00191458, 0.00116616, 7.22722670, 0.99412448, 0.99691926, 0.49146647],1638 [ -6.22929201, -0.00191345, 0.00116550, 7.22737856, 0.99412803, 0.99692105, 0.49147130],1639 [ -6.22944222, -0.00191232, 0.00116484, 7.22752990, 0.99413157, 0.99692284, 0.49147613],1640 [ -6.22959190, -0.00191119, 0.00116418, 7.22768071, 0.99413511, 0.99692463, 0.49148093],1641 [ -6.22974107, -0.00191006, 0.00116352, 7.22783101, 0.99413865, 0.99692642, 0.49148571],1642 [ -6.22988971, -0.00190893, 0.00116286, 7.22798078, 0.99414218, 0.99692820, 0.49149049],1643 [ -6.23003784, -0.00190781, 0.00116221, 7.22813003, 0.99414571, 0.99692998, 0.49149525],1644 [ -6.23018545, -0.00190669, 0.00116155, 7.22827877, 0.99414924, 0.99693176, 0.49149999],1645 [ -6.23033255, -0.00190556, 0.00116089, 7.22842699, 0.99415276, 0.99693354, 0.49150472],1646 [ -6.23047913, -0.00190444, 0.00116024, 7.22857469, 0.99415627, 0.99693532, 0.49150944],1647 [ -6.23062521, -0.00190332, 0.00115958, 7.22872189, 0.99415978, 0.99693710, 0.49151413],1648 [ -6.23077077, -0.00190220, 0.00115893, 7.22886857, 0.99416329, 0.99693887, 0.49151881],1649 [ -6.23091583, -0.00190108, 0.00115828, 7.22901475, 0.99416680, 0.99694064, 0.49152348],1650 [ -6.23106038, -0.00189996, 0.00115762, 7.22916042, 0.99417030, 0.99694241, 0.49152813],1651 [ -6.23120443, -0.00189885, 0.00115697, 7.22930558, 0.99417379, 0.99694418, 0.49153277],1652 [ -6.23134798, -0.00189773, 0.00115632, 7.22945024, 0.99417729, 0.99694595, 0.49153739],1653 [ -6.23149102, -0.00189662, 0.00115567, 7.22959440, 0.99418078, 0.99694772, 0.49154200],1654 [ -6.23163357, -0.00189551, 0.00115501, 7.22973806, 0.99418426, 0.99694948, 0.49154659],1655 [ -6.23177562, -0.00189439, 0.00115436, 7.22988122, 0.99418774, 0.99695124, 0.49155116],1656 [ -6.23191717, -0.00189328, 0.00115371, 7.23002389, 0.99419122, 0.99695300, 0.49155572],1657 [ -6.23205823, -0.00189218, 0.00115307, 7.23016606, 0.99419469, 0.99695476, 0.49156028],1658 [ -6.23219880, -0.00189107, 0.00115242, 7.23030773, 0.99419816, 0.99695652, 0.49156481],1659 [ -6.23233888, -0.00188996, 0.00115177, 7.23044891, 0.99420163, 0.99695827, 0.49156932],1660 [ -6.23247846, -0.00188886, 0.00115112, 7.23058961, 0.99420509, 0.99696002, 0.49157383],1661 [ -6.23261756, -0.00188775, 0.00115047, 7.23072981, 0.99420855, 0.99696177, 0.49157832],1662 [ -6.23275618, -0.00188665, 0.00114983, 7.23086953, 0.99421200, 0.99696352, 0.49158279],1663 [ -6.23289431, -0.00188555, 0.00114918, 7.23100876, 0.99421545, 0.99696527, 0.49158725],1664 [ -6.23303196, -0.00188444, 0.00114854, 7.23114751, 0.99421890, 0.99696702, 0.49159170],1665 [ -6.23316912, -0.00188334, 0.00114789, 7.23128578, 0.99422234, 0.99696876, 0.49159612],1666 [ -6.23330581, -0.00188225, 0.00114725, 7.23142357, 0.99422578, 0.99697050, 0.49160053],1667 [ -6.23344202, -0.00188115, 0.00114661, 7.23156087, 0.99422921, 0.99697225, 0.49160494],1668 [ -6.23357776, -0.00188005, 0.00114596, 7.23169771, 0.99423264, 0.99697398, 0.49160932],1669 [ -6.23371302, -0.00187896, 0.00114532, 7.23183406, 0.99423607, 0.99697572, 0.49161370],1670 [ -6.23384781, -0.00187786, 0.00114468, 7.23196994, 0.99423949, 0.99697746, 0.49161806],1671 [ -6.23398212, -0.00187677, 0.00114404, 7.23210535, 0.99424291, 0.99697919, 0.49162241],1672 [ -6.23411597, -0.00187568, 0.00114340, 7.23224029, 0.99424633, 0.99698092, 0.49162674],1673 [ -6.23424935, -0.00187459, 0.00114276, 7.23237476, 0.99424974, 0.99698265, 0.49163105],1674 [ -6.23438226, -0.00187350, 0.00114212, 7.23250876, 0.99425315, 0.99698438, 0.49163535],1675 [ -6.23451471, -0.00187241, 0.00114148, 7.23264230, 0.99425655, 0.99698611, 0.49163964],1676 [ -6.23464669, -0.00187132, 0.00114084, 7.23277537, 0.99425995, 0.99698783, 0.49164392],1677 [ -6.23477821, -0.00187024, 0.00114021, 7.23290797, 0.99426335, 0.99698956, 0.49164818],1678 [ -6.23490927, -0.00186915, 0.00113957, 7.23304012, 0.99426674, 0.99699128, 0.49165242],1679 [ -6.23503988, -0.00186807, 0.00113893, 7.23317181, 0.99427013, 0.99699300, 0.49165666],1680 [ -6.23517002, -0.00186698, 0.00113830, 7.23330304, 0.99427352, 0.99699472, 0.49166087],1681 [ -6.23529971, -0.00186590, 0.00113766, 7.23343381, 0.99427690, 0.99699644, 0.49166508],1682 [ -6.23542895, -0.00186482, 0.00113703, 7.23356413, 0.99428028, 0.99699815, 0.49166927],1683 [ -6.23555773, -0.00186374, 0.00113639, 7.23369399, 0.99428365, 0.99699986, 0.49167345],1684 [ -6.23568606, -0.00186267, 0.00113576, 7.23382340, 0.99428702, 0.99700157, 0.49167762],1685 [ -6.23581395, -0.00186159, 0.00113513, 7.23395236, 0.99429039, 0.99700328, 0.49168176],1686 [ -6.23594138, -0.00186051, 0.00113449, 7.23408087, 0.99429375, 0.99700499, 0.49168591],1687 [ -6.23606837, -0.00185944, 0.00113386, 7.23420893, 0.99429711, 0.99700670, 0.49169003],1688 [ -6.23619491, -0.00185836, 0.00113323, 7.23433655, 0.99430047, 0.99700840, 0.49169415],1689 [ -6.23632102, -0.00185729, 0.00113260, 7.23446372, 0.99430382, 0.99701011, 0.49169823],1690 [ -6.23644667, -0.00185622, 0.00113197, 7.23459045, 0.99430717, 0.99701181, 0.49170232],1691 [ -6.23657189, -0.00185515, 0.00113134, 7.23471674, 0.99431051, 0.99701351, 0.49170640],1692 [ -6.23669667, -0.00185408, 0.00113071, 7.23484259, 0.99431385, 0.99701521, 0.49171044],1693 [ -6.23682101, -0.00185301, 0.00113009, 7.23496800, 0.99431719, 0.99701690, 0.49171449],1694 [ -6.23694492, -0.00185195, 0.00112946, 7.23509297, 0.99432052, 0.99701860, 0.49171853],1695 [ -6.23706839, -0.00185088, 0.00112883, 7.23521751, 0.99432385, 0.99702029, 0.49172254],1696 [ -6.23719143, -0.00184981, 0.00112820, 7.23534161, 0.99432718, 0.99702198, 0.49172655],1697 [ -6.23731403, -0.00184875, 0.00112758, 7.23546528, 0.99433050, 0.99702367, 0.49173054],1698 [ -6.23743621, -0.00184769, 0.00112695, 7.23558852, 0.99433382, 0.99702536, 0.49173452],1699 [ -6.23755795, -0.00184663, 0.00112633, 7.23571133, 0.99433713, 0.99702705, 0.49173848],1700 [ -6.23767927, -0.00184557, 0.00112570, 7.23583371, 0.99434044, 0.99702873, 0.49174243],1701 [ -6.23780017, -0.00184451, 0.00112508, 7.23595566, 0.99434375, 0.99703041, 0.49174639],1702 [ -6.23792064, -0.00184345, 0.00112446, 7.23607719, 0.99434706, 0.99703209, 0.49175031],1703 [ -6.23804068, -0.00184239, 0.00112383, 7.23619829, 0.99435036, 0.99703377, 0.49175422],1704 [ -6.23816031, -0.00184134, 0.00112321, 7.23631897, 0.99435365, 0.99703545, 0.49175813],1705 [ -6.23827952, -0.00184028, 0.00112259, 7.23643923, 0.99435695, 0.99703713, 0.49176201],1706 [ -6.23839830, -0.00183923, 0.00112197, 7.23655907, 0.99436024, 0.99703880, 0.49176589],1707 [ -6.23851667, -0.00183817, 0.00112135, 7.23667850, 0.99436352, 0.99704048, 0.49176975],1708 [ -6.23863462, -0.00183712, 0.00112073, 7.23679750, 0.99436680, 0.99704215, 0.49177361],1709 [ -6.23875216, -0.00183607, 0.00112011, 7.23691609, 0.99437008, 0.99704382, 0.49177744],1710 [ -6.23886929, -0.00183502, 0.00111949, 7.23703427, 0.99437336, 0.99704548, 0.49178127],1711 [ -6.23898600, -0.00183398, 0.00111887, 7.23715203, 0.99437663, 0.99704715, 0.49178508],1712 [ -6.23910231, -0.00183293, 0.00111826, 7.23726938, 0.99437990, 0.99704881, 0.49178889],1713 [ -6.23921820, -0.00183188, 0.00111764, 7.23738632, 0.99438316, 0.99705048, 0.49179268],1714 [ -6.23933369, -0.00183084, 0.00111702, 7.23750286, 0.99438642, 0.99705214, 0.49179645],1715 [ -6.23944877, -0.00182979, 0.00111641, 7.23761898, 0.99438968, 0.99705380, 0.49180022],1716 [ -6.23956345, -0.00182875, 0.00111579, 7.23773470, 0.99439293, 0.99705546, 0.49180397],1717 [ -6.23967773, -0.00182771, 0.00111518, 7.23785002, 0.99439618, 0.99705711, 0.49180771],1718 [ -6.23979160, -0.00182667, 0.00111456, 7.23796493, 0.99439943, 0.99705877, 0.49181144],1719 [ -6.23990507, -0.00182563, 0.00111395, 7.23807944, 0.99440267, 0.99706042, 0.49181516],1720 [ -6.24001814, -0.00182459, 0.00111334, 7.23819355, 0.99440591, 0.99706207, 0.49181886],1721 [ -6.24013082, -0.00182355, 0.00111273, 7.23830726, 0.99440915, 0.99706372, 0.49182255],1722 [ -6.24024309, -0.00182251, 0.00111211, 7.23842058, 0.99441238, 0.99706537, 0.49182623],1723 [ -6.24035498, -0.00182148, 0.00111150, 7.23853350, 0.99441561, 0.99706702, 0.49182990],1724 [ -6.24046647, -0.00182045, 0.00111089, 7.23864602, 0.99441884, 0.99706866, 0.49183355],1725 [ -6.24057756, -0.00181941, 0.00111028, 7.23875815, 0.99442206, 0.99707031, 0.49183719],1726 [ -6.24068827, -0.00181838, 0.00110967, 7.23886989, 0.99442528, 0.99707195, 0.49184083],1727 [ -6.24079858, -0.00181735, 0.00110906, 7.23898123, 0.99442849, 0.99707359, 0.49184446],1728 [ -6.24090851, -0.00181632, 0.00110846, 7.23909219, 0.99443170, 0.99707523, 0.49184806],1729 [ -6.24101805, -0.00181529, 0.00110785, 7.23920276, 0.99443491, 0.99707686, 0.49185165],1730 [ -6.24112720, -0.00181426, 0.00110724, 7.23931294, 0.99443812, 0.99707850, 0.49185524],1731 [ -6.24123597, -0.00181324, 0.00110663, 7.23942274, 0.99444132, 0.99708013, 0.49185881],1732 [ -6.24134436, -0.00181221, 0.00110603, 7.23953215, 0.99444451, 0.99708176, 0.49186237],1733 [ -6.24145237, -0.00181118, 0.00110542, 7.23964118, 0.99444771, 0.99708339, 0.49186593],1734 [ -6.24155999, -0.00181016, 0.00110482, 7.23974983, 0.99445090, 0.99708502, 0.49186947],1735 [ -6.24166723, -0.00180914, 0.00110421, 7.23985810, 0.99445408, 0.99708665, 0.49187299],1736 [ -6.24177410, -0.00180812, 0.00110361, 7.23996598, 0.99445727, 0.99708828, 0.49187651],1737 [ -6.24188059, -0.00180710, 0.00110300, 7.24007349, 0.99446045, 0.99708990, 0.49188001],1738 [ -6.24198671, -0.00180608, 0.00110240, 7.24018063, 0.99446363, 0.99709152, 0.49188351],1739 [ -6.24209245, -0.00180506, 0.00110180, 7.24028739, 0.99446680, 0.99709314, 0.49188699],1740 [ -6.24219781, -0.00180404, 0.00110120, 7.24039377, 0.99446997, 0.99709476, 0.49189046],1741 [ -6.24230281, -0.00180302, 0.00110060, 7.24049978, 0.99447313, 0.99709638, 0.49189392],1742 [ -6.24240743, -0.00180201, 0.00110000, 7.24060543, 0.99447630, 0.99709800, 0.49189737],1743 [ -6.24251169, -0.00180100, 0.00109940, 7.24071070, 0.99447946, 0.99709961, 0.49190081],1744 [ -6.24261558, -0.00179998, 0.00109880, 7.24081560, 0.99448261, 0.99710122, 0.49190424],1745 [ -6.24271910, -0.00179897, 0.00109820, 7.24092013, 0.99448577, 0.99710283, 0.49190765],1746 [ -6.24282226, -0.00179796, 0.00109760, 7.24102430, 0.99448891, 0.99710444, 0.49191105],1747 [ -6.24292505, -0.00179695, 0.00109700, 7.24112810, 0.99449206, 0.99710605, 0.49191444],1748 [ -6.24302748, -0.00179594, 0.00109640, 7.24123154, 0.99449520, 0.99710766, 0.49191782],1749 [ -6.24312955, -0.00179493, 0.00109581, 7.24133462, 0.99449834, 0.99710926, 0.49192119],1750 [ -6.24323126, -0.00179392, 0.00109521, 7.24143733, 0.99450148, 0.99711087, 0.49192455],1751 [ -6.24333261, -0.00179292, 0.00109461, 7.24153969, 0.99450461, 0.99711247, 0.49192789],1752 [ -6.24343360, -0.00179191, 0.00109402, 7.24164168, 0.99450774, 0.99711407, 0.49193123],1753 [ -6.24353423, -0.00179091, 0.00109342, 7.24174332, 0.99451086, 0.99711567, 0.49193456],1754 [ -6.24363451, -0.00178991, 0.00109283, 7.24184460, 0.99451399, 0.99711726, 0.49193787],1755 [ -6.24373444, -0.00178891, 0.00109224, 7.24194553, 0.99451711, 0.99711886, 0.49194119],1756 [ -6.24383401, -0.00178790, 0.00109164, 7.24204610, 0.99452022, 0.99712045, 0.49194448],1757 [ -6.24393323, -0.00178690, 0.00109105, 7.24214632, 0.99452333, 0.99712204, 0.49194776],1758 [ -6.24403210, -0.00178591, 0.00109046, 7.24224619, 0.99452644, 0.99712364, 0.49195103],1759 [ -6.24413062, -0.00178491, 0.00108987, 7.24234571, 0.99452955, 0.99712522, 0.49195429],1760 [ -6.24422879, -0.00178391, 0.00108928, 7.24244488, 0.99453265, 0.99712681, 0.49195755],1761 [ -6.24432661, -0.00178292, 0.00108869, 7.24254370, 0.99453575, 0.99712840, 0.49196079],1762 [ -6.24442409, -0.00178192, 0.00108810, 7.24264217, 0.99453884, 0.99712998, 0.49196402],1763 [ -6.24452123, -0.00178093, 0.00108751, 7.24274030, 0.99454194, 0.99713157, 0.49196723],1764 [ -6.24461802, -0.00177993, 0.00108692, 7.24283808, 0.99454502, 0.99713315, 0.49197045],1765 [ -6.24471446, -0.00177894, 0.00108633, 7.24293552, 0.99454811, 0.99713473, 0.49197365],1766 [ -6.24481057, -0.00177795, 0.00108574, 7.24303262, 0.99455119, 0.99713630, 0.49197684],1767 [ -6.24490634, -0.00177696, 0.00108516, 7.24312938, 0.99455427, 0.99713788, 0.49198002],1768 [ -6.24500177, -0.00177597, 0.00108457, 7.24322579, 0.99455735, 0.99713946, 0.49198318],1769 [ -6.24509686, -0.00177499, 0.00108398, 7.24332187, 0.99456042, 0.99714103, 0.49198634],1770 [ -6.24519161, -0.00177400, 0.00108340, 7.24341761, 0.99456349, 0.99714260, 0.49198949],1771 [ -6.24528603, -0.00177301, 0.00108281, 7.24351302, 0.99456655, 0.99714417, 0.49199263],1772 [ -6.24538012, -0.00177203, 0.00108223, 7.24360809, 0.99456961, 0.99714574, 0.49199575],1773 [ -6.24547387, -0.00177105, 0.00108164, 7.24370283, 0.99457267, 0.99714731, 0.49199887],1774 [ -6.24556729, -0.00177006, 0.00108106, 7.24379723, 0.99457573, 0.99714887, 0.49200198],1775 [ -6.24566038, -0.00176908, 0.00108048, 7.24389130, 0.99457878, 0.99715044, 0.49200507],1776 [ -6.24575314, -0.00176810, 0.00107990, 7.24398504, 0.99458183, 0.99715200, 0.49200817],1777 [ -6.24584557, -0.00176712, 0.00107931, 7.24407845, 0.99458488, 0.99715356, 0.49201123],1778 [ -6.24593768, -0.00176614, 0.00107873, 7.24417153, 0.99458792, 0.99715512, 0.49201431],1779 [ -6.24602946, -0.00176517, 0.00107815, 7.24426429, 0.99459096, 0.99715668, 0.49201737],1780 [ -6.24612091, -0.00176419, 0.00107757, 7.24435672, 0.99459400, 0.99715824, 0.49202041],1781 [ -6.24621204, -0.00176321, 0.00107699, 7.24444883, 0.99459703, 0.99715979, 0.49202344],1782 [ -6.24630285, -0.00176224, 0.00107641, 7.24454061, 0.99460006, 0.99716135, 0.49202647],1783 [ -6.24639333, -0.00176127, 0.00107584, 7.24463206, 0.99460309, 0.99716290, 0.49202949],1784 [ -6.24648350, -0.00176029, 0.00107526, 7.24472320, 0.99460611, 0.99716445, 0.49203250],1785 [ -6.24657334, -0.00175932, 0.00107468, 7.24481402, 0.99460913, 0.99716600, 0.49203550],1786 [ -6.24666287, -0.00175835, 0.00107410, 7.24490451, 0.99461215, 0.99716755, 0.49203848],1787 [ -6.24675208, -0.00175738, 0.00107353, 7.24499469, 0.99461516, 0.99716909, 0.49204146],1788 [ -6.24684097, -0.00175641, 0.00107295, 7.24508455, 0.99461817, 0.99717064, 0.49204443],1789 [ -6.24692955, -0.00175545, 0.00107238, 7.24517410, 0.99462118, 0.99717218, 0.49204739],1790 [ -6.24701781, -0.00175448, 0.00107180, 7.24526333, 0.99462418, 0.99717372, 0.49205033],1791 [ -6.24710576, -0.00175351, 0.00107123, 7.24535225, 0.99462718, 0.99717526, 0.49205328],1792 [ -6.24719340, -0.00175255, 0.00107065, 7.24544085, 0.99463018, 0.99717680, 0.49205621],1793 [ -6.24728073, -0.00175158, 0.00107008, 7.24552914, 0.99463317, 0.99717834, 0.49205913],1794 [ -6.24736775, -0.00175062, 0.00106951, 7.24561712, 0.99463617, 0.99717987, 0.49206204],1795 [ -6.24745446, -0.00174966, 0.00106893, 7.24570479, 0.99463915, 0.99718141, 0.49206494],1796 [ -6.24754086, -0.00174870, 0.00106836, 7.24579216, 0.99464214, 0.99718294, 0.49206783],1797 [ -6.24762695, -0.00174774, 0.00106779, 7.24587921, 0.99464512, 0.99718447, 0.49207072],1798 [ -6.24771274, -0.00174678, 0.00106722, 7.24596596, 0.99464810, 0.99718600, 0.49207359],1799 [ -6.24779823, -0.00174582, 0.00106665, 7.24605241, 0.99465108, 0.99718753, 0.49207645],1800 [ -6.24788341, -0.00174487, 0.00106608, 7.24613854, 0.99465405, 0.99718905, 0.49207931],1801 [ -6.24796829, -0.00174391, 0.00106551, 7.24622438, 0.99465702, 0.99719058, 0.49208216],1802 [ -6.24805287, -0.00174296, 0.00106494, 7.24630991, 0.99465998, 0.99719210, 0.49208499],1803 [ -6.24813715, -0.00174200, 0.00106438, 7.24639515, 0.99466295, 0.99719362, 0.49208783],1804 [ -6.24822113, -0.00174105, 0.00106381, 7.24648008, 0.99466591, 0.99719514, 0.49209064],1805 [ -6.24830481, -0.00174010, 0.00106324, 7.24656471, 0.99466886, 0.99719666, 0.49209345],1806 [ -6.24838819, -0.00173915, 0.00106267, 7.24664905, 0.99467182, 0.99719818, 0.49209625],1807 [ -6.24847128, -0.00173819, 0.00106211, 7.24673309, 0.99467477, 0.99719970, 0.49209904],1808 [ -6.24855407, -0.00173725, 0.00106154, 7.24681683, 0.99467771, 0.99720121, 0.49210182],1809 [ -6.24863657, -0.00173630, 0.00106098, 7.24690027, 0.99468066, 0.99720272, 0.49210459],1810 [ -6.24871878, -0.00173535, 0.00106041, 7.24698343, 0.99468360, 0.99720424, 0.49210735],1811 [ -6.24880069, -0.00173440, 0.00105985, 7.24706629, 0.99468654, 0.99720575, 0.49211010],1812 [ -6.24888231, -0.00173346, 0.00105929, 7.24714886, 0.99468947, 0.99720725, 0.49211286],1813 [ -6.24896365, -0.00173251, 0.00105872, 7.24723113, 0.99469240, 0.99720876, 0.49211559],1814 [ -6.24904469, -0.00173157, 0.00105816, 7.24731312, 0.99469533, 0.99721027, 0.49211832],1815 [ -6.24912545, -0.00173063, 0.00105760, 7.24739482, 0.99469826, 0.99721177, 0.49212104],1816 [ -6.24920591, -0.00172969, 0.00105704, 7.24747623, 0.99470118, 0.99721327, 0.49212375],1817 [ -6.24928610, -0.00172875, 0.00105648, 7.24755735, 0.99470410, 0.99721478, 0.49212645],1818 [ -6.24936599, -0.00172781, 0.00105592, 7.24763819, 0.99470702, 0.99721628, 0.49212915],1819 [ -6.24944561, -0.00172687, 0.00105536, 7.24771874, 0.99470993, 0.99721777, 0.49213183],1820 [ -6.24952494, -0.00172593, 0.00105480, 7.24779901, 0.99471284, 0.99721927, 0.49213451],1821 [ -6.24960399, -0.00172499, 0.00105424, 7.24787899, 0.99471575, 0.99722077, 0.49213717],1822 [ -6.24968275, -0.00172406, 0.00105368, 7.24795870, 0.99471865, 0.99722226, 0.49213983],1823 [ -6.24976124, -0.00172312, 0.00105312, 7.24803812, 0.99472155, 0.99722375, 0.49214248],1824 [ -6.24983945, -0.00172219, 0.00105257, 7.24811726, 0.99472445, 0.99722524, 0.49214512],1825 [ -6.24991738, -0.00172126, 0.00105201, 7.24819612, 0.99472735, 0.99722673, 0.49214776],1826 [ -6.24999503, -0.00172032, 0.00105145, 7.24827471, 0.99473024, 0.99722822, 0.49215038],1827 [ -6.25007241, -0.00171939, 0.00105090, 7.24835302, 0.99473313, 0.99722971, 0.49215299],1828 [ -6.25014951, -0.00171846, 0.00105034, 7.24843105, 0.99473601, 0.99723119, 0.49215561],1829 [ -6.25022634, -0.00171753, 0.00104979, 7.24850880, 0.99473890, 0.99723268, 0.49215820],1830 [ -6.25030289, -0.00171660, 0.00104923, 7.24858628, 0.99474178, 0.99723416, 0.49216079],1831 [ -6.25037917, -0.00171568, 0.00104868, 7.24866349, 0.99474465, 0.99723564, 0.49216338],1832 [ -6.25045518, -0.00171475, 0.00104813, 7.24874043, 0.99474753, 0.99723712, 0.49216595],1833 [ -6.25053092, -0.00171382, 0.00104758, 7.24881709, 0.99475040, 0.99723860, 0.49216851],1834 [ -6.25060639, -0.00171290, 0.00104702, 7.24889349, 0.99475327, 0.99724008, 0.49217106],1835 [ -6.25068159, -0.00171198, 0.00104647, 7.24896961, 0.99475613, 0.99724155, 0.49217362],1836 [ -6.25075652, -0.00171105, 0.00104592, 7.24904547, 0.99475899, 0.99724303, 0.49217616],1837 [ -6.25083119, -0.00171013, 0.00104537, 7.24912106, 0.99476185, 0.99724450, 0.49217869],1838 [ -6.25090559, -0.00170921, 0.00104482, 7.24919638, 0.99476471, 0.99724597, 0.49218121],1839 [ -6.25097972, -0.00170829, 0.00104427, 7.24927143, 0.99476756, 0.99724744, 0.49218373],1840 [ -6.25105359, -0.00170737, 0.00104372, 7.24934622, 0.99477041, 0.99724891, 0.49218624],1841 [ -6.25112720, -0.00170645, 0.00104317, 7.24942075, 0.99477326, 0.99725037, 0.49218873],1842 [ -6.25120055, -0.00170554, 0.00104262, 7.24949501, 0.99477610, 0.99725184, 0.49219122],1843 [ -6.25127363, -0.00170462, 0.00104208, 7.24956901, 0.99477894, 0.99725330, 0.49219371],1844 [ -6.25134646, -0.00170370, 0.00104153, 7.24964275, 0.99478178, 0.99725477, 0.49219618],1845 [ -6.25141902, -0.00170279, 0.00104098, 7.24971623, 0.99478462, 0.99725623, 0.49219865],1846 [ -6.25149133, -0.00170188, 0.00104044, 7.24978945, 0.99478745, 0.99725769, 0.49220112],1847 [ -6.25156338, -0.00170096, 0.00103989, 7.24986241, 0.99479028, 0.99725915, 0.49220356],1848 [ -6.25163517, -0.00170005, 0.00103935, 7.24993512, 0.99479311, 0.99726060, 0.49220600],1849 [ -6.25170670, -0.00169914, 0.00103880, 7.25000756, 0.99479593, 0.99726206, 0.49220844],1850 [ -6.25177798, -0.00169823, 0.00103826, 7.25007975, 0.99479875, 0.99726351, 0.49221087],1851 [ -6.25184901, -0.00169732, 0.00103771, 7.25015169, 0.99480157, 0.99726496, 0.49221329],1852 [ -6.25191978, -0.00169641, 0.00103717, 7.25022337, 0.99480438, 0.99726642, 0.49221570],1853 [ -6.25199031, -0.00169551, 0.00103663, 7.25029480, 0.99480719, 0.99726787, 0.49221811],1854 [ -6.25206057, -0.00169460, 0.00103609, 7.25036598, 0.99481000, 0.99726931, 0.49222050],1855 [ -6.25213059, -0.00169369, 0.00103555, 7.25043690, 0.99481281, 0.99727076, 0.49222289],1856 [ -6.25220036, -0.00169279, 0.00103500, 7.25050757, 0.99481561, 0.99727221, 0.49222527],1857 [ -6.25226988, -0.00169189, 0.00103446, 7.25057800, 0.99481841, 0.99727365, 0.49222765],1858 [ -6.25233916, -0.00169098, 0.00103392, 7.25064817, 0.99482121, 0.99727509, 0.49223001],1859 [ -6.25240818, -0.00169008, 0.00103338, 7.25071810, 0.99482400, 0.99727653, 0.49223237],1860 [ -6.25247696, -0.00168918, 0.00103285, 7.25078778, 0.99482680, 0.99727797, 0.49223472],1861 [ -6.25254550, -0.00168828, 0.00103231, 7.25085722, 0.99482958, 0.99727941, 0.49223706],1862 [ -6.25261379, -0.00168738, 0.00103177, 7.25092640, 0.99483237, 0.99728085, 0.49223939],1863 [ -6.25268183, -0.00168648, 0.00103123, 7.25099535, 0.99483515, 0.99728229, 0.49224172],1864 [ -6.25274963, -0.00168559, 0.00103069, 7.25106405, 0.99483793, 0.99728372, 0.49224404],1865 [ -6.25281720, -0.00168469, 0.00103016, 7.25113251, 0.99484071, 0.99728515, 0.49224636],1866 [ -6.25288452, -0.00168379, 0.00102962, 7.25120072, 0.99484348, 0.99728659, 0.49224866],1867 [ -6.25295160, -0.00168290, 0.00102909, 7.25126870, 0.99484626, 0.99728802, 0.49225097],1868 [ -6.25301844, -0.00168200, 0.00102855, 7.25133643, 0.99484902, 0.99728945, 0.49225325],1869 [ -6.25308504, -0.00168111, 0.00102802, 7.25140393, 0.99485179, 0.99729087, 0.49225553],1870 [ -6.25315140, -0.00168022, 0.00102748, 7.25147118, 0.99485455, 0.99729230, 0.49225780],1871 [ -6.25321753, -0.00167933, 0.00102695, 7.25153820, 0.99485731, 0.99729372, 0.49226008],1872 [ -6.25328342, -0.00167844, 0.00102641, 7.25160498, 0.99486007, 0.99729515, 0.49226233],1873 [ -6.25334907, -0.00167755, 0.00102588, 7.25167153, 0.99486282, 0.99729657, 0.49226459],1874 [ -6.25341450, -0.00167666, 0.00102535, 7.25173784, 0.99486558, 0.99729799, 0.49226684],1875 [ -6.25347968, -0.00167577, 0.00102482, 7.25180391, 0.99486832, 0.99729941, 0.49226907],1876 [ -6.25354464, -0.00167489, 0.00102429, 7.25186975, 0.99487107, 0.99730083, 0.49227131],1877 [ -6.25360936, -0.00167400, 0.00102376, 7.25193536, 0.99487381, 0.99730224, 0.49227354],1878 [ -6.25367385, -0.00167312, 0.00102323, 7.25200074, 0.99487655, 0.99730366, 0.49227575],1879 [ -6.25373811, -0.00167223, 0.00102270, 7.25206588, 0.99487929, 0.99730507, 0.49227796],1880 [ -6.25380215, -0.00167135, 0.00102217, 7.25213080, 0.99488202, 0.99730649, 0.49228016],1881 [ -6.25386595, -0.00167047, 0.00102164, 7.25219548, 0.99488476, 0.99730790, 0.49228236],1882 [ -6.25392952, -0.00166958, 0.00102111, 7.25225994, 0.99488749, 0.99730931, 0.49228455],1883 [ -6.25399287, -0.00166870, 0.00102058, 7.25232417, 0.99489021, 0.99731072, 0.49228673],1884 [ -6.25405599, -0.00166782, 0.00102005, 7.25238817, 0.99489294, 0.99731212, 0.49228892],1885 [ -6.25411889, -0.00166694, 0.00101953, 7.25245194, 0.99489566, 0.99731353, 0.49229108],1886 [ -6.25418156, -0.00166607, 0.00101900, 7.25251549, 0.99489837, 0.99731493, 0.49229324],1887 [ -6.25424401, -0.00166519, 0.00101847, 7.25257882, 0.99490109, 0.99731634, 0.49229539],1888 [ -6.25430623, -0.00166431, 0.00101795, 7.25264192, 0.99490380, 0.99731774, 0.49229754],1889 [ -6.25436823, -0.00166344, 0.00101742, 7.25270479, 0.99490651, 0.99731914, 0.49229968],1890 [ -6.25443001, -0.00166256, 0.00101690, 7.25276745, 0.99490922, 0.99732054, 0.49230182],1891 [ -6.25449157, -0.00166169, 0.00101638, 7.25282988, 0.99491192, 0.99732194, 0.49230394],1892 [ -6.25455291, -0.00166082, 0.00101585, 7.25289209, 0.99491462, 0.99732333, 0.49230606],1893 [ -6.25461403, -0.00165994, 0.00101533, 7.25295408, 0.99491732, 0.99732473, 0.49230817],1894 [ -6.25467493, -0.00165907, 0.00101481, 7.25301586, 0.99492002, 0.99732612, 0.49231027],1895 [ -6.25473561, -0.00165820, 0.00101428, 7.25307741, 0.99492271, 0.99732751, 0.49231238],1896 [ -6.25479608, -0.00165733, 0.00101376, 7.25313874, 0.99492540, 0.99732890, 0.49231446],1897 [ -6.25485633, -0.00165647, 0.00101324, 7.25319986, 0.99492809, 0.99733029, 0.49231656],1898 [ -6.25491636, -0.00165560, 0.00101272, 7.25326076, 0.99493077, 0.99733168, 0.49231863],1899 [ -6.25497618, -0.00165473, 0.00101220, 7.25332145, 0.99493345, 0.99733307, 0.49232070],1900 [ -6.25503579, -0.00165386, 0.00101168, 7.25338192, 0.99493613, 0.99733445, 0.49232277],1901 [ -6.25509518, -0.00165300, 0.00101116, 7.25344218, 0.99493881, 0.99733584, 0.49232483],1902 [ -6.25515436, -0.00165214, 0.00101064, 7.25350222, 0.99494148, 0.99733722, 0.49232688],1903 [ -6.25521333, -0.00165127, 0.00101012, 7.25356206, 0.99494415, 0.99733860, 0.49232894],1904 [ -6.25527209, -0.00165041, 0.00100961, 7.25362168, 0.99494682, 0.99733998, 0.49233097],1905 [ -6.25533063, -0.00164955, 0.00100909, 7.25368108, 0.99494949, 0.99734136, 0.49233301],1906 [ -6.25538897, -0.00164869, 0.00100857, 7.25374028, 0.99495215, 0.99734274, 0.49233504],1907 [ -6.25544710, -0.00164783, 0.00100806, 7.25379927, 0.99495481, 0.99734412, 0.49233704],1908 [ -6.25550502, -0.00164697, 0.00100754, 7.25385805, 0.99495747, 0.99734549, 0.49233906],1909 [ -6.25556273, -0.00164611, 0.00100702, 7.25391662, 0.99496012, 0.99734687, 0.49234107],1910 [ -6.25562024, -0.00164525, 0.00100651, 7.25397499, 0.99496278, 0.99734824, 0.49234308],1911 [ -6.25567754, -0.00164440, 0.00100599, 7.25403314, 0.99496543, 0.99734961, 0.49234506],1912 [ -6.25573464, -0.00164354, 0.00100548, 7.25409110, 0.99496807, 0.99735098, 0.49234706],1913 [ -6.25579153, -0.00164268, 0.00100497, 7.25414884, 0.99497072, 0.99735235, 0.49234904],1914 [ -6.25584821, -0.00164183, 0.00100445, 7.25420638, 0.99497336, 0.99735372, 0.49235101],1915 [ -6.25590470, -0.00164098, 0.00100394, 7.25426372, 0.99497600, 0.99735508, 0.49235297],1916 [ -6.25596098, -0.00164012, 0.00100343, 7.25432086, 0.99497863, 0.99735645, 0.49235495],1917 [ -6.25601706, -0.00163927, 0.00100292, 7.25437779, 0.99498127, 0.99735781, 0.49235690],1918 [ -6.25607294, -0.00163842, 0.00100241, 7.25443452, 0.99498390, 0.99735917, 0.49235884],1919 [ -6.25612862, -0.00163757, 0.00100189, 7.25449105, 0.99498652, 0.99736053, 0.49236079],1920 [ -6.25618410, -0.00163672, 0.00100138, 7.25454738, 0.99498915, 0.99736189, 0.49236272],1921 [ -6.25623938, -0.00163587, 0.00100087, 7.25460351, 0.99499177, 0.99736325, 0.49236466],1922 [ -6.25629447, -0.00163503, 0.00100036, 7.25465944, 0.99499439, 0.99736461, 0.49236658],1923 [ -6.25634936, -0.00163418, 0.00099986, 7.25471518, 0.99499701, 0.99736596, 0.49236850],1924 [ -6.25640405, -0.00163333, 0.00099935, 7.25477071, 0.99499963, 0.99736732, 0.49237042],1925 [ -6.25645854, -0.00163249, 0.00099884, 7.25482605, 0.99500224, 0.99736867, 0.49237232],1926 [ -6.25651284, -0.00163164, 0.00099833, 7.25488119, 0.99500485, 0.99737002, 0.49237422],1927 [ -6.25656694, -0.00163080, 0.00099782, 7.25493614, 0.99500745, 0.99737137, 0.49237612],1928 [ -6.25662085, -0.00162996, 0.00099732, 7.25499089, 0.99501006, 0.99737272, 0.49237800],1929 [ -6.25667457, -0.00162912, 0.00099681, 7.25504545, 0.99501266, 0.99737407, 0.49237989],1930 [ -6.25672809, -0.00162828, 0.00099631, 7.25509982, 0.99501526, 0.99737542, 0.49238176],1931 [ -6.25678143, -0.00162744, 0.00099580, 7.25515399, 0.99501786, 0.99737676, 0.49238364],1932 [ -6.25683457, -0.00162660, 0.00099530, 7.25520797, 0.99502045, 0.99737811, 0.49238550],1933 [ -6.25688752, -0.00162576, 0.00099479, 7.25526176, 0.99502304, 0.99737945, 0.49238736],1934 [ -6.25694028, -0.00162492, 0.00099429, 7.25531536, 0.99502563, 0.99738079, 0.49238921],1935 [ -6.25699285, -0.00162408, 0.00099378, 7.25536877, 0.99502822, 0.99738213, 0.49239105],1936 [ -6.25704524, -0.00162325, 0.00099328, 7.25542199, 0.99503080, 0.99738347, 0.49239289],1937 [ -6.25709743, -0.00162241, 0.00099278, 7.25547502, 0.99503338, 0.99738481, 0.49239473],1938 [ -6.25714944, -0.00162158, 0.00099228, 7.25552786, 0.99503596, 0.99738615, 0.49239656],1939 [ -6.25720127, -0.00162074, 0.00099177, 7.25558052, 0.99503853, 0.99738748, 0.49239838],1940 [ -6.25725290, -0.00161991, 0.00099127, 7.25563299, 0.99504111, 0.99738881, 0.49240020],1941 [ -6.25730435, -0.00161908, 0.00099077, 7.25568527, 0.99504368, 0.99739015, 0.49240201],1942 [ -6.25735562, -0.00161825, 0.00099027, 7.25573737, 0.99504625, 0.99739148, 0.49240381],1943 [ -6.25740670, -0.00161742, 0.00098977, 7.25578929, 0.99504881, 0.99739281, 0.49240561],1944 [ -6.25745761, -0.00161659, 0.00098927, 7.25584102, 0.99505137, 0.99739414, 0.49240741],1945 [ -6.25750832, -0.00161576, 0.00098877, 7.25589256, 0.99505393, 0.99739547, 0.49240919],1946 [ -6.25755886, -0.00161493, 0.00098828, 7.25594393, 0.99505649, 0.99739679, 0.49241098],1947 [ -6.25760921, -0.00161411, 0.00098778, 7.25599511, 0.99505905, 0.99739812, 0.49241276],1948 [ -6.25765939, -0.00161328, 0.00098728, 7.25604611, 0.99506160, 0.99739944, 0.49241453],1949 [ -6.25770938, -0.00161245, 0.00098678, 7.25609693, 0.99506415, 0.99740076, 0.49241630],1950 [ -6.25775920, -0.00161163, 0.00098629, 7.25614757, 0.99506670, 0.99740209, 0.49241806],1951 [ -6.25780883, -0.00161080, 0.00098579, 7.25619803, 0.99506924, 0.99740341, 0.49241981],1952 [ -6.25785829, -0.00160998, 0.00098529, 7.25624831, 0.99507179, 0.99740472, 0.49242156],1953 [ -6.25790757, -0.00160916, 0.00098480, 7.25629841, 0.99507433, 0.99740604, 0.49242330],1954 [ -6.25795667, -0.00160834, 0.00098430, 7.25634834, 0.99507686, 0.99740736, 0.49242504],1955 [ -6.25800560, -0.00160752, 0.00098381, 7.25639808, 0.99507940, 0.99740867, 0.49242678],1956 [ -6.25805435, -0.00160670, 0.00098332, 7.25644766, 0.99508193, 0.99740999, 0.49242849],1957 [ -6.25810293, -0.00160588, 0.00098282, 7.25649705, 0.99508446, 0.99741130, 0.49243022],1958 [ -6.25815133, -0.00160506, 0.00098233, 7.25654627, 0.99508699, 0.99741261, 0.49243193],1959 [ -6.25819956, -0.00160424, 0.00098184, 7.25659532, 0.99508951, 0.99741392, 0.49243365],1960 [ -6.25824762, -0.00160342, 0.00098134, 7.25664419, 0.99509203, 0.99741523, 0.49243535],1961 [ -6.25829550, -0.00160261, 0.00098085, 7.25669289, 0.99509455, 0.99741654, 0.49243704],1962 [ -6.25834321, -0.00160179, 0.00098036, 7.25674142, 0.99509707, 0.99741784, 0.49243875],1963 [ -6.25839075, -0.00160098, 0.00097987, 7.25678978, 0.99509959, 0.99741915, 0.49244043],1964 [ -6.25843812, -0.00160017, 0.00097938, 7.25683796, 0.99510210, 0.99742045, 0.49244213],1965 [ -6.25848532, -0.00159935, 0.00097889, 7.25688597, 0.99510461, 0.99742176, 0.49244379],1966 [ -6.25853235, -0.00159854, 0.00097840, 7.25693381, 0.99510712, 0.99742306, 0.49244547],1967 [ -6.25857922, -0.00159773, 0.00097791, 7.25698149, 0.99510962, 0.99742436, 0.49244714],1968 [ -6.25862591, -0.00159692, 0.00097742, 7.25702899, 0.99511212, 0.99742566, 0.49244880],1969 [ -6.25867244, -0.00159611, 0.00097693, 7.25707633, 0.99511462, 0.99742696, 0.49245046],1970 [ -6.25871879, -0.00159530, 0.00097645, 7.25712350, 0.99511712, 0.99742825, 0.49245210],1971 [ -6.25876499, -0.00159449, 0.00097596, 7.25717050, 0.99511962, 0.99742955, 0.49245376],1972 [ -6.25881101, -0.00159368, 0.00097547, 7.25721733, 0.99512211, 0.99743084, 0.49245539],1973 [ -6.25885688, -0.00159288, 0.00097499, 7.25726400, 0.99512460, 0.99743214, 0.49245702],1974 [ -6.25890257, -0.00159207, 0.00097450, 7.25731050, 0.99512709, 0.99743343, 0.49245866],1975 [ -6.25894810, -0.00159127, 0.00097402, 7.25735684, 0.99512957, 0.99743472, 0.49246028],1976 [ -6.25899347, -0.00159046, 0.00097353, 7.25740301, 0.99513205, 0.99743601, 0.49246190],1977 [ -6.25903868, -0.00158966, 0.00097305, 7.25744902, 0.99513453, 0.99743730, 0.49246352],1978 [ -6.25908372, -0.00158886, 0.00097256, 7.25749487, 0.99513701, 0.99743858, 0.49246513],1979 [ -6.25912861, -0.00158805, 0.00097208, 7.25754055, 0.99513949, 0.99743987, 0.49246673],1980 [ -6.25917333, -0.00158725, 0.00097159, 7.25758607, 0.99514196, 0.99744115, 0.49246833],1981 [ -6.25921789, -0.00158645, 0.00097111, 7.25763144, 0.99514443, 0.99744244, 0.49246993],1982 [ -6.25926229, -0.00158565, 0.00097063, 7.25767664, 0.99514690, 0.99744372, 0.49247152],1983 [ -6.25930653, -0.00158485, 0.00097015, 7.25772168, 0.99514936, 0.99744500, 0.49247309],1984 [ -6.25935061, -0.00158406, 0.00096966, 7.25776656, 0.99515183, 0.99744628, 0.49247468],1985 [ -6.25939453, -0.00158326, 0.00096918, 7.25781128, 0.99515429, 0.99744756, 0.49247625],1986 [ -6.25943830, -0.00158246, 0.00096870, 7.25785584, 0.99515675, 0.99744884, 0.49247782],1987 [ -6.25948191, -0.00158167, 0.00096822, 7.25790024, 0.99515920, 0.99745011, 0.49247939],1988 [ -6.25952536, -0.00158087, 0.00096774, 7.25794449, 0.99516165, 0.99745139, 0.49248095],1989 [ -6.25956866, -0.00158008, 0.00096726, 7.25798858, 0.99516411, 0.99745266, 0.49248251],1990 [ -6.25961180, -0.00157928, 0.00096678, 7.25803252, 0.99516655, 0.99745393, 0.49248405],1991 [ -6.25965478, -0.00157849, 0.00096631, 7.25807629, 0.99516900, 0.99745521, 0.49248560],1992 [ -6.25969761, -0.00157770, 0.00096583, 7.25811992, 0.99517144, 0.99745648, 0.49248715],1993 [ -6.25974029, -0.00157691, 0.00096535, 7.25816339, 0.99517389, 0.99745774, 0.49248867],1994 [ -6.25978282, -0.00157612, 0.00096487, 7.25820670, 0.99517633, 0.99745901, 0.49249021],1995 [ -6.25982519, -0.00157533, 0.00096440, 7.25824986, 0.99517876, 0.99746028, 0.49249174],1996 [ -6.25986741, -0.00157454, 0.00096392, 7.25829287, 0.99518120, 0.99746154, 0.49249325],1997 [ -6.25990947, -0.00157375, 0.00096344, 7.25833572, 0.99518363, 0.99746281, 0.49249477],1998 [ -6.25995139, -0.00157296, 0.00096297, 7.25837843, 0.99518606, 0.99746407, 0.49249628],1999 [ -6.25999315, -0.00157217, 0.00096249, 7.25842098, 0.99518848, 0.99746533, 0.49249779],2000 [ -6.26003477, -0.00157139, 0.00096202, 7.25846338, 0.99519091, 0.99746659, 0.49249929],2001 [ -6.26007624, -0.00157060, 0.00096154, 7.25850563, 0.99519333, 0.99746785, 0.49250079],2002 [ -6.26011755, -0.00156982, 0.00096107, 7.25854773, 0.99519575, 0.99746911, 0.49250228],2003 [ -6.26015872, -0.00156903, 0.00096060, 7.25858969, 0.99519817, 0.99747037, 0.49250377],2004 [ -6.26019974, -0.00156825, 0.00096012, 7.25863149, 0.99520058, 0.99747163, 0.49250524],2005 [ -6.26024061, -0.00156747, 0.00095965, 7.25867315, 0.99520300, 0.99747288, 0.49250672],2006 [ -6.26028134, -0.00156669, 0.00095918, 7.25871465, 0.99520541, 0.99747414, 0.49250819],2007 [ -6.26032192, -0.00156591, 0.00095871, 7.25875601, 0.99520782, 0.99747539, 0.49250967],2008 [ -6.26036235, -0.00156513, 0.00095823, 7.25879723, 0.99521022, 0.99747664, 0.49251114],2009 [ -6.26040264, -0.00156435, 0.00095776, 7.25883830, 0.99521263, 0.99747789, 0.49251259],2010 [ -6.26044279, -0.00156357, 0.00095729, 7.25887922, 0.99521503, 0.99747914, 0.49251404],2011 [ -6.26048279, -0.00156279, 0.00095682, 7.25892000, 0.99521743, 0.99748039, 0.49251549],2012 [ -6.26052264, -0.00156201, 0.00095635, 7.25896063, 0.99521982, 0.99748163, 0.49251694],2013 [ -6.26056235, -0.00156124, 0.00095588, 7.25900112, 0.99522222, 0.99748288, 0.49251838],2014 [ -6.26060192, -0.00156046, 0.00095542, 7.25904146, 0.99522461, 0.99748412, 0.49251982],2015 [ -6.26064135, -0.00155969, 0.00095495, 7.25908167, 0.99522700, 0.99748537, 0.49252125],2016 [ -6.26068064, -0.00155891, 0.00095448, 7.25912173, 0.99522939, 0.99748661, 0.49252269],2017 [ -6.26071978, -0.00155814, 0.00095401, 7.25916164, 0.99523177, 0.99748785, 0.49252410],2018 [ -6.26075879, -0.00155737, 0.00095354, 7.25920142, 0.99523415, 0.99748909, 0.49252552],2019 [ -6.26079765, -0.00155659, 0.00095308, 7.25924106, 0.99523653, 0.99749033, 0.49252694],2020 [ -6.26083637, -0.00155582, 0.00095261, 7.25928055, 0.99523891, 0.99749157, 0.49252834],2021 [ -6.26087496, -0.00155505, 0.00095215, 7.25931991, 0.99524129, 0.99749280, 0.49252975],2022 [ -6.26091341, -0.00155428, 0.00095168, 7.25935912, 0.99524366, 0.99749404, 0.49253116],2023 [ -6.26095171, -0.00155351, 0.00095122, 7.25939820, 0.99524603, 0.99749527, 0.49253255],2024 [ -6.26098988, -0.00155274, 0.00095075, 7.25943714, 0.99524840, 0.99749651, 0.49253394],2025 [ -6.26102792, -0.00155198, 0.00095029, 7.25947594, 0.99525077, 0.99749774, 0.49253533],2026 [ -6.26106581, -0.00155121, 0.00094982, 7.25951460, 0.99525313, 0.99749897, 0.49253672],2027 [ -6.26110357, -0.00155044, 0.00094936, 7.25955313, 0.99525549, 0.99750020, 0.49253810],2028 [ -6.26114120, -0.00154968, 0.00094890, 7.25959152, 0.99525785, 0.99750143, 0.49253947],2029 [ -6.26117869, -0.00154891, 0.00094843, 7.25962977, 0.99526021, 0.99750265, 0.49254085],2030 [ -6.26121604, -0.00154815, 0.00094797, 7.25966789, 0.99526256, 0.99750388, 0.49254220],2031 [ -6.26125326, -0.00154739, 0.00094751, 7.25970587, 0.99526492, 0.99750510, 0.49254357],2032 [ -6.26129035, -0.00154662, 0.00094705, 7.25974372, 0.99526727, 0.99750633, 0.49254493],2033 [ -6.26132730, -0.00154586, 0.00094659, 7.25978144, 0.99526962, 0.99750755, 0.49254628],2034 [ -6.26136412, -0.00154510, 0.00094613, 7.25981902, 0.99527196, 0.99750877, 0.49254763],2035 [ -6.26140081, -0.00154434, 0.00094567, 7.25985647, 0.99527431, 0.99750999, 0.49254897],2036 [ -6.26143736, -0.00154358, 0.00094521, 7.25989378, 0.99527665, 0.99751121, 0.49255032],2037 [ -6.26147379, -0.00154282, 0.00094475, 7.25993097, 0.99527899, 0.99751243, 0.49255166],2038 [ -6.26151008, -0.00154206, 0.00094429, 7.25996802, 0.99528132, 0.99751365, 0.49255299],2039 [ -6.26154624, -0.00154131, 0.00094383, 7.26000494, 0.99528366, 0.99751486, 0.49255432],2040 [ -6.26158228, -0.00154055, 0.00094337, 7.26004173, 0.99528599, 0.99751608, 0.49255564],2041 [ -6.26161818, -0.00153979, 0.00094292, 7.26007839, 0.99528832, 0.99751729, 0.49255696],2042 [ -6.26165395, -0.00153904, 0.00094246, 7.26011492, 0.99529065, 0.99751851, 0.49255828],2043 [ -6.26168960, -0.00153828, 0.00094200, 7.26015132, 0.99529297, 0.99751972, 0.49255958],2044 [ -6.26172512, -0.00153753, 0.00094155, 7.26018759, 0.99529530, 0.99752093, 0.49256090],2045 [ -6.26176051, -0.00153677, 0.00094109, 7.26022373, 0.99529762, 0.99752214, 0.49256219],2046 [ -6.26179577, -0.00153602, 0.00094063, 7.26025975, 0.99529994, 0.99752334, 0.49256349],2047 [ -6.26183090, -0.00153527, 0.00094018, 7.26029563, 0.99530226, 0.99752455, 0.49256478],2048 [ -6.26186591, -0.00153452, 0.00093972, 7.26033139, 0.99530457, 0.99752576, 0.49256609],2049 [ -6.26190080, -0.00153377, 0.00093927, 7.26036703, 0.99530688, 0.99752696, 0.49256738],2050 [ -6.26193555, -0.00153302, 0.00093882, 7.26040254, 0.99530919, 0.99752817, 0.49256866],2051 [ -6.26197019, -0.00153227, 0.00093836, 7.26043792, 0.99531150, 0.99752937, 0.49256993],2052 [ -6.26200470, -0.00153152, 0.00093791, 7.26047317, 0.99531381, 0.99753057, 0.49257121],2053 [ -6.26203908, -0.00153077, 0.00093746, 7.26050831, 0.99531611, 0.99753177, 0.49257249],2054 [ -6.26207334, -0.00153003, 0.00093700, 7.26054331, 0.99531841, 0.99753297, 0.49257375],2055 [ -6.26210748, -0.00152928, 0.00093655, 7.26057820, 0.99532071, 0.99753417, 0.49257501],2056 [ -6.26214149, -0.00152853, 0.00093610, 7.26061296, 0.99532301, 0.99753537, 0.49257629],2057 [ -6.26217539, -0.00152779, 0.00093565, 7.26064760, 0.99532530, 0.99753656, 0.49257754],2058 [ -6.26220916, -0.00152705, 0.00093520, 7.26068211, 0.99532759, 0.99753776, 0.49257879],2059 [ -6.26224280, -0.00152630, 0.00093475, 7.26071650, 0.99532988, 0.99753895, 0.49258003],2060 [ -6.26227633, -0.00152556, 0.00093430, 7.26075077, 0.99533217, 0.99754014, 0.49258128],2061 [ -6.26230974, -0.00152482, 0.00093385, 7.26078492, 0.99533446, 0.99754133, 0.49258252],2062 [ -6.26234303, -0.00152408, 0.00093340, 7.26081895, 0.99533674, 0.99754253, 0.49258376],2063 [ -6.26237620, -0.00152333, 0.00093295, 7.26085286, 0.99533902, 0.99754372, 0.49258498],2064 [ -6.26240924, -0.00152259, 0.00093250, 7.26088665, 0.99534130, 0.99754490, 0.49258622],2065 [ -6.26244217, -0.00152186, 0.00093205, 7.26092032, 0.99534358, 0.99754609, 0.49258745],2066 [ -6.26247499, -0.00152112, 0.00093161, 7.26095387, 0.99534586, 0.99754728, 0.49258868],2067 [ -6.26250768, -0.00152038, 0.00093116, 7.26098730, 0.99534813, 0.99754846, 0.49258989],2068 [ -6.26254025, -0.00151964, 0.00093071, 7.26102061, 0.99535040, 0.99754965, 0.49259110],2069 [ -6.26257271, -0.00151890, 0.00093027, 7.26105381, 0.99535267, 0.99755083, 0.49259230],2070 [ -6.26260505, -0.00151817, 0.00092982, 7.26108689, 0.99535493, 0.99755201, 0.49259351],2071 [ -6.26263728, -0.00151743, 0.00092937, 7.26111985, 0.99535720, 0.99755319, 0.49259471],2072 [ -6.26266939, -0.00151670, 0.00092893, 7.26115269, 0.99535946, 0.99755437, 0.49259592],2073 [ -6.26270138, -0.00151596, 0.00092848, 7.26118542, 0.99536172, 0.99755555, 0.49259711],2074 [ -6.26273326, -0.00151523, 0.00092804, 7.26121803, 0.99536398, 0.99755673, 0.49259829],2075 [ -6.26276503, -0.00151450, 0.00092760, 7.26125053, 0.99536623, 0.99755790, 0.49259950],2076 [ -6.26279668, -0.00151377, 0.00092715, 7.26128291, 0.99536849, 0.99755908, 0.49260067],2077 [ -6.26282822, -0.00151304, 0.00092671, 7.26131518, 0.99537074, 0.99756025, 0.49260186],2078 [ -6.26285964, -0.00151231, 0.00092627, 7.26134733, 0.99537299, 0.99756143, 0.49260303],2079 [ -6.26289095, -0.00151158, 0.00092582, 7.26137937, 0.99537524, 0.99756260, 0.49260421],2080 [ -6.26292215, -0.00151085, 0.00092538, 7.26141130, 0.99537748, 0.99756377, 0.49260538],2081 [ -6.26295323, -0.00151012, 0.00092494, 7.26144311, 0.99537972, 0.99756494, 0.49260653],2082 [ -6.26298421, -0.00150939, 0.00092450, 7.26147481, 0.99538196, 0.99756611, 0.49260770],2083 [ -6.26301507, -0.00150866, 0.00092406, 7.26150640, 0.99538420, 0.99756728, 0.49260887],2084 [ -6.26304582, -0.00150794, 0.00092362, 7.26153788, 0.99538644, 0.99756844, 0.49261002],2085 [ -6.26307646, -0.00150721, 0.00092318, 7.26156925, 0.99538867, 0.99756961, 0.49261117],2086 [ -6.26310699, -0.00150649, 0.00092274, 7.26160050, 0.99539091, 0.99757078, 0.49261231],2087 [ -6.26313741, -0.00150576, 0.00092230, 7.26163165, 0.99539314, 0.99757194, 0.49261347],2088 [ -6.26316772, -0.00150504, 0.00092186, 7.26166269, 0.99539536, 0.99757310, 0.49261461],2089 [ -6.26319793, -0.00150431, 0.00092142, 7.26169361, 0.99539759, 0.99757426, 0.49261575],2090 [ -6.26322802, -0.00150359, 0.00092098, 7.26172443, 0.99539981, 0.99757542, 0.49261688],2091 [ -6.26325801, -0.00150287, 0.00092055, 7.26175513, 0.99540204, 0.99757658, 0.49261801],2092 [ -6.26328788, -0.00150215, 0.00092011, 7.26178573, 0.99540426, 0.99757774, 0.49261913],2093 [ -6.26331765, -0.00150143, 0.00091967, 7.26181623, 0.99540647, 0.99757890, 0.49262025],2094 [ -6.26334732, -0.00150071, 0.00091924, 7.26184661, 0.99540869, 0.99758006, 0.49262138],2095 [ -6.26337687, -0.00149999, 0.00091880, 7.26187688, 0.99541090, 0.99758121, 0.49262250],2096 [ -6.26340633, -0.00149927, 0.00091836, 7.26190705, 0.99541311, 0.99758236, 0.49262361],2097 [ -6.26343567, -0.00149855, 0.00091793, 7.26193712, 0.99541532, 0.99758352, 0.49262472],2098 [ -6.26346491, -0.00149784, 0.00091749, 7.26196707, 0.99541753, 0.99758467, 0.49262583],2099 [ -6.26349404, -0.00149712, 0.00091706, 7.26199692, 0.99541974, 0.99758582, 0.49262693],2100 [ -6.26352307, -0.00149640, 0.00091662, 7.26202667, 0.99542194, 0.99758697, 0.49262803],2101 [ -6.26355200, -0.00149569, 0.00091619, 7.26205631, 0.99542414, 0.99758812, 0.49262913],2102 [ -6.26358082, -0.00149498, 0.00091576, 7.26208585, 0.99542634, 0.99758927, 0.49263021],2103 [ -6.26360954, -0.00149426, 0.00091532, 7.26211528, 0.99542854, 0.99759042, 0.49263131],2104 [ -6.26363815, -0.00149355, 0.00091489, 7.26214460, 0.99543073, 0.99759156, 0.49263239],2105 [ -6.26366666, -0.00149284, 0.00091446, 7.26217383, 0.99543292, 0.99759271, 0.49263348],2106 [ -6.26369507, -0.00149212, 0.00091403, 7.26220295, 0.99543511, 0.99759385, 0.49263456],2107 [ -6.26372338, -0.00149141, 0.00091359, 7.26223197, 0.99543730, 0.99759499, 0.49263563],2108 [ -6.26375159, -0.00149070, 0.00091316, 7.26226088, 0.99543949, 0.99759613, 0.49263671],2109 [ -6.26377969, -0.00148999, 0.00091273, 7.26228970, 0.99544167, 0.99759728, 0.49263778],2110 [ -6.26380769, -0.00148928, 0.00091230, 7.26231841, 0.99544386, 0.99759841, 0.49263884],2111 [ -6.26383560, -0.00148857, 0.00091187, 7.26234702, 0.99544604, 0.99759955, 0.49263991],2112 [ -6.26386340, -0.00148787, 0.00091144, 7.26237553, 0.99544821, 0.99760069, 0.49264097],2113 [ -6.26389110, -0.00148716, 0.00091101, 7.26240394, 0.99545039, 0.99760183, 0.49264203],2114 [ -6.26391870, -0.00148645, 0.00091058, 7.26243225, 0.99545257, 0.99760296, 0.49264308],2115 [ -6.26394621, -0.00148575, 0.00091016, 7.26246046, 0.99545474, 0.99760410, 0.49264413],2116 [ -6.26397361, -0.00148504, 0.00090973, 7.26248857, 0.99545691, 0.99760523, 0.49264518],2117 [ -6.26400092, -0.00148434, 0.00090930, 7.26251658, 0.99545908, 0.99760636, 0.49264622],2118 [ -6.26402813, -0.00148363, 0.00090887, 7.26254449, 0.99546124, 0.99760750, 0.49264726],2119 [ -6.26405524, -0.00148293, 0.00090844, 7.26257231, 0.99546341, 0.99760863, 0.49264830],2120 [ -6.26408225, -0.00148223, 0.00090802, 7.26260002, 0.99546557, 0.99760976, 0.49264934],2121 [ -6.26410916, -0.00148152, 0.00090759, 7.26262764, 0.99546773, 0.99761088, 0.49265036],2122 [ -6.26413598, -0.00148082, 0.00090717, 7.26265516, 0.99546989, 0.99761201, 0.49265140],2123 [ -6.26416271, -0.00148012, 0.00090674, 7.26268258, 0.99547204, 0.99761314, 0.49265242],2124 [ -6.26418933, -0.00147942, 0.00090631, 7.26270991, 0.99547420, 0.99761426, 0.49265345],2125 [ -6.26421586, -0.00147872, 0.00090589, 7.26273714, 0.99547635, 0.99761539, 0.49265447],2126 [ -6.26424230, -0.00147802, 0.00090547, 7.26276428, 0.99547850, 0.99761651, 0.49265547],2127 [ -6.26426864, -0.00147733, 0.00090504, 7.26279132, 0.99548065, 0.99761763, 0.49265649],2128 [ -6.26429489, -0.00147663, 0.00090462, 7.26281826, 0.99548279, 0.99761875, 0.49265751],2129 [ -6.26432104, -0.00147593, 0.00090419, 7.26284511, 0.99548494, 0.99761987, 0.49265851],2130 [ -6.26434710, -0.00147523, 0.00090377, 7.26287186, 0.99548708, 0.99762099, 0.49265951],2131 [ -6.26437306, -0.00147454, 0.00090335, 7.26289852, 0.99548922, 0.99762211, 0.49266051],2132 [ -6.26439893, -0.00147384, 0.00090293, 7.26292509, 0.99549136, 0.99762323, 0.49266151],2133 [ -6.26442471, -0.00147315, 0.00090250, 7.26295156, 0.99549349, 0.99762435, 0.49266249],2134 [ -6.26445040, -0.00147246, 0.00090208, 7.26297794, 0.99549563, 0.99762546, 0.49266350],2135 [ -6.26447599, -0.00147176, 0.00090166, 7.26300423, 0.99549776, 0.99762658, 0.49266448],2136 [ -6.26450150, -0.00147107, 0.00090124, 7.26303043, 0.99549989, 0.99762769, 0.49266547],2137 [ -6.26452691, -0.00147038, 0.00090082, 7.26305653, 0.99550202, 0.99762880, 0.49266646],2138 [ -6.26455222, -0.00146969, 0.00090040, 7.26308254, 0.99550415, 0.99762991, 0.49266744],2139 [ -6.26457745, -0.00146900, 0.00089998, 7.26310846, 0.99550627, 0.99763102, 0.49266841],2140 [ -6.26460259, -0.00146831, 0.00089956, 7.26313428, 0.99550839, 0.99763213, 0.49266939],2141 [ -6.26462764, -0.00146762, 0.00089914, 7.26316002, 0.99551051, 0.99763324, 0.49267035],2142 [ -6.26465259, -0.00146693, 0.00089872, 7.26318567, 0.99551263, 0.99763435, 0.49267132],2143 [ -6.26467746, -0.00146624, 0.00089831, 7.26321122, 0.99551475, 0.99763545, 0.49267230],2144 [ -6.26470224, -0.00146555, 0.00089789, 7.26323669, 0.99551686, 0.99763656, 0.49267325],2145 [ -6.26472693, -0.00146486, 0.00089747, 7.26326207, 0.99551898, 0.99763766, 0.49267421],2146 [ -6.26475153, -0.00146418, 0.00089705, 7.26328735, 0.99552109, 0.99763877, 0.49267517],2147 [ -6.26477604, -0.00146349, 0.00089664, 7.26331255, 0.99552319, 0.99763987, 0.49267611],2148 [ -6.26480047, -0.00146281, 0.00089622, 7.26333766, 0.99552530, 0.99764097, 0.49267707],2149 [ -6.26482481, -0.00146212, 0.00089580, 7.26336268, 0.99552741, 0.99764207, 0.49267802],2150 [ -6.26484906, -0.00146144, 0.00089539, 7.26338762, 0.99552951, 0.99764317, 0.49267897],2151 [ -6.26487322, -0.00146076, 0.00089497, 7.26341246, 0.99553161, 0.99764427, 0.49267991],2152 [ -6.26489730, -0.00146007, 0.00089456, 7.26343722, 0.99553371, 0.99764537, 0.49268085],2153 [ -6.26492129, -0.00145939, 0.00089414, 7.26346189, 0.99553581, 0.99764646, 0.49268179],2154 [ -6.26494519, -0.00145871, 0.00089373, 7.26348648, 0.99553790, 0.99764756, 0.49268272],2155 [ -6.26496901, -0.00145803, 0.00089332, 7.26351098, 0.99553999, 0.99764865, 0.49268365],2156 [ -6.26499274, -0.00145735, 0.00089290, 7.26353539, 0.99554209, 0.99764975, 0.49268458],2157 [ -6.26501639, -0.00145667, 0.00089249, 7.26355972, 0.99554417, 0.99765084, 0.49268549],2158 [ -6.26503995, -0.00145599, 0.00089208, 7.26358396, 0.99554626, 0.99765193, 0.49268643],2159 [ -6.26506343, -0.00145531, 0.00089166, 7.26360811, 0.99554835, 0.99765302, 0.49268735],2160 [ -6.26508682, -0.00145463, 0.00089125, 7.26363219, 0.99555043, 0.99765411, 0.49268826],2161 [ -6.26511013, -0.00145396, 0.00089084, 7.26365617, 0.99555251, 0.99765520, 0.49268918],2162 [ -6.26513336, -0.00145328, 0.00089043, 7.26368008, 0.99555459, 0.99765629, 0.49269008],2163 [ -6.26515650, -0.00145261, 0.00089002, 7.26370389, 0.99555667, 0.99765738, 0.49269099],2164 [ -6.26517956, -0.00145193, 0.00088961, 7.26372763, 0.99555875, 0.99765846, 0.49269190],2165 [ -6.26520254, -0.00145126, 0.00088920, 7.26375128, 0.99556082, 0.99765955, 0.49269281],2166 [ -6.26522543, -0.00145058, 0.00088879, 7.26377485, 0.99556289, 0.99766063, 0.49269370],2167 [ -6.26524824, -0.00144991, 0.00088838, 7.26379834, 0.99556496, 0.99766171, 0.49269460],2168 [ -6.26527098, -0.00144924, 0.00088797, 7.26382174, 0.99556703, 0.99766280, 0.49269550],2169 [ -6.26529363, -0.00144856, 0.00088756, 7.26384506, 0.99556910, 0.99766388, 0.49269640],2170 [ -6.26531619, -0.00144789, 0.00088715, 7.26386830, 0.99557116, 0.99766496, 0.49269728],2171 [ -6.26533868, -0.00144722, 0.00088674, 7.26389146, 0.99557323, 0.99766604, 0.49269817],2172 [ -6.26536109, -0.00144655, 0.00088634, 7.26391454, 0.99557529, 0.99766711, 0.49269905],2173 [ -6.26538341, -0.00144588, 0.00088593, 7.26393753, 0.99557735, 0.99766819, 0.49269994],2174 [ -6.26540566, -0.00144521, 0.00088552, 7.26396045, 0.99557940, 0.99766927, 0.49270083],2175 [ -6.26542783, -0.00144454, 0.00088511, 7.26398329, 0.99558146, 0.99767034, 0.49270168],2176 [ -6.26544992, -0.00144387, 0.00088471, 7.26400604, 0.99558351, 0.99767142, 0.49270256],2177 [ -6.26547192, -0.00144321, 0.00088430, 7.26402872, 0.99558556, 0.99767249, 0.49270344],2178 [ -6.26549385, -0.00144254, 0.00088390, 7.26405131, 0.99558761, 0.99767356, 0.49270431],2179 [ -6.26551570, -0.00144187, 0.00088349, 7.26407383, 0.99558966, 0.99767463, 0.49270518],2180 [ -6.26553748, -0.00144121, 0.00088309, 7.26409627, 0.99559171, 0.99767571, 0.49270604],2181 [ -6.26555917, -0.00144054, 0.00088268, 7.26411863, 0.99559375, 0.99767678, 0.49270690],2182 [ -6.26558079, -0.00143988, 0.00088228, 7.26414091, 0.99559579, 0.99767784, 0.49270776],2183 [ -6.26560233, -0.00143922, 0.00088187, 7.26416311, 0.99559783, 0.99767891, 0.49270862],2184 [ -6.26562379, -0.00143855, 0.00088147, 7.26418524, 0.99559987, 0.99767998, 0.49270947],2185 [ -6.26564518, -0.00143789, 0.00088107, 7.26420729, 0.99560191, 0.99768104, 0.49271032],2186 [ -6.26566648, -0.00143723, 0.00088066, 7.26422926, 0.99560394, 0.99768211, 0.49271118],2187 [ -6.26568772, -0.00143657, 0.00088026, 7.26425115, 0.99560598, 0.99768317, 0.49271202],2188 [ -6.26570887, -0.00143590, 0.00087986, 7.26427297, 0.99560801, 0.99768424, 0.49271286],2189 [ -6.26572995, -0.00143524, 0.00087946, 7.26429471, 0.99561004, 0.99768530, 0.49271371],2190 [ -6.26575096, -0.00143458, 0.00087906, 7.26431637, 0.99561206, 0.99768636, 0.49271455],2191 [ -6.26577189, -0.00143393, 0.00087865, 7.26433796, 0.99561409, 0.99768742, 0.49271537],2192 [ -6.26579274, -0.00143327, 0.00087825, 7.26435948, 0.99561611, 0.99768848, 0.49271621],2193 [ -6.26581352, -0.00143261, 0.00087785, 7.26438092, 0.99561813, 0.99768954, 0.49271704],2194 [ -6.26583423, -0.00143195, 0.00087745, 7.26440228, 0.99562015, 0.99769059, 0.49271787],2195 [ -6.26585486, -0.00143130, 0.00087705, 7.26442357, 0.99562217, 0.99769165, 0.49271871],2196 [ -6.26587542, -0.00143064, 0.00087665, 7.26444478, 0.99562419, 0.99769271, 0.49271954],2197 [ -6.26589591, -0.00142998, 0.00087626, 7.26446592, 0.99562620, 0.99769376, 0.49272035],2198 [ -6.26591632, -0.00142933, 0.00087586, 7.26448699, 0.99562822, 0.99769482, 0.49272117],2199 [ -6.26593666, -0.00142867, 0.00087546, 7.26450798, 0.99563023, 0.99769587, 0.49272198],2200 [ -6.26595692, -0.00142802, 0.00087506, 7.26452890, 0.99563224, 0.99769692, 0.49272279],2201 [ -6.26597711, -0.00142737, 0.00087466, 7.26454975, 0.99563424, 0.99769797, 0.49272362],2202 [ -6.26599724, -0.00142671, 0.00087426, 7.26457052, 0.99563625, 0.99769902, 0.49272441],2203 [ -6.26601728, -0.00142606, 0.00087387, 7.26459122, 0.99563825, 0.99770007, 0.49272522],2204 [ -6.26603726, -0.00142541, 0.00087347, 7.26461185, 0.99564025, 0.99770112, 0.49272604],2205 [ -6.26605717, -0.00142476, 0.00087307, 7.26463241, 0.99564225, 0.99770217, 0.49272683],2206 [ -6.26607700, -0.00142411, 0.00087268, 7.26465289, 0.99564425, 0.99770321, 0.49272764],2207 [ -6.26609676, -0.00142346, 0.00087228, 7.26467331, 0.99564625, 0.99770426, 0.49272843],2208 [ -6.26611646, -0.00142281, 0.00087189, 7.26469365, 0.99564824, 0.99770530, 0.49272921],2209 [ -6.26613608, -0.00142216, 0.00087149, 7.26471392, 0.99565024, 0.99770635, 0.49273003],2210 [ -6.26615563, -0.00142151, 0.00087110, 7.26473412, 0.99565223, 0.99770739, 0.49273081],2211 [ -6.26617512, -0.00142087, 0.00087070, 7.26475425, 0.99565422, 0.99770843, 0.49273160],2212 [ -6.26619453, -0.00142022, 0.00087031, 7.26477431, 0.99565620, 0.99770947, 0.49273238],2213 [ -6.26621387, -0.00141957, 0.00086992, 7.26479430, 0.99565819, 0.99771051, 0.49273317],2214 [ -6.26623315, -0.00141893, 0.00086952, 7.26481422, 0.99566017, 0.99771155, 0.49273396],2215 [ -6.26625235, -0.00141828, 0.00086913, 7.26483407, 0.99566216, 0.99771259, 0.49273473],2216 [ -6.26627149, -0.00141764, 0.00086874, 7.26485385, 0.99566414, 0.99771362, 0.49273551],2217 [ -6.26629056, -0.00141699, 0.00086835, 7.26487356, 0.99566612, 0.99771466, 0.49273628],2218 [ -6.26630956, -0.00141635, 0.00086795, 7.26489321, 0.99566809, 0.99771570, 0.49273706],2219 [ -6.26632849, -0.00141571, 0.00086756, 7.26491278, 0.99567007, 0.99771673, 0.49273783],2220 [ -6.26634735, -0.00141506, 0.00086717, 7.26493229, 0.99567204, 0.99771776, 0.49273859],2221 [ -6.26636615, -0.00141442, 0.00086678, 7.26495173, 0.99567401, 0.99771880, 0.49273935],2222 [ -6.26638488, -0.00141378, 0.00086639, 7.26497110, 0.99567598, 0.99771983, 0.49274013],2223 [ -6.26640355, -0.00141314, 0.00086600, 7.26499041, 0.99567795, 0.99772086, 0.49274089],2224 [ -6.26642214, -0.00141250, 0.00086561, 7.26500964, 0.99567992, 0.99772189, 0.49274164],2225 [ -6.26644067, -0.00141186, 0.00086522, 7.26502881, 0.99568188, 0.99772292, 0.49274241],2226 [ -6.26645914, -0.00141122, 0.00086483, 7.26504792, 0.99568384, 0.99772395, 0.49274316],2227 [ -6.26647754, -0.00141058, 0.00086444, 7.26506695, 0.99568580, 0.99772497, 0.49274392],2228 [ -6.26649587, -0.00140995, 0.00086405, 7.26508592, 0.99568776, 0.99772600, 0.49274466],2229 [ -6.26651414, -0.00140931, 0.00086366, 7.26510483, 0.99568972, 0.99772703, 0.49274542],2230 [ -6.26653234, -0.00140867, 0.00086328, 7.26512367, 0.99569168, 0.99772805, 0.49274618],2231 [ -6.26655048, -0.00140804, 0.00086289, 7.26514244, 0.99569363, 0.99772908, 0.49274690],2232 [ -6.26656855, -0.00140740, 0.00086250, 7.26516115, 0.99569558, 0.99773010, 0.49274765],2233 [ -6.26658656, -0.00140677, 0.00086211, 7.26517979, 0.99569753, 0.99773112, 0.49274839],2234 [ -6.26660450, -0.00140613, 0.00086173, 7.26519837, 0.99569948, 0.99773214, 0.49274912],2235 [ -6.26662238, -0.00140550, 0.00086134, 7.26521688, 0.99570143, 0.99773316, 0.49274986],2236 [ -6.26664020, -0.00140486, 0.00086096, 7.26523533, 0.99570337, 0.99773418, 0.49275059],2237 [ -6.26665795, -0.00140423, 0.00086057, 7.26525372, 0.99570532, 0.99773520, 0.49275132],2238 [ -6.26667564, -0.00140360, 0.00086018, 7.26527204, 0.99570726, 0.99773622, 0.49275206],2239 [ -6.26669326, -0.00140297, 0.00085980, 7.26529030, 0.99570920, 0.99773723, 0.49275276],2240 [ -6.26671083, -0.00140234, 0.00085942, 7.26530849, 0.99571114, 0.99773825, 0.49275350],2241 [ -6.26672833, -0.00140171, 0.00085903, 7.26532662, 0.99571307, 0.99773926, 0.49275423],2242 [ -6.26674577, -0.00140108, 0.00085865, 7.26534469, 0.99571501, 0.99774028, 0.49275495],2243 [ -6.26676314, -0.00140045, 0.00085826, 7.26536270, 0.99571694, 0.99774129, 0.49275567],2244 [ -6.26678046, -0.00139982, 0.00085788, 7.26538064, 0.99571887, 0.99774230, 0.49275639],2245 [ -6.26679771, -0.00139919, 0.00085750, 7.26539852, 0.99572080, 0.99774331, 0.49275711],2246 [ -6.26681490, -0.00139856, 0.00085711, 7.26541634, 0.99572273, 0.99774433, 0.49275782],2247 [ -6.26683203, -0.00139793, 0.00085673, 7.26543410, 0.99572466, 0.99774533, 0.49275852],2248 [ -6.26684910, -0.00139731, 0.00085635, 7.26545179, 0.99572658, 0.99774634, 0.49275924],2249 [ -6.26686611, -0.00139668, 0.00085597, 7.26546943, 0.99572851, 0.99774735, 0.49275995],2250 [ -6.26688306, -0.00139605, 0.00085559, 7.26548700, 0.99573043, 0.99774836, 0.49276065],2251 [ -6.26689994, -0.00139543, 0.00085521, 7.26550451, 0.99573235, 0.99774936, 0.49276134],2252 [ -6.26691677, -0.00139481, 0.00085482, 7.26552196, 0.99573426, 0.99775037, 0.49276204],2253 [ -6.26693354, -0.00139418, 0.00085444, 7.26553936, 0.99573618, 0.99775137, 0.49276274],2254 [ -6.26695024, -0.00139356, 0.00085406, 7.26555669, 0.99573809, 0.99775238, 0.49276344],2255 [ -6.26696689, -0.00139293, 0.00085368, 7.26557396, 0.99574001, 0.99775338, 0.49276413],2256 [ -6.26698348, -0.00139231, 0.00085331, 7.26559117, 0.99574192, 0.99775438, 0.49276484],2257 [ -6.26700001, -0.00139169, 0.00085293, 7.26560832, 0.99574383, 0.99775538, 0.49276553],2258 [ -6.26701648, -0.00139107, 0.00085255, 7.26562541, 0.99574574, 0.99775638, 0.49276621],2259 [ -6.26703289, -0.00139045, 0.00085217, 7.26564245, 0.99574764, 0.99775738, 0.49276691],2260 [ -6.26704925, -0.00138983, 0.00085179, 7.26565942, 0.99574955, 0.99775838, 0.49276759],2261 [ -6.26706554, -0.00138921, 0.00085141, 7.26567633, 0.99575145, 0.99775938, 0.49276826],2262 [ -6.26708178, -0.00138859, 0.00085104, 7.26569319, 0.99575335, 0.99776038, 0.49276895],2263 [ -6.26709796, -0.00138797, 0.00085066, 7.26570999, 0.99575525, 0.99776137, 0.49276963],2264 [ -6.26711408, -0.00138735, 0.00085028, 7.26572673, 0.99575715, 0.99776237, 0.49277030],2265 [ -6.26713015, -0.00138674, 0.00084990, 7.26574341, 0.99575904, 0.99776336, 0.49277097],2266 [ -6.26714616, -0.00138612, 0.00084953, 7.26576004, 0.99576094, 0.99776435, 0.49277165],2267 [ -6.26716211, -0.00138550, 0.00084915, 7.26577661, 0.99576283, 0.99776535, 0.49277232],2268 [ -6.26717800, -0.00138489, 0.00084878, 7.26579312, 0.99576472, 0.99776634, 0.49277298],2269 [ -6.26719384, -0.00138427, 0.00084840, 7.26580957, 0.99576661, 0.99776733, 0.49277366],2270 [ -6.26720962, -0.00138366, 0.00084803, 7.26582597, 0.99576850, 0.99776832, 0.49277432],2271 [ -6.26722535, -0.00138304, 0.00084765, 7.26584231, 0.99577038, 0.99776931, 0.49277499],2272 [ -6.26724102, -0.00138243, 0.00084728, 7.26585859, 0.99577227, 0.99777029, 0.49277565],2273 [ -6.26725663, -0.00138181, 0.00084690, 7.26587482, 0.99577415, 0.99777128, 0.49277630],2274 [ -6.26727219, -0.00138120, 0.00084653, 7.26589099, 0.99577603, 0.99777227, 0.49277698],2275 [ -6.26728769, -0.00138059, 0.00084616, 7.26590710, 0.99577791, 0.99777325, 0.49277763],2276 [ -6.26730314, -0.00137998, 0.00084578, 7.26592316, 0.99577979, 0.99777424, 0.49277828],2277 [ -6.26731854, -0.00137937, 0.00084541, 7.26593917, 0.99578166, 0.99777522, 0.49277893],2278 [ -6.26733388, -0.00137876, 0.00084504, 7.26595512, 0.99578354, 0.99777621, 0.49277959],2279 [ -6.26734916, -0.00137815, 0.00084467, 7.26597101, 0.99578541, 0.99777719, 0.49278024],2280 [ -6.26736439, -0.00137754, 0.00084429, 7.26598685, 0.99578728, 0.99777817, 0.49278088],2281 [ -6.26737957, -0.00137693, 0.00084392, 7.26600264, 0.99578915, 0.99777915, 0.49278153],2282 [ -6.26739469, -0.00137632, 0.00084355, 7.26601837, 0.99579102, 0.99778013, 0.49278219],2283 [ -6.26740976, -0.00137571, 0.00084318, 7.26603405, 0.99579289, 0.99778111, 0.49278281],2284 [ -6.26742477, -0.00137510, 0.00084281, 7.26604967, 0.99579475, 0.99778209, 0.49278347],2285 [ -6.26743974, -0.00137450, 0.00084244, 7.26606524, 0.99579661, 0.99778306, 0.49278410],2286 [ -6.26745464, -0.00137389, 0.00084207, 7.26608075, 0.99579847, 0.99778404, 0.49278472],2287 [ -6.26746950, -0.00137328, 0.00084170, 7.26609622, 0.99580033, 0.99778502, 0.49278536],2288 [ -6.26748430, -0.00137268, 0.00084133, 7.26611162, 0.99580219, 0.99778599, 0.49278600],2289 [ -6.26749906, -0.00137207, 0.00084096, 7.26612698, 0.99580405, 0.99778696, 0.49278663],2290 [ -6.26751375, -0.00137147, 0.00084059, 7.26614228, 0.99580590, 0.99778794, 0.49278724],2291 [ -6.26752840, -0.00137087, 0.00084022, 7.26615753, 0.99580776, 0.99778891, 0.49278789],2292 [ -6.26754300, -0.00137026, 0.00083986, 7.26617273, 0.99580961, 0.99778988, 0.49278852],2293 [ -6.26755754, -0.00136966, 0.00083949, 7.26618788, 0.99581146, 0.99779085, 0.49278914],2294 [ -6.26757203, -0.00136906, 0.00083912, 7.26620297, 0.99581331, 0.99779182, 0.49278975],2295 [ -6.26758647, -0.00136846, 0.00083875, 7.26621801, 0.99581515, 0.99779279, 0.49279037],2296 [ -6.26760086, -0.00136786, 0.00083839, 7.26623300, 0.99581700, 0.99779376, 0.49279099],2297 [ -6.26761520, -0.00136725, 0.00083802, 7.26624794, 0.99581884, 0.99779472, 0.49279161],2298 [ -6.26762949, -0.00136665, 0.00083765, 7.26626283, 0.99582068, 0.99779569, 0.49279223],2299 [ -6.26764372, -0.00136605, 0.00083729, 7.26627767, 0.99582252, 0.99779666, 0.49279284],2300 [ -6.26765791, -0.00136546, 0.00083692, 7.26629245, 0.99582436, 0.99779762, 0.49279345],2301 [ -6.26767205, -0.00136486, 0.00083656, 7.26630719, 0.99582620, 0.99779859, 0.49279407],2302 [ -6.26768613, -0.00136426, 0.00083619, 7.26632187, 0.99582804, 0.99779955, 0.49279468],2303 [ -6.26770017, -0.00136366, 0.00083583, 7.26633651, 0.99582987, 0.99780051, 0.49279528],2304 [ -6.26771416, -0.00136306, 0.00083546, 7.26635109, 0.99583170, 0.99780147, 0.49279588],2305 [ -6.26772809, -0.00136247, 0.00083510, 7.26636562, 0.99583353, 0.99780243, 0.49279649],2306 [ -6.26774198, -0.00136187, 0.00083474, 7.26638011, 0.99583536, 0.99780339, 0.49279710],2307 [ -6.26775582, -0.00136128, 0.00083437, 7.26639454, 0.99583719, 0.99780435, 0.49279770],2308 [ -6.26776961, -0.00136068, 0.00083401, 7.26640893, 0.99583902, 0.99780531, 0.49279829],2309 [ -6.26778335, -0.00136009, 0.00083365, 7.26642326, 0.99584084, 0.99780627, 0.49279888],2310 [ -6.26779704, -0.00135949, 0.00083328, 7.26643755, 0.99584266, 0.99780722, 0.49279946],2311 [ -6.26781069, -0.00135890, 0.00083292, 7.26645179, 0.99584449, 0.99780818, 0.49280008],2312 [ -6.26782428, -0.00135831, 0.00083256, 7.26646598, 0.99584631, 0.99780913, 0.49280067],2313 [ -6.26783783, -0.00135771, 0.00083220, 7.26648012, 0.99584812, 0.99781009, 0.49280125],2314 [ -6.26785133, -0.00135712, 0.00083184, 7.26649421, 0.99584994, 0.99781104, 0.49280185],2315 [ -6.26786479, -0.00135653, 0.00083148, 7.26650826, 0.99585175, 0.99781199, 0.49280244],2316 [ -6.26787819, -0.00135594, 0.00083111, 7.26652225, 0.99585357, 0.99781295, 0.49280301],2317 [ -6.26789155, -0.00135535, 0.00083075, 7.26653620, 0.99585538, 0.99781390, 0.49280360],2318 [ -6.26790486, -0.00135476, 0.00083039, 7.26655010, 0.99585719, 0.99781485, 0.49280419],2319 [ -6.26791812, -0.00135417, 0.00083003, 7.26656395, 0.99585900, 0.99781580, 0.49280476],2320 [ -6.26793134, -0.00135358, 0.00082967, 7.26657776, 0.99586081, 0.99781675, 0.49280534],2321 [ -6.26794451, -0.00135299, 0.00082931, 7.26659152, 0.99586261, 0.99781769, 0.49280594],2322 [ -6.26795764, -0.00135240, 0.00082896, 7.26660523, 0.99586442, 0.99781864, 0.49280650],2323 [ -6.26797071, -0.00135182, 0.00082860, 7.26661890, 0.99586622, 0.99781959, 0.49280708],2324 [ -6.26798374, -0.00135123, 0.00082824, 7.26663252, 0.99586802, 0.99782053, 0.49280764],2325 [ -6.26799673, -0.00135064, 0.00082788, 7.26664609, 0.99586982, 0.99782148, 0.49280822],2326 [ -6.26800967, -0.00135006, 0.00082752, 7.26665961, 0.99587162, 0.99782242, 0.49280878],2327 [ -6.26802256, -0.00134947, 0.00082717, 7.26667309, 0.99587341, 0.99782336, 0.49280935],2328 [ -6.26803541, -0.00134889, 0.00082681, 7.26668653, 0.99587521, 0.99782431, 0.49280992],2329 [ -6.26804822, -0.00134830, 0.00082645, 7.26669991, 0.99587700, 0.99782525, 0.49281048],2330 [ -6.26806098, -0.00134772, 0.00082609, 7.26671326, 0.99587879, 0.99782619, 0.49281107],2331 [ -6.26807369, -0.00134713, 0.00082574, 7.26672655, 0.99588058, 0.99782713, 0.49281162],2332 [ -6.26808636, -0.00134655, 0.00082538, 7.26673981, 0.99588237, 0.99782807, 0.49281218],2333 [ -6.26809898, -0.00134597, 0.00082503, 7.26675301, 0.99588416, 0.99782900, 0.49281274],2334 [ -6.26811156, -0.00134539, 0.00082467, 7.26676617, 0.99588595, 0.99782994, 0.49281329],2335 [ -6.26812410, -0.00134481, 0.00082432, 7.26677929, 0.99588773, 0.99783088, 0.49281384],2336 [ -6.26813659, -0.00134422, 0.00082396, 7.26679236, 0.99588951, 0.99783181, 0.49281439],2337 [ -6.26814904, -0.00134364, 0.00082361, 7.26680539, 0.99589129, 0.99783275, 0.49281496],2338 [ -6.26816144, -0.00134306, 0.00082325, 7.26681838, 0.99589307, 0.99783368, 0.49281552],2339 [ -6.26817380, -0.00134248, 0.00082290, 7.26683132, 0.99589485, 0.99783462, 0.49281605],2340 [ -6.26818612, -0.00134191, 0.00082255, 7.26684421, 0.99589663, 0.99783555, 0.49281661],2341 [ -6.26819839, -0.00134133, 0.00082219, 7.26685706, 0.99589840, 0.99783648, 0.49281716],2342 [ -6.26821062, -0.00134075, 0.00082184, 7.26686987, 0.99590018, 0.99783741, 0.49281769],2343 [ -6.26822281, -0.00134017, 0.00082149, 7.26688264, 0.99590195, 0.99783834, 0.49281824],2344 [ -6.26823495, -0.00133959, 0.00082113, 7.26689536, 0.99590372, 0.99783927, 0.49281878],2345 [ -6.26824705, -0.00133902, 0.00082078, 7.26690804, 0.99590549, 0.99784020, 0.49281933],2346 [ -6.26825911, -0.00133844, 0.00082043, 7.26692067, 0.99590725, 0.99784113, 0.49281987],2347 [ -6.26827113, -0.00133787, 0.00082008, 7.26693326, 0.99590902, 0.99784206, 0.49282040],2348 [ -6.26828310, -0.00133729, 0.00081973, 7.26694581, 0.99591078, 0.99784298, 0.49282094],2349 [ -6.26829504, -0.00133672, 0.00081938, 7.26695832, 0.99591255, 0.99784391, 0.49282147],2350 [ -6.26830693, -0.00133614, 0.00081902, 7.26697079, 0.99591431, 0.99784483, 0.49282201],2351 [ -6.26831878, -0.00133557, 0.00081867, 7.26698321, 0.99591607, 0.99784576, 0.49282254],2352 [ -6.26833058, -0.00133499, 0.00081832, 7.26699559, 0.99591783, 0.99784668, 0.49282308],2353 [ -6.26834235, -0.00133442, 0.00081797, 7.26700793, 0.99591958, 0.99784760, 0.49282360],2354 [ -6.26835407, -0.00133385, 0.00081762, 7.26702023, 0.99592134, 0.99784853, 0.49282414],2355 [ -6.26836576, -0.00133328, 0.00081728, 7.26703248, 0.99592309, 0.99784945, 0.49282465],2356 [ -6.26837740, -0.00133271, 0.00081693, 7.26704469, 0.99592485, 0.99785037, 0.49282520],2357 [ -6.26838900, -0.00133214, 0.00081658, 7.26705687, 0.99592660, 0.99785129, 0.49282572],2358 [ -6.26840056, -0.00133157, 0.00081623, 7.26706900, 0.99592835, 0.99785221, 0.49282624],2359 [ -6.26841209, -0.00133100, 0.00081588, 7.26708109, 0.99593009, 0.99785312, 0.49282676],2360 [ -6.26842357, -0.00133043, 0.00081553, 7.26709314, 0.99593184, 0.99785404, 0.49282728],2361 [ -6.26843501, -0.00132986, 0.00081519, 7.26710515, 0.99593359, 0.99785496, 0.49282780],2362 [ -6.26844641, -0.00132929, 0.00081484, 7.26711712, 0.99593533, 0.99785587, 0.49282829],2363 [ -6.26845777, -0.00132872, 0.00081449, 7.26712905, 0.99593707, 0.99785679, 0.49282883],2364 [ -6.26846909, -0.00132815, 0.00081414, 7.26714093, 0.99593881, 0.99785770, 0.49282934],2365 [ -6.26848037, -0.00132759, 0.00081380, 7.26715278, 0.99594055, 0.99785862, 0.49282986],2366 [ -6.26849161, -0.00132702, 0.00081345, 7.26716459, 0.99594229, 0.99785953, 0.49283037],2367 [ -6.26850281, -0.00132645, 0.00081311, 7.26717636, 0.99594402, 0.99786044, 0.49283087],2368 [ -6.26851397, -0.00132589, 0.00081276, 7.26718809, 0.99594576, 0.99786135, 0.49283138],2369 [ -6.26852510, -0.00132532, 0.00081242, 7.26719977, 0.99594749, 0.99786226, 0.49283189],2370 [ -6.26853618, -0.00132476, 0.00081207, 7.26721142, 0.99594922, 0.99786317, 0.49283239],2371 [ -6.26854723, -0.00132419, 0.00081173, 7.26722303, 0.99595095, 0.99786408, 0.49283291],2372 [ -6.26855824, -0.00132363, 0.00081138, 7.26723461, 0.99595268, 0.99786499, 0.49283341],2373 [ -6.26856921, -0.00132307, 0.00081104, 7.26724614, 0.99595441, 0.99786590, 0.49283391],2374 [ -6.26858014, -0.00132251, 0.00081069, 7.26725763, 0.99595614, 0.99786680, 0.49283441],2375 [ -6.26859103, -0.00132194, 0.00081035, 7.26726909, 0.99595786, 0.99786771, 0.49283490],2376 [ -6.26860188, -0.00132138, 0.00081001, 7.26728050, 0.99595958, 0.99786861, 0.49283543],2377 [ -6.26861270, -0.00132082, 0.00080966, 7.26729188, 0.99596131, 0.99786952, 0.49283590],2378 [ -6.26862348, -0.00132026, 0.00080932, 7.26730322, 0.99596303, 0.99787042, 0.49283641],2379 [ -6.26863422, -0.00131970, 0.00080898, 7.26731452, 0.99596474, 0.99787132, 0.49283690],2380 [ -6.26864493, -0.00131914, 0.00080864, 7.26732579, 0.99596646, 0.99787223, 0.49283740],2381 [ -6.26865559, -0.00131858, 0.00080829, 7.26733701, 0.99596818, 0.99787313, 0.49283789],2382 [ -6.26866622, -0.00131802, 0.00080795, 7.26734820, 0.99596989, 0.99787403, 0.49283838],2383 [ -6.26867681, -0.00131746, 0.00080761, 7.26735935, 0.99597160, 0.99787493, 0.49283886],2384 [ -6.26868737, -0.00131690, 0.00080727, 7.26737047, 0.99597332, 0.99787583, 0.49283935],2385 [ -6.26869789, -0.00131635, 0.00080693, 7.26738154, 0.99597503, 0.99787673, 0.49283983],2386 [ -6.26870837, -0.00131579, 0.00080659, 7.26739258, 0.99597673, 0.99787762, 0.49284032],2387 [ -6.26871882, -0.00131523, 0.00080625, 7.26740358, 0.99597844, 0.99787852, 0.49284083],2388 [ -6.26872923, -0.00131468, 0.00080591, 7.26741455, 0.99598015, 0.99787942, 0.49284129],2389 [ -6.26873960, -0.00131412, 0.00080557, 7.26742548, 0.99598185, 0.99788031, 0.49284178],2390 [ -6.26874993, -0.00131357, 0.00080523, 7.26743637, 0.99598355, 0.99788121, 0.49284226],2391 [ -6.26876024, -0.00131301, 0.00080489, 7.26744723, 0.99598526, 0.99788210, 0.49284273],2392 [ -6.26877050, -0.00131246, 0.00080455, 7.26745804, 0.99598696, 0.99788299, 0.49284320],2393 [ -6.26878073, -0.00131190, 0.00080421, 7.26746883, 0.99598865, 0.99788389, 0.49284369],2394 [ -6.26879092, -0.00131135, 0.00080387, 7.26747958, 0.99599035, 0.99788478, 0.49284417],2395 [ -6.26880108, -0.00131080, 0.00080354, 7.26749029, 0.99599205, 0.99788567, 0.49284465],2396 [ -6.26881120, -0.00131024, 0.00080320, 7.26750096, 0.99599374, 0.99788656, 0.49284510],2397 [ -6.26882129, -0.00130969, 0.00080286, 7.26751160, 0.99599543, 0.99788745, 0.49284559],2398 [ -6.26883135, -0.00130914, 0.00080252, 7.26752221, 0.99599713, 0.99788834, 0.49284606],2399 [ -6.26884136, -0.00130859, 0.00080219, 7.26753278, 0.99599882, 0.99788923, 0.49284653],2400 [ -6.26885135, -0.00130804, 0.00080185, 7.26754331, 0.99600050, 0.99789011, 0.49284699],2401 [ -6.26886129, -0.00130749, 0.00080151, 7.26755381, 0.99600219, 0.99789100, 0.49284746],2402 [ -6.26887121, -0.00130694, 0.00080118, 7.26756427, 0.99600388, 0.99789189, 0.49284793],2403 [ -6.26888109, -0.00130639, 0.00080084, 7.26757470, 0.99600556, 0.99789277, 0.49284838],2404 [ -6.26889093, -0.00130584, 0.00080051, 7.26758509, 0.99600724, 0.99789365, 0.49284885],2405 [ -6.26890074, -0.00130529, 0.00080017, 7.26759545, 0.99600893, 0.99789454, 0.49284932],2406 [ -6.26891052, -0.00130474, 0.00079984, 7.26760578, 0.99601061, 0.99789542, 0.49284977],2407 [ -6.26892026, -0.00130420, 0.00079950, 7.26761607, 0.99601228, 0.99789630, 0.49285024],2408 [ -6.26892997, -0.00130365, 0.00079917, 7.26762633, 0.99601396, 0.99789719, 0.49285069],2409 [ -6.26893965, -0.00130310, 0.00079883, 7.26763655, 0.99601564, 0.99789807, 0.49285114],2410 [ -6.26894929, -0.00130256, 0.00079850, 7.26764674, 0.99601731, 0.99789895, 0.49285162],2411 [ -6.26895890, -0.00130201, 0.00079816, 7.26765689, 0.99601899, 0.99789983, 0.49285206],2412 [ -6.26896848, -0.00130146, 0.00079783, 7.26766701, 0.99602066, 0.99790070, 0.49285251],2413 [ -6.26897802, -0.00130092, 0.00079750, 7.26767710, 0.99602233, 0.99790158, 0.49285297],2414 [ -6.26898753, -0.00130038, 0.00079717, 7.26768715, 0.99602400, 0.99790246, 0.49285344],2415 [ -6.26899700, -0.00129983, 0.00079683, 7.26769717, 0.99602566, 0.99790334, 0.49285388],2416 [ -6.26900645, -0.00129929, 0.00079650, 7.26770716, 0.99602733, 0.99790421, 0.49285432],2417 [ -6.26901586, -0.00129875, 0.00079617, 7.26771711, 0.99602900, 0.99790509, 0.49285477],2418 [ -6.26902524, -0.00129820, 0.00079584, 7.26772703, 0.99603066, 0.99790596, 0.49285523],2419 [ -6.26903458, -0.00129766, 0.00079550, 7.26773692, 0.99603232, 0.99790683, 0.49285566],2420 [ -6.26904390, -0.00129712, 0.00079517, 7.26774678, 0.99603398, 0.99790771, 0.49285611],2421 [ -6.26905318, -0.00129658, 0.00079484, 7.26775660, 0.99603564, 0.99790858, 0.49285655],2422 [ -6.26906243, -0.00129604, 0.00079451, 7.26776639, 0.99603730, 0.99790945, 0.49285701],2423 [ -6.26907164, -0.00129550, 0.00079418, 7.26777615, 0.99603896, 0.99791032, 0.49285743],2424 [ -6.26908083, -0.00129496, 0.00079385, 7.26778587, 0.99604061, 0.99791119, 0.49285787],2425 [ -6.26908998, -0.00129442, 0.00079352, 7.26779557, 0.99604227, 0.99791206, 0.49285833],2426 [ -6.26909911, -0.00129388, 0.00079319, 7.26780523, 0.99604392, 0.99791293, 0.49285876],2427 [ -6.26910820, -0.00129334, 0.00079286, 7.26781486, 0.99604557, 0.99791380, 0.49285921],2428 [ -6.26911726, -0.00129280, 0.00079253, 7.26782446, 0.99604722, 0.99791467, 0.49285963],2429 [ -6.26912629, -0.00129226, 0.00079220, 7.26783402, 0.99604887, 0.99791553, 0.49286007],2430 [ -6.26913528, -0.00129173, 0.00079188, 7.26784356, 0.99605051, 0.99791640, 0.49286049],2431 [ -6.26914425, -0.00129119, 0.00079155, 7.26785306, 0.99605216, 0.99791726, 0.49286093],2432 [ -6.26915318, -0.00129065, 0.00079122, 7.26786253, 0.99605380, 0.99791813, 0.49286138],2433 [ -6.26916209, -0.00129012, 0.00079089, 7.26787197, 0.99605545, 0.99791899, 0.49286178],2434 [ -6.26917096, -0.00128958, 0.00079056, 7.26788138, 0.99605709, 0.99791985, 0.49286223],2435 [ -6.26917981, -0.00128905, 0.00079024, 7.26789076, 0.99605873, 0.99792072, 0.49286266],2436 [ -6.26918862, -0.00128851, 0.00078991, 7.26790011, 0.99606037, 0.99792158, 0.49286308],2437 [ -6.26919740, -0.00128798, 0.00078958, 7.26790942, 0.99606201, 0.99792244, 0.49286350],2438 [ -6.26920615, -0.00128744, 0.00078926, 7.26791871, 0.99606364, 0.99792330, 0.49286392],2439 [ -6.26921488, -0.00128691, 0.00078893, 7.26792797, 0.99606528, 0.99792416, 0.49286436],2440 [ -6.26922357, -0.00128638, 0.00078860, 7.26793719, 0.99606691, 0.99792502, 0.49286478],2441 [ -6.26923223, -0.00128585, 0.00078828, 7.26794639, 0.99606854, 0.99792588, 0.49286521],2442 [ -6.26924086, -0.00128531, 0.00078795, 7.26795555, 0.99607017, 0.99792673, 0.49286564],2443 [ -6.26924947, -0.00128478, 0.00078763, 7.26796468, 0.99607180, 0.99792759, 0.49286605],2444 [ -6.26925804, -0.00128425, 0.00078730, 7.26797379, 0.99607343, 0.99792845, 0.49286646],2445 [ -6.26926658, -0.00128372, 0.00078698, 7.26798286, 0.99607506, 0.99792930, 0.49286689],2446 [ -6.26927510, -0.00128319, 0.00078665, 7.26799191, 0.99607668, 0.99793016, 0.49286730],2447 [ -6.26928358, -0.00128266, 0.00078633, 7.26800092, 0.99607831, 0.99793101, 0.49286770],2448 [ -6.26929204, -0.00128213, 0.00078601, 7.26800991, 0.99607993, 0.99793186, 0.49286812],2449 [ -6.26930047, -0.00128160, 0.00078568, 7.26801887, 0.99608155, 0.99793272, 0.49286854],2450 [ -6.26930887, -0.00128107, 0.00078536, 7.26802779, 0.99608317, 0.99793357, 0.49286895],2451 [ -6.26931724, -0.00128054, 0.00078504, 7.26803669, 0.99608479, 0.99793442, 0.49286937],2452 [ -6.26932558, -0.00128002, 0.00078471, 7.26804556, 0.99608641, 0.99793527, 0.49286977],2453 [ -6.26933389, -0.00127949, 0.00078439, 7.26805440, 0.99608802, 0.99793612, 0.49287019],2454 [ -6.26934217, -0.00127896, 0.00078407, 7.26806321, 0.99608964, 0.99793697, 0.49287058],2455 [ -6.26935043, -0.00127844, 0.00078375, 7.26807199, 0.99609125, 0.99793782, 0.49287100],2456 [ -6.26935866, -0.00127791, 0.00078342, 7.26808075, 0.99609287, 0.99793867, 0.49287142],2457 [ -6.26936686, -0.00127738, 0.00078310, 7.26808947, 0.99609448, 0.99793951, 0.49287182],2458 [ -6.26937503, -0.00127686, 0.00078278, 7.26809817, 0.99609609, 0.99794036, 0.49287224],2459 [ -6.26938317, -0.00127634, 0.00078246, 7.26810683, 0.99609769, 0.99794120, 0.49287263],2460 [ -6.26939129, -0.00127581, 0.00078214, 7.26811547, 0.99609930, 0.99794205, 0.49287302],2461 [ -6.26939937, -0.00127529, 0.00078182, 7.26812409, 0.99610091, 0.99794289, 0.49287345],2462 [ -6.26940743, -0.00127476, 0.00078150, 7.26813267, 0.99610251, 0.99794374, 0.49287384],2463 [ -6.26941547, -0.00127424, 0.00078118, 7.26814123, 0.99610411, 0.99794458, 0.49287423],2464 [ -6.26942347, -0.00127372, 0.00078086, 7.26814975, 0.99610572, 0.99794542, 0.49287464],2465 [ -6.26943145, -0.00127320, 0.00078054, 7.26815825, 0.99610732, 0.99794626, 0.49287504],2466 [ -6.26943940, -0.00127267, 0.00078022, 7.26816673, 0.99610892, 0.99794711, 0.49287543],2467 [ -6.26944732, -0.00127215, 0.00077990, 7.26817517, 0.99611051, 0.99794795, 0.49287581],2468 [ -6.26945522, -0.00127163, 0.00077958, 7.26818359, 0.99611211, 0.99794879, 0.49287621],2469 [ -6.26946309, -0.00127111, 0.00077926, 7.26819198, 0.99611370, 0.99794962, 0.49287661],2470 [ -6.26947093, -0.00127059, 0.00077895, 7.26820034, 0.99611530, 0.99795046, 0.49287701],2471 [ -6.26947875, -0.00127007, 0.00077863, 7.26820868, 0.99611689, 0.99795130, 0.49287739],2472 [ -6.26948654, -0.00126955, 0.00077831, 7.26821698, 0.99611848, 0.99795214, 0.49287779],2473 [ -6.26949430, -0.00126903, 0.00077799, 7.26822527, 0.99612007, 0.99795297, 0.49287817],2474 [ -6.26950204, -0.00126852, 0.00077768, 7.26823352, 0.99612166, 0.99795381, 0.49287857],2475 [ -6.26950975, -0.00126800, 0.00077736, 7.26824175, 0.99612325, 0.99795464, 0.49287896],2476 [ -6.26951743, -0.00126748, 0.00077704, 7.26824995, 0.99612484, 0.99795548, 0.49287934],2477 [ -6.26952509, -0.00126696, 0.00077673, 7.26825813, 0.99612642, 0.99795631, 0.49287973],2478 [ -6.26953272, -0.00126645, 0.00077641, 7.26826627, 0.99612800, 0.99795714, 0.49288012],2479 [ -6.26954033, -0.00126593, 0.00077609, 7.26827440, 0.99612959, 0.99795798, 0.49288050],2480 [ -6.26954791, -0.00126541, 0.00077578, 7.26828249, 0.99613117, 0.99795881, 0.49288087],2481 [ -6.26955546, -0.00126490, 0.00077546, 7.26829056, 0.99613275, 0.99795964, 0.49288126],2482 [ -6.26956299, -0.00126438, 0.00077515, 7.26829860, 0.99613433, 0.99796047, 0.49288164],2483 [ -6.26957049, -0.00126387, 0.00077483, 7.26830662, 0.99613590, 0.99796130, 0.49288203],2484 [ -6.26957797, -0.00126335, 0.00077452, 7.26831461, 0.99613748, 0.99796213, 0.49288240],2485 [ -6.26958542, -0.00126284, 0.00077420, 7.26832258, 0.99613905, 0.99796296, 0.49288278],2486 [ -6.26959285, -0.00126233, 0.00077389, 7.26833052, 0.99614063, 0.99796378, 0.49288317],2487 [ -6.26960025, -0.00126181, 0.00077357, 7.26833844, 0.99614220, 0.99796461, 0.49288354],2488 [ -6.26960763, -0.00126130, 0.00077326, 7.26834632, 0.99614377, 0.99796544, 0.49288392],2489 [ -6.26961498, -0.00126079, 0.00077295, 7.26835419, 0.99614534, 0.99796626, 0.49288432],2490 [ -6.26962230, -0.00126028, 0.00077263, 7.26836203, 0.99614691, 0.99796709, 0.49288467],2491 [ -6.26962961, -0.00125977, 0.00077232, 7.26836984, 0.99614847, 0.99796791, 0.49288504],2492 [ -6.26963688, -0.00125926, 0.00077201, 7.26837763, 0.99615004, 0.99796874, 0.49288540],2493 [ -6.26964414, -0.00125874, 0.00077170, 7.26838539, 0.99615160, 0.99796956, 0.49288580],2494 [ -6.26965137, -0.00125823, 0.00077138, 7.26839313, 0.99615317, 0.99797038, 0.49288618],2495 [ -6.26965857, -0.00125772, 0.00077107, 7.26840084, 0.99615473, 0.99797120, 0.49288651],2496 [ -6.26966575, -0.00125722, 0.00077076, 7.26840853, 0.99615629, 0.99797202, 0.49288691],2497 [ -6.26967290, -0.00125671, 0.00077045, 7.26841620, 0.99615785, 0.99797284, 0.49288729],2498 [ -6.26968003, -0.00125620, 0.00077014, 7.26842384, 0.99615941, 0.99797366, 0.49288765],2499 [ -6.26968714, -0.00125569, 0.00076983, 7.26843145, 0.99616097, 0.99797448, 0.49288801],2500 [ -6.26969422, -0.00125518, 0.00076952, 7.26843904, 0.99616252, 0.99797530, 0.49288835],2501 [ -6.26970128, -0.00125468, 0.00076920, 7.26844661, 0.99616408, 0.99797612, 0.49288872],2502 [ -6.26970832, -0.00125417, 0.00076889, 7.26845415, 0.99616563, 0.99797694, 0.49288910],2503 [ -6.26971533, -0.00125366, 0.00076858, 7.26846167, 0.99616718, 0.99797775, 0.49288946],2504 [ -6.26972232, -0.00125316, 0.00076827, 7.26846916, 0.99616873, 0.99797857, 0.49288983],2505 [ -6.26972928, -0.00125265, 0.00076797, 7.26847663, 0.99617028, 0.99797938, 0.49289019],2506 [ -6.26973622, -0.00125214, 0.00076766, 7.26848408, 0.99617183, 0.99798020, 0.49289056],2507 [ -6.26974314, -0.00125164, 0.00076735, 7.26849150, 0.99617338, 0.99798101, 0.49289092],2508 [ -6.26975003, -0.00125114, 0.00076704, 7.26849890, 0.99617492, 0.99798183, 0.49289126],2509 [ -6.26975691, -0.00125063, 0.00076673, 7.26850627, 0.99617647, 0.99798264, 0.49289162],2510 [ -6.26976375, -0.00125013, 0.00076642, 7.26851363, 0.99617801, 0.99798345, 0.49289199],2511 [ -6.26977058, -0.00124962, 0.00076611, 7.26852095, 0.99617955, 0.99798426, 0.49289234],2512 [ -6.26977738, -0.00124912, 0.00076581, 7.26852826, 0.99618109, 0.99798507, 0.49289269],2513 [ -6.26978416, -0.00124862, 0.00076550, 7.26853554, 0.99618263, 0.99798588, 0.49289304],2514 [ -6.26979092, -0.00124812, 0.00076519, 7.26854280, 0.99618417, 0.99798669, 0.49289341],2515 [ -6.26979765, -0.00124762, 0.00076488, 7.26855003, 0.99618571, 0.99798750, 0.49289376],2516 [ -6.26980436, -0.00124711, 0.00076458, 7.26855725, 0.99618724, 0.99798831, 0.49289409],2517 [ -6.26981105, -0.00124661, 0.00076427, 7.26856444, 0.99618878, 0.99798912, 0.49289444],2518 [ -6.26981772, -0.00124611, 0.00076396, 7.26857160, 0.99619031, 0.99798992, 0.49289482],2519 [ -6.26982436, -0.00124561, 0.00076366, 7.26857875, 0.99619184, 0.99799073, 0.49289516],2520 [ -6.26983098, -0.00124511, 0.00076335, 7.26858587, 0.99619337, 0.99799154, 0.49289554],2521 [ -6.26983758, -0.00124461, 0.00076305, 7.26859297, 0.99619490, 0.99799234, 0.49289586],2522 [ -6.26984416, -0.00124412, 0.00076274, 7.26860004, 0.99619643, 0.99799314, 0.49289620],2523 [ -6.26985071, -0.00124362, 0.00076244, 7.26860710, 0.99619796, 0.99799395, 0.49289657],2524 [ -6.26985725, -0.00124312, 0.00076213, 7.26861413, 0.99619949, 0.99799475, 0.49289690],2525 [ -6.26986376, -0.00124262, 0.00076183, 7.26862114, 0.99620101, 0.99799555, 0.49289724],2526 [ -6.26987025, -0.00124212, 0.00076152, 7.26862812, 0.99620253, 0.99799636, 0.49289757],2527 [ -6.26987672, -0.00124163, 0.00076122, 7.26863509, 0.99620406, 0.99799716, 0.49289792],2528 [ -6.26988316, -0.00124113, 0.00076091, 7.26864203, 0.99620558, 0.99799796, 0.49289828],2529 [ -6.26988959, -0.00124063, 0.00076061, 7.26864895, 0.99620710, 0.99799876, 0.49289862],2530 [ -6.26989599, -0.00124014, 0.00076031, 7.26865585, 0.99620862, 0.99799956, 0.49289895],2531 [ -6.26990237, -0.00123964, 0.00076000, 7.26866273, 0.99621013, 0.99800035, 0.49289931],2532 [ -6.26990873, -0.00123915, 0.00075970, 7.26866958, 0.99621165, 0.99800115, 0.49289965],2533 [ -6.26991507, -0.00123865, 0.00075940, 7.26867642, 0.99621317, 0.99800195, 0.49289998],2534 [ -6.26992139, -0.00123816, 0.00075909, 7.26868323, 0.99621468, 0.99800275, 0.49290032],2535 [ -6.26992769, -0.00123767, 0.00075879, 7.26869002, 0.99621619, 0.99800354, 0.49290066],2536 [ -6.26993396, -0.00123717, 0.00075849, 7.26869679, 0.99621770, 0.99800434, 0.49290100],2537 [ -6.26994022, -0.00123668, 0.00075819, 7.26870354, 0.99621921, 0.99800513, 0.49290132],2538 [ -6.26994645, -0.00123619, 0.00075789, 7.26871027, 0.99622072, 0.99800593, 0.49290166],2539 [ -6.26995267, -0.00123569, 0.00075758, 7.26871697, 0.99622223, 0.99800672, 0.49290199],2540 [ -6.26995886, -0.00123520, 0.00075728, 7.26872366, 0.99622374, 0.99800751, 0.49290231],2541 [ -6.26996503, -0.00123471, 0.00075698, 7.26873032, 0.99622524, 0.99800831, 0.49290268],2542 [ -6.26997119, -0.00123422, 0.00075668, 7.26873697, 0.99622675, 0.99800910, 0.49290298],2543 [ -6.26997732, -0.00123373, 0.00075638, 7.26874359, 0.99622825, 0.99800989, 0.49290333],2544 [ -6.26998343, -0.00123324, 0.00075608, 7.26875019, 0.99622975, 0.99801068, 0.49290366],2545 [ -6.26998952, -0.00123275, 0.00075578, 7.26875677, 0.99623126, 0.99801147, 0.49290397],2546 [ -6.26999559, -0.00123226, 0.00075548, 7.26876333, 0.99623275, 0.99801226, 0.49290432],2547 [ -6.27000164, -0.00123177, 0.00075518, 7.26876987, 0.99623425, 0.99801305, 0.49290464],2548 [ -6.27000767, -0.00123128, 0.00075488, 7.26877639, 0.99623575, 0.99801384, 0.49290499],2549 [ -6.27001368, -0.00123079, 0.00075458, 7.26878289, 0.99623725, 0.99801462, 0.49290530],2550 [ -6.27001968, -0.00123031, 0.00075428, 7.26878937, 0.99623874, 0.99801541, 0.49290562],2551 [ -6.27002565, -0.00122982, 0.00075399, 7.26879583, 0.99624024, 0.99801620, 0.49290596],2552 [ -6.27003160, -0.00122933, 0.00075369, 7.26880227, 0.99624173, 0.99801698, 0.49290628],2553 [ -6.27003753, -0.00122884, 0.00075339, 7.26880869, 0.99624322, 0.99801777, 0.49290660],2554 [ -6.27004344, -0.00122836, 0.00075309, 7.26881508, 0.99624471, 0.99801855, 0.49290693],2555 [ -6.27004933, -0.00122787, 0.00075279, 7.26882146, 0.99624620, 0.99801934, 0.49290725],2556 [ -6.27005521, -0.00122739, 0.00075250, 7.26882782, 0.99624769, 0.99802012, 0.49290756],2557 [ -6.27006106, -0.00122690, 0.00075220, 7.26883416, 0.99624917, 0.99802090, 0.49290790],2558 [ -6.27006690, -0.00122642, 0.00075190, 7.26884048, 0.99625066, 0.99802168, 0.49290821],2559 [ -6.27007271, -0.00122593, 0.00075160, 7.26884678, 0.99625214, 0.99802246, 0.49290851],2560 [ -6.27007851, -0.00122545, 0.00075131, 7.26885306, 0.99625363, 0.99802324, 0.49290885],2561 [ -6.27008428, -0.00122496, 0.00075101, 7.26885932, 0.99625511, 0.99802402, 0.49290916],2562 [ -6.27009004, -0.00122448, 0.00075072, 7.26886556, 0.99625659, 0.99802480, 0.49290948],2563 [ -6.27009578, -0.00122400, 0.00075042, 7.26887178, 0.99625807, 0.99802558, 0.49290980],2564 [ -6.27010150, -0.00122351, 0.00075012, 7.26887799, 0.99625955, 0.99802636, 0.49291012],2565 [ -6.27010720, -0.00122303, 0.00074983, 7.26888417, 0.99626102, 0.99802714, 0.49291045],2566 [ -6.27011288, -0.00122255, 0.00074953, 7.26889033, 0.99626250, 0.99802792, 0.49291075],2567 [ -6.27011855, -0.00122207, 0.00074924, 7.26889648, 0.99626398, 0.99802869, 0.49291108],2568 [ -6.27012419, -0.00122159, 0.00074894, 7.26890260, 0.99626545, 0.99802947, 0.49291137],2569 [ -6.27012982, -0.00122111, 0.00074865, 7.26890871, 0.99626692, 0.99803024, 0.49291169],2570 [ -6.27013543, -0.00122063, 0.00074836, 7.26891480, 0.99626839, 0.99803102, 0.49291199],2571 [ -6.27014102, -0.00122015, 0.00074806, 7.26892087, 0.99626986, 0.99803179, 0.49291232],2572 [ -6.27014659, -0.00121967, 0.00074777, 7.26892692, 0.99627133, 0.99803257, 0.49291262],2573 [ -6.27015214, -0.00121919, 0.00074747, 7.26893295, 0.99627280, 0.99803334, 0.49291295],2574 [ -6.27015767, -0.00121871, 0.00074718, 7.26893897, 0.99627427, 0.99803411, 0.49291325],2575 [ -6.27016319, -0.00121823, 0.00074689, 7.26894496, 0.99627574, 0.99803488, 0.49291356],2576 [ -6.27016869, -0.00121775, 0.00074659, 7.26895094, 0.99627720, 0.99803565, 0.49291386],2577 [ -6.27017417, -0.00121727, 0.00074630, 7.26895690, 0.99627866, 0.99803642, 0.49291418],2578 [ -6.27017963, -0.00121680, 0.00074601, 7.26896284, 0.99628013, 0.99803719, 0.49291448],2579 [ -6.27018508, -0.00121632, 0.00074572, 7.26896876, 0.99628159, 0.99803796, 0.49291478],2580 [ -6.27019050, -0.00121584, 0.00074543, 7.26897466, 0.99628305, 0.99803873, 0.49291509],2581 [ -6.27019591, -0.00121537, 0.00074513, 7.26898055, 0.99628451, 0.99803950, 0.49291539],2582 [ -6.27020130, -0.00121489, 0.00074484, 7.26898641, 0.99628596, 0.99804027, 0.49291571],2583 [ -6.27020668, -0.00121441, 0.00074455, 7.26899226, 0.99628742, 0.99804103, 0.49291599],2584 [ -6.27021203, -0.00121394, 0.00074426, 7.26899810, 0.99628888, 0.99804180, 0.49291629],2585 [ -6.27021737, -0.00121346, 0.00074397, 7.26900391, 0.99629033, 0.99804257, 0.49291660],2586 [ -6.27022270, -0.00121299, 0.00074368, 7.26900971, 0.99629178, 0.99804333, 0.49291688],2587 [ -6.27022800, -0.00121252, 0.00074339, 7.26901548, 0.99629324, 0.99804410, 0.49291722],2588 [ -6.27023329, -0.00121204, 0.00074310, 7.26902124, 0.99629469, 0.99804486, 0.49291750],2589 [ -6.27023856, -0.00121157, 0.00074281, 7.26902699, 0.99629614, 0.99804562, 0.49291781],2590 [ -6.27024381, -0.00121110, 0.00074252, 7.26903271, 0.99629759, 0.99804639, 0.49291812],2591 [ -6.27024904, -0.00121062, 0.00074223, 7.26903842, 0.99629903, 0.99804715, 0.49291840],2592 [ -6.27025426, -0.00121015, 0.00074194, 7.26904411, 0.99630048, 0.99804791, 0.49291870],2593 [ -6.27025946, -0.00120968, 0.00074165, 7.26904979, 0.99630193, 0.99804867, 0.49291902],2594 [ -6.27026465, -0.00120921, 0.00074136, 7.26905544, 0.99630337, 0.99804943, 0.49291932],2595 [ -6.27026982, -0.00120874, 0.00074107, 7.26906108, 0.99630481, 0.99805019, 0.49291960],2596 [ -6.27027497, -0.00120827, 0.00074078, 7.26906670, 0.99630626, 0.99805095, 0.49291988],2597 [ -6.27028010, -0.00120780, 0.00074050, 7.26907231, 0.99630770, 0.99805171, 0.49292018],2598 [ -6.27028522, -0.00120732, 0.00074021, 7.26907789, 0.99630914, 0.99805247, 0.49292047],2599 [ -6.27029032, -0.00120686, 0.00073992, 7.26908347, 0.99631057, 0.99805322, 0.49292077],2600 [ -6.27029541, -0.00120639, 0.00073963, 7.26908902, 0.99631201, 0.99805398, 0.49292106],2601 [ -6.27030047, -0.00120592, 0.00073934, 7.26909456, 0.99631345, 0.99805474, 0.49292137],2602 [ -6.27030552, -0.00120545, 0.00073906, 7.26910008, 0.99631488, 0.99805549, 0.49292164],2603 [ -6.27031056, -0.00120498, 0.00073877, 7.26910558, 0.99631632, 0.99805625, 0.49292193],2604 [ -6.27031558, -0.00120451, 0.00073848, 7.26911107, 0.99631775, 0.99805700, 0.49292223],2605 [ -6.27032058, -0.00120404, 0.00073820, 7.26911654, 0.99631918, 0.99805776, 0.49292252],2606 [ -6.27032557, -0.00120358, 0.00073791, 7.26912199, 0.99632061, 0.99805851, 0.49292278],2607 [ -6.27033054, -0.00120311, 0.00073763, 7.26912743, 0.99632204, 0.99805926, 0.49292312],2608 [ -6.27033549, -0.00120264, 0.00073734, 7.26913285, 0.99632347, 0.99806002, 0.49292338],2609 [ -6.27034043, -0.00120218, 0.00073705, 7.26913825, 0.99632490, 0.99806077, 0.49292367],2610 [ -6.27034536, -0.00120171, 0.00073677, 7.26914364, 0.99632633, 0.99806152, 0.49292394],2611 [ -6.27035026, -0.00120125, 0.00073648, 7.26914902, 0.99632775, 0.99806227, 0.49292425],2612 [ -6.27035515, -0.00120078, 0.00073620, 7.26915437, 0.99632918, 0.99806302, 0.49292452],2613 [ -6.27036003, -0.00120032, 0.00073591, 7.26915971, 0.99633060, 0.99806377, 0.49292480],2614 [ -6.27036489, -0.00119985, 0.00073563, 7.26916504, 0.99633202, 0.99806452, 0.49292511],2615 [ -6.27036973, -0.00119939, 0.00073535, 7.26917034, 0.99633344, 0.99806527, 0.49292536],2616 [ -6.27037456, -0.00119892, 0.00073506, 7.26917564, 0.99633486, 0.99806601, 0.49292567],2617 [ -6.27037937, -0.00119846, 0.00073478, 7.26918091, 0.99633628, 0.99806676, 0.49292595],2618 [ -6.27038417, -0.00119800, 0.00073449, 7.26918617, 0.99633770, 0.99806751, 0.49292622],2619 [ -6.27038895, -0.00119754, 0.00073421, 7.26919142, 0.99633912, 0.99806825, 0.49292651],2620 [ -6.27039372, -0.00119707, 0.00073393, 7.26919664, 0.99634053, 0.99806900, 0.49292678],2621 [ -6.27039847, -0.00119661, 0.00073364, 7.26920186, 0.99634195, 0.99806974, 0.49292707],2622 [ -6.27040321, -0.00119615, 0.00073336, 7.26920706, 0.99634336, 0.99807049, 0.49292736],2623 [ -6.27040793, -0.00119569, 0.00073308, 7.26921224, 0.99634477, 0.99807123, 0.49292762],2624 [ -6.27041263, -0.00119523, 0.00073280, 7.26921740, 0.99634618, 0.99807198, 0.49292790],2625 [ -6.27041732, -0.00119477, 0.00073251, 7.26922256, 0.99634759, 0.99807272, 0.49292816],2626 [ -6.27042200, -0.00119431, 0.00073223, 7.26922769, 0.99634900, 0.99807346, 0.49292845],2627 [ -6.27042666, -0.00119385, 0.00073195, 7.26923281, 0.99635041, 0.99807420, 0.49292873],2628 [ -6.27043131, -0.00119339, 0.00073167, 7.26923792, 0.99635182, 0.99807494, 0.49292902],2629 [ -6.27043594, -0.00119293, 0.00073139, 7.26924301, 0.99635322, 0.99807568, 0.49292929],2630 [ -6.27044055, -0.00119247, 0.00073111, 7.26924808, 0.99635463, 0.99807642, 0.49292955],2631 [ -6.27044516, -0.00119201, 0.00073083, 7.26925314, 0.99635603, 0.99807716, 0.49292983],2632 [ -6.27044974, -0.00119155, 0.00073054, 7.26925819, 0.99635743, 0.99807790, 0.49293011],2633 [ -6.27045432, -0.00119110, 0.00073026, 7.26926322, 0.99635884, 0.99807864, 0.49293037],2634 [ -6.27045887, -0.00119064, 0.00072998, 7.26926823, 0.99636024, 0.99807938, 0.49293066],2635 [ -6.27046342, -0.00119018, 0.00072970, 7.26927323, 0.99636164, 0.99808011, 0.49293095],2636 [ -6.27046795, -0.00118973, 0.00072942, 7.26927822, 0.99636303, 0.99808085, 0.49293118],2637 [ -6.27047246, -0.00118927, 0.00072914, 7.26928319, 0.99636443, 0.99808158, 0.49293146],2638 [ -6.27047696, -0.00118881, 0.00072887, 7.26928815, 0.99636583, 0.99808232, 0.49293175],2639 [ -6.27048145, -0.00118836, 0.00072859, 7.26929309, 0.99636722, 0.99808305, 0.49293201],2640 [ -6.27048592, -0.00118790, 0.00072831, 7.26929802, 0.99636862, 0.99808379, 0.49293228],2641 [ -6.27049038, -0.00118745, 0.00072803, 7.26930293, 0.99637001, 0.99808452, 0.49293255],2642 [ -6.27049482, -0.00118699, 0.00072775, 7.26930783, 0.99637140, 0.99808526, 0.49293281],2643 [ -6.27049925, -0.00118654, 0.00072747, 7.26931271, 0.99637279, 0.99808599, 0.49293309],2644 [ -6.27050366, -0.00118609, 0.00072719, 7.26931758, 0.99637418, 0.99808672, 0.49293334],2645 [ -6.27050807, -0.00118563, 0.00072692, 7.26932243, 0.99637557, 0.99808745, 0.49293360],2646 [ -6.27051245, -0.00118518, 0.00072664, 7.26932727, 0.99637696, 0.99808818, 0.49293390],2647 [ -6.27051683, -0.00118473, 0.00072636, 7.26933210, 0.99637835, 0.99808891, 0.49293415],2648 [ -6.27052119, -0.00118427, 0.00072608, 7.26933691, 0.99637973, 0.99808964, 0.49293444],2649 [ -6.27052553, -0.00118382, 0.00072581, 7.26934171, 0.99638112, 0.99809037, 0.49293467],2650 [ -6.27052986, -0.00118337, 0.00072553, 7.26934649, 0.99638250, 0.99809110, 0.49293494],2651 [ -6.27053418, -0.00118292, 0.00072525, 7.26935126, 0.99638388, 0.99809183, 0.49293521],2652 [ -6.27053849, -0.00118247, 0.00072498, 7.26935602, 0.99638526, 0.99809256, 0.49293547],2653 [ -6.27054278, -0.00118202, 0.00072470, 7.26936076, 0.99638664, 0.99809328, 0.49293575],2654 [ -6.27054706, -0.00118157, 0.00072442, 7.26936549, 0.99638802, 0.99809401, 0.49293600],2655 [ -6.27055132, -0.00118112, 0.00072415, 7.26937020, 0.99638940, 0.99809474, 0.49293625],2656 [ -6.27055557, -0.00118067, 0.00072387, 7.26937491, 0.99639078, 0.99809546, 0.49293651],2657 [ -6.27055981, -0.00118022, 0.00072360, 7.26937959, 0.99639215, 0.99809619, 0.49293677],2658 [ -6.27056403, -0.00117977, 0.00072332, 7.26938427, 0.99639353, 0.99809691, 0.49293703],2659 [ -6.27056825, -0.00117932, 0.00072305, 7.26938893, 0.99639490, 0.99809763, 0.49293729],2660 [ -6.27057244, -0.00117887, 0.00072277, 7.26939357, 0.99639628, 0.99809836, 0.49293754],2661 [ -6.27057663, -0.00117842, 0.00072250, 7.26939820, 0.99639765, 0.99809908, 0.49293783],2662 [ -6.27058080, -0.00117798, 0.00072222, 7.26940282, 0.99639902, 0.99809980, 0.49293807],2663 [ -6.27058496, -0.00117753, 0.00072195, 7.26940743, 0.99640039, 0.99810052, 0.49293833],2664 [ -6.27058910, -0.00117708, 0.00072167, 7.26941202, 0.99640176, 0.99810124, 0.49293858],2665 [ -6.27059324, -0.00117663, 0.00072140, 7.26941660, 0.99640312, 0.99810196, 0.49293885],2666 [ -6.27059736, -0.00117619, 0.00072113, 7.26942117, 0.99640449, 0.99810268, 0.49293910],2667 [ -6.27060146, -0.00117574, 0.00072085, 7.26942572, 0.99640586, 0.99810340, 0.49293936],2668 [ -6.27060556, -0.00117530, 0.00072058, 7.26943026, 0.99640722, 0.99810412, 0.49293961],2669 [ -6.27060964, -0.00117485, 0.00072031, 7.26943479, 0.99640859, 0.99810484, 0.49293988],2670 [ -6.27061371, -0.00117441, 0.00072004, 7.26943930, 0.99640995, 0.99810556, 0.49294014],2671 [ -6.27061776, -0.00117396, 0.00071976, 7.26944380, 0.99641131, 0.99810628, 0.49294037],2672 [ -6.27062180, -0.00117352, 0.00071949, 7.26944829, 0.99641267, 0.99810699, 0.49294061],2673 [ -6.27062583, -0.00117307, 0.00071922, 7.26945276, 0.99641403, 0.99810771, 0.49294091],2674 [ -6.27062985, -0.00117263, 0.00071895, 7.26945722, 0.99641539, 0.99810842, 0.49294113],2675 [ -6.27063386, -0.00117219, 0.00071867, 7.26946167, 0.99641675, 0.99810914, 0.49294137],2676 [ -6.27063785, -0.00117174, 0.00071840, 7.26946611, 0.99641810, 0.99810985, 0.49294161],2677 [ -6.27064183, -0.00117130, 0.00071813, 7.26947053, 0.99641946, 0.99811057, 0.49294187],2678 [ -6.27064580, -0.00117086, 0.00071786, 7.26947494, 0.99642081, 0.99811128, 0.49294216],2679 [ -6.27064976, -0.00117042, 0.00071759, 7.26947934, 0.99642217, 0.99811199, 0.49294239],2680 [ -6.27065370, -0.00116997, 0.00071732, 7.26948372, 0.99642352, 0.99811271, 0.49294263],2681 [ -6.27065763, -0.00116953, 0.00071705, 7.26948810, 0.99642487, 0.99811342, 0.49294289],2682 [ -6.27066155, -0.00116909, 0.00071678, 7.26949246, 0.99642622, 0.99811413, 0.49294314],2683 [ -6.27066546, -0.00116865, 0.00071651, 7.26949680, 0.99642757, 0.99811484, 0.49294338],2684 [ -6.27066935, -0.00116821, 0.00071624, 7.26950114, 0.99642892, 0.99811555, 0.49294362],2685 [ -6.27067323, -0.00116777, 0.00071597, 7.26950546, 0.99643026, 0.99811626, 0.49294387],2686 [ -6.27067711, -0.00116733, 0.00071570, 7.26950977, 0.99643161, 0.99811697, 0.49294414],2687 [ -6.27068096, -0.00116689, 0.00071543, 7.26951407, 0.99643296, 0.99811768, 0.49294435],2688 [ -6.27068481, -0.00116645, 0.00071516, 7.26951836, 0.99643430, 0.99811839, 0.49294462],2689 [ -6.27068865, -0.00116601, 0.00071489, 7.26952263, 0.99643564, 0.99811909, 0.49294486],2690 [ -6.27069247, -0.00116558, 0.00071462, 7.26952689, 0.99643699, 0.99811980, 0.49294512],2691 [ -6.27069628, -0.00116514, 0.00071435, 7.26953114, 0.99643833, 0.99812051, 0.49294533],2692 [ -6.27070008, -0.00116470, 0.00071409, 7.26953538, 0.99643967, 0.99812121, 0.49294559],2693 [ -6.27070387, -0.00116426, 0.00071382, 7.26953961, 0.99644101, 0.99812192, 0.49294582],2694 [ -6.27070765, -0.00116383, 0.00071355, 7.26954382, 0.99644235, 0.99812262, 0.49294607],2695 [ -6.27071141, -0.00116339, 0.00071328, 7.26954802, 0.99644368, 0.99812333, 0.49294633],2696 [ -6.27071516, -0.00116295, 0.00071301, 7.26955221, 0.99644502, 0.99812403, 0.49294657],2697 [ -6.27071891, -0.00116252, 0.00071275, 7.26955639, 0.99644635, 0.99812474, 0.49294678],2698 [ -6.27072264, -0.00116208, 0.00071248, 7.26956056, 0.99644769, 0.99812544, 0.49294701],2699 [ -6.27072636, -0.00116165, 0.00071221, 7.26956471, 0.99644902, 0.99812614, 0.49294726],2700 [ -6.27073006, -0.00116121, 0.00071195, 7.26956885, 0.99645035, 0.99812684, 0.49294753],2701 [ -6.27073376, -0.00116078, 0.00071168, 7.26957298, 0.99645169, 0.99812755, 0.49294774],2702 [ -6.27073744, -0.00116034, 0.00071141, 7.26957710, 0.99645302, 0.99812825, 0.49294799],2703 [ -6.27074112, -0.00115991, 0.00071115, 7.26958121, 0.99645434, 0.99812895, 0.49294824],2704 [ -6.27074478, -0.00115947, 0.00071088, 7.26958531, 0.99645567, 0.99812965, 0.49294849],2705 [ -6.27074843, -0.00115904, 0.00071062, 7.26958939, 0.99645700, 0.99813035, 0.49294867],2706 [ -6.27075207, -0.00115861, 0.00071035, 7.26959347, 0.99645833, 0.99813104, 0.49294894],2707 [ -6.27075570, -0.00115817, 0.00071008, 7.26959753, 0.99645965, 0.99813174, 0.49294918],2708 [ -6.27075932, -0.00115774, 0.00070982, 7.26960158, 0.99646098, 0.99813244, 0.49294940],2709 [ -6.27076293, -0.00115731, 0.00070955, 7.26960562, 0.99646230, 0.99813314, 0.49294966],2710 [ -6.27076652, -0.00115688, 0.00070929, 7.26960965, 0.99646362, 0.99813383, 0.49294988],2711 [ -6.27077011, -0.00115644, 0.00070902, 7.26961366, 0.99646494, 0.99813453, 0.49295014],2712 [ -6.27077368, -0.00115601, 0.00070876, 7.26961767, 0.99646626, 0.99813523, 0.49295035],2713 [ -6.27077724, -0.00115558, 0.00070850, 7.26962166, 0.99646758, 0.99813592, 0.49295058],2714 [ -6.27078080, -0.00115515, 0.00070823, 7.26962565, 0.99646890, 0.99813662, 0.49295081],2715 [ -6.27078434, -0.00115472, 0.00070797, 7.26962962, 0.99647022, 0.99813731, 0.49295107],2716 [ -6.27078787, -0.00115429, 0.00070770, 7.26963358, 0.99647154, 0.99813800, 0.49295129],2717 [ -6.27079139, -0.00115386, 0.00070744, 7.26963753, 0.99647285, 0.99813870, 0.49295151],2718 [ -6.27079490, -0.00115343, 0.00070718, 7.26964147, 0.99647417, 0.99813939, 0.49295175],2719 [ -6.27079840, -0.00115300, 0.00070692, 7.26964540, 0.99647548, 0.99814008, 0.49295200],2720 [ -6.27080189, -0.00115257, 0.00070665, 7.26964931, 0.99647679, 0.99814077, 0.49295221],2721 [ -6.27080537, -0.00115215, 0.00070639, 7.26965322, 0.99647810, 0.99814146, 0.49295246],2722 [ -6.27080883, -0.00115172, 0.00070613, 7.26965711, 0.99647941, 0.99814215, 0.49295267],2723 [ -6.27081229, -0.00115129, 0.00070586, 7.26966100, 0.99648072, 0.99814284, 0.49295289],2724 [ -6.27081574, -0.00115086, 0.00070560, 7.26966487, 0.99648203, 0.99814353, 0.49295314],2725 [ -6.27081917, -0.00115044, 0.00070534, 7.26966874, 0.99648334, 0.99814422, 0.49295337],2726 [ -6.27082260, -0.00115001, 0.00070508, 7.26967259, 0.99648465, 0.99814491, 0.49295357],2727 [ -6.27082601, -0.00114958, 0.00070482, 7.26967643, 0.99648595, 0.99814560, 0.49295381],2728 [ -6.27082942, -0.00114916, 0.00070456, 7.26968026, 0.99648726, 0.99814629, 0.49295404],2729 [ -6.27083281, -0.00114873, 0.00070430, 7.26968408, 0.99648856, 0.99814697, 0.49295428],2730 [ -6.27083620, -0.00114830, 0.00070403, 7.26968789, 0.99648986, 0.99814766, 0.49295451],2731 [ -6.27083957, -0.00114788, 0.00070377, 7.26969169, 0.99649117, 0.99814835, 0.49295473],2732 [ -6.27084294, -0.00114745, 0.00070351, 7.26969548, 0.99649247, 0.99814903, 0.49295497],2733 [ -6.27084629, -0.00114703, 0.00070325, 7.26969926, 0.99649377, 0.99814972, 0.49295518],2734 [ -6.27084964, -0.00114661, 0.00070299, 7.26970303, 0.99649507, 0.99815040, 0.49295540],2735 [ -6.27085297, -0.00114618, 0.00070273, 7.26970679, 0.99649636, 0.99815109, 0.49295563],2736 [ -6.27085630, -0.00114576, 0.00070247, 7.26971054, 0.99649766, 0.99815177, 0.49295584],2737 [ -6.27085961, -0.00114533, 0.00070221, 7.26971428, 0.99649896, 0.99815245, 0.49295609],2738 [ -6.27086292, -0.00114491, 0.00070195, 7.26971800, 0.99650025, 0.99815313, 0.49295629],2739 [ -6.27086621, -0.00114449, 0.00070169, 7.26972172, 0.99650155, 0.99815382, 0.49295653],2740 [ -6.27086950, -0.00114407, 0.00070144, 7.26972543, 0.99650284, 0.99815450, 0.49295673],2741 [ -6.27087277, -0.00114364, 0.00070118, 7.26972913, 0.99650413, 0.99815518, 0.49295696],2742 [ -6.27087604, -0.00114322, 0.00070092, 7.26973281, 0.99650542, 0.99815586, 0.49295720],2743 [ -6.27087929, -0.00114280, 0.00070066, 7.26973649, 0.99650671, 0.99815654, 0.49295739],2744 [ -6.27088254, -0.00114238, 0.00070040, 7.26974016, 0.99650800, 0.99815722, 0.49295764],2745 [ -6.27088577, -0.00114196, 0.00070014, 7.26974382, 0.99650929, 0.99815790, 0.49295785],2746 [ -6.27088900, -0.00114154, 0.00069989, 7.26974746, 0.99651058, 0.99815858, 0.49295811],2747 [ -6.27089222, -0.00114112, 0.00069963, 7.26975110, 0.99651187, 0.99815925, 0.49295829],2748 [ -6.27089543, -0.00114070, 0.00069937, 7.26975473, 0.99651315, 0.99815993, 0.49295850],2749 [ -6.27089862, -0.00114028, 0.00069911, 7.26975835, 0.99651444, 0.99816061, 0.49295875],2750 [ -6.27090181, -0.00113986, 0.00069886, 7.26976195, 0.99651572, 0.99816129, 0.49295895],2751 [ -6.27090499, -0.00113944, 0.00069860, 7.26976555, 0.99651700, 0.99816196, 0.49295918],2752 [ -6.27090816, -0.00113902, 0.00069834, 7.26976914, 0.99651829, 0.99816264, 0.49295938],2753 [ -6.27091132, -0.00113860, 0.00069809, 7.26977272, 0.99651957, 0.99816331, 0.49295963],2754 [ -6.27091447, -0.00113818, 0.00069783, 7.26977629, 0.99652085, 0.99816399, 0.49295982],2755 [ -6.27091762, -0.00113777, 0.00069757, 7.26977985, 0.99652213, 0.99816466, 0.49296003],2756 [ -6.27092075, -0.00113735, 0.00069732, 7.26978340, 0.99652340, 0.99816533, 0.49296028],2757 [ -6.27092387, -0.00113693, 0.00069706, 7.26978694, 0.99652468, 0.99816601, 0.49296049],2758 [ -6.27092699, -0.00113651, 0.00069681, 7.26979047, 0.99652596, 0.99816668, 0.49296071],2759 [ -6.27093009, -0.00113610, 0.00069655, 7.26979399, 0.99652723, 0.99816735, 0.49296091],2760 [ -6.27093319, -0.00113568, 0.00069629, 7.26979751, 0.99652851, 0.99816802, 0.49296112],2761 [ -6.27093627, -0.00113527, 0.00069604, 7.26980101, 0.99652978, 0.99816869, 0.49296137],2762 [ -6.27093935, -0.00113485, 0.00069578, 7.26980450, 0.99653105, 0.99816937, 0.49296155],2763 [ -6.27094242, -0.00113443, 0.00069553, 7.26980799, 0.99653232, 0.99817004, 0.49296176],2764 [ -6.27094548, -0.00113402, 0.00069528, 7.26981146, 0.99653360, 0.99817070, 0.49296198],2765 [ -6.27094853, -0.00113360, 0.00069502, 7.26981493, 0.99653487, 0.99817137, 0.49296221],2766 [ -6.27095157, -0.00113319, 0.00069477, 7.26981838, 0.99653613, 0.99817204, 0.49296241],2767 [ -6.27095461, -0.00113278, 0.00069451, 7.26982183, 0.99653740, 0.99817271, 0.49296261],2768 [ -6.27095763, -0.00113236, 0.00069426, 7.26982527, 0.99653867, 0.99817338, 0.49296284],2769 [ -6.27096065, -0.00113195, 0.00069401, 7.26982870, 0.99653994, 0.99817405, 0.49296306],2770 [ -6.27096365, -0.00113154, 0.00069375, 7.26983212, 0.99654120, 0.99817471, 0.49296324],2771 [ -6.27096665, -0.00113112, 0.00069350, 7.26983553, 0.99654246, 0.99817538, 0.49296349],2772 [ -6.27096964, -0.00113071, 0.00069325, 7.26983893, 0.99654373, 0.99817604, 0.49296367],2773 [ -6.27097262, -0.00113030, 0.00069299, 7.26984232, 0.99654499, 0.99817671, 0.49296390],2774 [ -6.27097559, -0.00112989, 0.00069274, 7.26984571, 0.99654625, 0.99817737, 0.49296411],2775 [ -6.27097856, -0.00112947, 0.00069249, 7.26984908, 0.99654751, 0.99817804, 0.49296432],2776 [ -6.27098151, -0.00112906, 0.00069224, 7.26985245, 0.99654877, 0.99817870, 0.49296451],2777 [ -6.27098446, -0.00112865, 0.00069198, 7.26985581, 0.99655003, 0.99817937, 0.49296475],2778 [ -6.27098739, -0.00112824, 0.00069173, 7.26985915, 0.99655129, 0.99818003, 0.49296493],2779 [ -6.27099032, -0.00112783, 0.00069148, 7.26986249, 0.99655255, 0.99818069, 0.49296516],2780 [ -6.27099324, -0.00112742, 0.00069123, 7.26986583, 0.99655380, 0.99818135, 0.49296535],2781 [ -6.27099616, -0.00112701, 0.00069098, 7.26986915, 0.99655506, 0.99818202, 0.49296556],2782 [ -6.27099906, -0.00112660, 0.00069072, 7.26987246, 0.99655631, 0.99818268, 0.49296577],2783 [ -6.27100196, -0.00112619, 0.00069047, 7.26987577, 0.99655756, 0.99818334, 0.49296597],2784 [ -6.27100484, -0.00112578, 0.00069022, 7.26987906, 0.99655882, 0.99818400, 0.49296619],2785 [ -6.27100772, -0.00112537, 0.00068997, 7.26988235, 0.99656007, 0.99818466, 0.49296639],2786 [ -6.27101059, -0.00112496, 0.00068972, 7.26988563, 0.99656132, 0.99818532, 0.49296663],2787 [ -6.27101345, -0.00112455, 0.00068947, 7.26988890, 0.99656257, 0.99818597, 0.49296681],2788 [ -6.27101631, -0.00112415, 0.00068922, 7.26989216, 0.99656382, 0.99818663, 0.49296699],2789 [ -6.27101915, -0.00112374, 0.00068897, 7.26989541, 0.99656506, 0.99818729, 0.49296722],2790 [ -6.27102199, -0.00112333, 0.00068872, 7.26989866, 0.99656631, 0.99818795, 0.49296743],2791 [ -6.27102482, -0.00112292, 0.00068847, 7.26990189, 0.99656756, 0.99818860, 0.49296764],2792 [ -6.27102764, -0.00112252, 0.00068822, 7.26990512, 0.99656880, 0.99818926, 0.49296783],2793 [ -6.27103045, -0.00112211, 0.00068797, 7.26990834, 0.99657005, 0.99818992, 0.49296802],2794 [ -6.27103326, -0.00112171, 0.00068772, 7.26991155, 0.99657129, 0.99819057, 0.49296822],2795 [ -6.27103606, -0.00112130, 0.00068747, 7.26991476, 0.99657253, 0.99819123, 0.49296843],2796 [ -6.27103885, -0.00112089, 0.00068723, 7.26991795, 0.99657377, 0.99819188, 0.49296863],2797 [ -6.27104163, -0.00112049, 0.00068698, 7.26992114, 0.99657501, 0.99819253, 0.49296882],2798 [ -6.27104440, -0.00112008, 0.00068673, 7.26992432, 0.99657625, 0.99819319, 0.49296903],2799 [ -6.27104717, -0.00111968, 0.00068648, 7.26992749, 0.99657749, 0.99819384, 0.49296925],2800 [ -6.27104992, -0.00111927, 0.00068623, 7.26993065, 0.99657873, 0.99819449, 0.49296948],2801 [ -6.27105267, -0.00111887, 0.00068599, 7.26993380, 0.99657997, 0.99819514, 0.49296966],2802 [ -6.27105541, -0.00111847, 0.00068574, 7.26993695, 0.99658120, 0.99819580, 0.49296986],2803 [ -6.27105815, -0.00111806, 0.00068549, 7.26994009, 0.99658244, 0.99819645, 0.49297006],2804 [ -6.27106088, -0.00111766, 0.00068524, 7.26994322, 0.99658367, 0.99819710, 0.49297025],2805 [ -6.27106359, -0.00111726, 0.00068500, 7.26994634, 0.99658491, 0.99819775, 0.49297043],2806 [ -6.27106630, -0.00111685, 0.00068475, 7.26994945, 0.99658614, 0.99819840, 0.49297064],2807 [ -6.27106901, -0.00111645, 0.00068450, 7.26995256, 0.99658737, 0.99819905, 0.49297085],2808 [ -6.27107170, -0.00111605, 0.00068426, 7.26995565, 0.99658860, 0.99819970, 0.49297106],2809 [ -6.27107439, -0.00111565, 0.00068401, 7.26995874, 0.99658983, 0.99820034, 0.49297123],2810 [ -6.27107707, -0.00111525, 0.00068376, 7.26996183, 0.99659106, 0.99820099, 0.49297145],2811 [ -6.27107974, -0.00111484, 0.00068352, 7.26996490, 0.99659229, 0.99820164, 0.49297165],2812 [ -6.27108241, -0.00111444, 0.00068327, 7.26996797, 0.99659352, 0.99820229, 0.49297182],2813 [ -6.27108507, -0.00111404, 0.00068302, 7.26997103, 0.99659474, 0.99820293, 0.49297202],2814 [ -6.27108772, -0.00111364, 0.00068278, 7.26997408, 0.99659597, 0.99820358, 0.49297222],2815 [ -6.27109036, -0.00111324, 0.00068253, 7.26997712, 0.99659719, 0.99820422, 0.49297241],2816 [ -6.27109300, -0.00111284, 0.00068229, 7.26998015, 0.99659842, 0.99820487, 0.49297262],2817 [ -6.27109562, -0.00111244, 0.00068204, 7.26998318, 0.99659964, 0.99820551, 0.49297281],2818 [ -6.27109825, -0.00111204, 0.00068180, 7.26998620, 0.99660086, 0.99820616, 0.49297301],2819 [ -6.27110086, -0.00111164, 0.00068155, 7.26998921, 0.99660208, 0.99820680, 0.49297320],2820 [ -6.27110347, -0.00111125, 0.00068131, 7.26999222, 0.99660330, 0.99820744, 0.49297339],2821 [ -6.27110606, -0.00111085, 0.00068106, 7.26999522, 0.99660452, 0.99820809, 0.49297359],2822 [ -6.27110866, -0.00111045, 0.00068082, 7.26999821, 0.99660574, 0.99820873, 0.49297380],2823 [ -6.27111124, -0.00111005, 0.00068058, 7.27000119, 0.99660696, 0.99820937, 0.49297397],2824 [ -6.27111382, -0.00110965, 0.00068033, 7.27000416, 0.99660818, 0.99821001, 0.49297417],2825 [ -6.27111639, -0.00110926, 0.00068009, 7.27000713, 0.99660939, 0.99821065, 0.49297437],2826 [ -6.27111895, -0.00110886, 0.00067985, 7.27001009, 0.99661061, 0.99821129, 0.49297456],2827 [ -6.27112151, -0.00110846, 0.00067960, 7.27001304, 0.99661182, 0.99821193, 0.49297477],2828 [ -6.27112405, -0.00110807, 0.00067936, 7.27001599, 0.99661303, 0.99821257, 0.49297493],2829 [ -6.27112660, -0.00110767, 0.00067912, 7.27001892, 0.99661425, 0.99821321, 0.49297516],2830 [ -6.27112913, -0.00110728, 0.00067887, 7.27002185, 0.99661546, 0.99821385, 0.49297533],2831 [ -6.27113166, -0.00110688, 0.00067863, 7.27002478, 0.99661667, 0.99821449, 0.49297550],2832 [ -6.27113418, -0.00110648, 0.00067839, 7.27002769, 0.99661788, 0.99821513, 0.49297572],2833 [ -6.27113669, -0.00110609, 0.00067815, 7.27003060, 0.99661909, 0.99821576, 0.49297589],2834 [ -6.27113920, -0.00110569, 0.00067790, 7.27003350, 0.99662030, 0.99821640, 0.49297607],2835 [ -6.27114170, -0.00110530, 0.00067766, 7.27003640, 0.99662150, 0.99821704, 0.49297628],2836 [ -6.27114419, -0.00110491, 0.00067742, 7.27003928, 0.99662271, 0.99821767, 0.49297646],2837 [ -6.27114668, -0.00110451, 0.00067718, 7.27004216, 0.99662392, 0.99821831, 0.49297664],2838 [ -6.27114915, -0.00110412, 0.00067694, 7.27004504, 0.99662512, 0.99821894, 0.49297684],2839 [ -6.27115163, -0.00110372, 0.00067670, 7.27004790, 0.99662632, 0.99821958, 0.49297702],2840 [ -6.27115409, -0.00110333, 0.00067646, 7.27005076, 0.99662753, 0.99822021, 0.49297723],2841 [ -6.27115655, -0.00110294, 0.00067621, 7.27005361, 0.99662873, 0.99822085, 0.49297742],2842 [ -6.27115900, -0.00110255, 0.00067597, 7.27005646, 0.99662993, 0.99822148, 0.49297759],2843 [ -6.27116145, -0.00110215, 0.00067573, 7.27005929, 0.99663113, 0.99822211, 0.49297781],2844 [ -6.27116389, -0.00110176, 0.00067549, 7.27006212, 0.99663233, 0.99822274, 0.49297799],2845 [ -6.27116632, -0.00110137, 0.00067525, 7.27006495, 0.99663353, 0.99822338, 0.49297818],2846 [ -6.27116874, -0.00110098, 0.00067501, 7.27006776, 0.99663473, 0.99822401, 0.49297837],2847 [ -6.27117116, -0.00110059, 0.00067477, 7.27007057, 0.99663592, 0.99822464, 0.49297853],2848 [ -6.27117357, -0.00110020, 0.00067453, 7.27007338, 0.99663712, 0.99822527, 0.49297873],2849 [ -6.27117598, -0.00109981, 0.00067429, 7.27007617, 0.99663832, 0.99822590, 0.49297890],2850 [ -6.27117838, -0.00109942, 0.00067405, 7.27007896, 0.99663951, 0.99822653, 0.49297910],2851 [ -6.27118077, -0.00109903, 0.00067381, 7.27008174, 0.99664070, 0.99822716, 0.49297929],2852 [ -6.27118315, -0.00109864, 0.00067358, 7.27008452, 0.99664190, 0.99822779, 0.49297945],2853 [ -6.27118553, -0.00109825, 0.00067334, 7.27008729, 0.99664309, 0.99822842, 0.49297965],2854 [ -6.27118791, -0.00109786, 0.00067310, 7.27009005, 0.99664428, 0.99822904, 0.49297987],2855 [ -6.27119027, -0.00109747, 0.00067286, 7.27009280, 0.99664547, 0.99822967, 0.49298005],2856 [ -6.27119263, -0.00109708, 0.00067262, 7.27009555, 0.99664666, 0.99823030, 0.49298023],2857 [ -6.27119499, -0.00109669, 0.00067238, 7.27009829, 0.99664785, 0.99823092, 0.49298041],2858 [ -6.27119733, -0.00109630, 0.00067214, 7.27010103, 0.99664904, 0.99823155, 0.49298056],2859 [ -6.27119968, -0.00109592, 0.00067191, 7.27010376, 0.99665022, 0.99823218, 0.49298074],2860 [ -6.27120201, -0.00109553, 0.00067167, 7.27010648, 0.99665141, 0.99823280, 0.49298095],2861 [ -6.27120434, -0.00109514, 0.00067143, 7.27010920, 0.99665259, 0.99823343, 0.49298115],2862 [ -6.27120666, -0.00109475, 0.00067119, 7.27011190, 0.99665378, 0.99823405, 0.49298131],2863 [ -6.27120898, -0.00109437, 0.00067096, 7.27011461, 0.99665496, 0.99823467, 0.49298149],2864 [ -6.27121129, -0.00109398, 0.00067072, 7.27011730, 0.99665614, 0.99823530, 0.49298166],2865 [ -6.27121359, -0.00109360, 0.00067048, 7.27011999, 0.99665733, 0.99823592, 0.49298185],2866 [ -6.27121589, -0.00109321, 0.00067025, 7.27012268, 0.99665851, 0.99823654, 0.49298202],2867 [ -6.27121818, -0.00109282, 0.00067001, 7.27012535, 0.99665969, 0.99823717, 0.49298224],2868 [ -6.27122046, -0.00109244, 0.00066977, 7.27012802, 0.99666087, 0.99823779, 0.49298236],2869 [ -6.27122274, -0.00109205, 0.00066954, 7.27013069, 0.99666205, 0.99823841, 0.49298260],2870 [ -6.27122501, -0.00109167, 0.00066930, 7.27013334, 0.99666322, 0.99823903, 0.49298275],2871 [ -6.27122728, -0.00109128, 0.00066907, 7.27013600, 0.99666440, 0.99823965, 0.49298294],2872 [ -6.27122954, -0.00109090, 0.00066883, 7.27013864, 0.99666558, 0.99824027, 0.49298313],2873 [ -6.27123179, -0.00109052, 0.00066859, 7.27014128, 0.99666675, 0.99824089, 0.49298330],2874 [ -6.27123404, -0.00109013, 0.00066836, 7.27014391, 0.99666793, 0.99824151, 0.49298351],2875 [ -6.27123629, -0.00108975, 0.00066812, 7.27014654, 0.99666910, 0.99824213, 0.49298363],2876 [ -6.27123852, -0.00108937, 0.00066789, 7.27014916, 0.99667027, 0.99824275, 0.49298382],2877 [ -6.27124075, -0.00108898, 0.00066765, 7.27015177, 0.99667144, 0.99824336, 0.49298401],2878 [ -6.27124298, -0.00108860, 0.00066742, 7.27015438, 0.99667261, 0.99824398, 0.49298420],2879 [ -6.27124520, -0.00108822, 0.00066718, 7.27015698, 0.99667379, 0.99824460, 0.49298438],2880 [ -6.27124741, -0.00108784, 0.00066695, 7.27015957, 0.99667495, 0.99824521, 0.49298453],2881 [ -6.27124962, -0.00108745, 0.00066672, 7.27016216, 0.99667612, 0.99824583, 0.49298471],2882 [ -6.27125182, -0.00108707, 0.00066648, 7.27016475, 0.99667729, 0.99824645, 0.49298491],2883 [ -6.27125401, -0.00108669, 0.00066625, 7.27016732, 0.99667846, 0.99824706, 0.49298510],2884 [ -6.27125620, -0.00108631, 0.00066601, 7.27016989, 0.99667962, 0.99824768, 0.49298524],2885 [ -6.27125839, -0.00108593, 0.00066578, 7.27017246, 0.99668079, 0.99824829, 0.49298544],2886 [ -6.27126057, -0.00108555, 0.00066555, 7.27017502, 0.99668195, 0.99824890, 0.49298562],2887 [ -6.27126274, -0.00108517, 0.00066531, 7.27017757, 0.99668312, 0.99824952, 0.49298575],2888 [ -6.27126490, -0.00108479, 0.00066508, 7.27018012, 0.99668428, 0.99825013, 0.49298596],2889 [ -6.27126707, -0.00108441, 0.00066485, 7.27018266, 0.99668544, 0.99825074, 0.49298614],2890 [ -6.27126922, -0.00108403, 0.00066461, 7.27018519, 0.99668660, 0.99825136, 0.49298629],2891 [ -6.27127137, -0.00108365, 0.00066438, 7.27018772, 0.99668776, 0.99825197, 0.49298647],2892 [ -6.27127351, -0.00108327, 0.00066415, 7.27019024, 0.99668892, 0.99825258, 0.49298665],2893 [ -6.27127565, -0.00108289, 0.00066392, 7.27019276, 0.99669008, 0.99825319, 0.49298685],2894 [ -6.27127779, -0.00108251, 0.00066369, 7.27019527, 0.99669124, 0.99825380, 0.49298701],2895 [ -6.27127991, -0.00108214, 0.00066345, 7.27019778, 0.99669240, 0.99825441, 0.49298719],2896 [ -6.27128204, -0.00108176, 0.00066322, 7.27020028, 0.99669356, 0.99825502, 0.49298735],2897 [ -6.27128415, -0.00108138, 0.00066299, 7.27020277, 0.99669471, 0.99825563, 0.49298754],2898 [ -6.27128626, -0.00108100, 0.00066276, 7.27020526, 0.99669587, 0.99825624, 0.49298772],2899 [ -6.27128837, -0.00108063, 0.00066253, 7.27020774, 0.99669702, 0.99825685, 0.49298787],2900 [ -6.27129047, -0.00108025, 0.00066230, 7.27021022, 0.99669817, 0.99825746, 0.49298806],2901 [ -6.27129256, -0.00107987, 0.00066206, 7.27021269, 0.99669933, 0.99825806, 0.49298822],2902 [ -6.27129465, -0.00107950, 0.00066183, 7.27021516, 0.99670048, 0.99825867, 0.49298838],2903 [ -6.27129674, -0.00107912, 0.00066160, 7.27021762, 0.99670163, 0.99825928, 0.49298857],2904 [ -6.27129881, -0.00107874, 0.00066137, 7.27022007, 0.99670278, 0.99825988, 0.49298872],2905 [ -6.27130089, -0.00107837, 0.00066114, 7.27022252, 0.99670393, 0.99826049, 0.49298890],2906 [ -6.27130295, -0.00107799, 0.00066091, 7.27022496, 0.99670508, 0.99826109, 0.49298906],2907 [ -6.27130502, -0.00107762, 0.00066068, 7.27022740, 0.99670622, 0.99826170, 0.49298921],2908 [ -6.27130707, -0.00107724, 0.00066045, 7.27022983, 0.99670737, 0.99826230, 0.49298942],2909 [ -6.27130913, -0.00107687, 0.00066022, 7.27023226, 0.99670852, 0.99826291, 0.49298958],2910 [ -6.27131117, -0.00107649, 0.00065999, 7.27023468, 0.99670966, 0.99826351, 0.49298977],2911 [ -6.27131321, -0.00107612, 0.00065976, 7.27023709, 0.99671081, 0.99826412, 0.49298992],2912 [ -6.27131525, -0.00107575, 0.00065953, 7.27023950, 0.99671195, 0.99826472, 0.49299011],2913 [ -6.27131728, -0.00107537, 0.00065931, 7.27024191, 0.99671309, 0.99826532, 0.49299028],2914 [ -6.27131930, -0.00107500, 0.00065908, 7.27024430, 0.99671423, 0.99826592, 0.49299042],2915 [ -6.27132133, -0.00107463, 0.00065885, 7.27024670, 0.99671538, 0.99826653, 0.49299058],2916 [ -6.27132334, -0.00107425, 0.00065862, 7.27024909, 0.99671652, 0.99826713, 0.49299077],2917 [ -6.27132535, -0.00107388, 0.00065839, 7.27025147, 0.99671766, 0.99826773, 0.49299096],2918 [ -6.27132736, -0.00107351, 0.00065816, 7.27025385, 0.99671879, 0.99826833, 0.49299111],2919 [ -6.27132936, -0.00107314, 0.00065793, 7.27025622, 0.99671993, 0.99826893, 0.49299126],2920 [ -6.27133135, -0.00107277, 0.00065771, 7.27025858, 0.99672107, 0.99826953, 0.49299144],2921 [ -6.27133334, -0.00107239, 0.00065748, 7.27026094, 0.99672221, 0.99827013, 0.49299160],2922 [ -6.27133532, -0.00107202, 0.00065725, 7.27026330, 0.99672334, 0.99827073, 0.49299180],2923 [ -6.27133730, -0.00107165, 0.00065702, 7.27026565, 0.99672448, 0.99827132, 0.49299193],2924 [ -6.27133928, -0.00107128, 0.00065680, 7.27026800, 0.99672561, 0.99827192, 0.49299212],2925 [ -6.27134125, -0.00107091, 0.00065657, 7.27027034, 0.99672674, 0.99827252, 0.49299227],2926 [ -6.27134321, -0.00107054, 0.00065634, 7.27027267, 0.99672788, 0.99827312, 0.49299243],2927 [ -6.27134517, -0.00107017, 0.00065611, 7.27027500, 0.99672901, 0.99827371, 0.49299259],2928 [ -6.27134713, -0.00106980, 0.00065589, 7.27027733, 0.99673014, 0.99827431, 0.49299280],2929 [ -6.27134908, -0.00106943, 0.00065566, 7.27027964, 0.99673127, 0.99827491, 0.49299296],2930 [ -6.27135102, -0.00106906, 0.00065543, 7.27028196, 0.99673240, 0.99827550, 0.49299309],2931 [ -6.27135296, -0.00106870, 0.00065521, 7.27028427, 0.99673353, 0.99827610, 0.49299327],2932 [ -6.27135490, -0.00106833, 0.00065498, 7.27028657, 0.99673466, 0.99827669, 0.49299344],2933 [ -6.27135683, -0.00106796, 0.00065476, 7.27028887, 0.99673578, 0.99827729, 0.49299361],2934 [ -6.27135875, -0.00106759, 0.00065453, 7.27029116, 0.99673691, 0.99827788, 0.49299378],2935 [ -6.27136067, -0.00106722, 0.00065430, 7.27029345, 0.99673804, 0.99827847, 0.49299395],2936 [ -6.27136259, -0.00106685, 0.00065408, 7.27029574, 0.99673916, 0.99827907, 0.49299413],2937 [ -6.27136450, -0.00106649, 0.00065385, 7.27029801, 0.99674028, 0.99827966, 0.49299427],2938 [ -6.27136641, -0.00106612, 0.00065363, 7.27030029, 0.99674141, 0.99828025, 0.49299442],2939 [ -6.27136831, -0.00106575, 0.00065340, 7.27030256, 0.99674253, 0.99828084, 0.49299460],2940 [ -6.27137021, -0.00106539, 0.00065318, 7.27030482, 0.99674365, 0.99828143, 0.49299474],2941 [ -6.27137210, -0.00106502, 0.00065295, 7.27030708, 0.99674477, 0.99828203, 0.49299490],2942 [ -6.27137399, -0.00106465, 0.00065273, 7.27030933, 0.99674589, 0.99828262, 0.49299509],2943 [ -6.27137587, -0.00106429, 0.00065250, 7.27031158, 0.99674701, 0.99828321, 0.49299525],2944 [ -6.27137775, -0.00106392, 0.00065228, 7.27031382, 0.99674813, 0.99828380, 0.49299541],2945 [ -6.27137962, -0.00106356, 0.00065206, 7.27031606, 0.99674925, 0.99828439, 0.49299561],2946 [ -6.27138149, -0.00106319, 0.00065183, 7.27031830, 0.99675037, 0.99828497, 0.49299573],2947 [ -6.27138335, -0.00106283, 0.00065161, 7.27032053, 0.99675148, 0.99828556, 0.49299589],2948 [ -6.27138521, -0.00106246, 0.00065139, 7.27032275, 0.99675260, 0.99828615, 0.49299603],2949 [ -6.27138707, -0.00106210, 0.00065116, 7.27032497, 0.99675371, 0.99828674, 0.49299621],2950 [ -6.27138892, -0.00106173, 0.00065094, 7.27032719, 0.99675483, 0.99828733, 0.49299635],2951 [ -6.27139077, -0.00106137, 0.00065072, 7.27032940, 0.99675594, 0.99828791, 0.49299653],2952 [ -6.27139261, -0.00106101, 0.00065049, 7.27033160, 0.99675705, 0.99828850, 0.49299670],2953 [ -6.27139445, -0.00106064, 0.00065027, 7.27033380, 0.99675816, 0.99828909, 0.49299687],2954 [ -6.27139628, -0.00106028, 0.00065005, 7.27033600, 0.99675928, 0.99828967, 0.49299705],2955 [ -6.27139811, -0.00105992, 0.00064982, 7.27033819, 0.99676039, 0.99829026, 0.49299718],2956 [ -6.27139993, -0.00105956, 0.00064960, 7.27034037, 0.99676150, 0.99829084, 0.49299736],2957 [ -6.27140175, -0.00105919, 0.00064938, 7.27034256, 0.99676260, 0.99829143, 0.49299751],2958 [ -6.27140356, -0.00105883, 0.00064916, 7.27034473, 0.99676371, 0.99829201, 0.49299765],2959 [ -6.27140537, -0.00105847, 0.00064893, 7.27034690, 0.99676482, 0.99829260, 0.49299782],2960 [ -6.27140718, -0.00105811, 0.00064871, 7.27034907, 0.99676593, 0.99829318, 0.49299800],2961 [ -6.27140898, -0.00105775, 0.00064849, 7.27035123, 0.99676703, 0.99829376, 0.49299816],2962 [ -6.27141078, -0.00105739, 0.00064827, 7.27035339, 0.99676814, 0.99829434, 0.49299833],2963 [ -6.27141257, -0.00105702, 0.00064805, 7.27035555, 0.99676924, 0.99829493, 0.49299845],2964 [ -6.27141436, -0.00105666, 0.00064783, 7.27035770, 0.99677034, 0.99829551, 0.49299862],2965 [ -6.27141614, -0.00105630, 0.00064761, 7.27035984, 0.99677145, 0.99829609, 0.49299878],2966 [ -6.27141792, -0.00105594, 0.00064739, 7.27036198, 0.99677255, 0.99829667, 0.49299891],2967 [ -6.27141970, -0.00105558, 0.00064716, 7.27036412, 0.99677365, 0.99829725, 0.49299912],2968 [ -6.27142147, -0.00105522, 0.00064694, 7.27036625, 0.99677475, 0.99829783, 0.49299926],2969 [ -6.27142324, -0.00105486, 0.00064672, 7.27036837, 0.99677585, 0.99829841, 0.49299943],2970 [ -6.27142500, -0.00105451, 0.00064650, 7.27037050, 0.99677695, 0.99829899, 0.49299955],2971 [ -6.27142676, -0.00105415, 0.00064628, 7.27037261, 0.99677805, 0.99829957, 0.49299971],2972 [ -6.27142851, -0.00105379, 0.00064606, 7.27037473, 0.99677914, 0.99830015, 0.49299984],2973 [ -6.27143026, -0.00105343, 0.00064584, 7.27037683, 0.99678024, 0.99830073, 0.49300001],2974 [ -6.27143201, -0.00105307, 0.00064562, 7.27037894, 0.99678134, 0.99830131, 0.49300017],2975 [ -6.27143375, -0.00105271, 0.00064540, 7.27038104, 0.99678243, 0.99830188, 0.49300033],2976 [ -6.27143549, -0.00105236, 0.00064518, 7.27038313, 0.99678353, 0.99830246, 0.49300050],2977 [ -6.27143722, -0.00105200, 0.00064496, 7.27038522, 0.99678462, 0.99830304, 0.49300065],2978 [ -6.27143895, -0.00105164, 0.00064475, 7.27038731, 0.99678571, 0.99830361, 0.49300081],2979 [ -6.27144068, -0.00105128, 0.00064453, 7.27038939, 0.99678681, 0.99830419, 0.49300096],2980 [ -6.27144240, -0.00105093, 0.00064431, 7.27039147, 0.99678790, 0.99830477, 0.49300112],2981 [ -6.27144412, -0.00105057, 0.00064409, 7.27039355, 0.99678899, 0.99830534, 0.49300126],2982 [ -6.27144583, -0.00105021, 0.00064387, 7.27039561, 0.99679008, 0.99830592, 0.49300141],2983 [ -6.27144754, -0.00104986, 0.00064365, 7.27039768, 0.99679117, 0.99830649, 0.49300158],2984 [ -6.27144924, -0.00104950, 0.00064343, 7.27039974, 0.99679226, 0.99830706, 0.49300174],2985 [ -6.27145094, -0.00104915, 0.00064322, 7.27040180, 0.99679334, 0.99830764, 0.49300191],2986 [ -6.27145264, -0.00104879, 0.00064300, 7.27040385, 0.99679443, 0.99830821, 0.49300203],2987 [ -6.27145433, -0.00104844, 0.00064278, 7.27040590, 0.99679552, 0.99830878, 0.49300220],2988 [ -6.27145602, -0.00104808, 0.00064256, 7.27040794, 0.99679660, 0.99830936, 0.49300234],2989 [ -6.27145771, -0.00104773, 0.00064234, 7.27040998, 0.99679769, 0.99830993, 0.49300248],2990 [ -6.27145939, -0.00104737, 0.00064213, 7.27041202, 0.99679877, 0.99831050, 0.49300264],2991 [ -6.27146107, -0.00104702, 0.00064191, 7.27041405, 0.99679986, 0.99831107, 0.49300280],2992 [ -6.27146274, -0.00104667, 0.00064169, 7.27041607, 0.99680094, 0.99831164, 0.49300294],2993 [ -6.27146441, -0.00104631, 0.00064148, 7.27041810, 0.99680202, 0.99831221, 0.49300310],2994 [ -6.27146607, -0.00104596, 0.00064126, 7.27042012, 0.99680310, 0.99831278, 0.49300325],2995 [ -6.27146774, -0.00104561, 0.00064104, 7.27042213, 0.99680418, 0.99831335, 0.49300340],2996 [ -6.27146939, -0.00104525, 0.00064083, 7.27042414, 0.99680526, 0.99831392, 0.49300357],2997 [ -6.27147105, -0.00104490, 0.00064061, 7.27042615, 0.99680634, 0.99831449, 0.49300370],2998 [ -6.27147270, -0.00104455, 0.00064039, 7.27042815, 0.99680742, 0.99831506, 0.49300390],2999 [ -6.27147434, -0.00104420, 0.00064018, 7.27043015, 0.99680850, 0.99831563, 0.49300402],3000 [ -6.27147599, -0.00104384, 0.00063996, 7.27043214, 0.99680957, 0.99831620, 0.49300417],3001 [ -6.27147762, -0.00104349, 0.00063975, 7.27043413, 0.99681065, 0.99831676, 0.49300431],3002 [ -6.27147926, -0.00104314, 0.00063953, 7.27043612, 0.99681172, 0.99831733, 0.49300449],3003 [ -6.27148089, -0.00104279, 0.00063931, 7.27043810, 0.99681280, 0.99831790, 0.49300460],3004 [ -6.27148252, -0.00104244, 0.00063910, 7.27044008, 0.99681387, 0.99831846, 0.49300478],3005 [ -6.27148414, -0.00104209, 0.00063888, 7.27044205, 0.99681495, 0.99831903, 0.49300494],3006 [ -6.27148576, -0.00104174, 0.00063867, 7.27044402, 0.99681602, 0.99831959, 0.49300507],3007 [ -6.27148738, -0.00104139, 0.00063845, 7.27044599, 0.99681709, 0.99832016, 0.49300523],3008 [ -6.27148899, -0.00104104, 0.00063824, 7.27044795, 0.99681816, 0.99832072, 0.49300537],3009 [ -6.27149060, -0.00104069, 0.00063802, 7.27044991, 0.99681923, 0.99832129, 0.49300552],3010 [ -6.27149220, -0.00104034, 0.00063781, 7.27045186, 0.99682030, 0.99832185, 0.49300567],3011 [ -6.27149380, -0.00103999, 0.00063760, 7.27045382, 0.99682137, 0.99832242, 0.49300583],3012 [ -6.27149540, -0.00103964, 0.00063738, 7.27045576, 0.99682244, 0.99832298, 0.49300595],3013 [ -6.27149699, -0.00103929, 0.00063717, 7.27045771, 0.99682351, 0.99832354, 0.49300609],3014 [ -6.27149859, -0.00103894, 0.00063695, 7.27045964, 0.99682457, 0.99832411, 0.49300627],3015 [ -6.27150017, -0.00103859, 0.00063674, 7.27046158, 0.99682564, 0.99832467, 0.49300642],3016 [ -6.27150175, -0.00103824, 0.00063653, 7.27046351, 0.99682670, 0.99832523, 0.49300653],3017 [ -6.27150333, -0.00103790, 0.00063631, 7.27046544, 0.99682777, 0.99832579, 0.49300671],3018 [ -6.27150491, -0.00103755, 0.00063610, 7.27046736, 0.99682883, 0.99832635, 0.49300686],3019 [ -6.27150648, -0.00103720, 0.00063589, 7.27046928, 0.99682990, 0.99832691, 0.49300700],3020 [ -6.27150805, -0.00103685, 0.00063567, 7.27047120, 0.99683096, 0.99832747, 0.49300717],3021 [ -6.27150962, -0.00103651, 0.00063546, 7.27047311, 0.99683202, 0.99832803, 0.49300731],3022 [ -6.27151118, -0.00103616, 0.00063525, 7.27047502, 0.99683308, 0.99832859, 0.49300742],3023 [ -6.27151274, -0.00103581, 0.00063503, 7.27047692, 0.99683414, 0.99832915, 0.49300759],3024 [ -6.27151429, -0.00103547, 0.00063482, 7.27047882, 0.99683520, 0.99832971, 0.49300775],3025 [ -6.27151584, -0.00103512, 0.00063461, 7.27048072, 0.99683626, 0.99833027, 0.49300787],3026 [ -6.27151739, -0.00103478, 0.00063440, 7.27048262, 0.99683732, 0.99833083, 0.49300803],3027 [ -6.27151893, -0.00103443, 0.00063419, 7.27048451, 0.99683838, 0.99833138, 0.49300818],3028 [ -6.27152048, -0.00103408, 0.00063397, 7.27048639, 0.99683943, 0.99833194, 0.49300831],3029 [ -6.27152201, -0.00103374, 0.00063376, 7.27048827, 0.99684049, 0.99833250, 0.49300846],3030 [ -6.27152355, -0.00103339, 0.00063355, 7.27049015, 0.99684154, 0.99833306, 0.49300863],3031 [ -6.27152508, -0.00103305, 0.00063334, 7.27049203, 0.99684260, 0.99833361, 0.49300877],3032 [ -6.27152660, -0.00103270, 0.00063313, 7.27049390, 0.99684365, 0.99833417, 0.49300891],3033 [ -6.27152813, -0.00103236, 0.00063292, 7.27049577, 0.99684471, 0.99833472, 0.49300907],3034 [ -6.27152965, -0.00103202, 0.00063271, 7.27049763, 0.99684576, 0.99833528, 0.49300922],3035 [ -6.27153117, -0.00103167, 0.00063249, 7.27049949, 0.99684681, 0.99833583, 0.49300935],3036 [ -6.27153268, -0.00103133, 0.00063228, 7.27050135, 0.99684786, 0.99833639, 0.49300949],3037 [ -6.27153419, -0.00103099, 0.00063207, 7.27050320, 0.99684891, 0.99833694, 0.49300966],3038 [ -6.27153570, -0.00103064, 0.00063186, 7.27050505, 0.99684996, 0.99833749, 0.49300980],3039 [ -6.27153720, -0.00103030, 0.00063165, 7.27050690, 0.99685101, 0.99833805, 0.49300992],3040 [ -6.27153870, -0.00102996, 0.00063144, 7.27050874, 0.99685206, 0.99833860, 0.49301003],3041 [ -6.27154020, -0.00102961, 0.00063123, 7.27051058, 0.99685311, 0.99833915, 0.49301024],3042 [ -6.27154169, -0.00102927, 0.00063102, 7.27051242, 0.99685415, 0.99833971, 0.49301036],3043 [ -6.27154318, -0.00102893, 0.00063081, 7.27051425, 0.99685520, 0.99834026, 0.49301051],3044 [ -6.27154467, -0.00102859, 0.00063060, 7.27051608, 0.99685625, 0.99834081, 0.49301064],3045 [ -6.27154615, -0.00102825, 0.00063039, 7.27051791, 0.99685729, 0.99834136, 0.49301076],3046 [ -6.27154763, -0.00102791, 0.00063018, 7.27051973, 0.99685834, 0.99834191, 0.49301089],3047 [ -6.27154911, -0.00102756, 0.00062997, 7.27052155, 0.99685938, 0.99834246, 0.49301105],3048 [ -6.27155059, -0.00102722, 0.00062976, 7.27052336, 0.99686042, 0.99834301, 0.49301119],3049 [ -6.27155206, -0.00102688, 0.00062956, 7.27052517, 0.99686146, 0.99834356, 0.49301134],3050 [ -6.27155352, -0.00102654, 0.00062935, 7.27052698, 0.99686251, 0.99834411, 0.49301148],3051 [ -6.27155499, -0.00102620, 0.00062914, 7.27052879, 0.99686355, 0.99834466, 0.49301163],3052 [ -6.27155645, -0.00102586, 0.00062893, 7.27053059, 0.99686459, 0.99834521, 0.49301176],3053 [ -6.27155791, -0.00102552, 0.00062872, 7.27053239, 0.99686563, 0.99834576, 0.49301188],3054 [ -6.27155936, -0.00102518, 0.00062851, 7.27053418, 0.99686666, 0.99834630, 0.49301206],3055 [ -6.27156082, -0.00102484, 0.00062830, 7.27053597, 0.99686770, 0.99834685, 0.49301220],3056 [ -6.27156226, -0.00102451, 0.00062810, 7.27053776, 0.99686874, 0.99834740, 0.49301233],3057 [ -6.27156371, -0.00102417, 0.00062789, 7.27053954, 0.99686978, 0.99834794, 0.49301246],3058 [ -6.27156515, -0.00102383, 0.00062768, 7.27054132, 0.99687081, 0.99834849, 0.49301262],3059 [ -6.27156659, -0.00102349, 0.00062747, 7.27054310, 0.99687185, 0.99834904, 0.49301280],3060 [ -6.27156803, -0.00102315, 0.00062727, 7.27054488, 0.99687288, 0.99834958, 0.49301294],3061 [ -6.27156946, -0.00102281, 0.00062706, 7.27054665, 0.99687392, 0.99835013, 0.49301309],3062 [ -6.27157089, -0.00102248, 0.00062685, 7.27054842, 0.99687495, 0.99835067, 0.49301319],3063 [ -6.27157232, -0.00102214, 0.00062664, 7.27055018, 0.99687598, 0.99835122, 0.49301335],3064 [ -6.27157374, -0.00102180, 0.00062644, 7.27055194, 0.99687701, 0.99835176, 0.49301345],3065 [ -6.27157517, -0.00102146, 0.00062623, 7.27055370, 0.99687805, 0.99835231, 0.49301362],3066 [ -6.27157658, -0.00102113, 0.00062602, 7.27055546, 0.99687908, 0.99835285, 0.49301372],3067 [ -6.27157800, -0.00102079, 0.00062582, 7.27055721, 0.99688011, 0.99835339, 0.49301383],3068 [ -6.27157941, -0.00102045, 0.00062561, 7.27055896, 0.99688113, 0.99835393, 0.49301405],3069 [ -6.27158082, -0.00102012, 0.00062540, 7.27056070, 0.99688216, 0.99835448, 0.49301418],3070 [ -6.27158223, -0.00101978, 0.00062520, 7.27056244, 0.99688319, 0.99835502, 0.49301433],3071 [ -6.27158363, -0.00101945, 0.00062499, 7.27056418, 0.99688422, 0.99835556, 0.49301444],3072 [ -6.27158503, -0.00101911, 0.00062479, 7.27056592, 0.99688524, 0.99835610, 0.49301454],3073 [ -6.27158643, -0.00101878, 0.00062458, 7.27056765, 0.99688627, 0.99835664, 0.49301468],3074 [ -6.27158782, -0.00101844, 0.00062438, 7.27056938, 0.99688730, 0.99835718, 0.49301483],3075 [ -6.27158921, -0.00101811, 0.00062417, 7.27057111, 0.99688832, 0.99835772, 0.49301499],3076 [ -6.27159060, -0.00101777, 0.00062396, 7.27057283, 0.99688934, 0.99835826, 0.49301513],3077 [ -6.27159199, -0.00101744, 0.00062376, 7.27057455, 0.99689037, 0.99835880, 0.49301528],3078 [ -6.27159337, -0.00101710, 0.00062355, 7.27057627, 0.99689139, 0.99835934, 0.49301541],3079 [ -6.27159475, -0.00101677, 0.00062335, 7.27057798, 0.99689241, 0.99835988, 0.49301553],3080 [ -6.27159613, -0.00101644, 0.00062314, 7.27057969, 0.99689343, 0.99836042, 0.49301569],3081 [ -6.27159750, -0.00101610, 0.00062294, 7.27058140, 0.99689445, 0.99836096, 0.49301584],3082 [ -6.27159887, -0.00101577, 0.00062274, 7.27058310, 0.99689547, 0.99836150, 0.49301593],3083 [ -6.27160024, -0.00101544, 0.00062253, 7.27058480, 0.99689649, 0.99836203, 0.49301608],3084 [ -6.27160160, -0.00101510, 0.00062233, 7.27058650, 0.99689751, 0.99836257, 0.49301621],3085 [ -6.27160297, -0.00101477, 0.00062212, 7.27058820, 0.99689853, 0.99836311, 0.49301634],3086 [ -6.27160433, -0.00101444, 0.00062192, 7.27058989, 0.99689954, 0.99836364, 0.49301647],3087 [ -6.27160568, -0.00101410, 0.00062171, 7.27059158, 0.99690056, 0.99836418, 0.49301663],3088 [ -6.27160704, -0.00101377, 0.00062151, 7.27059327, 0.99690158, 0.99836472, 0.49301679],3089 [ -6.27160839, -0.00101344, 0.00062131, 7.27059495, 0.99690259, 0.99836525, 0.49301693],3090 [ -6.27160974, -0.00101311, 0.00062110, 7.27059663, 0.99690361, 0.99836579, 0.49301706],3091 [ -6.27161108, -0.00101278, 0.00062090, 7.27059831, 0.99690462, 0.99836632, 0.49301722],3092 [ -6.27161243, -0.00101245, 0.00062070, 7.27059998, 0.99690563, 0.99836686, 0.49301730],3093 [ -6.27161377, -0.00101212, 0.00062049, 7.27060165, 0.99690664, 0.99836739, 0.49301748],3094 [ -6.27161511, -0.00101179, 0.00062029, 7.27060332, 0.99690766, 0.99836792, 0.49301757],3095 [ -6.27161644, -0.00101146, 0.00062009, 7.27060499, 0.99690867, 0.99836846, 0.49301772],3096 [ -6.27161777, -0.00101112, 0.00061989, 7.27060665, 0.99690968, 0.99836899, 0.49301787],3097 [ -6.27161910, -0.00101079, 0.00061968, 7.27060831, 0.99691069, 0.99836952, 0.49301798],3098 [ -6.27162043, -0.00101046, 0.00061948, 7.27060996, 0.99691170, 0.99837005, 0.49301811],3099 [ -6.27162175, -0.00101014, 0.00061928, 7.27061162, 0.99691271, 0.99837059, 0.49301825],3100 [ -6.27162307, -0.00100981, 0.00061908, 7.27061327, 0.99691371, 0.99837112, 0.49301840],3101 [ -6.27162439, -0.00100948, 0.00061887, 7.27061492, 0.99691472, 0.99837165, 0.49301855],3102 [ -6.27162571, -0.00100915, 0.00061867, 7.27061656, 0.99691573, 0.99837218, 0.49301866],3103 [ -6.27162702, -0.00100882, 0.00061847, 7.27061820, 0.99691673, 0.99837271, 0.49301881],3104 [ -6.27162833, -0.00100849, 0.00061827, 7.27061984, 0.99691774, 0.99837324, 0.49301892],3105 [ -6.27162964, -0.00100816, 0.00061807, 7.27062148, 0.99691874, 0.99837377, 0.49301906],3106 [ -6.27163095, -0.00100783, 0.00061787, 7.27062311, 0.99691975, 0.99837430, 0.49301923],3107 [ -6.27163225, -0.00100751, 0.00061767, 7.27062474, 0.99692075, 0.99837483, 0.49301935],3108 [ -6.27163355, -0.00100718, 0.00061746, 7.27062637, 0.99692175, 0.99837536, 0.49301944],3109 [ -6.27163485, -0.00100685, 0.00061726, 7.27062800, 0.99692275, 0.99837589, 0.49301961],3110 [ -6.27163614, -0.00100652, 0.00061706, 7.27062962, 0.99692375, 0.99837641, 0.49301974],3111 [ -6.27163743, -0.00100620, 0.00061686, 7.27063124, 0.99692476, 0.99837694, 0.49301990],3112 [ -6.27163872, -0.00100587, 0.00061666, 7.27063285, 0.99692576, 0.99837747, 0.49301996],3113 [ -6.27164001, -0.00100554, 0.00061646, 7.27063447, 0.99692675, 0.99837800, 0.49302013],3114 [ -6.27164130, -0.00100522, 0.00061626, 7.27063608, 0.99692775, 0.99837852, 0.49302024],3115 [ -6.27164258, -0.00100489, 0.00061606, 7.27063769, 0.99692875, 0.99837905, 0.49302039],3116 [ -6.27164386, -0.00100456, 0.00061586, 7.27063929, 0.99692975, 0.99837957, 0.49302050],3117 [ -6.27164513, -0.00100424, 0.00061566, 7.27064090, 0.99693075, 0.99838010, 0.49302064],3118 [ -6.27164641, -0.00100391, 0.00061546, 7.27064250, 0.99693174, 0.99838063, 0.49302080],3119 [ -6.27164768, -0.00100359, 0.00061526, 7.27064409, 0.99693274, 0.99838115, 0.49302092],3120 [ -6.27164895, -0.00100326, 0.00061506, 7.27064569, 0.99693373, 0.99838168, 0.49302106],3121 [ -6.27165022, -0.00100294, 0.00061486, 7.27064728, 0.99693473, 0.99838220, 0.49302117],3122 [ -6.27165148, -0.00100261, 0.00061466, 7.27064887, 0.99693572, 0.99838272, 0.49302135],3123 [ -6.27165274, -0.00100229, 0.00061446, 7.27065045, 0.99693671, 0.99838325, 0.49302147],3124 [ -6.27165400, -0.00100196, 0.00061427, 7.27065204, 0.99693770, 0.99838377, 0.49302161],3125 [ -6.27165526, -0.00100164, 0.00061407, 7.27065362, 0.99693870, 0.99838429, 0.49302174],3126 [ -6.27165651, -0.00100132, 0.00061387, 7.27065520, 0.99693969, 0.99838482, 0.49302182],3127 [ -6.27165777, -0.00100099, 0.00061367, 7.27065677, 0.99694068, 0.99838534, 0.49302200],3128 [ -6.27165902, -0.00100067, 0.00061347, 7.27065835, 0.99694167, 0.99838586, 0.49302214],3129 [ -6.27166026, -0.00100035, 0.00061327, 7.27065992, 0.99694266, 0.99838638, 0.49302227],3130 [ -6.27166151, -0.00100002, 0.00061307, 7.27066149, 0.99694364, 0.99838690, 0.49302237],3131 [ -6.27166275, -0.00099970, 0.00061288, 7.27066305, 0.99694463, 0.99838742, 0.49302253],3132 [ -6.27166399, -0.00099938, 0.00061268, 7.27066461, 0.99694562, 0.99838795, 0.49302264],3133 [ -6.27166523, -0.00099905, 0.00061248, 7.27066617, 0.99694660, 0.99838847, 0.49302277],3134 [ -6.27166646, -0.00099873, 0.00061228, 7.27066773, 0.99694759, 0.99838899, 0.49302290],3135 [ -6.27166770, -0.00099841, 0.00061208, 7.27066928, 0.99694858, 0.99838951, 0.49302301],3136 [ -6.27166893, -0.00099809, 0.00061189, 7.27067084, 0.99694956, 0.99839002, 0.49302315],3137 [ -6.27167015, -0.00099777, 0.00061169, 7.27067239, 0.99695054, 0.99839054, 0.49302331],3138 [ -6.27167138, -0.00099745, 0.00061149, 7.27067393, 0.99695153, 0.99839106, 0.49302343],3139 [ -6.27167260, -0.00099712, 0.00061130, 7.27067548, 0.99695251, 0.99839158, 0.49302354],3140 [ -6.27167382, -0.00099680, 0.00061110, 7.27067702, 0.99695349, 0.99839210, 0.49302367],3141 [ -6.27167504, -0.00099648, 0.00061090, 7.27067856, 0.99695447, 0.99839262, 0.49302378],3142 [ -6.27167626, -0.00099616, 0.00061070, 7.27068010, 0.99695545, 0.99839313, 0.49302391],3143 [ -6.27167747, -0.00099584, 0.00061051, 7.27068163, 0.99695643, 0.99839365, 0.49302405],3144 [ -6.27167868, -0.00099552, 0.00061031, 7.27068316, 0.99695741, 0.99839417, 0.49302418],3145 [ -6.27167989, -0.00099520, 0.00061012, 7.27068469, 0.99695839, 0.99839468, 0.49302428],3146 [ -6.27168110, -0.00099488, 0.00060992, 7.27068622, 0.99695937, 0.99839520, 0.49302442],3147 [ -6.27168231, -0.00099456, 0.00060972, 7.27068774, 0.99696035, 0.99839571, 0.49302457],3148 [ -6.27168351, -0.00099424, 0.00060953, 7.27068927, 0.99696133, 0.99839623, 0.49302469],3149 [ -6.27168471, -0.00099392, 0.00060933, 7.27069078, 0.99696230, 0.99839674, 0.49302483],3150 [ -6.27168591, -0.00099360, 0.00060914, 7.27069230, 0.99696328, 0.99839726, 0.49302493],3151 [ -6.27168710, -0.00099329, 0.00060894, 7.27069382, 0.99696425, 0.99839777, 0.49302510],3152 [ -6.27168829, -0.00099297, 0.00060874, 7.27069533, 0.99696523, 0.99839829, 0.49302519],3153 [ -6.27168949, -0.00099265, 0.00060855, 7.27069684, 0.99696620, 0.99839880, 0.49302531],3154 [ -6.27169067, -0.00099233, 0.00060835, 7.27069834, 0.99696717, 0.99839931, 0.49302546],3155 [ -6.27169186, -0.00099201, 0.00060816, 7.27069985, 0.99696815, 0.99839983, 0.49302559],3156 [ -6.27169305, -0.00099170, 0.00060796, 7.27070135, 0.99696912, 0.99840034, 0.49302572],3157 [ -6.27169423, -0.00099138, 0.00060777, 7.27070285, 0.99697009, 0.99840085, 0.49302581],3158 [ -6.27169541, -0.00099106, 0.00060757, 7.27070435, 0.99697106, 0.99840137, 0.49302594],3159 [ -6.27169659, -0.00099074, 0.00060738, 7.27070584, 0.99697203, 0.99840188, 0.49302606],3160 [ -6.27169776, -0.00099043, 0.00060719, 7.27070734, 0.99697300, 0.99840239, 0.49302620],3161 [ -6.27169893, -0.00099011, 0.00060699, 7.27070883, 0.99697397, 0.99840290, 0.49302635],3162 [ -6.27170011, -0.00098979, 0.00060680, 7.27071031, 0.99697494, 0.99840341, 0.49302644],3163 [ -6.27170128, -0.00098948, 0.00060660, 7.27071180, 0.99697590, 0.99840392, 0.49302662],3164 [ -6.27170244, -0.00098916, 0.00060641, 7.27071328, 0.99697687, 0.99840443, 0.49302676],3165 [ -6.27170361, -0.00098884, 0.00060622, 7.27071476, 0.99697784, 0.99840494, 0.49302682],3166 [ -6.27170477, -0.00098853, 0.00060602, 7.27071624, 0.99697880, 0.99840545, 0.49302696],3167 [ -6.27170593, -0.00098821, 0.00060583, 7.27071772, 0.99697977, 0.99840596, 0.49302711],3168 [ -6.27170709, -0.00098790, 0.00060563, 7.27071919, 0.99698073, 0.99840647, 0.49302721],3169 [ -6.27170825, -0.00098758, 0.00060544, 7.27072066, 0.99698170, 0.99840698, 0.49302733],3170 [ -6.27170940, -0.00098727, 0.00060525, 7.27072213, 0.99698266, 0.99840748, 0.49302748],3171 [ -6.27171055, -0.00098695, 0.00060505, 7.27072360, 0.99698362, 0.99840799, 0.49302765],3172 [ -6.27171170, -0.00098664, 0.00060486, 7.27072506, 0.99698459, 0.99840850, 0.49302773],3173 [ -6.27171285, -0.00098633, 0.00060467, 7.27072652, 0.99698555, 0.99840901, 0.49302786],3174 [ -6.27171399, -0.00098601, 0.00060448, 7.27072798, 0.99698651, 0.99840951, 0.49302797],3175 [ -6.27171514, -0.00098570, 0.00060428, 7.27072944, 0.99698747, 0.99841002, 0.49302811],3176 [ -6.27171628, -0.00098538, 0.00060409, 7.27073090, 0.99698843, 0.99841053, 0.49302824],3177 [ -6.27171742, -0.00098507, 0.00060390, 7.27073235, 0.99698939, 0.99841103, 0.49302835],3178 [ -6.27171856, -0.00098476, 0.00060371, 7.27073380, 0.99699035, 0.99841154, 0.49302848],3179 [ -6.27171969, -0.00098444, 0.00060351, 7.27073525, 0.99699130, 0.99841204, 0.49302858],3180 [ -6.27172082, -0.00098413, 0.00060332, 7.27073669, 0.99699226, 0.99841255, 0.49302871],3181 [ -6.27172196, -0.00098382, 0.00060313, 7.27073814, 0.99699322, 0.99841305, 0.49302887],3182 [ -6.27172309, -0.00098351, 0.00060294, 7.27073958, 0.99699417, 0.99841356, 0.49302895],3183 [ -6.27172421, -0.00098319, 0.00060275, 7.27074102, 0.99699513, 0.99841406, 0.49302912],3184 [ -6.27172534, -0.00098288, 0.00060256, 7.27074246, 0.99699608, 0.99841456, 0.49302925],3185 [ -6.27172646, -0.00098257, 0.00060236, 7.27074389, 0.99699704, 0.99841507, 0.49302935],3186 [ -6.27172758, -0.00098226, 0.00060217, 7.27074532, 0.99699799, 0.99841557, 0.49302945],3187 [ -6.27172870, -0.00098195, 0.00060198, 7.27074676, 0.99699894, 0.99841607, 0.49302959],3188 [ -6.27172982, -0.00098163, 0.00060179, 7.27074818, 0.99699990, 0.99841657, 0.49302970],3189 [ -6.27173093, -0.00098132, 0.00060160, 7.27074961, 0.99700085, 0.99841708, 0.49302981],3190 [ -6.27173205, -0.00098101, 0.00060141, 7.27075103, 0.99700180, 0.99841758, 0.49302992],3191 [ -6.27173316, -0.00098070, 0.00060122, 7.27075246, 0.99700275, 0.99841808, 0.49303009],3192 [ -6.27173427, -0.00098039, 0.00060103, 7.27075388, 0.99700370, 0.99841858, 0.49303019],3193 [ -6.27173537, -0.00098008, 0.00060084, 7.27075529, 0.99700465, 0.99841908, 0.49303031],3194 [ -6.27173648, -0.00097977, 0.00060065, 7.27075671, 0.99700560, 0.99841958, 0.49303044],3195 [ -6.27173758, -0.00097946, 0.00060046, 7.27075812, 0.99700655, 0.99842008, 0.49303056],3196 [ -6.27173868, -0.00097915, 0.00060027, 7.27075953, 0.99700749, 0.99842058, 0.49303069],3197 [ -6.27173978, -0.00097884, 0.00060008, 7.27076094, 0.99700844, 0.99842108, 0.49303080],3198 [ -6.27174088, -0.00097853, 0.00059989, 7.27076235, 0.99700939, 0.99842158, 0.49303094],3199 [ -6.27174198, -0.00097822, 0.00059970, 7.27076375, 0.99701033, 0.99842208, 0.49303107],3200 [ -6.27174307, -0.00097791, 0.00059951, 7.27076516, 0.99701128, 0.99842258, 0.49303120],3201 [ -6.27174416, -0.00097761, 0.00059932, 7.27076656, 0.99701222, 0.99842308, 0.49303132],3202 [ -6.27174525, -0.00097730, 0.00059913, 7.27076795, 0.99701317, 0.99842357, 0.49303142],3203 [ -6.27174634, -0.00097699, 0.00059894, 7.27076935, 0.99701411, 0.99842407, 0.49303154],3204 [ -6.27174743, -0.00097668, 0.00059875, 7.27077075, 0.99701505, 0.99842457, 0.49303168],3205 [ -6.27174851, -0.00097637, 0.00059856, 7.27077214, 0.99701599, 0.99842507, 0.49303176],3206 [ -6.27174959, -0.00097606, 0.00059837, 7.27077353, 0.99701693, 0.99842556, 0.49303192],3207 [ -6.27175067, -0.00097576, 0.00059818, 7.27077491, 0.99701788, 0.99842606, 0.49303205],3208 [ -6.27175175, -0.00097545, 0.00059800, 7.27077630, 0.99701882, 0.99842656, 0.49303212],3209 [ -6.27175283, -0.00097514, 0.00059781, 7.27077769, 0.99701976, 0.99842705, 0.49303223],3210 [ -6.27175390, -0.00097484, 0.00059762, 7.27077907, 0.99702070, 0.99842755, 0.49303239],3211 [ -6.27175497, -0.00097453, 0.00059743, 7.27078045, 0.99702163, 0.99842804, 0.49303247],3212 [ -6.27175605, -0.00097422, 0.00059724, 7.27078182, 0.99702257, 0.99842854, 0.49303263],3213 [ -6.27175712, -0.00097392, 0.00059705, 7.27078320, 0.99702351, 0.99842903, 0.49303277],3214 [ -6.27175818, -0.00097361, 0.00059687, 7.27078457, 0.99702445, 0.99842952, 0.49303287],3215 [ -6.27175925, -0.00097330, 0.00059668, 7.27078595, 0.99702538, 0.99843002, 0.49303298],3216 [ -6.27176031, -0.00097300, 0.00059649, 7.27078731, 0.99702632, 0.99843051, 0.49303309],3217 [ -6.27176137, -0.00097269, 0.00059630, 7.27078868, 0.99702725, 0.99843101, 0.49303324],3218 [ -6.27176243, -0.00097239, 0.00059612, 7.27079005, 0.99702819, 0.99843150, 0.49303337],3219 [ -6.27176349, -0.00097208, 0.00059593, 7.27079141, 0.99702912, 0.99843199, 0.49303342],3220 [ -6.27176455, -0.00097178, 0.00059574, 7.27079277, 0.99703005, 0.99843248, 0.49303355],3221 [ -6.27176560, -0.00097147, 0.00059555, 7.27079413, 0.99703099, 0.99843298, 0.49303367],3222 [ -6.27176666, -0.00097117, 0.00059537, 7.27079549, 0.99703192, 0.99843347, 0.49303384],3223 [ -6.27176771, -0.00097086, 0.00059518, 7.27079685, 0.99703285, 0.99843396, 0.49303391],3224 [ -6.27176876, -0.00097056, 0.00059499, 7.27079820, 0.99703378, 0.99843445, 0.49303404],3225 [ -6.27176980, -0.00097025, 0.00059481, 7.27079955, 0.99703471, 0.99843494, 0.49303417],3226 [ -6.27177085, -0.00096995, 0.00059462, 7.27080090, 0.99703564, 0.99843543, 0.49303426],3227 [ -6.27177189, -0.00096965, 0.00059443, 7.27080225, 0.99703657, 0.99843592, 0.49303442],3228 [ -6.27177294, -0.00096934, 0.00059425, 7.27080359, 0.99703750, 0.99843641, 0.49303454],3229 [ -6.27177398, -0.00096904, 0.00059406, 7.27080494, 0.99703843, 0.99843690, 0.49303464],3230 [ -6.27177502, -0.00096874, 0.00059388, 7.27080628, 0.99703936, 0.99843739, 0.49303476],3231 [ -6.27177605, -0.00096843, 0.00059369, 7.27080762, 0.99704028, 0.99843788, 0.49303487],3232 [ -6.27177709, -0.00096813, 0.00059350, 7.27080896, 0.99704121, 0.99843837, 0.49303501],3233 [ -6.27177812, -0.00096783, 0.00059332, 7.27081030, 0.99704213, 0.99843886, 0.49303512],3234 [ -6.27177915, -0.00096752, 0.00059313, 7.27081163, 0.99704306, 0.99843934, 0.49303521],3235 [ -6.27178018, -0.00096722, 0.00059295, 7.27081296, 0.99704398, 0.99843983, 0.49303537],3236 [ -6.27178121, -0.00096692, 0.00059276, 7.27081429, 0.99704491, 0.99844032, 0.49303546],3237 [ -6.27178224, -0.00096662, 0.00059258, 7.27081562, 0.99704583, 0.99844081, 0.49303558],3238 [ -6.27178326, -0.00096632, 0.00059239, 7.27081695, 0.99704675, 0.99844129, 0.49303575],3239 [ -6.27178429, -0.00096602, 0.00059221, 7.27081827, 0.99704768, 0.99844178, 0.49303581],3240 [ -6.27178531, -0.00096571, 0.00059202, 7.27081960, 0.99704860, 0.99844227, 0.49303591],3241 [ -6.27178633, -0.00096541, 0.00059184, 7.27082092, 0.99704952, 0.99844275, 0.49303609],3242 [ -6.27178735, -0.00096511, 0.00059165, 7.27082224, 0.99705044, 0.99844324, 0.49303618],3243 [ -6.27178836, -0.00096481, 0.00059147, 7.27082355, 0.99705136, 0.99844372, 0.49303628],3244 [ -6.27178938, -0.00096451, 0.00059128, 7.27082487, 0.99705228, 0.99844421, 0.49303641],3245 [ -6.27179039, -0.00096421, 0.00059110, 7.27082618, 0.99705320, 0.99844469, 0.49303652],3246 [ -6.27179140, -0.00096391, 0.00059091, 7.27082749, 0.99705412, 0.99844518, 0.49303666],3247 [ -6.27179242, -0.00096361, 0.00059073, 7.27082881, 0.99705503, 0.99844566, 0.49303673],3248 [ -6.27179342, -0.00096331, 0.00059055, 7.27083011, 0.99705595, 0.99844614, 0.49303690],3249 [ -6.27179443, -0.00096301, 0.00059036, 7.27083142, 0.99705687, 0.99844663, 0.49303700],3250 [ -6.27179544, -0.00096271, 0.00059018, 7.27083272, 0.99705778, 0.99844711, 0.49303712],3251 [ -6.27179644, -0.00096241, 0.00058999, 7.27083403, 0.99705870, 0.99844759, 0.49303722],3252 [ -6.27179744, -0.00096211, 0.00058981, 7.27083533, 0.99705961, 0.99844808, 0.49303732],3253 [ -6.27179844, -0.00096181, 0.00058963, 7.27083663, 0.99706053, 0.99844856, 0.49303745],3254 [ -6.27179944, -0.00096152, 0.00058944, 7.27083792, 0.99706144, 0.99844904, 0.49303757],3255 [ -6.27180044, -0.00096122, 0.00058926, 7.27083922, 0.99706235, 0.99844952, 0.49303771],3256 [ -6.27180143, -0.00096092, 0.00058908, 7.27084051, 0.99706327, 0.99845000, 0.49303777],3257 [ -6.27180243, -0.00096062, 0.00058890, 7.27084181, 0.99706418, 0.99845048, 0.49303795],3258 [ -6.27180342, -0.00096032, 0.00058871, 7.27084310, 0.99706509, 0.99845097, 0.49303802],3259 [ -6.27180441, -0.00096002, 0.00058853, 7.27084438, 0.99706600, 0.99845145, 0.49303815],3260 [ -6.27180540, -0.00095973, 0.00058835, 7.27084567, 0.99706691, 0.99845193, 0.49303827],3261 [ -6.27180639, -0.00095943, 0.00058816, 7.27084696, 0.99706782, 0.99845241, 0.49303836],3262 [ -6.27180737, -0.00095913, 0.00058798, 7.27084824, 0.99706873, 0.99845289, 0.49303844],3263 [ -6.27180836, -0.00095884, 0.00058780, 7.27084952, 0.99706964, 0.99845336, 0.49303861],3264 [ -6.27180934, -0.00095854, 0.00058762, 7.27085080, 0.99707055, 0.99845384, 0.49303868],3265 [ -6.27181032, -0.00095824, 0.00058744, 7.27085208, 0.99707145, 0.99845432, 0.49303884],3266 [ -6.27181130, -0.00095795, 0.00058725, 7.27085335, 0.99707236, 0.99845480, 0.49303895],3267 [ -6.27181228, -0.00095765, 0.00058707, 7.27085463, 0.99707327, 0.99845528, 0.49303908],3268 [ -6.27181325, -0.00095735, 0.00058689, 7.27085590, 0.99707417, 0.99845576, 0.49303915],3269 [ -6.27181423, -0.00095706, 0.00058671, 7.27085717, 0.99707508, 0.99845623, 0.49303928],3270 [ -6.27181520, -0.00095676, 0.00058653, 7.27085844, 0.99707598, 0.99845671, 0.49303940],3271 [ -6.27181618, -0.00095647, 0.00058635, 7.27085971, 0.99707689, 0.99845719, 0.49303950],3272 [ -6.27181715, -0.00095617, 0.00058616, 7.27086098, 0.99707779, 0.99845766, 0.49303965],3273 [ -6.27181811, -0.00095588, 0.00058598, 7.27086224, 0.99707869, 0.99845814, 0.49303979],3274 [ -6.27181908, -0.00095558, 0.00058580, 7.27086350, 0.99707960, 0.99845862, 0.49303989],3275 [ -6.27182005, -0.00095529, 0.00058562, 7.27086476, 0.99708050, 0.99845909, 0.49303994],3276 [ -6.27182101, -0.00095499, 0.00058544, 7.27086602, 0.99708140, 0.99845957, 0.49304006],3277 [ -6.27182198, -0.00095470, 0.00058526, 7.27086728, 0.99708230, 0.99846004, 0.49304023],3278 [ -6.27182294, -0.00095440, 0.00058508, 7.27086854, 0.99708320, 0.99846052, 0.49304031],3279 [ -6.27182390, -0.00095411, 0.00058490, 7.27086979, 0.99708410, 0.99846099, 0.49304040],3280 [ -6.27182486, -0.00095381, 0.00058472, 7.27087104, 0.99708500, 0.99846147, 0.49304052],3281 [ -6.27182581, -0.00095352, 0.00058454, 7.27087229, 0.99708590, 0.99846194, 0.49304066],3282 [ -6.27182677, -0.00095323, 0.00058436, 7.27087354, 0.99708680, 0.99846242, 0.49304078],3283 [ -6.27182772, -0.00095293, 0.00058418, 7.27087479, 0.99708769, 0.99846289, 0.49304090],3284 [ -6.27182867, -0.00095264, 0.00058400, 7.27087603, 0.99708859, 0.99846336, 0.49304102],3285 [ -6.27182963, -0.00095235, 0.00058382, 7.27087728, 0.99708949, 0.99846383, 0.49304112],3286 [ -6.27183058, -0.00095205, 0.00058364, 7.27087852, 0.99709038, 0.99846431, 0.49304120],3287 [ -6.27183152, -0.00095176, 0.00058346, 7.27087976, 0.99709128, 0.99846478, 0.49304129],3288 [ -6.27183247, -0.00095147, 0.00058328, 7.27088100, 0.99709217, 0.99846525, 0.49304145],3289 [ -6.27183342, -0.00095118, 0.00058310, 7.27088224, 0.99709307, 0.99846572, 0.49304157],3290 [ -6.27183436, -0.00095088, 0.00058292, 7.27088348, 0.99709396, 0.99846619, 0.49304165],3291 [ -6.27183530, -0.00095059, 0.00058274, 7.27088471, 0.99709485, 0.99846667, 0.49304175],3292 [ -6.27183624, -0.00095030, 0.00058256, 7.27088594, 0.99709575, 0.99846714, 0.49304190],3293 [ -6.27183718, -0.00095001, 0.00058238, 7.27088717, 0.99709664, 0.99846761, 0.49304204],3294 [ -6.27183812, -0.00094972, 0.00058221, 7.27088840, 0.99709753, 0.99846808, 0.49304212],3295 [ -6.27183906, -0.00094943, 0.00058203, 7.27088963, 0.99709842, 0.99846855, 0.49304222],3296 [ -6.27183999, -0.00094914, 0.00058185, 7.27089086, 0.99709931, 0.99846902, 0.49304233],3297 [ -6.27184093, -0.00094884, 0.00058167, 7.27089208, 0.99710020, 0.99846949, 0.49304245],3298 [ -6.27184186, -0.00094855, 0.00058149, 7.27089331, 0.99710109, 0.99846996, 0.49304255],3299 [ -6.27184279, -0.00094826, 0.00058131, 7.27089453, 0.99710198, 0.99847042, 0.49304263],3300 [ -6.27184372, -0.00094797, 0.00058113, 7.27089575, 0.99710287, 0.99847089, 0.49304277],3301 [ -6.27184465, -0.00094768, 0.00058096, 7.27089697, 0.99710375, 0.99847136, 0.49304288],3302 [ -6.27184558, -0.00094739, 0.00058078, 7.27089818, 0.99710464, 0.99847183, 0.49304302],3303 [ -6.27184650, -0.00094710, 0.00058060, 7.27089940, 0.99710553, 0.99847230, 0.49304309],3304 [ -6.27184743, -0.00094681, 0.00058042, 7.27090061, 0.99710641, 0.99847276, 0.49304322],3305 [ -6.27184835, -0.00094652, 0.00058025, 7.27090182, 0.99710730, 0.99847323, 0.49304332],3306 [ -6.27184927, -0.00094623, 0.00058007, 7.27090304, 0.99710818, 0.99847370, 0.49304348],3307 [ -6.27185019, -0.00094595, 0.00057989, 7.27090424, 0.99710907, 0.99847416, 0.49304351],3308 [ -6.27185111, -0.00094566, 0.00057971, 7.27090545, 0.99710995, 0.99847463, 0.49304363],3309 [ -6.27185203, -0.00094537, 0.00057954, 7.27090666, 0.99711083, 0.99847510, 0.49304378],3310 [ -6.27185294, -0.00094508, 0.00057936, 7.27090786, 0.99711172, 0.99847556, 0.49304390],3311 [ -6.27185386, -0.00094479, 0.00057918, 7.27090907, 0.99711260, 0.99847603, 0.49304399],3312 [ -6.27185477, -0.00094450, 0.00057901, 7.27091027, 0.99711348, 0.99847649, 0.49304412],3313 [ -6.27185568, -0.00094421, 0.00057883, 7.27091147, 0.99711436, 0.99847696, 0.49304419],3314 [ -6.27185659, -0.00094393, 0.00057865, 7.27091267, 0.99711524, 0.99847742, 0.49304433],3315 [ -6.27185750, -0.00094364, 0.00057848, 7.27091386, 0.99711612, 0.99847789, 0.49304445],3316 [ -6.27185841, -0.00094335, 0.00057830, 7.27091506, 0.99711700, 0.99847835, 0.49304453],3317 [ -6.27185932, -0.00094306, 0.00057812, 7.27091625, 0.99711788, 0.99847881, 0.49304463],3318 [ -6.27186022, -0.00094278, 0.00057795, 7.27091745, 0.99711876, 0.99847928, 0.49304471],3319 [ -6.27186113, -0.00094249, 0.00057777, 7.27091864, 0.99711964, 0.99847974, 0.49304488],3320 [ -6.27186203, -0.00094220, 0.00057759, 7.27091983, 0.99712051, 0.99848020, 0.49304496],3321 [ -6.27186293, -0.00094192, 0.00057742, 7.27092101, 0.99712139, 0.99848067, 0.49304509],3322 [ -6.27186383, -0.00094163, 0.00057724, 7.27092220, 0.99712227, 0.99848113, 0.49304521],3323 [ -6.27186473, -0.00094134, 0.00057707, 7.27092339, 0.99712314, 0.99848159, 0.49304528],3324 [ -6.27186563, -0.00094106, 0.00057689, 7.27092457, 0.99712402, 0.99848205, 0.49304542],3325 [ -6.27186652, -0.00094077, 0.00057672, 7.27092575, 0.99712489, 0.99848251, 0.49304552],3326 [ -6.27186742, -0.00094049, 0.00057654, 7.27092693, 0.99712577, 0.99848297, 0.49304562],3327 [ -6.27186831, -0.00094020, 0.00057636, 7.27092811, 0.99712664, 0.99848344, 0.49304571],3328 [ -6.27186920, -0.00093991, 0.00057619, 7.27092929, 0.99712751, 0.99848390, 0.49304585],3329 [ -6.27187010, -0.00093963, 0.00057601, 7.27093047, 0.99712839, 0.99848436, 0.49304595],3330 [ -6.27187098, -0.00093934, 0.00057584, 7.27093164, 0.99712926, 0.99848482, 0.49304606],3331 [ -6.27187187, -0.00093906, 0.00057567, 7.27093281, 0.99713013, 0.99848528, 0.49304619],3332 [ -6.27187276, -0.00093877, 0.00057549, 7.27093399, 0.99713100, 0.99848574, 0.49304625],3333 [ -6.27187365, -0.00093849, 0.00057532, 7.27093516, 0.99713187, 0.99848619, 0.49304638],3334 [ -6.27187453, -0.00093821, 0.00057514, 7.27093633, 0.99713274, 0.99848665, 0.49304650],3335 [ -6.27187541, -0.00093792, 0.00057497, 7.27093749, 0.99713361, 0.99848711, 0.49304662],3336 [ -6.27187630, -0.00093764, 0.00057479, 7.27093866, 0.99713448, 0.99848757, 0.49304675],3337 [ -6.27187718, -0.00093735, 0.00057462, 7.27093983, 0.99713535, 0.99848803, 0.49304680],3338 [ -6.27187806, -0.00093707, 0.00057444, 7.27094099, 0.99713622, 0.99848849, 0.49304696],3339 [ -6.27187894, -0.00093679, 0.00057427, 7.27094215, 0.99713708, 0.99848894, 0.49304701],3340 [ -6.27187981, -0.00093650, 0.00057410, 7.27094331, 0.99713795, 0.99848940, 0.49304717],3341 [ -6.27188069, -0.00093622, 0.00057392, 7.27094447, 0.99713882, 0.99848986, 0.49304726],3342 [ -6.27188156, -0.00093594, 0.00057375, 7.27094563, 0.99713968, 0.99849031, 0.49304734],3343 [ -6.27188244, -0.00093565, 0.00057358, 7.27094678, 0.99714055, 0.99849077, 0.49304749],3344 [ -6.27188331, -0.00093537, 0.00057340, 7.27094794, 0.99714141, 0.99849123, 0.49304756],3345 [ -6.27188418, -0.00093509, 0.00057323, 7.27094909, 0.99714228, 0.99849168, 0.49304769],3346 [ -6.27188505, -0.00093481, 0.00057306, 7.27095025, 0.99714314, 0.99849214, 0.49304781],3347 [ -6.27188592, -0.00093452, 0.00057288, 7.27095140, 0.99714400, 0.99849259, 0.49304789],3348 [ -6.27188679, -0.00093424, 0.00057271, 7.27095255, 0.99714486, 0.99849305, 0.49304797],3349 [ -6.27188765, -0.00093396, 0.00057254, 7.27095369, 0.99714573, 0.99849350, 0.49304811],3350 [ -6.27188852, -0.00093368, 0.00057236, 7.27095484, 0.99714659, 0.99849396, 0.49304819],3351 [ -6.27188938, -0.00093340, 0.00057219, 7.27095599, 0.99714745, 0.99849441, 0.49304832],3352 [ -6.27189025, -0.00093312, 0.00057202, 7.27095713, 0.99714831, 0.99849487, 0.49304841],3353 [ -6.27189111, -0.00093283, 0.00057185, 7.27095827, 0.99714917, 0.99849532, 0.49304852],3354 [ -6.27189197, -0.00093255, 0.00057167, 7.27095942, 0.99715003, 0.99849577, 0.49304861],3355 [ -6.27189283, -0.00093227, 0.00057150, 7.27096056, 0.99715089, 0.99849623, 0.49304875],3356 [ -6.27189369, -0.00093199, 0.00057133, 7.27096169, 0.99715175, 0.99849668, 0.49304884],3357 [ -6.27189454, -0.00093171, 0.00057116, 7.27096283, 0.99715260, 0.99849713, 0.49304894],3358 [ -6.27189540, -0.00093143, 0.00057098, 7.27096397, 0.99715346, 0.99849758, 0.49304909],3359 [ -6.27189625, -0.00093115, 0.00057081, 7.27096510, 0.99715432, 0.99849804, 0.49304918],3360 [ -6.27189711, -0.00093087, 0.00057064, 7.27096624, 0.99715517, 0.99849849, 0.49304926],3361 [ -6.27189796, -0.00093059, 0.00057047, 7.27096737, 0.99715603, 0.99849894, 0.49304941],3362 [ -6.27189881, -0.00093031, 0.00057030, 7.27096850, 0.99715689, 0.99849939, 0.49304950],3363 [ -6.27189966, -0.00093003, 0.00057013, 7.27096963, 0.99715774, 0.99849984, 0.49304958],3364 [ -6.27190051, -0.00092975, 0.00056995, 7.27097076, 0.99715860, 0.99850029, 0.49304964],3365 [ -6.27190136, -0.00092947, 0.00056978, 7.27097188, 0.99715945, 0.99850074, 0.49304982],3366 [ -6.27190220, -0.00092919, 0.00056961, 7.27097301, 0.99716030, 0.99850119, 0.49304989],3367 [ -6.27190305, -0.00092892, 0.00056944, 7.27097413, 0.99716115, 0.99850164, 0.49305004],3368 [ -6.27190389, -0.00092864, 0.00056927, 7.27097525, 0.99716201, 0.99850209, 0.49305011],3369 [ -6.27190474, -0.00092836, 0.00056910, 7.27097638, 0.99716286, 0.99850254, 0.49305025],3370 [ -6.27190558, -0.00092808, 0.00056893, 7.27097750, 0.99716371, 0.99850299, 0.49305033],3371 [ -6.27190642, -0.00092780, 0.00056876, 7.27097862, 0.99716456, 0.99850344, 0.49305045],3372 [ -6.27190726, -0.00092752, 0.00056859, 7.27097973, 0.99716541, 0.99850389, 0.49305056],3373 [ -6.27190810, -0.00092725, 0.00056842, 7.27098085, 0.99716626, 0.99850434, 0.49305065],3374 [ -6.27190893, -0.00092697, 0.00056825, 7.27098197, 0.99716711, 0.99850478, 0.49305076],3375 [ -6.27190977, -0.00092669, 0.00056808, 7.27098308, 0.99716796, 0.99850523, 0.49305085],3376 [ -6.27191061, -0.00092641, 0.00056791, 7.27098419, 0.99716881, 0.99850568, 0.49305094],3377 [ -6.27191144, -0.00092614, 0.00056774, 7.27098530, 0.99716965, 0.99850613, 0.49305108],3378 [ -6.27191227, -0.00092586, 0.00056757, 7.27098641, 0.99717050, 0.99850657, 0.49305115],3379 [ -6.27191311, -0.00092558, 0.00056740, 7.27098752, 0.99717135, 0.99850702, 0.49305125],3380 [ -6.27191394, -0.00092531, 0.00056723, 7.27098863, 0.99717219, 0.99850747, 0.49305139],3381 [ -6.27191477, -0.00092503, 0.00056706, 7.27098974, 0.99717304, 0.99850791, 0.49305148],3382 [ -6.27191559, -0.00092475, 0.00056689, 7.27099084, 0.99717389, 0.99850836, 0.49305158],3383 [ -6.27191642, -0.00092448, 0.00056672, 7.27099194, 0.99717473, 0.99850880, 0.49305167],3384 [ -6.27191725, -0.00092420, 0.00056655, 7.27099305, 0.99717557, 0.99850925, 0.49305181],3385 [ -6.27191807, -0.00092393, 0.00056638, 7.27099415, 0.99717642, 0.99850969, 0.49305190],3386 [ -6.27191890, -0.00092365, 0.00056621, 7.27099525, 0.99717726, 0.99851014, 0.49305201],3387 [ -6.27191972, -0.00092338, 0.00056604, 7.27099635, 0.99717810, 0.99851058, 0.49305208],3388 [ -6.27192054, -0.00092310, 0.00056587, 7.27099744, 0.99717895, 0.99851103, 0.49305223],3389 [ -6.27192136, -0.00092282, 0.00056570, 7.27099854, 0.99717979, 0.99851147, 0.49305232],3390 [ -6.27192218, -0.00092255, 0.00056553, 7.27099964, 0.99718063, 0.99851192, 0.49305243],3391 [ -6.27192300, -0.00092227, 0.00056537, 7.27100073, 0.99718147, 0.99851236, 0.49305250],3392 [ -6.27192382, -0.00092200, 0.00056520, 7.27100182, 0.99718231, 0.99851280, 0.49305258],3393 [ -6.27192464, -0.00092173, 0.00056503, 7.27100291, 0.99718315, 0.99851325, 0.49305275],3394 [ -6.27192545, -0.00092145, 0.00056486, 7.27100400, 0.99718399, 0.99851369, 0.49305278],3395 [ -6.27192627, -0.00092118, 0.00056469, 7.27100509, 0.99718483, 0.99851413, 0.49305295],3396 [ -6.27192708, -0.00092090, 0.00056452, 7.27100618, 0.99718566, 0.99851457, 0.49305299],3397 [ -6.27192790, -0.00092063, 0.00056436, 7.27100727, 0.99718650, 0.99851502, 0.49305314],3398 [ -6.27192871, -0.00092036, 0.00056419, 7.27100835, 0.99718734, 0.99851546, 0.49305323],3399 [ -6.27192952, -0.00092008, 0.00056402, 7.27100944, 0.99718818, 0.99851590, 0.49305333],3400 [ -6.27193033, -0.00091981, 0.00056385, 7.27101052, 0.99718901, 0.99851634, 0.49305345],3401 [ -6.27193114, -0.00091954, 0.00056368, 7.27101160, 0.99718985, 0.99851678, 0.49305349],3402 [ -6.27193194, -0.00091926, 0.00056352, 7.27101268, 0.99719068, 0.99851722, 0.49305365],3403 [ -6.27193275, -0.00091899, 0.00056335, 7.27101376, 0.99719152, 0.99851766, 0.49305371],3404 [ -6.27193356, -0.00091872, 0.00056318, 7.27101484, 0.99719235, 0.99851810, 0.49305382],3405 [ -6.27193436, -0.00091844, 0.00056301, 7.27101592, 0.99719318, 0.99851854, 0.49305392],3406 [ -6.27193516, -0.00091817, 0.00056285, 7.27101699, 0.99719402, 0.99851898, 0.49305400],3407 [ -6.27193597, -0.00091790, 0.00056268, 7.27101807, 0.99719485, 0.99851942, 0.49305415],3408 [ -6.27193677, -0.00091763, 0.00056251, 7.27101914, 0.99719568, 0.99851986, 0.49305427],3409 [ -6.27193757, -0.00091736, 0.00056235, 7.27102021, 0.99719651, 0.99852030, 0.49305437],3410 [ -6.27193837, -0.00091708, 0.00056218, 7.27102128, 0.99719735, 0.99852074, 0.49305443],3411 [ -6.27193917, -0.00091681, 0.00056201, 7.27102235, 0.99719818, 0.99852117, 0.49305458],3412 [ -6.27193996, -0.00091654, 0.00056185, 7.27102342, 0.99719901, 0.99852161, 0.49305464],3413 [ -6.27194076, -0.00091627, 0.00056168, 7.27102449, 0.99719984, 0.99852205, 0.49305472],3414 [ -6.27194155, -0.00091600, 0.00056151, 7.27102556, 0.99720066, 0.99852249, 0.49305485],3415 [ -6.27194235, -0.00091573, 0.00056135, 7.27102662, 0.99720149, 0.99852292, 0.49305488],3416 [ -6.27194314, -0.00091546, 0.00056118, 7.27102769, 0.99720232, 0.99852336, 0.49305501],3417 [ -6.27194394, -0.00091519, 0.00056102, 7.27102875, 0.99720315, 0.99852380, 0.49305520],3418 [ -6.27194473, -0.00091492, 0.00056085, 7.27102981, 0.99720398, 0.99852423, 0.49305527],3419 [ -6.27194552, -0.00091465, 0.00056068, 7.27103087, 0.99720480, 0.99852467, 0.49305537],3420 [ -6.27194631, -0.00091438, 0.00056052, 7.27103193, 0.99720563, 0.99852511, 0.49305541],3421 [ -6.27194710, -0.00091411, 0.00056035, 7.27103299, 0.99720646, 0.99852554, 0.49305558],3422 [ -6.27194788, -0.00091384, 0.00056019, 7.27103405, 0.99720728, 0.99852598, 0.49305568],3423 [ -6.27194867, -0.00091357, 0.00056002, 7.27103510, 0.99720811, 0.99852641, 0.49305582],3424 [ -6.27194946, -0.00091330, 0.00055986, 7.27103616, 0.99720893, 0.99852685, 0.49305585],3425 [ -6.27195024, -0.00091303, 0.00055969, 7.27103721, 0.99720975, 0.99852728, 0.49305599],3426 [ -6.27195102, -0.00091276, 0.00055953, 7.27103827, 0.99721058, 0.99852772, 0.49305606],3427 [ -6.27195181, -0.00091249, 0.00055936, 7.27103932, 0.99721140, 0.99852815, 0.49305614],3428 [ -6.27195259, -0.00091222, 0.00055920, 7.27104037, 0.99721222, 0.99852858, 0.49305629],3429 [ -6.27195337, -0.00091195, 0.00055903, 7.27104142, 0.99721304, 0.99852902, 0.49305636],3430 [ -6.27195415, -0.00091168, 0.00055887, 7.27104247, 0.99721387, 0.99852945, 0.49305643],3431 [ -6.27195493, -0.00091141, 0.00055870, 7.27104351, 0.99721469, 0.99852988, 0.49305655],3432 [ -6.27195571, -0.00091115, 0.00055854, 7.27104456, 0.99721551, 0.99853032, 0.49305663],3433 [ -6.27195648, -0.00091088, 0.00055837, 7.27104561, 0.99721633, 0.99853075, 0.49305679],3434 [ -6.27195726, -0.00091061, 0.00055821, 7.27104665, 0.99721715, 0.99853118, 0.49305682],3435 [ -6.27195803, -0.00091034, 0.00055804, 7.27104769, 0.99721796, 0.99853161, 0.49305696],3436 [ -6.27195881, -0.00091007, 0.00055788, 7.27104873, 0.99721878, 0.99853205, 0.49305711],3437 [ -6.27195958, -0.00090981, 0.00055771, 7.27104978, 0.99721960, 0.99853248, 0.49305719],3438 [ -6.27196035, -0.00090954, 0.00055755, 7.27105081, 0.99722042, 0.99853291, 0.49305721],3439 [ -6.27196113, -0.00090927, 0.00055739, 7.27105185, 0.99722124, 0.99853334, 0.49305736],3440 [ -6.27196190, -0.00090901, 0.00055722, 7.27105289, 0.99722205, 0.99853377, 0.49305741],3441 [ -6.27196267, -0.00090874, 0.00055706, 7.27105393, 0.99722287, 0.99853420, 0.49305756],3442 [ -6.27196344, -0.00090847, 0.00055690, 7.27105496, 0.99722368, 0.99853463, 0.49305766],3443 [ -6.27196420, -0.00090821, 0.00055673, 7.27105600, 0.99722450, 0.99853506, 0.49305779],3444 [ -6.27196497, -0.00090794, 0.00055657, 7.27105703, 0.99722531, 0.99853549, 0.49305788],3445 [ -6.27196574, -0.00090767, 0.00055641, 7.27105806, 0.99722613, 0.99853592, 0.49305797],3446 [ -6.27196650, -0.00090741, 0.00055624, 7.27105909, 0.99722694, 0.99853635, 0.49305806],3447 [ -6.27196726, -0.00090714, 0.00055608, 7.27106012, 0.99722776, 0.99853678, 0.49305817],3448 [ -6.27196803, -0.00090688, 0.00055592, 7.27106115, 0.99722857, 0.99853721, 0.49305825],3449 [ -6.27196879, -0.00090661, 0.00055575, 7.27106218, 0.99722938, 0.99853764, 0.49305840],3450 [ -6.27196955, -0.00090634, 0.00055559, 7.27106321, 0.99723019, 0.99853807, 0.49305847],3451 [ -6.27197031, -0.00090608, 0.00055543, 7.27106423, 0.99723100, 0.99853849, 0.49305859],3452 [ -6.27197107, -0.00090581, 0.00055526, 7.27106526, 0.99723181, 0.99853892, 0.49305865],3453 [ -6.27197183, -0.00090555, 0.00055510, 7.27106628, 0.99723262, 0.99853935, 0.49305875],3454 [ -6.27197259, -0.00090528, 0.00055494, 7.27106730, 0.99723343, 0.99853978, 0.49305889],3455 [ -6.27197335, -0.00090502, 0.00055478, 7.27106833, 0.99723424, 0.99854020, 0.49305896],3456 [ -6.27197410, -0.00090476, 0.00055461, 7.27106935, 0.99723505, 0.99854063, 0.49305906],3457 [ -6.27197486, -0.00090449, 0.00055445, 7.27107037, 0.99723586, 0.99854106, 0.49305911],3458 [ -6.27197561, -0.00090423, 0.00055429, 7.27107138, 0.99723667, 0.99854148, 0.49305929],3459 [ -6.27197637, -0.00090396, 0.00055413, 7.27107240, 0.99723748, 0.99854191, 0.49305933],3460 [ -6.27197712, -0.00090370, 0.00055397, 7.27107342, 0.99723828, 0.99854233, 0.49305943],3461 [ -6.27197787, -0.00090344, 0.00055380, 7.27107443, 0.99723909, 0.99854276, 0.49305954],3462 [ -6.27197862, -0.00090317, 0.00055364, 7.27107545, 0.99723990, 0.99854319, 0.49305965],3463 [ -6.27197937, -0.00090291, 0.00055348, 7.27107646, 0.99724070, 0.99854361, 0.49305972],3464 [ -6.27198012, -0.00090264, 0.00055332, 7.27107748, 0.99724151, 0.99854404, 0.49305986],3465 [ -6.27198087, -0.00090238, 0.00055316, 7.27107849, 0.99724231, 0.99854446, 0.49305996],3466 [ -6.27198162, -0.00090212, 0.00055300, 7.27107950, 0.99724312, 0.99854488, 0.49306003],3467 [ -6.27198236, -0.00090186, 0.00055284, 7.27108051, 0.99724392, 0.99854531, 0.49306014],3468 [ -6.27198311, -0.00090159, 0.00055267, 7.27108151, 0.99724472, 0.99854573, 0.49306027],3469 [ -6.27198385, -0.00090133, 0.00055251, 7.27108252, 0.99724553, 0.99854616, 0.49306036],3470 [ -6.27198460, -0.00090107, 0.00055235, 7.27108353, 0.99724633, 0.99854658, 0.49306043],3471 [ -6.27198534, -0.00090081, 0.00055219, 7.27108453, 0.99724713, 0.99854700, 0.49306047],3472 [ -6.27198608, -0.00090054, 0.00055203, 7.27108554, 0.99724793, 0.99854742, 0.49306066],3473 [ -6.27198682, -0.00090028, 0.00055187, 7.27108654, 0.99724873, 0.99854785, 0.49306072],3474 [ -6.27198756, -0.00090002, 0.00055171, 7.27108754, 0.99724953, 0.99854827, 0.49306079],3475 [ -6.27198830, -0.00089976, 0.00055155, 7.27108855, 0.99725033, 0.99854869, 0.49306090],3476 [ -6.27198904, -0.00089950, 0.00055139, 7.27108955, 0.99725113, 0.99854911, 0.49306100],3477 [ -6.27198978, -0.00089924, 0.00055123, 7.27109054, 0.99725193, 0.99854954, 0.49306107],3478 [ -6.27199052, -0.00089898, 0.00055107, 7.27109154, 0.99725273, 0.99854996, 0.49306122],3479 [ -6.27199126, -0.00089871, 0.00055091, 7.27109254, 0.99725353, 0.99855038, 0.49306129],3480 [ -6.27199199, -0.00089845, 0.00055075, 7.27109354, 0.99725433, 0.99855080, 0.49306135],3481 [ -6.27199273, -0.00089819, 0.00055059, 7.27109453, 0.99725512, 0.99855122, 0.49306146],3482 [ -6.27199346, -0.00089793, 0.00055043, 7.27109553, 0.99725592, 0.99855164, 0.49306163],3483 [ -6.27199419, -0.00089767, 0.00055027, 7.27109652, 0.99725672, 0.99855206, 0.49306163],3484 [ -6.27199493, -0.00089741, 0.00055011, 7.27109751, 0.99725751, 0.99855248, 0.49306178],3485 [ -6.27199566, -0.00089715, 0.00054995, 7.27109851, 0.99725831, 0.99855290, 0.49306188],3486 [ -6.27199639, -0.00089689, 0.00054979, 7.27109950, 0.99725910, 0.99855332, 0.49306196],3487 [ -6.27199712, -0.00089663, 0.00054963, 7.27110049, 0.99725990, 0.99855374, 0.49306206],3488 [ -6.27199785, -0.00089637, 0.00054947, 7.27110147, 0.99726069, 0.99855416, 0.49306218],3489 [ -6.27199857, -0.00089611, 0.00054931, 7.27110246, 0.99726149, 0.99855458, 0.49306227],3490 [ -6.27199930, -0.00089585, 0.00054915, 7.27110345, 0.99726228, 0.99855499, 0.49306238],3491 [ -6.27200003, -0.00089559, 0.00054899, 7.27110443, 0.99726307, 0.99855541, 0.49306244],3492 [ -6.27200076, -0.00089534, 0.00054883, 7.27110542, 0.99726386, 0.99855583, 0.49306254],3493 [ -6.27200148, -0.00089508, 0.00054868, 7.27110640, 0.99726465, 0.99855625, 0.49306260],3494 [ -6.27200220, -0.00089482, 0.00054852, 7.27110739, 0.99726545, 0.99855667, 0.49306270],3495 [ -6.27200293, -0.00089456, 0.00054836, 7.27110837, 0.99726624, 0.99855708, 0.49306284],3496 [ -6.27200365, -0.00089430, 0.00054820, 7.27110935, 0.99726703, 0.99855750, 0.49306289],3497 [ -6.27200437, -0.00089404, 0.00054804, 7.27111033, 0.99726782, 0.99855792, 0.49306299],3498 [ -6.27200509, -0.00089378, 0.00054788, 7.27111131, 0.99726861, 0.99855833, 0.49306315],3499 [ -6.27200581, -0.00089353, 0.00054772, 7.27111229, 0.99726940, 0.99855875, 0.49306325],3500 [ -6.27200653, -0.00089327, 0.00054757, 7.27111326, 0.99727018, 0.99855916, 0.49306334],3501 [ -6.27200725, -0.00089301, 0.00054741, 7.27111424, 0.99727097, 0.99855958, 0.49306342],3502 [ -6.27200797, -0.00089275, 0.00054725, 7.27111522, 0.99727176, 0.99856000, 0.49306348],3503 [ -6.27200869, -0.00089250, 0.00054709, 7.27111619, 0.99727255, 0.99856041, 0.49306360],3504 [ -6.27200940, -0.00089224, 0.00054693, 7.27111717, 0.99727333, 0.99856083, 0.49306368],3505 [ -6.27201012, -0.00089198, 0.00054678, 7.27111814, 0.99727412, 0.99856124, 0.49306382],3506 [ -6.27201083, -0.00089172, 0.00054662, 7.27111911, 0.99727491, 0.99856166, 0.49306389],3507 [ -6.27201155, -0.00089147, 0.00054646, 7.27112008, 0.99727569, 0.99856207, 0.49306395],3508 [ -6.27201226, -0.00089121, 0.00054630, 7.27112105, 0.99727648, 0.99856248, 0.49306405],3509 [ -6.27201297, -0.00089095, 0.00054615, 7.27112202, 0.99727726, 0.99856290, 0.49306415],3510 [ -6.27201369, -0.00089070, 0.00054599, 7.27112299, 0.99727804, 0.99856331, 0.49306425],3511 [ -6.27201440, -0.00089044, 0.00054583, 7.27112395, 0.99727883, 0.99856373, 0.49306438],3512 [ -6.27201511, -0.00089019, 0.00054568, 7.27112492, 0.99727961, 0.99856414, 0.49306445],3513 [ -6.27201582, -0.00088993, 0.00054552, 7.27112589, 0.99728039, 0.99856455, 0.49306454],3514 [ -6.27201653, -0.00088967, 0.00054536, 7.27112685, 0.99728118, 0.99856496, 0.49306460],3515 [ -6.27201723, -0.00088942, 0.00054520, 7.27112782, 0.99728196, 0.99856538, 0.49306473],3516 [ -6.27201794, -0.00088916, 0.00054505, 7.27112878, 0.99728274, 0.99856579, 0.49306481],3517 [ -6.27201865, -0.00088891, 0.00054489, 7.27112974, 0.99728352, 0.99856620, 0.49306490],3518 [ -6.27201935, -0.00088865, 0.00054473, 7.27113070, 0.99728430, 0.99856661, 0.49306499],3519 [ -6.27202006, -0.00088840, 0.00054458, 7.27113166, 0.99728508, 0.99856702, 0.49306507],3520 [ -6.27202076, -0.00088814, 0.00054442, 7.27113262, 0.99728586, 0.99856744, 0.49306519],3521 [ -6.27202147, -0.00088789, 0.00054427, 7.27113358, 0.99728664, 0.99856785, 0.49306522],3522 [ -6.27202217, -0.00088763, 0.00054411, 7.27113454, 0.99728742, 0.99856826, 0.49306541],3523 [ -6.27202287, -0.00088738, 0.00054395, 7.27113549, 0.99728820, 0.99856867, 0.49306548],3524 [ -6.27202357, -0.00088713, 0.00054380, 7.27113645, 0.99728897, 0.99856908, 0.49306558],3525 [ -6.27202427, -0.00088687, 0.00054364, 7.27113740, 0.99728975, 0.99856949, 0.49306563],3526 [ -6.27202497, -0.00088662, 0.00054349, 7.27113836, 0.99729053, 0.99856990, 0.49306575],3527 [ -6.27202567, -0.00088636, 0.00054333, 7.27113931, 0.99729130, 0.99857031, 0.49306582],3528 [ -6.27202637, -0.00088611, 0.00054317, 7.27114026, 0.99729208, 0.99857072, 0.49306593],3529 [ -6.27202707, -0.00088586, 0.00054302, 7.27114121, 0.99729285, 0.99857113, 0.49306602],3530 [ -6.27202777, -0.00088560, 0.00054286, 7.27114216, 0.99729363, 0.99857153, 0.49306615],3531 [ -6.27202846, -0.00088535, 0.00054271, 7.27114311, 0.99729440, 0.99857194, 0.49306620],3532 [ -6.27202916, -0.00088510, 0.00054255, 7.27114406, 0.99729518, 0.99857235, 0.49306631],3533 [ -6.27202985, -0.00088484, 0.00054240, 7.27114501, 0.99729595, 0.99857276, 0.49306638],3534 [ -6.27203055, -0.00088459, 0.00054224, 7.27114596, 0.99729673, 0.99857317, 0.49306650],3535 [ -6.27203124, -0.00088434, 0.00054209, 7.27114690, 0.99729750, 0.99857358, 0.49306661],3536 [ -6.27203193, -0.00088409, 0.00054193, 7.27114785, 0.99729827, 0.99857398, 0.49306664],3537 [ -6.27203262, -0.00088383, 0.00054178, 7.27114879, 0.99729904, 0.99857439, 0.49306674],3538 [ -6.27203332, -0.00088358, 0.00054162, 7.27114973, 0.99729981, 0.99857480, 0.49306687],3539 [ -6.27203401, -0.00088333, 0.00054147, 7.27115068, 0.99730059, 0.99857520, 0.49306699],3540 [ -6.27203470, -0.00088308, 0.00054131, 7.27115162, 0.99730136, 0.99857561, 0.49306701],3541 [ -6.27203539, -0.00088282, 0.00054116, 7.27115256, 0.99730213, 0.99857602, 0.49306713],3542 [ -6.27203607, -0.00088257, 0.00054100, 7.27115350, 0.99730290, 0.99857642, 0.49306721],3543 [ -6.27203676, -0.00088232, 0.00054085, 7.27115444, 0.99730366, 0.99857683, 0.49306728],3544 [ -6.27203745, -0.00088207, 0.00054069, 7.27115538, 0.99730443, 0.99857724, 0.49306742],3545 [ -6.27203813, -0.00088182, 0.00054054, 7.27115632, 0.99730520, 0.99857764, 0.49306753],3546 [ -6.27203882, -0.00088157, 0.00054039, 7.27115725, 0.99730597, 0.99857805, 0.49306761],3547 [ -6.27203950, -0.00088132, 0.00054023, 7.27115819, 0.99730674, 0.99857845, 0.49306769],3548 [ -6.27204019, -0.00088107, 0.00054008, 7.27115912, 0.99730750, 0.99857886, 0.49306776],3549 [ -6.27204087, -0.00088082, 0.00053992, 7.27116006, 0.99730827, 0.99857926, 0.49306785],3550 [ -6.27204156, -0.00088056, 0.00053977, 7.27116099, 0.99730904, 0.99857966, 0.49306801],3551 [ -6.27204224, -0.00088031, 0.00053962, 7.27116192, 0.99730980, 0.99858007, 0.49306813],3552 [ -6.27204292, -0.00088006, 0.00053946, 7.27116286, 0.99731057, 0.99858047, 0.49306816],3553 [ -6.27204360, -0.00087981, 0.00053931, 7.27116379, 0.99731133, 0.99858088, 0.49306827],3554 [ -6.27204428, -0.00087956, 0.00053916, 7.27116472, 0.99731210, 0.99858128, 0.49306833],3555 [ -6.27204496, -0.00087931, 0.00053900, 7.27116565, 0.99731286, 0.99858168, 0.49306842],3556 [ -6.27204564, -0.00087906, 0.00053885, 7.27116657, 0.99731363, 0.99858209, 0.49306852],3557 [ -6.27204632, -0.00087881, 0.00053870, 7.27116750, 0.99731439, 0.99858249, 0.49306865],3558 [ -6.27204699, -0.00087857, 0.00053854, 7.27116843, 0.99731515, 0.99858289, 0.49306872],3559 [ -6.27204767, -0.00087832, 0.00053839, 7.27116935, 0.99731591, 0.99858329, 0.49306875],3560 [ -6.27204835, -0.00087807, 0.00053824, 7.27117028, 0.99731668, 0.99858369, 0.49306889],3561 [ -6.27204902, -0.00087782, 0.00053809, 7.27117120, 0.99731744, 0.99858410, 0.49306899],3562 [ -6.27204970, -0.00087757, 0.00053793, 7.27117213, 0.99731820, 0.99858450, 0.49306909],3563 [ -6.27205037, -0.00087732, 0.00053778, 7.27117305, 0.99731896, 0.99858490, 0.49306915],3564 [ -6.27205104, -0.00087707, 0.00053763, 7.27117397, 0.99731972, 0.99858530, 0.49306931],3565 [ -6.27205172, -0.00087682, 0.00053748, 7.27117489, 0.99732048, 0.99858570, 0.49306931],3566 [ -6.27205239, -0.00087658, 0.00053732, 7.27117581, 0.99732124, 0.99858610, 0.49306947],3567 [ -6.27205306, -0.00087633, 0.00053717, 7.27117673, 0.99732200, 0.99858650, 0.49306949],3568 [ -6.27205373, -0.00087608, 0.00053702, 7.27117765, 0.99732276, 0.99858690, 0.49306961],3569 [ -6.27205440, -0.00087583, 0.00053687, 7.27117857, 0.99732351, 0.99858730, 0.49306974],3570 [ -6.27205507, -0.00087558, 0.00053671, 7.27117949, 0.99732427, 0.99858770, 0.49306982],3571 [ -6.27205574, -0.00087534, 0.00053656, 7.27118040, 0.99732503, 0.99858810, 0.49306986],3572 [ -6.27205641, -0.00087509, 0.00053641, 7.27118132, 0.99732579, 0.99858850, 0.49306997],3573 [ -6.27205707, -0.00087484, 0.00053626, 7.27118223, 0.99732654, 0.99858890, 0.49307002],3574 [ -6.27205774, -0.00087459, 0.00053611, 7.27118315, 0.99732730, 0.99858930, 0.49307020],3575 [ -6.27205841, -0.00087435, 0.00053596, 7.27118406, 0.99732805, 0.99858970, 0.49307021],3576 [ -6.27205907, -0.00087410, 0.00053580, 7.27118497, 0.99732881, 0.99859010, 0.49307035],3577 [ -6.27205974, -0.00087385, 0.00053565, 7.27118588, 0.99732956, 0.99859049, 0.49307047],3578 [ -6.27206040, -0.00087361, 0.00053550, 7.27118679, 0.99733032, 0.99859089, 0.49307051],3579 [ -6.27206106, -0.00087336, 0.00053535, 7.27118770, 0.99733107, 0.99859129, 0.49307062],3580 [ -6.27206173, -0.00087311, 0.00053520, 7.27118861, 0.99733182, 0.99859169, 0.49307069],3581 [ -6.27206239, -0.00087287, 0.00053505, 7.27118952, 0.99733258, 0.99859208, 0.49307080],3582 [ -6.27206305, -0.00087262, 0.00053490, 7.27119043, 0.99733333, 0.99859248, 0.49307089],3583 [ -6.27206371, -0.00087238, 0.00053475, 7.27119134, 0.99733408, 0.99859288, 0.49307096],3584 [ -6.27206437, -0.00087213, 0.00053460, 7.27119224, 0.99733483, 0.99859327, 0.49307103],3585 [ -6.27206503, -0.00087188, 0.00053445, 7.27119315, 0.99733558, 0.99859367, 0.49307121],3586 [ -6.27206569, -0.00087164, 0.00053429, 7.27119405, 0.99733633, 0.99859407, 0.49307121],3587 [ -6.27206635, -0.00087139, 0.00053414, 7.27119496, 0.99733709, 0.99859446, 0.49307131],3588 [ -6.27206701, -0.00087115, 0.00053399, 7.27119586, 0.99733783, 0.99859486, 0.49307143],3589 [ -6.27206767, -0.00087090, 0.00053384, 7.27119676, 0.99733858, 0.99859525, 0.49307152],3590 [ -6.27206832, -0.00087066, 0.00053369, 7.27119766, 0.99733933, 0.99859565, 0.49307163],3591 [ -6.27206898, -0.00087041, 0.00053354, 7.27119856, 0.99734008, 0.99859604, 0.49307170],3592 [ -6.27206963, -0.00087017, 0.00053339, 7.27119946, 0.99734083, 0.99859644, 0.49307178],3593 [ -6.27207029, -0.00086992, 0.00053324, 7.27120036, 0.99734158, 0.99859683, 0.49307182],3594 [ -6.27207094, -0.00086968, 0.00053309, 7.27120126, 0.99734233, 0.99859723, 0.49307196],3595 [ -6.27207160, -0.00086944, 0.00053294, 7.27120216, 0.99734307, 0.99859762, 0.49307197],3596 [ -6.27207225, -0.00086919, 0.00053279, 7.27120306, 0.99734382, 0.99859802, 0.49307220],3597 [ -6.27207290, -0.00086895, 0.00053264, 7.27120395, 0.99734457, 0.99859841, 0.49307226],3598 [ -6.27207355, -0.00086870, 0.00053249, 7.27120485, 0.99734531, 0.99859880, 0.49307233],3599 [ -6.27207420, -0.00086846, 0.00053234, 7.27120574, 0.99734606, 0.99859920, 0.49307241],3600 [ -6.27207485, -0.00086822, 0.00053219, 7.27120664, 0.99734680, 0.99859959, 0.49307252],3601 [ -6.27207550, -0.00086797, 0.00053205, 7.27120753, 0.99734755, 0.99859998, 0.49307258],3602 [ -6.27207615, -0.00086773, 0.00053190, 7.27120842, 0.99734829, 0.99860037, 0.49307271],3603 [ -6.27207680, -0.00086749, 0.00053175, 7.27120931, 0.99734903, 0.99860077, 0.49307274],3604 [ -6.27207745, -0.00086724, 0.00053160, 7.27121021, 0.99734978, 0.99860116, 0.49307287],3605 [ -6.27207810, -0.00086700, 0.00053145, 7.27121110, 0.99735052, 0.99860155, 0.49307293],3606 [ -6.27207874, -0.00086676, 0.00053130, 7.27121199, 0.99735126, 0.99860194, 0.49307303],3607 [ -6.27207939, -0.00086652, 0.00053115, 7.27121287, 0.99735200, 0.99860233, 0.49307313],3608 [ -6.27208004, -0.00086627, 0.00053100, 7.27121376, 0.99735275, 0.99860273, 0.49307325],3609 [ -6.27208068, -0.00086603, 0.00053085, 7.27121465, 0.99735349, 0.99860312, 0.49307329],3610 [ -6.27208132, -0.00086579, 0.00053070, 7.27121554, 0.99735423, 0.99860351, 0.49307333],3611 [ -6.27208197, -0.00086555, 0.00053056, 7.27121642, 0.99735497, 0.99860390, 0.49307349],3612 [ -6.27208261, -0.00086530, 0.00053041, 7.27121731, 0.99735571, 0.99860429, 0.49307355],3613 [ -6.27208325, -0.00086506, 0.00053026, 7.27121819, 0.99735645, 0.99860468, 0.49307366],3614 [ -6.27208390, -0.00086482, 0.00053011, 7.27121907, 0.99735719, 0.99860507, 0.49307376],3615 [ -6.27208454, -0.00086458, 0.00052996, 7.27121996, 0.99735792, 0.99860546, 0.49307384],3616 [ -6.27208518, -0.00086434, 0.00052981, 7.27122084, 0.99735866, 0.99860585, 0.49307389],3617 [ -6.27208582, -0.00086410, 0.00052967, 7.27122172, 0.99735940, 0.99860624, 0.49307398],3618 [ -6.27208646, -0.00086386, 0.00052952, 7.27122260, 0.99736014, 0.99860663, 0.49307410],3619 [ -6.27208710, -0.00086361, 0.00052937, 7.27122348, 0.99736088, 0.99860701, 0.49307418],3620 [ -6.27208774, -0.00086337, 0.00052922, 7.27122436, 0.99736161, 0.99860740, 0.49307431],3621 [ -6.27208837, -0.00086313, 0.00052908, 7.27122524, 0.99736235, 0.99860779, 0.49307430],3622 [ -6.27208901, -0.00086289, 0.00052893, 7.27122612, 0.99736308, 0.99860818, 0.49307450],3623 [ -6.27208965, -0.00086265, 0.00052878, 7.27122700, 0.99736382, 0.99860857, 0.49307452],3624 [ -6.27209028, -0.00086241, 0.00052863, 7.27122787, 0.99736455, 0.99860896, 0.49307461],3625 [ -6.27209092, -0.00086217, 0.00052849, 7.27122875, 0.99736529, 0.99860934, 0.49307473],3626 [ -6.27209155, -0.00086193, 0.00052834, 7.27122962, 0.99736602, 0.99860973, 0.49307476],3627 [ -6.27209219, -0.00086169, 0.00052819, 7.27123050, 0.99736676, 0.99861012, 0.49307493],3628 [ -6.27209282, -0.00086145, 0.00052804, 7.27123137, 0.99736749, 0.99861050, 0.49307491],3629 [ -6.27209346, -0.00086121, 0.00052790, 7.27123224, 0.99736822, 0.99861089, 0.49307506],3630 [ -6.27209409, -0.00086097, 0.00052775, 7.27123312, 0.99736896, 0.99861128, 0.49307515],3631 [ -6.27209472, -0.00086073, 0.00052760, 7.27123399, 0.99736969, 0.99861166, 0.49307527],3632 [ -6.27209535, -0.00086049, 0.00052746, 7.27123486, 0.99737042, 0.99861205, 0.49307528],3633 [ -6.27209598, -0.00086025, 0.00052731, 7.27123573, 0.99737115, 0.99861244, 0.49307544],3634 [ -6.27209661, -0.00086002, 0.00052716, 7.27123660, 0.99737188, 0.99861282, 0.49307551],3635 [ -6.27209724, -0.00085978, 0.00052702, 7.27123747, 0.99737261, 0.99861321, 0.49307555],3636 [ -6.27209787, -0.00085954, 0.00052687, 7.27123833, 0.99737334, 0.99861359, 0.49307566],3637 [ -6.27209850, -0.00085930, 0.00052672, 7.27123920, 0.99737407, 0.99861398, 0.49307570],3638 [ -6.27209913, -0.00085906, 0.00052658, 7.27124007, 0.99737480, 0.99861436, 0.49307581],3639 [ -6.27209976, -0.00085882, 0.00052643, 7.27124094, 0.99737553, 0.99861475, 0.49307599],3640 [ -6.27210038, -0.00085858, 0.00052628, 7.27124180, 0.99737626, 0.99861513, 0.49307598],3641 [ -6.27210101, -0.00085835, 0.00052614, 7.27124266, 0.99737699, 0.99861551, 0.49307614],3642 [ -6.27210164, -0.00085811, 0.00052599, 7.27124353, 0.99737771, 0.99861590, 0.49307614],3643 [ -6.27210226, -0.00085787, 0.00052585, 7.27124439, 0.99737844, 0.99861628, 0.49307625],3644 [ -6.27210289, -0.00085763, 0.00052570, 7.27124525, 0.99737917, 0.99861667, 0.49307637],3645 [ -6.27210351, -0.00085740, 0.00052555, 7.27124612, 0.99737989, 0.99861705, 0.49307645],3646 [ -6.27210414, -0.00085716, 0.00052541, 7.27124698, 0.99738062, 0.99861743, 0.49307653],3647 [ -6.27210476, -0.00085692, 0.00052526, 7.27124784, 0.99738135, 0.99861782, 0.49307663],3648 [ -6.27210538, -0.00085668, 0.00052512, 7.27124870, 0.99738207, 0.99861820, 0.49307669],3649 [ -6.27210600, -0.00085645, 0.00052497, 7.27124956, 0.99738280, 0.99861858, 0.49307677],3650 [ -6.27210663, -0.00085621, 0.00052483, 7.27125042, 0.99738352, 0.99861896, 0.49307688],3651 [ -6.27210725, -0.00085597, 0.00052468, 7.27125127, 0.99738424, 0.99861934, 0.49307699],3652 [ -6.27210787, -0.00085574, 0.00052454, 7.27125213, 0.99738497, 0.99861973, 0.49307706],3653 [ -6.27210849, -0.00085550, 0.00052439, 7.27125299, 0.99738569, 0.99862011, 0.49307704],3654 [ -6.27210911, -0.00085526, 0.00052425, 7.27125384, 0.99738641, 0.99862049, 0.49307723],3655 [ -6.27210973, -0.00085503, 0.00052410, 7.27125470, 0.99738714, 0.99862087, 0.49307731],3656 [ -6.27211034, -0.00085479, 0.00052396, 7.27125555, 0.99738786, 0.99862125, 0.49307742],3657 [ -6.27211096, -0.00085456, 0.00052381, 7.27125641, 0.99738858, 0.99862163, 0.49307753],3658 [ -6.27211158, -0.00085432, 0.00052367, 7.27125726, 0.99738930, 0.99862201, 0.49307753],3659 [ -6.27211220, -0.00085408, 0.00052352, 7.27125811, 0.99739002, 0.99862239, 0.49307764],3660 [ -6.27211281, -0.00085385, 0.00052338, 7.27125896, 0.99739074, 0.99862277, 0.49307770],3661 [ -6.27211343, -0.00085361, 0.00052323, 7.27125981, 0.99739146, 0.99862315, 0.49307780],3662 [ -6.27211404, -0.00085338, 0.00052309, 7.27126067, 0.99739218, 0.99862353, 0.49307792],3663 [ -6.27211466, -0.00085314, 0.00052295, 7.27126152, 0.99739290, 0.99862391, 0.49307794],3664 [ -6.27211527, -0.00085291, 0.00052280, 7.27126236, 0.99739362, 0.99862429, 0.49307803],3665 [ -6.27211589, -0.00085267, 0.00052266, 7.27126321, 0.99739434, 0.99862467, 0.49307820],3666 [ -6.27211650, -0.00085244, 0.00052251, 7.27126406, 0.99739506, 0.99862505, 0.49307827],3667 [ -6.27211711, -0.00085220, 0.00052237, 7.27126491, 0.99739577, 0.99862543, 0.49307830],3668 [ -6.27211772, -0.00085197, 0.00052222, 7.27126575, 0.99739649, 0.99862581, 0.49307839],3669 [ -6.27211833, -0.00085173, 0.00052208, 7.27126660, 0.99739721, 0.99862618, 0.49307851],3670 [ -6.27211895, -0.00085150, 0.00052194, 7.27126745, 0.99739792, 0.99862656, 0.49307861],3671 [ -6.27211956, -0.00085127, 0.00052179, 7.27126829, 0.99739864, 0.99862694, 0.49307868],3672 [ -6.27212017, -0.00085103, 0.00052165, 7.27126913, 0.99739936, 0.99862732, 0.49307878],3673 [ -6.27212078, -0.00085080, 0.00052151, 7.27126998, 0.99740007, 0.99862770, 0.49307884],3674 [ -6.27212138, -0.00085056, 0.00052136, 7.27127082, 0.99740079, 0.99862807, 0.49307888],3675 [ -6.27212199, -0.00085033, 0.00052122, 7.27127166, 0.99740150, 0.99862845, 0.49307902],3676 [ -6.27212260, -0.00085010, 0.00052108, 7.27127250, 0.99740221, 0.99862883, 0.49307911],3677 [ -6.27212321, -0.00084986, 0.00052093, 7.27127334, 0.99740293, 0.99862920, 0.49307920],3678 [ -6.27212381, -0.00084963, 0.00052079, 7.27127418, 0.99740364, 0.99862958, 0.49307926],3679 [ -6.27212442, -0.00084940, 0.00052065, 7.27127502, 0.99740435, 0.99862996, 0.49307935],3680 [ -6.27212503, -0.00084916, 0.00052050, 7.27127586, 0.99740507, 0.99863033, 0.49307944],3681 [ -6.27212563, -0.00084893, 0.00052036, 7.27127670, 0.99740578, 0.99863071, 0.49307944],3682 [ -6.27212624, -0.00084870, 0.00052022, 7.27127754, 0.99740649, 0.99863108, 0.49307954],3683 [ -6.27212684, -0.00084847, 0.00052008, 7.27127837, 0.99740720, 0.99863146, 0.49307961],3684 [ -6.27212744, -0.00084823, 0.00051993, 7.27127921, 0.99740791, 0.99863183, 0.49307978],3685 [ -6.27212805, -0.00084800, 0.00051979, 7.27128005, 0.99740862, 0.99863221, 0.49307983],3686 [ -6.27212865, -0.00084777, 0.00051965, 7.27128088, 0.99740933, 0.99863258, 0.49307996],3687 [ -6.27212925, -0.00084754, 0.00051951, 7.27128172, 0.99741004, 0.99863296, 0.49308005],3688 [ -6.27212986, -0.00084730, 0.00051936, 7.27128255, 0.99741075, 0.99863333, 0.49308014],3689 [ -6.27213046, -0.00084707, 0.00051922, 7.27128338, 0.99741146, 0.99863371, 0.49308018],3690 [ -6.27213106, -0.00084684, 0.00051908, 7.27128422, 0.99741217, 0.99863408, 0.49308030],3691 [ -6.27213166, -0.00084661, 0.00051894, 7.27128505, 0.99741288, 0.99863445, 0.49308040],3692 [ -6.27213226, -0.00084638, 0.00051879, 7.27128588, 0.99741359, 0.99863483, 0.49308040],3693 [ -6.27213286, -0.00084615, 0.00051865, 7.27128671, 0.99741429, 0.99863520, 0.49308050],3694 [ -6.27213345, -0.00084592, 0.00051851, 7.27128754, 0.99741500, 0.99863557, 0.49308061],3695 [ -6.27213405, -0.00084568, 0.00051837, 7.27128837, 0.99741571, 0.99863595, 0.49308064],3696 [ -6.27213465, -0.00084545, 0.00051823, 7.27128920, 0.99741641, 0.99863632, 0.49308083],3697 [ -6.27213525, -0.00084522, 0.00051809, 7.27129003, 0.99741712, 0.99863669, 0.49308089],3698 [ -6.27213585, -0.00084499, 0.00051794, 7.27129085, 0.99741783, 0.99863706, 0.49308103],3699 [ -6.27213644, -0.00084476, 0.00051780, 7.27129168, 0.99741853, 0.99863744, 0.49308104],3700 [ -6.27213704, -0.00084453, 0.00051766, 7.27129251, 0.99741924, 0.99863781, 0.49308114],3701 [ -6.27213763, -0.00084430, 0.00051752, 7.27129333, 0.99741994, 0.99863818, 0.49308122],3702 [ -6.27213823, -0.00084407, 0.00051738, 7.27129416, 0.99742064, 0.99863855, 0.49308125],3703 [ -6.27213882, -0.00084384, 0.00051724, 7.27129498, 0.99742135, 0.99863892, 0.49308128],3704 [ -6.27213942, -0.00084361, 0.00051710, 7.27129581, 0.99742205, 0.99863929, 0.49308149],3705 [ -6.27214001, -0.00084338, 0.00051696, 7.27129663, 0.99742275, 0.99863966, 0.49308153],3706 [ -6.27214060, -0.00084315, 0.00051681, 7.27129745, 0.99742346, 0.99864003, 0.49308160],3707 [ -6.27214120, -0.00084292, 0.00051667, 7.27129827, 0.99742416, 0.99864041, 0.49308174],3708 [ -6.27214179, -0.00084269, 0.00051653, 7.27129910, 0.99742486, 0.99864078, 0.49308171],3709 [ -6.27214238, -0.00084246, 0.00051639, 7.27129992, 0.99742556, 0.99864115, 0.49308189],3710 [ -6.27214297, -0.00084223, 0.00051625, 7.27130074, 0.99742626, 0.99864152, 0.49308189],3711 [ -6.27214356, -0.00084200, 0.00051611, 7.27130156, 0.99742696, 0.99864188, 0.49308208],3712 [ -6.27214415, -0.00084178, 0.00051597, 7.27130237, 0.99742766, 0.99864225, 0.49308218],3713 [ -6.27214474, -0.00084155, 0.00051583, 7.27130319, 0.99742836, 0.99864262, 0.49308217],3714 [ -6.27214533, -0.00084132, 0.00051569, 7.27130401, 0.99742906, 0.99864299, 0.49308225],3715 [ -6.27214592, -0.00084109, 0.00051555, 7.27130483, 0.99742976, 0.99864336, 0.49308239],3716 [ -6.27214651, -0.00084086, 0.00051541, 7.27130564, 0.99743046, 0.99864373, 0.49308247],3717 [ -6.27214709, -0.00084063, 0.00051527, 7.27130646, 0.99743116, 0.99864410, 0.49308255],3718 [ -6.27214768, -0.00084040, 0.00051513, 7.27130728, 0.99743186, 0.99864447, 0.49308258],3719 [ -6.27214827, -0.00084018, 0.00051499, 7.27130809, 0.99743255, 0.99864483, 0.49308266],3720 [ -6.27214885, -0.00083995, 0.00051485, 7.27130891, 0.99743325, 0.99864520, 0.49308274],3721 [ -6.27214944, -0.00083972, 0.00051471, 7.27130972, 0.99743395, 0.99864557, 0.49308290],3722 [ -6.27215002, -0.00083949, 0.00051457, 7.27131053, 0.99743464, 0.99864594, 0.49308290],3723 [ -6.27215061, -0.00083926, 0.00051443, 7.27131134, 0.99743534, 0.99864631, 0.49308300],3724 [ -6.27215119, -0.00083904, 0.00051429, 7.27131216, 0.99743604, 0.99864667, 0.49308315],3725 [ -6.27215178, -0.00083881, 0.00051415, 7.27131297, 0.99743673, 0.99864704, 0.49308314],3726 [ -6.27215236, -0.00083858, 0.00051401, 7.27131378, 0.99743743, 0.99864741, 0.49308324],3727 [ -6.27215294, -0.00083836, 0.00051387, 7.27131459, 0.99743812, 0.99864777, 0.49308338],3728 [ -6.27215353, -0.00083813, 0.00051373, 7.27131540, 0.99743881, 0.99864814, 0.49308338],3729 [ -6.27215411, -0.00083790, 0.00051359, 7.27131621, 0.99743951, 0.99864850, 0.49308350],3730 [ -6.27215469, -0.00083768, 0.00051345, 7.27131702, 0.99744020, 0.99864887, 0.49308357],3731 [ -6.27215527, -0.00083745, 0.00051332, 7.27131782, 0.99744089, 0.99864924, 0.49308374],3732 [ -6.27215585, -0.00083722, 0.00051318, 7.27131863, 0.99744159, 0.99864960, 0.49308379],3733 [ -6.27215643, -0.00083700, 0.00051304, 7.27131944, 0.99744228, 0.99864997, 0.49308384],3734 [ -6.27215701, -0.00083677, 0.00051290, 7.27132024, 0.99744297, 0.99865033, 0.49308393],3735 [ -6.27215759, -0.00083654, 0.00051276, 7.27132105, 0.99744366, 0.99865070, 0.49308399],3736 [ -6.27215817, -0.00083632, 0.00051262, 7.27132185, 0.99744435, 0.99865106, 0.49308412],3737 [ -6.27215875, -0.00083609, 0.00051248, 7.27132266, 0.99744504, 0.99865143, 0.49308421],3738 [ -6.27215933, -0.00083587, 0.00051234, 7.27132346, 0.99744574, 0.99865179, 0.49308425],3739 [ -6.27215990, -0.00083564, 0.00051221, 7.27132426, 0.99744643, 0.99865215, 0.49308434],3740 [ -6.27216048, -0.00083541, 0.00051207, 7.27132507, 0.99744711, 0.99865252, 0.49308442],3741 [ -6.27216106, -0.00083519, 0.00051193, 7.27132587, 0.99744780, 0.99865288, 0.49308450],3742 [ -6.27216164, -0.00083496, 0.00051179, 7.27132667, 0.99744849, 0.99865324, 0.49308461],3743 [ -6.27216221, -0.00083474, 0.00051165, 7.27132747, 0.99744918, 0.99865361, 0.49308467],3744 [ -6.27216279, -0.00083451, 0.00051151, 7.27132827, 0.99744987, 0.99865397, 0.49308473],3745 [ -6.27216336, -0.00083429, 0.00051138, 7.27132907, 0.99745056, 0.99865433, 0.49308483],3746 [ -6.27216394, -0.00083406, 0.00051124, 7.27132987, 0.99745124, 0.99865470, 0.49308489],3747 [ -6.27216451, -0.00083384, 0.00051110, 7.27133067, 0.99745193, 0.99865506, 0.49308501],3748 [ -6.27216508, -0.00083361, 0.00051096, 7.27133147, 0.99745262, 0.99865542, 0.49308509],3749 [ -6.27216566, -0.00083339, 0.00051083, 7.27133227, 0.99745330, 0.99865578, 0.49308519],3750 [ -6.27216623, -0.00083317, 0.00051069, 7.27133306, 0.99745399, 0.99865615, 0.49308520],3751 [ -6.27216680, -0.00083294, 0.00051055, 7.27133386, 0.99745468, 0.99865651, 0.49308532],3752 [ -6.27216737, -0.00083272, 0.00051041, 7.27133465, 0.99745536, 0.99865687, 0.49308537],3753 [ -6.27216794, -0.00083249, 0.00051028, 7.27133545, 0.99745605, 0.99865723, 0.49308548],3754 [ -6.27216851, -0.00083227, 0.00051014, 7.27133624, 0.99745673, 0.99865759, 0.49308555],3755 [ -6.27216909, -0.00083205, 0.00051000, 7.27133704, 0.99745741, 0.99865795, 0.49308568],3756 [ -6.27216966, -0.00083182, 0.00050986, 7.27133783, 0.99745810, 0.99865831, 0.49308575],3757 [ -6.27217022, -0.00083160, 0.00050973, 7.27133863, 0.99745878, 0.99865867, 0.49308580],3758 [ -6.27217079, -0.00083138, 0.00050959, 7.27133942, 0.99745946, 0.99865903, 0.49308589],3759 [ -6.27217136, -0.00083115, 0.00050945, 7.27134021, 0.99746015, 0.99865939, 0.49308593],3760 [ -6.27217193, -0.00083093, 0.00050932, 7.27134100, 0.99746083, 0.99865975, 0.49308603],3761 [ -6.27217250, -0.00083071, 0.00050918, 7.27134179, 0.99746151, 0.99866011, 0.49308603],3762 [ -6.27217307, -0.00083048, 0.00050904, 7.27134258, 0.99746219, 0.99866047, 0.49308626],3763 [ -6.27217363, -0.00083026, 0.00050891, 7.27134337, 0.99746287, 0.99866083, 0.49308628],3764 [ -6.27217420, -0.00083004, 0.00050877, 7.27134416, 0.99746355, 0.99866119, 0.49308633],3765 [ -6.27217477, -0.00082982, 0.00050863, 7.27134495, 0.99746424, 0.99866155, 0.49308648],3766 [ -6.27217533, -0.00082959, 0.00050850, 7.27134574, 0.99746492, 0.99866191, 0.49308650],3767 [ -6.27217590, -0.00082937, 0.00050836, 7.27134653, 0.99746559, 0.99866227, 0.49308659],3768 [ -6.27217646, -0.00082915, 0.00050822, 7.27134731, 0.99746627, 0.99866263, 0.49308664],3769 [ -6.27217703, -0.00082893, 0.00050809, 7.27134810, 0.99746695, 0.99866299, 0.49308674],3770 [ -6.27217759, -0.00082871, 0.00050795, 7.27134888, 0.99746763, 0.99866334, 0.49308688],3771 [ -6.27217815, -0.00082848, 0.00050782, 7.27134967, 0.99746831, 0.99866370, 0.49308691],3772 [ -6.27217872, -0.00082826, 0.00050768, 7.27135045, 0.99746899, 0.99866406, 0.49308700],3773 [ -6.27217928, -0.00082804, 0.00050754, 7.27135124, 0.99746967, 0.99866442, 0.49308706],3774 [ -6.27217984, -0.00082782, 0.00050741, 7.27135202, 0.99747034, 0.99866477, 0.49308711],3775 [ -6.27218040, -0.00082760, 0.00050727, 7.27135281, 0.99747102, 0.99866513, 0.49308731],3776 [ -6.27218097, -0.00082738, 0.00050714, 7.27135359, 0.99747170, 0.99866549, 0.49308733],3777 [ -6.27218153, -0.00082716, 0.00050700, 7.27135437, 0.99747237, 0.99866584, 0.49308746],3778 [ -6.27218209, -0.00082693, 0.00050686, 7.27135515, 0.99747305, 0.99866620, 0.49308753],3779 [ -6.27218265, -0.00082671, 0.00050673, 7.27135593, 0.99747372, 0.99866656, 0.49308759],3780 [ -6.27218321, -0.00082649, 0.00050659, 7.27135671, 0.99747440, 0.99866691, 0.49308757],3781 [ -6.27218377, -0.00082627, 0.00050646, 7.27135749, 0.99747507, 0.99866727, 0.49308770],3782 [ -6.27218433, -0.00082605, 0.00050632, 7.27135827, 0.99747575, 0.99866763, 0.49308772],3783 [ -6.27218488, -0.00082583, 0.00050619, 7.27135905, 0.99747642, 0.99866798, 0.49308784],3784 [ -6.27218544, -0.00082561, 0.00050605, 7.27135983, 0.99747709, 0.99866834, 0.49308794],3785 [ -6.27218600, -0.00082539, 0.00050592, 7.27136061, 0.99747777, 0.99866869, 0.49308810],3786 [ -6.27218656, -0.00082517, 0.00050578, 7.27136139, 0.99747844, 0.99866905, 0.49308812],3787 [ -6.27218711, -0.00082495, 0.00050565, 7.27136216, 0.99747911, 0.99866940, 0.49308821],3788 [ -6.27218767, -0.00082473, 0.00050551, 7.27136294, 0.99747978, 0.99866976, 0.49308825],3789 [ -6.27218823, -0.00082451, 0.00050538, 7.27136371, 0.99748046, 0.99867011, 0.49308833],3790 [ -6.27218878, -0.00082429, 0.00050524, 7.27136449, 0.99748113, 0.99867046, 0.49308847],3791 [ -6.27218934, -0.00082407, 0.00050511, 7.27136526, 0.99748180, 0.99867082, 0.49308860],3792 [ -6.27218989, -0.00082385, 0.00050497, 7.27136604, 0.99748247, 0.99867117, 0.49308859],3793 [ -6.27219045, -0.00082363, 0.00050484, 7.27136681, 0.99748314, 0.99867153, 0.49308869],3794 [ -6.27219100, -0.00082341, 0.00050471, 7.27136759, 0.99748381, 0.99867188, 0.49308873],3795 [ -6.27219155, -0.00082320, 0.00050457, 7.27136836, 0.99748448, 0.99867223, 0.49308878],3796 [ -6.27219211, -0.00082298, 0.00050444, 7.27136913, 0.99748515, 0.99867259, 0.49308888],3797 [ -6.27219266, -0.00082276, 0.00050430, 7.27136990, 0.99748582, 0.99867294, 0.49308897],3798 [ -6.27219321, -0.00082254, 0.00050417, 7.27137067, 0.99748649, 0.99867329, 0.49308901],3799 [ -6.27219376, -0.00082232, 0.00050403, 7.27137144, 0.99748715, 0.99867364, 0.49308913],3800 [ -6.27219432, -0.00082210, 0.00050390, 7.27137221, 0.99748782, 0.99867400, 0.49308916],3801 [ -6.27219487, -0.00082188, 0.00050377, 7.27137298, 0.99748849, 0.99867435, 0.49308935],3802 [ -6.27219542, -0.00082167, 0.00050363, 7.27137375, 0.99748916, 0.99867470, 0.49308938],3803 [ -6.27219597, -0.00082145, 0.00050350, 7.27137452, 0.99748982, 0.99867505, 0.49308944],3804 [ -6.27219652, -0.00082123, 0.00050337, 7.27137529, 0.99749049, 0.99867540, 0.49308959],3805 [ -6.27219707, -0.00082101, 0.00050323, 7.27137606, 0.99749116, 0.99867576, 0.49308961],3806 [ -6.27219762, -0.00082080, 0.00050310, 7.27137682, 0.99749182, 0.99867611, 0.49308966],3807 [ -6.27219817, -0.00082058, 0.00050296, 7.27137759, 0.99749249, 0.99867646, 0.49308979],3808 [ -6.27219872, -0.00082036, 0.00050283, 7.27137836, 0.99749315, 0.99867681, 0.49308985],3809 [ -6.27219926, -0.00082014, 0.00050270, 7.27137912, 0.99749382, 0.99867716, 0.49308989],3810 [ -6.27219981, -0.00081993, 0.00050256, 7.27137989, 0.99749448, 0.99867751, 0.49309002],3811 [ -6.27220036, -0.00081971, 0.00050243, 7.27138065, 0.99749514, 0.99867786, 0.49309006],3812 [ -6.27220091, -0.00081949, 0.00050230, 7.27138141, 0.99749581, 0.99867821, 0.49309016],3813 [ -6.27220145, -0.00081927, 0.00050216, 7.27138218, 0.99749647, 0.99867856, 0.49309022],3814 [ -6.27220200, -0.00081906, 0.00050203, 7.27138294, 0.99749713, 0.99867891, 0.49309028],3815 [ -6.27220254, -0.00081884, 0.00050190, 7.27138370, 0.99749780, 0.99867926, 0.49309037],3816 [ -6.27220309, -0.00081862, 0.00050177, 7.27138446, 0.99749846, 0.99867961, 0.49309053],3817 [ -6.27220363, -0.00081841, 0.00050163, 7.27138523, 0.99749912, 0.99867996, 0.49309055],3818 [ -6.27220418, -0.00081819, 0.00050150, 7.27138599, 0.99749978, 0.99868031, 0.49309069],3819 [ -6.27220472, -0.00081798, 0.00050137, 7.27138675, 0.99750044, 0.99868066, 0.49309070],3820 [ -6.27220527, -0.00081776, 0.00050124, 7.27138751, 0.99750110, 0.99868100, 0.49309083],3821 [ -6.27220581, -0.00081754, 0.00050110, 7.27138827, 0.99750176, 0.99868135, 0.49309090],3822 [ -6.27220635, -0.00081733, 0.00050097, 7.27138902, 0.99750242, 0.99868170, 0.49309098],3823 [ -6.27220690, -0.00081711, 0.00050084, 7.27138978, 0.99750308, 0.99868205, 0.49309101],3824 [ -6.27220744, -0.00081690, 0.00050071, 7.27139054, 0.99750374, 0.99868240, 0.49309113],3825 [ -6.27220798, -0.00081668, 0.00050057, 7.27139130, 0.99750440, 0.99868275, 0.49309116],3826 [ -6.27220852, -0.00081647, 0.00050044, 7.27139205, 0.99750506, 0.99868309, 0.49309123],3827 [ -6.27220906, -0.00081625, 0.00050031, 7.27139281, 0.99750572, 0.99868344, 0.49309142],3828 [ -6.27220960, -0.00081604, 0.00050018, 7.27139357, 0.99750638, 0.99868379, 0.49309142],3829 [ -6.27221014, -0.00081582, 0.00050005, 7.27139432, 0.99750703, 0.99868413, 0.49309146],3830 [ -6.27221068, -0.00081561, 0.00049991, 7.27139508, 0.99750769, 0.99868448, 0.49309158],3831 [ -6.27221122, -0.00081539, 0.00049978, 7.27139583, 0.99750835, 0.99868483, 0.49309166],3832 [ -6.27221176, -0.00081518, 0.00049965, 7.27139659, 0.99750901, 0.99868517, 0.49309171],3833 [ -6.27221230, -0.00081496, 0.00049952, 7.27139734, 0.99750966, 0.99868552, 0.49309183],3834 [ -6.27221284, -0.00081475, 0.00049939, 7.27139809, 0.99751032, 0.99868587, 0.49309186],3835 [ -6.27221338, -0.00081453, 0.00049926, 7.27139884, 0.99751097, 0.99868621, 0.49309196],3836 [ -6.27221391, -0.00081432, 0.00049912, 7.27139960, 0.99751163, 0.99868656, 0.49309197],3837 [ -6.27221445, -0.00081410, 0.00049899, 7.27140035, 0.99751228, 0.99868690, 0.49309212],3838 [ -6.27221499, -0.00081389, 0.00049886, 7.27140110, 0.99751294, 0.99868725, 0.49309226],3839 [ -6.27221552, -0.00081368, 0.00049873, 7.27140185, 0.99751359, 0.99868759, 0.49309233],3840 [ -6.27221606, -0.00081346, 0.00049860, 7.27140260, 0.99751425, 0.99868794, 0.49309240],3841 [ -6.27221660, -0.00081325, 0.00049847, 7.27140335, 0.99751490, 0.99868828, 0.49309241],3842 [ -6.27221713, -0.00081303, 0.00049834, 7.27140410, 0.99751555, 0.99868863, 0.49309250],3843 [ -6.27221767, -0.00081282, 0.00049821, 7.27140485, 0.99751621, 0.99868897, 0.49309252],3844 [ -6.27221820, -0.00081261, 0.00049807, 7.27140559, 0.99751686, 0.99868932, 0.49309262],3845 [ -6.27221874, -0.00081239, 0.00049794, 7.27140634, 0.99751751, 0.99868966, 0.49309274],3846 [ -6.27221927, -0.00081218, 0.00049781, 7.27140709, 0.99751816, 0.99869001, 0.49309277],3847 [ -6.27221980, -0.00081197, 0.00049768, 7.27140784, 0.99751881, 0.99869035, 0.49309287],3848 [ -6.27222034, -0.00081176, 0.00049755, 7.27140858, 0.99751946, 0.99869069, 0.49309295],3849 [ -6.27222087, -0.00081154, 0.00049742, 7.27140933, 0.99752012, 0.99869104, 0.49309305],3850 [ -6.27222140, -0.00081133, 0.00049729, 7.27141007, 0.99752077, 0.99869138, 0.49309311],3851 [ -6.27222193, -0.00081112, 0.00049716, 7.27141082, 0.99752142, 0.99869172, 0.49309317],3852 [ -6.27222247, -0.00081090, 0.00049703, 7.27141156, 0.99752207, 0.99869207, 0.49309328],3853 [ -6.27222300, -0.00081069, 0.00049690, 7.27141230, 0.99752271, 0.99869241, 0.49309332],3854 [ -6.27222353, -0.00081048, 0.00049677, 7.27141305, 0.99752336, 0.99869275, 0.49309344],3855 [ -6.27222406, -0.00081027, 0.00049664, 7.27141379, 0.99752401, 0.99869309, 0.49309341],3856 [ -6.27222459, -0.00081006, 0.00049651, 7.27141453, 0.99752466, 0.99869344, 0.49309354],3857 [ -6.27222512, -0.00080984, 0.00049638, 7.27141527, 0.99752531, 0.99869378, 0.49309361],3858 [ -6.27222565, -0.00080963, 0.00049625, 7.27141602, 0.99752596, 0.99869412, 0.49309375],3859 [ -6.27222618, -0.00080942, 0.00049612, 7.27141676, 0.99752660, 0.99869446, 0.49309380],3860 [ -6.27222671, -0.00080921, 0.00049599, 7.27141750, 0.99752725, 0.99869480, 0.49309382],3861 [ -6.27222723, -0.00080900, 0.00049586, 7.27141824, 0.99752790, 0.99869514, 0.49309395],3862 [ -6.27222776, -0.00080879, 0.00049573, 7.27141898, 0.99752854, 0.99869548, 0.49309403],3863 [ -6.27222829, -0.00080857, 0.00049560, 7.27141972, 0.99752919, 0.99869582, 0.49309409],3864 [ -6.27222882, -0.00080836, 0.00049547, 7.27142045, 0.99752984, 0.99869617, 0.49309410],3865 [ -6.27222934, -0.00080815, 0.00049534, 7.27142119, 0.99753048, 0.99869651, 0.49309425],3866 [ -6.27222987, -0.00080794, 0.00049521, 7.27142193, 0.99753113, 0.99869685, 0.49309434],3867 [ -6.27223040, -0.00080773, 0.00049508, 7.27142267, 0.99753177, 0.99869719, 0.49309443],3868 [ -6.27223092, -0.00080752, 0.00049495, 7.27142340, 0.99753241, 0.99869753, 0.49309447],3869 [ -6.27223145, -0.00080731, 0.00049482, 7.27142414, 0.99753306, 0.99869787, 0.49309457],3870 [ -6.27223197, -0.00080710, 0.00049469, 7.27142488, 0.99753370, 0.99869821, 0.49309459],3871 [ -6.27223250, -0.00080689, 0.00049457, 7.27142561, 0.99753435, 0.99869855, 0.49309463],3872 [ -6.27223302, -0.00080668, 0.00049444, 7.27142635, 0.99753499, 0.99869888, 0.49309473],3873 [ -6.27223355, -0.00080647, 0.00049431, 7.27142708, 0.99753563, 0.99869922, 0.49309486],3874 [ -6.27223407, -0.00080626, 0.00049418, 7.27142781, 0.99753627, 0.99869956, 0.49309496],3875 [ -6.27223460, -0.00080605, 0.00049405, 7.27142855, 0.99753692, 0.99869990, 0.49309501],3876 [ -6.27223512, -0.00080584, 0.00049392, 7.27142928, 0.99753756, 0.99870024, 0.49309506],3877 [ -6.27223564, -0.00080563, 0.00049379, 7.27143001, 0.99753820, 0.99870058, 0.49309510],3878 [ -6.27223616, -0.00080542, 0.00049366, 7.27143074, 0.99753884, 0.99870092, 0.49309524],3879 [ -6.27223669, -0.00080521, 0.00049354, 7.27143148, 0.99753948, 0.99870125, 0.49309538],3880 [ -6.27223721, -0.00080500, 0.00049341, 7.27143221, 0.99754012, 0.99870159, 0.49309541],3881 [ -6.27223773, -0.00080479, 0.00049328, 7.27143294, 0.99754076, 0.99870193, 0.49309547],3882 [ -6.27223825, -0.00080458, 0.00049315, 7.27143367, 0.99754140, 0.99870227, 0.49309552],3883 [ -6.27223877, -0.00080437, 0.00049302, 7.27143440, 0.99754204, 0.99870260, 0.49309562],3884 [ -6.27223929, -0.00080416, 0.00049289, 7.27143513, 0.99754268, 0.99870294, 0.49309564],3885 [ -6.27223981, -0.00080395, 0.00049277, 7.27143586, 0.99754332, 0.99870328, 0.49309575],3886 [ -6.27224033, -0.00080375, 0.00049264, 7.27143658, 0.99754395, 0.99870362, 0.49309585],3887 [ -6.27224085, -0.00080354, 0.00049251, 7.27143731, 0.99754459, 0.99870395, 0.49309591],3888 [ -6.27224137, -0.00080333, 0.00049238, 7.27143804, 0.99754523, 0.99870429, 0.49309595],3889 [ -6.27224189, -0.00080312, 0.00049225, 7.27143877, 0.99754587, 0.99870463, 0.49309610],3890 [ -6.27224241, -0.00080291, 0.00049213, 7.27143949, 0.99754650, 0.99870496, 0.49309609],3891 [ -6.27224292, -0.00080270, 0.00049200, 7.27144022, 0.99754714, 0.99870530, 0.49309625],3892 [ -6.27224344, -0.00080250, 0.00049187, 7.27144094, 0.99754778, 0.99870563, 0.49309625],3893 [ -6.27224396, -0.00080229, 0.00049174, 7.27144167, 0.99754841, 0.99870597, 0.49309632],3894 [ -6.27224447, -0.00080208, 0.00049162, 7.27144239, 0.99754905, 0.99870630, 0.49309639],3895 [ -6.27224499, -0.00080187, 0.00049149, 7.27144312, 0.99754968, 0.99870664, 0.49309648],3896 [ -6.27224551, -0.00080166, 0.00049136, 7.27144384, 0.99755032, 0.99870697, 0.49309655],3897 [ -6.27224602, -0.00080146, 0.00049123, 7.27144457, 0.99755095, 0.99870731, 0.49309667],3898 [ -6.27224654, -0.00080125, 0.00049111, 7.27144529, 0.99755159, 0.99870764, 0.49309666],3899 [ -6.27224705, -0.00080104, 0.00049098, 7.27144601, 0.99755222, 0.99870798, 0.49309679],3900 [ -6.27224757, -0.00080084, 0.00049085, 7.27144673, 0.99755286, 0.99870831, 0.49309687],3901 [ -6.27224808, -0.00080063, 0.00049072, 7.27144746, 0.99755349, 0.99870865, 0.49309695],3902 [ -6.27224860, -0.00080042, 0.00049060, 7.27144818, 0.99755412, 0.99870898, 0.49309704],3903 [ -6.27224911, -0.00080021, 0.00049047, 7.27144890, 0.99755476, 0.99870932, 0.49309706],3904 [ -6.27224962, -0.00080001, 0.00049034, 7.27144962, 0.99755539, 0.99870965, 0.49309713],3905 [ -6.27225014, -0.00079980, 0.00049022, 7.27145034, 0.99755602, 0.99870998, 0.49309722],3906 [ -6.27225065, -0.00079959, 0.00049009, 7.27145106, 0.99755665, 0.99871032, 0.49309728],3907 [ -6.27225116, -0.00079939, 0.00048996, 7.27145178, 0.99755728, 0.99871065, 0.49309738],3908 [ -6.27225168, -0.00079918, 0.00048984, 7.27145249, 0.99755791, 0.99871098, 0.49309747],3909 [ -6.27225219, -0.00079897, 0.00048971, 7.27145321, 0.99755854, 0.99871131, 0.49309753],3910 [ -6.27225270, -0.00079877, 0.00048958, 7.27145393, 0.99755918, 0.99871165, 0.49309771],3911 [ -6.27225321, -0.00079856, 0.00048946, 7.27145465, 0.99755981, 0.99871198, 0.49309765],3912 [ -6.27225372, -0.00079836, 0.00048933, 7.27145536, 0.99756044, 0.99871231, 0.49309782],3913 [ -6.27225423, -0.00079815, 0.00048921, 7.27145608, 0.99756106, 0.99871264, 0.49309784],3914 [ -6.27225474, -0.00079795, 0.00048908, 7.27145680, 0.99756169, 0.99871298, 0.49309793],3915 [ -6.27225525, -0.00079774, 0.00048895, 7.27145751, 0.99756232, 0.99871331, 0.49309799],3916 [ -6.27225576, -0.00079753, 0.00048883, 7.27145823, 0.99756295, 0.99871364, 0.49309812],3917 [ -6.27225627, -0.00079733, 0.00048870, 7.27145894, 0.99756358, 0.99871397, 0.49309805],3918 [ -6.27225678, -0.00079712, 0.00048857, 7.27145966, 0.99756421, 0.99871430, 0.49309821],3919 [ -6.27225729, -0.00079692, 0.00048845, 7.27146037, 0.99756483, 0.99871463, 0.49309831],3920 [ -6.27225780, -0.00079671, 0.00048832, 7.27146108, 0.99756546, 0.99871496, 0.49309836],3921 [ -6.27225830, -0.00079651, 0.00048820, 7.27146180, 0.99756609, 0.99871529, 0.49309842],3922 [ -6.27225881, -0.00079630, 0.00048807, 7.27146251, 0.99756671, 0.99871563, 0.49309856],3923 [ -6.27225932, -0.00079610, 0.00048795, 7.27146322, 0.99756734, 0.99871596, 0.49309861],3924 [ -6.27225983, -0.00079589, 0.00048782, 7.27146393, 0.99756797, 0.99871629, 0.49309861],3925 [ -6.27226033, -0.00079569, 0.00048769, 7.27146464, 0.99756859, 0.99871662, 0.49309873],3926 [ -6.27226084, -0.00079548, 0.00048757, 7.27146535, 0.99756922, 0.99871695, 0.49309877],3927 [ -6.27226134, -0.00079528, 0.00048744, 7.27146606, 0.99756984, 0.99871728, 0.49309886],3928 [ -6.27226185, -0.00079508, 0.00048732, 7.27146677, 0.99757047, 0.99871761, 0.49309893],3929 [ -6.27226235, -0.00079487, 0.00048719, 7.27146748, 0.99757109, 0.99871793, 0.49309902],3930 [ -6.27226286, -0.00079467, 0.00048707, 7.27146819, 0.99757172, 0.99871826, 0.49309912],3931 [ -6.27226336, -0.00079446, 0.00048694, 7.27146890, 0.99757234, 0.99871859, 0.49309921],3932 [ -6.27226387, -0.00079426, 0.00048682, 7.27146961, 0.99757296, 0.99871892, 0.49309921],3933 [ -6.27226437, -0.00079406, 0.00048669, 7.27147032, 0.99757359, 0.99871925, 0.49309928],3934 [ -6.27226488, -0.00079385, 0.00048657, 7.27147102, 0.99757421, 0.99871958, 0.49309939],3935 [ -6.27226538, -0.00079365, 0.00048644, 7.27147173, 0.99757483, 0.99871991, 0.49309945],3936 [ -6.27226588, -0.00079345, 0.00048632, 7.27147244, 0.99757545, 0.99872024, 0.49309958],3937 [ -6.27226639, -0.00079324, 0.00048619, 7.27147314, 0.99757607, 0.99872056, 0.49309958],3938 [ -6.27226689, -0.00079304, 0.00048607, 7.27147385, 0.99757670, 0.99872089, 0.49309961],3939 [ -6.27226739, -0.00079284, 0.00048594, 7.27147455, 0.99757732, 0.99872122, 0.49309967],3940 [ -6.27226789, -0.00079263, 0.00048582, 7.27147526, 0.99757794, 0.99872155, 0.49309986],3941 [ -6.27226839, -0.00079243, 0.00048570, 7.27147596, 0.99757856, 0.99872187, 0.49309996],3942 [ -6.27226889, -0.00079223, 0.00048557, 7.27147667, 0.99757918, 0.99872220, 0.49309999],3943 [ -6.27226939, -0.00079202, 0.00048545, 7.27147737, 0.99757980, 0.99872253, 0.49310010],3944 [ -6.27226990, -0.00079182, 0.00048532, 7.27147807, 0.99758042, 0.99872286, 0.49310015],3945 [ -6.27227040, -0.00079162, 0.00048520, 7.27147878, 0.99758104, 0.99872318, 0.49310022],3946 [ -6.27227090, -0.00079142, 0.00048507, 7.27147948, 0.99758166, 0.99872351, 0.49310023],3947 [ -6.27227139, -0.00079121, 0.00048495, 7.27148018, 0.99758227, 0.99872384, 0.49310029],3948 [ -6.27227189, -0.00079101, 0.00048483, 7.27148088, 0.99758289, 0.99872416, 0.49310038],3949 [ -6.27227239, -0.00079081, 0.00048470, 7.27148158, 0.99758351, 0.99872449, 0.49310046],3950 [ -6.27227289, -0.00079061, 0.00048458, 7.27148228, 0.99758413, 0.99872481, 0.49310052],3951 [ -6.27227339, -0.00079041, 0.00048445, 7.27148298, 0.99758474, 0.99872514, 0.49310058],3952 [ -6.27227389, -0.00079020, 0.00048433, 7.27148368, 0.99758536, 0.99872546, 0.49310064],3953 [ -6.27227439, -0.00079000, 0.00048421, 7.27148438, 0.99758598, 0.99872579, 0.49310077],3954 [ -6.27227488, -0.00078980, 0.00048408, 7.27148508, 0.99758659, 0.99872612, 0.49310085],3955 [ -6.27227538, -0.00078960, 0.00048396, 7.27148578, 0.99758721, 0.99872644, 0.49310092],3956 [ -6.27227588, -0.00078940, 0.00048384, 7.27148648, 0.99758783, 0.99872677, 0.49310100],3957 [ -6.27227637, -0.00078920, 0.00048371, 7.27148717, 0.99758844, 0.99872709, 0.49310112],3958 [ -6.27227687, -0.00078900, 0.00048359, 7.27148787, 0.99758906, 0.99872741, 0.49310113],3959 [ -6.27227736, -0.00078880, 0.00048347, 7.27148857, 0.99758967, 0.99872774, 0.49310122],3960 [ -6.27227786, -0.00078859, 0.00048334, 7.27148927, 0.99759029, 0.99872806, 0.49310127],3961 [ -6.27227836, -0.00078839, 0.00048322, 7.27148996, 0.99759090, 0.99872839, 0.49310130],3962 [ -6.27227885, -0.00078819, 0.00048310, 7.27149066, 0.99759151, 0.99872871, 0.49310141],3963 [ -6.27227934, -0.00078799, 0.00048297, 7.27149135, 0.99759213, 0.99872903, 0.49310152],3964 [ -6.27227984, -0.00078779, 0.00048285, 7.27149205, 0.99759274, 0.99872936, 0.49310152],3965 [ -6.27228033, -0.00078759, 0.00048273, 7.27149274, 0.99759335, 0.99872968, 0.49310163],3966 [ -6.27228083, -0.00078739, 0.00048260, 7.27149344, 0.99759397, 0.99873001, 0.49310168],3967 [ -6.27228132, -0.00078719, 0.00048248, 7.27149413, 0.99759458, 0.99873033, 0.49310178],3968 [ -6.27228181, -0.00078699, 0.00048236, 7.27149482, 0.99759519, 0.99873065, 0.49310189],3969 [ -6.27228231, -0.00078679, 0.00048224, 7.27149552, 0.99759580, 0.99873097, 0.49310191],3970 [ -6.27228280, -0.00078659, 0.00048211, 7.27149621, 0.99759641, 0.99873130, 0.49310203],3971 [ -6.27228329, -0.00078639, 0.00048199, 7.27149690, 0.99759702, 0.99873162, 0.49310202],3972 [ -6.27228378, -0.00078619, 0.00048187, 7.27149759, 0.99759763, 0.99873194, 0.49310216],3973 [ -6.27228427, -0.00078599, 0.00048175, 7.27149828, 0.99759825, 0.99873226, 0.49310220],3974 [ -6.27228476, -0.00078579, 0.00048162, 7.27149897, 0.99759886, 0.99873259, 0.49310228],3975 [ -6.27228526, -0.00078559, 0.00048150, 7.27149966, 0.99759946, 0.99873291, 0.49310231],3976 [ -6.27228575, -0.00078539, 0.00048138, 7.27150035, 0.99760007, 0.99873323, 0.49310245],3977 [ -6.27228624, -0.00078519, 0.00048126, 7.27150104, 0.99760068, 0.99873355, 0.49310250],3978 [ -6.27228673, -0.00078500, 0.00048113, 7.27150173, 0.99760129, 0.99873387, 0.49310256],3979 [ -6.27228722, -0.00078480, 0.00048101, 7.27150242, 0.99760190, 0.99873419, 0.49310269],3980 [ -6.27228771, -0.00078460, 0.00048089, 7.27150311, 0.99760251, 0.99873451, 0.49310278],3981 [ -6.27228819, -0.00078440, 0.00048077, 7.27150380, 0.99760312, 0.99873483, 0.49310277],3982 [ -6.27228868, -0.00078420, 0.00048065, 7.27150448, 0.99760372, 0.99873515, 0.49310291],3983 [ -6.27228917, -0.00078400, 0.00048052, 7.27150517, 0.99760433, 0.99873548, 0.49310291],3984 [ -6.27228966, -0.00078380, 0.00048040, 7.27150586, 0.99760494, 0.99873580, 0.49310301],3985 [ -6.27229015, -0.00078360, 0.00048028, 7.27150654, 0.99760555, 0.99873612, 0.49310307],3986 [ -6.27229064, -0.00078341, 0.00048016, 7.27150723, 0.99760615, 0.99873644, 0.49310321],3987 [ -6.27229112, -0.00078321, 0.00048004, 7.27150792, 0.99760676, 0.99873676, 0.49310322],3988 [ -6.27229161, -0.00078301, 0.00047992, 7.27150860, 0.99760736, 0.99873707, 0.49310330],3989 [ -6.27229210, -0.00078281, 0.00047979, 7.27150929, 0.99760797, 0.99873739, 0.49310330],3990 [ -6.27229258, -0.00078261, 0.00047967, 7.27150997, 0.99760857, 0.99873771, 0.49310340],3991 [ -6.27229307, -0.00078242, 0.00047955, 7.27151065, 0.99760918, 0.99873803, 0.49310344],3992 [ -6.27229356, -0.00078222, 0.00047943, 7.27151134, 0.99760978, 0.99873835, 0.49310362],3993 [ -6.27229404, -0.00078202, 0.00047931, 7.27151202, 0.99761039, 0.99873867, 0.49310362],3994 [ -6.27229453, -0.00078182, 0.00047919, 7.27151270, 0.99761099, 0.99873899, 0.49310369],3995 [ -6.27229501, -0.00078163, 0.00047907, 7.27151339, 0.99761160, 0.99873931, 0.49310382],3996 [ -6.27229550, -0.00078143, 0.00047895, 7.27151407, 0.99761220, 0.99873963, 0.49310378],3997 [ -6.27229598, -0.00078123, 0.00047882, 7.27151475, 0.99761280, 0.99873994, 0.49310395],3998 [ -6.27229646, -0.00078103, 0.00047870, 7.27151543, 0.99761340, 0.99874026, 0.49310398],3999 [ -6.27229695, -0.00078084, 0.00047858, 7.27151611, 0.99761401, 0.99874058, 0.49310409],4000 [ -6.27229743, -0.00078064, 0.00047846, 7.27151679, 0.99761461, 0.99874090, 0.49310410],4001 [ -6.27229791, -0.00078044, 0.00047834, 7.27151747, 0.99761521, 0.99874122, 0.49310419],4002 [ -6.27229840, -0.00078025, 0.00047822, 7.27151815, 0.99761581, 0.99874153, 0.49310426],4003 [ -6.27229888, -0.00078005, 0.00047810, 7.27151883, 0.99761641, 0.99874185, 0.49310431],4004 [ -6.27229936, -0.00077985, 0.00047798, 7.27151951, 0.99761701, 0.99874217, 0.49310439],4005 [ -6.27229984, -0.00077966, 0.00047786, 7.27152019, 0.99761762, 0.99874248, 0.49310456],4006 [ -6.27230033, -0.00077946, 0.00047774, 7.27152087, 0.99761822, 0.99874280, 0.49310453],4007 [ -6.27230081, -0.00077926, 0.00047762, 7.27152154, 0.99761882, 0.99874312, 0.49310456],4008 [ -6.27230129, -0.00077907, 0.00047750, 7.27152222, 0.99761942, 0.99874343, 0.49310472],4009 [ -6.27230177, -0.00077887, 0.00047738, 7.27152290, 0.99762001, 0.99874375, 0.49310478],4010 [ -6.27230225, -0.00077868, 0.00047726, 7.27152357, 0.99762061, 0.99874407, 0.49310482],4011 [ -6.27230273, -0.00077848, 0.00047714, 7.27152425, 0.99762121, 0.99874438, 0.49310485],4012 [ -6.27230321, -0.00077828, 0.00047702, 7.27152493, 0.99762181, 0.99874470, 0.49310496],4013 [ -6.27230369, -0.00077809, 0.00047690, 7.27152560, 0.99762241, 0.99874501, 0.49310508],4014 [ -6.27230417, -0.00077789, 0.00047678, 7.27152628, 0.99762301, 0.99874533, 0.49310514],4015 [ -6.27230465, -0.00077770, 0.00047666, 7.27152695, 0.99762360, 0.99874564, 0.49310512],4016 [ -6.27230513, -0.00077750, 0.00047654, 7.27152763, 0.99762420, 0.99874596, 0.49310522],4017 [ -6.27230561, -0.00077731, 0.00047642, 7.27152830, 0.99762480, 0.99874627, 0.49310530],4018 [ -6.27230609, -0.00077711, 0.00047630, 7.27152897, 0.99762540, 0.99874659, 0.49310543],4019 [ -6.27230656, -0.00077692, 0.00047618, 7.27152965, 0.99762599, 0.99874690, 0.49310543],4020 [ -6.27230704, -0.00077672, 0.00047606, 7.27153032, 0.99762659, 0.99874722, 0.49310556],4021 [ -6.27230752, -0.00077653, 0.00047594, 7.27153099, 0.99762718, 0.99874753, 0.49310555],4022 [ -6.27230800, -0.00077633, 0.00047582, 7.27153166, 0.99762778, 0.99874785, 0.49310570],4023 [ -6.27230847, -0.00077614, 0.00047570, 7.27153233, 0.99762837, 0.99874816, 0.49310570],4024 [ -6.27230895, -0.00077594, 0.00047558, 7.27153301, 0.99762897, 0.99874848, 0.49310582],4025 [ -6.27230943, -0.00077575, 0.00047546, 7.27153368, 0.99762956, 0.99874879, 0.49310585],4026 [ -6.27230990, -0.00077556, 0.00047534, 7.27153435, 0.99763016, 0.99874910, 0.49310599],4027 [ -6.27231038, -0.00077536, 0.00047522, 7.27153502, 0.99763075, 0.99874942, 0.49310605],4028 [ -6.27231085, -0.00077517, 0.00047510, 7.27153569, 0.99763135, 0.99874973, 0.49310608],4029 [ -6.27231133, -0.00077497, 0.00047498, 7.27153636, 0.99763194, 0.99875004, 0.49310612],4030 [ -6.27231180, -0.00077478, 0.00047487, 7.27153702, 0.99763253, 0.99875036, 0.49310624],4031 [ -6.27231228, -0.00077458, 0.00047475, 7.27153769, 0.99763312, 0.99875067, 0.49310622],4032 [ -6.27231275, -0.00077439, 0.00047463, 7.27153836, 0.99763372, 0.99875098, 0.49310639],4033 [ -6.27231323, -0.00077420, 0.00047451, 7.27153903, 0.99763431, 0.99875129, 0.49310643],4034 [ -6.27231370, -0.00077400, 0.00047439, 7.27153970, 0.99763490, 0.99875161, 0.49310644],4035 [ -6.27231417, -0.00077381, 0.00047427, 7.27154036, 0.99763549, 0.99875192, 0.49310654],4036 [ -6.27231465, -0.00077362, 0.00047415, 7.27154103, 0.99763608, 0.99875223, 0.49310665],4037 [ -6.27231512, -0.00077342, 0.00047403, 7.27154170, 0.99763668, 0.99875254, 0.49310674],4038 [ -6.27231559, -0.00077323, 0.00047392, 7.27154236, 0.99763727, 0.99875285, 0.49310670],4039 [ -6.27231607, -0.00077304, 0.00047380, 7.27154303, 0.99763786, 0.99875317, 0.49310684],4040 [ -6.27231654, -0.00077284, 0.00047368, 7.27154369, 0.99763845, 0.99875348, 0.49310692],4041 [ -6.27231701, -0.00077265, 0.00047356, 7.27154436, 0.99763904, 0.99875379, 0.49310699],4042 [ -6.27231748, -0.00077246, 0.00047344, 7.27154502, 0.99763963, 0.99875410, 0.49310700],4043 [ -6.27231795, -0.00077227, 0.00047332, 7.27154569, 0.99764021, 0.99875441, 0.49310703],4044 [ -6.27231842, -0.00077207, 0.00047321, 7.27154635, 0.99764080, 0.99875472, 0.49310722],4045 [ -6.27231889, -0.00077188, 0.00047309, 7.27154701, 0.99764139, 0.99875503, 0.49310725],4046 [ -6.27231936, -0.00077169, 0.00047297, 7.27154768, 0.99764198, 0.99875534, 0.49310729],4047 [ -6.27231984, -0.00077150, 0.00047285, 7.27154834, 0.99764257, 0.99875565, 0.49310745],4048 [ -6.27232031, -0.00077130, 0.00047273, 7.27154900, 0.99764316, 0.99875596, 0.49310751],4049 [ -6.27232077, -0.00077111, 0.00047262, 7.27154966, 0.99764374, 0.99875627, 0.49310749],4050 [ -6.27232124, -0.00077092, 0.00047250, 7.27155032, 0.99764433, 0.99875658, 0.49310765],4051 [ -6.27232171, -0.00077073, 0.00047238, 7.27155099, 0.99764492, 0.99875689, 0.49310767],4052 [ -6.27232218, -0.00077054, 0.00047226, 7.27155165, 0.99764550, 0.99875720, 0.49310775],4053 [ -6.27232265, -0.00077034, 0.00047215, 7.27155231, 0.99764609, 0.99875751, 0.49310781],4054 [ -6.27232312, -0.00077015, 0.00047203, 7.27155297, 0.99764668, 0.99875782, 0.49310787],4055 [ -6.27232359, -0.00076996, 0.00047191, 7.27155363, 0.99764726, 0.99875813, 0.49310796],4056 [ -6.27232406, -0.00076977, 0.00047179, 7.27155429, 0.99764785, 0.99875844, 0.49310787],4057 [ -6.27232452, -0.00076958, 0.00047168, 7.27155494, 0.99764843, 0.99875875, 0.49310807],4058 [ -6.27232499, -0.00076939, 0.00047156, 7.27155560, 0.99764902, 0.99875906, 0.49310819],4059 [ -6.27232546, -0.00076920, 0.00047144, 7.27155626, 0.99764960, 0.99875936, 0.49310824],4060 [ -6.27232592, -0.00076900, 0.00047132, 7.27155692, 0.99765019, 0.99875967, 0.49310831],4061 [ -6.27232639, -0.00076881, 0.00047121, 7.27155758, 0.99765077, 0.99875998, 0.49310826],4062 [ -6.27232686, -0.00076862, 0.00047109, 7.27155823, 0.99765135, 0.99876029, 0.49310841],4063 [ -6.27232732, -0.00076843, 0.00047097, 7.27155889, 0.99765194, 0.99876060, 0.49310851],4064 [ -6.27232779, -0.00076824, 0.00047086, 7.27155955, 0.99765252, 0.99876090, 0.49310855],4065 [ -6.27232825, -0.00076805, 0.00047074, 7.27156020, 0.99765310, 0.99876121, 0.49310862],4066 [ -6.27232872, -0.00076786, 0.00047062, 7.27156086, 0.99765369, 0.99876152, 0.49310868],4067 [ -6.27232918, -0.00076767, 0.00047050, 7.27156151, 0.99765427, 0.99876183, 0.49310870],4068 [ -6.27232965, -0.00076748, 0.00047039, 7.27156217, 0.99765485, 0.99876213, 0.49310885],4069 [ -6.27233011, -0.00076729, 0.00047027, 7.27156282, 0.99765543, 0.99876244, 0.49310881],4070 [ -6.27233058, -0.00076710, 0.00047015, 7.27156348, 0.99765601, 0.99876275, 0.49310901],4071 [ -6.27233104, -0.00076691, 0.00047004, 7.27156413, 0.99765660, 0.99876305, 0.49310905],4072 [ -6.27233150, -0.00076672, 0.00046992, 7.27156478, 0.99765718, 0.99876336, 0.49310906],4073 [ -6.27233197, -0.00076653, 0.00046981, 7.27156544, 0.99765776, 0.99876367, 0.49310915],4074 [ -6.27233243, -0.00076634, 0.00046969, 7.27156609, 0.99765834, 0.99876397, 0.49310926],4075 [ -6.27233289, -0.00076615, 0.00046957, 7.27156674, 0.99765892, 0.99876428, 0.49310922],4076 [ -6.27233336, -0.00076596, 0.00046946, 7.27156740, 0.99765950, 0.99876458, 0.49310945],4077 [ -6.27233382, -0.00076577, 0.00046934, 7.27156805, 0.99766008, 0.99876489, 0.49310949],4078 [ -6.27233428, -0.00076558, 0.00046922, 7.27156870, 0.99766065, 0.99876520, 0.49310955],4079 [ -6.27233474, -0.00076539, 0.00046911, 7.27156935, 0.99766123, 0.99876550, 0.49310960],4080 [ -6.27233520, -0.00076520, 0.00046899, 7.27157000, 0.99766181, 0.99876581, 0.49310966],4081 [ -6.27233566, -0.00076501, 0.00046888, 7.27157065, 0.99766239, 0.99876611, 0.49310976],4082 [ -6.27233612, -0.00076482, 0.00046876, 7.27157130, 0.99766297, 0.99876642, 0.49310982],4083 [ -6.27233658, -0.00076464, 0.00046864, 7.27157195, 0.99766355, 0.99876672, 0.49310988],4084 [ -6.27233705, -0.00076445, 0.00046853, 7.27157260, 0.99766412, 0.99876703, 0.49310995],4085 [ -6.27233751, -0.00076426, 0.00046841, 7.27157325, 0.99766470, 0.99876733, 0.49310998],4086 [ -6.27233797, -0.00076407, 0.00046830, 7.27157390, 0.99766528, 0.99876763, 0.49311004],4087 [ -6.27233843, -0.00076388, 0.00046818, 7.27157454, 0.99766585, 0.99876794, 0.49311017],4088 [ -6.27233888, -0.00076369, 0.00046806, 7.27157519, 0.99766643, 0.99876824, 0.49311019],4089 [ -6.27233934, -0.00076350, 0.00046795, 7.27157584, 0.99766701, 0.99876855, 0.49311023],4090 [ -6.27233980, -0.00076332, 0.00046783, 7.27157649, 0.99766758, 0.99876885, 0.49311028],4091 [ -6.27234026, -0.00076313, 0.00046772, 7.27157713, 0.99766816, 0.99876915, 0.49311042],4092 [ -6.27234072, -0.00076294, 0.00046760, 7.27157778, 0.99766873, 0.99876946, 0.49311047],4093 [ -6.27234118, -0.00076275, 0.00046749, 7.27157843, 0.99766931, 0.99876976, 0.49311045],4094 [ -6.27234163, -0.00076256, 0.00046737, 7.27157907, 0.99766988, 0.99877006, 0.49311061],4095 [ -6.27234209, -0.00076238, 0.00046726, 7.27157972, 0.99767046, 0.99877037, 0.49311059],4096 [ -6.27234255, -0.00076219, 0.00046714, 7.27158036, 0.99767103, 0.99877067, 0.49311072],4097 [ -6.27234301, -0.00076200, 0.00046703, 7.27158101, 0.99767160, 0.99877097, 0.49311081],4098 [ -6.27234346, -0.00076181, 0.00046691, 7.27158165, 0.99767218, 0.99877128, 0.49311088],4099 [ -6.27234392, -0.00076163, 0.00046680, 7.27158229, 0.99767275, 0.99877158, 0.49311099],4100 [ -6.27234438, -0.00076144, 0.00046668, 7.27158294, 0.99767332, 0.99877188, 0.49311100],4101 [ -6.27234483, -0.00076125, 0.00046657, 7.27158358, 0.99767389, 0.99877218, 0.49311108],4102 [ -6.27234529, -0.00076106, 0.00046645, 7.27158422, 0.99767447, 0.99877248, 0.49311114],4103 [ -6.27234574, -0.00076088, 0.00046634, 7.27158487, 0.99767504, 0.99877279, 0.49311126],4104 [ -6.27234620, -0.00076069, 0.00046622, 7.27158551, 0.99767561, 0.99877309, 0.49311118],4105 [ -6.27234665, -0.00076050, 0.00046611, 7.27158615, 0.99767618, 0.99877339, 0.49311132],4106 [ -6.27234711, -0.00076032, 0.00046599, 7.27158679, 0.99767675, 0.99877369, 0.49311134],4107 [ -6.27234756, -0.00076013, 0.00046588, 7.27158743, 0.99767732, 0.99877399, 0.49311138],4108 [ -6.27234802, -0.00075994, 0.00046576, 7.27158807, 0.99767789, 0.99877429, 0.49311158],4109 [ -6.27234847, -0.00075976, 0.00046565, 7.27158872, 0.99767846, 0.99877459, 0.49311152],4110 [ -6.27234892, -0.00075957, 0.00046554, 7.27158935, 0.99767903, 0.99877489, 0.49311170],4111 [ -6.27234938, -0.00075938, 0.00046542, 7.27158999, 0.99767960, 0.99877519, 0.49311176],4112 [ -6.27234983, -0.00075920, 0.00046531, 7.27159063, 0.99768017, 0.99877550, 0.49311184],4113 [ -6.27235028, -0.00075901, 0.00046519, 7.27159127, 0.99768074, 0.99877580, 0.49311180],4114 [ -6.27235074, -0.00075882, 0.00046508, 7.27159191, 0.99768131, 0.99877610, 0.49311187],4115 [ -6.27235119, -0.00075864, 0.00046496, 7.27159255, 0.99768188, 0.99877640, 0.49311206],4116 [ -6.27235164, -0.00075845, 0.00046485, 7.27159319, 0.99768245, 0.99877670, 0.49311212],4117 [ -6.27235209, -0.00075827, 0.00046474, 7.27159383, 0.99768302, 0.99877700, 0.49311212],4118 [ -6.27235255, -0.00075808, 0.00046462, 7.27159446, 0.99768358, 0.99877730, 0.49311214],4119 [ -6.27235300, -0.00075790, 0.00046451, 7.27159510, 0.99768415, 0.99877759, 0.49311223],4120 [ -6.27235345, -0.00075771, 0.00046440, 7.27159574, 0.99768472, 0.99877789, 0.49311231],4121 [ -6.27235390, -0.00075753, 0.00046428, 7.27159637, 0.99768529, 0.99877819, 0.49311242],4122 [ -6.27235435, -0.00075734, 0.00046417, 7.27159701, 0.99768585, 0.99877849, 0.49311242],4123 [ -6.27235480, -0.00075715, 0.00046405, 7.27159765, 0.99768642, 0.99877879, 0.49311257],4124 [ -6.27235525, -0.00075697, 0.00046394, 7.27159828, 0.99768699, 0.99877909, 0.49311263],4125 [ -6.27235570, -0.00075678, 0.00046383, 7.27159892, 0.99768755, 0.99877939, 0.49311265],4126 [ -6.27235615, -0.00075660, 0.00046371, 7.27159955, 0.99768812, 0.99877969, 0.49311271],4127 [ -6.27235660, -0.00075641, 0.00046360, 7.27160019, 0.99768868, 0.99877999, 0.49311273],4128 [ -6.27235705, -0.00075623, 0.00046349, 7.27160082, 0.99768925, 0.99878028, 0.49311292],4129 [ -6.27235750, -0.00075605, 0.00046337, 7.27160145, 0.99768981, 0.99878058, 0.49311290],4130 [ -6.27235795, -0.00075586, 0.00046326, 7.27160209, 0.99769038, 0.99878088, 0.49311294],4131 [ -6.27235840, -0.00075568, 0.00046315, 7.27160272, 0.99769094, 0.99878118, 0.49311305],4132 [ -6.27235884, -0.00075549, 0.00046303, 7.27160335, 0.99769150, 0.99878147, 0.49311309],4133 [ -6.27235929, -0.00075531, 0.00046292, 7.27160398, 0.99769207, 0.99878177, 0.49311327],4134 [ -6.27235974, -0.00075512, 0.00046281, 7.27160462, 0.99769263, 0.99878207, 0.49311324],4135 [ -6.27236019, -0.00075494, 0.00046269, 7.27160525, 0.99769319, 0.99878237, 0.49311327],4136 [ -6.27236063, -0.00075475, 0.00046258, 7.27160588, 0.99769376, 0.99878266, 0.49311333],4137 [ -6.27236108, -0.00075457, 0.00046247, 7.27160651, 0.99769432, 0.99878296, 0.49311348],4138 [ -6.27236153, -0.00075439, 0.00046236, 7.27160714, 0.99769488, 0.99878326, 0.49311361],4139 [ -6.27236197, -0.00075420, 0.00046224, 7.27160777, 0.99769544, 0.99878355, 0.49311357],4140 [ -6.27236242, -0.00075402, 0.00046213, 7.27160840, 0.99769601, 0.99878385, 0.49311362],4141 [ -6.27236287, -0.00075384, 0.00046202, 7.27160903, 0.99769657, 0.99878415, 0.49311367],4142 [ -6.27236331, -0.00075365, 0.00046191, 7.27160966, 0.99769713, 0.99878444, 0.49311366],4143 [ -6.27236376, -0.00075347, 0.00046179, 7.27161029, 0.99769769, 0.99878474, 0.49311384],4144 [ -6.27236420, -0.00075329, 0.00046168, 7.27161092, 0.99769825, 0.99878503, 0.49311393],4145 [ -6.27236465, -0.00075310, 0.00046157, 7.27161155, 0.99769881, 0.99878533, 0.49311405],4146 [ -6.27236509, -0.00075292, 0.00046146, 7.27161217, 0.99769937, 0.99878563, 0.49311410],4147 [ -6.27236554, -0.00075274, 0.00046134, 7.27161280, 0.99769993, 0.99878592, 0.49311401],4148 [ -6.27236598, -0.00075255, 0.00046123, 7.27161343, 0.99770049, 0.99878622, 0.49311424],4149 [ -6.27236643, -0.00075237, 0.00046112, 7.27161406, 0.99770105, 0.99878651, 0.49311425],4150 [ -6.27236687, -0.00075219, 0.00046101, 7.27161468, 0.99770161, 0.99878681, 0.49311423],4151 [ -6.27236731, -0.00075200, 0.00046089, 7.27161531, 0.99770217, 0.99878710, 0.49311442],4152 [ -6.27236776, -0.00075182, 0.00046078, 7.27161594, 0.99770272, 0.99878740, 0.49311431],4153 [ -6.27236820, -0.00075164, 0.00046067, 7.27161656, 0.99770328, 0.99878769, 0.49311449],4154 [ -6.27236864, -0.00075146, 0.00046056, 7.27161719, 0.99770384, 0.99878798, 0.49311451],4155 [ -6.27236909, -0.00075127, 0.00046045, 7.27161781, 0.99770440, 0.99878828, 0.49311462],4156 [ -6.27236953, -0.00075109, 0.00046034, 7.27161844, 0.99770496, 0.99878857, 0.49311465],4157 [ -6.27236997, -0.00075091, 0.00046022, 7.27161906, 0.99770551, 0.99878887, 0.49311479],4158 [ -6.27237041, -0.00075073, 0.00046011, 7.27161968, 0.99770607, 0.99878916, 0.49311488],4159 [ -6.27237085, -0.00075055, 0.00046000, 7.27162031, 0.99770663, 0.99878945, 0.49311489],4160 [ -6.27237130, -0.00075036, 0.00045989, 7.27162093, 0.99770718, 0.99878975, 0.49311496],4161 [ -6.27237174, -0.00075018, 0.00045978, 7.27162155, 0.99770774, 0.99879004, 0.49311494],4162 [ -6.27237218, -0.00075000, 0.00045967, 7.27162218, 0.99770829, 0.99879033, 0.49311510],4163 [ -6.27237262, -0.00074982, 0.00045955, 7.27162280, 0.99770885, 0.99879063, 0.49311504],4164 [ -6.27237306, -0.00074964, 0.00045944, 7.27162342, 0.99770941, 0.99879092, 0.49311523],4165 [ -6.27237350, -0.00074946, 0.00045933, 7.27162404, 0.99770996, 0.99879121, 0.49311526],4166 [ -6.27237394, -0.00074927, 0.00045922, 7.27162466, 0.99771051, 0.99879151, 0.49311531],4167 [ -6.27237438, -0.00074909, 0.00045911, 7.27162529, 0.99771107, 0.99879180, 0.49311549],4168 [ -6.27237482, -0.00074891, 0.00045900, 7.27162591, 0.99771162, 0.99879209, 0.49311546],4169 [ -6.27237526, -0.00074873, 0.00045889, 7.27162653, 0.99771218, 0.99879238, 0.49311554],4170 [ -6.27237570, -0.00074855, 0.00045878, 7.27162715, 0.99771273, 0.99879268, 0.49311557],4171 [ -6.27237614, -0.00074837, 0.00045866, 7.27162777, 0.99771328, 0.99879297, 0.49311573],4172 [ -6.27237657, -0.00074819, 0.00045855, 7.27162839, 0.99771384, 0.99879326, 0.49311571],4173 [ -6.27237701, -0.00074801, 0.00045844, 7.27162901, 0.99771439, 0.99879355, 0.49311580],4174 [ -6.27237745, -0.00074783, 0.00045833, 7.27162962, 0.99771494, 0.99879384, 0.49311585],4175 [ -6.27237789, -0.00074765, 0.00045822, 7.27163024, 0.99771549, 0.99879413, 0.49311592],4176 [ -6.27237833, -0.00074747, 0.00045811, 7.27163086, 0.99771605, 0.99879442, 0.49311607],4177 [ -6.27237876, -0.00074728, 0.00045800, 7.27163148, 0.99771660, 0.99879472, 0.49311608],4178 [ -6.27237920, -0.00074710, 0.00045789, 7.27163210, 0.99771715, 0.99879501, 0.49311612],4179 [ -6.27237964, -0.00074692, 0.00045778, 7.27163271, 0.99771770, 0.99879530, 0.49311622],4180 [ -6.27238007, -0.00074674, 0.00045767, 7.27163333, 0.99771825, 0.99879559, 0.49311623],4181 [ -6.27238051, -0.00074656, 0.00045756, 7.27163395, 0.99771880, 0.99879588, 0.49311629],4182 [ -6.27238095, -0.00074638, 0.00045745, 7.27163456, 0.99771935, 0.99879617, 0.49311629],4183 [ -6.27238138, -0.00074620, 0.00045734, 7.27163518, 0.99771990, 0.99879646, 0.49311644],4184 [ -6.27238182, -0.00074602, 0.00045723, 7.27163580, 0.99772045, 0.99879675, 0.49311641],4185 [ -6.27238225, -0.00074584, 0.00045712, 7.27163641, 0.99772100, 0.99879704, 0.49311653],4186 [ -6.27238269, -0.00074566, 0.00045701, 7.27163703, 0.99772155, 0.99879733, 0.49311671],4187 [ -6.27238312, -0.00074548, 0.00045690, 7.27163764, 0.99772210, 0.99879762, 0.49311673],4188 [ -6.27238356, -0.00074531, 0.00045679, 7.27163825, 0.99772265, 0.99879791, 0.49311683],4189 [ -6.27238399, -0.00074513, 0.00045668, 7.27163887, 0.99772320, 0.99879820, 0.49311676],4190 [ -6.27238443, -0.00074495, 0.00045657, 7.27163948, 0.99772375, 0.99879849, 0.49311684],4191 [ -6.27238486, -0.00074477, 0.00045646, 7.27164010, 0.99772429, 0.99879878, 0.49311690],4192 [ -6.27238530, -0.00074459, 0.00045635, 7.27164071, 0.99772484, 0.99879907, 0.49311703],4193 [ -6.27238573, -0.00074441, 0.00045624, 7.27164132, 0.99772539, 0.99879936, 0.49311710],4194 [ -6.27238616, -0.00074423, 0.00045613, 7.27164193, 0.99772594, 0.99879964, 0.49311708],4195 [ -6.27238660, -0.00074405, 0.00045602, 7.27164255, 0.99772648, 0.99879993, 0.49311725],4196 [ -6.27238703, -0.00074387, 0.00045591, 7.27164316, 0.99772703, 0.99880022, 0.49311732],4197 [ -6.27238746, -0.00074369, 0.00045580, 7.27164377, 0.99772758, 0.99880051, 0.49311738],4198 [ -6.27238790, -0.00074352, 0.00045569, 7.27164438, 0.99772812, 0.99880080, 0.49311739],4199 [ -6.27238833, -0.00074334, 0.00045558, 7.27164499, 0.99772867, 0.99880109, 0.49311746],4200 [ -6.27238876, -0.00074316, 0.00045547, 7.27164560, 0.99772921, 0.99880137, 0.49311752],4201 [ -6.27238919, -0.00074298, 0.00045536, 7.27164621, 0.99772976, 0.99880166, 0.49311758],4202 [ -6.27238962, -0.00074280, 0.00045525, 7.27164682, 0.99773030, 0.99880195, 0.49311766],4203 [ -6.27239006, -0.00074262, 0.00045514, 7.27164743, 0.99773085, 0.99880224, 0.49311772],4204 [ -6.27239049, -0.00074245, 0.00045503, 7.27164804, 0.99773139, 0.99880252, 0.49311777],4205 [ -6.27239092, -0.00074227, 0.00045492, 7.27164865, 0.99773194, 0.99880281, 0.49311785],4206 [ -6.27239135, -0.00074209, 0.00045481, 7.27164926, 0.99773248, 0.99880310, 0.49311791],4207 [ -6.27239178, -0.00074191, 0.00045470, 7.27164987, 0.99773303, 0.99880339, 0.49311797],4208 [ -6.27239221, -0.00074173, 0.00045459, 7.27165048, 0.99773357, 0.99880367, 0.49311806],4209 [ -6.27239264, -0.00074156, 0.00045449, 7.27165108, 0.99773411, 0.99880396, 0.49311809],4210 [ -6.27239307, -0.00074138, 0.00045438, 7.27165169, 0.99773466, 0.99880425, 0.49311816],4211 [ -6.27239350, -0.00074120, 0.00045427, 7.27165230, 0.99773520, 0.99880453, 0.49311824],4212 [ -6.27239393, -0.00074102, 0.00045416, 7.27165291, 0.99773574, 0.99880482, 0.49311829],4213 [ -6.27239436, -0.00074085, 0.00045405, 7.27165351, 0.99773628, 0.99880510, 0.49311835],4214 [ -6.27239479, -0.00074067, 0.00045394, 7.27165412, 0.99773683, 0.99880539, 0.49311839],4215 [ -6.27239522, -0.00074049, 0.00045383, 7.27165472, 0.99773737, 0.99880568, 0.49311849],4216 [ -6.27239564, -0.00074031, 0.00045372, 7.27165533, 0.99773791, 0.99880596, 0.49311853],4217 [ -6.27239607, -0.00074014, 0.00045362, 7.27165593, 0.99773845, 0.99880625, 0.49311862],4218 [ -6.27239650, -0.00073996, 0.00045351, 7.27165654, 0.99773899, 0.99880653, 0.49311867],4219 [ -6.27239693, -0.00073978, 0.00045340, 7.27165714, 0.99773953, 0.99880682, 0.49311873],4220 [ -6.27239736, -0.00073961, 0.00045329, 7.27165775, 0.99774007, 0.99880710, 0.49311878],4221 [ -6.27239778, -0.00073943, 0.00045318, 7.27165835, 0.99774061, 0.99880739, 0.49311885],4222 [ -6.27239821, -0.00073925, 0.00045307, 7.27165896, 0.99774115, 0.99880767, 0.49311891],4223 [ -6.27239864, -0.00073908, 0.00045296, 7.27165956, 0.99774169, 0.99880796, 0.49311897],4224 [ -6.27239906, -0.00073890, 0.00045286, 7.27166016, 0.99774223, 0.99880824, 0.49311905],4225 [ -6.27239949, -0.00073872, 0.00045275, 7.27166077, 0.99774277, 0.99880853, 0.49311912],4226 [ -6.27239992, -0.00073855, 0.00045264, 7.27166137, 0.99774331, 0.99880881, 0.49311918],4227 [ -6.27240034, -0.00073837, 0.00045253, 7.27166197, 0.99774385, 0.99880910, 0.49311924],4228 [ -6.27240077, -0.00073820, 0.00045242, 7.27166257, 0.99774439, 0.99880938, 0.49311929],4229 [ -6.27240119, -0.00073802, 0.00045232, 7.27166317, 0.99774492, 0.99880966, 0.49311935],4230 [ -6.27240162, -0.00073784, 0.00045221, 7.27166378, 0.99774546, 0.99880995, 0.49311941],4231 [ -6.27240205, -0.00073767, 0.00045210, 7.27166438, 0.99774600, 0.99881023, 0.49311949],4232 [ -6.27240247, -0.00073749, 0.00045199, 7.27166498, 0.99774654, 0.99881051, 0.49311956],4233 [ -6.27240289, -0.00073732, 0.00045188, 7.27166558, 0.99774707, 0.99881080, 0.49311961],4234 [ -6.27240332, -0.00073714, 0.00045178, 7.27166618, 0.99774761, 0.99881108, 0.49311968],4235 [ -6.27240374, -0.00073697, 0.00045167, 7.27166678, 0.99774815, 0.99881136, 0.49311975],4236 [ -6.27240417, -0.00073679, 0.00045156, 7.27166738, 0.99774868, 0.99881165, 0.49311980],4237 [ -6.27240459, -0.00073662, 0.00045145, 7.27166798, 0.99774922, 0.99881193, 0.49311987],4238 [ -6.27240502, -0.00073644, 0.00045135, 7.27166858, 0.99774976, 0.99881221, 0.49311992],4239 [ -6.27240544, -0.00073626, 0.00045124, 7.27166917, 0.99775029, 0.99881250, 0.49312000],4240 [ -6.27240586, -0.00073609, 0.00045113, 7.27166977, 0.99775083, 0.99881278, 0.49312006],4241 [ -6.27240628, -0.00073591, 0.00045102, 7.27167037, 0.99775136, 0.99881306, 0.49312011],4242 [ -6.27240671, -0.00073574, 0.00045092, 7.27167097, 0.99775190, 0.99881334, 0.49312017],4243 [ -6.27240713, -0.00073556, 0.00045081, 7.27167157, 0.99775243, 0.99881362, 0.49312022],4244 [ -6.27240755, -0.00073539, 0.00045070, 7.27167216, 0.99775297, 0.99881391, 0.49312031],4245 [ -6.27240797, -0.00073522, 0.00045060, 7.27167276, 0.99775350, 0.99881419, 0.49312033],4246 [ -6.27240840, -0.00073504, 0.00045049, 7.27167336, 0.99775403, 0.99881447, 0.49312043],4247 [ -6.27240882, -0.00073487, 0.00045038, 7.27167395, 0.99775457, 0.99881475, 0.49312049],4248 [ -6.27240924, -0.00073469, 0.00045027, 7.27167455, 0.99775510, 0.99881503, 0.49312054],4249 [ -6.27240966, -0.00073452, 0.00045017, 7.27167514, 0.99775563, 0.99881531, 0.49312061],4250 [ -6.27241008, -0.00073434, 0.00045006, 7.27167574, 0.99775617, 0.99881560, 0.49312068],4251 [ -6.27241050, -0.00073417, 0.00044995, 7.27167633, 0.99775670, 0.99881588, 0.49312074],4252 [ -6.27241092, -0.00073400, 0.00044985, 7.27167693, 0.99775723, 0.99881616, 0.49312080],4253 [ -6.27241134, -0.00073382, 0.00044974, 7.27167752, 0.99775776, 0.99881644, 0.49312087],4254 [ -6.27241176, -0.00073365, 0.00044963, 7.27167812, 0.99775829, 0.99881672, 0.49312093],4255 [ -6.27241218, -0.00073347, 0.00044953, 7.27167871, 0.99775883, 0.99881700, 0.49312099],4256 [ -6.27241260, -0.00073330, 0.00044942, 7.27167930, 0.99775936, 0.99881728, 0.49312106],4257 [ -6.27241302, -0.00073313, 0.00044931, 7.27167990, 0.99775989, 0.99881756, 0.49312110],4258 [ -6.27241344, -0.00073295, 0.00044921, 7.27168049, 0.99776042, 0.99881784, 0.49312117],4259 [ -6.27241386, -0.00073278, 0.00044910, 7.27168108, 0.99776095, 0.99881812, 0.49312124],4260 [ -6.27241428, -0.00073261, 0.00044899, 7.27168167, 0.99776148, 0.99881840, 0.49312129],4261 [ -6.27241470, -0.00073243, 0.00044889, 7.27168227, 0.99776201, 0.99881868, 0.49312137],4262 [ -6.27241512, -0.00073226, 0.00044878, 7.27168286, 0.99776254, 0.99881896, 0.49312141],4263 [ -6.27241554, -0.00073209, 0.00044868, 7.27168345, 0.99776307, 0.99881924, 0.49312147],4264 [ -6.27241595, -0.00073191, 0.00044857, 7.27168404, 0.99776360, 0.99881952, 0.49312156],4265 [ -6.27241637, -0.00073174, 0.00044846, 7.27168463, 0.99776413, 0.99881980, 0.49312161],4266 [ -6.27241679, -0.00073157, 0.00044836, 7.27168522, 0.99776466, 0.99882008, 0.49312166],4267 [ -6.27241721, -0.00073139, 0.00044825, 7.27168581, 0.99776518, 0.99882035, 0.49312172],4268 [ -6.27241762, -0.00073122, 0.00044815, 7.27168640, 0.99776571, 0.99882063, 0.49312178],4269 [ -6.27241804, -0.00073105, 0.00044804, 7.27168699, 0.99776624, 0.99882091, 0.49312185],4270 [ -6.27241846, -0.00073088, 0.00044793, 7.27168758, 0.99776677, 0.99882119, 0.49312193],4271 [ -6.27241887, -0.00073070, 0.00044783, 7.27168817, 0.99776730, 0.99882147, 0.49312197],4272 [ -6.27241929, -0.00073053, 0.00044772, 7.27168876, 0.99776782, 0.99882175, 0.49312203],4273 [ -6.27241971, -0.00073036, 0.00044762, 7.27168935, 0.99776835, 0.99882202, 0.49312211],4274 [ -6.27242012, -0.00073019, 0.00044751, 7.27168994, 0.99776888, 0.99882230, 0.49312215],4275 [ -6.27242054, -0.00073001, 0.00044741, 7.27169052, 0.99776940, 0.99882258, 0.49312222],4276 [ -6.27242095, -0.00072984, 0.00044730, 7.27169111, 0.99776993, 0.99882286, 0.49312230],4277 [ -6.27242137, -0.00072967, 0.00044719, 7.27169170, 0.99777045, 0.99882314, 0.49312233],4278 [ -6.27242178, -0.00072950, 0.00044709, 7.27169229, 0.99777098, 0.99882341, 0.49312241],4279 [ -6.27242220, -0.00072933, 0.00044698, 7.27169287, 0.99777151, 0.99882369, 0.49312246],4280 [ -6.27242261, -0.00072915, 0.00044688, 7.27169346, 0.99777203, 0.99882397, 0.49312253],4281 [ -6.27242303, -0.00072898, 0.00044677, 7.27169405, 0.99777256, 0.99882424, 0.49312260],4282 [ -6.27242344, -0.00072881, 0.00044667, 7.27169463, 0.99777308, 0.99882452, 0.49312265],4283 [ -6.27242386, -0.00072864, 0.00044656, 7.27169522, 0.99777361, 0.99882480, 0.49312272],4284 [ -6.27242427, -0.00072847, 0.00044646, 7.27169580, 0.99777413, 0.99882508, 0.49312276],4285 [ -6.27242468, -0.00072830, 0.00044635, 7.27169639, 0.99777465, 0.99882535, 0.49312285],4286 [ -6.27242510, -0.00072813, 0.00044625, 7.27169697, 0.99777518, 0.99882563, 0.49312291],4287 [ -6.27242551, -0.00072795, 0.00044614, 7.27169756, 0.99777570, 0.99882590, 0.49312295],4288 [ -6.27242592, -0.00072778, 0.00044604, 7.27169814, 0.99777622, 0.99882618, 0.49312303],4289 [ -6.27242634, -0.00072761, 0.00044593, 7.27169872, 0.99777675, 0.99882646, 0.49312307],4290 [ -6.27242675, -0.00072744, 0.00044583, 7.27169931, 0.99777727, 0.99882673, 0.49312312],4291 [ -6.27242716, -0.00072727, 0.00044572, 7.27169989, 0.99777779, 0.99882701, 0.49312319],4292 [ -6.27242757, -0.00072710, 0.00044562, 7.27170047, 0.99777831, 0.99882728, 0.49312326],4293 [ -6.27242798, -0.00072693, 0.00044551, 7.27170106, 0.99777884, 0.99882756, 0.49312335],4294 [ -6.27242840, -0.00072676, 0.00044541, 7.27170164, 0.99777936, 0.99882783, 0.49312338],4295 [ -6.27242881, -0.00072659, 0.00044530, 7.27170222, 0.99777988, 0.99882811, 0.49312345],4296 [ -6.27242922, -0.00072642, 0.00044520, 7.27170280, 0.99778040, 0.99882838, 0.49312349],4297 [ -6.27242963, -0.00072625, 0.00044509, 7.27170338, 0.99778092, 0.99882866, 0.49312358],4298 [ -6.27243004, -0.00072608, 0.00044499, 7.27170397, 0.99778144, 0.99882893, 0.49312364],4299 [ -6.27243045, -0.00072591, 0.00044488, 7.27170455, 0.99778196, 0.99882921, 0.49312368],4300 [ -6.27243086, -0.00072574, 0.00044478, 7.27170513, 0.99778248, 0.99882948, 0.49312376],4301 [ -6.27243127, -0.00072557, 0.00044468, 7.27170571, 0.99778300, 0.99882976, 0.49312381],4302 [ -6.27243168, -0.00072540, 0.00044457, 7.27170629, 0.99778352, 0.99883003, 0.49312388],4303 [ -6.27243209, -0.00072523, 0.00044447, 7.27170687, 0.99778404, 0.99883031, 0.49312394],4304 [ -6.27243250, -0.00072506, 0.00044436, 7.27170745, 0.99778456, 0.99883058, 0.49312397],4305 [ -6.27243291, -0.00072489, 0.00044426, 7.27170803, 0.99778508, 0.99883086, 0.49312405],4306 [ -6.27243332, -0.00072472, 0.00044416, 7.27170860, 0.99778560, 0.99883113, 0.49312410],4307 [ -6.27243373, -0.00072455, 0.00044405, 7.27170918, 0.99778612, 0.99883140, 0.49312419],4308 [ -6.27243414, -0.00072438, 0.00044395, 7.27170976, 0.99778664, 0.99883168, 0.49312424],4309 [ -6.27243455, -0.00072421, 0.00044384, 7.27171034, 0.99778716, 0.99883195, 0.49312429],4310 [ -6.27243496, -0.00072404, 0.00044374, 7.27171092, 0.99778767, 0.99883222, 0.49312436],4311 [ -6.27243536, -0.00072387, 0.00044364, 7.27171150, 0.99778819, 0.99883250, 0.49312441],4312 [ -6.27243577, -0.00072370, 0.00044353, 7.27171207, 0.99778871, 0.99883277, 0.49312447],4313 [ -6.27243618, -0.00072353, 0.00044343, 7.27171265, 0.99778923, 0.99883304, 0.49312454],4314 [ -6.27243659, -0.00072336, 0.00044332, 7.27171323, 0.99778974, 0.99883331, 0.49312460],4315 [ -6.27243700, -0.00072319, 0.00044322, 7.27171380, 0.99779026, 0.99883359, 0.49312464],4316 [ -6.27243740, -0.00072302, 0.00044312, 7.27171438, 0.99779078, 0.99883386, 0.49312471],4317 [ -6.27243781, -0.00072285, 0.00044301, 7.27171495, 0.99779129, 0.99883413, 0.49312476],4318 [ -6.27243822, -0.00072269, 0.00044291, 7.27171553, 0.99779181, 0.99883440, 0.49312483],4319 [ -6.27243862, -0.00072252, 0.00044281, 7.27171611, 0.99779232, 0.99883468, 0.49312489],4320 [ -6.27243903, -0.00072235, 0.00044270, 7.27171668, 0.99779284, 0.99883495, 0.49312495],4321 [ -6.27243944, -0.00072218, 0.00044260, 7.27171726, 0.99779336, 0.99883522, 0.49312500],4322 [ -6.27243984, -0.00072201, 0.00044250, 7.27171783, 0.99779387, 0.99883549, 0.49312508],4323 [ -6.27244025, -0.00072184, 0.00044239, 7.27171840, 0.99779438, 0.99883576, 0.49312514],4324 [ -6.27244065, -0.00072167, 0.00044229, 7.27171898, 0.99779490, 0.99883604, 0.49312518],4325 [ -6.27244106, -0.00072151, 0.00044219, 7.27171955, 0.99779541, 0.99883631, 0.49312525],4326 [ -6.27244146, -0.00072134, 0.00044208, 7.27172012, 0.99779593, 0.99883658, 0.49312531],4327 [ -6.27244187, -0.00072117, 0.00044198, 7.27172070, 0.99779644, 0.99883685, 0.49312537],4328 [ -6.27244227, -0.00072100, 0.00044188, 7.27172127, 0.99779696, 0.99883712, 0.49312544],4329 [ -6.27244268, -0.00072083, 0.00044177, 7.27172184, 0.99779747, 0.99883739, 0.49312550],4330 [ -6.27244308, -0.00072067, 0.00044167, 7.27172242, 0.99779798, 0.99883766, 0.49312555],4331 [ -6.27244349, -0.00072050, 0.00044157, 7.27172299, 0.99779849, 0.99883793, 0.49312563],4332 [ -6.27244389, -0.00072033, 0.00044147, 7.27172356, 0.99779901, 0.99883820, 0.49312567],4333 [ -6.27244429, -0.00072016, 0.00044136, 7.27172413, 0.99779952, 0.99883847, 0.49312573],4334 [ -6.27244470, -0.00072000, 0.00044126, 7.27172470, 0.99780003, 0.99883874, 0.49312578],4335 [ -6.27244510, -0.00071983, 0.00044116, 7.27172527, 0.99780054, 0.99883901, 0.49312585],4336 [ -6.27244550, -0.00071966, 0.00044105, 7.27172584, 0.99780105, 0.99883928, 0.49312592],4337 [ -6.27244591, -0.00071949, 0.00044095, 7.27172641, 0.99780157, 0.99883955, 0.49312598],4338 [ -6.27244631, -0.00071933, 0.00044085, 7.27172698, 0.99780208, 0.99883982, 0.49312604],4339 [ -6.27244671, -0.00071916, 0.00044075, 7.27172755, 0.99780259, 0.99884009, 0.49312608],4340 [ -6.27244712, -0.00071899, 0.00044064, 7.27172812, 0.99780310, 0.99884036, 0.49312614],4341 [ -6.27244752, -0.00071883, 0.00044054, 7.27172869, 0.99780361, 0.99884063, 0.49312622],4342 [ -6.27244792, -0.00071866, 0.00044044, 7.27172926, 0.99780412, 0.99884090, 0.49312626],4343 [ -6.27244832, -0.00071849, 0.00044034, 7.27172983, 0.99780463, 0.99884117, 0.49312632],4344 [ -6.27244872, -0.00071833, 0.00044024, 7.27173040, 0.99780514, 0.99884144, 0.49312638],4345 [ -6.27244912, -0.00071816, 0.00044013, 7.27173097, 0.99780565, 0.99884171, 0.49312645],4346 [ -6.27244953, -0.00071799, 0.00044003, 7.27173153, 0.99780616, 0.99884198, 0.49312649],4347 [ -6.27244993, -0.00071783, 0.00043993, 7.27173210, 0.99780667, 0.99884225, 0.49312657],4348 [ -6.27245033, -0.00071766, 0.00043983, 7.27173267, 0.99780718, 0.99884251, 0.49312664],4349 [ -6.27245073, -0.00071749, 0.00043972, 7.27173323, 0.99780768, 0.99884278, 0.49312669],4350 [ -6.27245113, -0.00071733, 0.00043962, 7.27173380, 0.99780819, 0.99884305, 0.49312674],4351 [ -6.27245153, -0.00071716, 0.00043952, 7.27173437, 0.99780870, 0.99884332, 0.49312680],4352 [ -6.27245193, -0.00071699, 0.00043942, 7.27173493, 0.99780921, 0.99884359, 0.49312685],4353 [ -6.27245233, -0.00071683, 0.00043932, 7.27173550, 0.99780972, 0.99884385, 0.49312691],4354 [ -6.27245273, -0.00071666, 0.00043922, 7.27173607, 0.99781022, 0.99884412, 0.49312701],4355 [ -6.27245313, -0.00071650, 0.00043911, 7.27173663, 0.99781073, 0.99884439, 0.49312703],4356 [ -6.27245353, -0.00071633, 0.00043901, 7.27173720, 0.99781124, 0.99884466, 0.49312710],4357 [ -6.27245393, -0.00071617, 0.00043891, 7.27173776, 0.99781174, 0.99884492, 0.49312716],4358 [ -6.27245432, -0.00071600, 0.00043881, 7.27173833, 0.99781225, 0.99884519, 0.49312722],4359 [ -6.27245472, -0.00071583, 0.00043871, 7.27173889, 0.99781276, 0.99884546, 0.49312728],4360 [ -6.27245512, -0.00071567, 0.00043861, 7.27173945, 0.99781326, 0.99884573, 0.49312736],4361 [ -6.27245552, -0.00071550, 0.00043850, 7.27174002, 0.99781377, 0.99884599, 0.49312741],4362 [ -6.27245592, -0.00071534, 0.00043840, 7.27174058, 0.99781427, 0.99884626, 0.49312745],4363 [ -6.27245632, -0.00071517, 0.00043830, 7.27174114, 0.99781478, 0.99884653, 0.49312752],4364 [ -6.27245671, -0.00071501, 0.00043820, 7.27174171, 0.99781528, 0.99884679, 0.49312756],4365 [ -6.27245711, -0.00071484, 0.00043810, 7.27174227, 0.99781579, 0.99884706, 0.49312763],4366 [ -6.27245751, -0.00071468, 0.00043800, 7.27174283, 0.99781629, 0.99884733, 0.49312770],4367 [ -6.27245791, -0.00071451, 0.00043790, 7.27174339, 0.99781680, 0.99884759, 0.49312773],4368 [ -6.27245830, -0.00071435, 0.00043779, 7.27174396, 0.99781730, 0.99884786, 0.49312781],4369 [ -6.27245870, -0.00071418, 0.00043769, 7.27174452, 0.99781781, 0.99884812, 0.49312788],4370 [ -6.27245910, -0.00071402, 0.00043759, 7.27174508, 0.99781831, 0.99884839, 0.49312794],4371 [ -6.27245949, -0.00071385, 0.00043749, 7.27174564, 0.99781881, 0.99884866, 0.49312798],4372 [ -6.27245989, -0.00071369, 0.00043739, 7.27174620, 0.99781932, 0.99884892, 0.49312802],4373 [ -6.27246028, -0.00071352, 0.00043729, 7.27174676, 0.99781982, 0.99884919, 0.49312810],4374 [ -6.27246068, -0.00071336, 0.00043719, 7.27174732, 0.99782032, 0.99884945, 0.49312816],4375 [ -6.27246108, -0.00071320, 0.00043709, 7.27174788, 0.99782083, 0.99884972, 0.49312820],4376 [ -6.27246147, -0.00071303, 0.00043699, 7.27174844, 0.99782133, 0.99884998, 0.49312828],4377 [ -6.27246187, -0.00071287, 0.00043689, 7.27174900, 0.99782183, 0.99885025, 0.49312834],4378 [ -6.27246226, -0.00071270, 0.00043679, 7.27174956, 0.99782233, 0.99885051, 0.49312839],4379 [ -6.27246266, -0.00071254, 0.00043669, 7.27175012, 0.99782283, 0.99885078, 0.49312847],4380 [ -6.27246305, -0.00071237, 0.00043658, 7.27175068, 0.99782333, 0.99885104, 0.49312849],4381 [ -6.27246345, -0.00071221, 0.00043648, 7.27175123, 0.99782384, 0.99885131, 0.49312857],4382 [ -6.27246384, -0.00071205, 0.00043638, 7.27175179, 0.99782434, 0.99885157, 0.49312862],4383 [ -6.27246423, -0.00071188, 0.00043628, 7.27175235, 0.99782484, 0.99885183, 0.49312870],4384 [ -6.27246463, -0.00071172, 0.00043618, 7.27175291, 0.99782534, 0.99885210, 0.49312875],4385 [ -6.27246502, -0.00071156, 0.00043608, 7.27175347, 0.99782584, 0.99885236, 0.49312878],4386 [ -6.27246541, -0.00071139, 0.00043598, 7.27175402, 0.99782634, 0.99885263, 0.49312886],4387 [ -6.27246581, -0.00071123, 0.00043588, 7.27175458, 0.99782684, 0.99885289, 0.49312892],4388 [ -6.27246620, -0.00071107, 0.00043578, 7.27175514, 0.99782734, 0.99885315, 0.49312899],4389 [ -6.27246659, -0.00071090, 0.00043568, 7.27175569, 0.99782784, 0.99885342, 0.49312906],4390 [ -6.27246699, -0.00071074, 0.00043558, 7.27175625, 0.99782833, 0.99885368, 0.49312908],4391 [ -6.27246738, -0.00071058, 0.00043548, 7.27175680, 0.99782883, 0.99885394, 0.49312914],4392 [ -6.27246777, -0.00071041, 0.00043538, 7.27175736, 0.99782933, 0.99885421, 0.49312922],4393 [ -6.27246816, -0.00071025, 0.00043528, 7.27175791, 0.99782983, 0.99885447, 0.49312926],4394 [ -6.27246856, -0.00071009, 0.00043518, 7.27175847, 0.99783033, 0.99885473, 0.49312934],4395 [ -6.27246895, -0.00070992, 0.00043508, 7.27175902, 0.99783083, 0.99885499, 0.49312938],4396 [ -6.27246934, -0.00070976, 0.00043498, 7.27175958, 0.99783132, 0.99885526, 0.49312944],4397 [ -6.27246973, -0.00070960, 0.00043488, 7.27176013, 0.99783182, 0.99885552, 0.49312948],4398 [ -6.27247012, -0.00070944, 0.00043478, 7.27176069, 0.99783232, 0.99885578, 0.49312957],4399 [ -6.27247051, -0.00070927, 0.00043468, 7.27176124, 0.99783282, 0.99885604, 0.49312962],4400 [ -6.27247090, -0.00070911, 0.00043458, 7.27176179, 0.99783331, 0.99885631, 0.49312968],4401 [ -6.27247129, -0.00070895, 0.00043448, 7.27176235, 0.99783381, 0.99885657, 0.49312972],4402 [ -6.27247168, -0.00070879, 0.00043438, 7.27176290, 0.99783431, 0.99885683, 0.49312980],4403 [ -6.27247207, -0.00070862, 0.00043428, 7.27176345, 0.99783480, 0.99885709, 0.49312985],4404 [ -6.27247246, -0.00070846, 0.00043418, 7.27176400, 0.99783530, 0.99885735, 0.49312992],4405 [ -6.27247285, -0.00070830, 0.00043409, 7.27176456, 0.99783579, 0.99885762, 0.49312999],4406 [ -6.27247324, -0.00070814, 0.00043399, 7.27176511, 0.99783629, 0.99885788, 0.49313003],4407 [ -6.27247363, -0.00070798, 0.00043389, 7.27176566, 0.99783678, 0.99885814, 0.49313009],4408 [ -6.27247402, -0.00070781, 0.00043379, 7.27176621, 0.99783728, 0.99885840, 0.49313014],4409 [ -6.27247441, -0.00070765, 0.00043369, 7.27176676, 0.99783777, 0.99885866, 0.49313021],4410 [ -6.27247480, -0.00070749, 0.00043359, 7.27176731, 0.99783827, 0.99885892, 0.49313025],4411 [ -6.27247519, -0.00070733, 0.00043349, 7.27176786, 0.99783876, 0.99885918, 0.49313031],4412 [ -6.27247558, -0.00070717, 0.00043339, 7.27176841, 0.99783926, 0.99885944, 0.49313036],4413 [ -6.27247597, -0.00070701, 0.00043329, 7.27176896, 0.99783975, 0.99885970, 0.49313043],4414 [ -6.27247636, -0.00070684, 0.00043319, 7.27176951, 0.99784024, 0.99885996, 0.49313047],4415 [ -6.27247674, -0.00070668, 0.00043309, 7.27177006, 0.99784074, 0.99886022, 0.49313056],4416 [ -6.27247713, -0.00070652, 0.00043299, 7.27177061, 0.99784123, 0.99886048, 0.49313062],4417 [ -6.27247752, -0.00070636, 0.00043290, 7.27177116, 0.99784172, 0.99886074, 0.49313067],4418 [ -6.27247791, -0.00070620, 0.00043280, 7.27177171, 0.99784222, 0.99886100, 0.49313072],4419 [ -6.27247829, -0.00070604, 0.00043270, 7.27177226, 0.99784271, 0.99886126, 0.49313077],4420 [ -6.27247868, -0.00070588, 0.00043260, 7.27177280, 0.99784320, 0.99886152, 0.49313084],4421 [ -6.27247907, -0.00070572, 0.00043250, 7.27177335, 0.99784369, 0.99886178, 0.49313089],4422 [ -6.27247945, -0.00070556, 0.00043240, 7.27177390, 0.99784418, 0.99886204, 0.49313094],4423 [ -6.27247984, -0.00070539, 0.00043230, 7.27177445, 0.99784468, 0.99886230, 0.49313101],4424 [ -6.27248023, -0.00070523, 0.00043220, 7.27177499, 0.99784517, 0.99886256, 0.49313105],4425 [ -6.27248061, -0.00070507, 0.00043211, 7.27177554, 0.99784566, 0.99886282, 0.49313111],4426 [ -6.27248100, -0.00070491, 0.00043201, 7.27177609, 0.99784615, 0.99886308, 0.49313117],4427 [ -6.27248139, -0.00070475, 0.00043191, 7.27177663, 0.99784664, 0.99886334, 0.49313123],4428 [ -6.27248177, -0.00070459, 0.00043181, 7.27177718, 0.99784713, 0.99886360, 0.49313129],4429 [ -6.27248216, -0.00070443, 0.00043171, 7.27177773, 0.99784762, 0.99886386, 0.49313133],4430 [ -6.27248254, -0.00070427, 0.00043161, 7.27177827, 0.99784811, 0.99886411, 0.49313142],4431 [ -6.27248293, -0.00070411, 0.00043152, 7.27177882, 0.99784860, 0.99886437, 0.49313147],4432 [ -6.27248331, -0.00070395, 0.00043142, 7.27177936, 0.99784909, 0.99886463, 0.49313152],4433 [ -6.27248370, -0.00070379, 0.00043132, 7.27177991, 0.99784958, 0.99886489, 0.49313157],4434 [ -6.27248408, -0.00070363, 0.00043122, 7.27178045, 0.99785007, 0.99886515, 0.49313161],4435 [ -6.27248447, -0.00070347, 0.00043112, 7.27178099, 0.99785056, 0.99886541, 0.49313168],4436 [ -6.27248485, -0.00070331, 0.00043103, 7.27178154, 0.99785104, 0.99886566, 0.49313174],4437 [ -6.27248523, -0.00070315, 0.00043093, 7.27178208, 0.99785153, 0.99886592, 0.49313183],4438 [ -6.27248562, -0.00070299, 0.00043083, 7.27178263, 0.99785202, 0.99886618, 0.49313186],4439 [ -6.27248600, -0.00070283, 0.00043073, 7.27178317, 0.99785251, 0.99886644, 0.49313191],4440 [ -6.27248638, -0.00070267, 0.00043063, 7.27178371, 0.99785300, 0.99886669, 0.49313198],4441 [ -6.27248677, -0.00070251, 0.00043054, 7.27178425, 0.99785348, 0.99886695, 0.49313204],4442 [ -6.27248715, -0.00070235, 0.00043044, 7.27178480, 0.99785397, 0.99886721, 0.49313208],4443 [ -6.27248753, -0.00070219, 0.00043034, 7.27178534, 0.99785446, 0.99886747, 0.49313214],4444 [ -6.27248792, -0.00070203, 0.00043024, 7.27178588, 0.99785495, 0.99886772, 0.49313220],4445 [ -6.27248830, -0.00070188, 0.00043014, 7.27178642, 0.99785543, 0.99886798, 0.49313224],4446 [ -6.27248868, -0.00070172, 0.00043005, 7.27178696, 0.99785592, 0.99886824, 0.49313233],4447 [ -6.27248906, -0.00070156, 0.00042995, 7.27178751, 0.99785641, 0.99886849, 0.49313235],4448 [ -6.27248945, -0.00070140, 0.00042985, 7.27178805, 0.99785689, 0.99886875, 0.49313243],4449 [ -6.27248983, -0.00070124, 0.00042975, 7.27178859, 0.99785738, 0.99886901, 0.49313250],4450 [ -6.27249021, -0.00070108, 0.00042966, 7.27178913, 0.99785786, 0.99886926, 0.49313254],4451 [ -6.27249059, -0.00070092, 0.00042956, 7.27178967, 0.99785835, 0.99886952, 0.49313259],4452 [ -6.27249097, -0.00070076, 0.00042946, 7.27179021, 0.99785883, 0.99886977, 0.49313265],4453 [ -6.27249135, -0.00070060, 0.00042937, 7.27179075, 0.99785932, 0.99887003, 0.49313270],4454 [ -6.27249173, -0.00070045, 0.00042927, 7.27179129, 0.99785980, 0.99887029, 0.49313277],4455 [ -6.27249211, -0.00070029, 0.00042917, 7.27179183, 0.99786029, 0.99887054, 0.49313282],4456 [ -6.27249250, -0.00070013, 0.00042907, 7.27179237, 0.99786077, 0.99887080, 0.49313289],4457 [ -6.27249288, -0.00069997, 0.00042898, 7.27179290, 0.99786126, 0.99887105, 0.49313291],4458 [ -6.27249326, -0.00069981, 0.00042888, 7.27179344, 0.99786174, 0.99887131, 0.49313301],4459 [ -6.27249364, -0.00069965, 0.00042878, 7.27179398, 0.99786222, 0.99887156, 0.49313305],4460 [ -6.27249402, -0.00069950, 0.00042869, 7.27179452, 0.99786271, 0.99887182, 0.49313311],4461 [ -6.27249440, -0.00069934, 0.00042859, 7.27179506, 0.99786319, 0.99887207, 0.49313316],4462 [ -6.27249477, -0.00069918, 0.00042849, 7.27179559, 0.99786367, 0.99887233, 0.49313322],4463 [ -6.27249515, -0.00069902, 0.00042840, 7.27179613, 0.99786415, 0.99887258, 0.49313329],4464 [ -6.27249553, -0.00069887, 0.00042830, 7.27179667, 0.99786464, 0.99887284, 0.49313333],4465 [ -6.27249591, -0.00069871, 0.00042820, 7.27179720, 0.99786512, 0.99887309, 0.49313340],4466 [ -6.27249629, -0.00069855, 0.00042810, 7.27179774, 0.99786560, 0.99887335, 0.49313343],4467 [ -6.27249667, -0.00069839, 0.00042801, 7.27179828, 0.99786608, 0.99887360, 0.49313349],4468 [ -6.27249705, -0.00069823, 0.00042791, 7.27179881, 0.99786656, 0.99887385, 0.49313355],4469 [ -6.27249743, -0.00069808, 0.00042781, 7.27179935, 0.99786705, 0.99887411, 0.49313361],4470 [ -6.27249780, -0.00069792, 0.00042772, 7.27179988, 0.99786753, 0.99887436, 0.49313365],4471 [ -6.27249818, -0.00069776, 0.00042762, 7.27180042, 0.99786801, 0.99887462, 0.49313373],4472 [ -6.27249856, -0.00069761, 0.00042753, 7.27180095, 0.99786849, 0.99887487, 0.49313378],4473 [ -6.27249894, -0.00069745, 0.00042743, 7.27180149, 0.99786897, 0.99887512, 0.49313382],4474 [ -6.27249931, -0.00069729, 0.00042733, 7.27180202, 0.99786945, 0.99887538, 0.49313387],4475 [ -6.27249969, -0.00069713, 0.00042724, 7.27180256, 0.99786993, 0.99887563, 0.49313395],4476 [ -6.27250007, -0.00069698, 0.00042714, 7.27180309, 0.99787041, 0.99887588, 0.49313401],4477 [ -6.27250045, -0.00069682, 0.00042704, 7.27180363, 0.99787089, 0.99887614, 0.49313405],4478 [ -6.27250082, -0.00069666, 0.00042695, 7.27180416, 0.99787137, 0.99887639, 0.49313411],4479 [ -6.27250120, -0.00069651, 0.00042685, 7.27180469, 0.99787185, 0.99887664, 0.49313417],4480 [ -6.27250158, -0.00069635, 0.00042676, 7.27180523, 0.99787233, 0.99887689, 0.49313425],4481 [ -6.27250195, -0.00069619, 0.00042666, 7.27180576, 0.99787281, 0.99887715, 0.49313428],4482 [ -6.27250233, -0.00069604, 0.00042656, 7.27180629, 0.99787328, 0.99887740, 0.49313433],4483 [ -6.27250270, -0.00069588, 0.00042647, 7.27180682, 0.99787376, 0.99887765, 0.49313436],4484 [ -6.27250308, -0.00069572, 0.00042637, 7.27180736, 0.99787424, 0.99887790, 0.49313447],4485 [ -6.27250345, -0.00069557, 0.00042628, 7.27180789, 0.99787472, 0.99887816, 0.49313453],4486 [ -6.27250383, -0.00069541, 0.00042618, 7.27180842, 0.99787520, 0.99887841, 0.49313456],4487 [ -6.27250420, -0.00069525, 0.00042608, 7.27180895, 0.99787567, 0.99887866, 0.49313463],4488 [ -6.27250458, -0.00069510, 0.00042599, 7.27180948, 0.99787615, 0.99887891, 0.49313466],4489 [ -6.27250495, -0.00069494, 0.00042589, 7.27181001, 0.99787663, 0.99887916, 0.49313471],4490 [ -6.27250533, -0.00069479, 0.00042580, 7.27181054, 0.99787711, 0.99887942, 0.49313478],4491 [ -6.27250570, -0.00069463, 0.00042570, 7.27181107, 0.99787758, 0.99887967, 0.49313484],4492 [ -6.27250608, -0.00069447, 0.00042561, 7.27181160, 0.99787806, 0.99887992, 0.49313489],4493 [ -6.27250645, -0.00069432, 0.00042551, 7.27181213, 0.99787854, 0.99888017, 0.49313499],4494 [ -6.27250683, -0.00069416, 0.00042541, 7.27181266, 0.99787901, 0.99888042, 0.49313500],4495 [ -6.27250720, -0.00069401, 0.00042532, 7.27181319, 0.99787949, 0.99888067, 0.49313506],4496 [ -6.27250757, -0.00069385, 0.00042522, 7.27181372, 0.99787996, 0.99888092, 0.49313510],4497 [ -6.27250795, -0.00069370, 0.00042513, 7.27181425, 0.99788044, 0.99888117, 0.49313518],4498 [ -6.27250832, -0.00069354, 0.00042503, 7.27181478, 0.99788091, 0.99888143, 0.49313523],4499 [ -6.27250869, -0.00069339, 0.00042494, 7.27181531, 0.99788139, 0.99888168, 0.49313528],4500 [ -6.27250906, -0.00069323, 0.00042484, 7.27181583, 0.99788186, 0.99888193, 0.49313532],4501 [ -6.27250944, -0.00069308, 0.00042475, 7.27181636, 0.99788234, 0.99888218, 0.49313537],4502 [ -6.27250981, -0.00069292, 0.00042465, 7.27181689, 0.99788281, 0.99888243, 0.49313545],4503 [ -6.27251018, -0.00069277, 0.00042456, 7.27181742, 0.99788329, 0.99888268, 0.49313551],4504 [ -6.27251055, -0.00069261, 0.00042446, 7.27181794, 0.99788376, 0.99888293, 0.49313557],4505 [ -6.27251093, -0.00069246, 0.00042437, 7.27181847, 0.99788423, 0.99888318, 0.49313560],4506 [ -6.27251130, -0.00069230, 0.00042427, 7.27181900, 0.99788471, 0.99888343, 0.49313566],4507 [ -6.27251167, -0.00069215, 0.00042418, 7.27181952, 0.99788518, 0.99888368, 0.49313574],4508 [ -6.27251204, -0.00069199, 0.00042408, 7.27182005, 0.99788565, 0.99888393, 0.49313579],4509 [ -6.27251241, -0.00069184, 0.00042399, 7.27182058, 0.99788613, 0.99888418, 0.49313583],4510 [ -6.27251278, -0.00069168, 0.00042389, 7.27182110, 0.99788660, 0.99888443, 0.49313587],4511 [ -6.27251315, -0.00069153, 0.00042380, 7.27182163, 0.99788707, 0.99888468, 0.49313593],4512 [ -6.27251353, -0.00069137, 0.00042370, 7.27182215, 0.99788754, 0.99888492, 0.49313600],4513 [ -6.27251390, -0.00069122, 0.00042361, 7.27182268, 0.99788801, 0.99888517, 0.49313604],4514 [ -6.27251427, -0.00069106, 0.00042351, 7.27182320, 0.99788849, 0.99888542, 0.49313613],4515 [ -6.27251464, -0.00069091, 0.00042342, 7.27182373, 0.99788896, 0.99888567, 0.49313616],4516 [ -6.27251501, -0.00069076, 0.00042332, 7.27182425, 0.99788943, 0.99888592, 0.49313621],4517 [ -6.27251538, -0.00069060, 0.00042323, 7.27182478, 0.99788990, 0.99888617, 0.49313628],4518 [ -6.27251575, -0.00069045, 0.00042314, 7.27182530, 0.99789037, 0.99888642, 0.49313634],4519 [ -6.27251612, -0.00069029, 0.00042304, 7.27182582, 0.99789084, 0.99888667, 0.49313637],4520 [ -6.27251649, -0.00069014, 0.00042295, 7.27182635, 0.99789131, 0.99888691, 0.49313644],4521 [ -6.27251685, -0.00068999, 0.00042285, 7.27182687, 0.99789178, 0.99888716, 0.49313651],4522 [ -6.27251722, -0.00068983, 0.00042276, 7.27182739, 0.99789225, 0.99888741, 0.49313656],4523 [ -6.27251759, -0.00068968, 0.00042266, 7.27182791, 0.99789272, 0.99888766, 0.49313664],4524 [ -6.27251796, -0.00068952, 0.00042257, 7.27182844, 0.99789319, 0.99888791, 0.49313666],4525 [ -6.27251833, -0.00068937, 0.00042248, 7.27182896, 0.99789366, 0.99888815, 0.49313670],4526 [ -6.27251870, -0.00068922, 0.00042238, 7.27182948, 0.99789413, 0.99888840, 0.49313677],4527 [ -6.27251907, -0.00068906, 0.00042229, 7.27183000, 0.99789460, 0.99888865, 0.49313683],4528 [ -6.27251943, -0.00068891, 0.00042219, 7.27183052, 0.99789507, 0.99888890, 0.49313687],4529 [ -6.27251980, -0.00068876, 0.00042210, 7.27183104, 0.99789554, 0.99888914, 0.49313691],4530 [ -6.27252017, -0.00068860, 0.00042200, 7.27183157, 0.99789601, 0.99888939, 0.49313700],4531 [ -6.27252054, -0.00068845, 0.00042191, 7.27183209, 0.99789647, 0.99888964, 0.49313706],4532 [ -6.27252091, -0.00068830, 0.00042182, 7.27183261, 0.99789694, 0.99888988, 0.49313707],4533 [ -6.27252127, -0.00068815, 0.00042172, 7.27183313, 0.99789741, 0.99889013, 0.49313711],4534 [ -6.27252164, -0.00068799, 0.00042163, 7.27183365, 0.99789788, 0.99889038, 0.49313720],4535 [ -6.27252201, -0.00068784, 0.00042154, 7.27183417, 0.99789835, 0.99889062, 0.49313727],4536 [ -6.27252237, -0.00068769, 0.00042144, 7.27183469, 0.99789881, 0.99889087, 0.49313733],4537 [ -6.27252274, -0.00068753, 0.00042135, 7.27183521, 0.99789928, 0.99889112, 0.49313737],4538 [ -6.27252311, -0.00068738, 0.00042125, 7.27183572, 0.99789975, 0.99889136, 0.49313744],4539 [ -6.27252347, -0.00068723, 0.00042116, 7.27183624, 0.99790021, 0.99889161, 0.49313749],4540 [ -6.27252384, -0.00068708, 0.00042107, 7.27183676, 0.99790068, 0.99889186, 0.49313754],4541 [ -6.27252420, -0.00068692, 0.00042097, 7.27183728, 0.99790115, 0.99889210, 0.49313760],4542 [ -6.27252457, -0.00068677, 0.00042088, 7.27183780, 0.99790161, 0.99889235, 0.49313767],4543 [ -6.27252494, -0.00068662, 0.00042079, 7.27183832, 0.99790208, 0.99889259, 0.49313771],4544 [ -6.27252530, -0.00068647, 0.00042069, 7.27183883, 0.99790254, 0.99889284, 0.49313775],4545 [ -6.27252567, -0.00068631, 0.00042060, 7.27183935, 0.99790301, 0.99889309, 0.49313782],4546 [ -6.27252603, -0.00068616, 0.00042051, 7.27183987, 0.99790347, 0.99889333, 0.49313786],4547 [ -6.27252640, -0.00068601, 0.00042041, 7.27184039, 0.99790394, 0.99889358, 0.49313791],4548 [ -6.27252676, -0.00068586, 0.00042032, 7.27184090, 0.99790440, 0.99889382, 0.49313797],4549 [ -6.27252712, -0.00068571, 0.00042023, 7.27184142, 0.99790487, 0.99889407, 0.49313801],4550 [ -6.27252749, -0.00068555, 0.00042013, 7.27184193, 0.99790533, 0.99889431, 0.49313810],4551 [ -6.27252785, -0.00068540, 0.00042004, 7.27184245, 0.99790579, 0.99889456, 0.49313815],4552 [ -6.27252822, -0.00068525, 0.00041995, 7.27184297, 0.99790626, 0.99889480, 0.49313818],4553 [ -6.27252858, -0.00068510, 0.00041985, 7.27184348, 0.99790672, 0.99889505, 0.49313824],4554 [ -6.27252895, -0.00068495, 0.00041976, 7.27184400, 0.99790719, 0.99889529, 0.49313828],4555 [ -6.27252931, -0.00068480, 0.00041967, 7.27184451, 0.99790765, 0.99889553, 0.49313835],4556 [ -6.27252967, -0.00068464, 0.00041958, 7.27184503, 0.99790811, 0.99889578, 0.49313842],4557 [ -6.27253004, -0.00068449, 0.00041948, 7.27184554, 0.99790857, 0.99889602, 0.49313845],4558 [ -6.27253040, -0.00068434, 0.00041939, 7.27184606, 0.99790904, 0.99889627, 0.49313853],4559 [ -6.27253076, -0.00068419, 0.00041930, 7.27184657, 0.99790950, 0.99889651, 0.49313854],4560 [ -6.27253112, -0.00068404, 0.00041920, 7.27184708, 0.99790996, 0.99889676, 0.49313861],4561 [ -6.27253149, -0.00068389, 0.00041911, 7.27184760, 0.99791042, 0.99889700, 0.49313867],4562 [ -6.27253185, -0.00068374, 0.00041902, 7.27184811, 0.99791089, 0.99889724, 0.49313874],4563 [ -6.27253221, -0.00068359, 0.00041893, 7.27184862, 0.99791135, 0.99889749, 0.49313876],4564 [ -6.27253257, -0.00068344, 0.00041883, 7.27184914, 0.99791181, 0.99889773, 0.49313881],4565 [ -6.27253293, -0.00068328, 0.00041874, 7.27184965, 0.99791227, 0.99889797, 0.49313886],4566 [ -6.27253330, -0.00068313, 0.00041865, 7.27185016, 0.99791273, 0.99889822, 0.49313893],4567 [ -6.27253366, -0.00068298, 0.00041856, 7.27185068, 0.99791319, 0.99889846, 0.49313897],4568 [ -6.27253402, -0.00068283, 0.00041846, 7.27185119, 0.99791365, 0.99889870, 0.49313904],4569 [ -6.27253438, -0.00068268, 0.00041837, 7.27185170, 0.99791411, 0.99889895, 0.49313909],4570 [ -6.27253474, -0.00068253, 0.00041828, 7.27185221, 0.99791457, 0.99889919, 0.49313915],4571 [ -6.27253510, -0.00068238, 0.00041819, 7.27185272, 0.99791503, 0.99889943, 0.49313920],4572 [ -6.27253546, -0.00068223, 0.00041810, 7.27185323, 0.99791549, 0.99889967, 0.49313924],4573 [ -6.27253582, -0.00068208, 0.00041800, 7.27185374, 0.99791595, 0.99889992, 0.49313932],4574 [ -6.27253618, -0.00068193, 0.00041791, 7.27185425, 0.99791641, 0.99890016, 0.49313937],4575 [ -6.27253654, -0.00068178, 0.00041782, 7.27185477, 0.99791687, 0.99890040, 0.49313944],4576 [ -6.27253690, -0.00068163, 0.00041773, 7.27185528, 0.99791733, 0.99890064, 0.49313947],4577 [ -6.27253726, -0.00068148, 0.00041763, 7.27185579, 0.99791779, 0.99890089, 0.49313953],4578 [ -6.27253762, -0.00068133, 0.00041754, 7.27185630, 0.99791825, 0.99890113, 0.49313960],4579 [ -6.27253798, -0.00068118, 0.00041745, 7.27185680, 0.99791871, 0.99890137, 0.49313964],4580 [ -6.27253834, -0.00068103, 0.00041736, 7.27185731, 0.99791916, 0.99890161, 0.49313969],4581 [ -6.27253870, -0.00068088, 0.00041727, 7.27185782, 0.99791962, 0.99890185, 0.49313973],4582 [ -6.27253906, -0.00068073, 0.00041718, 7.27185833, 0.99792008, 0.99890209, 0.49313978],4583 [ -6.27253942, -0.00068058, 0.00041708, 7.27185884, 0.99792054, 0.99890234, 0.49313983],4584 [ -6.27253978, -0.00068043, 0.00041699, 7.27185935, 0.99792099, 0.99890258, 0.49313991],4585 [ -6.27254014, -0.00068028, 0.00041690, 7.27185986, 0.99792145, 0.99890282, 0.49313998],4586 [ -6.27254050, -0.00068013, 0.00041681, 7.27186036, 0.99792191, 0.99890306, 0.49314002],4587 [ -6.27254086, -0.00067998, 0.00041672, 7.27186087, 0.99792237, 0.99890330, 0.49314008],4588 [ -6.27254121, -0.00067983, 0.00041662, 7.27186138, 0.99792282, 0.99890354, 0.49314012],4589 [ -6.27254157, -0.00067968, 0.00041653, 7.27186189, 0.99792328, 0.99890378, 0.49314018],4590 [ -6.27254193, -0.00067953, 0.00041644, 7.27186239, 0.99792373, 0.99890402, 0.49314019],4591 [ -6.27254229, -0.00067939, 0.00041635, 7.27186290, 0.99792419, 0.99890426, 0.49314025],4592 [ -6.27254264, -0.00067924, 0.00041626, 7.27186341, 0.99792465, 0.99890450, 0.49314034],4593 [ -6.27254300, -0.00067909, 0.00041617, 7.27186391, 0.99792510, 0.99890474, 0.49314040],4594 [ -6.27254336, -0.00067894, 0.00041608, 7.27186442, 0.99792556, 0.99890499, 0.49314044],4595 [ -6.27254372, -0.00067879, 0.00041598, 7.27186493, 0.99792601, 0.99890523, 0.49314049],4596 [ -6.27254407, -0.00067864, 0.00041589, 7.27186543, 0.99792647, 0.99890547, 0.49314054],4597 [ -6.27254443, -0.00067849, 0.00041580, 7.27186594, 0.99792692, 0.99890571, 0.49314058],4598 [ -6.27254479, -0.00067834, 0.00041571, 7.27186644, 0.99792738, 0.99890595, 0.49314062],4599 [ -6.27254514, -0.00067819, 0.00041562, 7.27186695, 0.99792783, 0.99890618, 0.49314070],4600 [ -6.27254550, -0.00067805, 0.00041553, 7.27186745, 0.99792828, 0.99890642, 0.49314075],4601 [ -6.27254585, -0.00067790, 0.00041544, 7.27186796, 0.99792874, 0.99890666, 0.49314079],4602 [ -6.27254621, -0.00067775, 0.00041535, 7.27186846, 0.99792919, 0.99890690, 0.49314085],4603 [ -6.27254657, -0.00067760, 0.00041526, 7.27186897, 0.99792965, 0.99890714, 0.49314090],4604 [ -6.27254692, -0.00067745, 0.00041516, 7.27186947, 0.99793010, 0.99890738, 0.49314094],4605 [ -6.27254728, -0.00067730, 0.00041507, 7.27186997, 0.99793055, 0.99890762, 0.49314100],4606 [ -6.27254763, -0.00067716, 0.00041498, 7.27187048, 0.99793101, 0.99890786, 0.49314106],4607 [ -6.27254799, -0.00067701, 0.00041489, 7.27187098, 0.99793146, 0.99890810, 0.49314111],4608 [ -6.27254834, -0.00067686, 0.00041480, 7.27187148, 0.99793191, 0.99890834, 0.49314118],4609 [ -6.27254870, -0.00067671, 0.00041471, 7.27187199, 0.99793236, 0.99890858, 0.49314123],4610 [ -6.27254905, -0.00067656, 0.00041462, 7.27187249, 0.99793282, 0.99890882, 0.49314127],4611 [ -6.27254941, -0.00067642, 0.00041453, 7.27187299, 0.99793327, 0.99890905, 0.49314132],4612 [ -6.27254976, -0.00067627, 0.00041444, 7.27187349, 0.99793372, 0.99890929, 0.49314138],4613 [ -6.27255012, -0.00067612, 0.00041435, 7.27187399, 0.99793417, 0.99890953, 0.49314144],4614 [ -6.27255047, -0.00067597, 0.00041426, 7.27187450, 0.99793462, 0.99890977, 0.49314149],4615 [ -6.27255082, -0.00067583, 0.00041417, 7.27187500, 0.99793507, 0.99891001, 0.49314155],4616 [ -6.27255118, -0.00067568, 0.00041408, 7.27187550, 0.99793552, 0.99891025, 0.49314159],4617 [ -6.27255153, -0.00067553, 0.00041399, 7.27187600, 0.99793597, 0.99891048, 0.49314164],4618 [ -6.27255188, -0.00067538, 0.00041390, 7.27187650, 0.99793643, 0.99891072, 0.49314169],4619 [ -6.27255224, -0.00067524, 0.00041381, 7.27187700, 0.99793688, 0.99891096, 0.49314176],4620 [ -6.27255259, -0.00067509, 0.00041372, 7.27187750, 0.99793733, 0.99891120, 0.49314181],4621 [ -6.27255294, -0.00067494, 0.00041362, 7.27187800, 0.99793778, 0.99891143, 0.49314185],4622 [ -6.27255330, -0.00067479, 0.00041353, 7.27187850, 0.99793823, 0.99891167, 0.49314190],4623 [ -6.27255365, -0.00067465, 0.00041344, 7.27187900, 0.99793868, 0.99891191, 0.49314197],4624 [ -6.27255400, -0.00067450, 0.00041335, 7.27187950, 0.99793912, 0.99891215, 0.49314200],4625 [ -6.27255435, -0.00067435, 0.00041326, 7.27188000, 0.99793957, 0.99891238, 0.49314208],4626 [ -6.27255470, -0.00067421, 0.00041317, 7.27188050, 0.99794002, 0.99891262, 0.49314213],4627 [ -6.27255506, -0.00067406, 0.00041308, 7.27188100, 0.99794047, 0.99891286, 0.49314217],4628 [ -6.27255541, -0.00067391, 0.00041299, 7.27188150, 0.99794092, 0.99891309, 0.49314220],4629 [ -6.27255576, -0.00067377, 0.00041290, 7.27188199, 0.99794137, 0.99891333, 0.49314225],4630 [ -6.27255611, -0.00067362, 0.00041281, 7.27188249, 0.99794182, 0.99891357, 0.49314232],4631 [ -6.27255646, -0.00067347, 0.00041272, 7.27188299, 0.99794227, 0.99891380, 0.49314238],4632 [ -6.27255681, -0.00067333, 0.00041263, 7.27188349, 0.99794271, 0.99891404, 0.49314241],4633 [ -6.27255717, -0.00067318, 0.00041254, 7.27188398, 0.99794316, 0.99891428, 0.49314247],4634 [ -6.27255752, -0.00067303, 0.00041245, 7.27188448, 0.99794361, 0.99891451, 0.49314253],4635 [ -6.27255787, -0.00067289, 0.00041236, 7.27188498, 0.99794406, 0.99891475, 0.49314258],4636 [ -6.27255822, -0.00067274, 0.00041228, 7.27188548, 0.99794450, 0.99891498, 0.49314263],4637 [ -6.27255857, -0.00067260, 0.00041219, 7.27188597, 0.99794495, 0.99891522, 0.49314268],4638 [ -6.27255892, -0.00067245, 0.00041210, 7.27188647, 0.99794540, 0.99891545, 0.49314274],4639 [ -6.27255927, -0.00067230, 0.00041201, 7.27188696, 0.99794584, 0.99891569, 0.49314280],4640 [ -6.27255962, -0.00067216, 0.00041192, 7.27188746, 0.99794629, 0.99891593, 0.49314284],4641 [ -6.27255997, -0.00067201, 0.00041183, 7.27188796, 0.99794673, 0.99891616, 0.49314287],4642 [ -6.27256032, -0.00067187, 0.00041174, 7.27188845, 0.99794718, 0.99891640, 0.49314297],4643 [ -6.27256067, -0.00067172, 0.00041165, 7.27188895, 0.99794763, 0.99891663, 0.49314303],4644 [ -6.27256102, -0.00067157, 0.00041156, 7.27188944, 0.99794807, 0.99891687, 0.49314307],4645 [ -6.27256137, -0.00067143, 0.00041147, 7.27188994, 0.99794852, 0.99891710, 0.49314312],4646 [ -6.27256171, -0.00067128, 0.00041138, 7.27189043, 0.99794896, 0.99891734, 0.49314315],4647 [ -6.27256206, -0.00067114, 0.00041129, 7.27189093, 0.99794941, 0.99891757, 0.49314322],4648 [ -6.27256241, -0.00067099, 0.00041120, 7.27189142, 0.99794985, 0.99891781, 0.49314325],4649 [ -6.27256276, -0.00067085, 0.00041111, 7.27189191, 0.99795030, 0.99891804, 0.49314333],4650 [ -6.27256311, -0.00067070, 0.00041102, 7.27189241, 0.99795074, 0.99891828, 0.49314337],4651 [ -6.27256346, -0.00067056, 0.00041093, 7.27189290, 0.99795119, 0.99891851, 0.49314340],4652 [ -6.27256381, -0.00067041, 0.00041085, 7.27189339, 0.99795163, 0.99891874, 0.49314348],4653 [ -6.27256415, -0.00067027, 0.00041076, 7.27189389, 0.99795207, 0.99891898, 0.49314353],4654 [ -6.27256450, -0.00067012, 0.00041067, 7.27189438, 0.99795252, 0.99891921, 0.49314358],4655 [ -6.27256485, -0.00066998, 0.00041058, 7.27189487, 0.99795296, 0.99891945, 0.49314365],4656 [ -6.27256520, -0.00066983, 0.00041049, 7.27189537, 0.99795340, 0.99891968, 0.49314368],4657 [ -6.27256554, -0.00066969, 0.00041040, 7.27189586, 0.99795385, 0.99891991, 0.49314376],4658 [ -6.27256589, -0.00066954, 0.00041031, 7.27189635, 0.99795429, 0.99892015, 0.49314379],4659 [ -6.27256624, -0.00066940, 0.00041022, 7.27189684, 0.99795473, 0.99892038, 0.49314383],4660 [ -6.27256658, -0.00066925, 0.00041013, 7.27189733, 0.99795517, 0.99892061, 0.49314389],4661 [ -6.27256693, -0.00066911, 0.00041005, 7.27189782, 0.99795562, 0.99892085, 0.49314395],4662 [ -6.27256728, -0.00066896, 0.00040996, 7.27189832, 0.99795606, 0.99892108, 0.49314398],4663 [ -6.27256762, -0.00066882, 0.00040987, 7.27189881, 0.99795650, 0.99892131, 0.49314403],4664 [ -6.27256797, -0.00066867, 0.00040978, 7.27189930, 0.99795694, 0.99892155, 0.49314409],4665 [ -6.27256832, -0.00066853, 0.00040969, 7.27189979, 0.99795738, 0.99892178, 0.49314415],4666 [ -6.27256866, -0.00066838, 0.00040960, 7.27190028, 0.99795782, 0.99892201, 0.49314419],4667 [ -6.27256901, -0.00066824, 0.00040951, 7.27190077, 0.99795827, 0.99892225, 0.49314425],4668 [ -6.27256935, -0.00066810, 0.00040943, 7.27190126, 0.99795871, 0.99892248, 0.49314428],4669 [ -6.27256970, -0.00066795, 0.00040934, 7.27190175, 0.99795915, 0.99892271, 0.49314436],4670 [ -6.27257004, -0.00066781, 0.00040925, 7.27190224, 0.99795959, 0.99892294, 0.49314439],4671 [ -6.27257039, -0.00066766, 0.00040916, 7.27190273, 0.99796003, 0.99892318, 0.49314446],4672 [ -6.27257073, -0.00066752, 0.00040907, 7.27190322, 0.99796047, 0.99892341, 0.49314452],4673 [ -6.27257108, -0.00066738, 0.00040898, 7.27190370, 0.99796091, 0.99892364, 0.49314453],4674 [ -6.27257142, -0.00066723, 0.00040890, 7.27190419, 0.99796135, 0.99892387, 0.49314460],4675 [ -6.27257177, -0.00066709, 0.00040881, 7.27190468, 0.99796179, 0.99892410, 0.49314466],4676 [ -6.27257211, -0.00066694, 0.00040872, 7.27190517, 0.99796223, 0.99892434, 0.49314470],4677 [ -6.27257246, -0.00066680, 0.00040863, 7.27190566, 0.99796267, 0.99892457, 0.49314476],4678 [ -6.27257280, -0.00066666, 0.00040854, 7.27190615, 0.99796311, 0.99892480, 0.49314482],4679 [ -6.27257315, -0.00066651, 0.00040846, 7.27190663, 0.99796354, 0.99892503, 0.49314486],4680 [ -6.27257349, -0.00066637, 0.00040837, 7.27190712, 0.99796398, 0.99892526, 0.49314490],4681 [ -6.27257383, -0.00066623, 0.00040828, 7.27190761, 0.99796442, 0.99892549, 0.49314498],4682 [ -6.27257418, -0.00066608, 0.00040819, 7.27190809, 0.99796486, 0.99892573, 0.49314501],4683 [ -6.27257452, -0.00066594, 0.00040810, 7.27190858, 0.99796530, 0.99892596, 0.49314505],4684 [ -6.27257486, -0.00066580, 0.00040802, 7.27190907, 0.99796574, 0.99892619, 0.49314512],4685 [ -6.27257521, -0.00066565, 0.00040793, 7.27190955, 0.99796617, 0.99892642, 0.49314515],4686 [ -6.27257555, -0.00066551, 0.00040784, 7.27191004, 0.99796661, 0.99892665, 0.49314521],4687 [ -6.27257589, -0.00066537, 0.00040775, 7.27191053, 0.99796705, 0.99892688, 0.49314528],4688 [ -6.27257623, -0.00066522, 0.00040766, 7.27191101, 0.99796748, 0.99892711, 0.49314532],4689 [ -6.27257658, -0.00066508, 0.00040758, 7.27191150, 0.99796792, 0.99892734, 0.49314537],4690 [ -6.27257692, -0.00066494, 0.00040749, 7.27191198, 0.99796836, 0.99892757, 0.49314541],4691 [ -6.27257726, -0.00066480, 0.00040740, 7.27191247, 0.99796880, 0.99892780, 0.49314547],4692 [ -6.27257760, -0.00066465, 0.00040731, 7.27191295, 0.99796923, 0.99892803, 0.49314555],4693 [ -6.27257795, -0.00066451, 0.00040723, 7.27191344, 0.99796967, 0.99892826, 0.49314558],4694 [ -6.27257829, -0.00066437, 0.00040714, 7.27191392, 0.99797010, 0.99892849, 0.49314564],4695 [ -6.27257863, -0.00066422, 0.00040705, 7.27191440, 0.99797054, 0.99892872, 0.49314568],4696 [ -6.27257897, -0.00066408, 0.00040696, 7.27191489, 0.99797098, 0.99892895, 0.49314573],4697 [ -6.27257931, -0.00066394, 0.00040688, 7.27191537, 0.99797141, 0.99892918, 0.49314579],4698 [ -6.27257965, -0.00066380, 0.00040679, 7.27191586, 0.99797185, 0.99892941, 0.49314582],4699 [ -6.27257999, -0.00066366, 0.00040670, 7.27191634, 0.99797228, 0.99892964, 0.49314588],4700 [ -6.27258033, -0.00066351, 0.00040662, 7.27191682, 0.99797272, 0.99892987, 0.49314593],4701 [ -6.27258068, -0.00066337, 0.00040653, 7.27191730, 0.99797315, 0.99893010, 0.49314598],4702 [ -6.27258102, -0.00066323, 0.00040644, 7.27191779, 0.99797358, 0.99893033, 0.49314603],4703 [ -6.27258136, -0.00066309, 0.00040635, 7.27191827, 0.99797402, 0.99893056, 0.49314608],4704 [ -6.27258170, -0.00066294, 0.00040627, 7.27191875, 0.99797445, 0.99893079, 0.49314611],4705 [ -6.27258204, -0.00066280, 0.00040618, 7.27191923, 0.99797489, 0.99893102, 0.49314621],4706 [ -6.27258238, -0.00066266, 0.00040609, 7.27191972, 0.99797532, 0.99893125, 0.49314623],4707 [ -6.27258272, -0.00066252, 0.00040601, 7.27192020, 0.99797575, 0.99893148, 0.49314626],4708 [ -6.27258306, -0.00066238, 0.00040592, 7.27192068, 0.99797619, 0.99893170, 0.49314635],4709 [ -6.27258340, -0.00066224, 0.00040583, 7.27192116, 0.99797662, 0.99893193, 0.49314639],4710 [ -6.27258373, -0.00066209, 0.00040574, 7.27192164, 0.99797705, 0.99893216, 0.49314644],4711 [ -6.27258407, -0.00066195, 0.00040566, 7.27192212, 0.99797749, 0.99893239, 0.49314649],4712 [ -6.27258441, -0.00066181, 0.00040557, 7.27192260, 0.99797792, 0.99893262, 0.49314651],4713 [ -6.27258475, -0.00066167, 0.00040548, 7.27192308, 0.99797835, 0.99893285, 0.49314660],4714 [ -6.27258509, -0.00066153, 0.00040540, 7.27192356, 0.99797878, 0.99893307, 0.49314663],4715 [ -6.27258543, -0.00066139, 0.00040531, 7.27192404, 0.99797922, 0.99893330, 0.49314669],4716 [ -6.27258577, -0.00066125, 0.00040522, 7.27192452, 0.99797965, 0.99893353, 0.49314673],4717 [ -6.27258611, -0.00066110, 0.00040514, 7.27192500, 0.99798008, 0.99893376, 0.49314679],4718 [ -6.27258644, -0.00066096, 0.00040505, 7.27192548, 0.99798051, 0.99893399, 0.49314686],4719 [ -6.27258678, -0.00066082, 0.00040496, 7.27192596, 0.99798094, 0.99893421, 0.49314689],4720 [ -6.27258712, -0.00066068, 0.00040488, 7.27192644, 0.99798137, 0.99893444, 0.49314694],4721 [ -6.27258746, -0.00066054, 0.00040479, 7.27192692, 0.99798181, 0.99893467, 0.49314700],4722 [ -6.27258780, -0.00066040, 0.00040471, 7.27192740, 0.99798224, 0.99893490, 0.49314705],4723 [ -6.27258813, -0.00066026, 0.00040462, 7.27192788, 0.99798267, 0.99893512, 0.49314708],4724 [ -6.27258847, -0.00066012, 0.00040453, 7.27192835, 0.99798310, 0.99893535, 0.49314712],4725 [ -6.27258881, -0.00065998, 0.00040445, 7.27192883, 0.99798353, 0.99893558, 0.49314719],4726 [ -6.27258914, -0.00065984, 0.00040436, 7.27192931, 0.99798396, 0.99893580, 0.49314727],4727 [ -6.27258948, -0.00065970, 0.00040427, 7.27192979, 0.99798439, 0.99893603, 0.49314727],4728 [ -6.27258982, -0.00065955, 0.00040419, 7.27193026, 0.99798482, 0.99893626, 0.49314731],4729 [ -6.27259015, -0.00065941, 0.00040410, 7.27193074, 0.99798525, 0.99893648, 0.49314740],4730 [ -6.27259049, -0.00065927, 0.00040401, 7.27193122, 0.99798568, 0.99893671, 0.49314745],4731 [ -6.27259083, -0.00065913, 0.00040393, 7.27193169, 0.99798610, 0.99893694, 0.49314746],4732 [ -6.27259116, -0.00065899, 0.00040384, 7.27193217, 0.99798653, 0.99893716, 0.49314754],4733 [ -6.27259150, -0.00065885, 0.00040376, 7.27193265, 0.99798696, 0.99893739, 0.49314761],4734 [ -6.27259184, -0.00065871, 0.00040367, 7.27193312, 0.99798739, 0.99893762, 0.49314766],4735 [ -6.27259217, -0.00065857, 0.00040358, 7.27193360, 0.99798782, 0.99893784, 0.49314769],4736 [ -6.27259251, -0.00065843, 0.00040350, 7.27193407, 0.99798825, 0.99893807, 0.49314775],4737 [ -6.27259284, -0.00065829, 0.00040341, 7.27193455, 0.99798868, 0.99893829, 0.49314778],4738 [ -6.27259318, -0.00065815, 0.00040333, 7.27193502, 0.99798910, 0.99893852, 0.49314784],4739 [ -6.27259351, -0.00065801, 0.00040324, 7.27193550, 0.99798953, 0.99893875, 0.49314788],4740 [ -6.27259385, -0.00065787, 0.00040316, 7.27193597, 0.99798996, 0.99893897, 0.49314794],4741 [ -6.27259418, -0.00065773, 0.00040307, 7.27193645, 0.99799039, 0.99893920, 0.49314799],4742 [ -6.27259452, -0.00065759, 0.00040298, 7.27193692, 0.99799081, 0.99893942, 0.49314805],4743 [ -6.27259485, -0.00065745, 0.00040290, 7.27193740, 0.99799124, 0.99893965, 0.49314807],4744 [ -6.27259519, -0.00065731, 0.00040281, 7.27193787, 0.99799167, 0.99893987, 0.49314813],4745 [ -6.27259552, -0.00065717, 0.00040273, 7.27193835, 0.99799209, 0.99894010, 0.49314822],4746 [ -6.27259585, -0.00065703, 0.00040264, 7.27193882, 0.99799252, 0.99894032, 0.49314825],4747 [ -6.27259619, -0.00065690, 0.00040256, 7.27193929, 0.99799295, 0.99894055, 0.49314830],4748 [ -6.27259652, -0.00065676, 0.00040247, 7.27193977, 0.99799337, 0.99894077, 0.49314836],4749 [ -6.27259686, -0.00065662, 0.00040239, 7.27194024, 0.99799380, 0.99894100, 0.49314839],4750 [ -6.27259719, -0.00065648, 0.00040230, 7.27194071, 0.99799422, 0.99894122, 0.49314844],4751 [ -6.27259752, -0.00065634, 0.00040221, 7.27194118, 0.99799465, 0.99894145, 0.49314848],4752 [ -6.27259786, -0.00065620, 0.00040213, 7.27194166, 0.99799507, 0.99894167, 0.49314852],4753 [ -6.27259819, -0.00065606, 0.00040204, 7.27194213, 0.99799550, 0.99894190, 0.49314858],4754 [ -6.27259852, -0.00065592, 0.00040196, 7.27194260, 0.99799593, 0.99894212, 0.49314864],4755 [ -6.27259885, -0.00065578, 0.00040187, 7.27194307, 0.99799635, 0.99894234, 0.49314867],4756 [ -6.27259919, -0.00065564, 0.00040179, 7.27194354, 0.99799677, 0.99894257, 0.49314872],4757 [ -6.27259952, -0.00065550, 0.00040170, 7.27194402, 0.99799720, 0.99894279, 0.49314880],4758 [ -6.27259985, -0.00065537, 0.00040162, 7.27194449, 0.99799762, 0.99894302, 0.49314880],4759 [ -6.27260018, -0.00065523, 0.00040153, 7.27194496, 0.99799805, 0.99894324, 0.49314888],4760 [ -6.27260052, -0.00065509, 0.00040145, 7.27194543, 0.99799847, 0.99894346, 0.49314897],4761 [ -6.27260085, -0.00065495, 0.00040136, 7.27194590, 0.99799889, 0.99894369, 0.49314899],4762 [ -6.27260118, -0.00065481, 0.00040128, 7.27194637, 0.99799932, 0.99894391, 0.49314902],4763 [ -6.27260151, -0.00065467, 0.00040119, 7.27194684, 0.99799974, 0.99894413, 0.49314908],4764 [ -6.27260184, -0.00065453, 0.00040111, 7.27194731, 0.99800016, 0.99894436, 0.49314911],4765 [ -6.27260217, -0.00065440, 0.00040102, 7.27194778, 0.99800059, 0.99894458, 0.49314920],4766 [ -6.27260251, -0.00065426, 0.00040094, 7.27194825, 0.99800101, 0.99894480, 0.49314922],4767 [ -6.27260284, -0.00065412, 0.00040085, 7.27194872, 0.99800143, 0.99894503, 0.49314928],4768 [ -6.27260317, -0.00065398, 0.00040077, 7.27194919, 0.99800186, 0.99894525, 0.49314931],4769 [ -6.27260350, -0.00065384, 0.00040068, 7.27194966, 0.99800228, 0.99894547, 0.49314937],4770 [ -6.27260383, -0.00065370, 0.00040060, 7.27195013, 0.99800270, 0.99894570, 0.49314942],4771 [ -6.27260416, -0.00065357, 0.00040051, 7.27195059, 0.99800312, 0.99894592, 0.49314947],4772 [ -6.27260449, -0.00065343, 0.00040043, 7.27195106, 0.99800354, 0.99894614, 0.49314952],4773 [ -6.27260482, -0.00065329, 0.00040035, 7.27195153, 0.99800397, 0.99894636, 0.49314960],4774 [ -6.27260515, -0.00065315, 0.00040026, 7.27195200, 0.99800439, 0.99894659, 0.49314963],4775 [ -6.27260548, -0.00065302, 0.00040018, 7.27195247, 0.99800481, 0.99894681, 0.49314965],4776 [ -6.27260581, -0.00065288, 0.00040009, 7.27195293, 0.99800523, 0.99894703, 0.49314972],4777 [ -6.27260614, -0.00065274, 0.00040001, 7.27195340, 0.99800565, 0.99894725, 0.49314975],4778 [ -6.27260647, -0.00065260, 0.00039992, 7.27195387, 0.99800607, 0.99894747, 0.49314983],4779 [ -6.27260680, -0.00065246, 0.00039984, 7.27195434, 0.99800649, 0.99894770, 0.49314987],4780 [ -6.27260713, -0.00065233, 0.00039975, 7.27195480, 0.99800691, 0.99894792, 0.49314994],4781 [ -6.27260746, -0.00065219, 0.00039967, 7.27195527, 0.99800733, 0.99894814, 0.49314996],4782 [ -6.27260779, -0.00065205, 0.00039959, 7.27195573, 0.99800775, 0.99894836, 0.49314998],4783 [ -6.27260812, -0.00065192, 0.00039950, 7.27195620, 0.99800817, 0.99894858, 0.49315004],4784 [ -6.27260844, -0.00065178, 0.00039942, 7.27195667, 0.99800859, 0.99894880, 0.49315011],4785 [ -6.27260877, -0.00065164, 0.00039933, 7.27195713, 0.99800901, 0.99894903, 0.49315016],4786 [ -6.27260910, -0.00065150, 0.00039925, 7.27195760, 0.99800943, 0.99894925, 0.49315020],4787 [ -6.27260943, -0.00065137, 0.00039917, 7.27195806, 0.99800985, 0.99894947, 0.49315028],4788 [ -6.27260976, -0.00065123, 0.00039908, 7.27195853, 0.99801027, 0.99894969, 0.49315027],4789 [ -6.27261009, -0.00065109, 0.00039900, 7.27195899, 0.99801069, 0.99894991, 0.49315035],4790 [ -6.27261041, -0.00065096, 0.00039891, 7.27195946, 0.99801110, 0.99895013, 0.49315041],4791 [ -6.27261074, -0.00065082, 0.00039883, 7.27195992, 0.99801152, 0.99895035, 0.49315047],4792 [ -6.27261107, -0.00065068, 0.00039875, 7.27196039, 0.99801194, 0.99895057, 0.49315053],4793 [ -6.27261140, -0.00065055, 0.00039866, 7.27196085, 0.99801236, 0.99895079, 0.49315055],4794 [ -6.27261172, -0.00065041, 0.00039858, 7.27196132, 0.99801278, 0.99895101, 0.49315059],4795 [ -6.27261205, -0.00065027, 0.00039849, 7.27196178, 0.99801320, 0.99895123, 0.49315063],4796 [ -6.27261238, -0.00065014, 0.00039841, 7.27196224, 0.99801361, 0.99895145, 0.49315070],4797 [ -6.27261271, -0.00065000, 0.00039833, 7.27196271, 0.99801403, 0.99895167, 0.49315074],4798 [ -6.27261303, -0.00064986, 0.00039824, 7.27196317, 0.99801445, 0.99895189, 0.49315081],4799 [ -6.27261336, -0.00064973, 0.00039816, 7.27196363, 0.99801486, 0.99895212, 0.49315083],4800 [ -6.27261369, -0.00064959, 0.00039808, 7.27196410, 0.99801528, 0.99895233, 0.49315088],4801 [ -6.27261401, -0.00064945, 0.00039799, 7.27196456, 0.99801570, 0.99895255, 0.49315095],4802 [ -6.27261434, -0.00064932, 0.00039791, 7.27196502, 0.99801611, 0.99895277, 0.49315102],4803 [ -6.27261466, -0.00064918, 0.00039782, 7.27196548, 0.99801653, 0.99895299, 0.49315101],4804 [ -6.27261499, -0.00064904, 0.00039774, 7.27196595, 0.99801695, 0.99895321, 0.49315109],4805 [ -6.27261532, -0.00064891, 0.00039766, 7.27196641, 0.99801736, 0.99895343, 0.49315112],4806 [ -6.27261564, -0.00064877, 0.00039757, 7.27196687, 0.99801778, 0.99895365, 0.49315120],4807 [ -6.27261597, -0.00064864, 0.00039749, 7.27196733, 0.99801819, 0.99895387, 0.49315122],4808 [ -6.27261629, -0.00064850, 0.00039741, 7.27196779, 0.99801861, 0.99895409, 0.49315129],4809 [ -6.27261662, -0.00064836, 0.00039732, 7.27196825, 0.99801902, 0.99895431, 0.49315134],4810 [ -6.27261694, -0.00064823, 0.00039724, 7.27196871, 0.99801944, 0.99895453, 0.49315136],4811 [ -6.27261727, -0.00064809, 0.00039716, 7.27196917, 0.99801985, 0.99895475, 0.49315141],4812 [ -6.27261759, -0.00064796, 0.00039707, 7.27196963, 0.99802027, 0.99895497, 0.49315149],4813 [ -6.27261792, -0.00064782, 0.00039699, 7.27197009, 0.99802068, 0.99895519, 0.49315153],4814 [ -6.27261824, -0.00064769, 0.00039691, 7.27197056, 0.99802110, 0.99895540, 0.49315156],4815 [ -6.27261857, -0.00064755, 0.00039683, 7.27197101, 0.99802151, 0.99895562, 0.49315162],4816 [ -6.27261889, -0.00064742, 0.00039674, 7.27197147, 0.99802193, 0.99895584, 0.49315167],4817 [ -6.27261921, -0.00064728, 0.00039666, 7.27197193, 0.99802234, 0.99895606, 0.49315173],4818 [ -6.27261954, -0.00064715, 0.00039658, 7.27197239, 0.99802275, 0.99895628, 0.49315176],4819 [ -6.27261986, -0.00064701, 0.00039649, 7.27197285, 0.99802317, 0.99895650, 0.49315180],4820 [ -6.27262019, -0.00064687, 0.00039641, 7.27197331, 0.99802358, 0.99895671, 0.49315186],4821 [ -6.27262051, -0.00064674, 0.00039633, 7.27197377, 0.99802399, 0.99895693, 0.49315191],4822 [ -6.27262083, -0.00064660, 0.00039624, 7.27197423, 0.99802441, 0.99895715, 0.49315198],4823 [ -6.27262116, -0.00064647, 0.00039616, 7.27197469, 0.99802482, 0.99895737, 0.49315200],4824 [ -6.27262148, -0.00064633, 0.00039608, 7.27197515, 0.99802523, 0.99895759, 0.49315204],4825 [ -6.27262180, -0.00064620, 0.00039600, 7.27197560, 0.99802564, 0.99895780, 0.49315211],4826 [ -6.27262213, -0.00064606, 0.00039591, 7.27197606, 0.99802606, 0.99895802, 0.49315216],4827 [ -6.27262245, -0.00064593, 0.00039583, 7.27197652, 0.99802647, 0.99895824, 0.49315219],4828 [ -6.27262277, -0.00064579, 0.00039575, 7.27197698, 0.99802688, 0.99895846, 0.49315225],4829 [ -6.27262309, -0.00064566, 0.00039567, 7.27197743, 0.99802729, 0.99895867, 0.49315226],4830 [ -6.27262342, -0.00064553, 0.00039558, 7.27197789, 0.99802770, 0.99895889, 0.49315233],4831 [ -6.27262374, -0.00064539, 0.00039550, 7.27197835, 0.99802812, 0.99895911, 0.49315238],4832 [ -6.27262406, -0.00064526, 0.00039542, 7.27197880, 0.99802853, 0.99895933, 0.49315244],4833 [ -6.27262438, -0.00064512, 0.00039534, 7.27197926, 0.99802894, 0.99895954, 0.49315248],4834 [ -6.27262470, -0.00064499, 0.00039525, 7.27197972, 0.99802935, 0.99895976, 0.49315254],4835 [ -6.27262503, -0.00064485, 0.00039517, 7.27198017, 0.99802976, 0.99895998, 0.49315255],4836 [ -6.27262535, -0.00064472, 0.00039509, 7.27198063, 0.99803017, 0.99896019, 0.49315260],4837 [ -6.27262567, -0.00064458, 0.00039501, 7.27198108, 0.99803058, 0.99896041, 0.49315266],4838 [ -6.27262599, -0.00064445, 0.00039492, 7.27198154, 0.99803099, 0.99896063, 0.49315272],4839 [ -6.27262631, -0.00064432, 0.00039484, 7.27198199, 0.99803140, 0.99896084, 0.49315276],4840 [ -6.27262663, -0.00064418, 0.00039476, 7.27198245, 0.99803181, 0.99896106, 0.49315283],4841 [ -6.27262695, -0.00064405, 0.00039468, 7.27198290, 0.99803222, 0.99896127, 0.49315287],4842 [ -6.27262727, -0.00064391, 0.00039460, 7.27198336, 0.99803263, 0.99896149, 0.49315291],4843 [ -6.27262759, -0.00064378, 0.00039451, 7.27198381, 0.99803304, 0.99896171, 0.49315298],4844 [ -6.27262792, -0.00064365, 0.00039443, 7.27198427, 0.99803345, 0.99896192, 0.49315301],4845 [ -6.27262824, -0.00064351, 0.00039435, 7.27198472, 0.99803386, 0.99896214, 0.49315305],4846 [ -6.27262856, -0.00064338, 0.00039427, 7.27198518, 0.99803427, 0.99896235, 0.49315310],4847 [ -6.27262888, -0.00064325, 0.00039418, 7.27198563, 0.99803468, 0.99896257, 0.49315315],4848 [ -6.27262920, -0.00064311, 0.00039410, 7.27198608, 0.99803508, 0.99896279, 0.49315320],4849 [ -6.27262952, -0.00064298, 0.00039402, 7.27198654, 0.99803549, 0.99896300, 0.49315324],4850 [ -6.27262984, -0.00064284, 0.00039394, 7.27198699, 0.99803590, 0.99896322, 0.49315329],4851 [ -6.27263015, -0.00064271, 0.00039386, 7.27198744, 0.99803631, 0.99896343, 0.49315335],4852 [ -6.27263047, -0.00064258, 0.00039378, 7.27198790, 0.99803672, 0.99896365, 0.49315341],4853 [ -6.27263079, -0.00064244, 0.00039369, 7.27198835, 0.99803712, 0.99896386, 0.49315341],4854 [ -6.27263111, -0.00064231, 0.00039361, 7.27198880, 0.99803753, 0.99896408, 0.49315348],4855 [ -6.27263143, -0.00064218, 0.00039353, 7.27198925, 0.99803794, 0.99896429, 0.49315355],4856 [ -6.27263175, -0.00064204, 0.00039345, 7.27198971, 0.99803835, 0.99896451, 0.49315360],4857 [ -6.27263207, -0.00064191, 0.00039337, 7.27199016, 0.99803875, 0.99896472, 0.49315362],4858 [ -6.27263239, -0.00064178, 0.00039329, 7.27199061, 0.99803916, 0.99896494, 0.49315366],4859 [ -6.27263271, -0.00064165, 0.00039320, 7.27199106, 0.99803957, 0.99896515, 0.49315370],4860 [ -6.27263302, -0.00064151, 0.00039312, 7.27199151, 0.99803997, 0.99896537, 0.49315378],4861 [ -6.27263334, -0.00064138, 0.00039304, 7.27199196, 0.99804038, 0.99896558, 0.49315382],4862 [ -6.27263366, -0.00064125, 0.00039296, 7.27199241, 0.99804079, 0.99896579, 0.49315384],4863 [ -6.27263398, -0.00064111, 0.00039288, 7.27199287, 0.99804119, 0.99896601, 0.49315390],4864 [ -6.27263430, -0.00064098, 0.00039280, 7.27199332, 0.99804160, 0.99896622, 0.49315398],4865 [ -6.27263461, -0.00064085, 0.00039271, 7.27199377, 0.99804200, 0.99896644, 0.49315398],4866 [ -6.27263493, -0.00064072, 0.00039263, 7.27199422, 0.99804241, 0.99896665, 0.49315402],4867 [ -6.27263525, -0.00064058, 0.00039255, 7.27199467, 0.99804281, 0.99896686, 0.49315410],4868 [ -6.27263557, -0.00064045, 0.00039247, 7.27199512, 0.99804322, 0.99896708, 0.49315415],4869 [ -6.27263588, -0.00064032, 0.00039239, 7.27199557, 0.99804362, 0.99896729, 0.49315420],4870 [ -6.27263620, -0.00064019, 0.00039231, 7.27199602, 0.99804403, 0.99896751, 0.49315423],4871 [ -6.27263652, -0.00064005, 0.00039223, 7.27199646, 0.99804443, 0.99896772, 0.49315429],4872 [ -6.27263683, -0.00063992, 0.00039215, 7.27199691, 0.99804484, 0.99896793, 0.49315433],4873 [ -6.27263715, -0.00063979, 0.00039206, 7.27199736, 0.99804524, 0.99896815, 0.49315438],4874 [ -6.27263747, -0.00063966, 0.00039198, 7.27199781, 0.99804565, 0.99896836, 0.49315441],4875 [ -6.27263778, -0.00063952, 0.00039190, 7.27199826, 0.99804605, 0.99896857, 0.49315445],4876 [ -6.27263810, -0.00063939, 0.00039182, 7.27199871, 0.99804645, 0.99896879, 0.49315452],4877 [ -6.27263842, -0.00063926, 0.00039174, 7.27199916, 0.99804686, 0.99896900, 0.49315453],4878 [ -6.27263873, -0.00063913, 0.00039166, 7.27199960, 0.99804726, 0.99896921, 0.49315461],4879 [ -6.27263905, -0.00063900, 0.00039158, 7.27200005, 0.99804766, 0.99896942, 0.49315465],4880 [ -6.27263936, -0.00063886, 0.00039150, 7.27200050, 0.99804807, 0.99896964, 0.49315471],4881 [ -6.27263968, -0.00063873, 0.00039142, 7.27200095, 0.99804847, 0.99896985, 0.49315476],4882 [ -6.27263999, -0.00063860, 0.00039134, 7.27200139, 0.99804887, 0.99897006, 0.49315480],4883 [ -6.27264031, -0.00063847, 0.00039126, 7.27200184, 0.99804928, 0.99897028, 0.49315486],4884 [ -6.27264063, -0.00063834, 0.00039117, 7.27200229, 0.99804968, 0.99897049, 0.49315489],4885 [ -6.27264094, -0.00063821, 0.00039109, 7.27200273, 0.99805008, 0.99897070, 0.49315491],4886 [ -6.27264126, -0.00063807, 0.00039101, 7.27200318, 0.99805048, 0.99897091, 0.49315503],4887 [ -6.27264157, -0.00063794, 0.00039093, 7.27200363, 0.99805088, 0.99897112, 0.49315504],4888 [ -6.27264188, -0.00063781, 0.00039085, 7.27200407, 0.99805129, 0.99897134, 0.49315507],4889 [ -6.27264220, -0.00063768, 0.00039077, 7.27200452, 0.99805169, 0.99897155, 0.49315512],4890 [ -6.27264251, -0.00063755, 0.00039069, 7.27200496, 0.99805209, 0.99897176, 0.49315517],4891 [ -6.27264283, -0.00063742, 0.00039061, 7.27200541, 0.99805249, 0.99897197, 0.49315521],4892 [ -6.27264314, -0.00063729, 0.00039053, 7.27200586, 0.99805289, 0.99897218, 0.49315529],4893 [ -6.27264346, -0.00063716, 0.00039045, 7.27200630, 0.99805329, 0.99897240, 0.49315533],4894 [ -6.27264377, -0.00063702, 0.00039037, 7.27200675, 0.99805369, 0.99897261, 0.49315538],4895 [ -6.27264408, -0.00063689, 0.00039029, 7.27200719, 0.99805409, 0.99897282, 0.49315540],4896 [ -6.27264440, -0.00063676, 0.00039021, 7.27200764, 0.99805450, 0.99897303, 0.49315545],4897 [ -6.27264471, -0.00063663, 0.00039013, 7.27200808, 0.99805490, 0.99897324, 0.49315550],4898 [ -6.27264502, -0.00063650, 0.00039005, 7.27200852, 0.99805530, 0.99897345, 0.49315556],4899 [ -6.27264534, -0.00063637, 0.00038997, 7.27200897, 0.99805570, 0.99897366, 0.49315563],4900 [ -6.27264565, -0.00063624, 0.00038989, 7.27200941, 0.99805610, 0.99897387, 0.49315563],4901 [ -6.27264596, -0.00063611, 0.00038981, 7.27200986, 0.99805649, 0.99897409, 0.49315568],4902 [ -6.27264628, -0.00063598, 0.00038973, 7.27201030, 0.99805689, 0.99897430, 0.49315572],4903 [ -6.27264659, -0.00063585, 0.00038965, 7.27201074, 0.99805729, 0.99897451, 0.49315579],4904 [ -6.27264690, -0.00063572, 0.00038957, 7.27201119, 0.99805769, 0.99897472, 0.49315582],4905 [ -6.27264721, -0.00063559, 0.00038949, 7.27201163, 0.99805809, 0.99897493, 0.49315589],4906 [ -6.27264753, -0.00063545, 0.00038941, 7.27201207, 0.99805849, 0.99897514, 0.49315595],4907 [ -6.27264784, -0.00063532, 0.00038933, 7.27201251, 0.99805889, 0.99897535, 0.49315600],4908 [ -6.27264815, -0.00063519, 0.00038925, 7.27201296, 0.99805929, 0.99897556, 0.49315603],4909 [ -6.27264846, -0.00063506, 0.00038917, 7.27201340, 0.99805969, 0.99897577, 0.49315606],4910 [ -6.27264877, -0.00063493, 0.00038909, 7.27201384, 0.99806008, 0.99897598, 0.49315609],4911 [ -6.27264909, -0.00063480, 0.00038901, 7.27201428, 0.99806048, 0.99897619, 0.49315614],4912 [ -6.27264940, -0.00063467, 0.00038893, 7.27201472, 0.99806088, 0.99897640, 0.49315621],4913 [ -6.27264971, -0.00063454, 0.00038885, 7.27201517, 0.99806128, 0.99897661, 0.49315622],4914 [ -6.27265002, -0.00063441, 0.00038877, 7.27201561, 0.99806168, 0.99897682, 0.49315632],4915 [ -6.27265033, -0.00063428, 0.00038869, 7.27201605, 0.99806207, 0.99897703, 0.49315636],4916 [ -6.27265064, -0.00063415, 0.00038861, 7.27201649, 0.99806247, 0.99897724, 0.49315639],4917 [ -6.27265095, -0.00063402, 0.00038853, 7.27201693, 0.99806287, 0.99897745, 0.49315644],4918 [ -6.27265126, -0.00063389, 0.00038845, 7.27201737, 0.99806326, 0.99897766, 0.49315648],4919 [ -6.27265157, -0.00063376, 0.00038837, 7.27201781, 0.99806366, 0.99897787, 0.49315654],4920 [ -6.27265189, -0.00063363, 0.00038829, 7.27201825, 0.99806406, 0.99897808, 0.49315656],4921 [ -6.27265220, -0.00063350, 0.00038821, 7.27201869, 0.99806445, 0.99897829, 0.49315663],4922 [ -6.27265251, -0.00063337, 0.00038813, 7.27201913, 0.99806485, 0.99897849, 0.49315664],4923 [ -6.27265282, -0.00063324, 0.00038805, 7.27201957, 0.99806525, 0.99897870, 0.49315672],4924 [ -6.27265313, -0.00063312, 0.00038797, 7.27202001, 0.99806564, 0.99897891, 0.49315678],4925 [ -6.27265344, -0.00063299, 0.00038789, 7.27202045, 0.99806604, 0.99897912, 0.49315679],4926 [ -6.27265375, -0.00063286, 0.00038781, 7.27202089, 0.99806643, 0.99897933, 0.49315682],4927 [ -6.27265406, -0.00063273, 0.00038773, 7.27202133, 0.99806683, 0.99897954, 0.49315688],4928 [ -6.27265436, -0.00063260, 0.00038765, 7.27202177, 0.99806722, 0.99897975, 0.49315697],4929 [ -6.27265467, -0.00063247, 0.00038758, 7.27202221, 0.99806762, 0.99897996, 0.49315698],4930 [ -6.27265498, -0.00063234, 0.00038750, 7.27202264, 0.99806801, 0.99898016, 0.49315705],4931 [ -6.27265529, -0.00063221, 0.00038742, 7.27202308, 0.99806841, 0.99898037, 0.49315710],4932 [ -6.27265560, -0.00063208, 0.00038734, 7.27202352, 0.99806880, 0.99898058, 0.49315714],4933 [ -6.27265591, -0.00063195, 0.00038726, 7.27202396, 0.99806920, 0.99898079, 0.49315716],4934 [ -6.27265622, -0.00063182, 0.00038718, 7.27202440, 0.99806959, 0.99898100, 0.49315722],4935 [ -6.27265653, -0.00063169, 0.00038710, 7.27202483, 0.99806999, 0.99898121, 0.49315726],4936 [ -6.27265684, -0.00063157, 0.00038702, 7.27202527, 0.99807038, 0.99898141, 0.49315731],4937 [ -6.27265714, -0.00063144, 0.00038694, 7.27202571, 0.99807077, 0.99898162, 0.49315737],4938 [ -6.27265745, -0.00063131, 0.00038686, 7.27202614, 0.99807117, 0.99898183, 0.49315740],4939 [ -6.27265776, -0.00063118, 0.00038678, 7.27202658, 0.99807156, 0.99898204, 0.49315744],4940 [ -6.27265807, -0.00063105, 0.00038671, 7.27202702, 0.99807195, 0.99898224, 0.49315747],4941 [ -6.27265838, -0.00063092, 0.00038663, 7.27202745, 0.99807235, 0.99898245, 0.49315751],4942 [ -6.27265868, -0.00063079, 0.00038655, 7.27202789, 0.99807274, 0.99898266, 0.49315758],4943 [ -6.27265899, -0.00063066, 0.00038647, 7.27202833, 0.99807313, 0.99898287, 0.49315760],4944 [ -6.27265930, -0.00063054, 0.00038639, 7.27202876, 0.99807353, 0.99898307, 0.49315770],4945 [ -6.27265961, -0.00063041, 0.00038631, 7.27202920, 0.99807392, 0.99898328, 0.49315771],4946 [ -6.27265991, -0.00063028, 0.00038623, 7.27202963, 0.99807431, 0.99898349, 0.49315780],4947 [ -6.27266022, -0.00063015, 0.00038615, 7.27203007, 0.99807470, 0.99898369, 0.49315780],4948 [ -6.27266053, -0.00063002, 0.00038608, 7.27203051, 0.99807510, 0.99898390, 0.49315786],4949 [ -6.27266083, -0.00062989, 0.00038600, 7.27203094, 0.99807549, 0.99898411, 0.49315792],4950 [ -6.27266114, -0.00062977, 0.00038592, 7.27203138, 0.99807588, 0.99898432, 0.49315794],4951 [ -6.27266145, -0.00062964, 0.00038584, 7.27203181, 0.99807627, 0.99898452, 0.49315802],4952 [ -6.27266175, -0.00062951, 0.00038576, 7.27203224, 0.99807666, 0.99898473, 0.49315805],4953 [ -6.27266206, -0.00062938, 0.00038568, 7.27203268, 0.99807705, 0.99898493, 0.49315808],4954 [ -6.27266237, -0.00062925, 0.00038560, 7.27203311, 0.99807744, 0.99898514, 0.49315812],4955 [ -6.27266267, -0.00062913, 0.00038553, 7.27203355, 0.99807784, 0.99898535, 0.49315818],4956 [ -6.27266298, -0.00062900, 0.00038545, 7.27203398, 0.99807823, 0.99898555, 0.49315821],4957 [ -6.27266329, -0.00062887, 0.00038537, 7.27203441, 0.99807862, 0.99898576, 0.49315828],4958 [ -6.27266359, -0.00062874, 0.00038529, 7.27203485, 0.99807901, 0.99898597, 0.49315830],4959 [ -6.27266390, -0.00062862, 0.00038521, 7.27203528, 0.99807940, 0.99898617, 0.49315836],4960 [ -6.27266420, -0.00062849, 0.00038513, 7.27203571, 0.99807979, 0.99898638, 0.49315841],4961 [ -6.27266451, -0.00062836, 0.00038506, 7.27203615, 0.99808018, 0.99898658, 0.49315847],4962 [ -6.27266481, -0.00062823, 0.00038498, 7.27203658, 0.99808057, 0.99898679, 0.49315850],4963 [ -6.27266512, -0.00062811, 0.00038490, 7.27203701, 0.99808096, 0.99898700, 0.49315856],4964 [ -6.27266542, -0.00062798, 0.00038482, 7.27203744, 0.99808135, 0.99898720, 0.49315859],4965 [ -6.27266573, -0.00062785, 0.00038474, 7.27203788, 0.99808174, 0.99898741, 0.49315862],4966 [ -6.27266603, -0.00062772, 0.00038467, 7.27203831, 0.99808213, 0.99898761, 0.49315867],4967 [ -6.27266634, -0.00062760, 0.00038459, 7.27203874, 0.99808251, 0.99898782, 0.49315875],4968 [ -6.27266664, -0.00062747, 0.00038451, 7.27203917, 0.99808290, 0.99898802, 0.49315880],4969 [ -6.27266695, -0.00062734, 0.00038443, 7.27203960, 0.99808329, 0.99898823, 0.49315883],4970 [ -6.27266725, -0.00062721, 0.00038435, 7.27204004, 0.99808368, 0.99898843, 0.49315887],4971 [ -6.27266755, -0.00062709, 0.00038428, 7.27204047, 0.99808407, 0.99898864, 0.49315892],4972 [ -6.27266786, -0.00062696, 0.00038420, 7.27204090, 0.99808446, 0.99898884, 0.49315895],4973 [ -6.27266816, -0.00062683, 0.00038412, 7.27204133, 0.99808485, 0.99898905, 0.49315899],4974 [ -6.27266847, -0.00062671, 0.00038404, 7.27204176, 0.99808523, 0.99898925, 0.49315906],4975 [ -6.27266877, -0.00062658, 0.00038396, 7.27204219, 0.99808562, 0.99898946, 0.49315910],4976 [ -6.27266907, -0.00062645, 0.00038389, 7.27204262, 0.99808601, 0.99898966, 0.49315911],4977 [ -6.27266938, -0.00062633, 0.00038381, 7.27204305, 0.99808640, 0.99898987, 0.49315917],4978 [ -6.27266968, -0.00062620, 0.00038373, 7.27204348, 0.99808678, 0.99899007, 0.49315922],4979 [ -6.27266998, -0.00062607, 0.00038365, 7.27204391, 0.99808717, 0.99899027, 0.49315926],4980 [ -6.27267028, -0.00062595, 0.00038358, 7.27204434, 0.99808756, 0.99899048, 0.49315930],4981 [ -6.27267059, -0.00062582, 0.00038350, 7.27204477, 0.99808794, 0.99899068, 0.49315934],4982 [ -6.27267089, -0.00062569, 0.00038342, 7.27204520, 0.99808833, 0.99899089, 0.49315940],4983 [ -6.27267119, -0.00062557, 0.00038334, 7.27204563, 0.99808872, 0.99899109, 0.49315945],4984 [ -6.27267150, -0.00062544, 0.00038327, 7.27204606, 0.99808910, 0.99899129, 0.49315950],4985 [ -6.27267180, -0.00062531, 0.00038319, 7.27204648, 0.99808949, 0.99899150, 0.49315953],4986 [ -6.27267210, -0.00062519, 0.00038311, 7.27204691, 0.99808988, 0.99899170, 0.49315956],4987 [ -6.27267240, -0.00062506, 0.00038303, 7.27204734, 0.99809026, 0.99899191, 0.49315961],4988 [ -6.27267270, -0.00062494, 0.00038296, 7.27204777, 0.99809065, 0.99899211, 0.49315968],4989 [ -6.27267301, -0.00062481, 0.00038288, 7.27204820, 0.99809103, 0.99899231, 0.49315973],4990 [ -6.27267331, -0.00062468, 0.00038280, 7.27204863, 0.99809142, 0.99899252, 0.49315977],4991 [ -6.27267361, -0.00062456, 0.00038272, 7.27204905, 0.99809180, 0.99899272, 0.49315980],4992 [ -6.27267391, -0.00062443, 0.00038265, 7.27204948, 0.99809219, 0.99899292, 0.49315984],4993 [ -6.27267421, -0.00062431, 0.00038257, 7.27204991, 0.99809257, 0.99899313, 0.49315989],4994 [ -6.27267451, -0.00062418, 0.00038249, 7.27205033, 0.99809296, 0.99899333, 0.49315993],4995 [ -6.27267481, -0.00062405, 0.00038241, 7.27205076, 0.99809334, 0.99899353, 0.49315999],4996 [ -6.27267512, -0.00062393, 0.00038234, 7.27205119, 0.99809373, 0.99899373, 0.49316004],4997 [ -6.27267542, -0.00062380, 0.00038226, 7.27205162, 0.99809411, 0.99899394, 0.49316007],4998 [ -6.27267572, -0.00062368, 0.00038218, 7.27205204, 0.99809450, 0.99899414, 0.49316011],4999 [ -6.27267602, -0.00062355, 0.00038211, 7.27205247, 0.99809488, 0.99899434, 0.49316016],5000 [ -6.27267632, -0.00062342, 0.00038203, 7.27205289, 0.99809527, 0.99899455, 0.49316020],5001 [ -6.27267662, -0.00062330, 0.00038195, 7.27205332, 0.99809565, 0.99899475, 0.49316023],5002 [ -6.27267692, -0.00062317, 0.00038188, 7.27205375, 0.99809603, 0.99899495, 0.49316033],5003 [ -6.27267722, -0.00062305, 0.00038180, 7.27205417, 0.99809642, 0.99899515, 0.49316032],5004 [ -6.27267752, -0.00062292, 0.00038172, 7.27205460, 0.99809680, 0.99899536, 0.49316037],5005 [ -6.27267782, -0.00062280, 0.00038164, 7.27205502, 0.99809718, 0.99899556, 0.49316043],5006 [ -6.27267812, -0.00062267, 0.00038157, 7.27205545, 0.99809757, 0.99899576, 0.49316049],5007 [ -6.27267842, -0.00062255, 0.00038149, 7.27205587, 0.99809795, 0.99899596, 0.49316053],5008 [ -6.27267872, -0.00062242, 0.00038141, 7.27205630, 0.99809833, 0.99899616, 0.49316060],5009 [ -6.27267902, -0.00062230, 0.00038134, 7.27205672, 0.99809871, 0.99899637, 0.49316061],5010 [ -6.27267932, -0.00062217, 0.00038126, 7.27205715, 0.99809910, 0.99899657, 0.49316068],5011 [ -6.27267962, -0.00062205, 0.00038118, 7.27205757, 0.99809948, 0.99899677, 0.49316072],5012 [ -6.27267992, -0.00062192, 0.00038111, 7.27205799, 0.99809986, 0.99899697, 0.49316074],5013 [ -6.27268021, -0.00062180, 0.00038103, 7.27205842, 0.99810024, 0.99899717, 0.49316079],5014 [ -6.27268051, -0.00062167, 0.00038095, 7.27205884, 0.99810062, 0.99899737, 0.49316083],5015 [ -6.27268081, -0.00062155, 0.00038088, 7.27205927, 0.99810100, 0.99899757, 0.49316088],5016 [ -6.27268111, -0.00062142, 0.00038080, 7.27205969, 0.99810139, 0.99899778, 0.49316090],5017 [ -6.27268141, -0.00062130, 0.00038072, 7.27206011, 0.99810177, 0.99899798, 0.49316099],5018 [ -6.27268171, -0.00062117, 0.00038065, 7.27206053, 0.99810215, 0.99899818, 0.49316102],5019 [ -6.27268201, -0.00062105, 0.00038057, 7.27206096, 0.99810253, 0.99899838, 0.49316107],5020 [ -6.27268230, -0.00062092, 0.00038050, 7.27206138, 0.99810291, 0.99899858, 0.49316107],5021 [ -6.27268260, -0.00062080, 0.00038042, 7.27206180, 0.99810329, 0.99899878, 0.49316112],5022 [ -6.27268290, -0.00062067, 0.00038034, 7.27206223, 0.99810367, 0.99899898, 0.49316121],5023 [ -6.27268320, -0.00062055, 0.00038027, 7.27206265, 0.99810405, 0.99899918, 0.49316122],5024 [ -6.27268350, -0.00062043, 0.00038019, 7.27206307, 0.99810443, 0.99899938, 0.49316127],5025 [ -6.27268379, -0.00062030, 0.00038011, 7.27206349, 0.99810481, 0.99899958, 0.49316133],5026 [ -6.27268409, -0.00062018, 0.00038004, 7.27206391, 0.99810519, 0.99899978, 0.49316137],5027 [ -6.27268439, -0.00062005, 0.00037996, 7.27206433, 0.99810557, 0.99899999, 0.49316141],5028 [ -6.27268468, -0.00061993, 0.00037989, 7.27206476, 0.99810595, 0.99900019, 0.49316145],5029 [ -6.27268498, -0.00061980, 0.00037981, 7.27206518, 0.99810633, 0.99900039, 0.49316150],5030 [ -6.27268528, -0.00061968, 0.00037973, 7.27206560, 0.99810671, 0.99900059, 0.49316152],5031 [ -6.27268558, -0.00061956, 0.00037966, 7.27206602, 0.99810709, 0.99900079, 0.49316158],5032 [ -6.27268587, -0.00061943, 0.00037958, 7.27206644, 0.99810747, 0.99900099, 0.49316160],5033 [ -6.27268617, -0.00061931, 0.00037951, 7.27206686, 0.99810785, 0.99900119, 0.49316174],5034 [ -6.27268647, -0.00061919, 0.00037943, 7.27206728, 0.99810823, 0.99900139, 0.49316174],5035 [ -6.27268676, -0.00061906, 0.00037935, 7.27206770, 0.99810860, 0.99900159, 0.49316173],5036 [ -6.27268706, -0.00061894, 0.00037928, 7.27206812, 0.99810898, 0.99900179, 0.49316182],5037 [ -6.27268735, -0.00061881, 0.00037920, 7.27206854, 0.99810936, 0.99900198, 0.49316185],5038 [ -6.27268765, -0.00061869, 0.00037913, 7.27206896, 0.99810974, 0.99900218, 0.49316190],5039 [ -6.27268795, -0.00061857, 0.00037905, 7.27206938, 0.99811012, 0.99900238, 0.49316194],5040 [ -6.27268824, -0.00061844, 0.00037897, 7.27206980, 0.99811049, 0.99900258, 0.49316199],5041 [ -6.27268854, -0.00061832, 0.00037890, 7.27207022, 0.99811087, 0.99900278, 0.49316201],5042 [ -6.27268883, -0.00061820, 0.00037882, 7.27207064, 0.99811125, 0.99900298, 0.49316207],5043 [ -6.27268913, -0.00061807, 0.00037875, 7.27207106, 0.99811163, 0.99900318, 0.49316215],5044 [ -6.27268942, -0.00061795, 0.00037867, 7.27207147, 0.99811200, 0.99900338, 0.49316215],5045 [ -6.27268972, -0.00061783, 0.00037860, 7.27207189, 0.99811238, 0.99900358, 0.49316222],5046 [ -6.27269001, -0.00061770, 0.00037852, 7.27207231, 0.99811276, 0.99900378, 0.49316225],5047 [ -6.27269031, -0.00061758, 0.00037844, 7.27207273, 0.99811313, 0.99900398, 0.49316226],5048 [ -6.27269060, -0.00061746, 0.00037837, 7.27207315, 0.99811351, 0.99900418, 0.49316232],5049 [ -6.27269090, -0.00061733, 0.00037829, 7.27207356, 0.99811389, 0.99900437, 0.49316241],5050 [ -6.27269119, -0.00061721, 0.00037822, 7.27207398, 0.99811426, 0.99900457, 0.49316240],5051 [ -6.27269149, -0.00061709, 0.00037814, 7.27207440, 0.99811464, 0.99900477, 0.49316244],5052 [ -6.27269178, -0.00061696, 0.00037807, 7.27207482, 0.99811502, 0.99900497, 0.49316250],5053 [ -6.27269208, -0.00061684, 0.00037799, 7.27207523, 0.99811539, 0.99900517, 0.49316255],5054 [ -6.27269237, -0.00061672, 0.00037792, 7.27207565, 0.99811577, 0.99900537, 0.49316260],5055 [ -6.27269266, -0.00061660, 0.00037784, 7.27207607, 0.99811614, 0.99900556, 0.49316268],5056 [ -6.27269296, -0.00061647, 0.00037777, 7.27207648, 0.99811652, 0.99900576, 0.49316264],5057 [ -6.27269325, -0.00061635, 0.00037769, 7.27207690, 0.99811689, 0.99900596, 0.49316274],5058 [ -6.27269354, -0.00061623, 0.00037762, 7.27207732, 0.99811727, 0.99900616, 0.49316275],5059 [ -6.27269384, -0.00061610, 0.00037754, 7.27207773, 0.99811764, 0.99900636, 0.49316280],5060 [ -6.27269413, -0.00061598, 0.00037746, 7.27207815, 0.99811802, 0.99900655, 0.49316280],5061 [ -6.27269442, -0.00061586, 0.00037739, 7.27207857, 0.99811839, 0.99900675, 0.49316288],5062 [ -6.27269472, -0.00061574, 0.00037731, 7.27207898, 0.99811877, 0.99900695, 0.49316293],5063 [ -6.27269501, -0.00061561, 0.00037724, 7.27207940, 0.99811914, 0.99900715, 0.49316299],5064 [ -6.27269530, -0.00061549, 0.00037716, 7.27207981, 0.99811952, 0.99900734, 0.49316305],5065 [ -6.27269560, -0.00061537, 0.00037709, 7.27208023, 0.99811989, 0.99900754, 0.49316305],5066 [ -6.27269589, -0.00061525, 0.00037701, 7.27208064, 0.99812026, 0.99900774, 0.49316309],5067 [ -6.27269618, -0.00061512, 0.00037694, 7.27208106, 0.99812064, 0.99900794, 0.49316319],5068 [ -6.27269647, -0.00061500, 0.00037686, 7.27208147, 0.99812101, 0.99900813, 0.49316320],5069 [ -6.27269677, -0.00061488, 0.00037679, 7.27208189, 0.99812138, 0.99900833, 0.49316326],5070 [ -6.27269706, -0.00061476, 0.00037671, 7.27208230, 0.99812176, 0.99900853, 0.49316331],5071 [ -6.27269735, -0.00061464, 0.00037664, 7.27208271, 0.99812213, 0.99900872, 0.49316334],5072 [ -6.27269764, -0.00061451, 0.00037656, 7.27208313, 0.99812250, 0.99900892, 0.49316337],5073 [ -6.27269793, -0.00061439, 0.00037649, 7.27208354, 0.99812288, 0.99900912, 0.49316343],5074 [ -6.27269823, -0.00061427, 0.00037642, 7.27208396, 0.99812325, 0.99900931, 0.49316350],5075 [ -6.27269852, -0.00061415, 0.00037634, 7.27208437, 0.99812362, 0.99900951, 0.49316348],5076 [ -6.27269881, -0.00061403, 0.00037627, 7.27208478, 0.99812399, 0.99900971, 0.49316356],5077 [ -6.27269910, -0.00061390, 0.00037619, 7.27208520, 0.99812437, 0.99900990, 0.49316359],5078 [ -6.27269939, -0.00061378, 0.00037612, 7.27208561, 0.99812474, 0.99901010, 0.49316364],5079 [ -6.27269968, -0.00061366, 0.00037604, 7.27208602, 0.99812511, 0.99901030, 0.49316368],5080 [ -6.27269997, -0.00061354, 0.00037597, 7.27208643, 0.99812548, 0.99901049, 0.49316372],5081 [ -6.27270027, -0.00061342, 0.00037589, 7.27208685, 0.99812585, 0.99901069, 0.49316379],5082 [ -6.27270056, -0.00061330, 0.00037582, 7.27208726, 0.99812623, 0.99901089, 0.49316380],5083 [ -6.27270085, -0.00061318, 0.00037574, 7.27208767, 0.99812660, 0.99901108, 0.49316383],5084 [ -6.27270114, -0.00061305, 0.00037567, 7.27208808, 0.99812697, 0.99901128, 0.49316392],5085 [ -6.27270143, -0.00061293, 0.00037559, 7.27208850, 0.99812734, 0.99901147, 0.49316393],5086 [ -6.27270172, -0.00061281, 0.00037552, 7.27208891, 0.99812771, 0.99901167, 0.49316398],5087 [ -6.27270201, -0.00061269, 0.00037545, 7.27208932, 0.99812808, 0.99901186, 0.49316403],5088 [ -6.27270230, -0.00061257, 0.00037537, 7.27208973, 0.99812845, 0.99901206, 0.49316407],5089 [ -6.27270259, -0.00061245, 0.00037530, 7.27209014, 0.99812882, 0.99901226, 0.49316411],5090 [ -6.27270288, -0.00061233, 0.00037522, 7.27209055, 0.99812919, 0.99901245, 0.49316419],5091 [ -6.27270317, -0.00061221, 0.00037515, 7.27209096, 0.99812956, 0.99901265, 0.49316420],5092 [ -6.27270346, -0.00061208, 0.00037507, 7.27209137, 0.99812993, 0.99901284, 0.49316424],5093 [ -6.27270375, -0.00061196, 0.00037500, 7.27209178, 0.99813030, 0.99901304, 0.49316431],5094 [ -6.27270404, -0.00061184, 0.00037493, 7.27209219, 0.99813067, 0.99901323, 0.49316432],5095 [ -6.27270433, -0.00061172, 0.00037485, 7.27209260, 0.99813104, 0.99901343, 0.49316435],5096 [ -6.27270462, -0.00061160, 0.00037478, 7.27209301, 0.99813141, 0.99901362, 0.49316437],5097 [ -6.27270490, -0.00061148, 0.00037470, 7.27209342, 0.99813178, 0.99901382, 0.49316447],5098 [ -6.27270519, -0.00061136, 0.00037463, 7.27209383, 0.99813215, 0.99901401, 0.49316452],5099 [ -6.27270548, -0.00061124, 0.00037456, 7.27209424, 0.99813252, 0.99901421, 0.49316453],5100 [ -6.27270577, -0.00061112, 0.00037448, 7.27209465, 0.99813289, 0.99901440, 0.49316460],5101 [ -6.27270606, -0.00061100, 0.00037441, 7.27209506, 0.99813326, 0.99901460, 0.49316462],5102 [ -6.27270635, -0.00061088, 0.00037433, 7.27209547, 0.99813362, 0.99901479, 0.49316468],5103 [ -6.27270664, -0.00061076, 0.00037426, 7.27209588, 0.99813399, 0.99901498, 0.49316472],5104 [ -6.27270692, -0.00061064, 0.00037419, 7.27209629, 0.99813436, 0.99901518, 0.49316476],5105 [ -6.27270721, -0.00061051, 0.00037411, 7.27209670, 0.99813473, 0.99901537, 0.49316483],5106 [ -6.27270750, -0.00061039, 0.00037404, 7.27209711, 0.99813510, 0.99901557, 0.49316482],5107 [ -6.27270779, -0.00061027, 0.00037396, 7.27209751, 0.99813547, 0.99901576, 0.49316493],5108 [ -6.27270808, -0.00061015, 0.00037389, 7.27209792, 0.99813583, 0.99901596, 0.49316495],5109 [ -6.27270836, -0.00061003, 0.00037382, 7.27209833, 0.99813620, 0.99901615, 0.49316498],5110 [ -6.27270865, -0.00060991, 0.00037374, 7.27209874, 0.99813657, 0.99901634, 0.49316501],5111 [ -6.27270894, -0.00060979, 0.00037367, 7.27209915, 0.99813694, 0.99901654, 0.49316504],5112 [ -6.27270923, -0.00060967, 0.00037360, 7.27209955, 0.99813730, 0.99901673, 0.49316509],5113 [ -6.27270951, -0.00060955, 0.00037352, 7.27209996, 0.99813767, 0.99901692, 0.49316516],5114 [ -6.27270980, -0.00060943, 0.00037345, 7.27210037, 0.99813804, 0.99901712, 0.49316521],5115 [ -6.27271009, -0.00060931, 0.00037338, 7.27210078, 0.99813840, 0.99901731, 0.49316522],5116 [ -6.27271038, -0.00060919, 0.00037330, 7.27210118, 0.99813877, 0.99901751, 0.49316529],5117 [ -6.27271066, -0.00060907, 0.00037323, 7.27210159, 0.99813914, 0.99901770, 0.49316533],5118 [ -6.27271095, -0.00060895, 0.00037315, 7.27210200, 0.99813950, 0.99901789, 0.49316538],5119 [ -6.27271124, -0.00060883, 0.00037308, 7.27210240, 0.99813987, 0.99901808, 0.49316545],5120 [ -6.27271152, -0.00060871, 0.00037301, 7.27210281, 0.99814023, 0.99901828, 0.49316550],5121 [ -6.27271181, -0.00060859, 0.00037293, 7.27210321, 0.99814060, 0.99901847, 0.49316550],5122 [ -6.27271209, -0.00060847, 0.00037286, 7.27210362, 0.99814097, 0.99901866, 0.49316554],5123 [ -6.27271238, -0.00060836, 0.00037279, 7.27210403, 0.99814133, 0.99901886, 0.49316555],5124 [ -6.27271267, -0.00060824, 0.00037271, 7.27210443, 0.99814170, 0.99901905, 0.49316564],5125 [ -6.27271295, -0.00060812, 0.00037264, 7.27210484, 0.99814206, 0.99901924, 0.49316569],5126 [ -6.27271324, -0.00060800, 0.00037257, 7.27210524, 0.99814243, 0.99901944, 0.49316569],5127 [ -6.27271352, -0.00060788, 0.00037249, 7.27210565, 0.99814279, 0.99901963, 0.49316572],5128 [ -6.27271381, -0.00060776, 0.00037242, 7.27210605, 0.99814316, 0.99901982, 0.49316582],5129 [ -6.27271410, -0.00060764, 0.00037235, 7.27210646, 0.99814352, 0.99902001, 0.49316585],5130 [ -6.27271438, -0.00060752, 0.00037228, 7.27210686, 0.99814389, 0.99902021, 0.49316587],5131 [ -6.27271467, -0.00060740, 0.00037220, 7.27210727, 0.99814425, 0.99902040, 0.49316592],5132 [ -6.27271495, -0.00060728, 0.00037213, 7.27210767, 0.99814461, 0.99902059, 0.49316598],5133 [ -6.27271524, -0.00060716, 0.00037206, 7.27210807, 0.99814498, 0.99902078, 0.49316599],5134 [ -6.27271552, -0.00060704, 0.00037198, 7.27210848, 0.99814534, 0.99902097, 0.49316604],5135 [ -6.27271581, -0.00060692, 0.00037191, 7.27210888, 0.99814571, 0.99902117, 0.49316608],5136 [ -6.27271609, -0.00060680, 0.00037184, 7.27210929, 0.99814607, 0.99902136, 0.49316611],5137 [ -6.27271637, -0.00060669, 0.00037176, 7.27210969, 0.99814643, 0.99902155, 0.49316616],5138 [ -6.27271666, -0.00060657, 0.00037169, 7.27211009, 0.99814680, 0.99902174, 0.49316618],5139 [ -6.27271694, -0.00060645, 0.00037162, 7.27211050, 0.99814716, 0.99902193, 0.49316624],5140 [ -6.27271723, -0.00060633, 0.00037155, 7.27211090, 0.99814752, 0.99902213, 0.49316630],5141 [ -6.27271751, -0.00060621, 0.00037147, 7.27211130, 0.99814789, 0.99902232, 0.49316633],5142 [ -6.27271780, -0.00060609, 0.00037140, 7.27211170, 0.99814825, 0.99902251, 0.49316640],5143 [ -6.27271808, -0.00060597, 0.00037133, 7.27211211, 0.99814861, 0.99902270, 0.49316642],5144 [ -6.27271836, -0.00060585, 0.00037125, 7.27211251, 0.99814897, 0.99902289, 0.49316649],5145 [ -6.27271865, -0.00060574, 0.00037118, 7.27211291, 0.99814934, 0.99902308, 0.49316653],5146 [ -6.27271893, -0.00060562, 0.00037111, 7.27211331, 0.99814970, 0.99902327, 0.49316657],5147 [ -6.27271921, -0.00060550, 0.00037104, 7.27211371, 0.99815006, 0.99902346, 0.49316659],5148 [ -6.27271950, -0.00060538, 0.00037096, 7.27211412, 0.99815042, 0.99902366, 0.49316664],5149 [ -6.27271978, -0.00060526, 0.00037089, 7.27211452, 0.99815079, 0.99902385, 0.49316670],5150 [ -6.27272006, -0.00060514, 0.00037082, 7.27211492, 0.99815115, 0.99902404, 0.49316670],5151 [ -6.27272035, -0.00060503, 0.00037075, 7.27211532, 0.99815151, 0.99902423, 0.49316673],5152 [ -6.27272063, -0.00060491, 0.00037067, 7.27211572, 0.99815187, 0.99902442, 0.49316679],5153 [ -6.27272091, -0.00060479, 0.00037060, 7.27211612, 0.99815223, 0.99902461, 0.49316685],5154 [ -6.27272120, -0.00060467, 0.00037053, 7.27211652, 0.99815259, 0.99902480, 0.49316688],5155 [ -6.27272148, -0.00060455, 0.00037046, 7.27211692, 0.99815295, 0.99902499, 0.49316692],5156 [ -6.27272176, -0.00060444, 0.00037038, 7.27211732, 0.99815331, 0.99902518, 0.49316699],5157 [ -6.27272204, -0.00060432, 0.00037031, 7.27211773, 0.99815367, 0.99902537, 0.49316698],5158 [ -6.27272232, -0.00060420, 0.00037024, 7.27211813, 0.99815404, 0.99902556, 0.49316707],5159 [ -6.27272261, -0.00060408, 0.00037017, 7.27211853, 0.99815440, 0.99902575, 0.49316710],5160 [ -6.27272289, -0.00060396, 0.00037009, 7.27211893, 0.99815476, 0.99902594, 0.49316715],5161 [ -6.27272317, -0.00060385, 0.00037002, 7.27211933, 0.99815512, 0.99902613, 0.49316718],5162 [ -6.27272345, -0.00060373, 0.00036995, 7.27211972, 0.99815548, 0.99902632, 0.49316722],5163 [ -6.27272373, -0.00060361, 0.00036988, 7.27212012, 0.99815584, 0.99902651, 0.49316726],5164 [ -6.27272402, -0.00060349, 0.00036981, 7.27212052, 0.99815620, 0.99902670, 0.49316729],5165 [ -6.27272430, -0.00060337, 0.00036973, 7.27212092, 0.99815656, 0.99902689, 0.49316735],5166 [ -6.27272458, -0.00060326, 0.00036966, 7.27212132, 0.99815691, 0.99902708, 0.49316741],5167 [ -6.27272486, -0.00060314, 0.00036959, 7.27212172, 0.99815727, 0.99902727, 0.49316741],5168 [ -6.27272514, -0.00060302, 0.00036952, 7.27212212, 0.99815763, 0.99902746, 0.49316748],5169 [ -6.27272542, -0.00060290, 0.00036945, 7.27212252, 0.99815799, 0.99902765, 0.49316753],5170 [ -6.27272570, -0.00060279, 0.00036937, 7.27212292, 0.99815835, 0.99902784, 0.49316756],5171 [ -6.27272598, -0.00060267, 0.00036930, 7.27212331, 0.99815871, 0.99902803, 0.49316761],5172 [ -6.27272626, -0.00060255, 0.00036923, 7.27212371, 0.99815907, 0.99902822, 0.49316767],5173 [ -6.27272654, -0.00060244, 0.00036916, 7.27212411, 0.99815943, 0.99902841, 0.49316768],5174 [ -6.27272683, -0.00060232, 0.00036909, 7.27212451, 0.99815978, 0.99902860, 0.49316772],5175 [ -6.27272711, -0.00060220, 0.00036901, 7.27212490, 0.99816014, 0.99902879, 0.49316778],5176 [ -6.27272739, -0.00060208, 0.00036894, 7.27212530, 0.99816050, 0.99902897, 0.49316778],5177 [ -6.27272767, -0.00060197, 0.00036887, 7.27212570, 0.99816086, 0.99902916, 0.49316783],5178 [ -6.27272795, -0.00060185, 0.00036880, 7.27212610, 0.99816122, 0.99902935, 0.49316788],5179 [ -6.27272823, -0.00060173, 0.00036873, 7.27212649, 0.99816157, 0.99902954, 0.49316787],5180 [ -6.27272851, -0.00060162, 0.00036865, 7.27212689, 0.99816193, 0.99902973, 0.49316799],5181 [ -6.27272879, -0.00060150, 0.00036858, 7.27212729, 0.99816229, 0.99902992, 0.49316801],5182 [ -6.27272907, -0.00060138, 0.00036851, 7.27212768, 0.99816265, 0.99903011, 0.49316805],5183 [ -6.27272934, -0.00060127, 0.00036844, 7.27212808, 0.99816300, 0.99903029, 0.49316810],5184 [ -6.27272962, -0.00060115, 0.00036837, 7.27212848, 0.99816336, 0.99903048, 0.49316812],5185 [ -6.27272990, -0.00060103, 0.00036830, 7.27212887, 0.99816372, 0.99903067, 0.49316815],5186 [ -6.27273018, -0.00060092, 0.00036823, 7.27212927, 0.99816407, 0.99903086, 0.49316824],5187 [ -6.27273046, -0.00060080, 0.00036815, 7.27212966, 0.99816443, 0.99903105, 0.49316825],5188 [ -6.27273074, -0.00060068, 0.00036808, 7.27213006, 0.99816479, 0.99903124, 0.49316832],5189 [ -6.27273102, -0.00060057, 0.00036801, 7.27213045, 0.99816514, 0.99903142, 0.49316835],5190 [ -6.27273130, -0.00060045, 0.00036794, 7.27213085, 0.99816550, 0.99903161, 0.49316839],5191 [ -6.27273158, -0.00060033, 0.00036787, 7.27213124, 0.99816585, 0.99903180, 0.49316844],5192 [ -6.27273186, -0.00060022, 0.00036780, 7.27213164, 0.99816621, 0.99903199, 0.49316848],5193 [ -6.27273213, -0.00060010, 0.00036773, 7.27213203, 0.99816657, 0.99903218, 0.49316850],5194 [ -6.27273241, -0.00059998, 0.00036765, 7.27213243, 0.99816692, 0.99903236, 0.49316856],5195 [ -6.27273269, -0.00059987, 0.00036758, 7.27213282, 0.99816728, 0.99903255, 0.49316861],5196 [ -6.27273297, -0.00059975, 0.00036751, 7.27213322, 0.99816763, 0.99903274, 0.49316864],5197 [ -6.27273325, -0.00059963, 0.00036744, 7.27213361, 0.99816799, 0.99903293, 0.49316869],5198 [ -6.27273352, -0.00059952, 0.00036737, 7.27213401, 0.99816834, 0.99903311, 0.49316872],5199 [ -6.27273380, -0.00059940, 0.00036730, 7.27213440, 0.99816870, 0.99903330, 0.49316876],5200 [ -6.27273408, -0.00059929, 0.00036723, 7.27213479, 0.99816905, 0.99903349, 0.49316877],5201 [ -6.27273436, -0.00059917, 0.00036716, 7.27213519, 0.99816941, 0.99903367, 0.49316887],5202 [ -6.27273463, -0.00059905, 0.00036708, 7.27213558, 0.99816976, 0.99903386, 0.49316888],5203 [ -6.27273491, -0.00059894, 0.00036701, 7.27213597, 0.99817012, 0.99903405, 0.49316895],5204 [ -6.27273519, -0.00059882, 0.00036694, 7.27213637, 0.99817047, 0.99903424, 0.49316897],5205 [ -6.27273547, -0.00059871, 0.00036687, 7.27213676, 0.99817082, 0.99903442, 0.49316901],5206 [ -6.27273574, -0.00059859, 0.00036680, 7.27213715, 0.99817118, 0.99903461, 0.49316906],5207 [ -6.27273602, -0.00059848, 0.00036673, 7.27213754, 0.99817153, 0.99903480, 0.49316911],5208 [ -6.27273630, -0.00059836, 0.00036666, 7.27213794, 0.99817189, 0.99903498, 0.49316913],5209 [ -6.27273657, -0.00059824, 0.00036659, 7.27213833, 0.99817224, 0.99903517, 0.49316914],5210 [ -6.27273685, -0.00059813, 0.00036652, 7.27213872, 0.99817259, 0.99903535, 0.49316924],5211 [ -6.27273713, -0.00059801, 0.00036645, 7.27213911, 0.99817295, 0.99903554, 0.49316926],5212 [ -6.27273740, -0.00059790, 0.00036637, 7.27213951, 0.99817330, 0.99903573, 0.49316930],5213 [ -6.27273768, -0.00059778, 0.00036630, 7.27213990, 0.99817365, 0.99903591, 0.49316938],5214 [ -6.27273796, -0.00059767, 0.00036623, 7.27214029, 0.99817400, 0.99903610, 0.49316938],5215 [ -6.27273823, -0.00059755, 0.00036616, 7.27214068, 0.99817436, 0.99903629, 0.49316938],5216 [ -6.27273851, -0.00059744, 0.00036609, 7.27214107, 0.99817471, 0.99903647, 0.49316946],5217 [ -6.27273878, -0.00059732, 0.00036602, 7.27214146, 0.99817506, 0.99903666, 0.49316948],5218 [ -6.27273906, -0.00059721, 0.00036595, 7.27214185, 0.99817541, 0.99903684, 0.49316954],5219 [ -6.27273933, -0.00059709, 0.00036588, 7.27214224, 0.99817577, 0.99903703, 0.49316961],5220 [ -6.27273961, -0.00059698, 0.00036581, 7.27214263, 0.99817612, 0.99903722, 0.49316964],5221 [ -6.27273989, -0.00059686, 0.00036574, 7.27214303, 0.99817647, 0.99903740, 0.49316966],5222 [ -6.27274016, -0.00059674, 0.00036567, 7.27214342, 0.99817682, 0.99903759, 0.49316973],5223 [ -6.27274044, -0.00059663, 0.00036560, 7.27214381, 0.99817717, 0.99903777, 0.49316976],5224 [ -6.27274071, -0.00059651, 0.00036553, 7.27214420, 0.99817752, 0.99903796, 0.49316978],5225 [ -6.27274099, -0.00059640, 0.00036546, 7.27214459, 0.99817788, 0.99903814, 0.49316985],5226 [ -6.27274126, -0.00059629, 0.00036539, 7.27214498, 0.99817823, 0.99903833, 0.49316985],5227 [ -6.27274154, -0.00059617, 0.00036532, 7.27214537, 0.99817858, 0.99903851, 0.49316990],5228 [ -6.27274181, -0.00059606, 0.00036525, 7.27214575, 0.99817893, 0.99903870, 0.49316996],5229 [ -6.27274208, -0.00059594, 0.00036517, 7.27214614, 0.99817928, 0.99903888, 0.49317001],5230 [ -6.27274236, -0.00059583, 0.00036510, 7.27214653, 0.99817963, 0.99903907, 0.49317000],5231 [ -6.27274263, -0.00059571, 0.00036503, 7.27214692, 0.99817998, 0.99903925, 0.49317004],5232 [ -6.27274291, -0.00059560, 0.00036496, 7.27214731, 0.99818033, 0.99903944, 0.49317008],5233 [ -6.27274318, -0.00059548, 0.00036489, 7.27214770, 0.99818068, 0.99903962, 0.49317014],5234 [ -6.27274346, -0.00059537, 0.00036482, 7.27214809, 0.99818103, 0.99903981, 0.49317022],5235 [ -6.27274373, -0.00059525, 0.00036475, 7.27214848, 0.99818138, 0.99903999, 0.49317024],5236 [ -6.27274400, -0.00059514, 0.00036468, 7.27214886, 0.99818173, 0.99904018, 0.49317029],5237 [ -6.27274428, -0.00059502, 0.00036461, 7.27214925, 0.99818208, 0.99904036, 0.49317032],5238 [ -6.27274455, -0.00059491, 0.00036454, 7.27214964, 0.99818243, 0.99904055, 0.49317037],5239 [ -6.27274482, -0.00059480, 0.00036447, 7.27215003, 0.99818278, 0.99904073, 0.49317042],5240 [ -6.27274510, -0.00059468, 0.00036440, 7.27215042, 0.99818313, 0.99904092, 0.49317048],5241 [ -6.27274537, -0.00059457, 0.00036433, 7.27215080, 0.99818348, 0.99904110, 0.49317047],5242 [ -6.27274564, -0.00059445, 0.00036426, 7.27215119, 0.99818383, 0.99904128, 0.49317056],5243 [ -6.27274592, -0.00059434, 0.00036419, 7.27215158, 0.99818418, 0.99904147, 0.49317055],5244 [ -6.27274619, -0.00059422, 0.00036412, 7.27215197, 0.99818452, 0.99904165, 0.49317062],5245 [ -6.27274646, -0.00059411, 0.00036405, 7.27215235, 0.99818487, 0.99904184, 0.49317064],5246 [ -6.27274674, -0.00059400, 0.00036398, 7.27215274, 0.99818522, 0.99904202, 0.49317066],5247 [ -6.27274701, -0.00059388, 0.00036391, 7.27215313, 0.99818557, 0.99904220, 0.49317073],5248 [ -6.27274728, -0.00059377, 0.00036384, 7.27215351, 0.99818592, 0.99904239, 0.49317076],5249 [ -6.27274755, -0.00059365, 0.00036377, 7.27215390, 0.99818627, 0.99904257, 0.49317082],5250 [ -6.27274783, -0.00059354, 0.00036370, 7.27215428, 0.99818661, 0.99904276, 0.49317086],5251 [ -6.27274810, -0.00059343, 0.00036363, 7.27215467, 0.99818696, 0.99904294, 0.49317091],5252 [ -6.27274837, -0.00059331, 0.00036356, 7.27215506, 0.99818731, 0.99904312, 0.49317096],5253 [ -6.27274864, -0.00059320, 0.00036349, 7.27215544, 0.99818766, 0.99904331, 0.49317092],5254 [ -6.27274891, -0.00059309, 0.00036342, 7.27215583, 0.99818800, 0.99904349, 0.49317097],5255 [ -6.27274919, -0.00059297, 0.00036335, 7.27215621, 0.99818835, 0.99904367, 0.49317108],5256 [ -6.27274946, -0.00059286, 0.00036329, 7.27215660, 0.99818870, 0.99904386, 0.49317108],5257 [ -6.27274973, -0.00059275, 0.00036322, 7.27215698, 0.99818905, 0.99904404, 0.49317113],5258 [ -6.27275000, -0.00059263, 0.00036315, 7.27215737, 0.99818939, 0.99904422, 0.49317119],5259 [ -6.27275027, -0.00059252, 0.00036308, 7.27215775, 0.99818974, 0.99904440, 0.49317125],5260 [ -6.27275054, -0.00059241, 0.00036301, 7.27215814, 0.99819009, 0.99904459, 0.49317124],5261 [ -6.27275081, -0.00059229, 0.00036294, 7.27215852, 0.99819043, 0.99904477, 0.49317130],5262 [ -6.27275109, -0.00059218, 0.00036287, 7.27215891, 0.99819078, 0.99904495, 0.49317131],5263 [ -6.27275136, -0.00059207, 0.00036280, 7.27215929, 0.99819113, 0.99904514, 0.49317136],5264 [ -6.27275163, -0.00059195, 0.00036273, 7.27215968, 0.99819147, 0.99904532, 0.49317137],5265 [ -6.27275190, -0.00059184, 0.00036266, 7.27216006, 0.99819182, 0.99904550, 0.49317148],5266 [ -6.27275217, -0.00059173, 0.00036259, 7.27216044, 0.99819216, 0.99904568, 0.49317152],5267 [ -6.27275244, -0.00059161, 0.00036252, 7.27216083, 0.99819251, 0.99904587, 0.49317157],5268 [ -6.27275271, -0.00059150, 0.00036245, 7.27216121, 0.99819285, 0.99904605, 0.49317157],5269 [ -6.27275298, -0.00059139, 0.00036238, 7.27216159, 0.99819320, 0.99904623, 0.49317163],5270 [ -6.27275325, -0.00059127, 0.00036231, 7.27216198, 0.99819355, 0.99904641, 0.49317168],5271 [ -6.27275352, -0.00059116, 0.00036224, 7.27216236, 0.99819389, 0.99904660, 0.49317166],5272 [ -6.27275379, -0.00059105, 0.00036217, 7.27216274, 0.99819424, 0.99904678, 0.49317177],5273 [ -6.27275406, -0.00059094, 0.00036211, 7.27216313, 0.99819458, 0.99904696, 0.49317179],5274 [ -6.27275433, -0.00059082, 0.00036204, 7.27216351, 0.99819493, 0.99904714, 0.49317185],5275 [ -6.27275460, -0.00059071, 0.00036197, 7.27216389, 0.99819527, 0.99904732, 0.49317189],5276 [ -6.27275487, -0.00059060, 0.00036190, 7.27216427, 0.99819561, 0.99904751, 0.49317188],5277 [ -6.27275514, -0.00059048, 0.00036183, 7.27216466, 0.99819596, 0.99904769, 0.49317197],5278 [ -6.27275541, -0.00059037, 0.00036176, 7.27216504, 0.99819630, 0.99904787, 0.49317199],5279 [ -6.27275568, -0.00059026, 0.00036169, 7.27216542, 0.99819665, 0.99904805, 0.49317206],5280 [ -6.27275595, -0.00059015, 0.00036162, 7.27216580, 0.99819699, 0.99904823, 0.49317206],5281 [ -6.27275622, -0.00059003, 0.00036155, 7.27216618, 0.99819733, 0.99904841, 0.49317210],5282 [ -6.27275649, -0.00058992, 0.00036148, 7.27216656, 0.99819768, 0.99904859, 0.49317215],5283 [ -6.27275675, -0.00058981, 0.00036141, 7.27216695, 0.99819802, 0.99904878, 0.49317218],5284 [ -6.27275702, -0.00058970, 0.00036135, 7.27216733, 0.99819837, 0.99904896, 0.49317220],5285 [ -6.27275729, -0.00058958, 0.00036128, 7.27216771, 0.99819871, 0.99904914, 0.49317224],5286 [ -6.27275756, -0.00058947, 0.00036121, 7.27216809, 0.99819905, 0.99904932, 0.49317231],5287 [ -6.27275783, -0.00058936, 0.00036114, 7.27216847, 0.99819939, 0.99904950, 0.49317228],5288 [ -6.27275810, -0.00058925, 0.00036107, 7.27216885, 0.99819974, 0.99904968, 0.49317238],5289 [ -6.27275837, -0.00058914, 0.00036100, 7.27216923, 0.99820008, 0.99904986, 0.49317241],5290 [ -6.27275863, -0.00058902, 0.00036093, 7.27216961, 0.99820042, 0.99905004, 0.49317245],5291 [ -6.27275890, -0.00058891, 0.00036086, 7.27216999, 0.99820077, 0.99905022, 0.49317253],5292 [ -6.27275917, -0.00058880, 0.00036080, 7.27217037, 0.99820111, 0.99905040, 0.49317256],5293 [ -6.27275944, -0.00058869, 0.00036073, 7.27217075, 0.99820145, 0.99905059, 0.49317260],5294 [ -6.27275971, -0.00058858, 0.00036066, 7.27217113, 0.99820179, 0.99905077, 0.49317263],5295 [ -6.27275997, -0.00058846, 0.00036059, 7.27217151, 0.99820213, 0.99905095, 0.49317270],5296 [ -6.27276024, -0.00058835, 0.00036052, 7.27217189, 0.99820248, 0.99905113, 0.49317272],5297 [ -6.27276051, -0.00058824, 0.00036045, 7.27217227, 0.99820282, 0.99905131, 0.49317275],5298 [ -6.27276078, -0.00058813, 0.00036038, 7.27217265, 0.99820316, 0.99905149, 0.49317277],5299 [ -6.27276104, -0.00058802, 0.00036032, 7.27217303, 0.99820350, 0.99905167, 0.49317281],5300 [ -6.27276131, -0.00058790, 0.00036025, 7.27217341, 0.99820384, 0.99905185, 0.49317287],5301 [ -6.27276158, -0.00058779, 0.00036018, 7.27217378, 0.99820418, 0.99905203, 0.49317289],5302 [ -6.27276184, -0.00058768, 0.00036011, 7.27217416, 0.99820453, 0.99905221, 0.49317299],5303 [ -6.27276211, -0.00058757, 0.00036004, 7.27217454, 0.99820487, 0.99905239, 0.49317296],5304 [ -6.27276238, -0.00058746, 0.00035997, 7.27217492, 0.99820521, 0.99905257, 0.49317302],5305 [ -6.27276265, -0.00058735, 0.00035991, 7.27217530, 0.99820555, 0.99905275, 0.49317307],5306 [ -6.27276291, -0.00058724, 0.00035984, 7.27217568, 0.99820589, 0.99905293, 0.49317310],5307 [ -6.27276318, -0.00058712, 0.00035977, 7.27217605, 0.99820623, 0.99905311, 0.49317316],5308 [ -6.27276344, -0.00058701, 0.00035970, 7.27217643, 0.99820657, 0.99905329, 0.49317319],5309 [ -6.27276371, -0.00058690, 0.00035963, 7.27217681, 0.99820691, 0.99905347, 0.49317321],5310 [ -6.27276398, -0.00058679, 0.00035956, 7.27217719, 0.99820725, 0.99905365, 0.49317328],5311 [ -6.27276424, -0.00058668, 0.00035950, 7.27217756, 0.99820759, 0.99905383, 0.49317329],5312 [ -6.27276451, -0.00058657, 0.00035943, 7.27217794, 0.99820793, 0.99905400, 0.49317335],5313 [ -6.27276478, -0.00058646, 0.00035936, 7.27217832, 0.99820827, 0.99905418, 0.49317337],5314 [ -6.27276504, -0.00058635, 0.00035929, 7.27217870, 0.99820861, 0.99905436, 0.49317339],5315 [ -6.27276531, -0.00058623, 0.00035922, 7.27217907, 0.99820895, 0.99905454, 0.49317346],5316 [ -6.27276557, -0.00058612, 0.00035916, 7.27217945, 0.99820929, 0.99905472, 0.49317350],5317 [ -6.27276584, -0.00058601, 0.00035909, 7.27217982, 0.99820963, 0.99905490, 0.49317354],5318 [ -6.27276610, -0.00058590, 0.00035902, 7.27218020, 0.99820997, 0.99905508, 0.49317358],5319 [ -6.27276637, -0.00058579, 0.00035895, 7.27218058, 0.99821030, 0.99905526, 0.49317361],5320 [ -6.27276663, -0.00058568, 0.00035888, 7.27218095, 0.99821064, 0.99905544, 0.49317361],5321 [ -6.27276690, -0.00058557, 0.00035882, 7.27218133, 0.99821098, 0.99905562, 0.49317370],5322 [ -6.27276716, -0.00058546, 0.00035875, 7.27218170, 0.99821132, 0.99905579, 0.49317372],5323 [ -6.27276743, -0.00058535, 0.00035868, 7.27218208, 0.99821166, 0.99905597, 0.49317378],5324 [ -6.27276769, -0.00058524, 0.00035861, 7.27218246, 0.99821200, 0.99905615, 0.49317376],5325 [ -6.27276796, -0.00058513, 0.00035854, 7.27218283, 0.99821233, 0.99905633, 0.49317387],5326 [ -6.27276822, -0.00058502, 0.00035848, 7.27218321, 0.99821267, 0.99905651, 0.49317387],5327 [ -6.27276849, -0.00058491, 0.00035841, 7.27218358, 0.99821301, 0.99905669, 0.49317394],5328 [ -6.27276875, -0.00058480, 0.00035834, 7.27218396, 0.99821335, 0.99905686, 0.49317397],5329 [ -6.27276902, -0.00058468, 0.00035827, 7.27218433, 0.99821369, 0.99905704, 0.49317398],5330 [ -6.27276928, -0.00058457, 0.00035820, 7.27218471, 0.99821402, 0.99905722, 0.49317402],5331 [ -6.27276954, -0.00058446, 0.00035814, 7.27218508, 0.99821436, 0.99905740, 0.49317408],5332 [ -6.27276981, -0.00058435, 0.00035807, 7.27218545, 0.99821470, 0.99905758, 0.49317410],5333 [ -6.27277007, -0.00058424, 0.00035800, 7.27218583, 0.99821504, 0.99905775, 0.49317417],5334 [ -6.27277034, -0.00058413, 0.00035793, 7.27218620, 0.99821537, 0.99905793, 0.49317422],5335 [ -6.27277060, -0.00058402, 0.00035787, 7.27218658, 0.99821571, 0.99905811, 0.49317425],5336 [ -6.27277086, -0.00058391, 0.00035780, 7.27218695, 0.99821605, 0.99905829, 0.49317429],5337 [ -6.27277113, -0.00058380, 0.00035773, 7.27218732, 0.99821638, 0.99905847, 0.49317428],5338 [ -6.27277139, -0.00058369, 0.00035766, 7.27218770, 0.99821672, 0.99905864, 0.49317437],5339 [ -6.27277165, -0.00058358, 0.00035760, 7.27218807, 0.99821706, 0.99905882, 0.49317446],5340 [ -6.27277192, -0.00058347, 0.00035753, 7.27218844, 0.99821739, 0.99905900, 0.49317445],5341 [ -6.27277218, -0.00058336, 0.00035746, 7.27218882, 0.99821773, 0.99905918, 0.49317449],5342 [ -6.27277244, -0.00058325, 0.00035739, 7.27218919, 0.99821806, 0.99905935, 0.49317453],5343 [ -6.27277270, -0.00058314, 0.00035733, 7.27218956, 0.99821840, 0.99905953, 0.49317457],5344 [ -6.27277297, -0.00058303, 0.00035726, 7.27218993, 0.99821874, 0.99905971, 0.49317458],5345 [ -6.27277323, -0.00058292, 0.00035719, 7.27219031, 0.99821907, 0.99905988, 0.49317467],5346 [ -6.27277349, -0.00058281, 0.00035712, 7.27219068, 0.99821941, 0.99906006, 0.49317464],5347 [ -6.27277376, -0.00058270, 0.00035706, 7.27219105, 0.99821974, 0.99906024, 0.49317472],5348 [ -6.27277402, -0.00058259, 0.00035699, 7.27219142, 0.99822008, 0.99906042, 0.49317476],5349 [ -6.27277428, -0.00058248, 0.00035692, 7.27219180, 0.99822041, 0.99906059, 0.49317478],5350 [ -6.27277454, -0.00058237, 0.00035686, 7.27219217, 0.99822075, 0.99906077, 0.49317481],5351 [ -6.27277480, -0.00058227, 0.00035679, 7.27219254, 0.99822108, 0.99906095, 0.49317486],5352 [ -6.27277507, -0.00058216, 0.00035672, 7.27219291, 0.99822142, 0.99906112, 0.49317492],5353 [ -6.27277533, -0.00058205, 0.00035665, 7.27219328, 0.99822175, 0.99906130, 0.49317497],5354 [ -6.27277559, -0.00058194, 0.00035659, 7.27219365, 0.99822209, 0.99906148, 0.49317500],5355 [ -6.27277585, -0.00058183, 0.00035652, 7.27219402, 0.99822242, 0.99906165, 0.49317504],5356 [ -6.27277611, -0.00058172, 0.00035645, 7.27219440, 0.99822275, 0.99906183, 0.49317502],5357 [ -6.27277637, -0.00058161, 0.00035639, 7.27219477, 0.99822309, 0.99906200, 0.49317510],5358 [ -6.27277664, -0.00058150, 0.00035632, 7.27219514, 0.99822342, 0.99906218, 0.49317515],5359 [ -6.27277690, -0.00058139, 0.00035625, 7.27219551, 0.99822376, 0.99906236, 0.49317515],5360 [ -6.27277716, -0.00058128, 0.00035619, 7.27219588, 0.99822409, 0.99906253, 0.49317527],5361 [ -6.27277742, -0.00058117, 0.00035612, 7.27219625, 0.99822442, 0.99906271, 0.49317521],5362 [ -6.27277768, -0.00058106, 0.00035605, 7.27219662, 0.99822476, 0.99906289, 0.49317533],5363 [ -6.27277794, -0.00058095, 0.00035598, 7.27219699, 0.99822509, 0.99906306, 0.49317536],5364 [ -6.27277820, -0.00058084, 0.00035592, 7.27219736, 0.99822542, 0.99906324, 0.49317532],5365 [ -6.27277846, -0.00058074, 0.00035585, 7.27219773, 0.99822576, 0.99906341, 0.49317542],5366 [ -6.27277872, -0.00058063, 0.00035578, 7.27219810, 0.99822609, 0.99906359, 0.49317544],5367 [ -6.27277898, -0.00058052, 0.00035572, 7.27219847, 0.99822642, 0.99906376, 0.49317549],5368 [ -6.27277924, -0.00058041, 0.00035565, 7.27219884, 0.99822675, 0.99906394, 0.49317552],5369 [ -6.27277950, -0.00058030, 0.00035558, 7.27219920, 0.99822709, 0.99906412, 0.49317558],5370 [ -6.27277977, -0.00058019, 0.00035552, 7.27219957, 0.99822742, 0.99906429, 0.49317562],5371 [ -6.27278003, -0.00058008, 0.00035545, 7.27219994, 0.99822775, 0.99906447, 0.49317566],5372 [ -6.27278029, -0.00057997, 0.00035538, 7.27220031, 0.99822808, 0.99906464, 0.49317568],5373 [ -6.27278055, -0.00057987, 0.00035532, 7.27220068, 0.99822842, 0.99906482, 0.49317573],5374 [ -6.27278080, -0.00057976, 0.00035525, 7.27220105, 0.99822875, 0.99906499, 0.49317574],5375 [ -6.27278106, -0.00057965, 0.00035518, 7.27220142, 0.99822908, 0.99906517, 0.49317581],5376 [ -6.27278132, -0.00057954, 0.00035512, 7.27220178, 0.99822941, 0.99906534, 0.49317584],5377 [ -6.27278158, -0.00057943, 0.00035505, 7.27220215, 0.99822974, 0.99906552, 0.49317591],5378 [ -6.27278184, -0.00057932, 0.00035498, 7.27220252, 0.99823008, 0.99906569, 0.49317591],5379 [ -6.27278210, -0.00057921, 0.00035492, 7.27220289, 0.99823041, 0.99906587, 0.49317595],5380 [ -6.27278236, -0.00057911, 0.00035485, 7.27220326, 0.99823074, 0.99906604, 0.49317597],5381 [ -6.27278262, -0.00057900, 0.00035479, 7.27220362, 0.99823107, 0.99906622, 0.49317601],5382 [ -6.27278288, -0.00057889, 0.00035472, 7.27220399, 0.99823140, 0.99906639, 0.49317609],5383 [ -6.27278314, -0.00057878, 0.00035465, 7.27220436, 0.99823173, 0.99906657, 0.49317610],5384 [ -6.27278340, -0.00057867, 0.00035459, 7.27220472, 0.99823206, 0.99906674, 0.49317615],5385 [ -6.27278366, -0.00057857, 0.00035452, 7.27220509, 0.99823239, 0.99906691, 0.49317621],5386 [ -6.27278392, -0.00057846, 0.00035445, 7.27220546, 0.99823272, 0.99906709, 0.49317622],5387 [ -6.27278417, -0.00057835, 0.00035439, 7.27220582, 0.99823305, 0.99906726, 0.49317632],5388 [ -6.27278443, -0.00057824, 0.00035432, 7.27220619, 0.99823338, 0.99906744, 0.49317629],5389 [ -6.27278469, -0.00057813, 0.00035425, 7.27220656, 0.99823371, 0.99906761, 0.49317636],5390 [ -6.27278495, -0.00057802, 0.00035419, 7.27220692, 0.99823404, 0.99906779, 0.49317638],5391 [ -6.27278521, -0.00057792, 0.00035412, 7.27220729, 0.99823437, 0.99906796, 0.49317641],5392 [ -6.27278547, -0.00057781, 0.00035406, 7.27220766, 0.99823470, 0.99906813, 0.49317644],5393 [ -6.27278572, -0.00057770, 0.00035399, 7.27220802, 0.99823503, 0.99906831, 0.49317646],5394 [ -6.27278598, -0.00057759, 0.00035392, 7.27220839, 0.99823536, 0.99906848, 0.49317651],5395 [ -6.27278624, -0.00057749, 0.00035386, 7.27220875, 0.99823569, 0.99906866, 0.49317654],5396 [ -6.27278650, -0.00057738, 0.00035379, 7.27220912, 0.99823602, 0.99906883, 0.49317660],5397 [ -6.27278675, -0.00057727, 0.00035373, 7.27220948, 0.99823635, 0.99906900, 0.49317666],5398 [ -6.27278701, -0.00057716, 0.00035366, 7.27220985, 0.99823668, 0.99906918, 0.49317668],5399 [ -6.27278727, -0.00057706, 0.00035359, 7.27221021, 0.99823701, 0.99906935, 0.49317676],5400 [ -6.27278753, -0.00057695, 0.00035353, 7.27221058, 0.99823734, 0.99906952, 0.49317676],5401 [ -6.27278778, -0.00057684, 0.00035346, 7.27221094, 0.99823766, 0.99906970, 0.49317678],5402 [ -6.27278804, -0.00057673, 0.00035340, 7.27221131, 0.99823799, 0.99906987, 0.49317683],5403 [ -6.27278830, -0.00057663, 0.00035333, 7.27221167, 0.99823832, 0.99907004, 0.49317687],5404 [ -6.27278855, -0.00057652, 0.00035326, 7.27221204, 0.99823865, 0.99907022, 0.49317691],5405 [ -6.27278881, -0.00057641, 0.00035320, 7.27221240, 0.99823898, 0.99907039, 0.49317697],5406 [ -6.27278907, -0.00057630, 0.00035313, 7.27221277, 0.99823931, 0.99907056, 0.49317699],5407 [ -6.27278933, -0.00057620, 0.00035307, 7.27221313, 0.99823963, 0.99907074, 0.49317702],5408 [ -6.27278958, -0.00057609, 0.00035300, 7.27221349, 0.99823996, 0.99907091, 0.49317708],5409 [ -6.27278984, -0.00057598, 0.00035294, 7.27221386, 0.99824029, 0.99907108, 0.49317710],5410 [ -6.27279009, -0.00057587, 0.00035287, 7.27221422, 0.99824062, 0.99907126, 0.49317717],5411 [ -6.27279035, -0.00057577, 0.00035280, 7.27221458, 0.99824094, 0.99907143, 0.49317720],5412 [ -6.27279061, -0.00057566, 0.00035274, 7.27221495, 0.99824127, 0.99907160, 0.49317720],5413 [ -6.27279086, -0.00057555, 0.00035267, 7.27221531, 0.99824160, 0.99907177, 0.49317727],5414 [ -6.27279112, -0.00057545, 0.00035261, 7.27221567, 0.99824193, 0.99907195, 0.49317735],5415 [ -6.27279137, -0.00057534, 0.00035254, 7.27221604, 0.99824225, 0.99907212, 0.49317732],5416 [ -6.27279163, -0.00057523, 0.00035248, 7.27221640, 0.99824258, 0.99907229, 0.49317739],5417 [ -6.27279189, -0.00057513, 0.00035241, 7.27221676, 0.99824291, 0.99907246, 0.49317738],5418 [ -6.27279214, -0.00057502, 0.00035235, 7.27221712, 0.99824323, 0.99907264, 0.49317745],5419 [ -6.27279240, -0.00057491, 0.00035228, 7.27221749, 0.99824356, 0.99907281, 0.49317748],5420 [ -6.27279265, -0.00057480, 0.00035221, 7.27221785, 0.99824389, 0.99907298, 0.49317752],5421 [ -6.27279291, -0.00057470, 0.00035215, 7.27221821, 0.99824421, 0.99907315, 0.49317757],5422 [ -6.27279316, -0.00057459, 0.00035208, 7.27221857, 0.99824454, 0.99907332, 0.49317760],5423 [ -6.27279342, -0.00057448, 0.00035202, 7.27221893, 0.99824486, 0.99907350, 0.49317764],5424 [ -6.27279367, -0.00057438, 0.00035195, 7.27221930, 0.99824519, 0.99907367, 0.49317766],5425 [ -6.27279393, -0.00057427, 0.00035189, 7.27221966, 0.99824551, 0.99907384, 0.49317770],5426 [ -6.27279418, -0.00057417, 0.00035182, 7.27222002, 0.99824584, 0.99907401, 0.49317777],5427 [ -6.27279444, -0.00057406, 0.00035176, 7.27222038, 0.99824617, 0.99907418, 0.49317774],5428 [ -6.27279469, -0.00057395, 0.00035169, 7.27222074, 0.99824649, 0.99907436, 0.49317781],5429 [ -6.27279495, -0.00057385, 0.00035163, 7.27222110, 0.99824682, 0.99907453, 0.49317792],5430 [ -6.27279520, -0.00057374, 0.00035156, 7.27222146, 0.99824714, 0.99907470, 0.49317788],5431 [ -6.27279546, -0.00057363, 0.00035150, 7.27222182, 0.99824747, 0.99907487, 0.49317793],5432 [ -6.27279571, -0.00057353, 0.00035143, 7.27222218, 0.99824779, 0.99907504, 0.49317800],5433 [ -6.27279596, -0.00057342, 0.00035137, 7.27222254, 0.99824812, 0.99907521, 0.49317798],5434 [ -6.27279622, -0.00057331, 0.00035130, 7.27222290, 0.99824844, 0.99907538, 0.49317810],5435 [ -6.27279647, -0.00057321, 0.00035124, 7.27222326, 0.99824877, 0.99907556, 0.49317811],5436 [ -6.27279673, -0.00057310, 0.00035117, 7.27222362, 0.99824909, 0.99907573, 0.49317808],5437 [ -6.27279698, -0.00057300, 0.00035111, 7.27222398, 0.99824941, 0.99907590, 0.49317818],5438 [ -6.27279723, -0.00057289, 0.00035104, 7.27222434, 0.99824974, 0.99907607, 0.49317820],5439 [ -6.27279749, -0.00057278, 0.00035098, 7.27222470, 0.99825006, 0.99907624, 0.49317824],5440 [ -6.27279774, -0.00057268, 0.00035091, 7.27222506, 0.99825039, 0.99907641, 0.49317828],5441 [ -6.27279799, -0.00057257, 0.00035085, 7.27222542, 0.99825071, 0.99907658, 0.49317828],5442 [ -6.27279825, -0.00057247, 0.00035078, 7.27222578, 0.99825103, 0.99907675, 0.49317836],5443 [ -6.27279850, -0.00057236, 0.00035072, 7.27222614, 0.99825136, 0.99907692, 0.49317841],5444 [ -6.27279875, -0.00057225, 0.00035065, 7.27222650, 0.99825168, 0.99907709, 0.49317844],5445 [ -6.27279901, -0.00057215, 0.00035059, 7.27222686, 0.99825200, 0.99907727, 0.49317846],5446 [ -6.27279926, -0.00057204, 0.00035052, 7.27222722, 0.99825233, 0.99907744, 0.49317853],5447 [ -6.27279951, -0.00057194, 0.00035046, 7.27222758, 0.99825265, 0.99907761, 0.49317855],5448 [ -6.27279977, -0.00057183, 0.00035039, 7.27222793, 0.99825297, 0.99907778, 0.49317862],5449 [ -6.27280002, -0.00057173, 0.00035033, 7.27222829, 0.99825330, 0.99907795, 0.49317862],5450 [ -6.27280027, -0.00057162, 0.00035026, 7.27222865, 0.99825362, 0.99907812, 0.49317865],5451 [ -6.27280052, -0.00057152, 0.00035020, 7.27222901, 0.99825394, 0.99907829, 0.49317872],5452 [ -6.27280078, -0.00057141, 0.00035013, 7.27222937, 0.99825426, 0.99907846, 0.49317874],5453 [ -6.27280103, -0.00057130, 0.00035007, 7.27222972, 0.99825459, 0.99907863, 0.49317875],5454 [ -6.27280128, -0.00057120, 0.00035000, 7.27223008, 0.99825491, 0.99907880, 0.49317879],5455 [ -6.27280153, -0.00057109, 0.00034994, 7.27223044, 0.99825523, 0.99907897, 0.49317885],5456 [ -6.27280178, -0.00057099, 0.00034987, 7.27223080, 0.99825555, 0.99907914, 0.49317886],5457 [ -6.27280204, -0.00057088, 0.00034981, 7.27223115, 0.99825587, 0.99907931, 0.49317891],5458 [ -6.27280229, -0.00057078, 0.00034974, 7.27223151, 0.99825620, 0.99907948, 0.49317896],5459 [ -6.27280254, -0.00057067, 0.00034968, 7.27223187, 0.99825652, 0.99907965, 0.49317901],5460 [ -6.27280279, -0.00057057, 0.00034962, 7.27223222, 0.99825684, 0.99907982, 0.49317904],5461 [ -6.27280304, -0.00057046, 0.00034955, 7.27223258, 0.99825716, 0.99907999, 0.49317904],5462 [ -6.27280329, -0.00057036, 0.00034949, 7.27223294, 0.99825748, 0.99908016, 0.49317910],5463 [ -6.27280355, -0.00057025, 0.00034942, 7.27223329, 0.99825780, 0.99908033, 0.49317919],5464 [ -6.27280380, -0.00057015, 0.00034936, 7.27223365, 0.99825812, 0.99908050, 0.49317919],5465 [ -6.27280405, -0.00057004, 0.00034929, 7.27223401, 0.99825844, 0.99908066, 0.49317919],5466 [ -6.27280430, -0.00056994, 0.00034923, 7.27223436, 0.99825877, 0.99908083, 0.49317929],5467 [ -6.27280455, -0.00056983, 0.00034916, 7.27223472, 0.99825909, 0.99908100, 0.49317932],5468 [ -6.27280480, -0.00056973, 0.00034910, 7.27223507, 0.99825941, 0.99908117, 0.49317933],5469 [ -6.27280505, -0.00056962, 0.00034904, 7.27223543, 0.99825973, 0.99908134, 0.49317936],5470 [ -6.27280530, -0.00056952, 0.00034897, 7.27223579, 0.99826005, 0.99908151, 0.49317942],5471 [ -6.27280555, -0.00056941, 0.00034891, 7.27223614, 0.99826037, 0.99908168, 0.49317941],5472 [ -6.27280580, -0.00056931, 0.00034884, 7.27223650, 0.99826069, 0.99908185, 0.49317944],5473 [ -6.27280606, -0.00056920, 0.00034878, 7.27223685, 0.99826101, 0.99908202, 0.49317951],5474 [ -6.27280631, -0.00056910, 0.00034872, 7.27223721, 0.99826133, 0.99908219, 0.49317958],5475 [ -6.27280656, -0.00056899, 0.00034865, 7.27223756, 0.99826165, 0.99908235, 0.49317962],5476 [ -6.27280681, -0.00056889, 0.00034859, 7.27223792, 0.99826197, 0.99908252, 0.49317961],5477 [ -6.27280706, -0.00056878, 0.00034852, 7.27223827, 0.99826229, 0.99908269, 0.49317963],5478 [ -6.27280731, -0.00056868, 0.00034846, 7.27223863, 0.99826261, 0.99908286, 0.49317970],5479 [ -6.27280756, -0.00056858, 0.00034839, 7.27223898, 0.99826293, 0.99908303, 0.49317974],5480 [ -6.27280781, -0.00056847, 0.00034833, 7.27223933, 0.99826324, 0.99908320, 0.49317978],5481 [ -6.27280806, -0.00056837, 0.00034827, 7.27223969, 0.99826356, 0.99908337, 0.49317977],5482 [ -6.27280830, -0.00056826, 0.00034820, 7.27224004, 0.99826388, 0.99908353, 0.49317984],5483 [ -6.27280855, -0.00056816, 0.00034814, 7.27224040, 0.99826420, 0.99908370, 0.49317991],5484 [ -6.27280880, -0.00056805, 0.00034807, 7.27224075, 0.99826452, 0.99908387, 0.49317993],5485 [ -6.27280905, -0.00056795, 0.00034801, 7.27224110, 0.99826484, 0.99908404, 0.49317997],5486 [ -6.27280930, -0.00056785, 0.00034795, 7.27224146, 0.99826516, 0.99908421, 0.49317999],5487 [ -6.27280955, -0.00056774, 0.00034788, 7.27224181, 0.99826547, 0.99908438, 0.49318004],5488 [ -6.27280980, -0.00056764, 0.00034782, 7.27224216, 0.99826579, 0.99908454, 0.49318009],5489 [ -6.27281005, -0.00056753, 0.00034776, 7.27224252, 0.99826611, 0.99908471, 0.49318013],5490 [ -6.27281030, -0.00056743, 0.00034769, 7.27224287, 0.99826643, 0.99908488, 0.49318014],5491 [ -6.27281055, -0.00056733, 0.00034763, 7.27224322, 0.99826675, 0.99908505, 0.49318020],5492 [ -6.27281080, -0.00056722, 0.00034756, 7.27224357, 0.99826706, 0.99908521, 0.49318023],5493 [ -6.27281104, -0.00056712, 0.00034750, 7.27224393, 0.99826738, 0.99908538, 0.49318021],5494 [ -6.27281129, -0.00056701, 0.00034744, 7.27224428, 0.99826770, 0.99908555, 0.49318033],5495 [ -6.27281154, -0.00056691, 0.00034737, 7.27224463, 0.99826802, 0.99908572, 0.49318033],5496 [ -6.27281179, -0.00056681, 0.00034731, 7.27224498, 0.99826833, 0.99908588, 0.49318036],5497 [ -6.27281204, -0.00056670, 0.00034725, 7.27224534, 0.99826865, 0.99908605, 0.49318042],5498 [ -6.27281229, -0.00056660, 0.00034718, 7.27224569, 0.99826897, 0.99908622, 0.49318046],5499 [ -6.27281253, -0.00056649, 0.00034712, 7.27224604, 0.99826929, 0.99908639, 0.49318048],5500 [ -6.27281278, -0.00056639, 0.00034706, 7.27224639, 0.99826960, 0.99908655, 0.49318053],5501 [ -6.27281303, -0.00056629, 0.00034699, 7.27224674, 0.99826992, 0.99908672, 0.49318056],5502 [ -6.27281328, -0.00056618, 0.00034693, 7.27224709, 0.99827024, 0.99908689, 0.49318059],5503 [ -6.27281353, -0.00056608, 0.00034686, 7.27224745, 0.99827055, 0.99908705, 0.49318066],5504 [ -6.27281377, -0.00056598, 0.00034680, 7.27224780, 0.99827087, 0.99908722, 0.49318067],5505 [ -6.27281402, -0.00056587, 0.00034674, 7.27224815, 0.99827119, 0.99908739, 0.49318073],5506 [ -6.27281427, -0.00056577, 0.00034667, 7.27224850, 0.99827150, 0.99908756, 0.49318072],5507 [ -6.27281452, -0.00056567, 0.00034661, 7.27224885, 0.99827182, 0.99908772, 0.49318077],5508 [ -6.27281476, -0.00056556, 0.00034655, 7.27224920, 0.99827213, 0.99908789, 0.49318079],5509 [ -6.27281501, -0.00056546, 0.00034648, 7.27224955, 0.99827245, 0.99908806, 0.49318086],5510 [ -6.27281526, -0.00056536, 0.00034642, 7.27224990, 0.99827276, 0.99908822, 0.49318086],5511 [ -6.27281550, -0.00056525, 0.00034636, 7.27225025, 0.99827308, 0.99908839, 0.49318091],5512 [ -6.27281575, -0.00056515, 0.00034629, 7.27225060, 0.99827340, 0.99908856, 0.49318093],5513 [ -6.27281600, -0.00056505, 0.00034623, 7.27225095, 0.99827371, 0.99908872, 0.49318097],5514 [ -6.27281624, -0.00056494, 0.00034617, 7.27225130, 0.99827403, 0.99908889, 0.49318102],5515 [ -6.27281649, -0.00056484, 0.00034610, 7.27225165, 0.99827434, 0.99908905, 0.49318109],5516 [ -6.27281674, -0.00056474, 0.00034604, 7.27225200, 0.99827466, 0.99908922, 0.49318111],5517 [ -6.27281698, -0.00056463, 0.00034598, 7.27225235, 0.99827497, 0.99908939, 0.49318114],5518 [ -6.27281723, -0.00056453, 0.00034592, 7.27225270, 0.99827529, 0.99908955, 0.49318118],5519 [ -6.27281748, -0.00056443, 0.00034585, 7.27225305, 0.99827560, 0.99908972, 0.49318122],5520 [ -6.27281772, -0.00056433, 0.00034579, 7.27225340, 0.99827591, 0.99908988, 0.49318124],5521 [ -6.27281797, -0.00056422, 0.00034573, 7.27225375, 0.99827623, 0.99909005, 0.49318128],5522 [ -6.27281822, -0.00056412, 0.00034566, 7.27225409, 0.99827654, 0.99909022, 0.49318131],5523 [ -6.27281846, -0.00056402, 0.00034560, 7.27225444, 0.99827686, 0.99909038, 0.49318135],5524 [ -6.27281871, -0.00056391, 0.00034554, 7.27225479, 0.99827717, 0.99909055, 0.49318140],5525 [ -6.27281895, -0.00056381, 0.00034547, 7.27225514, 0.99827749, 0.99909071, 0.49318139],5526 [ -6.27281920, -0.00056371, 0.00034541, 7.27225549, 0.99827780, 0.99909088, 0.49318148],5527 [ -6.27281944, -0.00056361, 0.00034535, 7.27225584, 0.99827811, 0.99909105, 0.49318152],5528 [ -6.27281969, -0.00056350, 0.00034528, 7.27225619, 0.99827843, 0.99909121, 0.49318156],5529 [ -6.27281993, -0.00056340, 0.00034522, 7.27225653, 0.99827874, 0.99909138, 0.49318159],5530 [ -6.27282018, -0.00056330, 0.00034516, 7.27225688, 0.99827905, 0.99909154, 0.49318163],5531 [ -6.27282043, -0.00056320, 0.00034510, 7.27225723, 0.99827937, 0.99909171, 0.49318166],5532 [ -6.27282067, -0.00056309, 0.00034503, 7.27225758, 0.99827968, 0.99909187, 0.49318168],5533 [ -6.27282092, -0.00056299, 0.00034497, 7.27225792, 0.99827999, 0.99909204, 0.49318179],5534 [ -6.27282116, -0.00056289, 0.00034491, 7.27225827, 0.99828031, 0.99909220, 0.49318171],5535 [ -6.27282141, -0.00056279, 0.00034485, 7.27225862, 0.99828062, 0.99909237, 0.49318177],5536 [ -6.27282165, -0.00056268, 0.00034478, 7.27225897, 0.99828093, 0.99909253, 0.49318188],5537 [ -6.27282189, -0.00056258, 0.00034472, 7.27225931, 0.99828124, 0.99909270, 0.49318185],5538 [ -6.27282214, -0.00056248, 0.00034466, 7.27225966, 0.99828156, 0.99909286, 0.49318190],5539 [ -6.27282238, -0.00056238, 0.00034459, 7.27226001, 0.99828187, 0.99909303, 0.49318196],5540 [ -6.27282263, -0.00056228, 0.00034453, 7.27226035, 0.99828218, 0.99909319, 0.49318197],5541 [ -6.27282287, -0.00056217, 0.00034447, 7.27226070, 0.99828249, 0.99909336, 0.49318203],5542 [ -6.27282312, -0.00056207, 0.00034441, 7.27226104, 0.99828281, 0.99909352, 0.49318204],5543 [ -6.27282336, -0.00056197, 0.00034434, 7.27226139, 0.99828312, 0.99909369, 0.49318210],5544 [ -6.27282360, -0.00056187, 0.00034428, 7.27226174, 0.99828343, 0.99909385, 0.49318213],5545 [ -6.27282385, -0.00056177, 0.00034422, 7.27226208, 0.99828374, 0.99909402, 0.49318217],5546 [ -6.27282409, -0.00056166, 0.00034416, 7.27226243, 0.99828405, 0.99909418, 0.49318219],5547 [ -6.27282434, -0.00056156, 0.00034409, 7.27226277, 0.99828436, 0.99909434, 0.49318217],5548 [ -6.27282458, -0.00056146, 0.00034403, 7.27226312, 0.99828467, 0.99909451, 0.49318229],5549 [ -6.27282482, -0.00056136, 0.00034397, 7.27226347, 0.99828499, 0.99909467, 0.49318235],5550 [ -6.27282507, -0.00056126, 0.00034391, 7.27226381, 0.99828530, 0.99909484, 0.49318234],5551 [ -6.27282531, -0.00056115, 0.00034384, 7.27226416, 0.99828561, 0.99909500, 0.49318238],5552 [ -6.27282555, -0.00056105, 0.00034378, 7.27226450, 0.99828592, 0.99909516, 0.49318244],5553 [ -6.27282580, -0.00056095, 0.00034372, 7.27226485, 0.99828623, 0.99909533, 0.49318245],5554 [ -6.27282604, -0.00056085, 0.00034366, 7.27226519, 0.99828654, 0.99909549, 0.49318251],5555 [ -6.27282628, -0.00056075, 0.00034360, 7.27226554, 0.99828685, 0.99909566, 0.49318249],5556 [ -6.27282653, -0.00056065, 0.00034353, 7.27226588, 0.99828716, 0.99909582, 0.49318260],5557 [ -6.27282677, -0.00056055, 0.00034347, 7.27226622, 0.99828747, 0.99909598, 0.49318256],5558 [ -6.27282701, -0.00056044, 0.00034341, 7.27226657, 0.99828778, 0.99909615, 0.49318268],5559 [ -6.27282725, -0.00056034, 0.00034335, 7.27226691, 0.99828809, 0.99909631, 0.49318269],5560 [ -6.27282750, -0.00056024, 0.00034328, 7.27226726, 0.99828840, 0.99909648, 0.49318273],5561 [ -6.27282774, -0.00056014, 0.00034322, 7.27226760, 0.99828871, 0.99909664, 0.49318276],5562 [ -6.27282798, -0.00056004, 0.00034316, 7.27226794, 0.99828902, 0.99909680, 0.49318278],5563 [ -6.27282822, -0.00055994, 0.00034310, 7.27226829, 0.99828933, 0.99909697, 0.49318281],5564 [ -6.27282847, -0.00055984, 0.00034304, 7.27226863, 0.99828964, 0.99909713, 0.49318285],5565 [ -6.27282871, -0.00055973, 0.00034297, 7.27226898, 0.99828995, 0.99909729, 0.49318289],5566 [ -6.27282895, -0.00055963, 0.00034291, 7.27226932, 0.99829026, 0.99909746, 0.49318294],5567 [ -6.27282919, -0.00055953, 0.00034285, 7.27226966, 0.99829057, 0.99909762, 0.49318296],5568 [ -6.27282944, -0.00055943, 0.00034279, 7.27227000, 0.99829088, 0.99909778, 0.49318295],5569 [ -6.27282968, -0.00055933, 0.00034273, 7.27227035, 0.99829119, 0.99909794, 0.49318302],5570 [ -6.27282992, -0.00055923, 0.00034266, 7.27227069, 0.99829150, 0.99909811, 0.49318310],5571 [ -6.27283016, -0.00055913, 0.00034260, 7.27227103, 0.99829180, 0.99909827, 0.49318311],5572 [ -6.27283040, -0.00055903, 0.00034254, 7.27227138, 0.99829211, 0.99909843, 0.49318314],5573 [ -6.27283064, -0.00055893, 0.00034248, 7.27227172, 0.99829242, 0.99909860, 0.49318318],5574 [ -6.27283089, -0.00055882, 0.00034242, 7.27227206, 0.99829273, 0.99909876, 0.49318320],5575 [ -6.27283113, -0.00055872, 0.00034235, 7.27227240, 0.99829304, 0.99909892, 0.49318320],5576 [ -6.27283137, -0.00055862, 0.00034229, 7.27227274, 0.99829335, 0.99909908, 0.49318327],5577 [ -6.27283161, -0.00055852, 0.00034223, 7.27227309, 0.99829365, 0.99909925, 0.49318333],5578 [ -6.27283185, -0.00055842, 0.00034217, 7.27227343, 0.99829396, 0.99909941, 0.49318333],5579 [ -6.27283209, -0.00055832, 0.00034211, 7.27227377, 0.99829427, 0.99909957, 0.49318336],5580 [ -6.27283233, -0.00055822, 0.00034204, 7.27227411, 0.99829458, 0.99909973, 0.49318343],5581 [ -6.27283257, -0.00055812, 0.00034198, 7.27227445, 0.99829489, 0.99909990, 0.49318344],5582 [ -6.27283281, -0.00055802, 0.00034192, 7.27227479, 0.99829519, 0.99910006, 0.49318351],5583 [ -6.27283305, -0.00055792, 0.00034186, 7.27227514, 0.99829550, 0.99910022, 0.49318353],5584 [ -6.27283329, -0.00055782, 0.00034180, 7.27227548, 0.99829581, 0.99910038, 0.49318358],5585 [ -6.27283353, -0.00055772, 0.00034174, 7.27227582, 0.99829611, 0.99910055, 0.49318362],5586 [ -6.27283378, -0.00055762, 0.00034168, 7.27227616, 0.99829642, 0.99910071, 0.49318360],5587 [ -6.27283402, -0.00055752, 0.00034161, 7.27227650, 0.99829673, 0.99910087, 0.49318367],5588 [ -6.27283426, -0.00055742, 0.00034155, 7.27227684, 0.99829704, 0.99910103, 0.49318371],5589 [ -6.27283450, -0.00055732, 0.00034149, 7.27227718, 0.99829734, 0.99910119, 0.49318374],5590 [ -6.27283474, -0.00055722, 0.00034143, 7.27227752, 0.99829765, 0.99910136, 0.49318380],5591 [ -6.27283498, -0.00055712, 0.00034137, 7.27227786, 0.99829796, 0.99910152, 0.49318376],5592 [ -6.27283522, -0.00055701, 0.00034131, 7.27227820, 0.99829826, 0.99910168, 0.49318386],5593 [ -6.27283546, -0.00055691, 0.00034124, 7.27227854, 0.99829857, 0.99910184, 0.49318389],5594 [ -6.27283570, -0.00055681, 0.00034118, 7.27227888, 0.99829887, 0.99910200, 0.49318390],5595 [ -6.27283593, -0.00055671, 0.00034112, 7.27227922, 0.99829918, 0.99910216, 0.49318396],5596 [ -6.27283617, -0.00055661, 0.00034106, 7.27227956, 0.99829949, 0.99910233, 0.49318401],5597 [ -6.27283641, -0.00055651, 0.00034100, 7.27227990, 0.99829979, 0.99910249, 0.49318410],5598 [ -6.27283665, -0.00055641, 0.00034094, 7.27228024, 0.99830010, 0.99910265, 0.49318407],5599 [ -6.27283689, -0.00055631, 0.00034088, 7.27228058, 0.99830040, 0.99910281, 0.49318407],5600 [ -6.27283713, -0.00055621, 0.00034081, 7.27228092, 0.99830071, 0.99910297, 0.49318414],5601 [ -6.27283737, -0.00055611, 0.00034075, 7.27228126, 0.99830101, 0.99910313, 0.49318415],5602 [ -6.27283761, -0.00055601, 0.00034069, 7.27228159, 0.99830132, 0.99910329, 0.49318423],5603 [ -6.27283785, -0.00055591, 0.00034063, 7.27228193, 0.99830163, 0.99910345, 0.49318423],5604 [ -6.27283809, -0.00055581, 0.00034057, 7.27228227, 0.99830193, 0.99910362, 0.49318427],5605 [ -6.27283833, -0.00055571, 0.00034051, 7.27228261, 0.99830224, 0.99910378, 0.49318428],5606 [ -6.27283856, -0.00055562, 0.00034045, 7.27228295, 0.99830254, 0.99910394, 0.49318433],5607 [ -6.27283880, -0.00055552, 0.00034039, 7.27228329, 0.99830285, 0.99910410, 0.49318443],5608 [ -6.27283904, -0.00055542, 0.00034033, 7.27228363, 0.99830315, 0.99910426, 0.49318443],5609 [ -6.27283928, -0.00055532, 0.00034026, 7.27228396, 0.99830345, 0.99910442, 0.49318449],5610 [ -6.27283952, -0.00055522, 0.00034020, 7.27228430, 0.99830376, 0.99910458, 0.49318449],5611 [ -6.27283976, -0.00055512, 0.00034014, 7.27228464, 0.99830406, 0.99910474, 0.49318454],5612 [ -6.27283999, -0.00055502, 0.00034008, 7.27228498, 0.99830437, 0.99910490, 0.49318457],5613 [ -6.27284023, -0.00055492, 0.00034002, 7.27228531, 0.99830467, 0.99910506, 0.49318459],5614 [ -6.27284047, -0.00055482, 0.00033996, 7.27228565, 0.99830498, 0.99910522, 0.49318460],5615 [ -6.27284071, -0.00055472, 0.00033990, 7.27228599, 0.99830528, 0.99910538, 0.49318465],5616 [ -6.27284095, -0.00055462, 0.00033984, 7.27228633, 0.99830558, 0.99910554, 0.49318472],5617 [ -6.27284118, -0.00055452, 0.00033978, 7.27228666, 0.99830589, 0.99910570, 0.49318477],5618 [ -6.27284142, -0.00055442, 0.00033972, 7.27228700, 0.99830619, 0.99910586, 0.49318479],5619 [ -6.27284166, -0.00055432, 0.00033965, 7.27228734, 0.99830649, 0.99910602, 0.49318483],5620 [ -6.27284190, -0.00055422, 0.00033959, 7.27228767, 0.99830680, 0.99910618, 0.49318487],5621 [ -6.27284213, -0.00055412, 0.00033953, 7.27228801, 0.99830710, 0.99910634, 0.49318489],5622 [ -6.27284237, -0.00055402, 0.00033947, 7.27228835, 0.99830740, 0.99910650, 0.49318490],5623 [ -6.27284261, -0.00055393, 0.00033941, 7.27228868, 0.99830771, 0.99910666, 0.49318496],5624 [ -6.27284285, -0.00055383, 0.00033935, 7.27228902, 0.99830801, 0.99910682, 0.49318499],5625 [ -6.27284308, -0.00055373, 0.00033929, 7.27228936, 0.99830831, 0.99910698, 0.49318499],5626 [ -6.27284332, -0.00055363, 0.00033923, 7.27228969, 0.99830861, 0.99910714, 0.49318509],5627 [ -6.27284356, -0.00055353, 0.00033917, 7.27229003, 0.99830892, 0.99910730, 0.49318511],5628 [ -6.27284379, -0.00055343, 0.00033911, 7.27229036, 0.99830922, 0.99910746, 0.49318515],5629 [ -6.27284403, -0.00055333, 0.00033905, 7.27229070, 0.99830952, 0.99910762, 0.49318516],5630 [ -6.27284427, -0.00055323, 0.00033899, 7.27229103, 0.99830982, 0.99910778, 0.49318524],5631 [ -6.27284450, -0.00055313, 0.00033893, 7.27229137, 0.99831013, 0.99910794, 0.49318524],5632 [ -6.27284474, -0.00055303, 0.00033887, 7.27229170, 0.99831043, 0.99910810, 0.49318528],5633 [ -6.27284498, -0.00055294, 0.00033880, 7.27229204, 0.99831073, 0.99910826, 0.49318529],5634 [ -6.27284521, -0.00055284, 0.00033874, 7.27229237, 0.99831103, 0.99910842, 0.49318533],5635 [ -6.27284545, -0.00055274, 0.00033868, 7.27229271, 0.99831133, 0.99910858, 0.49318539],5636 [ -6.27284568, -0.00055264, 0.00033862, 7.27229304, 0.99831164, 0.99910874, 0.49318542],5637 [ -6.27284592, -0.00055254, 0.00033856, 7.27229338, 0.99831194, 0.99910890, 0.49318543],5638 [ -6.27284616, -0.00055244, 0.00033850, 7.27229371, 0.99831224, 0.99910906, 0.49318547],5639 [ -6.27284639, -0.00055234, 0.00033844, 7.27229405, 0.99831254, 0.99910921, 0.49318555],5640 [ -6.27284663, -0.00055225, 0.00033838, 7.27229438, 0.99831284, 0.99910937, 0.49318557],5641 [ -6.27284686, -0.00055215, 0.00033832, 7.27229472, 0.99831314, 0.99910953, 0.49318561],5642 [ -6.27284710, -0.00055205, 0.00033826, 7.27229505, 0.99831344, 0.99910969, 0.49318565],5643 [ -6.27284733, -0.00055195, 0.00033820, 7.27229538, 0.99831374, 0.99910985, 0.49318570],5644 [ -6.27284757, -0.00055185, 0.00033814, 7.27229572, 0.99831404, 0.99911001, 0.49318569],5645 [ -6.27284781, -0.00055175, 0.00033808, 7.27229605, 0.99831435, 0.99911017, 0.49318574],5646 [ -6.27284804, -0.00055165, 0.00033802, 7.27229639, 0.99831465, 0.99911033, 0.49318575],5647 [ -6.27284828, -0.00055156, 0.00033796, 7.27229672, 0.99831495, 0.99911048, 0.49318581],5648 [ -6.27284851, -0.00055146, 0.00033790, 7.27229705, 0.99831525, 0.99911064, 0.49318582],5649 [ -6.27284875, -0.00055136, 0.00033784, 7.27229739, 0.99831555, 0.99911080, 0.49318586],5650 [ -6.27284898, -0.00055126, 0.00033778, 7.27229772, 0.99831585, 0.99911096, 0.49318588],5651 [ -6.27284922, -0.00055116, 0.00033772, 7.27229805, 0.99831615, 0.99911112, 0.49318595],5652 [ -6.27284945, -0.00055107, 0.00033766, 7.27229838, 0.99831645, 0.99911128, 0.49318599],5653 [ -6.27284968, -0.00055097, 0.00033760, 7.27229872, 0.99831675, 0.99911143, 0.49318604],5654 [ -6.27284992, -0.00055087, 0.00033754, 7.27229905, 0.99831705, 0.99911159, 0.49318604],5655 [ -6.27285015, -0.00055077, 0.00033748, 7.27229938, 0.99831735, 0.99911175, 0.49318612],5656 [ -6.27285039, -0.00055067, 0.00033742, 7.27229971, 0.99831765, 0.99911191, 0.49318613],5657 [ -6.27285062, -0.00055058, 0.00033736, 7.27230005, 0.99831794, 0.99911207, 0.49318622],5658 [ -6.27285086, -0.00055048, 0.00033730, 7.27230038, 0.99831824, 0.99911223, 0.49318623],5659 [ -6.27285109, -0.00055038, 0.00033724, 7.27230071, 0.99831854, 0.99911238, 0.49318626],5660 [ -6.27285133, -0.00055028, 0.00033718, 7.27230104, 0.99831884, 0.99911254, 0.49318626],5661 [ -6.27285156, -0.00055018, 0.00033712, 7.27230138, 0.99831914, 0.99911270, 0.49318628],5662 [ -6.27285179, -0.00055009, 0.00033706, 7.27230171, 0.99831944, 0.99911286, 0.49318633],5663 [ -6.27285203, -0.00054999, 0.00033700, 7.27230204, 0.99831974, 0.99911301, 0.49318637],5664 [ -6.27285226, -0.00054989, 0.00033694, 7.27230237, 0.99832004, 0.99911317, 0.49318637],5665 [ -6.27285249, -0.00054979, 0.00033688, 7.27230270, 0.99832034, 0.99911333, 0.49318644],5666 [ -6.27285273, -0.00054970, 0.00033682, 7.27230303, 0.99832063, 0.99911349, 0.49318645],5667 [ -6.27285296, -0.00054960, 0.00033676, 7.27230336, 0.99832093, 0.99911364, 0.49318646],5668 [ -6.27285319, -0.00054950, 0.00033670, 7.27230369, 0.99832123, 0.99911380, 0.49318651],5669 [ -6.27285343, -0.00054940, 0.00033664, 7.27230403, 0.99832153, 0.99911396, 0.49318650],5670 [ -6.27285366, -0.00054931, 0.00033658, 7.27230436, 0.99832183, 0.99911412, 0.49318659],5671 [ -6.27285389, -0.00054921, 0.00033652, 7.27230469, 0.99832212, 0.99911427, 0.49318666],5672 [ -6.27285413, -0.00054911, 0.00033646, 7.27230502, 0.99832242, 0.99911443, 0.49318665],5673 [ -6.27285436, -0.00054901, 0.00033640, 7.27230535, 0.99832272, 0.99911459, 0.49318670],5674 [ -6.27285459, -0.00054892, 0.00033634, 7.27230568, 0.99832302, 0.99911474, 0.49318673],5675 [ -6.27285483, -0.00054882, 0.00033628, 7.27230601, 0.99832332, 0.99911490, 0.49318677],5676 [ -6.27285506, -0.00054872, 0.00033622, 7.27230634, 0.99832361, 0.99911506, 0.49318685],5677 [ -6.27285529, -0.00054862, 0.00033616, 7.27230667, 0.99832391, 0.99911522, 0.49318683],5678 [ -6.27285552, -0.00054853, 0.00033610, 7.27230700, 0.99832421, 0.99911537, 0.49318692],5679 [ -6.27285576, -0.00054843, 0.00033604, 7.27230733, 0.99832450, 0.99911553, 0.49318690],5680 [ -6.27285599, -0.00054833, 0.00033598, 7.27230766, 0.99832480, 0.99911569, 0.49318694],5681 [ -6.27285622, -0.00054824, 0.00033592, 7.27230799, 0.99832510, 0.99911584, 0.49318700],5682 [ -6.27285645, -0.00054814, 0.00033586, 7.27230832, 0.99832539, 0.99911600, 0.49318701],5683 [ -6.27285669, -0.00054804, 0.00033580, 7.27230865, 0.99832569, 0.99911616, 0.49318705],5684 [ -6.27285692, -0.00054794, 0.00033574, 7.27230897, 0.99832599, 0.99911631, 0.49318711],5685 [ -6.27285715, -0.00054785, 0.00033568, 7.27230930, 0.99832628, 0.99911647, 0.49318708],5686 [ -6.27285738, -0.00054775, 0.00033563, 7.27230963, 0.99832658, 0.99911662, 0.49318719],5687 [ -6.27285761, -0.00054765, 0.00033557, 7.27230996, 0.99832688, 0.99911678, 0.49318717],5688 [ -6.27285785, -0.00054756, 0.00033551, 7.27231029, 0.99832717, 0.99911694, 0.49318724],5689 [ -6.27285808, -0.00054746, 0.00033545, 7.27231062, 0.99832747, 0.99911709, 0.49318723],5690 [ -6.27285831, -0.00054736, 0.00033539, 7.27231095, 0.99832776, 0.99911725, 0.49318729],5691 [ -6.27285854, -0.00054727, 0.00033533, 7.27231127, 0.99832806, 0.99911741, 0.49318737],5692 [ -6.27285877, -0.00054717, 0.00033527, 7.27231160, 0.99832836, 0.99911756, 0.49318736],5693 [ -6.27285900, -0.00054707, 0.00033521, 7.27231193, 0.99832865, 0.99911772, 0.49318737],5694 [ -6.27285923, -0.00054698, 0.00033515, 7.27231226, 0.99832895, 0.99911787, 0.49318744],5695 [ -6.27285947, -0.00054688, 0.00033509, 7.27231259, 0.99832924, 0.99911803, 0.49318747],5696 [ -6.27285970, -0.00054678, 0.00033503, 7.27231291, 0.99832954, 0.99911819, 0.49318750],5697 [ -6.27285993, -0.00054669, 0.00033497, 7.27231324, 0.99832983, 0.99911834, 0.49318752],5698 [ -6.27286016, -0.00054659, 0.00033491, 7.27231357, 0.99833013, 0.99911850, 0.49318756],5699 [ -6.27286039, -0.00054649, 0.00033485, 7.27231390, 0.99833042, 0.99911865, 0.49318760],5700 [ -6.27286062, -0.00054640, 0.00033480, 7.27231422, 0.99833072, 0.99911881, 0.49318765],5701 [ -6.27286085, -0.00054630, 0.00033474, 7.27231455, 0.99833101, 0.99911896, 0.49318766],5702 [ -6.27286108, -0.00054620, 0.00033468, 7.27231488, 0.99833131, 0.99911912, 0.49318767],5703 [ -6.27286131, -0.00054611, 0.00033462, 7.27231521, 0.99833160, 0.99911927, 0.49318769],5704 [ -6.27286154, -0.00054601, 0.00033456, 7.27231553, 0.99833190, 0.99911943, 0.49318777],5705 [ -6.27286177, -0.00054591, 0.00033450, 7.27231586, 0.99833219, 0.99911959, 0.49318778],5706 [ -6.27286200, -0.00054582, 0.00033444, 7.27231619, 0.99833248, 0.99911974, 0.49318783],5707 [ -6.27286223, -0.00054572, 0.00033438, 7.27231651, 0.99833278, 0.99911990, 0.49318785],5708 [ -6.27286246, -0.00054563, 0.00033432, 7.27231684, 0.99833307, 0.99912005, 0.49318790],5709 [ -6.27286269, -0.00054553, 0.00033426, 7.27231716, 0.99833337, 0.99912021, 0.49318796],5710 [ -6.27286292, -0.00054543, 0.00033420, 7.27231749, 0.99833366, 0.99912036, 0.49318798],5711 [ -6.27286315, -0.00054534, 0.00033415, 7.27231782, 0.99833395, 0.99912052, 0.49318802],5712 [ -6.27286338, -0.00054524, 0.00033409, 7.27231814, 0.99833425, 0.99912067, 0.49318801],5713 [ -6.27286361, -0.00054515, 0.00033403, 7.27231847, 0.99833454, 0.99912083, 0.49318810],5714 [ -6.27286384, -0.00054505, 0.00033397, 7.27231879, 0.99833483, 0.99912098, 0.49318815],5715 [ -6.27286407, -0.00054495, 0.00033391, 7.27231912, 0.99833513, 0.99912114, 0.49318815],5716 [ -6.27286430, -0.00054486, 0.00033385, 7.27231944, 0.99833542, 0.99912129, 0.49318821],5717 [ -6.27286453, -0.00054476, 0.00033379, 7.27231977, 0.99833571, 0.99912145, 0.49318820],5718 [ -6.27286476, -0.00054467, 0.00033373, 7.27232010, 0.99833601, 0.99912160, 0.49318828],5719 [ -6.27286499, -0.00054457, 0.00033368, 7.27232042, 0.99833630, 0.99912175, 0.49318827],5720 [ -6.27286522, -0.00054447, 0.00033362, 7.27232075, 0.99833659, 0.99912191, 0.49318830],5721 [ -6.27286545, -0.00054438, 0.00033356, 7.27232107, 0.99833689, 0.99912206, 0.49318834],5722 [ -6.27286568, -0.00054428, 0.00033350, 7.27232139, 0.99833718, 0.99912222, 0.49318840],5723 [ -6.27286591, -0.00054419, 0.00033344, 7.27232172, 0.99833747, 0.99912237, 0.49318849],5724 [ -6.27286614, -0.00054409, 0.00033338, 7.27232204, 0.99833776, 0.99912253, 0.49318845],5725 [ -6.27286636, -0.00054400, 0.00033332, 7.27232237, 0.99833805, 0.99912268, 0.49318852],5726 [ -6.27286659, -0.00054390, 0.00033326, 7.27232269, 0.99833835, 0.99912283, 0.49318851],5727 [ -6.27286682, -0.00054380, 0.00033321, 7.27232302, 0.99833864, 0.99912299, 0.49318855],5728 [ -6.27286705, -0.00054371, 0.00033315, 7.27232334, 0.99833893, 0.99912314, 0.49318857],5729 [ -6.27286728, -0.00054361, 0.00033309, 7.27232366, 0.99833922, 0.99912330, 0.49318863],5730 [ -6.27286751, -0.00054352, 0.00033303, 7.27232399, 0.99833951, 0.99912345, 0.49318865],5731 [ -6.27286774, -0.00054342, 0.00033297, 7.27232431, 0.99833981, 0.99912360, 0.49318871],5732 [ -6.27286796, -0.00054333, 0.00033291, 7.27232464, 0.99834010, 0.99912376, 0.49318871],5733 [ -6.27286819, -0.00054323, 0.00033286, 7.27232496, 0.99834039, 0.99912391, 0.49318882],5734 [ -6.27286842, -0.00054314, 0.00033280, 7.27232528, 0.99834068, 0.99912407, 0.49318885],5735 [ -6.27286865, -0.00054304, 0.00033274, 7.27232561, 0.99834097, 0.99912422, 0.49318882],5736 [ -6.27286888, -0.00054295, 0.00033268, 7.27232593, 0.99834126, 0.99912437, 0.49318888],5737 [ -6.27286910, -0.00054285, 0.00033262, 7.27232625, 0.99834155, 0.99912453, 0.49318890],5738 [ -6.27286933, -0.00054276, 0.00033256, 7.27232657, 0.99834184, 0.99912468, 0.49318892],5739 [ -6.27286956, -0.00054266, 0.00033250, 7.27232690, 0.99834214, 0.99912483, 0.49318896],5740 [ -6.27286979, -0.00054257, 0.00033245, 7.27232722, 0.99834243, 0.99912499, 0.49318900],5741 [ -6.27287001, -0.00054247, 0.00033239, 7.27232754, 0.99834272, 0.99912514, 0.49318899],5742 [ -6.27287024, -0.00054238, 0.00033233, 7.27232787, 0.99834301, 0.99912529, 0.49318908],5743 [ -6.27287047, -0.00054228, 0.00033227, 7.27232819, 0.99834330, 0.99912545, 0.49318910],5744 [ -6.27287070, -0.00054219, 0.00033221, 7.27232851, 0.99834359, 0.99912560, 0.49318913],5745 [ -6.27287092, -0.00054209, 0.00033216, 7.27232883, 0.99834388, 0.99912575, 0.49318913],5746 [ -6.27287115, -0.00054200, 0.00033210, 7.27232915, 0.99834417, 0.99912591, 0.49318919],5747 [ -6.27287138, -0.00054190, 0.00033204, 7.27232948, 0.99834446, 0.99912606, 0.49318918],5748 [ -6.27287160, -0.00054181, 0.00033198, 7.27232980, 0.99834475, 0.99912621, 0.49318924],5749 [ -6.27287183, -0.00054171, 0.00033192, 7.27233012, 0.99834504, 0.99912637, 0.49318928],5750 [ -6.27287206, -0.00054162, 0.00033186, 7.27233044, 0.99834533, 0.99912652, 0.49318937],5751 [ -6.27287228, -0.00054152, 0.00033181, 7.27233076, 0.99834562, 0.99912667, 0.49318939],5752 [ -6.27287251, -0.00054143, 0.00033175, 7.27233108, 0.99834591, 0.99912682, 0.49318942],5753 [ -6.27287274, -0.00054133, 0.00033169, 7.27233140, 0.99834620, 0.99912698, 0.49318944],5754 [ -6.27287296, -0.00054124, 0.00033163, 7.27233173, 0.99834649, 0.99912713, 0.49318945],5755 [ -6.27287319, -0.00054114, 0.00033157, 7.27233205, 0.99834677, 0.99912728, 0.49318948],5756 [ -6.27287342, -0.00054105, 0.00033152, 7.27233237, 0.99834706, 0.99912744, 0.49318948],5757 [ -6.27287364, -0.00054095, 0.00033146, 7.27233269, 0.99834735, 0.99912759, 0.49318960],5758 [ -6.27287387, -0.00054086, 0.00033140, 7.27233301, 0.99834764, 0.99912774, 0.49318965],5759 [ -6.27287409, -0.00054076, 0.00033134, 7.27233333, 0.99834793, 0.99912789, 0.49318963],5760 [ -6.27287432, -0.00054067, 0.00033128, 7.27233365, 0.99834822, 0.99912805, 0.49318967],5761 [ -6.27287455, -0.00054058, 0.00033123, 7.27233397, 0.99834851, 0.99912820, 0.49318974],5762 [ -6.27287477, -0.00054048, 0.00033117, 7.27233429, 0.99834880, 0.99912835, 0.49318975],5763 [ -6.27287500, -0.00054039, 0.00033111, 7.27233461, 0.99834908, 0.99912850, 0.49318982],5764 [ -6.27287522, -0.00054029, 0.00033105, 7.27233493, 0.99834937, 0.99912865, 0.49318976],5765 [ -6.27287545, -0.00054020, 0.00033100, 7.27233525, 0.99834966, 0.99912881, 0.49318982],5766 [ -6.27287568, -0.00054010, 0.00033094, 7.27233557, 0.99834995, 0.99912896, 0.49318990],5767 [ -6.27287590, -0.00054001, 0.00033088, 7.27233589, 0.99835024, 0.99912911, 0.49318991],5768 [ -6.27287613, -0.00053992, 0.00033082, 7.27233621, 0.99835052, 0.99912926, 0.49318988],5769 [ -6.27287635, -0.00053982, 0.00033076, 7.27233653, 0.99835081, 0.99912941, 0.49319001],5770 [ -6.27287658, -0.00053973, 0.00033071, 7.27233685, 0.99835110, 0.99912957, 0.49318998],5771 [ -6.27287680, -0.00053963, 0.00033065, 7.27233717, 0.99835139, 0.99912972, 0.49319007],5772 [ -6.27287703, -0.00053954, 0.00033059, 7.27233749, 0.99835168, 0.99912987, 0.49319009],5773 [ -6.27287725, -0.00053945, 0.00033053, 7.27233781, 0.99835196, 0.99913002, 0.49319013],5774 [ -6.27287748, -0.00053935, 0.00033048, 7.27233812, 0.99835225, 0.99913017, 0.49319012],5775 [ -6.27287770, -0.00053926, 0.00033042, 7.27233844, 0.99835254, 0.99913032, 0.49319022],5776 [ -6.27287793, -0.00053916, 0.00033036, 7.27233876, 0.99835282, 0.99913048, 0.49319019],5777 [ -6.27287815, -0.00053907, 0.00033030, 7.27233908, 0.99835311, 0.99913063, 0.49319021],5778 [ -6.27287838, -0.00053898, 0.00033025, 7.27233940, 0.99835340, 0.99913078, 0.49319029],5779 [ -6.27287860, -0.00053888, 0.00033019, 7.27233972, 0.99835368, 0.99913093, 0.49319029],5780 [ -6.27287882, -0.00053879, 0.00033013, 7.27234004, 0.99835397, 0.99913108, 0.49319033],5781 [ -6.27287905, -0.00053869, 0.00033007, 7.27234035, 0.99835426, 0.99913123, 0.49319038],5782 [ -6.27287927, -0.00053860, 0.00033002, 7.27234067, 0.99835454, 0.99913138, 0.49319044],5783 [ -6.27287950, -0.00053851, 0.00032996, 7.27234099, 0.99835483, 0.99913153, 0.49319044],5784 [ -6.27287972, -0.00053841, 0.00032990, 7.27234131, 0.99835512, 0.99913169, 0.49319052],5785 [ -6.27287994, -0.00053832, 0.00032984, 7.27234162, 0.99835540, 0.99913184, 0.49319053],5786 [ -6.27288017, -0.00053823, 0.00032979, 7.27234194, 0.99835569, 0.99913199, 0.49319055],5787 [ -6.27288039, -0.00053813, 0.00032973, 7.27234226, 0.99835598, 0.99913214, 0.49319059],5788 [ -6.27288062, -0.00053804, 0.00032967, 7.27234258, 0.99835626, 0.99913229, 0.49319064],5789 [ -6.27288084, -0.00053795, 0.00032961, 7.27234289, 0.99835655, 0.99913244, 0.49319065],5790 [ -6.27288106, -0.00053785, 0.00032956, 7.27234321, 0.99835683, 0.99913259, 0.49319063],5791 [ -6.27288129, -0.00053776, 0.00032950, 7.27234353, 0.99835712, 0.99913274, 0.49319073],5792 [ -6.27288151, -0.00053767, 0.00032944, 7.27234385, 0.99835740, 0.99913289, 0.49319071],5793 [ -6.27288173, -0.00053757, 0.00032938, 7.27234416, 0.99835769, 0.99913304, 0.49319080],5794 [ -6.27288196, -0.00053748, 0.00032933, 7.27234448, 0.99835797, 0.99913319, 0.49319079],5795 [ -6.27288218, -0.00053739, 0.00032927, 7.27234480, 0.99835826, 0.99913334, 0.49319084],5796 [ -6.27288240, -0.00053729, 0.00032921, 7.27234511, 0.99835854, 0.99913349, 0.49319094],5797 [ -6.27288263, -0.00053720, 0.00032916, 7.27234543, 0.99835883, 0.99913365, 0.49319090],5798 [ -6.27288285, -0.00053711, 0.00032910, 7.27234574, 0.99835911, 0.99913380, 0.49319093],5799 [ -6.27288307, -0.00053701, 0.00032904, 7.27234606, 0.99835940, 0.99913395, 0.49319095],5800 [ -6.27288330, -0.00053692, 0.00032898, 7.27234638, 0.99835968, 0.99913410, 0.49319102],5801 [ -6.27288352, -0.00053683, 0.00032893, 7.27234669, 0.99835997, 0.99913425, 0.49319110],5802 [ -6.27288374, -0.00053673, 0.00032887, 7.27234701, 0.99836025, 0.99913440, 0.49319107],5803 [ -6.27288396, -0.00053664, 0.00032881, 7.27234732, 0.99836054, 0.99913455, 0.49319115],5804 [ -6.27288419, -0.00053655, 0.00032876, 7.27234764, 0.99836082, 0.99913470, 0.49319113],5805 [ -6.27288441, -0.00053645, 0.00032870, 7.27234795, 0.99836111, 0.99913485, 0.49319119],5806 [ -6.27288463, -0.00053636, 0.00032864, 7.27234827, 0.99836139, 0.99913500, 0.49319119],5807 [ -6.27288485, -0.00053627, 0.00032859, 7.27234859, 0.99836167, 0.99913515, 0.49319124],5808 [ -6.27288508, -0.00053618, 0.00032853, 7.27234890, 0.99836196, 0.99913530, 0.49319131],5809 [ -6.27288530, -0.00053608, 0.00032847, 7.27234922, 0.99836224, 0.99913545, 0.49319132],5810 [ -6.27288552, -0.00053599, 0.00032841, 7.27234953, 0.99836253, 0.99913560, 0.49319134],5811 [ -6.27288574, -0.00053590, 0.00032836, 7.27234985, 0.99836281, 0.99913575, 0.49319141],5812 [ -6.27288596, -0.00053580, 0.00032830, 7.27235016, 0.99836309, 0.99913590, 0.49319142],5813 [ -6.27288619, -0.00053571, 0.00032824, 7.27235047, 0.99836338, 0.99913604, 0.49319138],5814 [ -6.27288641, -0.00053562, 0.00032819, 7.27235079, 0.99836366, 0.99913619, 0.49319145],5815 [ -6.27288663, -0.00053553, 0.00032813, 7.27235110, 0.99836394, 0.99913634, 0.49319149],5816 [ -6.27288685, -0.00053543, 0.00032807, 7.27235142, 0.99836423, 0.99913649, 0.49319155],5817 [ -6.27288707, -0.00053534, 0.00032802, 7.27235173, 0.99836451, 0.99913664, 0.49319156],5818 [ -6.27288729, -0.00053525, 0.00032796, 7.27235205, 0.99836479, 0.99913679, 0.49319156],5819 [ -6.27288752, -0.00053516, 0.00032790, 7.27235236, 0.99836507, 0.99913694, 0.49319162],5820 [ -6.27288774, -0.00053506, 0.00032785, 7.27235267, 0.99836536, 0.99913709, 0.49319169],5821 [ -6.27288796, -0.00053497, 0.00032779, 7.27235299, 0.99836564, 0.99913724, 0.49319169],5822 [ -6.27288818, -0.00053488, 0.00032773, 7.27235330, 0.99836592, 0.99913739, 0.49319176],5823 [ -6.27288840, -0.00053479, 0.00032768, 7.27235361, 0.99836620, 0.99913754, 0.49319177],5824 [ -6.27288862, -0.00053469, 0.00032762, 7.27235393, 0.99836649, 0.99913769, 0.49319182],5825 [ -6.27288884, -0.00053460, 0.00032756, 7.27235424, 0.99836677, 0.99913784, 0.49319183],5826 [ -6.27288906, -0.00053451, 0.00032751, 7.27235455, 0.99836705, 0.99913798, 0.49319186],5827 [ -6.27288928, -0.00053442, 0.00032745, 7.27235487, 0.99836733, 0.99913813, 0.49319195],5828 [ -6.27288950, -0.00053432, 0.00032739, 7.27235518, 0.99836762, 0.99913828, 0.49319191],5829 [ -6.27288973, -0.00053423, 0.00032734, 7.27235549, 0.99836790, 0.99913843, 0.49319195],5830 [ -6.27288995, -0.00053414, 0.00032728, 7.27235581, 0.99836818, 0.99913858, 0.49319198],5831 [ -6.27289017, -0.00053405, 0.00032722, 7.27235612, 0.99836846, 0.99913873, 0.49319204],5832 [ -6.27289039, -0.00053396, 0.00032717, 7.27235643, 0.99836874, 0.99913888, 0.49319208],5833 [ -6.27289061, -0.00053386, 0.00032711, 7.27235674, 0.99836902, 0.99913903, 0.49319213],5834 [ -6.27289083, -0.00053377, 0.00032705, 7.27235706, 0.99836931, 0.99913917, 0.49319212],5835 [ -6.27289105, -0.00053368, 0.00032700, 7.27235737, 0.99836959, 0.99913932, 0.49319218],5836 [ -6.27289127, -0.00053359, 0.00032694, 7.27235768, 0.99836987, 0.99913947, 0.49319222],5837 [ -6.27289149, -0.00053350, 0.00032689, 7.27235799, 0.99837015, 0.99913962, 0.49319223],5838 [ -6.27289171, -0.00053340, 0.00032683, 7.27235830, 0.99837043, 0.99913977, 0.49319229],5839 [ -6.27289193, -0.00053331, 0.00032677, 7.27235862, 0.99837071, 0.99913992, 0.49319228],5840 [ -6.27289215, -0.00053322, 0.00032672, 7.27235893, 0.99837099, 0.99914006, 0.49319230],5841 [ -6.27289237, -0.00053313, 0.00032666, 7.27235924, 0.99837127, 0.99914021, 0.49319236],5842 [ -6.27289259, -0.00053304, 0.00032660, 7.27235955, 0.99837155, 0.99914036, 0.49319240],5843 [ -6.27289281, -0.00053294, 0.00032655, 7.27235986, 0.99837183, 0.99914051, 0.49319244],5844 [ -6.27289303, -0.00053285, 0.00032649, 7.27236017, 0.99837211, 0.99914066, 0.49319243],5845 [ -6.27289325, -0.00053276, 0.00032643, 7.27236048, 0.99837239, 0.99914080, 0.49319249],5846 [ -6.27289346, -0.00053267, 0.00032638, 7.27236080, 0.99837267, 0.99914095, 0.49319257],5847 [ -6.27289368, -0.00053258, 0.00032632, 7.27236111, 0.99837295, 0.99914110, 0.49319253],5848 [ -6.27289390, -0.00053249, 0.00032627, 7.27236142, 0.99837323, 0.99914125, 0.49319261],5849 [ -6.27289412, -0.00053239, 0.00032621, 7.27236173, 0.99837351, 0.99914140, 0.49319263],5850 [ -6.27289434, -0.00053230, 0.00032615, 7.27236204, 0.99837379, 0.99914154, 0.49319267],5851 [ -6.27289456, -0.00053221, 0.00032610, 7.27236235, 0.99837407, 0.99914169, 0.49319271],5852 [ -6.27289478, -0.00053212, 0.00032604, 7.27236266, 0.99837435, 0.99914184, 0.49319271],5853 [ -6.27289500, -0.00053203, 0.00032599, 7.27236297, 0.99837463, 0.99914199, 0.49319270],5854 [ -6.27289522, -0.00053194, 0.00032593, 7.27236328, 0.99837491, 0.99914213, 0.49319278],5855 [ -6.27289544, -0.00053185, 0.00032587, 7.27236359, 0.99837519, 0.99914228, 0.49319281],5856 [ -6.27289565, -0.00053175, 0.00032582, 7.27236390, 0.99837547, 0.99914243, 0.49319284],5857 [ -6.27289587, -0.00053166, 0.00032576, 7.27236421, 0.99837575, 0.99914258, 0.49319286],5858 [ -6.27289609, -0.00053157, 0.00032571, 7.27236452, 0.99837603, 0.99914272, 0.49319287],5859 [ -6.27289631, -0.00053148, 0.00032565, 7.27236483, 0.99837631, 0.99914287, 0.49319297],5860 [ -6.27289653, -0.00053139, 0.00032559, 7.27236514, 0.99837659, 0.99914302, 0.49319300],5861 [ -6.27289675, -0.00053130, 0.00032554, 7.27236545, 0.99837687, 0.99914316, 0.49319302],5862 [ -6.27289696, -0.00053121, 0.00032548, 7.27236576, 0.99837714, 0.99914331, 0.49319305],5863 [ -6.27289718, -0.00053112, 0.00032543, 7.27236607, 0.99837742, 0.99914346, 0.49319306],5864 [ -6.27289740, -0.00053102, 0.00032537, 7.27236638, 0.99837770, 0.99914361, 0.49319318],5865 [ -6.27289762, -0.00053093, 0.00032531, 7.27236668, 0.99837798, 0.99914375, 0.49319313],5866 [ -6.27289784, -0.00053084, 0.00032526, 7.27236699, 0.99837826, 0.99914390, 0.49319318],5867 [ -6.27289805, -0.00053075, 0.00032520, 7.27236730, 0.99837854, 0.99914405, 0.49319320],5868 [ -6.27289827, -0.00053066, 0.00032515, 7.27236761, 0.99837881, 0.99914419, 0.49319315],5869 [ -6.27289849, -0.00053057, 0.00032509, 7.27236792, 0.99837909, 0.99914434, 0.49319329],5870 [ -6.27289871, -0.00053048, 0.00032504, 7.27236823, 0.99837937, 0.99914449, 0.49319329],5871 [ -6.27289892, -0.00053039, 0.00032498, 7.27236854, 0.99837965, 0.99914463, 0.49319336],5872 [ -6.27289914, -0.00053030, 0.00032492, 7.27236884, 0.99837993, 0.99914478, 0.49319338],5873 [ -6.27289936, -0.00053021, 0.00032487, 7.27236915, 0.99838020, 0.99914493, 0.49319340],5874 [ -6.27289958, -0.00053012, 0.00032481, 7.27236946, 0.99838048, 0.99914507, 0.49319339],5875 [ -6.27289979, -0.00053002, 0.00032476, 7.27236977, 0.99838076, 0.99914522, 0.49319350],5876 [ -6.27290001, -0.00052993, 0.00032470, 7.27237008, 0.99838104, 0.99914536, 0.49319352],5877 [ -6.27290023, -0.00052984, 0.00032465, 7.27237038, 0.99838131, 0.99914551, 0.49319359],5878 [ -6.27290044, -0.00052975, 0.00032459, 7.27237069, 0.99838159, 0.99914566, 0.49319354],5879 [ -6.27290066, -0.00052966, 0.00032453, 7.27237100, 0.99838187, 0.99914580, 0.49319355],5880 [ -6.27290088, -0.00052957, 0.00032448, 7.27237131, 0.99838214, 0.99914595, 0.49319365],5881 [ -6.27290109, -0.00052948, 0.00032442, 7.27237161, 0.99838242, 0.99914610, 0.49319372],5882 [ -6.27290131, -0.00052939, 0.00032437, 7.27237192, 0.99838270, 0.99914624, 0.49319371],5883 [ -6.27290153, -0.00052930, 0.00032431, 7.27237223, 0.99838297, 0.99914639, 0.49319369],5884 [ -6.27290174, -0.00052921, 0.00032426, 7.27237254, 0.99838325, 0.99914653, 0.49319379],5885 [ -6.27290196, -0.00052912, 0.00032420, 7.27237284, 0.99838353, 0.99914668, 0.49319379],5886 [ -6.27290218, -0.00052903, 0.00032415, 7.27237315, 0.99838380, 0.99914683, 0.49319387],5887 [ -6.27290239, -0.00052894, 0.00032409, 7.27237346, 0.99838408, 0.99914697, 0.49319384],5888 [ -6.27290261, -0.00052885, 0.00032404, 7.27237376, 0.99838436, 0.99914712, 0.49319390],5889 [ -6.27290283, -0.00052876, 0.00032398, 7.27237407, 0.99838463, 0.99914726, 0.49319391],5890 [ -6.27290304, -0.00052867, 0.00032392, 7.27237438, 0.99838491, 0.99914741, 0.49319397],5891 [ -6.27290326, -0.00052858, 0.00032387, 7.27237468, 0.99838518, 0.99914755, 0.49319399],5892 [ -6.27290347, -0.00052849, 0.00032381, 7.27237499, 0.99838546, 0.99914770, 0.49319399],5893 [ -6.27290369, -0.00052840, 0.00032376, 7.27237529, 0.99838574, 0.99914785, 0.49319402],5894 [ -6.27290391, -0.00052831, 0.00032370, 7.27237560, 0.99838601, 0.99914799, 0.49319410],5895 [ -6.27290412, -0.00052822, 0.00032365, 7.27237591, 0.99838629, 0.99914814, 0.49319411],5896 [ -6.27290434, -0.00052813, 0.00032359, 7.27237621, 0.99838656, 0.99914828, 0.49319417],5897 [ -6.27290455, -0.00052804, 0.00032354, 7.27237652, 0.99838684, 0.99914843, 0.49319421],5898 [ -6.27290477, -0.00052795, 0.00032348, 7.27237682, 0.99838711, 0.99914857, 0.49319423],5899 [ -6.27290498, -0.00052786, 0.00032343, 7.27237713, 0.99838739, 0.99914872, 0.49319424],5900 [ -6.27290520, -0.00052777, 0.00032337, 7.27237743, 0.99838766, 0.99914886, 0.49319429],5901 [ -6.27290541, -0.00052768, 0.00032332, 7.27237774, 0.99838794, 0.99914901, 0.49319426],5902 [ -6.27290563, -0.00052759, 0.00032326, 7.27237804, 0.99838821, 0.99914915, 0.49319434],5903 [ -6.27290584, -0.00052750, 0.00032321, 7.27237835, 0.99838849, 0.99914930, 0.49319436],5904 [ -6.27290606, -0.00052741, 0.00032315, 7.27237865, 0.99838876, 0.99914944, 0.49319441],5905 [ -6.27290627, -0.00052732, 0.00032310, 7.27237896, 0.99838904, 0.99914959, 0.49319443],5906 [ -6.27290649, -0.00052723, 0.00032304, 7.27237926, 0.99838931, 0.99914973, 0.49319450],5907 [ -6.27290670, -0.00052714, 0.00032299, 7.27237957, 0.99838959, 0.99914988, 0.49319447],5908 [ -6.27290692, -0.00052705, 0.00032293, 7.27237987, 0.99838986, 0.99915002, 0.49319454],5909 [ -6.27290713, -0.00052696, 0.00032288, 7.27238018, 0.99839013, 0.99915017, 0.49319453],5910 [ -6.27290735, -0.00052687, 0.00032282, 7.27238048, 0.99839041, 0.99915031, 0.49319457],5911 [ -6.27290756, -0.00052678, 0.00032277, 7.27238078, 0.99839068, 0.99915046, 0.49319463],5912 [ -6.27290778, -0.00052669, 0.00032271, 7.27238109, 0.99839096, 0.99915060, 0.49319468],5913 [ -6.27290799, -0.00052660, 0.00032266, 7.27238139, 0.99839123, 0.99915075, 0.49319471],5914 [ -6.27290821, -0.00052651, 0.00032260, 7.27238170, 0.99839150, 0.99915089, 0.49319472],5915 [ -6.27290842, -0.00052642, 0.00032255, 7.27238200, 0.99839178, 0.99915103, 0.49319477],5916 [ -6.27290863, -0.00052633, 0.00032249, 7.27238230, 0.99839205, 0.99915118, 0.49319479],5917 [ -6.27290885, -0.00052624, 0.00032244, 7.27238261, 0.99839232, 0.99915132, 0.49319479],5918 [ -6.27290906, -0.00052615, 0.00032238, 7.27238291, 0.99839260, 0.99915147, 0.49319486],5919 [ -6.27290928, -0.00052606, 0.00032233, 7.27238321, 0.99839287, 0.99915161, 0.49319496],5920 [ -6.27290949, -0.00052597, 0.00032227, 7.27238352, 0.99839314, 0.99915176, 0.49319494],5921 [ -6.27290970, -0.00052588, 0.00032222, 7.27238382, 0.99839342, 0.99915190, 0.49319490],5922 [ -6.27290992, -0.00052579, 0.00032216, 7.27238412, 0.99839369, 0.99915204, 0.49319495],5923 [ -6.27291013, -0.00052570, 0.00032211, 7.27238443, 0.99839396, 0.99915219, 0.49319503],5924 [ -6.27291034, -0.00052561, 0.00032205, 7.27238473, 0.99839424, 0.99915233, 0.49319499],5925 [ -6.27291056, -0.00052553, 0.00032200, 7.27238503, 0.99839451, 0.99915248, 0.49319506],5926 [ -6.27291077, -0.00052544, 0.00032194, 7.27238534, 0.99839478, 0.99915262, 0.49319516],5927 [ -6.27291098, -0.00052535, 0.00032189, 7.27238564, 0.99839505, 0.99915276, 0.49319515],5928 [ -6.27291120, -0.00052526, 0.00032183, 7.27238594, 0.99839533, 0.99915291, 0.49319519],5929 [ -6.27291141, -0.00052517, 0.00032178, 7.27238624, 0.99839560, 0.99915305, 0.49319519],5930 [ -6.27291162, -0.00052508, 0.00032173, 7.27238654, 0.99839587, 0.99915320, 0.49319522],5931 [ -6.27291184, -0.00052499, 0.00032167, 7.27238685, 0.99839614, 0.99915334, 0.49319528],5932 [ -6.27291205, -0.00052490, 0.00032162, 7.27238715, 0.99839642, 0.99915348, 0.49319533],5933 [ -6.27291226, -0.00052481, 0.00032156, 7.27238745, 0.99839669, 0.99915363, 0.49319536],5934 [ -6.27291248, -0.00052472, 0.00032151, 7.27238775, 0.99839696, 0.99915377, 0.49319537],5935 [ -6.27291269, -0.00052463, 0.00032145, 7.27238805, 0.99839723, 0.99915391, 0.49319544],5936 [ -6.27291290, -0.00052455, 0.00032140, 7.27238836, 0.99839750, 0.99915406, 0.49319545],5937 [ -6.27291311, -0.00052446, 0.00032134, 7.27238866, 0.99839777, 0.99915420, 0.49319547],5938 [ -6.27291333, -0.00052437, 0.00032129, 7.27238896, 0.99839805, 0.99915434, 0.49319547],5939 [ -6.27291354, -0.00052428, 0.00032123, 7.27238926, 0.99839832, 0.99915449, 0.49319552],5940 [ -6.27291375, -0.00052419, 0.00032118, 7.27238956, 0.99839859, 0.99915463, 0.49319555],5941 [ -6.27291396, -0.00052410, 0.00032113, 7.27238986, 0.99839886, 0.99915477, 0.49319555],5942 [ -6.27291418, -0.00052401, 0.00032107, 7.27239016, 0.99839913, 0.99915492, 0.49319565],5943 [ -6.27291439, -0.00052392, 0.00032102, 7.27239046, 0.99839940, 0.99915506, 0.49319563],5944 [ -6.27291460, -0.00052384, 0.00032096, 7.27239077, 0.99839967, 0.99915520, 0.49319565],5945 [ -6.27291481, -0.00052375, 0.00032091, 7.27239107, 0.99839994, 0.99915534, 0.49319571],5946 [ -6.27291503, -0.00052366, 0.00032085, 7.27239137, 0.99840021, 0.99915549, 0.49319576],5947 [ -6.27291524, -0.00052357, 0.00032080, 7.27239167, 0.99840049, 0.99915563, 0.49319577],5948 [ -6.27291545, -0.00052348, 0.00032075, 7.27239197, 0.99840076, 0.99915577, 0.49319579],5949 [ -6.27291566, -0.00052339, 0.00032069, 7.27239227, 0.99840103, 0.99915592, 0.49319582],5950 [ -6.27291587, -0.00052330, 0.00032064, 7.27239257, 0.99840130, 0.99915606, 0.49319587],5951 [ -6.27291608, -0.00052322, 0.00032058, 7.27239287, 0.99840157, 0.99915620, 0.49319592],5952 [ -6.27291630, -0.00052313, 0.00032053, 7.27239317, 0.99840184, 0.99915634, 0.49319593],5953 [ -6.27291651, -0.00052304, 0.00032047, 7.27239347, 0.99840211, 0.99915649, 0.49319594],5954 [ -6.27291672, -0.00052295, 0.00032042, 7.27239377, 0.99840238, 0.99915663, 0.49319596],5955 [ -6.27291693, -0.00052286, 0.00032037, 7.27239407, 0.99840265, 0.99915677, 0.49319602],5956 [ -6.27291714, -0.00052277, 0.00032031, 7.27239437, 0.99840292, 0.99915691, 0.49319607],5957 [ -6.27291735, -0.00052269, 0.00032026, 7.27239467, 0.99840319, 0.99915706, 0.49319609],5958 [ -6.27291756, -0.00052260, 0.00032020, 7.27239497, 0.99840346, 0.99915720, 0.49319609],5959 [ -6.27291777, -0.00052251, 0.00032015, 7.27239526, 0.99840373, 0.99915734, 0.49319619],5960 [ -6.27291799, -0.00052242, 0.00032010, 7.27239556, 0.99840400, 0.99915748, 0.49319624],5961 [ -6.27291820, -0.00052233, 0.00032004, 7.27239586, 0.99840427, 0.99915763, 0.49319616],5962 [ -6.27291841, -0.00052225, 0.00031999, 7.27239616, 0.99840453, 0.99915777, 0.49319625],5963 [ -6.27291862, -0.00052216, 0.00031993, 7.27239646, 0.99840480, 0.99915791, 0.49319632],5964 [ -6.27291883, -0.00052207, 0.00031988, 7.27239676, 0.99840507, 0.99915805, 0.49319625],5965 [ -6.27291904, -0.00052198, 0.00031983, 7.27239706, 0.99840534, 0.99915819, 0.49319634],5966 [ -6.27291925, -0.00052189, 0.00031977, 7.27239736, 0.99840561, 0.99915834, 0.49319638],5967 [ -6.27291946, -0.00052180, 0.00031972, 7.27239766, 0.99840588, 0.99915848, 0.49319640],5968 [ -6.27291967, -0.00052172, 0.00031966, 7.27239795, 0.99840615, 0.99915862, 0.49319643],5969 [ -6.27291988, -0.00052163, 0.00031961, 7.27239825, 0.99840642, 0.99915876, 0.49319646],5970 [ -6.27292009, -0.00052154, 0.00031956, 7.27239855, 0.99840669, 0.99915890, 0.49319643],5971 [ -6.27292030, -0.00052145, 0.00031950, 7.27239885, 0.99840695, 0.99915904, 0.49319651],5972 [ -6.27292051, -0.00052137, 0.00031945, 7.27239915, 0.99840722, 0.99915919, 0.49319652],5973 [ -6.27292072, -0.00052128, 0.00031939, 7.27239944, 0.99840749, 0.99915933, 0.49319657],5974 [ -6.27292093, -0.00052119, 0.00031934, 7.27239974, 0.99840776, 0.99915947, 0.49319663],5975 [ -6.27292114, -0.00052110, 0.00031929, 7.27240004, 0.99840803, 0.99915961, 0.49319665],5976 [ -6.27292135, -0.00052101, 0.00031923, 7.27240034, 0.99840830, 0.99915975, 0.49319671],5977 [ -6.27292156, -0.00052093, 0.00031918, 7.27240063, 0.99840856, 0.99915989, 0.49319676],5978 [ -6.27292177, -0.00052084, 0.00031913, 7.27240093, 0.99840883, 0.99916004, 0.49319677],5979 [ -6.27292198, -0.00052075, 0.00031907, 7.27240123, 0.99840910, 0.99916018, 0.49319672],5980 [ -6.27292219, -0.00052066, 0.00031902, 7.27240153, 0.99840937, 0.99916032, 0.49319676],5981 [ -6.27292240, -0.00052058, 0.00031896, 7.27240182, 0.99840964, 0.99916046, 0.49319684],5982 [ -6.27292261, -0.00052049, 0.00031891, 7.27240212, 0.99840990, 0.99916060, 0.49319683],5983 [ -6.27292282, -0.00052040, 0.00031886, 7.27240242, 0.99841017, 0.99916074, 0.49319688],5984 [ -6.27292303, -0.00052031, 0.00031880, 7.27240271, 0.99841044, 0.99916088, 0.49319696],5985 [ -6.27292324, -0.00052023, 0.00031875, 7.27240301, 0.99841070, 0.99916102, 0.49319696],5986 [ -6.27292345, -0.00052014, 0.00031870, 7.27240331, 0.99841097, 0.99916117, 0.49319698],5987 [ -6.27292366, -0.00052005, 0.00031864, 7.27240360, 0.99841124, 0.99916131, 0.49319702],5988 [ -6.27292386, -0.00051996, 0.00031859, 7.27240390, 0.99841151, 0.99916145, 0.49319705],5989 [ -6.27292407, -0.00051988, 0.00031854, 7.27240420, 0.99841177, 0.99916159, 0.49319708],5990 [ -6.27292428, -0.00051979, 0.00031848, 7.27240449, 0.99841204, 0.99916173, 0.49319705],5991 [ -6.27292449, -0.00051970, 0.00031843, 7.27240479, 0.99841231, 0.99916187, 0.49319715],5992 [ -6.27292470, -0.00051962, 0.00031837, 7.27240508, 0.99841257, 0.99916201, 0.49319716],5993 [ -6.27292491, -0.00051953, 0.00031832, 7.27240538, 0.99841284, 0.99916215, 0.49319722],5994 [ -6.27292512, -0.00051944, 0.00031827, 7.27240568, 0.99841311, 0.99916229, 0.49319725],5995 [ -6.27292533, -0.00051935, 0.00031821, 7.27240597, 0.99841337, 0.99916243, 0.49319725],5996 [ -6.27292553, -0.00051927, 0.00031816, 7.27240627, 0.99841364, 0.99916257, 0.49319734],5997 [ -6.27292574, -0.00051918, 0.00031811, 7.27240656, 0.99841390, 0.99916271, 0.49319744],5998 [ -6.27292595, -0.00051909, 0.00031805, 7.27240686, 0.99841417, 0.99916285, 0.49319739],5999 [ -6.27292616, -0.00051901, 0.00031800, 7.27240715, 0.99841444, 0.99916299, 0.49319736],6000 [ -6.27292637, -0.00051892, 0.00031795, 7.27240745, 0.99841470, 0.99916313, 0.49319748],6001 [ -6.27292658, -0.00051883, 0.00031789, 7.27240774, 0.99841497, 0.99916327, 0.49319747],6002 [ -6.27292678, -0.00051874, 0.00031784, 7.27240804, 0.99841523, 0.99916341, 0.49319748],6003 [ -6.27292699, -0.00051866, 0.00031779, 7.27240833, 0.99841550, 0.99916355, 0.49319753],6004 [ -6.27292720, -0.00051857, 0.00031773, 7.27240863, 0.99841577, 0.99916369, 0.49319759],6005 [ -6.27292741, -0.00051848, 0.00031768, 7.27240892, 0.99841603, 0.99916384, 0.49319759],6006 [ -6.27292762, -0.00051840, 0.00031763, 7.27240922, 0.99841630, 0.99916398, 0.49319759],6007 [ -6.27292782, -0.00051831, 0.00031757, 7.27240951, 0.99841656, 0.99916412, 0.49319764],6008 [ -6.27292803, -0.00051822, 0.00031752, 7.27240981, 0.99841683, 0.99916426, 0.49319769],6009 [ -6.27292824, -0.00051814, 0.00031747, 7.27241010, 0.99841709, 0.99916440, 0.49319768],6010 [ -6.27292845, -0.00051805, 0.00031742, 7.27241040, 0.99841736, 0.99916453, 0.49319773],6011 [ -6.27292865, -0.00051796, 0.00031736, 7.27241069, 0.99841762, 0.99916467, 0.49319777],6012 [ -6.27292886, -0.00051788, 0.00031731, 7.27241098, 0.99841789, 0.99916481, 0.49319789],6013 [ -6.27292907, -0.00051779, 0.00031726, 7.27241128, 0.99841815, 0.99916495, 0.49319781],6014 [ -6.27292927, -0.00051770, 0.00031720, 7.27241157, 0.99841842, 0.99916509, 0.49319785],6015 [ -6.27292948, -0.00051762, 0.00031715, 7.27241186, 0.99841868, 0.99916523, 0.49319784],6016 [ -6.27292969, -0.00051753, 0.00031710, 7.27241216, 0.99841895, 0.99916537, 0.49319795],6017 [ -6.27292990, -0.00051744, 0.00031704, 7.27241245, 0.99841921, 0.99916551, 0.49319794],6018 [ -6.27293010, -0.00051736, 0.00031699, 7.27241275, 0.99841947, 0.99916565, 0.49319797],6019 [ -6.27293031, -0.00051727, 0.00031694, 7.27241304, 0.99841974, 0.99916579, 0.49319807],6020 [ -6.27293052, -0.00051718, 0.00031688, 7.27241333, 0.99842000, 0.99916593, 0.49319800],6021 [ -6.27293072, -0.00051710, 0.00031683, 7.27241363, 0.99842027, 0.99916607, 0.49319809],6022 [ -6.27293093, -0.00051701, 0.00031678, 7.27241392, 0.99842053, 0.99916621, 0.49319811],6023 [ -6.27293114, -0.00051693, 0.00031673, 7.27241421, 0.99842079, 0.99916635, 0.49319811],6024 [ -6.27293134, -0.00051684, 0.00031667, 7.27241450, 0.99842106, 0.99916649, 0.49319817],6025 [ -6.27293155, -0.00051675, 0.00031662, 7.27241480, 0.99842132, 0.99916663, 0.49319820],6026 [ -6.27293176, -0.00051667, 0.00031657, 7.27241509, 0.99842159, 0.99916677, 0.49319821],6027 [ -6.27293196, -0.00051658, 0.00031651, 7.27241538, 0.99842185, 0.99916691, 0.49319833],6028 [ -6.27293217, -0.00051649, 0.00031646, 7.27241567, 0.99842211, 0.99916704, 0.49319829],6029 [ -6.27293237, -0.00051641, 0.00031641, 7.27241597, 0.99842238, 0.99916718, 0.49319831],6030 [ -6.27293258, -0.00051632, 0.00031636, 7.27241626, 0.99842264, 0.99916732, 0.49319838],6031 [ -6.27293279, -0.00051624, 0.00031630, 7.27241655, 0.99842290, 0.99916746, 0.49319843],6032 [ -6.27293299, -0.00051615, 0.00031625, 7.27241684, 0.99842316, 0.99916760, 0.49319840],6033 [ -6.27293320, -0.00051606, 0.00031620, 7.27241713, 0.99842343, 0.99916774, 0.49319841],6034 [ -6.27293340, -0.00051598, 0.00031614, 7.27241743, 0.99842369, 0.99916788, 0.49319849],6035 [ -6.27293361, -0.00051589, 0.00031609, 7.27241772, 0.99842395, 0.99916802, 0.49319850],6036 [ -6.27293382, -0.00051581, 0.00031604, 7.27241801, 0.99842422, 0.99916816, 0.49319856],6037 [ -6.27293402, -0.00051572, 0.00031599, 7.27241830, 0.99842448, 0.99916829, 0.49319860],6038 [ -6.27293423, -0.00051563, 0.00031593, 7.27241859, 0.99842474, 0.99916843, 0.49319855],6039 [ -6.27293443, -0.00051555, 0.00031588, 7.27241888, 0.99842500, 0.99916857, 0.49319861],6040 [ -6.27293464, -0.00051546, 0.00031583, 7.27241918, 0.99842527, 0.99916871, 0.49319870],6041 [ -6.27293484, -0.00051538, 0.00031578, 7.27241947, 0.99842553, 0.99916885, 0.49319866],6042 [ -6.27293505, -0.00051529, 0.00031572, 7.27241976, 0.99842579, 0.99916899, 0.49319873],6043 [ -6.27293525, -0.00051520, 0.00031567, 7.27242005, 0.99842605, 0.99916912, 0.49319872],6044 [ -6.27293546, -0.00051512, 0.00031562, 7.27242034, 0.99842632, 0.99916926, 0.49319875],6045 [ -6.27293566, -0.00051503, 0.00031557, 7.27242063, 0.99842658, 0.99916940, 0.49319885],6046 [ -6.27293587, -0.00051495, 0.00031551, 7.27242092, 0.99842684, 0.99916954, 0.49319881],6047 [ -6.27293607, -0.00051486, 0.00031546, 7.27242121, 0.99842710, 0.99916968, 0.49319885],6048 [ -6.27293628, -0.00051478, 0.00031541, 7.27242150, 0.99842736, 0.99916982, 0.49319897],6049 [ -6.27293648, -0.00051469, 0.00031536, 7.27242179, 0.99842762, 0.99916995, 0.49319898],6050 [ -6.27293669, -0.00051461, 0.00031530, 7.27242208, 0.99842789, 0.99917009, 0.49319895],6051 [ -6.27293689, -0.00051452, 0.00031525, 7.27242237, 0.99842815, 0.99917023, 0.49319902],6052 [ -6.27293710, -0.00051443, 0.00031520, 7.27242266, 0.99842841, 0.99917037, 0.49319899],6053 [ -6.27293730, -0.00051435, 0.00031515, 7.27242295, 0.99842867, 0.99917051, 0.49319907],6054 [ -6.27293751, -0.00051426, 0.00031509, 7.27242324, 0.99842893, 0.99917064, 0.49319910],6055 [ -6.27293771, -0.00051418, 0.00031504, 7.27242353, 0.99842919, 0.99917078, 0.49319911],6056 [ -6.27293792, -0.00051409, 0.00031499, 7.27242382, 0.99842945, 0.99917092, 0.49319911],6057 [ -6.27293812, -0.00051401, 0.00031494, 7.27242411, 0.99842971, 0.99917106, 0.49319918],6058 [ -6.27293832, -0.00051392, 0.00031488, 7.27242440, 0.99842997, 0.99917119, 0.49319923],6059 [ -6.27293853, -0.00051384, 0.00031483, 7.27242469, 0.99843024, 0.99917133, 0.49319919],6060 [ -6.27293873, -0.00051375, 0.00031478, 7.27242498, 0.99843050, 0.99917147, 0.49319924],6061 [ -6.27293894, -0.00051367, 0.00031473, 7.27242527, 0.99843076, 0.99917161, 0.49319925],6062 [ -6.27293914, -0.00051358, 0.00031467, 7.27242556, 0.99843102, 0.99917174, 0.49319934],6063 [ -6.27293934, -0.00051350, 0.00031462, 7.27242585, 0.99843128, 0.99917188, 0.49319932],6064 [ -6.27293955, -0.00051341, 0.00031457, 7.27242614, 0.99843154, 0.99917202, 0.49319938],6065 [ -6.27293975, -0.00051333, 0.00031452, 7.27242643, 0.99843180, 0.99917216, 0.49319942],6066 [ -6.27293995, -0.00051324, 0.00031447, 7.27242671, 0.99843206, 0.99917229, 0.49319947],6067 [ -6.27294016, -0.00051315, 0.00031441, 7.27242700, 0.99843232, 0.99917243, 0.49319948],6068 [ -6.27294036, -0.00051307, 0.00031436, 7.27242729, 0.99843258, 0.99917257, 0.49319954],6069 [ -6.27294057, -0.00051298, 0.00031431, 7.27242758, 0.99843284, 0.99917271, 0.49319956],6070 [ -6.27294077, -0.00051290, 0.00031426, 7.27242787, 0.99843310, 0.99917284, 0.49319957],6071 [ -6.27294097, -0.00051281, 0.00031421, 7.27242816, 0.99843336, 0.99917298, 0.49319962],6072 [ -6.27294118, -0.00051273, 0.00031415, 7.27242845, 0.99843362, 0.99917312, 0.49319969],6073 [ -6.27294138, -0.00051265, 0.00031410, 7.27242873, 0.99843388, 0.99917325, 0.49319972],6074 [ -6.27294158, -0.00051256, 0.00031405, 7.27242902, 0.99843414, 0.99917339, 0.49319967],6075 [ -6.27294178, -0.00051248, 0.00031400, 7.27242931, 0.99843439, 0.99917353, 0.49319971],6076 [ -6.27294199, -0.00051239, 0.00031395, 7.27242960, 0.99843465, 0.99917366, 0.49319975],6077 [ -6.27294219, -0.00051231, 0.00031389, 7.27242988, 0.99843491, 0.99917380, 0.49319976],6078 [ -6.27294239, -0.00051222, 0.00031384, 7.27243017, 0.99843517, 0.99917394, 0.49319985],6079 [ -6.27294260, -0.00051214, 0.00031379, 7.27243046, 0.99843543, 0.99917407, 0.49319980],6080 [ -6.27294280, -0.00051205, 0.00031374, 7.27243075, 0.99843569, 0.99917421, 0.49319987],6081 [ -6.27294300, -0.00051197, 0.00031369, 7.27243103, 0.99843595, 0.99917435, 0.49319991],6082 [ -6.27294320, -0.00051188, 0.00031363, 7.27243132, 0.99843621, 0.99917448, 0.49319996],6083 [ -6.27294341, -0.00051180, 0.00031358, 7.27243161, 0.99843647, 0.99917462, 0.49320001],6084 [ -6.27294361, -0.00051171, 0.00031353, 7.27243190, 0.99843673, 0.99917476, 0.49319998],6085 [ -6.27294381, -0.00051163, 0.00031348, 7.27243218, 0.99843698, 0.99917489, 0.49320000],6086 [ -6.27294401, -0.00051154, 0.00031343, 7.27243247, 0.99843724, 0.99917503, 0.49320003],6087 [ -6.27294422, -0.00051146, 0.00031337, 7.27243276, 0.99843750, 0.99917517, 0.49320007],6088 [ -6.27294442, -0.00051137, 0.00031332, 7.27243304, 0.99843776, 0.99917530, 0.49320006],6089 [ -6.27294462, -0.00051129, 0.00031327, 7.27243333, 0.99843802, 0.99917544, 0.49320012],6090 [ -6.27294482, -0.00051121, 0.00031322, 7.27243362, 0.99843827, 0.99917558, 0.49320018],6091 [ -6.27294502, -0.00051112, 0.00031317, 7.27243390, 0.99843853, 0.99917571, 0.49320018],6092 [ -6.27294523, -0.00051104, 0.00031312, 7.27243419, 0.99843879, 0.99917585, 0.49320017],6093 [ -6.27294543, -0.00051095, 0.00031306, 7.27243448, 0.99843905, 0.99917598, 0.49320022],6094 [ -6.27294563, -0.00051087, 0.00031301, 7.27243476, 0.99843931, 0.99917612, 0.49320033],6095 [ -6.27294583, -0.00051078, 0.00031296, 7.27243505, 0.99843956, 0.99917626, 0.49320035],6096 [ -6.27294603, -0.00051070, 0.00031291, 7.27243533, 0.99843982, 0.99917639, 0.49320035],6097 [ -6.27294623, -0.00051062, 0.00031286, 7.27243562, 0.99844008, 0.99917653, 0.49320037],6098 [ -6.27294644, -0.00051053, 0.00031281, 7.27243590, 0.99844034, 0.99917666, 0.49320040],6099 [ -6.27294664, -0.00051045, 0.00031275, 7.27243619, 0.99844059, 0.99917680, 0.49320046],6100 [ -6.27294684, -0.00051036, 0.00031270, 7.27243648, 0.99844085, 0.99917693, 0.49320050],6101 [ -6.27294704, -0.00051028, 0.00031265, 7.27243676, 0.99844111, 0.99917707, 0.49320049],6102 [ -6.27294724, -0.00051019, 0.00031260, 7.27243705, 0.99844136, 0.99917721, 0.49320054],6103 [ -6.27294744, -0.00051011, 0.00031255, 7.27243733, 0.99844162, 0.99917734, 0.49320055],6104 [ -6.27294764, -0.00051003, 0.00031250, 7.27243762, 0.99844188, 0.99917748, 0.49320064],6105 [ -6.27294784, -0.00050994, 0.00031244, 7.27243790, 0.99844214, 0.99917761, 0.49320065],6106 [ -6.27294805, -0.00050986, 0.00031239, 7.27243819, 0.99844239, 0.99917775, 0.49320067],6107 [ -6.27294825, -0.00050977, 0.00031234, 7.27243847, 0.99844265, 0.99917788, 0.49320073],6108 [ -6.27294845, -0.00050969, 0.00031229, 7.27243876, 0.99844291, 0.99917802, 0.49320072],6109 [ -6.27294865, -0.00050961, 0.00031224, 7.27243904, 0.99844316, 0.99917815, 0.49320076],6110 [ -6.27294885, -0.00050952, 0.00031219, 7.27243933, 0.99844342, 0.99917829, 0.49320077],6111 [ -6.27294905, -0.00050944, 0.00031214, 7.27243961, 0.99844367, 0.99917843, 0.49320076],6112 [ -6.27294925, -0.00050936, 0.00031208, 7.27243989, 0.99844393, 0.99917856, 0.49320084],6113 [ -6.27294945, -0.00050927, 0.00031203, 7.27244018, 0.99844419, 0.99917870, 0.49320087],6114 [ -6.27294965, -0.00050919, 0.00031198, 7.27244046, 0.99844444, 0.99917883, 0.49320088],6115 [ -6.27294985, -0.00050910, 0.00031193, 7.27244075, 0.99844470, 0.99917897, 0.49320097],6116 [ -6.27295005, -0.00050902, 0.00031188, 7.27244103, 0.99844495, 0.99917910, 0.49320091],6117 [ -6.27295025, -0.00050894, 0.00031183, 7.27244132, 0.99844521, 0.99917924, 0.49320097],6118 [ -6.27295045, -0.00050885, 0.00031178, 7.27244160, 0.99844547, 0.99917937, 0.49320101],6119 [ -6.27295065, -0.00050877, 0.00031173, 7.27244188, 0.99844572, 0.99917951, 0.49320102],6120 [ -6.27295085, -0.00050869, 0.00031167, 7.27244217, 0.99844598, 0.99917964, 0.49320101],6121 [ -6.27295105, -0.00050860, 0.00031162, 7.27244245, 0.99844623, 0.99917978, 0.49320112],6122 [ -6.27295125, -0.00050852, 0.00031157, 7.27244273, 0.99844649, 0.99917991, 0.49320117],6123 [ -6.27295145, -0.00050844, 0.00031152, 7.27244302, 0.99844674, 0.99918004, 0.49320117],6124 [ -6.27295165, -0.00050835, 0.00031147, 7.27244330, 0.99844700, 0.99918018, 0.49320119],6125 [ -6.27295185, -0.00050827, 0.00031142, 7.27244358, 0.99844725, 0.99918031, 0.49320122],6126 [ -6.27295205, -0.00050818, 0.00031137, 7.27244387, 0.99844751, 0.99918045, 0.49320128],6127 [ -6.27295225, -0.00050810, 0.00031132, 7.27244415, 0.99844776, 0.99918058, 0.49320130],6128 [ -6.27295245, -0.00050802, 0.00031126, 7.27244443, 0.99844802, 0.99918072, 0.49320132],6129 [ -6.27295265, -0.00050793, 0.00031121, 7.27244472, 0.99844827, 0.99918085, 0.49320130],6130 [ -6.27295285, -0.00050785, 0.00031116, 7.27244500, 0.99844853, 0.99918099, 0.49320137],6131 [ -6.27295305, -0.00050777, 0.00031111, 7.27244528, 0.99844878, 0.99918112, 0.49320141],6132 [ -6.27295325, -0.00050768, 0.00031106, 7.27244556, 0.99844904, 0.99918126, 0.49320145],6133 [ -6.27295345, -0.00050760, 0.00031101, 7.27244585, 0.99844929, 0.99918139, 0.49320144],6134 [ -6.27295365, -0.00050752, 0.00031096, 7.27244613, 0.99844955, 0.99918152, 0.49320149],6135 [ -6.27295385, -0.00050743, 0.00031091, 7.27244641, 0.99844980, 0.99918166, 0.49320154],6136 [ -6.27295404, -0.00050735, 0.00031086, 7.27244669, 0.99845005, 0.99918179, 0.49320156],6137 [ -6.27295424, -0.00050727, 0.00031081, 7.27244697, 0.99845031, 0.99918193, 0.49320161],6138 [ -6.27295444, -0.00050719, 0.00031075, 7.27244726, 0.99845056, 0.99918206, 0.49320163],6139 [ -6.27295464, -0.00050710, 0.00031070, 7.27244754, 0.99845082, 0.99918219, 0.49320168],6140 [ -6.27295484, -0.00050702, 0.00031065, 7.27244782, 0.99845107, 0.99918233, 0.49320163],6141 [ -6.27295504, -0.00050694, 0.00031060, 7.27244810, 0.99845132, 0.99918246, 0.49320171],6142 [ -6.27295524, -0.00050685, 0.00031055, 7.27244838, 0.99845158, 0.99918260, 0.49320174],6143 [ -6.27295544, -0.00050677, 0.00031050, 7.27244867, 0.99845183, 0.99918273, 0.49320177],6144 [ -6.27295563, -0.00050669, 0.00031045, 7.27244895, 0.99845208, 0.99918286, 0.49320176],6145 [ -6.27295583, -0.00050660, 0.00031040, 7.27244923, 0.99845234, 0.99918300, 0.49320182],6146 [ -6.27295603, -0.00050652, 0.00031035, 7.27244951, 0.99845259, 0.99918313, 0.49320186],6147 [ -6.27295623, -0.00050644, 0.00031030, 7.27244979, 0.99845284, 0.99918327, 0.49320185],6148 [ -6.27295643, -0.00050636, 0.00031025, 7.27245007, 0.99845310, 0.99918340, 0.49320186],6149 [ -6.27295663, -0.00050627, 0.00031019, 7.27245035, 0.99845335, 0.99918353, 0.49320197],6150 [ -6.27295682, -0.00050619, 0.00031014, 7.27245063, 0.99845360, 0.99918367, 0.49320197],6151 [ -6.27295702, -0.00050611, 0.00031009, 7.27245091, 0.99845386, 0.99918380, 0.49320194],6152 [ -6.27295722, -0.00050602, 0.00031004, 7.27245120, 0.99845411, 0.99918393, 0.49320202],6153 [ -6.27295742, -0.00050594, 0.00030999, 7.27245148, 0.99845436, 0.99918407, 0.49320205],6154 [ -6.27295762, -0.00050586, 0.00030994, 7.27245176, 0.99845462, 0.99918420, 0.49320207],6155 [ -6.27295781, -0.00050578, 0.00030989, 7.27245204, 0.99845487, 0.99918433, 0.49320207],6156 [ -6.27295801, -0.00050569, 0.00030984, 7.27245232, 0.99845512, 0.99918447, 0.49320217],6157 [ -6.27295821, -0.00050561, 0.00030979, 7.27245260, 0.99845537, 0.99918460, 0.49320221],6158 [ -6.27295841, -0.00050553, 0.00030974, 7.27245288, 0.99845563, 0.99918473, 0.49320219],6159 [ -6.27295860, -0.00050545, 0.00030969, 7.27245316, 0.99845588, 0.99918487, 0.49320222],6160 [ -6.27295880, -0.00050536, 0.00030964, 7.27245344, 0.99845613, 0.99918500, 0.49320228],6161 [ -6.27295900, -0.00050528, 0.00030959, 7.27245372, 0.99845638, 0.99918513, 0.49320230],6162 [ -6.27295920, -0.00050520, 0.00030954, 7.27245400, 0.99845663, 0.99918526, 0.49320235],6163 [ -6.27295939, -0.00050512, 0.00030949, 7.27245428, 0.99845689, 0.99918540, 0.49320231],6164 [ -6.27295959, -0.00050503, 0.00030944, 7.27245456, 0.99845714, 0.99918553, 0.49320239],6165 [ -6.27295979, -0.00050495, 0.00030938, 7.27245484, 0.99845739, 0.99918566, 0.49320239],6166 [ -6.27295998, -0.00050487, 0.00030933, 7.27245512, 0.99845764, 0.99918580, 0.49320243],6167 [ -6.27296018, -0.00050479, 0.00030928, 7.27245539, 0.99845789, 0.99918593, 0.49320240],6168 [ -6.27296038, -0.00050470, 0.00030923, 7.27245567, 0.99845814, 0.99918606, 0.49320248],6169 [ -6.27296058, -0.00050462, 0.00030918, 7.27245595, 0.99845840, 0.99918619, 0.49320254],6170 [ -6.27296077, -0.00050454, 0.00030913, 7.27245623, 0.99845865, 0.99918633, 0.49320254],6171 [ -6.27296097, -0.00050446, 0.00030908, 7.27245651, 0.99845890, 0.99918646, 0.49320257],6172 [ -6.27296117, -0.00050438, 0.00030903, 7.27245679, 0.99845915, 0.99918659, 0.49320260],6173 [ -6.27296136, -0.00050429, 0.00030898, 7.27245707, 0.99845940, 0.99918673, 0.49320260],6174 [ -6.27296156, -0.00050421, 0.00030893, 7.27245735, 0.99845965, 0.99918686, 0.49320264],6175 [ -6.27296176, -0.00050413, 0.00030888, 7.27245763, 0.99845990, 0.99918699, 0.49320270],6176 [ -6.27296195, -0.00050405, 0.00030883, 7.27245790, 0.99846015, 0.99918712, 0.49320271],6177 [ -6.27296215, -0.00050397, 0.00030878, 7.27245818, 0.99846040, 0.99918726, 0.49320271],6178 [ -6.27296234, -0.00050388, 0.00030873, 7.27245846, 0.99846066, 0.99918739, 0.49320279],6179 [ -6.27296254, -0.00050380, 0.00030868, 7.27245874, 0.99846091, 0.99918752, 0.49320285],6180 [ -6.27296274, -0.00050372, 0.00030863, 7.27245902, 0.99846116, 0.99918765, 0.49320278],6181 [ -6.27296293, -0.00050364, 0.00030858, 7.27245930, 0.99846141, 0.99918778, 0.49320286],6182 [ -6.27296313, -0.00050356, 0.00030853, 7.27245957, 0.99846166, 0.99918792, 0.49320284],6183 [ -6.27296332, -0.00050347, 0.00030848, 7.27245985, 0.99846191, 0.99918805, 0.49320294],6184 [ -6.27296352, -0.00050339, 0.00030843, 7.27246013, 0.99846216, 0.99918818, 0.49320297],6185 [ -6.27296372, -0.00050331, 0.00030838, 7.27246041, 0.99846241, 0.99918831, 0.49320295],6186 [ -6.27296391, -0.00050323, 0.00030833, 7.27246068, 0.99846266, 0.99918844, 0.49320301],6187 [ -6.27296411, -0.00050315, 0.00030828, 7.27246096, 0.99846291, 0.99918858, 0.49320303],6188 [ -6.27296430, -0.00050306, 0.00030823, 7.27246124, 0.99846316, 0.99918871, 0.49320305],6189 [ -6.27296450, -0.00050298, 0.00030818, 7.27246152, 0.99846341, 0.99918884, 0.49320310],6190 [ -6.27296469, -0.00050290, 0.00030813, 7.27246179, 0.99846366, 0.99918897, 0.49320314],6191 [ -6.27296489, -0.00050282, 0.00030808, 7.27246207, 0.99846391, 0.99918910, 0.49320318],6192 [ -6.27296509, -0.00050274, 0.00030803, 7.27246235, 0.99846416, 0.99918924, 0.49320319],6193 [ -6.27296528, -0.00050266, 0.00030798, 7.27246263, 0.99846441, 0.99918937, 0.49320326],6194 [ -6.27296548, -0.00050257, 0.00030793, 7.27246290, 0.99846466, 0.99918950, 0.49320325],6195 [ -6.27296567, -0.00050249, 0.00030788, 7.27246318, 0.99846490, 0.99918963, 0.49320329],6196 [ -6.27296587, -0.00050241, 0.00030783, 7.27246346, 0.99846515, 0.99918976, 0.49320330],6197 [ -6.27296606, -0.00050233, 0.00030778, 7.27246373, 0.99846540, 0.99918989, 0.49320333],6198 [ -6.27296626, -0.00050225, 0.00030773, 7.27246401, 0.99846565, 0.99919002, 0.49320339],6199 [ -6.27296645, -0.00050217, 0.00030768, 7.27246429, 0.99846590, 0.99919016, 0.49320339],6200 [ -6.27296665, -0.00050209, 0.00030763, 7.27246456, 0.99846615, 0.99919029, 0.49320338],6201 [ -6.27296684, -0.00050200, 0.00030758, 7.27246484, 0.99846640, 0.99919042, 0.49320344],6202 [ -6.27296704, -0.00050192, 0.00030753, 7.27246511, 0.99846665, 0.99919055, 0.49320353],6203 [ -6.27296723, -0.00050184, 0.00030748, 7.27246539, 0.99846690, 0.99919068, 0.49320349],6204 [ -6.27296743, -0.00050176, 0.00030743, 7.27246567, 0.99846715, 0.99919081, 0.49320357],6205 [ -6.27296762, -0.00050168, 0.00030738, 7.27246594, 0.99846739, 0.99919094, 0.49320354],6206 [ -6.27296781, -0.00050160, 0.00030733, 7.27246622, 0.99846764, 0.99919108, 0.49320360],6207 [ -6.27296801, -0.00050152, 0.00030728, 7.27246649, 0.99846789, 0.99919121, 0.49320366],6208 [ -6.27296820, -0.00050143, 0.00030723, 7.27246677, 0.99846814, 0.99919134, 0.49320363],6209 [ -6.27296840, -0.00050135, 0.00030718, 7.27246704, 0.99846839, 0.99919147, 0.49320369],6210 [ -6.27296859, -0.00050127, 0.00030713, 7.27246732, 0.99846864, 0.99919160, 0.49320376],6211 [ -6.27296879, -0.00050119, 0.00030708, 7.27246760, 0.99846888, 0.99919173, 0.49320377],6212 [ -6.27296898, -0.00050111, 0.00030703, 7.27246787, 0.99846913, 0.99919186, 0.49320381],6213 [ -6.27296917, -0.00050103, 0.00030698, 7.27246815, 0.99846938, 0.99919199, 0.49320377],6214 [ -6.27296937, -0.00050095, 0.00030693, 7.27246842, 0.99846963, 0.99919212, 0.49320384],6215 [ -6.27296956, -0.00050087, 0.00030688, 7.27246870, 0.99846987, 0.99919225, 0.49320380],6216 [ -6.27296976, -0.00050079, 0.00030683, 7.27246897, 0.99847012, 0.99919238, 0.49320387],6217 [ -6.27296995, -0.00050070, 0.00030678, 7.27246925, 0.99847037, 0.99919251, 0.49320387],6218 [ -6.27297014, -0.00050062, 0.00030673, 7.27246952, 0.99847062, 0.99919265, 0.49320397],6219 [ -6.27297034, -0.00050054, 0.00030668, 7.27246980, 0.99847086, 0.99919278, 0.49320397],6220 [ -6.27297053, -0.00050046, 0.00030663, 7.27247007, 0.99847111, 0.99919291, 0.49320399],6221 [ -6.27297073, -0.00050038, 0.00030658, 7.27247034, 0.99847136, 0.99919304, 0.49320405],6222 [ -6.27297092, -0.00050030, 0.00030653, 7.27247062, 0.99847161, 0.99919317, 0.49320409],6223 [ -6.27297111, -0.00050022, 0.00030648, 7.27247089, 0.99847185, 0.99919330, 0.49320412],6224 [ -6.27297131, -0.00050014, 0.00030643, 7.27247117, 0.99847210, 0.99919343, 0.49320414],6225 [ -6.27297150, -0.00050006, 0.00030638, 7.27247144, 0.99847235, 0.99919356, 0.49320414],6226 [ -6.27297169, -0.00049998, 0.00030633, 7.27247172, 0.99847259, 0.99919369, 0.49320417],6227 [ -6.27297189, -0.00049990, 0.00030629, 7.27247199, 0.99847284, 0.99919382, 0.49320418],6228 [ -6.27297208, -0.00049982, 0.00030624, 7.27247226, 0.99847309, 0.99919395, 0.49320420],6229 [ -6.27297227, -0.00049973, 0.00030619, 7.27247254, 0.99847333, 0.99919408, 0.49320426],6230 [ -6.27297246, -0.00049965, 0.00030614, 7.27247281, 0.99847358, 0.99919421, 0.49320420],6231 [ -6.27297266, -0.00049957, 0.00030609, 7.27247308, 0.99847383, 0.99919434, 0.49320435],6232 [ -6.27297285, -0.00049949, 0.00030604, 7.27247336, 0.99847407, 0.99919447, 0.49320431],6233 [ -6.27297304, -0.00049941, 0.00030599, 7.27247363, 0.99847432, 0.99919460, 0.49320437],6234 [ -6.27297324, -0.00049933, 0.00030594, 7.27247390, 0.99847457, 0.99919473, 0.49320437],6235 [ -6.27297343, -0.00049925, 0.00030589, 7.27247418, 0.99847481, 0.99919486, 0.49320443],6236 [ -6.27297362, -0.00049917, 0.00030584, 7.27247445, 0.99847506, 0.99919499, 0.49320448],6237 [ -6.27297381, -0.00049909, 0.00030579, 7.27247472, 0.99847530, 0.99919512, 0.49320448],6238 [ -6.27297401, -0.00049901, 0.00030574, 7.27247500, 0.99847555, 0.99919525, 0.49320449],6239 [ -6.27297420, -0.00049893, 0.00030569, 7.27247527, 0.99847580, 0.99919538, 0.49320451],6240 [ -6.27297439, -0.00049885, 0.00030564, 7.27247554, 0.99847604, 0.99919551, 0.49320453],6241 [ -6.27297458, -0.00049877, 0.00030559, 7.27247582, 0.99847629, 0.99919564, 0.49320461],6242 [ -6.27297478, -0.00049869, 0.00030554, 7.27247609, 0.99847653, 0.99919577, 0.49320461],6243 [ -6.27297497, -0.00049861, 0.00030550, 7.27247636, 0.99847678, 0.99919590, 0.49320465],6244 [ -6.27297516, -0.00049853, 0.00030545, 7.27247663, 0.99847702, 0.99919603, 0.49320475],6245 [ -6.27297535, -0.00049845, 0.00030540, 7.27247691, 0.99847727, 0.99919616, 0.49320473],6246 [ -6.27297554, -0.00049837, 0.00030535, 7.27247718, 0.99847751, 0.99919629, 0.49320474],6247 [ -6.27297574, -0.00049829, 0.00030530, 7.27247745, 0.99847776, 0.99919641, 0.49320475],6248 [ -6.27297593, -0.00049821, 0.00030525, 7.27247772, 0.99847800, 0.99919654, 0.49320486],6249 [ -6.27297612, -0.00049813, 0.00030520, 7.27247799, 0.99847825, 0.99919667, 0.49320483],6250 [ -6.27297631, -0.00049805, 0.00030515, 7.27247827, 0.99847849, 0.99919680, 0.49320494],6251 [ -6.27297650, -0.00049797, 0.00030510, 7.27247854, 0.99847874, 0.99919693, 0.49320494],6252 [ -6.27297670, -0.00049789, 0.00030505, 7.27247881, 0.99847898, 0.99919706, 0.49320488],6253 [ -6.27297689, -0.00049781, 0.00030500, 7.27247908, 0.99847923, 0.99919719, 0.49320497],6254 [ -6.27297708, -0.00049773, 0.00030495, 7.27247935, 0.99847947, 0.99919732, 0.49320498],6255 [ -6.27297727, -0.00049765, 0.00030491, 7.27247962, 0.99847972, 0.99919745, 0.49320504],6256 [ -6.27297746, -0.00049757, 0.00030486, 7.27247990, 0.99847996, 0.99919758, 0.49320498],6257 [ -6.27297765, -0.00049749, 0.00030481, 7.27248017, 0.99848021, 0.99919771, 0.49320508],6258 [ -6.27297784, -0.00049741, 0.00030476, 7.27248044, 0.99848045, 0.99919784, 0.49320506],6259 [ -6.27297804, -0.00049733, 0.00030471, 7.27248071, 0.99848070, 0.99919796, 0.49320512],6260 [ -6.27297823, -0.00049725, 0.00030466, 7.27248098, 0.99848094, 0.99919809, 0.49320520],6261 [ -6.27297842, -0.00049717, 0.00030461, 7.27248125, 0.99848118, 0.99919822, 0.49320518],6262 [ -6.27297861, -0.00049709, 0.00030456, 7.27248152, 0.99848143, 0.99919835, 0.49320519],6263 [ -6.27297880, -0.00049701, 0.00030451, 7.27248179, 0.99848167, 0.99919848, 0.49320524],6264 [ -6.27297899, -0.00049693, 0.00030446, 7.27248206, 0.99848192, 0.99919861, 0.49320527],6265 [ -6.27297918, -0.00049685, 0.00030442, 7.27248233, 0.99848216, 0.99919874, 0.49320529],6266 [ -6.27297937, -0.00049677, 0.00030437, 7.27248260, 0.99848240, 0.99919887, 0.49320530],6267 [ -6.27297956, -0.00049669, 0.00030432, 7.27248288, 0.99848265, 0.99919899, 0.49320533],6268 [ -6.27297975, -0.00049661, 0.00030427, 7.27248315, 0.99848289, 0.99919912, 0.49320533],6269 [ -6.27297994, -0.00049653, 0.00030422, 7.27248342, 0.99848313, 0.99919925, 0.49320545],6270 [ -6.27298013, -0.00049645, 0.00030417, 7.27248369, 0.99848338, 0.99919938, 0.49320550],6271 [ -6.27298033, -0.00049637, 0.00030412, 7.27248396, 0.99848362, 0.99919951, 0.49320544],6272 [ -6.27298052, -0.00049629, 0.00030407, 7.27248423, 0.99848386, 0.99919964, 0.49320542],6273 [ -6.27298071, -0.00049621, 0.00030403, 7.27248450, 0.99848411, 0.99919976, 0.49320549],6274 [ -6.27298090, -0.00049613, 0.00030398, 7.27248477, 0.99848435, 0.99919989, 0.49320553],6275 [ -6.27298109, -0.00049605, 0.00030393, 7.27248504, 0.99848459, 0.99920002, 0.49320549],6276 [ -6.27298128, -0.00049597, 0.00030388, 7.27248531, 0.99848484, 0.99920015, 0.49320559],6277 [ -6.27298147, -0.00049589, 0.00030383, 7.27248557, 0.99848508, 0.99920028, 0.49320560],6278 [ -6.27298166, -0.00049581, 0.00030378, 7.27248584, 0.99848532, 0.99920041, 0.49320562],6279 [ -6.27298185, -0.00049573, 0.00030373, 7.27248611, 0.99848556, 0.99920053, 0.49320572],6280 [ -6.27298204, -0.00049565, 0.00030368, 7.27248638, 0.99848581, 0.99920066, 0.49320570],6281 [ -6.27298223, -0.00049557, 0.00030364, 7.27248665, 0.99848605, 0.99920079, 0.49320571],6282 [ -6.27298242, -0.00049550, 0.00030359, 7.27248692, 0.99848629, 0.99920092, 0.49320573],6283 [ -6.27298261, -0.00049542, 0.00030354, 7.27248719, 0.99848653, 0.99920105, 0.49320576],6284 [ -6.27298280, -0.00049534, 0.00030349, 7.27248746, 0.99848678, 0.99920117, 0.49320585],6285 [ -6.27298299, -0.00049526, 0.00030344, 7.27248773, 0.99848702, 0.99920130, 0.49320584],6286 [ -6.27298318, -0.00049518, 0.00030339, 7.27248800, 0.99848726, 0.99920143, 0.49320590],6287 [ -6.27298336, -0.00049510, 0.00030334, 7.27248827, 0.99848750, 0.99920156, 0.49320592],6288 [ -6.27298355, -0.00049502, 0.00030330, 7.27248853, 0.99848774, 0.99920168, 0.49320594],6289 [ -6.27298374, -0.00049494, 0.00030325, 7.27248880, 0.99848799, 0.99920181, 0.49320595],6290 [ -6.27298393, -0.00049486, 0.00030320, 7.27248907, 0.99848823, 0.99920194, 0.49320597],6291 [ -6.27298412, -0.00049478, 0.00030315, 7.27248934, 0.99848847, 0.99920207, 0.49320596],6292 [ -6.27298431, -0.00049470, 0.00030310, 7.27248961, 0.99848871, 0.99920220, 0.49320603],6293 [ -6.27298450, -0.00049462, 0.00030305, 7.27248988, 0.99848895, 0.99920232, 0.49320613],6294 [ -6.27298469, -0.00049455, 0.00030300, 7.27249014, 0.99848919, 0.99920245, 0.49320607],6295 [ -6.27298488, -0.00049447, 0.00030296, 7.27249041, 0.99848944, 0.99920258, 0.49320616],6296 [ -6.27298507, -0.00049439, 0.00030291, 7.27249068, 0.99848968, 0.99920270, 0.49320618],6297 [ -6.27298526, -0.00049431, 0.00030286, 7.27249095, 0.99848992, 0.99920283, 0.49320613],6298 [ -6.27298545, -0.00049423, 0.00030281, 7.27249122, 0.99849016, 0.99920296, 0.49320620],6299 [ -6.27298563, -0.00049415, 0.00030276, 7.27249148, 0.99849040, 0.99920309, 0.49320622],6300 [ -6.27298582, -0.00049407, 0.00030271, 7.27249175, 0.99849064, 0.99920321, 0.49320626],6301 [ -6.27298601, -0.00049399, 0.00030267, 7.27249202, 0.99849088, 0.99920334, 0.49320625],6302 [ -6.27298620, -0.00049391, 0.00030262, 7.27249229, 0.99849112, 0.99920347, 0.49320640],6303 [ -6.27298639, -0.00049384, 0.00030257, 7.27249255, 0.99849136, 0.99920360, 0.49320640],6304 [ -6.27298658, -0.00049376, 0.00030252, 7.27249282, 0.99849161, 0.99920372, 0.49320636],6305 [ -6.27298677, -0.00049368, 0.00030247, 7.27249309, 0.99849185, 0.99920385, 0.49320641],6306 [ -6.27298695, -0.00049360, 0.00030242, 7.27249336, 0.99849209, 0.99920398, 0.49320644],6307 [ -6.27298714, -0.00049352, 0.00030238, 7.27249362, 0.99849233, 0.99920410, 0.49320643],6308 [ -6.27298733, -0.00049344, 0.00030233, 7.27249389, 0.99849257, 0.99920423, 0.49320647],6309 [ -6.27298752, -0.00049336, 0.00030228, 7.27249416, 0.99849281, 0.99920436, 0.49320649],6310 [ -6.27298771, -0.00049328, 0.00030223, 7.27249442, 0.99849305, 0.99920448, 0.49320659],6311 [ -6.27298790, -0.00049321, 0.00030218, 7.27249469, 0.99849329, 0.99920461, 0.49320657],6312 [ -6.27298808, -0.00049313, 0.00030214, 7.27249496, 0.99849353, 0.99920474, 0.49320661],6313 [ -6.27298827, -0.00049305, 0.00030209, 7.27249522, 0.99849377, 0.99920486, 0.49320660],6314 [ -6.27298846, -0.00049297, 0.00030204, 7.27249549, 0.99849401, 0.99920499, 0.49320663],6315 [ -6.27298865, -0.00049289, 0.00030199, 7.27249576, 0.99849425, 0.99920512, 0.49320673],6316 [ -6.27298883, -0.00049281, 0.00030194, 7.27249602, 0.99849449, 0.99920524, 0.49320673],6317 [ -6.27298902, -0.00049273, 0.00030189, 7.27249629, 0.99849473, 0.99920537, 0.49320669],6318 [ -6.27298921, -0.00049266, 0.00030185, 7.27249655, 0.99849497, 0.99920550, 0.49320677],6319 [ -6.27298940, -0.00049258, 0.00030180, 7.27249682, 0.99849521, 0.99920562, 0.49320680],6320 [ -6.27298959, -0.00049250, 0.00030175, 7.27249709, 0.99849545, 0.99920575, 0.49320687],6321 [ -6.27298977, -0.00049242, 0.00030170, 7.27249735, 0.99849569, 0.99920588, 0.49320693],6322 [ -6.27298996, -0.00049234, 0.00030165, 7.27249762, 0.99849593, 0.99920600, 0.49320681],6323 [ -6.27299015, -0.00049226, 0.00030161, 7.27249788, 0.99849616, 0.99920613, 0.49320699],6324 [ -6.27299033, -0.00049219, 0.00030156, 7.27249815, 0.99849640, 0.99920626, 0.49320687],6325 [ -6.27299052, -0.00049211, 0.00030151, 7.27249841, 0.99849664, 0.99920638, 0.49320699],6326 [ -6.27299071, -0.00049203, 0.00030146, 7.27249868, 0.99849688, 0.99920651, 0.49320705],6327 [ -6.27299090, -0.00049195, 0.00030141, 7.27249894, 0.99849712, 0.99920663, 0.49320709],6328 [ -6.27299108, -0.00049187, 0.00030137, 7.27249921, 0.99849736, 0.99920676, 0.49320704],6329 [ -6.27299127, -0.00049180, 0.00030132, 7.27249948, 0.99849760, 0.99920689, 0.49320700],6330 [ -6.27299146, -0.00049172, 0.00030127, 7.27249974, 0.99849784, 0.99920701, 0.49320709],6331 [ -6.27299164, -0.00049164, 0.00030122, 7.27250001, 0.99849808, 0.99920714, 0.49320722],6332 [ -6.27299183, -0.00049156, 0.00030118, 7.27250027, 0.99849831, 0.99920726, 0.49320713],6333 [ -6.27299202, -0.00049148, 0.00030113, 7.27250053, 0.99849855, 0.99920739, 0.49320717],6334 [ -6.27299220, -0.00049140, 0.00030108, 7.27250080, 0.99849879, 0.99920752, 0.49320720],6335 [ -6.27299239, -0.00049133, 0.00030103, 7.27250106, 0.99849903, 0.99920764, 0.49320724],6336 [ -6.27299258, -0.00049125, 0.00030098, 7.27250133, 0.99849927, 0.99920777, 0.49320731],6337 [ -6.27299276, -0.00049117, 0.00030094, 7.27250159, 0.99849951, 0.99920789, 0.49320733],6338 [ -6.27299295, -0.00049109, 0.00030089, 7.27250186, 0.99849974, 0.99920802, 0.49320736],6339 [ -6.27299314, -0.00049102, 0.00030084, 7.27250212, 0.99849998, 0.99920814, 0.49320742],6340 [ -6.27299332, -0.00049094, 0.00030079, 7.27250239, 0.99850022, 0.99920827, 0.49320737],6341 [ -6.27299351, -0.00049086, 0.00030075, 7.27250265, 0.99850046, 0.99920840, 0.49320741],6342 [ -6.27299370, -0.00049078, 0.00030070, 7.27250291, 0.99850070, 0.99920852, 0.49320747],6343 [ -6.27299388, -0.00049070, 0.00030065, 7.27250318, 0.99850093, 0.99920865, 0.49320746],6344 [ -6.27299407, -0.00049063, 0.00030060, 7.27250344, 0.99850117, 0.99920877, 0.49320747],6345 [ -6.27299425, -0.00049055, 0.00030055, 7.27250371, 0.99850141, 0.99920890, 0.49320753],6346 [ -6.27299444, -0.00049047, 0.00030051, 7.27250397, 0.99850165, 0.99920902, 0.49320754],6347 [ -6.27299463, -0.00049039, 0.00030046, 7.27250423, 0.99850188, 0.99920915, 0.49320761],6348 [ -6.27299481, -0.00049032, 0.00030041, 7.27250450, 0.99850212, 0.99920927, 0.49320761],6349 [ -6.27299500, -0.00049024, 0.00030036, 7.27250476, 0.99850236, 0.99920940, 0.49320763],6350 [ -6.27299518, -0.00049016, 0.00030032, 7.27250502, 0.99850260, 0.99920952, 0.49320763],6351 [ -6.27299537, -0.00049008, 0.00030027, 7.27250529, 0.99850283, 0.99920965, 0.49320764],6352 [ -6.27299556, -0.00049000, 0.00030022, 7.27250555, 0.99850307, 0.99920977, 0.49320768],6353 [ -6.27299574, -0.00048993, 0.00030017, 7.27250581, 0.99850331, 0.99920990, 0.49320774],6354 [ -6.27299593, -0.00048985, 0.00030013, 7.27250608, 0.99850354, 0.99921002, 0.49320770],6355 [ -6.27299611, -0.00048977, 0.00030008, 7.27250634, 0.99850378, 0.99921015, 0.49320782],6356 [ -6.27299630, -0.00048969, 0.00030003, 7.27250660, 0.99850402, 0.99921027, 0.49320781],6357 [ -6.27299648, -0.00048962, 0.00029998, 7.27250687, 0.99850426, 0.99921040, 0.49320784],6358 [ -6.27299667, -0.00048954, 0.00029994, 7.27250713, 0.99850449, 0.99921052, 0.49320787],6359 [ -6.27299685, -0.00048946, 0.00029989, 7.27250739, 0.99850473, 0.99921065, 0.49320791],6360 [ -6.27299704, -0.00048938, 0.00029984, 7.27250765, 0.99850496, 0.99921077, 0.49320794],6361 [ -6.27299722, -0.00048931, 0.00029979, 7.27250792, 0.99850520, 0.99921090, 0.49320795],6362 [ -6.27299741, -0.00048923, 0.00029975, 7.27250818, 0.99850544, 0.99921102, 0.49320801],6363 [ -6.27299759, -0.00048915, 0.00029970, 7.27250844, 0.99850567, 0.99921115, 0.49320802],6364 [ -6.27299778, -0.00048908, 0.00029965, 7.27250870, 0.99850591, 0.99921127, 0.49320805],6365 [ -6.27299796, -0.00048900, 0.00029960, 7.27250896, 0.99850615, 0.99921140, 0.49320810],6366 [ -6.27299815, -0.00048892, 0.00029956, 7.27250923, 0.99850638, 0.99921152, 0.49320806],6367 [ -6.27299833, -0.00048884, 0.00029951, 7.27250949, 0.99850662, 0.99921165, 0.49320815],6368 [ -6.27299852, -0.00048877, 0.00029946, 7.27250975, 0.99850685, 0.99921177, 0.49320816],6369 [ -6.27299870, -0.00048869, 0.00029941, 7.27251001, 0.99850709, 0.99921190, 0.49320817],6370 [ -6.27299889, -0.00048861, 0.00029937, 7.27251027, 0.99850733, 0.99921202, 0.49320820],6371 [ -6.27299907, -0.00048854, 0.00029932, 7.27251054, 0.99850756, 0.99921214, 0.49320826],6372 [ -6.27299926, -0.00048846, 0.00029927, 7.27251080, 0.99850780, 0.99921227, 0.49320827],6373 [ -6.27299944, -0.00048838, 0.00029923, 7.27251106, 0.99850803, 0.99921239, 0.49320823],6374 [ -6.27299962, -0.00048830, 0.00029918, 7.27251132, 0.99850827, 0.99921252, 0.49320833],6375 [ -6.27299981, -0.00048823, 0.00029913, 7.27251158, 0.99850850, 0.99921264, 0.49320833],6376 [ -6.27299999, -0.00048815, 0.00029908, 7.27251184, 0.99850874, 0.99921277, 0.49320839],6377 [ -6.27300018, -0.00048807, 0.00029904, 7.27251210, 0.99850897, 0.99921289, 0.49320841],6378 [ -6.27300036, -0.00048800, 0.00029899, 7.27251236, 0.99850921, 0.99921301, 0.49320850],6379 [ -6.27300055, -0.00048792, 0.00029894, 7.27251263, 0.99850944, 0.99921314, 0.49320846],6380 [ -6.27300073, -0.00048784, 0.00029890, 7.27251289, 0.99850968, 0.99921326, 0.49320848],6381 [ -6.27300091, -0.00048777, 0.00029885, 7.27251315, 0.99850991, 0.99921339, 0.49320847],6382 [ -6.27300110, -0.00048769, 0.00029880, 7.27251341, 0.99851015, 0.99921351, 0.49320858],6383 [ -6.27300128, -0.00048761, 0.00029875, 7.27251367, 0.99851038, 0.99921363, 0.49320864],6384 [ -6.27300146, -0.00048754, 0.00029871, 7.27251393, 0.99851062, 0.99921376, 0.49320855],6385 [ -6.27300165, -0.00048746, 0.00029866, 7.27251419, 0.99851085, 0.99921388, 0.49320856],6386 [ -6.27300183, -0.00048738, 0.00029861, 7.27251445, 0.99851109, 0.99921401, 0.49320863],6387 [ -6.27300202, -0.00048730, 0.00029857, 7.27251471, 0.99851132, 0.99921413, 0.49320867],6388 [ -6.27300220, -0.00048723, 0.00029852, 7.27251497, 0.99851156, 0.99921425, 0.49320861],6389 [ -6.27300238, -0.00048715, 0.00029847, 7.27251523, 0.99851179, 0.99921438, 0.49320874],6390 [ -6.27300257, -0.00048707, 0.00029842, 7.27251549, 0.99851202, 0.99921450, 0.49320874],6391 [ -6.27300275, -0.00048700, 0.00029838, 7.27251575, 0.99851226, 0.99921462, 0.49320881],6392 [ -6.27300293, -0.00048692, 0.00029833, 7.27251601, 0.99851249, 0.99921475, 0.49320880],6393 [ -6.27300312, -0.00048685, 0.00029828, 7.27251627, 0.99851273, 0.99921487, 0.49320887],6394 [ -6.27300330, -0.00048677, 0.00029824, 7.27251653, 0.99851296, 0.99921499, 0.49320886],6395 [ -6.27300348, -0.00048669, 0.00029819, 7.27251679, 0.99851320, 0.99921512, 0.49320893],6396 [ -6.27300367, -0.00048662, 0.00029814, 7.27251705, 0.99851343, 0.99921524, 0.49320893],6397 [ -6.27300385, -0.00048654, 0.00029810, 7.27251731, 0.99851366, 0.99921536, 0.49320895],6398 [ -6.27300403, -0.00048646, 0.00029805, 7.27251757, 0.99851390, 0.99921549, 0.49320892],6399 [ -6.27300421, -0.00048639, 0.00029800, 7.27251783, 0.99851413, 0.99921561, 0.49320898],6400 [ -6.27300440, -0.00048631, 0.00029796, 7.27251809, 0.99851436, 0.99921573, 0.49320901],6401 [ -6.27300458, -0.00048623, 0.00029791, 7.27251835, 0.99851460, 0.99921586, 0.49320901],6402 [ -6.27300476, -0.00048616, 0.00029786, 7.27251861, 0.99851483, 0.99921598, 0.49320912],6403 [ -6.27300495, -0.00048608, 0.00029782, 7.27251886, 0.99851506, 0.99921610, 0.49320910],6404 [ -6.27300513, -0.00048600, 0.00029777, 7.27251912, 0.99851530, 0.99921623, 0.49320913],6405 [ -6.27300531, -0.00048593, 0.00029772, 7.27251938, 0.99851553, 0.99921635, 0.49320917],6406 [ -6.27300549, -0.00048585, 0.00029768, 7.27251964, 0.99851576, 0.99921647, 0.49320916],6407 [ -6.27300568, -0.00048578, 0.00029763, 7.27251990, 0.99851600, 0.99921660, 0.49320920],6408 [ -6.27300586, -0.00048570, 0.00029758, 7.27252016, 0.99851623, 0.99921672, 0.49320924],6409 [ -6.27300604, -0.00048562, 0.00029753, 7.27252042, 0.99851646, 0.99921684, 0.49320926],6410 [ -6.27300622, -0.00048555, 0.00029749, 7.27252068, 0.99851669, 0.99921696, 0.49320930],6411 [ -6.27300640, -0.00048547, 0.00029744, 7.27252093, 0.99851693, 0.99921709, 0.49320931],6412 [ -6.27300659, -0.00048539, 0.00029739, 7.27252119, 0.99851716, 0.99921721, 0.49320938],6413 [ -6.27300677, -0.00048532, 0.00029735, 7.27252145, 0.99851739, 0.99921733, 0.49320939],6414 [ -6.27300695, -0.00048524, 0.00029730, 7.27252171, 0.99851763, 0.99921746, 0.49320948],6415 [ -6.27300713, -0.00048517, 0.00029725, 7.27252197, 0.99851786, 0.99921758, 0.49320954],6416 [ -6.27300732, -0.00048509, 0.00029721, 7.27252222, 0.99851809, 0.99921770, 0.49320950],6417 [ -6.27300750, -0.00048501, 0.00029716, 7.27252248, 0.99851832, 0.99921782, 0.49320952],6418 [ -6.27300768, -0.00048494, 0.00029712, 7.27252274, 0.99851855, 0.99921795, 0.49320954],6419 [ -6.27300786, -0.00048486, 0.00029707, 7.27252300, 0.99851879, 0.99921807, 0.49320960],6420 [ -6.27300804, -0.00048479, 0.00029702, 7.27252326, 0.99851902, 0.99921819, 0.49320959],6421 [ -6.27300822, -0.00048471, 0.00029698, 7.27252351, 0.99851925, 0.99921831, 0.49320958],6422 [ -6.27300841, -0.00048463, 0.00029693, 7.27252377, 0.99851948, 0.99921844, 0.49320965],6423 [ -6.27300859, -0.00048456, 0.00029688, 7.27252403, 0.99851971, 0.99921856, 0.49320967],6424 [ -6.27300877, -0.00048448, 0.00029684, 7.27252429, 0.99851995, 0.99921868, 0.49320972],6425 [ -6.27300895, -0.00048441, 0.00029679, 7.27252454, 0.99852018, 0.99921880, 0.49320973],6426 [ -6.27300913, -0.00048433, 0.00029674, 7.27252480, 0.99852041, 0.99921893, 0.49320972],6427 [ -6.27300931, -0.00048426, 0.00029670, 7.27252506, 0.99852064, 0.99921905, 0.49320980],6428 [ -6.27300949, -0.00048418, 0.00029665, 7.27252531, 0.99852087, 0.99921917, 0.49320981],6429 [ -6.27300968, -0.00048410, 0.00029660, 7.27252557, 0.99852110, 0.99921929, 0.49320974],6430 [ -6.27300986, -0.00048403, 0.00029656, 7.27252583, 0.99852134, 0.99921941, 0.49320985],6431 [ -6.27301004, -0.00048395, 0.00029651, 7.27252608, 0.99852157, 0.99921954, 0.49320992],6432 [ -6.27301022, -0.00048388, 0.00029646, 7.27252634, 0.99852180, 0.99921966, 0.49320992],6433 [ -6.27301040, -0.00048380, 0.00029642, 7.27252660, 0.99852203, 0.99921978, 0.49320993],6434 [ -6.27301058, -0.00048373, 0.00029637, 7.27252685, 0.99852226, 0.99921990, 0.49320993],6435 [ -6.27301076, -0.00048365, 0.00029633, 7.27252711, 0.99852249, 0.99922002, 0.49321001],6436 [ -6.27301094, -0.00048357, 0.00029628, 7.27252737, 0.99852272, 0.99922015, 0.49321003],6437 [ -6.27301112, -0.00048350, 0.00029623, 7.27252762, 0.99852295, 0.99922027, 0.49321005],6438 [ -6.27301130, -0.00048342, 0.00029619, 7.27252788, 0.99852318, 0.99922039, 0.49321008],6439 [ -6.27301148, -0.00048335, 0.00029614, 7.27252814, 0.99852341, 0.99922051, 0.49321008],6440 [ -6.27301166, -0.00048327, 0.00029609, 7.27252839, 0.99852364, 0.99922063, 0.49321010],6441 [ -6.27301185, -0.00048320, 0.00029605, 7.27252865, 0.99852388, 0.99922075, 0.49321017],6442 [ -6.27301203, -0.00048312, 0.00029600, 7.27252890, 0.99852411, 0.99922088, 0.49321023],6443 [ -6.27301221, -0.00048305, 0.00029596, 7.27252916, 0.99852434, 0.99922100, 0.49321020],6444 [ -6.27301239, -0.00048297, 0.00029591, 7.27252942, 0.99852457, 0.99922112, 0.49321023],6445 [ -6.27301257, -0.00048290, 0.00029586, 7.27252967, 0.99852480, 0.99922124, 0.49321024],6446 [ -6.27301275, -0.00048282, 0.00029582, 7.27252993, 0.99852503, 0.99922136, 0.49321030],6447 [ -6.27301293, -0.00048275, 0.00029577, 7.27253018, 0.99852526, 0.99922148, 0.49321031],6448 [ -6.27301311, -0.00048267, 0.00029572, 7.27253044, 0.99852549, 0.99922161, 0.49321030],6449 [ -6.27301329, -0.00048259, 0.00029568, 7.27253069, 0.99852572, 0.99922173, 0.49321030],6450 [ -6.27301347, -0.00048252, 0.00029563, 7.27253095, 0.99852595, 0.99922185, 0.49321039],6451 [ -6.27301365, -0.00048244, 0.00029559, 7.27253120, 0.99852618, 0.99922197, 0.49321037],6452 [ -6.27301383, -0.00048237, 0.00029554, 7.27253146, 0.99852641, 0.99922209, 0.49321046],6453 [ -6.27301401, -0.00048229, 0.00029549, 7.27253171, 0.99852664, 0.99922221, 0.49321048],6454 [ -6.27301419, -0.00048222, 0.00029545, 7.27253197, 0.99852687, 0.99922233, 0.49321049],6455 [ -6.27301437, -0.00048214, 0.00029540, 7.27253222, 0.99852710, 0.99922245, 0.49321046],6456 [ -6.27301455, -0.00048207, 0.00029536, 7.27253248, 0.99852732, 0.99922258, 0.49321053],6457 [ -6.27301473, -0.00048199, 0.00029531, 7.27253273, 0.99852755, 0.99922270, 0.49321060],6458 [ -6.27301491, -0.00048192, 0.00029526, 7.27253299, 0.99852778, 0.99922282, 0.49321066],6459 [ -6.27301509, -0.00048184, 0.00029522, 7.27253324, 0.99852801, 0.99922294, 0.49321062],6460 [ -6.27301526, -0.00048177, 0.00029517, 7.27253350, 0.99852824, 0.99922306, 0.49321065],6461 [ -6.27301544, -0.00048169, 0.00029513, 7.27253375, 0.99852847, 0.99922318, 0.49321069],6462 [ -6.27301562, -0.00048162, 0.00029508, 7.27253400, 0.99852870, 0.99922330, 0.49321066],6463 [ -6.27301580, -0.00048154, 0.00029503, 7.27253426, 0.99852893, 0.99922342, 0.49321075],6464 [ -6.27301598, -0.00048147, 0.00029499, 7.27253451, 0.99852916, 0.99922354, 0.49321074],6465 [ -6.27301616, -0.00048139, 0.00029494, 7.27253477, 0.99852939, 0.99922366, 0.49321082],6466 [ -6.27301634, -0.00048132, 0.00029490, 7.27253502, 0.99852962, 0.99922378, 0.49321081],6467 [ -6.27301652, -0.00048124, 0.00029485, 7.27253528, 0.99852984, 0.99922391, 0.49321083],6468 [ -6.27301670, -0.00048117, 0.00029480, 7.27253553, 0.99853007, 0.99922403, 0.49321094],6469 [ -6.27301688, -0.00048109, 0.00029476, 7.27253578, 0.99853030, 0.99922415, 0.49321096],6470 [ -6.27301706, -0.00048102, 0.00029471, 7.27253604, 0.99853053, 0.99922427, 0.49321093],6471 [ -6.27301724, -0.00048095, 0.00029467, 7.27253629, 0.99853076, 0.99922439, 0.49321094],6472 [ -6.27301741, -0.00048087, 0.00029462, 7.27253654, 0.99853099, 0.99922451, 0.49321098],6473 [ -6.27301759, -0.00048080, 0.00029458, 7.27253680, 0.99853121, 0.99922463, 0.49321102],6474 [ -6.27301777, -0.00048072, 0.00029453, 7.27253705, 0.99853144, 0.99922475, 0.49321101],6475 [ -6.27301795, -0.00048065, 0.00029448, 7.27253730, 0.99853167, 0.99922487, 0.49321109],6476 [ -6.27301813, -0.00048057, 0.00029444, 7.27253756, 0.99853190, 0.99922499, 0.49321107],6477 [ -6.27301831, -0.00048050, 0.00029439, 7.27253781, 0.99853213, 0.99922511, 0.49321107],6478 [ -6.27301849, -0.00048042, 0.00029435, 7.27253806, 0.99853235, 0.99922523, 0.49321110],6479 [ -6.27301866, -0.00048035, 0.00029430, 7.27253832, 0.99853258, 0.99922535, 0.49321118],6480 [ -6.27301884, -0.00048027, 0.00029426, 7.27253857, 0.99853281, 0.99922547, 0.49321119],6481 [ -6.27301902, -0.00048020, 0.00029421, 7.27253882, 0.99853304, 0.99922559, 0.49321116],6482 [ -6.27301920, -0.00048012, 0.00029416, 7.27253907, 0.99853327, 0.99922571, 0.49321127],6483 [ -6.27301938, -0.00048005, 0.00029412, 7.27253933, 0.99853349, 0.99922583, 0.49321123],6484 [ -6.27301956, -0.00047998, 0.00029407, 7.27253958, 0.99853372, 0.99922595, 0.49321129],6485 [ -6.27301973, -0.00047990, 0.00029403, 7.27253983, 0.99853395, 0.99922607, 0.49321135],6486 [ -6.27301991, -0.00047983, 0.00029398, 7.27254008, 0.99853418, 0.99922619, 0.49321135],6487 [ -6.27302009, -0.00047975, 0.00029394, 7.27254034, 0.99853440, 0.99922631, 0.49321139],6488 [ -6.27302027, -0.00047968, 0.00029389, 7.27254059, 0.99853463, 0.99922643, 0.49321146],6489 [ -6.27302044, -0.00047960, 0.00029384, 7.27254084, 0.99853486, 0.99922655, 0.49321142],6490 [ -6.27302062, -0.00047953, 0.00029380, 7.27254109, 0.99853508, 0.99922667, 0.49321144],6491 [ -6.27302080, -0.00047946, 0.00029375, 7.27254135, 0.99853531, 0.99922679, 0.49321144],6492 [ -6.27302098, -0.00047938, 0.00029371, 7.27254160, 0.99853554, 0.99922691, 0.49321157],6493 [ -6.27302116, -0.00047931, 0.00029366, 7.27254185, 0.99853577, 0.99922703, 0.49321152],6494 [ -6.27302133, -0.00047923, 0.00029362, 7.27254210, 0.99853599, 0.99922715, 0.49321153],6495 [ -6.27302151, -0.00047916, 0.00029357, 7.27254235, 0.99853622, 0.99922727, 0.49321157],6496 [ -6.27302169, -0.00047908, 0.00029353, 7.27254260, 0.99853645, 0.99922739, 0.49321160],6497 [ -6.27302187, -0.00047901, 0.00029348, 7.27254286, 0.99853667, 0.99922751, 0.49321170],6498 [ -6.27302204, -0.00047894, 0.00029344, 7.27254311, 0.99853690, 0.99922763, 0.49321172],6499 [ -6.27302222, -0.00047886, 0.00029339, 7.27254336, 0.99853712, 0.99922775, 0.49321163],6500 [ -6.27302240, -0.00047879, 0.00029334, 7.27254361, 0.99853735, 0.99922787, 0.49321166],6501 [ -6.27302257, -0.00047871, 0.00029330, 7.27254386, 0.99853758, 0.99922799, 0.49321175],6502 [ -6.27302275, -0.00047864, 0.00029325, 7.27254411, 0.99853780, 0.99922811, 0.49321177],6503 [ -6.27302293, -0.00047857, 0.00029321, 7.27254436, 0.99853803, 0.99922823, 0.49321185],6504 [ -6.27302311, -0.00047849, 0.00029316, 7.27254461, 0.99853826, 0.99922834, 0.49321182],6505 [ -6.27302328, -0.00047842, 0.00029312, 7.27254486, 0.99853848, 0.99922846, 0.49321190],6506 [ -6.27302346, -0.00047834, 0.00029307, 7.27254512, 0.99853871, 0.99922858, 0.49321191],6507 [ -6.27302364, -0.00047827, 0.00029303, 7.27254537, 0.99853893, 0.99922870, 0.49321187],6508 [ -6.27302381, -0.00047820, 0.00029298, 7.27254562, 0.99853916, 0.99922882, 0.49321186],6509 [ -6.27302399, -0.00047812, 0.00029294, 7.27254587, 0.99853939, 0.99922894, 0.49321193],6510 [ -6.27302417, -0.00047805, 0.00029289, 7.27254612, 0.99853961, 0.99922906, 0.49321201],6511 [ -6.27302434, -0.00047797, 0.00029285, 7.27254637, 0.99853984, 0.99922918, 0.49321205],6512 [ -6.27302452, -0.00047790, 0.00029280, 7.27254662, 0.99854006, 0.99922930, 0.49321210],6513 [ -6.27302470, -0.00047783, 0.00029276, 7.27254687, 0.99854029, 0.99922942, 0.49321211],6514 [ -6.27302487, -0.00047775, 0.00029271, 7.27254712, 0.99854051, 0.99922954, 0.49321206],6515 [ -6.27302505, -0.00047768, 0.00029267, 7.27254737, 0.99854074, 0.99922965, 0.49321212],6516 [ -6.27302523, -0.00047761, 0.00029262, 7.27254762, 0.99854096, 0.99922977, 0.49321212],6517 [ -6.27302540, -0.00047753, 0.00029257, 7.27254787, 0.99854119, 0.99922989, 0.49321221],6518 [ -6.27302558, -0.00047746, 0.00029253, 7.27254812, 0.99854141, 0.99923001, 0.49321218],6519 [ -6.27302575, -0.00047739, 0.00029248, 7.27254837, 0.99854164, 0.99923013, 0.49321223],6520 [ -6.27302593, -0.00047731, 0.00029244, 7.27254862, 0.99854186, 0.99923025, 0.49321227],6521 [ -6.27302611, -0.00047724, 0.00029239, 7.27254887, 0.99854209, 0.99923037, 0.49321227],6522 [ -6.27302628, -0.00047716, 0.00029235, 7.27254912, 0.99854231, 0.99923049, 0.49321226],6523 [ -6.27302646, -0.00047709, 0.00029230, 7.27254937, 0.99854254, 0.99923060, 0.49321229],6524 [ -6.27302664, -0.00047702, 0.00029226, 7.27254962, 0.99854276, 0.99923072, 0.49321232],6525 [ -6.27302681, -0.00047694, 0.00029221, 7.27254987, 0.99854299, 0.99923084, 0.49321239],6526 [ -6.27302699, -0.00047687, 0.00029217, 7.27255012, 0.99854321, 0.99923096, 0.49321240],6527 [ -6.27302716, -0.00047680, 0.00029212, 7.27255037, 0.99854344, 0.99923108, 0.49321246],6528 [ -6.27302734, -0.00047672, 0.00029208, 7.27255061, 0.99854366, 0.99923120, 0.49321244],6529 [ -6.27302751, -0.00047665, 0.00029203, 7.27255086, 0.99854388, 0.99923132, 0.49321242],6530 [ -6.27302769, -0.00047658, 0.00029199, 7.27255111, 0.99854411, 0.99923143, 0.49321242],6531 [ -6.27302787, -0.00047650, 0.00029194, 7.27255136, 0.99854433, 0.99923155, 0.49321258],6532 [ -6.27302804, -0.00047643, 0.00029190, 7.27255161, 0.99854456, 0.99923167, 0.49321251],6533 [ -6.27302822, -0.00047636, 0.00029185, 7.27255186, 0.99854478, 0.99923179, 0.49321261],6534 [ -6.27302839, -0.00047628, 0.00029181, 7.27255211, 0.99854501, 0.99923191, 0.49321264],6535 [ -6.27302857, -0.00047621, 0.00029176, 7.27255236, 0.99854523, 0.99923203, 0.49321265],6536 [ -6.27302874, -0.00047614, 0.00029172, 7.27255261, 0.99854545, 0.99923214, 0.49321268],6537 [ -6.27302892, -0.00047606, 0.00029167, 7.27255285, 0.99854568, 0.99923226, 0.49321269],6538 [ -6.27302909, -0.00047599, 0.00029163, 7.27255310, 0.99854590, 0.99923238, 0.49321277],6539 [ -6.27302927, -0.00047592, 0.00029158, 7.27255335, 0.99854612, 0.99923250, 0.49321272],6540 [ -6.27302944, -0.00047584, 0.00029154, 7.27255360, 0.99854635, 0.99923262, 0.49321278],6541 [ -6.27302962, -0.00047577, 0.00029150, 7.27255385, 0.99854657, 0.99923273, 0.49321287],6542 [ -6.27302979, -0.00047570, 0.00029145, 7.27255410, 0.99854679, 0.99923285, 0.49321280],6543 [ -6.27302997, -0.00047562, 0.00029141, 7.27255434, 0.99854702, 0.99923297, 0.49321291],6544 [ -6.27303014, -0.00047555, 0.00029136, 7.27255459, 0.99854724, 0.99923309, 0.49321279],6545 [ -6.27303032, -0.00047548, 0.00029132, 7.27255484, 0.99854746, 0.99923321, 0.49321284],6546 [ -6.27303049, -0.00047541, 0.00029127, 7.27255509, 0.99854769, 0.99923332, 0.49321288],6547 [ -6.27303067, -0.00047533, 0.00029123, 7.27255533, 0.99854791, 0.99923344, 0.49321294],6548 [ -6.27303084, -0.00047526, 0.00029118, 7.27255558, 0.99854813, 0.99923356, 0.49321292],6549 [ -6.27303102, -0.00047519, 0.00029114, 7.27255583, 0.99854836, 0.99923368, 0.49321300],6550 [ -6.27303119, -0.00047511, 0.00029109, 7.27255608, 0.99854858, 0.99923379, 0.49321302],6551 [ -6.27303137, -0.00047504, 0.00029105, 7.27255632, 0.99854880, 0.99923391, 0.49321303],6552 [ -6.27303154, -0.00047497, 0.00029100, 7.27255657, 0.99854903, 0.99923403, 0.49321311],6553 [ -6.27303171, -0.00047490, 0.00029096, 7.27255682, 0.99854925, 0.99923415, 0.49321311],6554 [ -6.27303189, -0.00047482, 0.00029091, 7.27255707, 0.99854947, 0.99923426, 0.49321315],6555 [ -6.27303206, -0.00047475, 0.00029087, 7.27255731, 0.99854969, 0.99923438, 0.49321319],6556 [ -6.27303224, -0.00047468, 0.00029082, 7.27255756, 0.99854992, 0.99923450, 0.49321317],6557 [ -6.27303241, -0.00047460, 0.00029078, 7.27255781, 0.99855014, 0.99923462, 0.49321321],6558 [ -6.27303259, -0.00047453, 0.00029073, 7.27255805, 0.99855036, 0.99923473, 0.49321326],6559 [ -6.27303276, -0.00047446, 0.00029069, 7.27255830, 0.99855058, 0.99923485, 0.49321318],6560 [ -6.27303293, -0.00047439, 0.00029065, 7.27255855, 0.99855081, 0.99923497, 0.49321326],6561 [ -6.27303311, -0.00047431, 0.00029060, 7.27255879, 0.99855103, 0.99923509, 0.49321333],6562 [ -6.27303328, -0.00047424, 0.00029056, 7.27255904, 0.99855125, 0.99923520, 0.49321333],6563 [ -6.27303345, -0.00047417, 0.00029051, 7.27255929, 0.99855147, 0.99923532, 0.49321344],6564 [ -6.27303363, -0.00047410, 0.00029047, 7.27255953, 0.99855169, 0.99923544, 0.49321337],6565 [ -6.27303380, -0.00047402, 0.00029042, 7.27255978, 0.99855192, 0.99923555, 0.49321345],6566 [ -6.27303398, -0.00047395, 0.00029038, 7.27256003, 0.99855214, 0.99923567, 0.49321337],6567 [ -6.27303415, -0.00047388, 0.00029033, 7.27256027, 0.99855236, 0.99923579, 0.49321344],6568 [ -6.27303432, -0.00047380, 0.00029029, 7.27256052, 0.99855258, 0.99923591, 0.49321346],6569 [ -6.27303450, -0.00047373, 0.00029025, 7.27256076, 0.99855280, 0.99923602, 0.49321354],6570 [ -6.27303467, -0.00047366, 0.00029020, 7.27256101, 0.99855302, 0.99923614, 0.49321353],6571 [ -6.27303484, -0.00047359, 0.00029016, 7.27256126, 0.99855325, 0.99923626, 0.49321361],6572 [ -6.27303502, -0.00047351, 0.00029011, 7.27256150, 0.99855347, 0.99923637, 0.49321358],6573 [ -6.27303519, -0.00047344, 0.00029007, 7.27256175, 0.99855369, 0.99923649, 0.49321363],6574 [ -6.27303536, -0.00047337, 0.00029002, 7.27256199, 0.99855391, 0.99923661, 0.49321367],6575 [ -6.27303554, -0.00047330, 0.00028998, 7.27256224, 0.99855413, 0.99923672, 0.49321364],6576 [ -6.27303571, -0.00047323, 0.00028993, 7.27256248, 0.99855435, 0.99923684, 0.49321377],6577 [ -6.27303588, -0.00047315, 0.00028989, 7.27256273, 0.99855457, 0.99923696, 0.49321375],6578 [ -6.27303606, -0.00047308, 0.00028985, 7.27256298, 0.99855479, 0.99923707, 0.49321379],6579 [ -6.27303623, -0.00047301, 0.00028980, 7.27256322, 0.99855501, 0.99923719, 0.49321377],6580 [ -6.27303640, -0.00047294, 0.00028976, 7.27256347, 0.99855524, 0.99923731, 0.49321372],6581 [ -6.27303658, -0.00047286, 0.00028971, 7.27256371, 0.99855546, 0.99923742, 0.49321383],6582 [ -6.27303675, -0.00047279, 0.00028967, 7.27256396, 0.99855568, 0.99923754, 0.49321384],6583 [ -6.27303692, -0.00047272, 0.00028962, 7.27256420, 0.99855590, 0.99923766, 0.49321394],6584 [ -6.27303709, -0.00047265, 0.00028958, 7.27256445, 0.99855612, 0.99923777, 0.49321386],6585 [ -6.27303727, -0.00047258, 0.00028954, 7.27256469, 0.99855634, 0.99923789, 0.49321390],6586 [ -6.27303744, -0.00047250, 0.00028949, 7.27256494, 0.99855656, 0.99923801, 0.49321401],6587 [ -6.27303761, -0.00047243, 0.00028945, 7.27256518, 0.99855678, 0.99923812, 0.49321394],6588 [ -6.27303778, -0.00047236, 0.00028940, 7.27256543, 0.99855700, 0.99923824, 0.49321395],6589 [ -6.27303796, -0.00047229, 0.00028936, 7.27256567, 0.99855722, 0.99923835, 0.49321400],6590 [ -6.27303813, -0.00047221, 0.00028931, 7.27256591, 0.99855744, 0.99923847, 0.49321392],6591 [ -6.27303830, -0.00047214, 0.00028927, 7.27256616, 0.99855766, 0.99923859, 0.49321409],6592 [ -6.27303847, -0.00047207, 0.00028923, 7.27256640, 0.99855788, 0.99923870, 0.49321404],6593 [ -6.27303865, -0.00047200, 0.00028918, 7.27256665, 0.99855810, 0.99923882, 0.49321416],6594 [ -6.27303882, -0.00047193, 0.00028914, 7.27256689, 0.99855832, 0.99923893, 0.49321409],6595 [ -6.27303899, -0.00047185, 0.00028909, 7.27256714, 0.99855854, 0.99923905, 0.49321418],6596 [ -6.27303916, -0.00047178, 0.00028905, 7.27256738, 0.99855876, 0.99923917, 0.49321418],6597 [ -6.27303933, -0.00047171, 0.00028901, 7.27256762, 0.99855898, 0.99923928, 0.49321424],6598 [ -6.27303951, -0.00047164, 0.00028896, 7.27256787, 0.99855920, 0.99923940, 0.49321434],6599 [ -6.27303968, -0.00047157, 0.00028892, 7.27256811, 0.99855942, 0.99923951, 0.49321431],6600 [ -6.27303985, -0.00047150, 0.00028887, 7.27256835, 0.99855964, 0.99923963, 0.49321429],6601 [ -6.27304002, -0.00047142, 0.00028883, 7.27256860, 0.99855986, 0.99923975, 0.49321428],6602 [ -6.27304019, -0.00047135, 0.00028879, 7.27256884, 0.99856008, 0.99923986, 0.49321434],6603 [ -6.27304037, -0.00047128, 0.00028874, 7.27256909, 0.99856030, 0.99923998, 0.49321435],6604 [ -6.27304054, -0.00047121, 0.00028870, 7.27256933, 0.99856052, 0.99924009, 0.49321437],6605 [ -6.27304071, -0.00047114, 0.00028865, 7.27256957, 0.99856073, 0.99924021, 0.49321446],6606 [ -6.27304088, -0.00047106, 0.00028861, 7.27256982, 0.99856095, 0.99924032, 0.49321442],6607 [ -6.27304105, -0.00047099, 0.00028857, 7.27257006, 0.99856117, 0.99924044, 0.49321442],6608 [ -6.27304122, -0.00047092, 0.00028852, 7.27257030, 0.99856139, 0.99924056, 0.49321451],6609 [ -6.27304139, -0.00047085, 0.00028848, 7.27257054, 0.99856161, 0.99924067, 0.49321455],6610 [ -6.27304157, -0.00047078, 0.00028843, 7.27257079, 0.99856183, 0.99924079, 0.49321455],6611 [ -6.27304174, -0.00047071, 0.00028839, 7.27257103, 0.99856205, 0.99924090, 0.49321459],6612 [ -6.27304191, -0.00047064, 0.00028835, 7.27257127, 0.99856227, 0.99924102, 0.49321464],6613 [ -6.27304208, -0.00047056, 0.00028830, 7.27257152, 0.99856249, 0.99924113, 0.49321460],6614 [ -6.27304225, -0.00047049, 0.00028826, 7.27257176, 0.99856270, 0.99924125, 0.49321463],6615 [ -6.27304242, -0.00047042, 0.00028822, 7.27257200, 0.99856292, 0.99924136, 0.49321476],6616 [ -6.27304259, -0.00047035, 0.00028817, 7.27257224, 0.99856314, 0.99924148, 0.49321475],6617 [ -6.27304276, -0.00047028, 0.00028813, 7.27257249, 0.99856336, 0.99924159, 0.49321471],6618 [ -6.27304294, -0.00047021, 0.00028808, 7.27257273, 0.99856358, 0.99924171, 0.49321475],6619 [ -6.27304311, -0.00047013, 0.00028804, 7.27257297, 0.99856380, 0.99924183, 0.49321476],6620 [ -6.27304328, -0.00047006, 0.00028800, 7.27257321, 0.99856401, 0.99924194, 0.49321484],6621 [ -6.27304345, -0.00046999, 0.00028795, 7.27257346, 0.99856423, 0.99924206, 0.49321477],6622 [ -6.27304362, -0.00046992, 0.00028791, 7.27257370, 0.99856445, 0.99924217, 0.49321483],6623 [ -6.27304379, -0.00046985, 0.00028787, 7.27257394, 0.99856467, 0.99924229, 0.49321495],6624 [ -6.27304396, -0.00046978, 0.00028782, 7.27257418, 0.99856489, 0.99924240, 0.49321491],6625 [ -6.27304413, -0.00046971, 0.00028778, 7.27257442, 0.99856510, 0.99924252, 0.49321493],6626 [ -6.27304430, -0.00046964, 0.00028773, 7.27257467, 0.99856532, 0.99924263, 0.49321498],6627 [ -6.27304447, -0.00046956, 0.00028769, 7.27257491, 0.99856554, 0.99924275, 0.49321496],6628 [ -6.27304464, -0.00046949, 0.00028765, 7.27257515, 0.99856576, 0.99924286, 0.49321502],6629 [ -6.27304481, -0.00046942, 0.00028760, 7.27257539, 0.99856597, 0.99924298, 0.49321503],6630 [ -6.27304498, -0.00046935, 0.00028756, 7.27257563, 0.99856619, 0.99924309, 0.49321507],6631 [ -6.27304515, -0.00046928, 0.00028752, 7.27257587, 0.99856641, 0.99924320, 0.49321515],6632 [ -6.27304532, -0.00046921, 0.00028747, 7.27257611, 0.99856663, 0.99924332, 0.49321508],6633 [ -6.27304549, -0.00046914, 0.00028743, 7.27257636, 0.99856684, 0.99924343, 0.49321514],6634 [ -6.27304566, -0.00046907, 0.00028738, 7.27257660, 0.99856706, 0.99924355, 0.49321526],6635 [ -6.27304583, -0.00046900, 0.00028734, 7.27257684, 0.99856728, 0.99924366, 0.49321521],6636 [ -6.27304600, -0.00046892, 0.00028730, 7.27257708, 0.99856750, 0.99924378, 0.49321521],6637 [ -6.27304617, -0.00046885, 0.00028725, 7.27257732, 0.99856771, 0.99924389, 0.49321523],6638 [ -6.27304634, -0.00046878, 0.00028721, 7.27257756, 0.99856793, 0.99924401, 0.49321526],6639 [ -6.27304651, -0.00046871, 0.00028717, 7.27257780, 0.99856815, 0.99924412, 0.49321530],6640 [ -6.27304668, -0.00046864, 0.00028712, 7.27257804, 0.99856836, 0.99924424, 0.49321535],6641 [ -6.27304685, -0.00046857, 0.00028708, 7.27257828, 0.99856858, 0.99924435, 0.49321541],6642 [ -6.27304702, -0.00046850, 0.00028704, 7.27257852, 0.99856880, 0.99924446, 0.49321529],6643 [ -6.27304719, -0.00046843, 0.00028699, 7.27257876, 0.99856901, 0.99924458, 0.49321541],6644 [ -6.27304736, -0.00046836, 0.00028695, 7.27257901, 0.99856923, 0.99924469, 0.49321535],6645 [ -6.27304753, -0.00046829, 0.00028691, 7.27257925, 0.99856945, 0.99924481, 0.49321543],6646 [ -6.27304770, -0.00046821, 0.00028686, 7.27257949, 0.99856966, 0.99924492, 0.49321548],6647 [ -6.27304787, -0.00046814, 0.00028682, 7.27257973, 0.99856988, 0.99924504, 0.49321551],6648 [ -6.27304804, -0.00046807, 0.00028678, 7.27257997, 0.99857010, 0.99924515, 0.49321545],6649 [ -6.27304821, -0.00046800, 0.00028673, 7.27258021, 0.99857031, 0.99924526, 0.49321554],6650 [ -6.27304838, -0.00046793, 0.00028669, 7.27258045, 0.99857053, 0.99924538, 0.49321557],6651 [ -6.27304855, -0.00046786, 0.00028665, 7.27258069, 0.99857074, 0.99924549, 0.49321561],6652 [ -6.27304872, -0.00046779, 0.00028660, 7.27258093, 0.99857096, 0.99924561, 0.49321567],6653 [ -6.27304889, -0.00046772, 0.00028656, 7.27258117, 0.99857118, 0.99924572, 0.49321567],6654 [ -6.27304906, -0.00046765, 0.00028652, 7.27258141, 0.99857139, 0.99924583, 0.49321571],6655 [ -6.27304922, -0.00046758, 0.00028647, 7.27258165, 0.99857161, 0.99924595, 0.49321566],6656 [ -6.27304939, -0.00046751, 0.00028643, 7.27258189, 0.99857182, 0.99924606, 0.49321576],6657 [ -6.27304956, -0.00046744, 0.00028639, 7.27258213, 0.99857204, 0.99924618, 0.49321567],6658 [ -6.27304973, -0.00046737, 0.00028634, 7.27258236, 0.99857226, 0.99924629, 0.49321585],6659 [ -6.27304990, -0.00046730, 0.00028630, 7.27258260, 0.99857247, 0.99924640, 0.49321576],6660 [ -6.27305007, -0.00046723, 0.00028626, 7.27258284, 0.99857269, 0.99924652, 0.49321581],6661 [ -6.27305024, -0.00046715, 0.00028621, 7.27258308, 0.99857290, 0.99924663, 0.49321580],6662 [ -6.27305041, -0.00046708, 0.00028617, 7.27258332, 0.99857312, 0.99924675, 0.49321590],6663 [ -6.27305057, -0.00046701, 0.00028613, 7.27258356, 0.99857333, 0.99924686, 0.49321582],6664 [ -6.27305074, -0.00046694, 0.00028608, 7.27258380, 0.99857355, 0.99924697, 0.49321587],6665 [ -6.27305091, -0.00046687, 0.00028604, 7.27258404, 0.99857376, 0.99924709, 0.49321595],6666 [ -6.27305108, -0.00046680, 0.00028600, 7.27258428, 0.99857398, 0.99924720, 0.49321595],6667 [ -6.27305125, -0.00046673, 0.00028595, 7.27258452, 0.99857419, 0.99924731, 0.49321600],6668 [ -6.27305142, -0.00046666, 0.00028591, 7.27258476, 0.99857441, 0.99924743, 0.49321598],6669 [ -6.27305159, -0.00046659, 0.00028587, 7.27258499, 0.99857462, 0.99924754, 0.49321613],6670 [ -6.27305175, -0.00046652, 0.00028582, 7.27258523, 0.99857484, 0.99924765, 0.49321611],6671 [ -6.27305192, -0.00046645, 0.00028578, 7.27258547, 0.99857505, 0.99924777, 0.49321600],6672 [ -6.27305209, -0.00046638, 0.00028574, 7.27258571, 0.99857527, 0.99924788, 0.49321621],6673 [ -6.27305226, -0.00046631, 0.00028570, 7.27258595, 0.99857548, 0.99924799, 0.49321615],6674 [ -6.27305243, -0.00046624, 0.00028565, 7.27258619, 0.99857570, 0.99924811, 0.49321620],6675 [ -6.27305259, -0.00046617, 0.00028561, 7.27258642, 0.99857591, 0.99924822, 0.49321625],6676 [ -6.27305276, -0.00046610, 0.00028557, 7.27258666, 0.99857613, 0.99924833, 0.49321621],6677 [ -6.27305293, -0.00046603, 0.00028552, 7.27258690, 0.99857634, 0.99924845, 0.49321630],6678 [ -6.27305310, -0.00046596, 0.00028548, 7.27258714, 0.99857656, 0.99924856, 0.49321623],6679 [ -6.27305327, -0.00046589, 0.00028544, 7.27258738, 0.99857677, 0.99924867, 0.49321633],6680 [ -6.27305343, -0.00046582, 0.00028539, 7.27258761, 0.99857698, 0.99924879, 0.49321637],6681 [ -6.27305360, -0.00046575, 0.00028535, 7.27258785, 0.99857720, 0.99924890, 0.49321640],6682 [ -6.27305377, -0.00046568, 0.00028531, 7.27258809, 0.99857741, 0.99924901, 0.49321641],6683 [ -6.27305394, -0.00046561, 0.00028527, 7.27258833, 0.99857763, 0.99924913, 0.49321644],6684 [ -6.27305410, -0.00046554, 0.00028522, 7.27258857, 0.99857784, 0.99924924, 0.49321640],6685 [ -6.27305427, -0.00046547, 0.00028518, 7.27258880, 0.99857805, 0.99924935, 0.49321644],6686 [ -6.27305444, -0.00046540, 0.00028514, 7.27258904, 0.99857827, 0.99924946, 0.49321647],6687 [ -6.27305461, -0.00046533, 0.00028509, 7.27258928, 0.99857848, 0.99924958, 0.49321655],6688 [ -6.27305477, -0.00046526, 0.00028505, 7.27258952, 0.99857870, 0.99924969, 0.49321652],6689 [ -6.27305494, -0.00046519, 0.00028501, 7.27258975, 0.99857891, 0.99924980, 0.49321651],6690 [ -6.27305511, -0.00046512, 0.00028497, 7.27258999, 0.99857912, 0.99924992, 0.49321656],6691 [ -6.27305528, -0.00046505, 0.00028492, 7.27259023, 0.99857934, 0.99925003, 0.49321656],6692 [ -6.27305544, -0.00046498, 0.00028488, 7.27259046, 0.99857955, 0.99925014, 0.49321665],6693 [ -6.27305561, -0.00046491, 0.00028484, 7.27259070, 0.99857976, 0.99925025, 0.49321668],6694 [ -6.27305578, -0.00046484, 0.00028479, 7.27259094, 0.99857998, 0.99925037, 0.49321665],6695 [ -6.27305594, -0.00046477, 0.00028475, 7.27259117, 0.99858019, 0.99925048, 0.49321672],6696 [ -6.27305611, -0.00046470, 0.00028471, 7.27259141, 0.99858040, 0.99925059, 0.49321675],6697 [ -6.27305628, -0.00046463, 0.00028467, 7.27259165, 0.99858062, 0.99925070, 0.49321677],6698 [ -6.27305645, -0.00046456, 0.00028462, 7.27259188, 0.99858083, 0.99925082, 0.49321675],6699 [ -6.27305661, -0.00046449, 0.00028458, 7.27259212, 0.99858104, 0.99925093, 0.49321677],6700 [ -6.27305678, -0.00046442, 0.00028454, 7.27259236, 0.99858126, 0.99925104, 0.49321687],6701 [ -6.27305695, -0.00046435, 0.00028449, 7.27259259, 0.99858147, 0.99925115, 0.49321692],6702 [ -6.27305711, -0.00046428, 0.00028445, 7.27259283, 0.99858168, 0.99925127, 0.49321690],6703 [ -6.27305728, -0.00046421, 0.00028441, 7.27259307, 0.99858189, 0.99925138, 0.49321690],6704 [ -6.27305745, -0.00046414, 0.00028437, 7.27259330, 0.99858211, 0.99925149, 0.49321703],6705 [ -6.27305761, -0.00046407, 0.00028432, 7.27259354, 0.99858232, 0.99925160, 0.49321695],6706 [ -6.27305778, -0.00046400, 0.00028428, 7.27259377, 0.99858253, 0.99925171, 0.49321702],6707 [ -6.27305795, -0.00046393, 0.00028424, 7.27259401, 0.99858275, 0.99925183, 0.49321702],6708 [ -6.27305811, -0.00046386, 0.00028420, 7.27259425, 0.99858296, 0.99925194, 0.49321707],6709 [ -6.27305828, -0.00046380, 0.00028415, 7.27259448, 0.99858317, 0.99925205, 0.49321711],6710 [ -6.27305844, -0.00046373, 0.00028411, 7.27259472, 0.99858338, 0.99925216, 0.49321702],6711 [ -6.27305861, -0.00046366, 0.00028407, 7.27259495, 0.99858359, 0.99925227, 0.49321714],6712 [ -6.27305878, -0.00046359, 0.00028403, 7.27259519, 0.99858381, 0.99925239, 0.49321714],6713 [ -6.27305894, -0.00046352, 0.00028398, 7.27259543, 0.99858402, 0.99925250, 0.49321712],6714 [ -6.27305911, -0.00046345, 0.00028394, 7.27259566, 0.99858423, 0.99925261, 0.49321724],6715 [ -6.27305927, -0.00046338, 0.00028390, 7.27259590, 0.99858444, 0.99925272, 0.49321723],6716 [ -6.27305944, -0.00046331, 0.00028386, 7.27259613, 0.99858465, 0.99925283, 0.49321718],6717 [ -6.27305961, -0.00046324, 0.00028381, 7.27259637, 0.99858487, 0.99925295, 0.49321725],6718 [ -6.27305977, -0.00046317, 0.00028377, 7.27259660, 0.99858508, 0.99925306, 0.49321729],6719 [ -6.27305994, -0.00046310, 0.00028373, 7.27259684, 0.99858529, 0.99925317, 0.49321728],6720 [ -6.27306010, -0.00046303, 0.00028369, 7.27259707, 0.99858550, 0.99925328, 0.49321728],6721 [ -6.27306027, -0.00046296, 0.00028364, 7.27259731, 0.99858571, 0.99925339, 0.49321738],6722 [ -6.27306044, -0.00046289, 0.00028360, 7.27259754, 0.99858593, 0.99925351, 0.49321730],6723 [ -6.27306060, -0.00046282, 0.00028356, 7.27259778, 0.99858614, 0.99925362, 0.49321736],6724 [ -6.27306077, -0.00046276, 0.00028352, 7.27259801, 0.99858635, 0.99925373, 0.49321743],6725 [ -6.27306093, -0.00046269, 0.00028347, 7.27259825, 0.99858656, 0.99925384, 0.49321740],6726 [ -6.27306110, -0.00046262, 0.00028343, 7.27259848, 0.99858677, 0.99925395, 0.49321757],6727 [ -6.27306126, -0.00046255, 0.00028339, 7.27259872, 0.99858698, 0.99925406, 0.49321754],6728 [ -6.27306143, -0.00046248, 0.00028335, 7.27259895, 0.99858719, 0.99925417, 0.49321760],6729 [ -6.27306159, -0.00046241, 0.00028330, 7.27259918, 0.99858740, 0.99925429, 0.49321757],6730 [ -6.27306176, -0.00046234, 0.00028326, 7.27259942, 0.99858762, 0.99925440, 0.49321761],6731 [ -6.27306192, -0.00046227, 0.00028322, 7.27259965, 0.99858783, 0.99925451, 0.49321757],6732 [ -6.27306209, -0.00046220, 0.00028318, 7.27259989, 0.99858804, 0.99925462, 0.49321764],6733 [ -6.27306225, -0.00046213, 0.00028314, 7.27260012, 0.99858825, 0.99925473, 0.49321769],6734 [ -6.27306242, -0.00046206, 0.00028309, 7.27260036, 0.99858846, 0.99925484, 0.49321767],6735 [ -6.27306259, -0.00046200, 0.00028305, 7.27260059, 0.99858867, 0.99925495, 0.49321773],6736 [ -6.27306275, -0.00046193, 0.00028301, 7.27260082, 0.99858888, 0.99925506, 0.49321772],6737 [ -6.27306292, -0.00046186, 0.00028297, 7.27260106, 0.99858909, 0.99925518, 0.49321771],6738 [ -6.27306308, -0.00046179, 0.00028292, 7.27260129, 0.99858930, 0.99925529, 0.49321779],6739 [ -6.27306324, -0.00046172, 0.00028288, 7.27260152, 0.99858951, 0.99925540, 0.49321779],6740 [ -6.27306341, -0.00046165, 0.00028284, 7.27260176, 0.99858972, 0.99925551, 0.49321780],6741 [ -6.27306357, -0.00046158, 0.00028280, 7.27260199, 0.99858993, 0.99925562, 0.49321791],6742 [ -6.27306374, -0.00046151, 0.00028275, 7.27260223, 0.99859014, 0.99925573, 0.49321791],6743 [ -6.27306390, -0.00046144, 0.00028271, 7.27260246, 0.99859035, 0.99925584, 0.49321788],6744 [ -6.27306407, -0.00046138, 0.00028267, 7.27260269, 0.99859056, 0.99925595, 0.49321791],6745 [ -6.27306423, -0.00046131, 0.00028263, 7.27260293, 0.99859077, 0.99925606, 0.49321799],6746 [ -6.27306440, -0.00046124, 0.00028259, 7.27260316, 0.99859098, 0.99925618, 0.49321795],6747 [ -6.27306456, -0.00046117, 0.00028254, 7.27260339, 0.99859119, 0.99925629, 0.49321797],6748 [ -6.27306473, -0.00046110, 0.00028250, 7.27260363, 0.99859140, 0.99925640, 0.49321800],6749 [ -6.27306489, -0.00046103, 0.00028246, 7.27260386, 0.99859161, 0.99925651, 0.49321804],6750 [ -6.27306505, -0.00046096, 0.00028242, 7.27260409, 0.99859182, 0.99925662, 0.49321800],6751 [ -6.27306522, -0.00046090, 0.00028238, 7.27260432, 0.99859203, 0.99925673, 0.49321804],6752 [ -6.27306538, -0.00046083, 0.00028233, 7.27260456, 0.99859224, 0.99925684, 0.49321806],6753 [ -6.27306555, -0.00046076, 0.00028229, 7.27260479, 0.99859245, 0.99925695, 0.49321814],6754 [ -6.27306571, -0.00046069, 0.00028225, 7.27260502, 0.99859266, 0.99925706, 0.49321818],6755 [ -6.27306588, -0.00046062, 0.00028221, 7.27260525, 0.99859287, 0.99925717, 0.49321811],6756 [ -6.27306604, -0.00046055, 0.00028217, 7.27260549, 0.99859308, 0.99925728, 0.49321821],6757 [ -6.27306620, -0.00046048, 0.00028212, 7.27260572, 0.99859329, 0.99925739, 0.49321828],6758 [ -6.27306637, -0.00046042, 0.00028208, 7.27260595, 0.99859350, 0.99925750, 0.49321829],6759 [ -6.27306653, -0.00046035, 0.00028204, 7.27260618, 0.99859371, 0.99925761, 0.49321826],6760 [ -6.27306670, -0.00046028, 0.00028200, 7.27260642, 0.99859392, 0.99925772, 0.49321833],6761 [ -6.27306686, -0.00046021, 0.00028196, 7.27260665, 0.99859413, 0.99925783, 0.49321833],6762 [ -6.27306702, -0.00046014, 0.00028191, 7.27260688, 0.99859434, 0.99925794, 0.49321830],6763 [ -6.27306719, -0.00046007, 0.00028187, 7.27260711, 0.99859455, 0.99925805, 0.49321842],6764 [ -6.27306735, -0.00046000, 0.00028183, 7.27260735, 0.99859475, 0.99925817, 0.49321838],6765 [ -6.27306751, -0.00045994, 0.00028179, 7.27260758, 0.99859496, 0.99925828, 0.49321849],6766 [ -6.27306768, -0.00045987, 0.00028175, 7.27260781, 0.99859517, 0.99925839, 0.49321848],6767 [ -6.27306784, -0.00045980, 0.00028170, 7.27260804, 0.99859538, 0.99925850, 0.49321848],6768 [ -6.27306800, -0.00045973, 0.00028166, 7.27260827, 0.99859559, 0.99925861, 0.49321852],6769 [ -6.27306817, -0.00045966, 0.00028162, 7.27260850, 0.99859580, 0.99925872, 0.49321855],6770 [ -6.27306833, -0.00045959, 0.00028158, 7.27260874, 0.99859601, 0.99925883, 0.49321849],6771 [ -6.27306849, -0.00045953, 0.00028154, 7.27260897, 0.99859622, 0.99925894, 0.49321861],6772 [ -6.27306866, -0.00045946, 0.00028150, 7.27260920, 0.99859642, 0.99925905, 0.49321858],6773 [ -6.27306882, -0.00045939, 0.00028145, 7.27260943, 0.99859663, 0.99925916, 0.49321869],6774 [ -6.27306898, -0.00045932, 0.00028141, 7.27260966, 0.99859684, 0.99925927, 0.49321873],6775 [ -6.27306915, -0.00045925, 0.00028137, 7.27260989, 0.99859705, 0.99925938, 0.49321868],6776 [ -6.27306931, -0.00045919, 0.00028133, 7.27261012, 0.99859726, 0.99925949, 0.49321872],6777 [ -6.27306947, -0.00045912, 0.00028129, 7.27261035, 0.99859746, 0.99925960, 0.49321879],6778 [ -6.27306964, -0.00045905, 0.00028124, 7.27261059, 0.99859767, 0.99925971, 0.49321873],6779 [ -6.27306980, -0.00045898, 0.00028120, 7.27261082, 0.99859788, 0.99925982, 0.49321881],6780 [ -6.27306996, -0.00045891, 0.00028116, 7.27261105, 0.99859809, 0.99925993, 0.49321869],6781 [ -6.27307012, -0.00045885, 0.00028112, 7.27261128, 0.99859830, 0.99926003, 0.49321889],6782 [ -6.27307029, -0.00045878, 0.00028108, 7.27261151, 0.99859850, 0.99926014, 0.49321883],6783 [ -6.27307045, -0.00045871, 0.00028104, 7.27261174, 0.99859871, 0.99926025, 0.49321889],6784 [ -6.27307061, -0.00045864, 0.00028099, 7.27261197, 0.99859892, 0.99926036, 0.49321886],6785 [ -6.27307078, -0.00045857, 0.00028095, 7.27261220, 0.99859913, 0.99926047, 0.49321894],6786 [ -6.27307094, -0.00045851, 0.00028091, 7.27261243, 0.99859934, 0.99926058, 0.49321894],6787 [ -6.27307110, -0.00045844, 0.00028087, 7.27261266, 0.99859954, 0.99926069, 0.49321891],6788 [ -6.27307126, -0.00045837, 0.00028083, 7.27261289, 0.99859975, 0.99926080, 0.49321907],6789 [ -6.27307142, -0.00045830, 0.00028079, 7.27261312, 0.99859996, 0.99926091, 0.49321892],6790 [ -6.27307159, -0.00045823, 0.00028074, 7.27261335, 0.99860016, 0.99926102, 0.49321904],6791 [ -6.27307175, -0.00045817, 0.00028070, 7.27261358, 0.99860037, 0.99926113, 0.49321907],6792 [ -6.27307191, -0.00045810, 0.00028066, 7.27261381, 0.99860058, 0.99926124, 0.49321903],6793 [ -6.27307207, -0.00045803, 0.00028062, 7.27261404, 0.99860079, 0.99926135, 0.49321912],6794 [ -6.27307224, -0.00045796, 0.00028058, 7.27261427, 0.99860099, 0.99926146, 0.49321912],6795 [ -6.27307240, -0.00045790, 0.00028054, 7.27261450, 0.99860120, 0.99926157, 0.49321912],6796 [ -6.27307256, -0.00045783, 0.00028050, 7.27261473, 0.99860141, 0.99926168, 0.49321924],6797 [ -6.27307272, -0.00045776, 0.00028045, 7.27261496, 0.99860161, 0.99926179, 0.49321924],6798 [ -6.27307288, -0.00045769, 0.00028041, 7.27261519, 0.99860182, 0.99926190, 0.49321921],6799 [ -6.27307305, -0.00045762, 0.00028037, 7.27261542, 0.99860203, 0.99926200, 0.49321927],6800 [ -6.27307321, -0.00045756, 0.00028033, 7.27261565, 0.99860223, 0.99926211, 0.49321925],6801 [ -6.27307337, -0.00045749, 0.00028029, 7.27261588, 0.99860244, 0.99926222, 0.49321926],6802 [ -6.27307353, -0.00045742, 0.00028025, 7.27261611, 0.99860265, 0.99926233, 0.49321932],6803 [ -6.27307369, -0.00045735, 0.00028021, 7.27261634, 0.99860285, 0.99926244, 0.49321935],6804 [ -6.27307386, -0.00045729, 0.00028016, 7.27261657, 0.99860306, 0.99926255, 0.49321931],6805 [ -6.27307402, -0.00045722, 0.00028012, 7.27261680, 0.99860327, 0.99926266, 0.49321940],6806 [ -6.27307418, -0.00045715, 0.00028008, 7.27261703, 0.99860347, 0.99926277, 0.49321940],6807 [ -6.27307434, -0.00045708, 0.00028004, 7.27261726, 0.99860368, 0.99926288, 0.49321938],6808 [ -6.27307450, -0.00045702, 0.00028000, 7.27261749, 0.99860389, 0.99926299, 0.49321955],6809 [ -6.27307466, -0.00045695, 0.00027996, 7.27261771, 0.99860409, 0.99926309, 0.49321946],6810 [ -6.27307482, -0.00045688, 0.00027992, 7.27261794, 0.99860430, 0.99926320, 0.49321952],6811 [ -6.27307499, -0.00045681, 0.00027987, 7.27261817, 0.99860450, 0.99926331, 0.49321956],6812 [ -6.27307515, -0.00045675, 0.00027983, 7.27261840, 0.99860471, 0.99926342, 0.49321950],6813 [ -6.27307531, -0.00045668, 0.00027979, 7.27261863, 0.99860492, 0.99926353, 0.49321959],6814 [ -6.27307547, -0.00045661, 0.00027975, 7.27261886, 0.99860512, 0.99926364, 0.49321954],6815 [ -6.27307563, -0.00045654, 0.00027971, 7.27261909, 0.99860533, 0.99926375, 0.49321964],6816 [ -6.27307579, -0.00045648, 0.00027967, 7.27261931, 0.99860553, 0.99926385, 0.49321960],6817 [ -6.27307595, -0.00045641, 0.00027963, 7.27261954, 0.99860574, 0.99926396, 0.49321972],6818 [ -6.27307611, -0.00045634, 0.00027959, 7.27261977, 0.99860595, 0.99926407, 0.49321973],6819 [ -6.27307628, -0.00045628, 0.00027954, 7.27262000, 0.99860615, 0.99926418, 0.49321968],6820 [ -6.27307644, -0.00045621, 0.00027950, 7.27262023, 0.99860636, 0.99926429, 0.49321967],6821 [ -6.27307660, -0.00045614, 0.00027946, 7.27262046, 0.99860656, 0.99926440, 0.49321972],6822 [ -6.27307676, -0.00045607, 0.00027942, 7.27262068, 0.99860677, 0.99926451, 0.49321981],6823 [ -6.27307692, -0.00045601, 0.00027938, 7.27262091, 0.99860697, 0.99926461, 0.49321979],6824 [ -6.27307708, -0.00045594, 0.00027934, 7.27262114, 0.99860718, 0.99926472, 0.49321986],6825 [ -6.27307724, -0.00045587, 0.00027930, 7.27262137, 0.99860738, 0.99926483, 0.49321988],6826 [ -6.27307740, -0.00045581, 0.00027926, 7.27262160, 0.99860759, 0.99926494, 0.49321990],6827 [ -6.27307756, -0.00045574, 0.00027921, 7.27262182, 0.99860779, 0.99926505, 0.49321998],6828 [ -6.27307772, -0.00045567, 0.00027917, 7.27262205, 0.99860800, 0.99926516, 0.49322003],6829 [ -6.27307788, -0.00045560, 0.00027913, 7.27262228, 0.99860820, 0.99926526, 0.49321994],6830 [ -6.27307804, -0.00045554, 0.00027909, 7.27262251, 0.99860841, 0.99926537, 0.49322002],6831 [ -6.27307820, -0.00045547, 0.00027905, 7.27262273, 0.99860861, 0.99926548, 0.49321999],6832 [ -6.27307836, -0.00045540, 0.00027901, 7.27262296, 0.99860882, 0.99926559, 0.49322005],6833 [ -6.27307852, -0.00045534, 0.00027897, 7.27262319, 0.99860902, 0.99926570, 0.49322007],6834 [ -6.27307868, -0.00045527, 0.00027893, 7.27262342, 0.99860923, 0.99926580, 0.49322002],6835 [ -6.27307884, -0.00045520, 0.00027889, 7.27262364, 0.99860943, 0.99926591, 0.49322013],6836 [ -6.27307900, -0.00045514, 0.00027884, 7.27262387, 0.99860964, 0.99926602, 0.49322009],6837 [ -6.27307916, -0.00045507, 0.00027880, 7.27262410, 0.99860984, 0.99926613, 0.49322010],6838 [ -6.27307932, -0.00045500, 0.00027876, 7.27262432, 0.99861004, 0.99926624, 0.49322020],6839 [ -6.27307949, -0.00045493, 0.00027872, 7.27262455, 0.99861025, 0.99926634, 0.49322020],6840 [ -6.27307964, -0.00045487, 0.00027868, 7.27262478, 0.99861045, 0.99926645, 0.49322021],6841 [ -6.27307980, -0.00045480, 0.00027864, 7.27262500, 0.99861066, 0.99926656, 0.49322031],6842 [ -6.27307996, -0.00045473, 0.00027860, 7.27262523, 0.99861086, 0.99926667, 0.49322031],6843 [ -6.27308012, -0.00045467, 0.00027856, 7.27262546, 0.99861107, 0.99926677, 0.49322033],6844 [ -6.27308028, -0.00045460, 0.00027852, 7.27262568, 0.99861127, 0.99926688, 0.49322029],6845 [ -6.27308044, -0.00045453, 0.00027848, 7.27262591, 0.99861147, 0.99926699, 0.49322034],6846 [ -6.27308060, -0.00045447, 0.00027844, 7.27262614, 0.99861168, 0.99926710, 0.49322033],6847 [ -6.27308076, -0.00045440, 0.00027839, 7.27262636, 0.99861188, 0.99926721, 0.49322036],6848 [ -6.27308092, -0.00045433, 0.00027835, 7.27262659, 0.99861209, 0.99926731, 0.49322047],6849 [ -6.27308108, -0.00045427, 0.00027831, 7.27262682, 0.99861229, 0.99926742, 0.49322045],6850 [ -6.27308124, -0.00045420, 0.00027827, 7.27262704, 0.99861249, 0.99926753, 0.49322049],6851 [ -6.27308140, -0.00045413, 0.00027823, 7.27262727, 0.99861270, 0.99926764, 0.49322055],6852 [ -6.27308156, -0.00045407, 0.00027819, 7.27262749, 0.99861290, 0.99926774, 0.49322054],6853 [ -6.27308172, -0.00045400, 0.00027815, 7.27262772, 0.99861310, 0.99926785, 0.49322056],6854 [ -6.27308188, -0.00045393, 0.00027811, 7.27262795, 0.99861331, 0.99926796, 0.49322059],6855 [ -6.27308204, -0.00045387, 0.00027807, 7.27262817, 0.99861351, 0.99926807, 0.49322050],6856 [ -6.27308220, -0.00045380, 0.00027803, 7.27262840, 0.99861371, 0.99926817, 0.49322063],6857 [ -6.27308236, -0.00045373, 0.00027799, 7.27262862, 0.99861392, 0.99926828, 0.49322066],6858 [ -6.27308252, -0.00045367, 0.00027795, 7.27262885, 0.99861412, 0.99926839, 0.49322063],6859 [ -6.27308268, -0.00045360, 0.00027790, 7.27262907, 0.99861432, 0.99926849, 0.49322070],6860 [ -6.27308284, -0.00045353, 0.00027786, 7.27262930, 0.99861453, 0.99926860, 0.49322066],6861 [ -6.27308299, -0.00045347, 0.00027782, 7.27262953, 0.99861473, 0.99926871, 0.49322073],6862 [ -6.27308315, -0.00045340, 0.00027778, 7.27262975, 0.99861493, 0.99926882, 0.49322074],6863 [ -6.27308331, -0.00045334, 0.00027774, 7.27262998, 0.99861514, 0.99926892, 0.49322073],6864 [ -6.27308347, -0.00045327, 0.00027770, 7.27263020, 0.99861534, 0.99926903, 0.49322080],6865 [ -6.27308363, -0.00045320, 0.00027766, 7.27263043, 0.99861554, 0.99926914, 0.49322087],6866 [ -6.27308379, -0.00045314, 0.00027762, 7.27263065, 0.99861574, 0.99926924, 0.49322079],6867 [ -6.27308395, -0.00045307, 0.00027758, 7.27263088, 0.99861595, 0.99926935, 0.49322088],6868 [ -6.27308411, -0.00045300, 0.00027754, 7.27263110, 0.99861615, 0.99926946, 0.49322089],6869 [ -6.27308426, -0.00045294, 0.00027750, 7.27263133, 0.99861635, 0.99926956, 0.49322091],6870 [ -6.27308442, -0.00045287, 0.00027746, 7.27263155, 0.99861655, 0.99926967, 0.49322099],6871 [ -6.27308458, -0.00045281, 0.00027742, 7.27263178, 0.99861676, 0.99926978, 0.49322093],6872 [ -6.27308474, -0.00045274, 0.00027738, 7.27263200, 0.99861696, 0.99926989, 0.49322094],6873 [ -6.27308490, -0.00045267, 0.00027734, 7.27263223, 0.99861716, 0.99926999, 0.49322104],6874 [ -6.27308506, -0.00045261, 0.00027729, 7.27263245, 0.99861736, 0.99927010, 0.49322101],6875 [ -6.27308522, -0.00045254, 0.00027725, 7.27263268, 0.99861757, 0.99927021, 0.49322100],6876 [ -6.27308537, -0.00045247, 0.00027721, 7.27263290, 0.99861777, 0.99927031, 0.49322109],6877 [ -6.27308553, -0.00045241, 0.00027717, 7.27263312, 0.99861797, 0.99927042, 0.49322112],6878 [ -6.27308569, -0.00045234, 0.00027713, 7.27263335, 0.99861817, 0.99927053, 0.49322118],6879 [ -6.27308585, -0.00045228, 0.00027709, 7.27263357, 0.99861837, 0.99927063, 0.49322108],6880 [ -6.27308601, -0.00045221, 0.00027705, 7.27263380, 0.99861858, 0.99927074, 0.49322119],6881 [ -6.27308616, -0.00045214, 0.00027701, 7.27263402, 0.99861878, 0.99927085, 0.49322124],6882 [ -6.27308632, -0.00045208, 0.00027697, 7.27263424, 0.99861898, 0.99927095, 0.49322120],6883 [ -6.27308648, -0.00045201, 0.00027693, 7.27263447, 0.99861918, 0.99927106, 0.49322125],6884 [ -6.27308664, -0.00045195, 0.00027689, 7.27263469, 0.99861938, 0.99927116, 0.49322131],6885 [ -6.27308680, -0.00045188, 0.00027685, 7.27263492, 0.99861959, 0.99927127, 0.49322139],6886 [ -6.27308695, -0.00045181, 0.00027681, 7.27263514, 0.99861979, 0.99927138, 0.49322128],6887 [ -6.27308711, -0.00045175, 0.00027677, 7.27263536, 0.99861999, 0.99927148, 0.49322133],6888 [ -6.27308727, -0.00045168, 0.00027673, 7.27263559, 0.99862019, 0.99927159, 0.49322134],6889 [ -6.27308743, -0.00045162, 0.00027669, 7.27263581, 0.99862039, 0.99927170, 0.49322141],6890 [ -6.27308759, -0.00045155, 0.00027665, 7.27263604, 0.99862059, 0.99927180, 0.49322137],6891 [ -6.27308774, -0.00045148, 0.00027661, 7.27263626, 0.99862079, 0.99927191, 0.49322148],6892 [ -6.27308790, -0.00045142, 0.00027657, 7.27263648, 0.99862099, 0.99927202, 0.49322145],6893 [ -6.27308806, -0.00045135, 0.00027653, 7.27263671, 0.99862120, 0.99927212, 0.49322138],6894 [ -6.27308822, -0.00045129, 0.00027649, 7.27263693, 0.99862140, 0.99927223, 0.49322155],6895 [ -6.27308837, -0.00045122, 0.00027645, 7.27263715, 0.99862160, 0.99927233, 0.49322147],6896 [ -6.27308853, -0.00045116, 0.00027641, 7.27263737, 0.99862180, 0.99927244, 0.49322164],6897 [ -6.27308869, -0.00045109, 0.00027636, 7.27263760, 0.99862200, 0.99927255, 0.49322155],6898 [ -6.27308884, -0.00045102, 0.00027632, 7.27263782, 0.99862220, 0.99927265, 0.49322156],6899 [ -6.27308900, -0.00045096, 0.00027628, 7.27263804, 0.99862240, 0.99927276, 0.49322154],6900 [ -6.27308916, -0.00045089, 0.00027624, 7.27263827, 0.99862260, 0.99927286, 0.49322167],6901 [ -6.27308932, -0.00045083, 0.00027620, 7.27263849, 0.99862280, 0.99927297, 0.49322165],6902 [ -6.27308947, -0.00045076, 0.00027616, 7.27263871, 0.99862300, 0.99927308, 0.49322177],6903 [ -6.27308963, -0.00045070, 0.00027612, 7.27263894, 0.99862320, 0.99927318, 0.49322172],6904 [ -6.27308979, -0.00045063, 0.00027608, 7.27263916, 0.99862340, 0.99927329, 0.49322177],6905 [ -6.27308994, -0.00045056, 0.00027604, 7.27263938, 0.99862360, 0.99927339, 0.49322171],6906 [ -6.27309010, -0.00045050, 0.00027600, 7.27263960, 0.99862381, 0.99927350, 0.49322172],6907 [ -6.27309026, -0.00045043, 0.00027596, 7.27263983, 0.99862401, 0.99927360, 0.49322182],6908 [ -6.27309042, -0.00045037, 0.00027592, 7.27264005, 0.99862421, 0.99927371, 0.49322183],6909 [ -6.27309057, -0.00045030, 0.00027588, 7.27264027, 0.99862441, 0.99927382, 0.49322187],6910 [ -6.27309073, -0.00045024, 0.00027584, 7.27264049, 0.99862461, 0.99927392, 0.49322184],6911 [ -6.27309089, -0.00045017, 0.00027580, 7.27264071, 0.99862481, 0.99927403, 0.49322189],6912 [ -6.27309104, -0.00045011, 0.00027576, 7.27264094, 0.99862501, 0.99927413, 0.49322190],6913 [ -6.27309120, -0.00045004, 0.00027572, 7.27264116, 0.99862521, 0.99927424, 0.49322188],6914 [ -6.27309136, -0.00044997, 0.00027568, 7.27264138, 0.99862541, 0.99927434, 0.49322197],6915 [ -6.27309151, -0.00044991, 0.00027564, 7.27264160, 0.99862561, 0.99927445, 0.49322195],6916 [ -6.27309167, -0.00044984, 0.00027560, 7.27264182, 0.99862581, 0.99927455, 0.49322198],6917 [ -6.27309183, -0.00044978, 0.00027556, 7.27264205, 0.99862601, 0.99927466, 0.49322195],6918 [ -6.27309198, -0.00044971, 0.00027552, 7.27264227, 0.99862621, 0.99927477, 0.49322211],6919 [ -6.27309214, -0.00044965, 0.00027548, 7.27264249, 0.99862641, 0.99927487, 0.49322215],6920 [ -6.27309229, -0.00044958, 0.00027544, 7.27264271, 0.99862660, 0.99927498, 0.49322209],6921 [ -6.27309245, -0.00044952, 0.00027540, 7.27264293, 0.99862680, 0.99927508, 0.49322211],6922 [ -6.27309261, -0.00044945, 0.00027536, 7.27264315, 0.99862700, 0.99927519, 0.49322213],6923 [ -6.27309276, -0.00044939, 0.00027532, 7.27264338, 0.99862720, 0.99927529, 0.49322220],6924 [ -6.27309292, -0.00044932, 0.00027528, 7.27264360, 0.99862740, 0.99927540, 0.49322206],6925 [ -6.27309307, -0.00044926, 0.00027524, 7.27264382, 0.99862760, 0.99927550, 0.49322222],6926 [ -6.27309323, -0.00044919, 0.00027520, 7.27264404, 0.99862780, 0.99927561, 0.49322230],6927 [ -6.27309339, -0.00044913, 0.00027516, 7.27264426, 0.99862800, 0.99927571, 0.49322233],6928 [ -6.27309354, -0.00044906, 0.00027512, 7.27264448, 0.99862820, 0.99927582, 0.49322226],6929 [ -6.27309370, -0.00044900, 0.00027508, 7.27264470, 0.99862840, 0.99927592, 0.49322237],6930 [ -6.27309385, -0.00044893, 0.00027504, 7.27264492, 0.99862860, 0.99927603, 0.49322238],6931 [ -6.27309401, -0.00044887, 0.00027500, 7.27264514, 0.99862880, 0.99927613, 0.49322229],6932 [ -6.27309417, -0.00044880, 0.00027496, 7.27264537, 0.99862899, 0.99927624, 0.49322245],6933 [ -6.27309432, -0.00044874, 0.00027492, 7.27264559, 0.99862919, 0.99927634, 0.49322245],6934 [ -6.27309448, -0.00044867, 0.00027488, 7.27264581, 0.99862939, 0.99927645, 0.49322246],6935 [ -6.27309463, -0.00044861, 0.00027484, 7.27264603, 0.99862959, 0.99927655, 0.49322247],6936 [ -6.27309479, -0.00044854, 0.00027480, 7.27264625, 0.99862979, 0.99927666, 0.49322254],6937 [ -6.27309494, -0.00044848, 0.00027476, 7.27264647, 0.99862999, 0.99927676, 0.49322253],6938 [ -6.27309510, -0.00044841, 0.00027472, 7.27264669, 0.99863019, 0.99927687, 0.49322258],6939 [ -6.27309526, -0.00044835, 0.00027468, 7.27264691, 0.99863039, 0.99927697, 0.49322250],6940 [ -6.27309541, -0.00044828, 0.00027464, 7.27264713, 0.99863058, 0.99927708, 0.49322253],6941 [ -6.27309557, -0.00044822, 0.00027460, 7.27264735, 0.99863078, 0.99927718, 0.49322260],6942 [ -6.27309572, -0.00044815, 0.00027456, 7.27264757, 0.99863098, 0.99927729, 0.49322265],6943 [ -6.27309588, -0.00044809, 0.00027452, 7.27264779, 0.99863118, 0.99927739, 0.49322261],6944 [ -6.27309603, -0.00044802, 0.00027448, 7.27264801, 0.99863138, 0.99927750, 0.49322265],6945 [ -6.27309619, -0.00044796, 0.00027444, 7.27264823, 0.99863158, 0.99927760, 0.49322274],6946 [ -6.27309634, -0.00044789, 0.00027440, 7.27264845, 0.99863177, 0.99927770, 0.49322271],6947 [ -6.27309650, -0.00044783, 0.00027436, 7.27264867, 0.99863197, 0.99927781, 0.49322271],6948 [ -6.27309665, -0.00044776, 0.00027432, 7.27264889, 0.99863217, 0.99927791, 0.49322277],6949 [ -6.27309681, -0.00044770, 0.00027429, 7.27264911, 0.99863237, 0.99927802, 0.49322282],6950 [ -6.27309696, -0.00044763, 0.00027425, 7.27264933, 0.99863256, 0.99927812, 0.49322277],6951 [ -6.27309712, -0.00044757, 0.00027421, 7.27264955, 0.99863276, 0.99927823, 0.49322279],6952 [ -6.27309727, -0.00044750, 0.00027417, 7.27264977, 0.99863296, 0.99927833, 0.49322290],6953 [ -6.27309743, -0.00044744, 0.00027413, 7.27264999, 0.99863316, 0.99927844, 0.49322286],6954 [ -6.27309758, -0.00044737, 0.00027409, 7.27265021, 0.99863336, 0.99927854, 0.49322289],6955 [ -6.27309774, -0.00044731, 0.00027405, 7.27265043, 0.99863355, 0.99927864, 0.49322292],6956 [ -6.27309789, -0.00044724, 0.00027401, 7.27265065, 0.99863375, 0.99927875, 0.49322303],6957 [ -6.27309805, -0.00044718, 0.00027397, 7.27265087, 0.99863395, 0.99927885, 0.49322297],6958 [ -6.27309820, -0.00044712, 0.00027393, 7.27265108, 0.99863415, 0.99927896, 0.49322299],6959 [ -6.27309835, -0.00044705, 0.00027389, 7.27265130, 0.99863434, 0.99927906, 0.49322300],6960 [ -6.27309851, -0.00044699, 0.00027385, 7.27265152, 0.99863454, 0.99927916, 0.49322302],6961 [ -6.27309866, -0.00044692, 0.00027381, 7.27265174, 0.99863474, 0.99927927, 0.49322302],6962 [ -6.27309882, -0.00044686, 0.00027377, 7.27265196, 0.99863493, 0.99927937, 0.49322309],6963 [ -6.27309897, -0.00044679, 0.00027373, 7.27265218, 0.99863513, 0.99927948, 0.49322304],6964 [ -6.27309913, -0.00044673, 0.00027369, 7.27265240, 0.99863533, 0.99927958, 0.49322317],6965 [ -6.27309928, -0.00044666, 0.00027365, 7.27265262, 0.99863553, 0.99927968, 0.49322317],6966 [ -6.27309944, -0.00044660, 0.00027361, 7.27265284, 0.99863572, 0.99927979, 0.49322320],6967 [ -6.27309959, -0.00044653, 0.00027357, 7.27265305, 0.99863592, 0.99927989, 0.49322325],6968 [ -6.27309974, -0.00044647, 0.00027353, 7.27265327, 0.99863612, 0.99928000, 0.49322322],6969 [ -6.27309990, -0.00044641, 0.00027349, 7.27265349, 0.99863631, 0.99928010, 0.49322331],6970 [ -6.27310005, -0.00044634, 0.00027345, 7.27265371, 0.99863651, 0.99928020, 0.49322327],6971 [ -6.27310021, -0.00044628, 0.00027341, 7.27265393, 0.99863671, 0.99928031, 0.49322319],6972 [ -6.27310036, -0.00044621, 0.00027338, 7.27265415, 0.99863690, 0.99928041, 0.49322336],6973 [ -6.27310051, -0.00044615, 0.00027334, 7.27265436, 0.99863710, 0.99928052, 0.49322341],6974 [ -6.27310067, -0.00044608, 0.00027330, 7.27265458, 0.99863730, 0.99928062, 0.49322335],6975 [ -6.27310082, -0.00044602, 0.00027326, 7.27265480, 0.99863749, 0.99928072, 0.49322336],6976 [ -6.27310097, -0.00044596, 0.00027322, 7.27265502, 0.99863769, 0.99928083, 0.49322343],6977 [ -6.27310113, -0.00044589, 0.00027318, 7.27265524, 0.99863789, 0.99928093, 0.49322345],6978 [ -6.27310128, -0.00044583, 0.00027314, 7.27265546, 0.99863808, 0.99928103, 0.49322341],6979 [ -6.27310144, -0.00044576, 0.00027310, 7.27265567, 0.99863828, 0.99928114, 0.49322343],6980 [ -6.27310159, -0.00044570, 0.00027306, 7.27265589, 0.99863847, 0.99928124, 0.49322353],6981 [ -6.27310174, -0.00044563, 0.00027302, 7.27265611, 0.99863867, 0.99928134, 0.49322355],6982 [ -6.27310190, -0.00044557, 0.00027298, 7.27265633, 0.99863887, 0.99928145, 0.49322359],6983 [ -6.27310205, -0.00044551, 0.00027294, 7.27265654, 0.99863906, 0.99928155, 0.49322357],6984 [ -6.27310220, -0.00044544, 0.00027290, 7.27265676, 0.99863926, 0.99928165, 0.49322365],6985 [ -6.27310236, -0.00044538, 0.00027286, 7.27265698, 0.99863945, 0.99928176, 0.49322365],6986 [ -6.27310251, -0.00044531, 0.00027282, 7.27265720, 0.99863965, 0.99928186, 0.49322366],6987 [ -6.27310266, -0.00044525, 0.00027279, 7.27265741, 0.99863984, 0.99928196, 0.49322350],6988 [ -6.27310282, -0.00044519, 0.00027275, 7.27265763, 0.99864004, 0.99928207, 0.49322363],6989 [ -6.27310297, -0.00044512, 0.00027271, 7.27265785, 0.99864024, 0.99928217, 0.49322376],6990 [ -6.27310312, -0.00044506, 0.00027267, 7.27265807, 0.99864043, 0.99928227, 0.49322376],6991 [ -6.27310328, -0.00044499, 0.00027263, 7.27265828, 0.99864063, 0.99928238, 0.49322386],6992 [ -6.27310343, -0.00044493, 0.00027259, 7.27265850, 0.99864082, 0.99928248, 0.49322387],6993 [ -6.27310358, -0.00044487, 0.00027255, 7.27265872, 0.99864102, 0.99928258, 0.49322377],6994 [ -6.27310374, -0.00044480, 0.00027251, 7.27265893, 0.99864121, 0.99928269, 0.49322371],6995 [ -6.27310389, -0.00044474, 0.00027247, 7.27265915, 0.99864141, 0.99928279, 0.49322385],6996 [ -6.27310404, -0.00044467, 0.00027243, 7.27265937, 0.99864160, 0.99928289, 0.49322391],6997 [ -6.27310419, -0.00044461, 0.00027239, 7.27265958, 0.99864180, 0.99928300, 0.49322388],6998 [ -6.27310435, -0.00044455, 0.00027235, 7.27265980, 0.99864199, 0.99928310, 0.49322387],6999 [ -6.27310450, -0.00044448, 0.00027231, 7.27266002, 0.99864219, 0.99928320, 0.49322394],7000 [ -6.27310465, -0.00044442, 0.00027228, 7.27266023, 0.99864238, 0.99928330, 0.49322403],7001 [ -6.27310481, -0.00044436, 0.00027224, 7.27266045, 0.99864258, 0.99928341, 0.49322393],7002 [ -6.27310496, -0.00044429, 0.00027220, 7.27266067, 0.99864277, 0.99928351, 0.49322396],7003 [ -6.27310511, -0.00044423, 0.00027216, 7.27266088, 0.99864297, 0.99928361, 0.49322397],7004 [ -6.27310526, -0.00044416, 0.00027212, 7.27266110, 0.99864316, 0.99928372, 0.49322408],7005 [ -6.27310542, -0.00044410, 0.00027208, 7.27266132, 0.99864336, 0.99928382, 0.49322399],7006 [ -6.27310557, -0.00044404, 0.00027204, 7.27266153, 0.99864355, 0.99928392, 0.49322405],7007 [ -6.27310572, -0.00044397, 0.00027200, 7.27266175, 0.99864375, 0.99928402, 0.49322411],7008 [ -6.27310587, -0.00044391, 0.00027196, 7.27266196, 0.99864394, 0.99928413, 0.49322415],7009 [ -6.27310603, -0.00044385, 0.00027192, 7.27266218, 0.99864414, 0.99928423, 0.49322414],7010 [ -6.27310618, -0.00044378, 0.00027189, 7.27266240, 0.99864433, 0.99928433, 0.49322429],7011 [ -6.27310633, -0.00044372, 0.00027185, 7.27266261, 0.99864453, 0.99928444, 0.49322422],7012 [ -6.27310648, -0.00044365, 0.00027181, 7.27266283, 0.99864472, 0.99928454, 0.49322422],7013 [ -6.27310663, -0.00044359, 0.00027177, 7.27266304, 0.99864491, 0.99928464, 0.49322418],7014 [ -6.27310679, -0.00044353, 0.00027173, 7.27266326, 0.99864511, 0.99928474, 0.49322426],7015 [ -6.27310694, -0.00044346, 0.00027169, 7.27266347, 0.99864530, 0.99928485, 0.49322432],7016 [ -6.27310709, -0.00044340, 0.00027165, 7.27266369, 0.99864550, 0.99928495, 0.49322429],7017 [ -6.27310724, -0.00044334, 0.00027161, 7.27266391, 0.99864569, 0.99928505, 0.49322440],7018 [ -6.27310739, -0.00044327, 0.00027157, 7.27266412, 0.99864589, 0.99928515, 0.49322431],7019 [ -6.27310755, -0.00044321, 0.00027153, 7.27266434, 0.99864608, 0.99928526, 0.49322435],7020 [ -6.27310770, -0.00044315, 0.00027150, 7.27266455, 0.99864627, 0.99928536, 0.49322446],7021 [ -6.27310785, -0.00044308, 0.00027146, 7.27266477, 0.99864647, 0.99928546, 0.49322440],7022 [ -6.27310800, -0.00044302, 0.00027142, 7.27266498, 0.99864666, 0.99928556, 0.49322441],7023 [ -6.27310815, -0.00044296, 0.00027138, 7.27266520, 0.99864685, 0.99928566, 0.49322447],7024 [ -6.27310831, -0.00044289, 0.00027134, 7.27266541, 0.99864705, 0.99928577, 0.49322449],7025 [ -6.27310846, -0.00044283, 0.00027130, 7.27266563, 0.99864724, 0.99928587, 0.49322455],7026 [ -6.27310861, -0.00044277, 0.00027126, 7.27266584, 0.99864744, 0.99928597, 0.49322455],7027 [ -6.27310876, -0.00044270, 0.00027122, 7.27266606, 0.99864763, 0.99928607, 0.49322448],7028 [ -6.27310891, -0.00044264, 0.00027119, 7.27266627, 0.99864782, 0.99928618, 0.49322460],7029 [ -6.27310906, -0.00044258, 0.00027115, 7.27266649, 0.99864802, 0.99928628, 0.49322463],7030 [ -6.27310921, -0.00044251, 0.00027111, 7.27266670, 0.99864821, 0.99928638, 0.49322466],7031 [ -6.27310937, -0.00044245, 0.00027107, 7.27266692, 0.99864840, 0.99928648, 0.49322476],7032 [ -6.27310952, -0.00044239, 0.00027103, 7.27266713, 0.99864860, 0.99928658, 0.49322465],7033 [ -6.27310967, -0.00044232, 0.00027099, 7.27266735, 0.99864879, 0.99928669, 0.49322471],7034 [ -6.27310982, -0.00044226, 0.00027095, 7.27266756, 0.99864898, 0.99928679, 0.49322475],7035 [ -6.27310997, -0.00044220, 0.00027091, 7.27266777, 0.99864917, 0.99928689, 0.49322474],7036 [ -6.27311012, -0.00044213, 0.00027088, 7.27266799, 0.99864937, 0.99928699, 0.49322474],7037 [ -6.27311027, -0.00044207, 0.00027084, 7.27266820, 0.99864956, 0.99928709, 0.49322480],7038 [ -6.27311042, -0.00044201, 0.00027080, 7.27266842, 0.99864975, 0.99928719, 0.49322485],7039 [ -6.27311058, -0.00044194, 0.00027076, 7.27266863, 0.99864995, 0.99928730, 0.49322481],7040 [ -6.27311073, -0.00044188, 0.00027072, 7.27266884, 0.99865014, 0.99928740, 0.49322488],7041 [ -6.27311088, -0.00044182, 0.00027068, 7.27266906, 0.99865033, 0.99928750, 0.49322485],7042 [ -6.27311103, -0.00044176, 0.00027064, 7.27266927, 0.99865052, 0.99928760, 0.49322488],7043 [ -6.27311118, -0.00044169, 0.00027060, 7.27266949, 0.99865072, 0.99928770, 0.49322494],7044 [ -6.27311133, -0.00044163, 0.00027057, 7.27266970, 0.99865091, 0.99928780, 0.49322492],7045 [ -6.27311148, -0.00044157, 0.00027053, 7.27266991, 0.99865110, 0.99928791, 0.49322499],7046 [ -6.27311163, -0.00044150, 0.00027049, 7.27267013, 0.99865129, 0.99928801, 0.49322490],7047 [ -6.27311178, -0.00044144, 0.00027045, 7.27267034, 0.99865149, 0.99928811, 0.49322494],7048 [ -6.27311193, -0.00044138, 0.00027041, 7.27267056, 0.99865168, 0.99928821, 0.49322503],7049 [ -6.27311208, -0.00044131, 0.00027037, 7.27267077, 0.99865187, 0.99928831, 0.49322507],7050 [ -6.27311223, -0.00044125, 0.00027033, 7.27267098, 0.99865206, 0.99928841, 0.49322506],7051 [ -6.27311238, -0.00044119, 0.00027030, 7.27267120, 0.99865226, 0.99928852, 0.49322507],7052 [ -6.27311253, -0.00044113, 0.00027026, 7.27267141, 0.99865245, 0.99928862, 0.49322511],7053 [ -6.27311269, -0.00044106, 0.00027022, 7.27267162, 0.99865264, 0.99928872, 0.49322515],7054 [ -6.27311284, -0.00044100, 0.00027018, 7.27267184, 0.99865283, 0.99928882, 0.49322525],7055 [ -6.27311299, -0.00044094, 0.00027014, 7.27267205, 0.99865302, 0.99928892, 0.49322511],7056 [ -6.27311314, -0.00044087, 0.00027010, 7.27267226, 0.99865322, 0.99928902, 0.49322518],7057 [ -6.27311329, -0.00044081, 0.00027006, 7.27267247, 0.99865341, 0.99928912, 0.49322526],7058 [ -6.27311344, -0.00044075, 0.00027003, 7.27267269, 0.99865360, 0.99928922, 0.49322521],7059 [ -6.27311359, -0.00044069, 0.00026999, 7.27267290, 0.99865379, 0.99928933, 0.49322528],7060 [ -6.27311374, -0.00044062, 0.00026995, 7.27267311, 0.99865398, 0.99928943, 0.49322529],7061 [ -6.27311389, -0.00044056, 0.00026991, 7.27267333, 0.99865418, 0.99928953, 0.49322527],7062 [ -6.27311404, -0.00044050, 0.00026987, 7.27267354, 0.99865437, 0.99928963, 0.49322539],7063 [ -6.27311419, -0.00044044, 0.00026983, 7.27267375, 0.99865456, 0.99928973, 0.49322538],7064 [ -6.27311434, -0.00044037, 0.00026980, 7.27267396, 0.99865475, 0.99928983, 0.49322547],7065 [ -6.27311449, -0.00044031, 0.00026976, 7.27267418, 0.99865494, 0.99928993, 0.49322544],7066 [ -6.27311464, -0.00044025, 0.00026972, 7.27267439, 0.99865513, 0.99929003, 0.49322545],7067 [ -6.27311479, -0.00044018, 0.00026968, 7.27267460, 0.99865532, 0.99929013, 0.49322545],7068 [ -6.27311494, -0.00044012, 0.00026964, 7.27267481, 0.99865551, 0.99929024, 0.49322537],7069 [ -6.27311509, -0.00044006, 0.00026960, 7.27267503, 0.99865571, 0.99929034, 0.49322549],7070 [ -6.27311524, -0.00044000, 0.00026957, 7.27267524, 0.99865590, 0.99929044, 0.49322552],7071 [ -6.27311539, -0.00043993, 0.00026953, 7.27267545, 0.99865609, 0.99929054, 0.49322561],7072 [ -6.27311554, -0.00043987, 0.00026949, 7.27267566, 0.99865628, 0.99929064, 0.49322551],7073 [ -6.27311569, -0.00043981, 0.00026945, 7.27267588, 0.99865647, 0.99929074, 0.49322559],7074 [ -6.27311583, -0.00043975, 0.00026941, 7.27267609, 0.99865666, 0.99929084, 0.49322564],7075 [ -6.27311598, -0.00043968, 0.00026937, 7.27267630, 0.99865685, 0.99929094, 0.49322558],7076 [ -6.27311613, -0.00043962, 0.00026934, 7.27267651, 0.99865704, 0.99929104, 0.49322567],7077 [ -6.27311628, -0.00043956, 0.00026930, 7.27267672, 0.99865723, 0.99929114, 0.49322564],7078 [ -6.27311643, -0.00043950, 0.00026926, 7.27267693, 0.99865742, 0.99929124, 0.49322573],7079 [ -6.27311658, -0.00043944, 0.00026922, 7.27267715, 0.99865762, 0.99929134, 0.49322571],7080 [ -6.27311673, -0.00043937, 0.00026918, 7.27267736, 0.99865781, 0.99929144, 0.49322569],7081 [ -6.27311688, -0.00043931, 0.00026914, 7.27267757, 0.99865800, 0.99929155, 0.49322578],7082 [ -6.27311703, -0.00043925, 0.00026911, 7.27267778, 0.99865819, 0.99929165, 0.49322578],7083 [ -6.27311718, -0.00043919, 0.00026907, 7.27267799, 0.99865838, 0.99929175, 0.49322584],7084 [ -6.27311733, -0.00043912, 0.00026903, 7.27267820, 0.99865857, 0.99929185, 0.49322586],7085 [ -6.27311748, -0.00043906, 0.00026899, 7.27267842, 0.99865876, 0.99929195, 0.49322590],7086 [ -6.27311763, -0.00043900, 0.00026895, 7.27267863, 0.99865895, 0.99929205, 0.49322588],7087 [ -6.27311777, -0.00043894, 0.00026892, 7.27267884, 0.99865914, 0.99929215, 0.49322594],7088 [ -6.27311792, -0.00043887, 0.00026888, 7.27267905, 0.99865933, 0.99929225, 0.49322584],7089 [ -6.27311807, -0.00043881, 0.00026884, 7.27267926, 0.99865952, 0.99929235, 0.49322593],7090 [ -6.27311822, -0.00043875, 0.00026880, 7.27267947, 0.99865971, 0.99929245, 0.49322593],7091 [ -6.27311837, -0.00043869, 0.00026876, 7.27267968, 0.99865990, 0.99929255, 0.49322599],7092 [ -6.27311852, -0.00043863, 0.00026872, 7.27267989, 0.99866009, 0.99929265, 0.49322601],7093 [ -6.27311867, -0.00043856, 0.00026869, 7.27268010, 0.99866028, 0.99929275, 0.49322609],7094 [ -6.27311882, -0.00043850, 0.00026865, 7.27268032, 0.99866047, 0.99929285, 0.49322605],7095 [ -6.27311897, -0.00043844, 0.00026861, 7.27268053, 0.99866066, 0.99929295, 0.49322609],7096 [ -6.27311911, -0.00043838, 0.00026857, 7.27268074, 0.99866085, 0.99929305, 0.49322609],7097 [ -6.27311926, -0.00043832, 0.00026853, 7.27268095, 0.99866104, 0.99929315, 0.49322617],7098 [ -6.27311941, -0.00043825, 0.00026850, 7.27268116, 0.99866123, 0.99929325, 0.49322622],7099 [ -6.27311956, -0.00043819, 0.00026846, 7.27268137, 0.99866142, 0.99929335, 0.49322614],7100 [ -6.27311971, -0.00043813, 0.00026842, 7.27268158, 0.99866161, 0.99929345, 0.49322631],7101 [ -6.27311986, -0.00043807, 0.00026838, 7.27268179, 0.99866180, 0.99929355, 0.49322620],7102 [ -6.27312000, -0.00043800, 0.00026834, 7.27268200, 0.99866199, 0.99929365, 0.49322616],7103 [ -6.27312015, -0.00043794, 0.00026831, 7.27268221, 0.99866217, 0.99929375, 0.49322624],7104 [ -6.27312030, -0.00043788, 0.00026827, 7.27268242, 0.99866236, 0.99929385, 0.49322623],7105 [ -6.27312045, -0.00043782, 0.00026823, 7.27268263, 0.99866255, 0.99929395, 0.49322635],7106 [ -6.27312060, -0.00043776, 0.00026819, 7.27268284, 0.99866274, 0.99929405, 0.49322632],7107 [ -6.27312075, -0.00043770, 0.00026815, 7.27268305, 0.99866293, 0.99929415, 0.49322635],7108 [ -6.27312089, -0.00043763, 0.00026812, 7.27268326, 0.99866312, 0.99929425, 0.49322639],7109 [ -6.27312104, -0.00043757, 0.00026808, 7.27268347, 0.99866331, 0.99929435, 0.49322639],7110 [ -6.27312119, -0.00043751, 0.00026804, 7.27268368, 0.99866350, 0.99929445, 0.49322638],7111 [ -6.27312134, -0.00043745, 0.00026800, 7.27268389, 0.99866369, 0.99929455, 0.49322647],7112 [ -6.27312149, -0.00043739, 0.00026796, 7.27268410, 0.99866388, 0.99929465, 0.49322642],7113 [ -6.27312163, -0.00043732, 0.00026793, 7.27268431, 0.99866407, 0.99929475, 0.49322644],7114 [ -6.27312178, -0.00043726, 0.00026789, 7.27268452, 0.99866425, 0.99929485, 0.49322646],7115 [ -6.27312193, -0.00043720, 0.00026785, 7.27268473, 0.99866444, 0.99929495, 0.49322653],7116 [ -6.27312208, -0.00043714, 0.00026781, 7.27268494, 0.99866463, 0.99929505, 0.49322663],7117 [ -6.27312223, -0.00043708, 0.00026778, 7.27268515, 0.99866482, 0.99929515, 0.49322655],7118 [ -6.27312237, -0.00043702, 0.00026774, 7.27268536, 0.99866501, 0.99929525, 0.49322658],7119 [ -6.27312252, -0.00043695, 0.00026770, 7.27268557, 0.99866520, 0.99929535, 0.49322660],7120 [ -6.27312267, -0.00043689, 0.00026766, 7.27268578, 0.99866539, 0.99929545, 0.49322666],7121 [ -6.27312282, -0.00043683, 0.00026762, 7.27268599, 0.99866557, 0.99929555, 0.49322663],7122 [ -6.27312296, -0.00043677, 0.00026759, 7.27268619, 0.99866576, 0.99929564, 0.49322672],7123 [ -6.27312311, -0.00043671, 0.00026755, 7.27268640, 0.99866595, 0.99929574, 0.49322669],7124 [ -6.27312326, -0.00043665, 0.00026751, 7.27268661, 0.99866614, 0.99929584, 0.49322667],7125 [ -6.27312341, -0.00043658, 0.00026747, 7.27268682, 0.99866633, 0.99929594, 0.49322665],7126 [ -6.27312355, -0.00043652, 0.00026744, 7.27268703, 0.99866652, 0.99929604, 0.49322678],7127 [ -6.27312370, -0.00043646, 0.00026740, 7.27268724, 0.99866670, 0.99929614, 0.49322680],7128 [ -6.27312385, -0.00043640, 0.00026736, 7.27268745, 0.99866689, 0.99929624, 0.49322677],7129 [ -6.27312399, -0.00043634, 0.00026732, 7.27268766, 0.99866708, 0.99929634, 0.49322687],7130 [ -6.27312414, -0.00043628, 0.00026728, 7.27268787, 0.99866727, 0.99929644, 0.49322695],7131 [ -6.27312429, -0.00043622, 0.00026725, 7.27268807, 0.99866746, 0.99929654, 0.49322684],7132 [ -6.27312444, -0.00043615, 0.00026721, 7.27268828, 0.99866764, 0.99929664, 0.49322695],7133 [ -6.27312458, -0.00043609, 0.00026717, 7.27268849, 0.99866783, 0.99929674, 0.49322694],7134 [ -6.27312473, -0.00043603, 0.00026713, 7.27268870, 0.99866802, 0.99929684, 0.49322694],7135 [ -6.27312488, -0.00043597, 0.00026710, 7.27268891, 0.99866821, 0.99929693, 0.49322692],7136 [ -6.27312502, -0.00043591, 0.00026706, 7.27268912, 0.99866839, 0.99929703, 0.49322694],7137 [ -6.27312517, -0.00043585, 0.00026702, 7.27268932, 0.99866858, 0.99929713, 0.49322699],7138 [ -6.27312532, -0.00043579, 0.00026698, 7.27268953, 0.99866877, 0.99929723, 0.49322697],7139 [ -6.27312546, -0.00043572, 0.00026695, 7.27268974, 0.99866896, 0.99929733, 0.49322709],7140 [ -6.27312561, -0.00043566, 0.00026691, 7.27268995, 0.99866914, 0.99929743, 0.49322698],7141 [ -6.27312576, -0.00043560, 0.00026687, 7.27269016, 0.99866933, 0.99929753, 0.49322713],7142 [ -6.27312590, -0.00043554, 0.00026683, 7.27269037, 0.99866952, 0.99929763, 0.49322708],7143 [ -6.27312605, -0.00043548, 0.00026680, 7.27269057, 0.99866971, 0.99929773, 0.49322723],7144 [ -6.27312620, -0.00043542, 0.00026676, 7.27269078, 0.99866989, 0.99929782, 0.49322717],7145 [ -6.27312634, -0.00043536, 0.00026672, 7.27269099, 0.99867008, 0.99929792, 0.49322722],7146 [ -6.27312649, -0.00043529, 0.00026668, 7.27269120, 0.99867027, 0.99929802, 0.49322714],7147 [ -6.27312664, -0.00043523, 0.00026665, 7.27269140, 0.99867045, 0.99929812, 0.49322725],7148 [ -6.27312678, -0.00043517, 0.00026661, 7.27269161, 0.99867064, 0.99929822, 0.49322739],7149 [ -6.27312693, -0.00043511, 0.00026657, 7.27269182, 0.99867083, 0.99929832, 0.49322721],7150 [ -6.27312708, -0.00043505, 0.00026653, 7.27269203, 0.99867101, 0.99929842, 0.49322728],7151 [ -6.27312722, -0.00043499, 0.00026650, 7.27269223, 0.99867120, 0.99929852, 0.49322731],7152 [ -6.27312737, -0.00043493, 0.00026646, 7.27269244, 0.99867139, 0.99929861, 0.49322735],7153 [ -6.27312752, -0.00043487, 0.00026642, 7.27269265, 0.99867158, 0.99929871, 0.49322737],7154 [ -6.27312766, -0.00043481, 0.00026638, 7.27269286, 0.99867176, 0.99929881, 0.49322735],7155 [ -6.27312781, -0.00043474, 0.00026635, 7.27269306, 0.99867195, 0.99929891, 0.49322744],7156 [ -6.27312795, -0.00043468, 0.00026631, 7.27269327, 0.99867214, 0.99929901, 0.49322745],7157 [ -6.27312810, -0.00043462, 0.00026627, 7.27269348, 0.99867232, 0.99929911, 0.49322747],7158 [ -6.27312825, -0.00043456, 0.00026623, 7.27269368, 0.99867251, 0.99929920, 0.49322750],7159 [ -6.27312839, -0.00043450, 0.00026620, 7.27269389, 0.99867269, 0.99929930, 0.49322745],7160 [ -6.27312854, -0.00043444, 0.00026616, 7.27269410, 0.99867288, 0.99929940, 0.49322761],7161 [ -6.27312868, -0.00043438, 0.00026612, 7.27269431, 0.99867307, 0.99929950, 0.49322746],7162 [ -6.27312883, -0.00043432, 0.00026608, 7.27269451, 0.99867325, 0.99929960, 0.49322757],7163 [ -6.27312898, -0.00043426, 0.00026605, 7.27269472, 0.99867344, 0.99929970, 0.49322765],7164 [ -6.27312912, -0.00043420, 0.00026601, 7.27269493, 0.99867363, 0.99929979, 0.49322763],7165 [ -6.27312927, -0.00043413, 0.00026597, 7.27269513, 0.99867381, 0.99929989, 0.49322751],7166 [ -6.27312941, -0.00043407, 0.00026593, 7.27269534, 0.99867400, 0.99929999, 0.49322758],7167 [ -6.27312956, -0.00043401, 0.00026590, 7.27269555, 0.99867418, 0.99930009, 0.49322771],7168 [ -6.27312970, -0.00043395, 0.00026586, 7.27269575, 0.99867437, 0.99930019, 0.49322770],7169 [ -6.27312985, -0.00043389, 0.00026582, 7.27269596, 0.99867456, 0.99930029, 0.49322772],7170 [ -6.27313000, -0.00043383, 0.00026579, 7.27269616, 0.99867474, 0.99930038, 0.49322775],7171 [ -6.27313014, -0.00043377, 0.00026575, 7.27269637, 0.99867493, 0.99930048, 0.49322776],7172 [ -6.27313029, -0.00043371, 0.00026571, 7.27269658, 0.99867511, 0.99930058, 0.49322779],7173 [ -6.27313043, -0.00043365, 0.00026567, 7.27269678, 0.99867530, 0.99930068, 0.49322775],7174 [ -6.27313058, -0.00043359, 0.00026564, 7.27269699, 0.99867548, 0.99930078, 0.49322782],7175 [ -6.27313072, -0.00043353, 0.00026560, 7.27269720, 0.99867567, 0.99930087, 0.49322777],7176 [ -6.27313087, -0.00043347, 0.00026556, 7.27269740, 0.99867586, 0.99930097, 0.49322785],7177 [ -6.27313101, -0.00043341, 0.00026552, 7.27269761, 0.99867604, 0.99930107, 0.49322785],7178 [ -6.27313116, -0.00043335, 0.00026549, 7.27269781, 0.99867623, 0.99930117, 0.49322792],7179 [ -6.27313130, -0.00043328, 0.00026545, 7.27269802, 0.99867641, 0.99930127, 0.49322802],7180 [ -6.27313145, -0.00043322, 0.00026541, 7.27269823, 0.99867660, 0.99930136, 0.49322800],7181 [ -6.27313159, -0.00043316, 0.00026538, 7.27269843, 0.99867678, 0.99930146, 0.49322801],7182 [ -6.27313174, -0.00043310, 0.00026534, 7.27269864, 0.99867697, 0.99930156, 0.49322793],7183 [ -6.27313188, -0.00043304, 0.00026530, 7.27269884, 0.99867715, 0.99930166, 0.49322797],7184 [ -6.27313203, -0.00043298, 0.00026526, 7.27269905, 0.99867734, 0.99930175, 0.49322808],7185 [ -6.27313217, -0.00043292, 0.00026523, 7.27269925, 0.99867752, 0.99930185, 0.49322805],7186 [ -6.27313232, -0.00043286, 0.00026519, 7.27269946, 0.99867771, 0.99930195, 0.49322811],7187 [ -6.27313246, -0.00043280, 0.00026515, 7.27269966, 0.99867789, 0.99930205, 0.49322809],7188 [ -6.27313261, -0.00043274, 0.00026512, 7.27269987, 0.99867808, 0.99930214, 0.49322806],7189 [ -6.27313275, -0.00043268, 0.00026508, 7.27270007, 0.99867826, 0.99930224, 0.49322819],7190 [ -6.27313290, -0.00043262, 0.00026504, 7.27270028, 0.99867845, 0.99930234, 0.49322820],7191 [ -6.27313304, -0.00043256, 0.00026501, 7.27270049, 0.99867863, 0.99930244, 0.49322821],7192 [ -6.27313319, -0.00043250, 0.00026497, 7.27270069, 0.99867882, 0.99930253, 0.49322826],7193 [ -6.27313333, -0.00043244, 0.00026493, 7.27270090, 0.99867900, 0.99930263, 0.49322825],7194 [ -6.27313348, -0.00043238, 0.00026489, 7.27270110, 0.99867919, 0.99930273, 0.49322828],7195 [ -6.27313362, -0.00043232, 0.00026486, 7.27270131, 0.99867937, 0.99930283, 0.49322824],7196 [ -6.27313377, -0.00043226, 0.00026482, 7.27270151, 0.99867955, 0.99930292, 0.49322829],7197 [ -6.27313391, -0.00043220, 0.00026478, 7.27270171, 0.99867974, 0.99930302, 0.49322833],7198 [ -6.27313405, -0.00043214, 0.00026475, 7.27270192, 0.99867992, 0.99930312, 0.49322832],7199 [ -6.27313420, -0.00043207, 0.00026471, 7.27270212, 0.99868011, 0.99930322, 0.49322832],7200 [ -6.27313434, -0.00043201, 0.00026467, 7.27270233, 0.99868029, 0.99930331, 0.49322841],7201 [ -6.27313449, -0.00043195, 0.00026464, 7.27270253, 0.99868048, 0.99930341, 0.49322842],7202 [ -6.27313463, -0.00043189, 0.00026460, 7.27270274, 0.99868066, 0.99930351, 0.49322850],7203 [ -6.27313478, -0.00043183, 0.00026456, 7.27270294, 0.99868084, 0.99930360, 0.49322849],7204 [ -6.27313492, -0.00043177, 0.00026452, 7.27270315, 0.99868103, 0.99930370, 0.49322832],7205 [ -6.27313506, -0.00043171, 0.00026449, 7.27270335, 0.99868121, 0.99930380, 0.49322850],7206 [ -6.27313521, -0.00043165, 0.00026445, 7.27270356, 0.99868140, 0.99930390, 0.49322849],7207 [ -6.27313535, -0.00043159, 0.00026441, 7.27270376, 0.99868158, 0.99930399, 0.49322851],7208 [ -6.27313550, -0.00043153, 0.00026438, 7.27270396, 0.99868176, 0.99930409, 0.49322842],7209 [ -6.27313564, -0.00043147, 0.00026434, 7.27270417, 0.99868195, 0.99930419, 0.49322856],7210 [ -6.27313578, -0.00043141, 0.00026430, 7.27270437, 0.99868213, 0.99930428, 0.49322852],7211 [ -6.27313593, -0.00043135, 0.00026427, 7.27270458, 0.99868232, 0.99930438, 0.49322857],7212 [ -6.27313607, -0.00043129, 0.00026423, 7.27270478, 0.99868250, 0.99930448, 0.49322857],7213 [ -6.27313622, -0.00043123, 0.00026419, 7.27270498, 0.99868268, 0.99930458, 0.49322862],7214 [ -6.27313636, -0.00043117, 0.00026416, 7.27270519, 0.99868287, 0.99930467, 0.49322867],7215 [ -6.27313650, -0.00043111, 0.00026412, 7.27270539, 0.99868305, 0.99930477, 0.49322876],7216 [ -6.27313665, -0.00043105, 0.00026408, 7.27270560, 0.99868323, 0.99930487, 0.49322877],7217 [ -6.27313679, -0.00043099, 0.00026405, 7.27270580, 0.99868342, 0.99930496, 0.49322873],7218 [ -6.27313693, -0.00043093, 0.00026401, 7.27270600, 0.99868360, 0.99930506, 0.49322870],7219 [ -6.27313708, -0.00043087, 0.00026397, 7.27270621, 0.99868378, 0.99930516, 0.49322877],7220 [ -6.27313722, -0.00043081, 0.00026394, 7.27270641, 0.99868397, 0.99930525, 0.49322879],7221 [ -6.27313737, -0.00043075, 0.00026390, 7.27270661, 0.99868415, 0.99930535, 0.49322891],7222 [ -6.27313751, -0.00043069, 0.00026386, 7.27270682, 0.99868433, 0.99930545, 0.49322887],7223 [ -6.27313765, -0.00043063, 0.00026382, 7.27270702, 0.99868452, 0.99930554, 0.49322881],7224 [ -6.27313780, -0.00043057, 0.00026379, 7.27270722, 0.99868470, 0.99930564, 0.49322892],7225 [ -6.27313794, -0.00043051, 0.00026375, 7.27270743, 0.99868488, 0.99930574, 0.49322891],7226 [ -6.27313808, -0.00043045, 0.00026371, 7.27270763, 0.99868507, 0.99930583, 0.49322891],7227 [ -6.27313823, -0.00043039, 0.00026368, 7.27270783, 0.99868525, 0.99930593, 0.49322893],7228 [ -6.27313837, -0.00043033, 0.00026364, 7.27270804, 0.99868543, 0.99930603, 0.49322886],7229 [ -6.27313851, -0.00043027, 0.00026360, 7.27270824, 0.99868561, 0.99930612, 0.49322902],7230 [ -6.27313865, -0.00043021, 0.00026357, 7.27270844, 0.99868580, 0.99930622, 0.49322900],7231 [ -6.27313880, -0.00043015, 0.00026353, 7.27270864, 0.99868598, 0.99930632, 0.49322904],7232 [ -6.27313894, -0.00043009, 0.00026349, 7.27270885, 0.99868616, 0.99930641, 0.49322903],7233 [ -6.27313908, -0.00043003, 0.00026346, 7.27270905, 0.99868634, 0.99930651, 0.49322900],7234 [ -6.27313923, -0.00042997, 0.00026342, 7.27270925, 0.99868653, 0.99930660, 0.49322904],7235 [ -6.27313937, -0.00042991, 0.00026338, 7.27270946, 0.99868671, 0.99930670, 0.49322912],7236 [ -6.27313951, -0.00042985, 0.00026335, 7.27270966, 0.99868689, 0.99930680, 0.49322917],7237 [ -6.27313966, -0.00042980, 0.00026331, 7.27270986, 0.99868707, 0.99930689, 0.49322903],7238 [ -6.27313980, -0.00042974, 0.00026328, 7.27271006, 0.99868726, 0.99930699, 0.49322919],7239 [ -6.27313994, -0.00042968, 0.00026324, 7.27271027, 0.99868744, 0.99930709, 0.49322915],7240 [ -6.27314008, -0.00042962, 0.00026320, 7.27271047, 0.99868762, 0.99930718, 0.49322921],7241 [ -6.27314023, -0.00042956, 0.00026317, 7.27271067, 0.99868780, 0.99930728, 0.49322918],7242 [ -6.27314037, -0.00042950, 0.00026313, 7.27271087, 0.99868799, 0.99930737, 0.49322930],7243 [ -6.27314051, -0.00042944, 0.00026309, 7.27271107, 0.99868817, 0.99930747, 0.49322927],7244 [ -6.27314065, -0.00042938, 0.00026306, 7.27271128, 0.99868835, 0.99930757, 0.49322931],7245 [ -6.27314080, -0.00042932, 0.00026302, 7.27271148, 0.99868853, 0.99930766, 0.49322934],7246 [ -6.27314094, -0.00042926, 0.00026298, 7.27271168, 0.99868871, 0.99930776, 0.49322928],7247 [ -6.27314108, -0.00042920, 0.00026295, 7.27271188, 0.99868890, 0.99930785, 0.49322942],7248 [ -6.27314122, -0.00042914, 0.00026291, 7.27271208, 0.99868908, 0.99930795, 0.49322942],7249 [ -6.27314137, -0.00042908, 0.00026287, 7.27271229, 0.99868926, 0.99930805, 0.49322944],7250 [ -6.27314151, -0.00042902, 0.00026284, 7.27271249, 0.99868944, 0.99930814, 0.49322951],7251 [ -6.27314165, -0.00042896, 0.00026280, 7.27271269, 0.99868962, 0.99930824, 0.49322944],7252 [ -6.27314179, -0.00042890, 0.00026276, 7.27271289, 0.99868980, 0.99930833, 0.49322951],7253 [ -6.27314194, -0.00042884, 0.00026273, 7.27271309, 0.99868999, 0.99930843, 0.49322954],7254 [ -6.27314208, -0.00042878, 0.00026269, 7.27271329, 0.99869017, 0.99930853, 0.49322961],7255 [ -6.27314222, -0.00042872, 0.00026265, 7.27271350, 0.99869035, 0.99930862, 0.49322958],7256 [ -6.27314236, -0.00042866, 0.00026262, 7.27271370, 0.99869053, 0.99930872, 0.49322958],7257 [ -6.27314250, -0.00042861, 0.00026258, 7.27271390, 0.99869071, 0.99930881, 0.49322960],7258 [ -6.27314265, -0.00042855, 0.00026255, 7.27271410, 0.99869089, 0.99930891, 0.49322954],7259 [ -6.27314279, -0.00042849, 0.00026251, 7.27271430, 0.99869107, 0.99930900, 0.49322960],7260 [ -6.27314293, -0.00042843, 0.00026247, 7.27271450, 0.99869125, 0.99930910, 0.49322964],7261 [ -6.27314307, -0.00042837, 0.00026244, 7.27271470, 0.99869144, 0.99930920, 0.49322967],7262 [ -6.27314321, -0.00042831, 0.00026240, 7.27271491, 0.99869162, 0.99930929, 0.49322963],7263 [ -6.27314336, -0.00042825, 0.00026236, 7.27271511, 0.99869180, 0.99930939, 0.49322972],7264 [ -6.27314350, -0.00042819, 0.00026233, 7.27271531, 0.99869198, 0.99930948, 0.49322962],7265 [ -6.27314364, -0.00042813, 0.00026229, 7.27271551, 0.99869216, 0.99930958, 0.49322977],7266 [ -6.27314378, -0.00042807, 0.00026226, 7.27271571, 0.99869234, 0.99930967, 0.49322982],7267 [ -6.27314392, -0.00042801, 0.00026222, 7.27271591, 0.99869252, 0.99930977, 0.49322974],7268 [ -6.27314406, -0.00042795, 0.00026218, 7.27271611, 0.99869270, 0.99930986, 0.49322983],7269 [ -6.27314421, -0.00042789, 0.00026215, 7.27271631, 0.99869288, 0.99930996, 0.49322981],7270 [ -6.27314435, -0.00042783, 0.00026211, 7.27271651, 0.99869306, 0.99931005, 0.49322987],7271 [ -6.27314449, -0.00042778, 0.00026207, 7.27271671, 0.99869325, 0.99931015, 0.49322991],7272 [ -6.27314463, -0.00042772, 0.00026204, 7.27271691, 0.99869343, 0.99931025, 0.49322985],7273 [ -6.27314477, -0.00042766, 0.00026200, 7.27271711, 0.99869361, 0.99931034, 0.49322989],7274 [ -6.27314491, -0.00042760, 0.00026197, 7.27271731, 0.99869379, 0.99931044, 0.49322995],7275 [ -6.27314505, -0.00042754, 0.00026193, 7.27271752, 0.99869397, 0.99931053, 0.49322998],7276 [ -6.27314520, -0.00042748, 0.00026189, 7.27271772, 0.99869415, 0.99931063, 0.49322992],7277 [ -6.27314534, -0.00042742, 0.00026186, 7.27271792, 0.99869433, 0.99931072, 0.49322999],7278 [ -6.27314548, -0.00042736, 0.00026182, 7.27271812, 0.99869451, 0.99931082, 0.49323014],7279 [ -6.27314562, -0.00042730, 0.00026178, 7.27271832, 0.99869469, 0.99931091, 0.49323001],7280 [ -6.27314576, -0.00042724, 0.00026175, 7.27271852, 0.99869487, 0.99931101, 0.49323007],7281 [ -6.27314590, -0.00042719, 0.00026171, 7.27271872, 0.99869505, 0.99931110, 0.49323010],7282 [ -6.27314604, -0.00042713, 0.00026168, 7.27271892, 0.99869523, 0.99931120, 0.49323018],7283 [ -6.27314618, -0.00042707, 0.00026164, 7.27271912, 0.99869541, 0.99931129, 0.49323018],7284 [ -6.27314633, -0.00042701, 0.00026160, 7.27271932, 0.99869559, 0.99931139, 0.49323016],7285 [ -6.27314647, -0.00042695, 0.00026157, 7.27271952, 0.99869577, 0.99931148, 0.49323007],7286 [ -6.27314661, -0.00042689, 0.00026153, 7.27271972, 0.99869595, 0.99931158, 0.49323022],7287 [ -6.27314675, -0.00042683, 0.00026150, 7.27271992, 0.99869613, 0.99931167, 0.49323025],7288 [ -6.27314689, -0.00042677, 0.00026146, 7.27272012, 0.99869631, 0.99931177, 0.49323030],7289 [ -6.27314703, -0.00042671, 0.00026142, 7.27272032, 0.99869649, 0.99931186, 0.49323027],7290 [ -6.27314717, -0.00042666, 0.00026139, 7.27272051, 0.99869667, 0.99931196, 0.49323031],7291 [ -6.27314731, -0.00042660, 0.00026135, 7.27272071, 0.99869685, 0.99931205, 0.49323029],7292 [ -6.27314745, -0.00042654, 0.00026132, 7.27272091, 0.99869703, 0.99931215, 0.49323033],7293 [ -6.27314759, -0.00042648, 0.00026128, 7.27272111, 0.99869721, 0.99931224, 0.49323043],7294 [ -6.27314773, -0.00042642, 0.00026124, 7.27272131, 0.99869739, 0.99931234, 0.49323035],7295 [ -6.27314787, -0.00042636, 0.00026121, 7.27272151, 0.99869757, 0.99931243, 0.49323032],7296 [ -6.27314801, -0.00042630, 0.00026117, 7.27272171, 0.99869775, 0.99931253, 0.49323043],7297 [ -6.27314815, -0.00042624, 0.00026114, 7.27272191, 0.99869792, 0.99931262, 0.49323038],7298 [ -6.27314830, -0.00042619, 0.00026110, 7.27272211, 0.99869810, 0.99931272, 0.49323055],7299 [ -6.27314844, -0.00042613, 0.00026106, 7.27272231, 0.99869828, 0.99931281, 0.49323047],7300 [ -6.27314858, -0.00042607, 0.00026103, 7.27272251, 0.99869846, 0.99931290, 0.49323039],7301 [ -6.27314872, -0.00042601, 0.00026099, 7.27272271, 0.99869864, 0.99931300, 0.49323039],7302 [ -6.27314886, -0.00042595, 0.00026096, 7.27272291, 0.99869882, 0.99931309, 0.49323057],7303 [ -6.27314900, -0.00042589, 0.00026092, 7.27272310, 0.99869900, 0.99931319, 0.49323051],7304 [ -6.27314914, -0.00042583, 0.00026088, 7.27272330, 0.99869918, 0.99931328, 0.49323056],7305 [ -6.27314928, -0.00042578, 0.00026085, 7.27272350, 0.99869936, 0.99931338, 0.49323064],7306 [ -6.27314942, -0.00042572, 0.00026081, 7.27272370, 0.99869954, 0.99931347, 0.49323065],7307 [ -6.27314956, -0.00042566, 0.00026078, 7.27272390, 0.99869972, 0.99931357, 0.49323065],7308 [ -6.27314970, -0.00042560, 0.00026074, 7.27272410, 0.99869989, 0.99931366, 0.49323070],7309 [ -6.27314984, -0.00042554, 0.00026070, 7.27272430, 0.99870007, 0.99931375, 0.49323062],7310 [ -6.27314998, -0.00042548, 0.00026067, 7.27272450, 0.99870025, 0.99931385, 0.49323063],7311 [ -6.27315012, -0.00042542, 0.00026063, 7.27272469, 0.99870043, 0.99931394, 0.49323075],7312 [ -6.27315026, -0.00042537, 0.00026060, 7.27272489, 0.99870061, 0.99931404, 0.49323074],7313 [ -6.27315040, -0.00042531, 0.00026056, 7.27272509, 0.99870079, 0.99931413, 0.49323081],7314 [ -6.27315054, -0.00042525, 0.00026052, 7.27272529, 0.99870097, 0.99931423, 0.49323082],7315 [ -6.27315068, -0.00042519, 0.00026049, 7.27272549, 0.99870115, 0.99931432, 0.49323079],7316 [ -6.27315082, -0.00042513, 0.00026045, 7.27272569, 0.99870132, 0.99931441, 0.49323072],7317 [ -6.27315096, -0.00042507, 0.00026042, 7.27272588, 0.99870150, 0.99931451, 0.49323088],7318 [ -6.27315110, -0.00042502, 0.00026038, 7.27272608, 0.99870168, 0.99931460, 0.49323096],7319 [ -6.27315124, -0.00042496, 0.00026035, 7.27272628, 0.99870186, 0.99931470, 0.49323088],7320 [ -6.27315138, -0.00042490, 0.00026031, 7.27272648, 0.99870204, 0.99931479, 0.49323085],7321 [ -6.27315152, -0.00042484, 0.00026027, 7.27272668, 0.99870222, 0.99931489, 0.49323089],7322 [ -6.27315165, -0.00042478, 0.00026024, 7.27272687, 0.99870239, 0.99931498, 0.49323085],7323 [ -6.27315179, -0.00042472, 0.00026020, 7.27272707, 0.99870257, 0.99931507, 0.49323101],7324 [ -6.27315193, -0.00042467, 0.00026017, 7.27272727, 0.99870275, 0.99931517, 0.49323094],7325 [ -6.27315207, -0.00042461, 0.00026013, 7.27272747, 0.99870293, 0.99931526, 0.49323104],7326 [ -6.27315221, -0.00042455, 0.00026010, 7.27272766, 0.99870311, 0.99931535, 0.49323100],7327 [ -6.27315235, -0.00042449, 0.00026006, 7.27272786, 0.99870328, 0.99931545, 0.49323105],7328 [ -6.27315249, -0.00042443, 0.00026002, 7.27272806, 0.99870346, 0.99931554, 0.49323112],7329 [ -6.27315263, -0.00042437, 0.00025999, 7.27272826, 0.99870364, 0.99931564, 0.49323100],7330 [ -6.27315277, -0.00042432, 0.00025995, 7.27272845, 0.99870382, 0.99931573, 0.49323104],7331 [ -6.27315291, -0.00042426, 0.00025992, 7.27272865, 0.99870399, 0.99931582, 0.49323113],7332 [ -6.27315305, -0.00042420, 0.00025988, 7.27272885, 0.99870417, 0.99931592, 0.49323100],7333 [ -6.27315319, -0.00042414, 0.00025985, 7.27272905, 0.99870435, 0.99931601, 0.49323118],7334 [ -6.27315333, -0.00042408, 0.00025981, 7.27272924, 0.99870453, 0.99931611, 0.49323122],7335 [ -6.27315347, -0.00042403, 0.00025978, 7.27272944, 0.99870470, 0.99931620, 0.49323123],7336 [ -6.27315360, -0.00042397, 0.00025974, 7.27272964, 0.99870488, 0.99931629, 0.49323124],7337 [ -6.27315374, -0.00042391, 0.00025970, 7.27272983, 0.99870506, 0.99931639, 0.49323127],7338 [ -6.27315388, -0.00042385, 0.00025967, 7.27273003, 0.99870524, 0.99931648, 0.49323133],7339 [ -6.27315402, -0.00042379, 0.00025963, 7.27273023, 0.99870541, 0.99931657, 0.49323140],7340 [ -6.27315416, -0.00042374, 0.00025960, 7.27273042, 0.99870559, 0.99931667, 0.49323133],7341 [ -6.27315430, -0.00042368, 0.00025956, 7.27273062, 0.99870577, 0.99931676, 0.49323138],7342 [ -6.27315444, -0.00042362, 0.00025953, 7.27273082, 0.99870595, 0.99931685, 0.49323140],7343 [ -6.27315458, -0.00042356, 0.00025949, 7.27273101, 0.99870612, 0.99931695, 0.49323145],7344 [ -6.27315472, -0.00042350, 0.00025946, 7.27273121, 0.99870630, 0.99931704, 0.49323139],7345 [ -6.27315485, -0.00042345, 0.00025942, 7.27273141, 0.99870648, 0.99931713, 0.49323136],7346 [ -6.27315499, -0.00042339, 0.00025938, 7.27273160, 0.99870665, 0.99931723, 0.49323144],7347 [ -6.27315513, -0.00042333, 0.00025935, 7.27273180, 0.99870683, 0.99931732, 0.49323141],7348 [ -6.27315527, -0.00042327, 0.00025931, 7.27273200, 0.99870701, 0.99931741, 0.49323140],7349 [ -6.27315541, -0.00042321, 0.00025928, 7.27273219, 0.99870719, 0.99931751, 0.49323155],7350 [ -6.27315555, -0.00042316, 0.00025924, 7.27273239, 0.99870736, 0.99931760, 0.49323157],7351 [ -6.27315569, -0.00042310, 0.00025921, 7.27273259, 0.99870754, 0.99931769, 0.49323161],7352 [ -6.27315582, -0.00042304, 0.00025917, 7.27273278, 0.99870772, 0.99931779, 0.49323157],7353 [ -6.27315596, -0.00042298, 0.00025914, 7.27273298, 0.99870789, 0.99931788, 0.49323162],7354 [ -6.27315610, -0.00042292, 0.00025910, 7.27273318, 0.99870807, 0.99931797, 0.49323164],7355 [ -6.27315624, -0.00042287, 0.00025907, 7.27273337, 0.99870825, 0.99931807, 0.49323172],7356 [ -6.27315638, -0.00042281, 0.00025903, 7.27273357, 0.99870842, 0.99931816, 0.49323163],7357 [ -6.27315652, -0.00042275, 0.00025899, 7.27273376, 0.99870860, 0.99931825, 0.49323158],7358 [ -6.27315665, -0.00042269, 0.00025896, 7.27273396, 0.99870877, 0.99931835, 0.49323168],7359 [ -6.27315679, -0.00042264, 0.00025892, 7.27273416, 0.99870895, 0.99931844, 0.49323175],7360 [ -6.27315693, -0.00042258, 0.00025889, 7.27273435, 0.99870913, 0.99931853, 0.49323172],7361 [ -6.27315707, -0.00042252, 0.00025885, 7.27273455, 0.99870930, 0.99931863, 0.49323175],7362 [ -6.27315721, -0.00042246, 0.00025882, 7.27273474, 0.99870948, 0.99931872, 0.49323179],7363 [ -6.27315734, -0.00042241, 0.00025878, 7.27273494, 0.99870966, 0.99931881, 0.49323178],7364 [ -6.27315748, -0.00042235, 0.00025875, 7.27273513, 0.99870983, 0.99931891, 0.49323183],7365 [ -6.27315762, -0.00042229, 0.00025871, 7.27273533, 0.99871001, 0.99931900, 0.49323180],7366 [ -6.27315776, -0.00042223, 0.00025868, 7.27273552, 0.99871018, 0.99931909, 0.49323181],7367 [ -6.27315790, -0.00042218, 0.00025864, 7.27273572, 0.99871036, 0.99931918, 0.49323188],7368 [ -6.27315803, -0.00042212, 0.00025861, 7.27273592, 0.99871054, 0.99931928, 0.49323197],7369 [ -6.27315817, -0.00042206, 0.00025857, 7.27273611, 0.99871071, 0.99931937, 0.49323190],7370 [ -6.27315831, -0.00042200, 0.00025854, 7.27273631, 0.99871089, 0.99931946, 0.49323185],7371 [ -6.27315845, -0.00042194, 0.00025850, 7.27273650, 0.99871106, 0.99931956, 0.49323199],7372 [ -6.27315858, -0.00042189, 0.00025846, 7.27273670, 0.99871124, 0.99931965, 0.49323204],7373 [ -6.27315872, -0.00042183, 0.00025843, 7.27273689, 0.99871141, 0.99931974, 0.49323191],7374 [ -6.27315886, -0.00042177, 0.00025839, 7.27273709, 0.99871159, 0.99931983, 0.49323202],7375 [ -6.27315900, -0.00042171, 0.00025836, 7.27273728, 0.99871177, 0.99931993, 0.49323199],7376 [ -6.27315913, -0.00042166, 0.00025832, 7.27273748, 0.99871194, 0.99932002, 0.49323200],7377 [ -6.27315927, -0.00042160, 0.00025829, 7.27273767, 0.99871212, 0.99932011, 0.49323212],7378 [ -6.27315941, -0.00042154, 0.00025825, 7.27273787, 0.99871229, 0.99932020, 0.49323215],7379 [ -6.27315955, -0.00042149, 0.00025822, 7.27273806, 0.99871247, 0.99932030, 0.49323211],7380 [ -6.27315968, -0.00042143, 0.00025818, 7.27273826, 0.99871264, 0.99932039, 0.49323217],7381 [ -6.27315982, -0.00042137, 0.00025815, 7.27273845, 0.99871282, 0.99932048, 0.49323219],7382 [ -6.27315996, -0.00042131, 0.00025811, 7.27273864, 0.99871299, 0.99932057, 0.49323223],7383 [ -6.27316010, -0.00042126, 0.00025808, 7.27273884, 0.99871317, 0.99932067, 0.49323224],7384 [ -6.27316023, -0.00042120, 0.00025804, 7.27273903, 0.99871334, 0.99932076, 0.49323221],7385 [ -6.27316037, -0.00042114, 0.00025801, 7.27273923, 0.99871352, 0.99932085, 0.49323224],7386 [ -6.27316051, -0.00042108, 0.00025797, 7.27273942, 0.99871369, 0.99932094, 0.49323220],7387 [ -6.27316064, -0.00042103, 0.00025794, 7.27273962, 0.99871387, 0.99932104, 0.49323229],7388 [ -6.27316078, -0.00042097, 0.00025790, 7.27273981, 0.99871404, 0.99932113, 0.49323228],7389 [ -6.27316092, -0.00042091, 0.00025787, 7.27274001, 0.99871422, 0.99932122, 0.49323228],7390 [ -6.27316105, -0.00042085, 0.00025783, 7.27274020, 0.99871439, 0.99932131, 0.49323234],7391 [ -6.27316119, -0.00042080, 0.00025780, 7.27274039, 0.99871457, 0.99932141, 0.49323243],7392 [ -6.27316133, -0.00042074, 0.00025776, 7.27274059, 0.99871474, 0.99932150, 0.49323241],7393 [ -6.27316147, -0.00042068, 0.00025773, 7.27274078, 0.99871492, 0.99932159, 0.49323242],7394 [ -6.27316160, -0.00042063, 0.00025769, 7.27274098, 0.99871509, 0.99932168, 0.49323234],7395 [ -6.27316174, -0.00042057, 0.00025766, 7.27274117, 0.99871527, 0.99932177, 0.49323243],7396 [ -6.27316188, -0.00042051, 0.00025762, 7.27274136, 0.99871544, 0.99932187, 0.49323249],7397 [ -6.27316201, -0.00042045, 0.00025759, 7.27274156, 0.99871562, 0.99932196, 0.49323249],7398 [ -6.27316215, -0.00042040, 0.00025755, 7.27274175, 0.99871579, 0.99932205, 0.49323255],7399 [ -6.27316229, -0.00042034, 0.00025752, 7.27274195, 0.99871597, 0.99932214, 0.49323261],7400 [ -6.27316242, -0.00042028, 0.00025748, 7.27274214, 0.99871614, 0.99932223, 0.49323266],7401 [ -6.27316256, -0.00042023, 0.00025745, 7.27274233, 0.99871631, 0.99932233, 0.49323261],7402 [ -6.27316270, -0.00042017, 0.00025741, 7.27274253, 0.99871649, 0.99932242, 0.49323265],7403 [ -6.27316283, -0.00042011, 0.00025738, 7.27274272, 0.99871666, 0.99932251, 0.49323261],7404 [ -6.27316297, -0.00042006, 0.00025734, 7.27274291, 0.99871684, 0.99932260, 0.49323268],7405 [ -6.27316311, -0.00042000, 0.00025731, 7.27274311, 0.99871701, 0.99932269, 0.49323261],7406 [ -6.27316324, -0.00041994, 0.00025727, 7.27274330, 0.99871719, 0.99932279, 0.49323277],7407 [ -6.27316338, -0.00041988, 0.00025724, 7.27274349, 0.99871736, 0.99932288, 0.49323278],7408 [ -6.27316351, -0.00041983, 0.00025720, 7.27274369, 0.99871753, 0.99932297, 0.49323270],7409 [ -6.27316365, -0.00041977, 0.00025717, 7.27274388, 0.99871771, 0.99932306, 0.49323262],7410 [ -6.27316379, -0.00041971, 0.00025713, 7.27274407, 0.99871788, 0.99932315, 0.49323267],7411 [ -6.27316392, -0.00041966, 0.00025710, 7.27274427, 0.99871806, 0.99932325, 0.49323282],7412 [ -6.27316406, -0.00041960, 0.00025706, 7.27274446, 0.99871823, 0.99932334, 0.49323274],7413 [ -6.27316420, -0.00041954, 0.00025703, 7.27274465, 0.99871840, 0.99932343, 0.49323276],7414 [ -6.27316433, -0.00041949, 0.00025699, 7.27274485, 0.99871858, 0.99932352, 0.49323279],7415 [ -6.27316447, -0.00041943, 0.00025696, 7.27274504, 0.99871875, 0.99932361, 0.49323285],7416 [ -6.27316460, -0.00041937, 0.00025692, 7.27274523, 0.99871892, 0.99932370, 0.49323286],7417 [ -6.27316474, -0.00041932, 0.00025689, 7.27274542, 0.99871910, 0.99932380, 0.49323296],7418 [ -6.27316488, -0.00041926, 0.00025685, 7.27274562, 0.99871927, 0.99932389, 0.49323294],7419 [ -6.27316501, -0.00041920, 0.00025682, 7.27274581, 0.99871944, 0.99932398, 0.49323292],7420 [ -6.27316515, -0.00041915, 0.00025678, 7.27274600, 0.99871962, 0.99932407, 0.49323285],7421 [ -6.27316528, -0.00041909, 0.00025675, 7.27274619, 0.99871979, 0.99932416, 0.49323292],7422 [ -6.27316542, -0.00041903, 0.00025671, 7.27274639, 0.99871996, 0.99932425, 0.49323303],7423 [ -6.27316555, -0.00041898, 0.00025668, 7.27274658, 0.99872014, 0.99932435, 0.49323312],7424 [ -6.27316569, -0.00041892, 0.00025664, 7.27274677, 0.99872031, 0.99932444, 0.49323326],7425 [ -6.27316583, -0.00041886, 0.00025661, 7.27274696, 0.99872048, 0.99932453, 0.49323308],7426 [ -6.27316596, -0.00041881, 0.00025658, 7.27274716, 0.99872066, 0.99932462, 0.49323307],7427 [ -6.27316610, -0.00041875, 0.00025654, 7.27274735, 0.99872083, 0.99932471, 0.49323314],7428 [ -6.27316623, -0.00041869, 0.00025651, 7.27274754, 0.99872100, 0.99932480, 0.49323312],7429 [ -6.27316637, -0.00041864, 0.00025647, 7.27274773, 0.99872118, 0.99932489, 0.49323320],7430 [ -6.27316650, -0.00041858, 0.00025644, 7.27274793, 0.99872135, 0.99932498, 0.49323311],7431 [ -6.27316664, -0.00041852, 0.00025640, 7.27274812, 0.99872152, 0.99932508, 0.49323311],7432 [ -6.27316677, -0.00041847, 0.00025637, 7.27274831, 0.99872170, 0.99932517, 0.49323317],7433 [ -6.27316691, -0.00041841, 0.00025633, 7.27274850, 0.99872187, 0.99932526, 0.49323323],7434 [ -6.27316705, -0.00041835, 0.00025630, 7.27274869, 0.99872204, 0.99932535, 0.49323325],7435 [ -6.27316718, -0.00041830, 0.00025626, 7.27274888, 0.99872221, 0.99932544, 0.49323334],7436 [ -6.27316732, -0.00041824, 0.00025623, 7.27274908, 0.99872239, 0.99932553, 0.49323332],7437 [ -6.27316745, -0.00041818, 0.00025619, 7.27274927, 0.99872256, 0.99932562, 0.49323331],7438 [ -6.27316759, -0.00041813, 0.00025616, 7.27274946, 0.99872273, 0.99932571, 0.49323331],7439 [ -6.27316772, -0.00041807, 0.00025612, 7.27274965, 0.99872290, 0.99932581, 0.49323346],7440 [ -6.27316786, -0.00041801, 0.00025609, 7.27274984, 0.99872308, 0.99932590, 0.49323331],7441 [ -6.27316799, -0.00041796, 0.00025606, 7.27275003, 0.99872325, 0.99932599, 0.49323339],7442 [ -6.27316813, -0.00041790, 0.00025602, 7.27275023, 0.99872342, 0.99932608, 0.49323343],7443 [ -6.27316826, -0.00041784, 0.00025599, 7.27275042, 0.99872359, 0.99932617, 0.49323337],7444 [ -6.27316840, -0.00041779, 0.00025595, 7.27275061, 0.99872377, 0.99932626, 0.49323342],7445 [ -6.27316853, -0.00041773, 0.00025592, 7.27275080, 0.99872394, 0.99932635, 0.49323347],7446 [ -6.27316867, -0.00041768, 0.00025588, 7.27275099, 0.99872411, 0.99932644, 0.49323353],7447 [ -6.27316880, -0.00041762, 0.00025585, 7.27275118, 0.99872428, 0.99932653, 0.49323349],7448 [ -6.27316894, -0.00041756, 0.00025581, 7.27275137, 0.99872446, 0.99932662, 0.49323358],7449 [ -6.27316907, -0.00041751, 0.00025578, 7.27275157, 0.99872463, 0.99932671, 0.49323354],7450 [ -6.27316921, -0.00041745, 0.00025574, 7.27275176, 0.99872480, 0.99932681, 0.49323350],7451 [ -6.27316934, -0.00041739, 0.00025571, 7.27275195, 0.99872497, 0.99932690, 0.49323356],7452 [ -6.27316948, -0.00041734, 0.00025568, 7.27275214, 0.99872514, 0.99932699, 0.49323355],7453 [ -6.27316961, -0.00041728, 0.00025564, 7.27275233, 0.99872532, 0.99932708, 0.49323359],7454 [ -6.27316974, -0.00041722, 0.00025561, 7.27275252, 0.99872549, 0.99932717, 0.49323360],7455 [ -6.27316988, -0.00041717, 0.00025557, 7.27275271, 0.99872566, 0.99932726, 0.49323362],7456 [ -6.27317001, -0.00041711, 0.00025554, 7.27275290, 0.99872583, 0.99932735, 0.49323369],7457 [ -6.27317015, -0.00041706, 0.00025550, 7.27275309, 0.99872600, 0.99932744, 0.49323369],7458 [ -6.27317028, -0.00041700, 0.00025547, 7.27275328, 0.99872617, 0.99932753, 0.49323368],7459 [ -6.27317042, -0.00041694, 0.00025543, 7.27275347, 0.99872635, 0.99932762, 0.49323375],7460 [ -6.27317055, -0.00041689, 0.00025540, 7.27275366, 0.99872652, 0.99932771, 0.49323378],7461 [ -6.27317069, -0.00041683, 0.00025537, 7.27275385, 0.99872669, 0.99932780, 0.49323373],7462 [ -6.27317082, -0.00041678, 0.00025533, 7.27275405, 0.99872686, 0.99932789, 0.49323370],7463 [ -6.27317095, -0.00041672, 0.00025530, 7.27275424, 0.99872703, 0.99932798, 0.49323379],7464 [ -6.27317109, -0.00041666, 0.00025526, 7.27275443, 0.99872720, 0.99932807, 0.49323375],7465 [ -6.27317122, -0.00041661, 0.00025523, 7.27275462, 0.99872738, 0.99932816, 0.49323392],7466 [ -6.27317136, -0.00041655, 0.00025519, 7.27275481, 0.99872755, 0.99932826, 0.49323391],7467 [ -6.27317149, -0.00041649, 0.00025516, 7.27275500, 0.99872772, 0.99932835, 0.49323391],7468 [ -6.27317163, -0.00041644, 0.00025512, 7.27275519, 0.99872789, 0.99932844, 0.49323388],7469 [ -6.27317176, -0.00041638, 0.00025509, 7.27275538, 0.99872806, 0.99932853, 0.49323395],7470 [ -6.27317189, -0.00041633, 0.00025506, 7.27275557, 0.99872823, 0.99932862, 0.49323385],7471 [ -6.27317203, -0.00041627, 0.00025502, 7.27275576, 0.99872840, 0.99932871, 0.49323392],7472 [ -6.27317216, -0.00041621, 0.00025499, 7.27275595, 0.99872857, 0.99932880, 0.49323402],7473 [ -6.27317230, -0.00041616, 0.00025495, 7.27275614, 0.99872874, 0.99932889, 0.49323405],7474 [ -6.27317243, -0.00041610, 0.00025492, 7.27275633, 0.99872892, 0.99932898, 0.49323405],7475 [ -6.27317256, -0.00041605, 0.00025488, 7.27275652, 0.99872909, 0.99932907, 0.49323408],7476 [ -6.27317270, -0.00041599, 0.00025485, 7.27275671, 0.99872926, 0.99932916, 0.49323410],7477 [ -6.27317283, -0.00041594, 0.00025482, 7.27275690, 0.99872943, 0.99932925, 0.49323410],7478 [ -6.27317297, -0.00041588, 0.00025478, 7.27275709, 0.99872960, 0.99932934, 0.49323416],7479 [ -6.27317310, -0.00041582, 0.00025475, 7.27275728, 0.99872977, 0.99932943, 0.49323413],7480 [ -6.27317323, -0.00041577, 0.00025471, 7.27275746, 0.99872994, 0.99932952, 0.49323409],7481 [ -6.27317337, -0.00041571, 0.00025468, 7.27275765, 0.99873011, 0.99932961, 0.49323425],7482 [ -6.27317350, -0.00041566, 0.00025465, 7.27275784, 0.99873028, 0.99932970, 0.49323426],7483 [ -6.27317363, -0.00041560, 0.00025461, 7.27275803, 0.99873045, 0.99932979, 0.49323421],7484 [ -6.27317377, -0.00041554, 0.00025458, 7.27275822, 0.99873062, 0.99932988, 0.49323430],7485 [ -6.27317390, -0.00041549, 0.00025454, 7.27275841, 0.99873079, 0.99932997, 0.49323422],7486 [ -6.27317403, -0.00041543, 0.00025451, 7.27275860, 0.99873096, 0.99933006, 0.49323429],7487 [ -6.27317417, -0.00041538, 0.00025447, 7.27275879, 0.99873113, 0.99933015, 0.49323420],7488 [ -6.27317430, -0.00041532, 0.00025444, 7.27275898, 0.99873130, 0.99933024, 0.49323427],7489 [ -6.27317443, -0.00041527, 0.00025441, 7.27275917, 0.99873147, 0.99933033, 0.49323431],7490 [ -6.27317457, -0.00041521, 0.00025437, 7.27275936, 0.99873164, 0.99933042, 0.49323443],7491 [ -6.27317470, -0.00041515, 0.00025434, 7.27275955, 0.99873181, 0.99933051, 0.49323428],7492 [ -6.27317483, -0.00041510, 0.00025430, 7.27275974, 0.99873198, 0.99933060, 0.49323443],7493 [ -6.27317497, -0.00041504, 0.00025427, 7.27275992, 0.99873215, 0.99933069, 0.49323437],7494 [ -6.27317510, -0.00041499, 0.00025424, 7.27276011, 0.99873232, 0.99933078, 0.49323454],7495 [ -6.27317523, -0.00041493, 0.00025420, 7.27276030, 0.99873249, 0.99933087, 0.49323446],7496 [ -6.27317537, -0.00041488, 0.00025417, 7.27276049, 0.99873266, 0.99933096, 0.49323436],7497 [ -6.27317550, -0.00041482, 0.00025413, 7.27276068, 0.99873283, 0.99933105, 0.49323455],7498 [ -6.27317563, -0.00041476, 0.00025410, 7.27276087, 0.99873300, 0.99933114, 0.49323443],7499 [ -6.27317577, -0.00041471, 0.00025406, 7.27276106, 0.99873317, 0.99933123, 0.49323444],7500 [ -6.27317590, -0.00041465, 0.00025403, 7.27276124, 0.99873334, 0.99933132, 0.49323452],7501 [ -6.27317603, -0.00041460, 0.00025400, 7.27276143, 0.99873351, 0.99933140, 0.49323465],7502 [ -6.27317616, -0.00041454, 0.00025396, 7.27276162, 0.99873368, 0.99933149, 0.49323452],7503 [ -6.27317630, -0.00041449, 0.00025393, 7.27276181, 0.99873385, 0.99933158, 0.49323459],7504 [ -6.27317643, -0.00041443, 0.00025389, 7.27276200, 0.99873402, 0.99933167, 0.49323462],7505 [ -6.27317656, -0.00041438, 0.00025386, 7.27276219, 0.99873419, 0.99933176, 0.49323457],7506 [ -6.27317670, -0.00041432, 0.00025383, 7.27276237, 0.99873436, 0.99933185, 0.49323468],7507 [ -6.27317683, -0.00041427, 0.00025379, 7.27276256, 0.99873453, 0.99933194, 0.49323479],7508 [ -6.27317696, -0.00041421, 0.00025376, 7.27276275, 0.99873470, 0.99933203, 0.49323481],7509 [ -6.27317709, -0.00041415, 0.00025372, 7.27276294, 0.99873487, 0.99933212, 0.49323465],7510 [ -6.27317723, -0.00041410, 0.00025369, 7.27276313, 0.99873504, 0.99933221, 0.49323467],7511 [ -6.27317736, -0.00041404, 0.00025366, 7.27276332, 0.99873521, 0.99933230, 0.49323474],7512 [ -6.27317749, -0.00041399, 0.00025362, 7.27276350, 0.99873538, 0.99933239, 0.49323475],7513 [ -6.27317762, -0.00041393, 0.00025359, 7.27276369, 0.99873555, 0.99933248, 0.49323489],7514 [ -6.27317776, -0.00041388, 0.00025355, 7.27276388, 0.99873572, 0.99933257, 0.49323478],7515 [ -6.27317789, -0.00041382, 0.00025352, 7.27276407, 0.99873588, 0.99933266, 0.49323490],7516 [ -6.27317802, -0.00041377, 0.00025349, 7.27276425, 0.99873605, 0.99933275, 0.49323500],7517 [ -6.27317815, -0.00041371, 0.00025345, 7.27276444, 0.99873622, 0.99933283, 0.49323486],7518 [ -6.27317829, -0.00041366, 0.00025342, 7.27276463, 0.99873639, 0.99933292, 0.49323491],7519 [ -6.27317842, -0.00041360, 0.00025339, 7.27276482, 0.99873656, 0.99933301, 0.49323473],7520 [ -6.27317855, -0.00041355, 0.00025335, 7.27276500, 0.99873673, 0.99933310, 0.49323495],7521 [ -6.27317868, -0.00041349, 0.00025332, 7.27276519, 0.99873690, 0.99933319, 0.49323495],7522 [ -6.27317882, -0.00041344, 0.00025328, 7.27276538, 0.99873707, 0.99933328, 0.49323487],7523 [ -6.27317895, -0.00041338, 0.00025325, 7.27276557, 0.99873724, 0.99933337, 0.49323500],7524 [ -6.27317908, -0.00041333, 0.00025322, 7.27276575, 0.99873740, 0.99933346, 0.49323493],7525 [ -6.27317921, -0.00041327, 0.00025318, 7.27276594, 0.99873757, 0.99933355, 0.49323497],7526 [ -6.27317934, -0.00041321, 0.00025315, 7.27276613, 0.99873774, 0.99933364, 0.49323507],7527 [ -6.27317948, -0.00041316, 0.00025311, 7.27276632, 0.99873791, 0.99933373, 0.49323512],7528 [ -6.27317961, -0.00041310, 0.00025308, 7.27276650, 0.99873808, 0.99933381, 0.49323500],7529 [ -6.27317974, -0.00041305, 0.00025305, 7.27276669, 0.99873825, 0.99933390, 0.49323510],7530 [ -6.27317987, -0.00041299, 0.00025301, 7.27276688, 0.99873842, 0.99933399, 0.49323520],7531 [ -6.27318000, -0.00041294, 0.00025298, 7.27276706, 0.99873858, 0.99933408, 0.49323515],7532 [ -6.27318014, -0.00041288, 0.00025295, 7.27276725, 0.99873875, 0.99933417, 0.49323523],7533 [ -6.27318027, -0.00041283, 0.00025291, 7.27276744, 0.99873892, 0.99933426, 0.49323516],7534 [ -6.27318040, -0.00041277, 0.00025288, 7.27276762, 0.99873909, 0.99933435, 0.49323517],7535 [ -6.27318053, -0.00041272, 0.00025284, 7.27276781, 0.99873926, 0.99933444, 0.49323519],7536 [ -6.27318066, -0.00041266, 0.00025281, 7.27276800, 0.99873942, 0.99933453, 0.49323515],7537 [ -6.27318079, -0.00041261, 0.00025278, 7.27276818, 0.99873959, 0.99933461, 0.49323538],7538 [ -6.27318093, -0.00041255, 0.00025274, 7.27276837, 0.99873976, 0.99933470, 0.49323529],7539 [ -6.27318106, -0.00041250, 0.00025271, 7.27276856, 0.99873993, 0.99933479, 0.49323537],7540 [ -6.27318119, -0.00041244, 0.00025268, 7.27276874, 0.99874010, 0.99933488, 0.49323534],7541 [ -6.27318132, -0.00041239, 0.00025264, 7.27276893, 0.99874026, 0.99933497, 0.49323537],7542 [ -6.27318145, -0.00041233, 0.00025261, 7.27276912, 0.99874043, 0.99933506, 0.49323540],7543 [ -6.27318158, -0.00041228, 0.00025258, 7.27276930, 0.99874060, 0.99933515, 0.49323539],7544 [ -6.27318171, -0.00041222, 0.00025254, 7.27276949, 0.99874077, 0.99933523, 0.49323536],7545 [ -6.27318185, -0.00041217, 0.00025251, 7.27276968, 0.99874094, 0.99933532, 0.49323541],7546 [ -6.27318198, -0.00041211, 0.00025247, 7.27276986, 0.99874110, 0.99933541, 0.49323529],7547 [ -6.27318211, -0.00041206, 0.00025244, 7.27277005, 0.99874127, 0.99933550, 0.49323554],7548 [ -6.27318224, -0.00041200, 0.00025241, 7.27277023, 0.99874144, 0.99933559, 0.49323556],7549 [ -6.27318237, -0.00041195, 0.00025237, 7.27277042, 0.99874161, 0.99933568, 0.49323548],7550 [ -6.27318250, -0.00041190, 0.00025234, 7.27277061, 0.99874177, 0.99933577, 0.49323555],7551 [ -6.27318263, -0.00041184, 0.00025231, 7.27277079, 0.99874194, 0.99933585, 0.49323555],7552 [ -6.27318276, -0.00041179, 0.00025227, 7.27277098, 0.99874211, 0.99933594, 0.49323566],7553 [ -6.27318290, -0.00041173, 0.00025224, 7.27277117, 0.99874228, 0.99933603, 0.49323552],7554 [ -6.27318303, -0.00041168, 0.00025221, 7.27277135, 0.99874244, 0.99933612, 0.49323561],7555 [ -6.27318316, -0.00041162, 0.00025217, 7.27277154, 0.99874261, 0.99933621, 0.49323566],7556 [ -6.27318329, -0.00041157, 0.00025214, 7.27277172, 0.99874278, 0.99933630, 0.49323555],7557 [ -6.27318342, -0.00041151, 0.00025210, 7.27277191, 0.99874294, 0.99933638, 0.49323560],7558 [ -6.27318355, -0.00041146, 0.00025207, 7.27277209, 0.99874311, 0.99933647, 0.49323570],7559 [ -6.27318368, -0.00041140, 0.00025204, 7.27277228, 0.99874328, 0.99933656, 0.49323566],7560 [ -6.27318381, -0.00041135, 0.00025200, 7.27277246, 0.99874345, 0.99933665, 0.49323580],7561 [ -6.27318394, -0.00041129, 0.00025197, 7.27277265, 0.99874361, 0.99933674, 0.49323573],7562 [ -6.27318407, -0.00041124, 0.00025194, 7.27277284, 0.99874378, 0.99933682, 0.49323588],7563 [ -6.27318420, -0.00041118, 0.00025190, 7.27277302, 0.99874395, 0.99933691, 0.49323574],7564 [ -6.27318434, -0.00041113, 0.00025187, 7.27277321, 0.99874411, 0.99933700, 0.49323584],7565 [ -6.27318447, -0.00041107, 0.00025184, 7.27277339, 0.99874428, 0.99933709, 0.49323574],7566 [ -6.27318460, -0.00041102, 0.00025180, 7.27277358, 0.99874445, 0.99933718, 0.49323586],7567 [ -6.27318473, -0.00041097, 0.00025177, 7.27277376, 0.99874461, 0.99933726, 0.49323593],7568 [ -6.27318486, -0.00041091, 0.00025174, 7.27277395, 0.99874478, 0.99933735, 0.49323592],7569 [ -6.27318499, -0.00041086, 0.00025170, 7.27277413, 0.99874495, 0.99933744, 0.49323598],7570 [ -6.27318512, -0.00041080, 0.00025167, 7.27277432, 0.99874511, 0.99933753, 0.49323589],7571 [ -6.27318525, -0.00041075, 0.00025164, 7.27277450, 0.99874528, 0.99933762, 0.49323587],7572 [ -6.27318538, -0.00041069, 0.00025160, 7.27277469, 0.99874545, 0.99933770, 0.49323605],7573 [ -6.27318551, -0.00041064, 0.00025157, 7.27277487, 0.99874561, 0.99933779, 0.49323594],7574 [ -6.27318564, -0.00041058, 0.00025154, 7.27277506, 0.99874578, 0.99933788, 0.49323599],7575 [ -6.27318577, -0.00041053, 0.00025150, 7.27277524, 0.99874595, 0.99933797, 0.49323604],7576 [ -6.27318590, -0.00041048, 0.00025147, 7.27277543, 0.99874611, 0.99933806, 0.49323602],7577 [ -6.27318603, -0.00041042, 0.00025144, 7.27277561, 0.99874628, 0.99933814, 0.49323601],7578 [ -6.27318616, -0.00041037, 0.00025140, 7.27277580, 0.99874645, 0.99933823, 0.49323601],7579 [ -6.27318629, -0.00041031, 0.00025137, 7.27277598, 0.99874661, 0.99933832, 0.49323608],7580 [ -6.27318642, -0.00041026, 0.00025134, 7.27277616, 0.99874678, 0.99933841, 0.49323616],7581 [ -6.27318655, -0.00041020, 0.00025130, 7.27277635, 0.99874694, 0.99933849, 0.49323617],7582 [ -6.27318668, -0.00041015, 0.00025127, 7.27277653, 0.99874711, 0.99933858, 0.49323615],7583 [ -6.27318681, -0.00041009, 0.00025124, 7.27277672, 0.99874728, 0.99933867, 0.49323614],7584 [ -6.27318694, -0.00041004, 0.00025120, 7.27277690, 0.99874744, 0.99933876, 0.49323615],7585 [ -6.27318707, -0.00040999, 0.00025117, 7.27277709, 0.99874761, 0.99933884, 0.49323610],7586 [ -6.27318720, -0.00040993, 0.00025114, 7.27277727, 0.99874777, 0.99933893, 0.49323628],7587 [ -6.27318733, -0.00040988, 0.00025110, 7.27277746, 0.99874794, 0.99933902, 0.49323634],7588 [ -6.27318746, -0.00040982, 0.00025107, 7.27277764, 0.99874811, 0.99933911, 0.49323627],7589 [ -6.27318759, -0.00040977, 0.00025104, 7.27277782, 0.99874827, 0.99933919, 0.49323622],7590 [ -6.27318772, -0.00040971, 0.00025100, 7.27277801, 0.99874844, 0.99933928, 0.49323631],7591 [ -6.27318785, -0.00040966, 0.00025097, 7.27277819, 0.99874860, 0.99933937, 0.49323628],7592 [ -6.27318798, -0.00040961, 0.00025094, 7.27277838, 0.99874877, 0.99933946, 0.49323627],7593 [ -6.27318811, -0.00040955, 0.00025090, 7.27277856, 0.99874893, 0.99933954, 0.49323637],7594 [ -6.27318824, -0.00040950, 0.00025087, 7.27277874, 0.99874910, 0.99933963, 0.49323632],7595 [ -6.27318837, -0.00040944, 0.00025084, 7.27277893, 0.99874927, 0.99933972, 0.49323640],7596 [ -6.27318850, -0.00040939, 0.00025080, 7.27277911, 0.99874943, 0.99933981, 0.49323651],7597 [ -6.27318863, -0.00040934, 0.00025077, 7.27277929, 0.99874960, 0.99933989, 0.49323644],7598 [ -6.27318876, -0.00040928, 0.00025074, 7.27277948, 0.99874976, 0.99933998, 0.49323637],7599 [ -6.27318889, -0.00040923, 0.00025070, 7.27277966, 0.99874993, 0.99934007, 0.49323647],7600 [ -6.27318902, -0.00040917, 0.00025067, 7.27277985, 0.99875009, 0.99934016, 0.49323644],7601 [ -6.27318915, -0.00040912, 0.00025064, 7.27278003, 0.99875026, 0.99934024, 0.49323643],7602 [ -6.27318928, -0.00040906, 0.00025060, 7.27278021, 0.99875042, 0.99934033, 0.49323648],7603 [ -6.27318941, -0.00040901, 0.00025057, 7.27278040, 0.99875059, 0.99934042, 0.49323655],7604 [ -6.27318954, -0.00040896, 0.00025054, 7.27278058, 0.99875075, 0.99934050, 0.49323657],7605 [ -6.27318967, -0.00040890, 0.00025051, 7.27278076, 0.99875092, 0.99934059, 0.49323664],7606 [ -6.27318979, -0.00040885, 0.00025047, 7.27278095, 0.99875108, 0.99934068, 0.49323657],7607 [ -6.27318992, -0.00040879, 0.00025044, 7.27278113, 0.99875125, 0.99934077, 0.49323666],7608 [ -6.27319005, -0.00040874, 0.00025041, 7.27278131, 0.99875141, 0.99934085, 0.49323663],7609 [ -6.27319018, -0.00040869, 0.00025037, 7.27278150, 0.99875158, 0.99934094, 0.49323672],7610 [ -6.27319031, -0.00040863, 0.00025034, 7.27278168, 0.99875174, 0.99934103, 0.49323665],7611 [ -6.27319044, -0.00040858, 0.00025031, 7.27278186, 0.99875191, 0.99934111, 0.49323670],7612 [ -6.27319057, -0.00040852, 0.00025027, 7.27278204, 0.99875207, 0.99934120, 0.49323671],7613 [ -6.27319070, -0.00040847, 0.00025024, 7.27278223, 0.99875224, 0.99934129, 0.49323673],7614 [ -6.27319083, -0.00040842, 0.00025021, 7.27278241, 0.99875240, 0.99934137, 0.49323684],7615 [ -6.27319096, -0.00040836, 0.00025017, 7.27278259, 0.99875257, 0.99934146, 0.49323687],7616 [ -6.27319109, -0.00040831, 0.00025014, 7.27278278, 0.99875273, 0.99934155, 0.49323685],7617 [ -6.27319121, -0.00040826, 0.00025011, 7.27278296, 0.99875290, 0.99934164, 0.49323688],7618 [ -6.27319134, -0.00040820, 0.00025008, 7.27278314, 0.99875306, 0.99934172, 0.49323675],7619 [ -6.27319147, -0.00040815, 0.00025004, 7.27278332, 0.99875322, 0.99934181, 0.49323678],7620 [ -6.27319160, -0.00040809, 0.00025001, 7.27278351, 0.99875339, 0.99934190, 0.49323687],7621 [ -6.27319173, -0.00040804, 0.00024998, 7.27278369, 0.99875355, 0.99934198, 0.49323686],7622 [ -6.27319186, -0.00040799, 0.00024994, 7.27278387, 0.99875372, 0.99934207, 0.49323698],7623 [ -6.27319199, -0.00040793, 0.00024991, 7.27278405, 0.99875388, 0.99934216, 0.49323692],7624 [ -6.27319212, -0.00040788, 0.00024988, 7.27278424, 0.99875405, 0.99934224, 0.49323708],7625 [ -6.27319224, -0.00040783, 0.00024985, 7.27278442, 0.99875421, 0.99934233, 0.49323704],7626 [ -6.27319237, -0.00040777, 0.00024981, 7.27278460, 0.99875437, 0.99934242, 0.49323700],7627 [ -6.27319250, -0.00040772, 0.00024978, 7.27278478, 0.99875454, 0.99934250, 0.49323693],7628 [ -6.27319263, -0.00040766, 0.00024975, 7.27278497, 0.99875470, 0.99934259, 0.49323702],7629 [ -6.27319276, -0.00040761, 0.00024971, 7.27278515, 0.99875487, 0.99934268, 0.49323716],7630 [ -6.27319289, -0.00040756, 0.00024968, 7.27278533, 0.99875503, 0.99934276, 0.49323703],7631 [ -6.27319302, -0.00040750, 0.00024965, 7.27278551, 0.99875519, 0.99934285, 0.49323706],7632 [ -6.27319314, -0.00040745, 0.00024961, 7.27278569, 0.99875536, 0.99934294, 0.49323706],7633 [ -6.27319327, -0.00040740, 0.00024958, 7.27278588, 0.99875552, 0.99934302, 0.49323714],7634 [ -6.27319340, -0.00040734, 0.00024955, 7.27278606, 0.99875569, 0.99934311, 0.49323706],7635 [ -6.27319353, -0.00040729, 0.00024952, 7.27278624, 0.99875585, 0.99934320, 0.49323708],7636 [ -6.27319366, -0.00040724, 0.00024948, 7.27278642, 0.99875601, 0.99934328, 0.49323729],7637 [ -6.27319379, -0.00040718, 0.00024945, 7.27278660, 0.99875618, 0.99934337, 0.49323724],7638 [ -6.27319391, -0.00040713, 0.00024942, 7.27278679, 0.99875634, 0.99934345, 0.49323721],7639 [ -6.27319404, -0.00040707, 0.00024938, 7.27278697, 0.99875650, 0.99934354, 0.49323728],7640 [ -6.27319417, -0.00040702, 0.00024935, 7.27278715, 0.99875667, 0.99934363, 0.49323732],7641 [ -6.27319430, -0.00040697, 0.00024932, 7.27278733, 0.99875683, 0.99934371, 0.49323735],7642 [ -6.27319443, -0.00040691, 0.00024929, 7.27278751, 0.99875700, 0.99934380, 0.49323736],7643 [ -6.27319455, -0.00040686, 0.00024925, 7.27278769, 0.99875716, 0.99934389, 0.49323725],7644 [ -6.27319468, -0.00040681, 0.00024922, 7.27278788, 0.99875732, 0.99934397, 0.49323738],7645 [ -6.27319481, -0.00040675, 0.00024919, 7.27278806, 0.99875749, 0.99934406, 0.49323735],7646 [ -6.27319494, -0.00040670, 0.00024916, 7.27278824, 0.99875765, 0.99934414, 0.49323731],7647 [ -6.27319507, -0.00040665, 0.00024912, 7.27278842, 0.99875781, 0.99934423, 0.49323743],7648 [ -6.27319519, -0.00040659, 0.00024909, 7.27278860, 0.99875798, 0.99934432, 0.49323750],7649 [ -6.27319532, -0.00040654, 0.00024906, 7.27278878, 0.99875814, 0.99934440, 0.49323738],7650 [ -6.27319545, -0.00040649, 0.00024902, 7.27278896, 0.99875830, 0.99934449, 0.49323751],7651 [ -6.27319558, -0.00040643, 0.00024899, 7.27278914, 0.99875846, 0.99934457, 0.49323752],7652 [ -6.27319571, -0.00040638, 0.00024896, 7.27278933, 0.99875863, 0.99934466, 0.49323741],7653 [ -6.27319583, -0.00040633, 0.00024893, 7.27278951, 0.99875879, 0.99934475, 0.49323749],7654 [ -6.27319596, -0.00040627, 0.00024889, 7.27278969, 0.99875895, 0.99934483, 0.49323755],7655 [ -6.27319609, -0.00040622, 0.00024886, 7.27278987, 0.99875912, 0.99934492, 0.49323762],7656 [ -6.27319622, -0.00040617, 0.00024883, 7.27279005, 0.99875928, 0.99934501, 0.49323759],7657 [ -6.27319634, -0.00040611, 0.00024880, 7.27279023, 0.99875944, 0.99934509, 0.49323760],7658 [ -6.27319647, -0.00040606, 0.00024876, 7.27279041, 0.99875960, 0.99934518, 0.49323757],7659 [ -6.27319660, -0.00040601, 0.00024873, 7.27279059, 0.99875977, 0.99934526, 0.49323761],7660 [ -6.27319673, -0.00040595, 0.00024870, 7.27279077, 0.99875993, 0.99934535, 0.49323762],7661 [ -6.27319685, -0.00040590, 0.00024867, 7.27279095, 0.99876009, 0.99934543, 0.49323771],7662 [ -6.27319698, -0.00040585, 0.00024863, 7.27279113, 0.99876026, 0.99934552, 0.49323775],7663 [ -6.27319711, -0.00040579, 0.00024860, 7.27279131, 0.99876042, 0.99934561, 0.49323777],7664 [ -6.27319724, -0.00040574, 0.00024857, 7.27279149, 0.99876058, 0.99934569, 0.49323761],7665 [ -6.27319736, -0.00040569, 0.00024853, 7.27279168, 0.99876074, 0.99934578, 0.49323772],7666 [ -6.27319749, -0.00040563, 0.00024850, 7.27279186, 0.99876091, 0.99934586, 0.49323767],7667 [ -6.27319762, -0.00040558, 0.00024847, 7.27279204, 0.99876107, 0.99934595, 0.49323779],7668 [ -6.27319774, -0.00040553, 0.00024844, 7.27279222, 0.99876123, 0.99934603, 0.49323782],7669 [ -6.27319787, -0.00040547, 0.00024840, 7.27279240, 0.99876139, 0.99934612, 0.49323776],7670 [ -6.27319800, -0.00040542, 0.00024837, 7.27279258, 0.99876156, 0.99934621, 0.49323782],7671 [ -6.27319813, -0.00040537, 0.00024834, 7.27279276, 0.99876172, 0.99934629, 0.49323787],7672 [ -6.27319825, -0.00040532, 0.00024831, 7.27279294, 0.99876188, 0.99934638, 0.49323783],7673 [ -6.27319838, -0.00040526, 0.00024827, 7.27279312, 0.99876204, 0.99934646, 0.49323795],7674 [ -6.27319851, -0.00040521, 0.00024824, 7.27279330, 0.99876220, 0.99934655, 0.49323788],7675 [ -6.27319863, -0.00040516, 0.00024821, 7.27279348, 0.99876237, 0.99934663, 0.49323798],7676 [ -6.27319876, -0.00040510, 0.00024818, 7.27279366, 0.99876253, 0.99934672, 0.49323799],7677 [ -6.27319889, -0.00040505, 0.00024814, 7.27279384, 0.99876269, 0.99934681, 0.49323794],7678 [ -6.27319901, -0.00040500, 0.00024811, 7.27279402, 0.99876285, 0.99934689, 0.49323812],7679 [ -6.27319914, -0.00040494, 0.00024808, 7.27279420, 0.99876301, 0.99934698, 0.49323800],7680 [ -6.27319927, -0.00040489, 0.00024805, 7.27279438, 0.99876318, 0.99934706, 0.49323799],7681 [ -6.27319939, -0.00040484, 0.00024801, 7.27279456, 0.99876334, 0.99934715, 0.49323807],7682 [ -6.27319952, -0.00040479, 0.00024798, 7.27279474, 0.99876350, 0.99934723, 0.49323804],7683 [ -6.27319965, -0.00040473, 0.00024795, 7.27279492, 0.99876366, 0.99934732, 0.49323807],7684 [ -6.27319977, -0.00040468, 0.00024792, 7.27279510, 0.99876382, 0.99934740, 0.49323796],7685 [ -6.27319990, -0.00040463, 0.00024788, 7.27279527, 0.99876398, 0.99934749, 0.49323820],7686 [ -6.27320003, -0.00040457, 0.00024785, 7.27279545, 0.99876415, 0.99934757, 0.49323815],7687 [ -6.27320015, -0.00040452, 0.00024782, 7.27279563, 0.99876431, 0.99934766, 0.49323813],7688 [ -6.27320028, -0.00040447, 0.00024779, 7.27279581, 0.99876447, 0.99934774, 0.49323819],7689 [ -6.27320041, -0.00040442, 0.00024776, 7.27279599, 0.99876463, 0.99934783, 0.49323817],7690 [ -6.27320053, -0.00040436, 0.00024772, 7.27279617, 0.99876479, 0.99934791, 0.49323809],7691 [ -6.27320066, -0.00040431, 0.00024769, 7.27279635, 0.99876495, 0.99934800, 0.49323823],7692 [ -6.27320079, -0.00040426, 0.00024766, 7.27279653, 0.99876511, 0.99934809, 0.49323818],7693 [ -6.27320091, -0.00040420, 0.00024763, 7.27279671, 0.99876528, 0.99934817, 0.49323822],7694 [ -6.27320104, -0.00040415, 0.00024759, 7.27279689, 0.99876544, 0.99934826, 0.49323828],7695 [ -6.27320117, -0.00040410, 0.00024756, 7.27279707, 0.99876560, 0.99934834, 0.49323852],7696 [ -6.27320129, -0.00040405, 0.00024753, 7.27279725, 0.99876576, 0.99934843, 0.49323826],7697 [ -6.27320142, -0.00040399, 0.00024750, 7.27279743, 0.99876592, 0.99934851, 0.49323833],7698 [ -6.27320154, -0.00040394, 0.00024746, 7.27279760, 0.99876608, 0.99934860, 0.49323832],7699 [ -6.27320167, -0.00040389, 0.00024743, 7.27279778, 0.99876624, 0.99934868, 0.49323839],7700 [ -6.27320180, -0.00040383, 0.00024740, 7.27279796, 0.99876640, 0.99934877, 0.49323831],7701 [ -6.27320192, -0.00040378, 0.00024737, 7.27279814, 0.99876656, 0.99934885, 0.49323847],7702 [ -6.27320205, -0.00040373, 0.00024733, 7.27279832, 0.99876673, 0.99934894, 0.49323846],7703 [ -6.27320217, -0.00040368, 0.00024730, 7.27279850, 0.99876689, 0.99934902, 0.49323853],7704 [ -6.27320230, -0.00040362, 0.00024727, 7.27279868, 0.99876705, 0.99934911, 0.49323849],7705 [ -6.27320243, -0.00040357, 0.00024724, 7.27279886, 0.99876721, 0.99934919, 0.49323847],7706 [ -6.27320255, -0.00040352, 0.00024721, 7.27279903, 0.99876737, 0.99934928, 0.49323843],7707 [ -6.27320268, -0.00040347, 0.00024717, 7.27279921, 0.99876753, 0.99934936, 0.49323854],7708 [ -6.27320280, -0.00040341, 0.00024714, 7.27279939, 0.99876769, 0.99934944, 0.49323862],7709 [ -6.27320293, -0.00040336, 0.00024711, 7.27279957, 0.99876785, 0.99934953, 0.49323861],7710 [ -6.27320306, -0.00040331, 0.00024708, 7.27279975, 0.99876801, 0.99934961, 0.49323862],7711 [ -6.27320318, -0.00040326, 0.00024704, 7.27279993, 0.99876817, 0.99934970, 0.49323859],7712 [ -6.27320331, -0.00040320, 0.00024701, 7.27280010, 0.99876833, 0.99934978, 0.49323864],7713 [ -6.27320343, -0.00040315, 0.00024698, 7.27280028, 0.99876849, 0.99934987, 0.49323872],7714 [ -6.27320356, -0.00040310, 0.00024695, 7.27280046, 0.99876865, 0.99934995, 0.49323853],7715 [ -6.27320368, -0.00040305, 0.00024692, 7.27280064, 0.99876881, 0.99935004, 0.49323874],7716 [ -6.27320381, -0.00040299, 0.00024688, 7.27280082, 0.99876897, 0.99935012, 0.49323866],7717 [ -6.27320394, -0.00040294, 0.00024685, 7.27280099, 0.99876913, 0.99935021, 0.49323878],7718 [ -6.27320406, -0.00040289, 0.00024682, 7.27280117, 0.99876929, 0.99935029, 0.49323872],7719 [ -6.27320419, -0.00040284, 0.00024679, 7.27280135, 0.99876945, 0.99935038, 0.49323872],7720 [ -6.27320431, -0.00040278, 0.00024676, 7.27280153, 0.99876961, 0.99935046, 0.49323876],7721 [ -6.27320444, -0.00040273, 0.00024672, 7.27280171, 0.99876978, 0.99935055, 0.49323884],7722 [ -6.27320456, -0.00040268, 0.00024669, 7.27280188, 0.99876994, 0.99935063, 0.49323875],7723 [ -6.27320469, -0.00040263, 0.00024666, 7.27280206, 0.99877010, 0.99935071, 0.49323881],7724 [ -6.27320481, -0.00040257, 0.00024663, 7.27280224, 0.99877026, 0.99935080, 0.49323883],7725 [ -6.27320494, -0.00040252, 0.00024659, 7.27280242, 0.99877042, 0.99935088, 0.49323893],7726 [ -6.27320506, -0.00040247, 0.00024656, 7.27280259, 0.99877058, 0.99935097, 0.49323897],7727 [ -6.27320519, -0.00040242, 0.00024653, 7.27280277, 0.99877073, 0.99935105, 0.49323888],7728 [ -6.27320532, -0.00040237, 0.00024650, 7.27280295, 0.99877089, 0.99935114, 0.49323894],7729 [ -6.27320544, -0.00040231, 0.00024647, 7.27280313, 0.99877105, 0.99935122, 0.49323891],7730 [ -6.27320557, -0.00040226, 0.00024643, 7.27280330, 0.99877121, 0.99935130, 0.49323883],7731 [ -6.27320569, -0.00040221, 0.00024640, 7.27280348, 0.99877137, 0.99935139, 0.49323900],7732 [ -6.27320582, -0.00040216, 0.00024637, 7.27280366, 0.99877153, 0.99935147, 0.49323894],7733 [ -6.27320594, -0.00040210, 0.00024634, 7.27280384, 0.99877169, 0.99935156, 0.49323913],7734 [ -6.27320607, -0.00040205, 0.00024631, 7.27280401, 0.99877185, 0.99935164, 0.49323892],7735 [ -6.27320619, -0.00040200, 0.00024627, 7.27280419, 0.99877201, 0.99935173, 0.49323905],7736 [ -6.27320632, -0.00040195, 0.00024624, 7.27280437, 0.99877217, 0.99935181, 0.49323908],7737 [ -6.27320644, -0.00040190, 0.00024621, 7.27280455, 0.99877233, 0.99935189, 0.49323912],7738 [ -6.27320657, -0.00040184, 0.00024618, 7.27280472, 0.99877249, 0.99935198, 0.49323907],7739 [ -6.27320669, -0.00040179, 0.00024615, 7.27280490, 0.99877265, 0.99935206, 0.49323901],7740 [ -6.27320682, -0.00040174, 0.00024611, 7.27280508, 0.99877281, 0.99935215, 0.49323923],7741 [ -6.27320694, -0.00040169, 0.00024608, 7.27280525, 0.99877297, 0.99935223, 0.49323914],7742 [ -6.27320706, -0.00040163, 0.00024605, 7.27280543, 0.99877313, 0.99935231, 0.49323921],7743 [ -6.27320719, -0.00040158, 0.00024602, 7.27280561, 0.99877329, 0.99935240, 0.49323926],7744 [ -6.27320731, -0.00040153, 0.00024599, 7.27280578, 0.99877345, 0.99935248, 0.49323926],7745 [ -6.27320744, -0.00040148, 0.00024595, 7.27280596, 0.99877361, 0.99935257, 0.49323918],7746 [ -6.27320756, -0.00040143, 0.00024592, 7.27280614, 0.99877376, 0.99935265, 0.49323936],7747 [ -6.27320769, -0.00040137, 0.00024589, 7.27280631, 0.99877392, 0.99935273, 0.49323929],7748 [ -6.27320781, -0.00040132, 0.00024586, 7.27280649, 0.99877408, 0.99935282, 0.49323934],7749 [ -6.27320794, -0.00040127, 0.00024583, 7.27280667, 0.99877424, 0.99935290, 0.49323932],7750 [ -6.27320806, -0.00040122, 0.00024580, 7.27280684, 0.99877440, 0.99935299, 0.49323931],7751 [ -6.27320819, -0.00040117, 0.00024576, 7.27280702, 0.99877456, 0.99935307, 0.49323926],7752 [ -6.27320831, -0.00040111, 0.00024573, 7.27280720, 0.99877472, 0.99935315, 0.49323938],7753 [ -6.27320843, -0.00040106, 0.00024570, 7.27280737, 0.99877488, 0.99935324, 0.49323939],7754 [ -6.27320856, -0.00040101, 0.00024567, 7.27280755, 0.99877504, 0.99935332, 0.49323934],7755 [ -6.27320868, -0.00040096, 0.00024564, 7.27280773, 0.99877519, 0.99935341, 0.49323939],7756 [ -6.27320881, -0.00040091, 0.00024560, 7.27280790, 0.99877535, 0.99935349, 0.49323943],7757 [ -6.27320893, -0.00040085, 0.00024557, 7.27280808, 0.99877551, 0.99935357, 0.49323942],7758 [ -6.27320906, -0.00040080, 0.00024554, 7.27280825, 0.99877567, 0.99935366, 0.49323947],7759 [ -6.27320918, -0.00040075, 0.00024551, 7.27280843, 0.99877583, 0.99935374, 0.49323951],7760 [ -6.27320930, -0.00040070, 0.00024548, 7.27280861, 0.99877599, 0.99935382, 0.49323953],7761 [ -6.27320943, -0.00040065, 0.00024545, 7.27280878, 0.99877615, 0.99935391, 0.49323955],7762 [ -6.27320955, -0.00040059, 0.00024541, 7.27280896, 0.99877630, 0.99935399, 0.49323962],7763 [ -6.27320968, -0.00040054, 0.00024538, 7.27280913, 0.99877646, 0.99935408, 0.49323956],7764 [ -6.27320980, -0.00040049, 0.00024535, 7.27280931, 0.99877662, 0.99935416, 0.49323962],7765 [ -6.27320993, -0.00040044, 0.00024532, 7.27280949, 0.99877678, 0.99935424, 0.49323958],7766 [ -6.27321005, -0.00040039, 0.00024529, 7.27280966, 0.99877694, 0.99935433, 0.49323965],7767 [ -6.27321017, -0.00040034, 0.00024525, 7.27280984, 0.99877710, 0.99935441, 0.49323969],7768 [ -6.27321030, -0.00040028, 0.00024522, 7.27281001, 0.99877725, 0.99935449, 0.49323976],7769 [ -6.27321042, -0.00040023, 0.00024519, 7.27281019, 0.99877741, 0.99935458, 0.49323970],7770 [ -6.27321054, -0.00040018, 0.00024516, 7.27281036, 0.99877757, 0.99935466, 0.49323974],7771 [ -6.27321067, -0.00040013, 0.00024513, 7.27281054, 0.99877773, 0.99935474, 0.49323974],7772 [ -6.27321079, -0.00040008, 0.00024510, 7.27281072, 0.99877789, 0.99935483, 0.49323966],7773 [ -6.27321092, -0.00040003, 0.00024506, 7.27281089, 0.99877804, 0.99935491, 0.49323980],7774 [ -6.27321104, -0.00039997, 0.00024503, 7.27281107, 0.99877820, 0.99935499, 0.49323982],7775 [ -6.27321116, -0.00039992, 0.00024500, 7.27281124, 0.99877836, 0.99935508, 0.49323984],7776 [ -6.27321129, -0.00039987, 0.00024497, 7.27281142, 0.99877852, 0.99935516, 0.49323979],7777 [ -6.27321141, -0.00039982, 0.00024494, 7.27281159, 0.99877868, 0.99935524, 0.49323984],7778 [ -6.27321153, -0.00039977, 0.00024491, 7.27281177, 0.99877883, 0.99935533, 0.49323987],7779 [ -6.27321166, -0.00039972, 0.00024487, 7.27281194, 0.99877899, 0.99935541, 0.49323994],7780 [ -6.27321178, -0.00039966, 0.00024484, 7.27281212, 0.99877915, 0.99935549, 0.49323989],7781 [ -6.27321191, -0.00039961, 0.00024481, 7.27281229, 0.99877931, 0.99935558, 0.49323986],7782 [ -6.27321203, -0.00039956, 0.00024478, 7.27281247, 0.99877946, 0.99935566, 0.49323995],7783 [ -6.27321215, -0.00039951, 0.00024475, 7.27281264, 0.99877962, 0.99935574, 0.49323997],7784 [ -6.27321228, -0.00039946, 0.00024472, 7.27281282, 0.99877978, 0.99935583, 0.49323996],7785 [ -6.27321240, -0.00039941, 0.00024468, 7.27281299, 0.99877994, 0.99935591, 0.49323998],7786 [ -6.27321252, -0.00039935, 0.00024465, 7.27281317, 0.99878009, 0.99935599, 0.49323996],7787 [ -6.27321265, -0.00039930, 0.00024462, 7.27281334, 0.99878025, 0.99935608, 0.49324002],7788 [ -6.27321277, -0.00039925, 0.00024459, 7.27281352, 0.99878041, 0.99935616, 0.49323998],7789 [ -6.27321289, -0.00039920, 0.00024456, 7.27281369, 0.99878057, 0.99935624, 0.49324001],7790 [ -6.27321302, -0.00039915, 0.00024453, 7.27281387, 0.99878072, 0.99935632, 0.49324014],7791 [ -6.27321314, -0.00039910, 0.00024450, 7.27281404, 0.99878088, 0.99935641, 0.49324019],7792 [ -6.27321326, -0.00039905, 0.00024446, 7.27281422, 0.99878104, 0.99935649, 0.49324012],7793 [ -6.27321338, -0.00039899, 0.00024443, 7.27281439, 0.99878120, 0.99935657, 0.49324003],7794 [ -6.27321351, -0.00039894, 0.00024440, 7.27281457, 0.99878135, 0.99935666, 0.49324013],7795 [ -6.27321363, -0.00039889, 0.00024437, 7.27281474, 0.99878151, 0.99935674, 0.49324013],7796 [ -6.27321375, -0.00039884, 0.00024434, 7.27281491, 0.99878167, 0.99935682, 0.49324017],7797 [ -6.27321388, -0.00039879, 0.00024431, 7.27281509, 0.99878182, 0.99935690, 0.49324022],7798 [ -6.27321400, -0.00039874, 0.00024427, 7.27281526, 0.99878198, 0.99935699, 0.49324015],7799 [ -6.27321412, -0.00039869, 0.00024424, 7.27281544, 0.99878214, 0.99935707, 0.49324036],7800 [ -6.27321425, -0.00039863, 0.00024421, 7.27281561, 0.99878229, 0.99935715, 0.49324026],7801 [ -6.27321437, -0.00039858, 0.00024418, 7.27281579, 0.99878245, 0.99935724, 0.49324022],7802 [ -6.27321449, -0.00039853, 0.00024415, 7.27281596, 0.99878261, 0.99935732, 0.49324031],7803 [ -6.27321461, -0.00039848, 0.00024412, 7.27281613, 0.99878277, 0.99935740, 0.49324028],7804 [ -6.27321474, -0.00039843, 0.00024409, 7.27281631, 0.99878292, 0.99935748, 0.49324030],7805 [ -6.27321486, -0.00039838, 0.00024405, 7.27281648, 0.99878308, 0.99935757, 0.49324023],7806 [ -6.27321498, -0.00039833, 0.00024402, 7.27281666, 0.99878324, 0.99935765, 0.49324037],7807 [ -6.27321511, -0.00039828, 0.00024399, 7.27281683, 0.99878339, 0.99935773, 0.49324036],7808 [ -6.27321523, -0.00039822, 0.00024396, 7.27281700, 0.99878355, 0.99935782, 0.49324044],7809 [ -6.27321535, -0.00039817, 0.00024393, 7.27281718, 0.99878370, 0.99935790, 0.49324039],7810 [ -6.27321547, -0.00039812, 0.00024390, 7.27281735, 0.99878386, 0.99935798, 0.49324042],7811 [ -6.27321560, -0.00039807, 0.00024387, 7.27281752, 0.99878402, 0.99935806, 0.49324055],7812 [ -6.27321572, -0.00039802, 0.00024383, 7.27281770, 0.99878417, 0.99935815, 0.49324042],7813 [ -6.27321584, -0.00039797, 0.00024380, 7.27281787, 0.99878433, 0.99935823, 0.49324044],7814 [ -6.27321596, -0.00039792, 0.00024377, 7.27281805, 0.99878449, 0.99935831, 0.49324041],7815 [ -6.27321609, -0.00039787, 0.00024374, 7.27281822, 0.99878464, 0.99935839, 0.49324060],7816 [ -6.27321621, -0.00039781, 0.00024371, 7.27281839, 0.99878480, 0.99935848, 0.49324044],7817 [ -6.27321633, -0.00039776, 0.00024368, 7.27281857, 0.99878496, 0.99935856, 0.49324054],7818 [ -6.27321645, -0.00039771, 0.00024365, 7.27281874, 0.99878511, 0.99935864, 0.49324046],7819 [ -6.27321658, -0.00039766, 0.00024362, 7.27281891, 0.99878527, 0.99935872, 0.49324052],7820 [ -6.27321670, -0.00039761, 0.00024358, 7.27281909, 0.99878542, 0.99935881, 0.49324063],7821 [ -6.27321682, -0.00039756, 0.00024355, 7.27281926, 0.99878558, 0.99935889, 0.49324081],7822 [ -6.27321694, -0.00039751, 0.00024352, 7.27281943, 0.99878574, 0.99935897, 0.49324067],7823 [ -6.27321706, -0.00039746, 0.00024349, 7.27281961, 0.99878589, 0.99935905, 0.49324080],7824 [ -6.27321719, -0.00039741, 0.00024346, 7.27281978, 0.99878605, 0.99935913, 0.49324070],7825 [ -6.27321731, -0.00039736, 0.00024343, 7.27281995, 0.99878620, 0.99935922, 0.49324061],7826 [ -6.27321743, -0.00039730, 0.00024340, 7.27282013, 0.99878636, 0.99935930, 0.49324072],7827 [ -6.27321755, -0.00039725, 0.00024337, 7.27282030, 0.99878652, 0.99935938, 0.49324071],7828 [ -6.27321767, -0.00039720, 0.00024333, 7.27282047, 0.99878667, 0.99935946, 0.49324076],7829 [ -6.27321780, -0.00039715, 0.00024330, 7.27282064, 0.99878683, 0.99935955, 0.49324084],7830 [ -6.27321792, -0.00039710, 0.00024327, 7.27282082, 0.99878698, 0.99935963, 0.49324086],7831 [ -6.27321804, -0.00039705, 0.00024324, 7.27282099, 0.99878714, 0.99935971, 0.49324068],7832 [ -6.27321816, -0.00039700, 0.00024321, 7.27282116, 0.99878729, 0.99935979, 0.49324078],7833 [ -6.27321828, -0.00039695, 0.00024318, 7.27282134, 0.99878745, 0.99935987, 0.49324088],7834 [ -6.27321841, -0.00039690, 0.00024315, 7.27282151, 0.99878760, 0.99935996, 0.49324077],7835 [ -6.27321853, -0.00039685, 0.00024312, 7.27282168, 0.99878776, 0.99936004, 0.49324091],7836 [ -6.27321865, -0.00039680, 0.00024308, 7.27282185, 0.99878792, 0.99936012, 0.49324089],7837 [ -6.27321877, -0.00039674, 0.00024305, 7.27282203, 0.99878807, 0.99936020, 0.49324098],7838 [ -6.27321889, -0.00039669, 0.00024302, 7.27282220, 0.99878823, 0.99936028, 0.49324089],7839 [ -6.27321901, -0.00039664, 0.00024299, 7.27282237, 0.99878838, 0.99936037, 0.49324096],7840 [ -6.27321914, -0.00039659, 0.00024296, 7.27282254, 0.99878854, 0.99936045, 0.49324110],7841 [ -6.27321926, -0.00039654, 0.00024293, 7.27282272, 0.99878869, 0.99936053, 0.49324104],7842 [ -6.27321938, -0.00039649, 0.00024290, 7.27282289, 0.99878885, 0.99936061, 0.49324115],7843 [ -6.27321950, -0.00039644, 0.00024287, 7.27282306, 0.99878900, 0.99936069, 0.49324105],7844 [ -6.27321962, -0.00039639, 0.00024284, 7.27282323, 0.99878916, 0.99936078, 0.49324108],7845 [ -6.27321974, -0.00039634, 0.00024280, 7.27282341, 0.99878931, 0.99936086, 0.49324101],7846 [ -6.27321987, -0.00039629, 0.00024277, 7.27282358, 0.99878947, 0.99936094, 0.49324102],7847 [ -6.27321999, -0.00039624, 0.00024274, 7.27282375, 0.99878962, 0.99936102, 0.49324113],7848 [ -6.27322011, -0.00039619, 0.00024271, 7.27282392, 0.99878978, 0.99936110, 0.49324108],7849 [ -6.27322023, -0.00039613, 0.00024268, 7.27282409, 0.99878993, 0.99936119, 0.49324117],7850 [ -6.27322035, -0.00039608, 0.00024265, 7.27282427, 0.99879009, 0.99936127, 0.49324125],7851 [ -6.27322047, -0.00039603, 0.00024262, 7.27282444, 0.99879024, 0.99936135, 0.49324106],7852 [ -6.27322059, -0.00039598, 0.00024259, 7.27282461, 0.99879040, 0.99936143, 0.49324119],7853 [ -6.27322071, -0.00039593, 0.00024256, 7.27282478, 0.99879055, 0.99936151, 0.49324110],7854 [ -6.27322084, -0.00039588, 0.00024252, 7.27282495, 0.99879071, 0.99936159, 0.49324126],7855 [ -6.27322096, -0.00039583, 0.00024249, 7.27282513, 0.99879086, 0.99936168, 0.49324122],7856 [ -6.27322108, -0.00039578, 0.00024246, 7.27282530, 0.99879102, 0.99936176, 0.49324129],7857 [ -6.27322120, -0.00039573, 0.00024243, 7.27282547, 0.99879117, 0.99936184, 0.49324129],7858 [ -6.27322132, -0.00039568, 0.00024240, 7.27282564, 0.99879133, 0.99936192, 0.49324124],7859 [ -6.27322144, -0.00039563, 0.00024237, 7.27282581, 0.99879148, 0.99936200, 0.49324135],7860 [ -6.27322156, -0.00039558, 0.00024234, 7.27282598, 0.99879163, 0.99936208, 0.49324138],7861 [ -6.27322168, -0.00039553, 0.00024231, 7.27282616, 0.99879179, 0.99936216, 0.49324133],7862 [ -6.27322180, -0.00039548, 0.00024228, 7.27282633, 0.99879194, 0.99936225, 0.49324140],7863 [ -6.27322193, -0.00039543, 0.00024225, 7.27282650, 0.99879210, 0.99936233, 0.49324130],7864 [ -6.27322205, -0.00039538, 0.00024221, 7.27282667, 0.99879225, 0.99936241, 0.49324149],7865 [ -6.27322217, -0.00039533, 0.00024218, 7.27282684, 0.99879241, 0.99936249, 0.49324143],7866 [ -6.27322229, -0.00039528, 0.00024215, 7.27282701, 0.99879256, 0.99936257, 0.49324140],7867 [ -6.27322241, -0.00039522, 0.00024212, 7.27282718, 0.99879271, 0.99936265, 0.49324158],7868 [ -6.27322253, -0.00039517, 0.00024209, 7.27282736, 0.99879287, 0.99936273, 0.49324147],7869 [ -6.27322265, -0.00039512, 0.00024206, 7.27282753, 0.99879302, 0.99936282, 0.49324156],7870 [ -6.27322277, -0.00039507, 0.00024203, 7.27282770, 0.99879318, 0.99936290, 0.49324153],7871 [ -6.27322289, -0.00039502, 0.00024200, 7.27282787, 0.99879333, 0.99936298, 0.49324143],7872 [ -6.27322301, -0.00039497, 0.00024197, 7.27282804, 0.99879349, 0.99936306, 0.49324134],7873 [ -6.27322313, -0.00039492, 0.00024194, 7.27282821, 0.99879364, 0.99936314, 0.49324161],7874 [ -6.27322325, -0.00039487, 0.00024191, 7.27282838, 0.99879379, 0.99936322, 0.49324161],7875 [ -6.27322337, -0.00039482, 0.00024187, 7.27282855, 0.99879395, 0.99936330, 0.49324164],7876 [ -6.27322349, -0.00039477, 0.00024184, 7.27282872, 0.99879410, 0.99936339, 0.49324176],7877 [ -6.27322362, -0.00039472, 0.00024181, 7.27282889, 0.99879425, 0.99936347, 0.49324160],7878 [ -6.27322374, -0.00039467, 0.00024178, 7.27282907, 0.99879441, 0.99936355, 0.49324157],7879 [ -6.27322386, -0.00039462, 0.00024175, 7.27282924, 0.99879456, 0.99936363, 0.49324158],7880 [ -6.27322398, -0.00039457, 0.00024172, 7.27282941, 0.99879472, 0.99936371, 0.49324166],7881 [ -6.27322410, -0.00039452, 0.00024169, 7.27282958, 0.99879487, 0.99936379, 0.49324172],7882 [ -6.27322422, -0.00039447, 0.00024166, 7.27282975, 0.99879502, 0.99936387, 0.49324177],7883 [ -6.27322434, -0.00039442, 0.00024163, 7.27282992, 0.99879518, 0.99936395, 0.49324175],7884 [ -6.27322446, -0.00039437, 0.00024160, 7.27283009, 0.99879533, 0.99936403, 0.49324173],7885 [ -6.27322458, -0.00039432, 0.00024157, 7.27283026, 0.99879548, 0.99936412, 0.49324183],7886 [ -6.27322470, -0.00039427, 0.00024154, 7.27283043, 0.99879564, 0.99936420, 0.49324189],7887 [ -6.27322482, -0.00039422, 0.00024150, 7.27283060, 0.99879579, 0.99936428, 0.49324183],7888 [ -6.27322494, -0.00039417, 0.00024147, 7.27283077, 0.99879594, 0.99936436, 0.49324176],7889 [ -6.27322506, -0.00039412, 0.00024144, 7.27283094, 0.99879610, 0.99936444, 0.49324183],7890 [ -6.27322518, -0.00039407, 0.00024141, 7.27283111, 0.99879625, 0.99936452, 0.49324186],7891 [ -6.27322530, -0.00039402, 0.00024138, 7.27283128, 0.99879640, 0.99936460, 0.49324198],7892 [ -6.27322542, -0.00039397, 0.00024135, 7.27283145, 0.99879656, 0.99936468, 0.49324210],7893 [ -6.27322554, -0.00039392, 0.00024132, 7.27283162, 0.99879671, 0.99936476, 0.49324198],7894 [ -6.27322566, -0.00039387, 0.00024129, 7.27283179, 0.99879686, 0.99936484, 0.49324205],7895 [ -6.27322578, -0.00039382, 0.00024126, 7.27283196, 0.99879702, 0.99936492, 0.49324207],7896 [ -6.27322590, -0.00039377, 0.00024123, 7.27283213, 0.99879717, 0.99936501, 0.49324191],7897 [ -6.27322602, -0.00039372, 0.00024120, 7.27283230, 0.99879732, 0.99936509, 0.49324201],7898 [ -6.27322614, -0.00039367, 0.00024117, 7.27283247, 0.99879748, 0.99936517, 0.49324194],7899 [ -6.27322626, -0.00039362, 0.00024114, 7.27283264, 0.99879763, 0.99936525, 0.49324211],7900 [ -6.27322638, -0.00039357, 0.00024111, 7.27283281, 0.99879778, 0.99936533, 0.49324210],7901 [ -6.27322650, -0.00039352, 0.00024107, 7.27283298, 0.99879793, 0.99936541, 0.49324195],7902 [ -6.27322662, -0.00039347, 0.00024104, 7.27283315, 0.99879809, 0.99936549, 0.49324205],7903 [ -6.27322674, -0.00039342, 0.00024101, 7.27283332, 0.99879824, 0.99936557, 0.49324210],7904 [ -6.27322686, -0.00039337, 0.00024098, 7.27283349, 0.99879839, 0.99936565, 0.49324214],7905 [ -6.27322698, -0.00039332, 0.00024095, 7.27283366, 0.99879855, 0.99936573, 0.49324202],7906 [ -6.27322710, -0.00039327, 0.00024092, 7.27283383, 0.99879870, 0.99936581, 0.49324209],7907 [ -6.27322722, -0.00039322, 0.00024089, 7.27283400, 0.99879885, 0.99936589, 0.49324208],7908 [ -6.27322734, -0.00039317, 0.00024086, 7.27283417, 0.99879900, 0.99936597, 0.49324207],7909 [ -6.27322746, -0.00039312, 0.00024083, 7.27283434, 0.99879916, 0.99936605, 0.49324215],7910 [ -6.27322757, -0.00039307, 0.00024080, 7.27283451, 0.99879931, 0.99936613, 0.49324220],7911 [ -6.27322769, -0.00039302, 0.00024077, 7.27283468, 0.99879946, 0.99936621, 0.49324229],7912 [ -6.27322781, -0.00039297, 0.00024074, 7.27283485, 0.99879961, 0.99936630, 0.49324226],7913 [ -6.27322793, -0.00039292, 0.00024071, 7.27283502, 0.99879977, 0.99936638, 0.49324230],7914 [ -6.27322805, -0.00039287, 0.00024068, 7.27283519, 0.99879992, 0.99936646, 0.49324236],7915 [ -6.27322817, -0.00039282, 0.00024065, 7.27283535, 0.99880007, 0.99936654, 0.49324229],7916 [ -6.27322829, -0.00039277, 0.00024062, 7.27283552, 0.99880022, 0.99936662, 0.49324245],7917 [ -6.27322841, -0.00039272, 0.00024059, 7.27283569, 0.99880038, 0.99936670, 0.49324230],7918 [ -6.27322853, -0.00039267, 0.00024055, 7.27283586, 0.99880053, 0.99936678, 0.49324241],7919 [ -6.27322865, -0.00039262, 0.00024052, 7.27283603, 0.99880068, 0.99936686, 0.49324234],7920 [ -6.27322877, -0.00039257, 0.00024049, 7.27283620, 0.99880083, 0.99936694, 0.49324231],7921 [ -6.27322889, -0.00039252, 0.00024046, 7.27283637, 0.99880098, 0.99936702, 0.49324244],7922 [ -6.27322901, -0.00039247, 0.00024043, 7.27283654, 0.99880114, 0.99936710, 0.49324243],7923 [ -6.27322913, -0.00039242, 0.00024040, 7.27283671, 0.99880129, 0.99936718, 0.49324251],7924 [ -6.27322924, -0.00039237, 0.00024037, 7.27283688, 0.99880144, 0.99936726, 0.49324242],7925 [ -6.27322936, -0.00039232, 0.00024034, 7.27283704, 0.99880159, 0.99936734, 0.49324245],7926 [ -6.27322948, -0.00039227, 0.00024031, 7.27283721, 0.99880174, 0.99936742, 0.49324248],7927 [ -6.27322960, -0.00039222, 0.00024028, 7.27283738, 0.99880190, 0.99936750, 0.49324240],7928 [ -6.27322972, -0.00039217, 0.00024025, 7.27283755, 0.99880205, 0.99936758, 0.49324256],7929 [ -6.27322984, -0.00039212, 0.00024022, 7.27283772, 0.99880220, 0.99936766, 0.49324270],7930 [ -6.27322996, -0.00039207, 0.00024019, 7.27283789, 0.99880235, 0.99936774, 0.49324265],7931 [ -6.27323008, -0.00039202, 0.00024016, 7.27283806, 0.99880250, 0.99936782, 0.49324254],7932 [ -6.27323020, -0.00039197, 0.00024013, 7.27283822, 0.99880265, 0.99936790, 0.49324268],7933 [ -6.27323032, -0.00039192, 0.00024010, 7.27283839, 0.99880281, 0.99936798, 0.49324263],7934 [ -6.27323043, -0.00039187, 0.00024007, 7.27283856, 0.99880296, 0.99936806, 0.49324257],7935 [ -6.27323055, -0.00039182, 0.00024004, 7.27283873, 0.99880311, 0.99936814, 0.49324271],7936 [ -6.27323067, -0.00039177, 0.00024001, 7.27283890, 0.99880326, 0.99936822, 0.49324263],7937 [ -6.27323079, -0.00039172, 0.00023998, 7.27283907, 0.99880341, 0.99936830, 0.49324259],7938 [ -6.27323091, -0.00039167, 0.00023995, 7.27283923, 0.99880356, 0.99936838, 0.49324272],7939 [ -6.27323103, -0.00039162, 0.00023992, 7.27283940, 0.99880372, 0.99936846, 0.49324266],7940 [ -6.27323115, -0.00039158, 0.00023989, 7.27283957, 0.99880387, 0.99936854, 0.49324277],7941 [ -6.27323126, -0.00039153, 0.00023985, 7.27283974, 0.99880402, 0.99936862, 0.49324283],7942 [ -6.27323138, -0.00039148, 0.00023982, 7.27283991, 0.99880417, 0.99936870, 0.49324288],7943 [ -6.27323150, -0.00039143, 0.00023979, 7.27284008, 0.99880432, 0.99936878, 0.49324274],7944 [ -6.27323162, -0.00039138, 0.00023976, 7.27284024, 0.99880447, 0.99936886, 0.49324289],7945 [ -6.27323174, -0.00039133, 0.00023973, 7.27284041, 0.99880462, 0.99936894, 0.49324287],7946 [ -6.27323186, -0.00039128, 0.00023970, 7.27284058, 0.99880477, 0.99936902, 0.49324285],7947 [ -6.27323198, -0.00039123, 0.00023967, 7.27284075, 0.99880493, 0.99936910, 0.49324283],7948 [ -6.27323209, -0.00039118, 0.00023964, 7.27284091, 0.99880508, 0.99936918, 0.49324290],7949 [ -6.27323221, -0.00039113, 0.00023961, 7.27284108, 0.99880523, 0.99936926, 0.49324280],7950 [ -6.27323233, -0.00039108, 0.00023958, 7.27284125, 0.99880538, 0.99936934, 0.49324296],7951 [ -6.27323245, -0.00039103, 0.00023955, 7.27284142, 0.99880553, 0.99936942, 0.49324284],7952 [ -6.27323257, -0.00039098, 0.00023952, 7.27284159, 0.99880568, 0.99936950, 0.49324285],7953 [ -6.27323268, -0.00039093, 0.00023949, 7.27284175, 0.99880583, 0.99936958, 0.49324302],7954 [ -6.27323280, -0.00039088, 0.00023946, 7.27284192, 0.99880598, 0.99936966, 0.49324295],7955 [ -6.27323292, -0.00039083, 0.00023943, 7.27284209, 0.99880613, 0.99936974, 0.49324320],7956 [ -6.27323304, -0.00039078, 0.00023940, 7.27284226, 0.99880628, 0.99936982, 0.49324315],7957 [ -6.27323316, -0.00039073, 0.00023937, 7.27284242, 0.99880643, 0.99936990, 0.49324296],7958 [ -6.27323328, -0.00039069, 0.00023934, 7.27284259, 0.99880658, 0.99936997, 0.49324298],7959 [ -6.27323339, -0.00039064, 0.00023931, 7.27284276, 0.99880674, 0.99937005, 0.49324310],7960 [ -6.27323351, -0.00039059, 0.00023928, 7.27284292, 0.99880689, 0.99937013, 0.49324316],7961 [ -6.27323363, -0.00039054, 0.00023925, 7.27284309, 0.99880704, 0.99937021, 0.49324305],7962 [ -6.27323375, -0.00039049, 0.00023922, 7.27284326, 0.99880719, 0.99937029, 0.49324317],7963 [ -6.27323387, -0.00039044, 0.00023919, 7.27284343, 0.99880734, 0.99937037, 0.49324316],7964 [ -6.27323398, -0.00039039, 0.00023916, 7.27284359, 0.99880749, 0.99937045, 0.49324322],7965 [ -6.27323410, -0.00039034, 0.00023913, 7.27284376, 0.99880764, 0.99937053, 0.49324310],7966 [ -6.27323422, -0.00039029, 0.00023910, 7.27284393, 0.99880779, 0.99937061, 0.49324325],7967 [ -6.27323434, -0.00039024, 0.00023907, 7.27284409, 0.99880794, 0.99937069, 0.49324319],7968 [ -6.27323445, -0.00039019, 0.00023904, 7.27284426, 0.99880809, 0.99937077, 0.49324326],7969 [ -6.27323457, -0.00039014, 0.00023901, 7.27284443, 0.99880824, 0.99937085, 0.49324329],7970 [ -6.27323469, -0.00039009, 0.00023898, 7.27284460, 0.99880839, 0.99937093, 0.49324333],7971 [ -6.27323481, -0.00039005, 0.00023895, 7.27284476, 0.99880854, 0.99937101, 0.49324318],7972 [ -6.27323493, -0.00039000, 0.00023892, 7.27284493, 0.99880869, 0.99937109, 0.49324318],7973 [ -6.27323504, -0.00038995, 0.00023889, 7.27284510, 0.99880884, 0.99937117, 0.49324337],7974 [ -6.27323516, -0.00038990, 0.00023886, 7.27284526, 0.99880899, 0.99937124, 0.49324337],7975 [ -6.27323528, -0.00038985, 0.00023883, 7.27284543, 0.99880914, 0.99937132, 0.49324350],7976 [ -6.27323540, -0.00038980, 0.00023880, 7.27284560, 0.99880929, 0.99937140, 0.49324334],7977 [ -6.27323551, -0.00038975, 0.00023877, 7.27284576, 0.99880944, 0.99937148, 0.49324341],7978 [ -6.27323563, -0.00038970, 0.00023874, 7.27284593, 0.99880959, 0.99937156, 0.49324338],7979 [ -6.27323575, -0.00038965, 0.00023871, 7.27284609, 0.99880974, 0.99937164, 0.49324344],7980 [ -6.27323587, -0.00038960, 0.00023868, 7.27284626, 0.99880989, 0.99937172, 0.49324362],7981 [ -6.27323598, -0.00038955, 0.00023865, 7.27284643, 0.99881004, 0.99937180, 0.49324347],7982 [ -6.27323610, -0.00038951, 0.00023862, 7.27284659, 0.99881019, 0.99937188, 0.49324345],7983 [ -6.27323622, -0.00038946, 0.00023859, 7.27284676, 0.99881034, 0.99937196, 0.49324353],7984 [ -6.27323633, -0.00038941, 0.00023856, 7.27284693, 0.99881049, 0.99937204, 0.49324361],7985 [ -6.27323645, -0.00038936, 0.00023853, 7.27284709, 0.99881064, 0.99937211, 0.49324364],7986 [ -6.27323657, -0.00038931, 0.00023850, 7.27284726, 0.99881079, 0.99937219, 0.49324360],7987 [ -6.27323669, -0.00038926, 0.00023847, 7.27284743, 0.99881094, 0.99937227, 0.49324354],7988 [ -6.27323680, -0.00038921, 0.00023844, 7.27284759, 0.99881109, 0.99937235, 0.49324359],7989 [ -6.27323692, -0.00038916, 0.00023841, 7.27284776, 0.99881124, 0.99937243, 0.49324355],7990 [ -6.27323704, -0.00038911, 0.00023838, 7.27284792, 0.99881139, 0.99937251, 0.49324369],7991 [ -6.27323715, -0.00038907, 0.00023835, 7.27284809, 0.99881154, 0.99937259, 0.49324366],7992 [ -6.27323727, -0.00038902, 0.00023832, 7.27284826, 0.99881169, 0.99937267, 0.49324363],7993 [ -6.27323739, -0.00038897, 0.00023829, 7.27284842, 0.99881184, 0.99937275, 0.49324368],7994 [ -6.27323751, -0.00038892, 0.00023826, 7.27284859, 0.99881198, 0.99937282, 0.49324385],7995 [ -6.27323762, -0.00038887, 0.00023823, 7.27284875, 0.99881213, 0.99937290, 0.49324375],7996 [ -6.27323774, -0.00038882, 0.00023820, 7.27284892, 0.99881228, 0.99937298, 0.49324381],7997 [ -6.27323786, -0.00038877, 0.00023817, 7.27284908, 0.99881243, 0.99937306, 0.49324383],7998 [ -6.27323797, -0.00038872, 0.00023814, 7.27284925, 0.99881258, 0.99937314, 0.49324389],7999 [ -6.27323809, -0.00038867, 0.00023811, 7.27284942, 0.99881273, 0.99937322, 0.49324387],8000 [ -6.27323821, -0.00038863, 0.00023808, 7.27284958, 0.99881288, 0.99937330, 0.49324385],8001 [ -6.27323832, -0.00038858, 0.00023805, 7.27284975, 0.99881303, 0.99937338, 0.49324378],8002 [ -6.27323844, -0.00038853, 0.00023802, 7.27284991, 0.99881318, 0.99937345, 0.49324377],8003 [ -6.27323856, -0.00038848, 0.00023799, 7.27285008, 0.99881333, 0.99937353, 0.49324388],8004 [ -6.27323867, -0.00038843, 0.00023796, 7.27285024, 0.99881348, 0.99937361, 0.49324392],8005 [ -6.27323879, -0.00038838, 0.00023793, 7.27285041, 0.99881362, 0.99937369, 0.49324396],8006 [ -6.27323891, -0.00038833, 0.00023790, 7.27285057, 0.99881377, 0.99937377, 0.49324387],8007 [ -6.27323902, -0.00038828, 0.00023787, 7.27285074, 0.99881392, 0.99937385, 0.49324395],8008 [ -6.27323914, -0.00038824, 0.00023784, 7.27285090, 0.99881407, 0.99937393, 0.49324401],8009 [ -6.27323926, -0.00038819, 0.00023781, 7.27285107, 0.99881422, 0.99937400, 0.49324397],8010 [ -6.27323937, -0.00038814, 0.00023778, 7.27285124, 0.99881437, 0.99937408, 0.49324409],8011 [ -6.27323949, -0.00038809, 0.00023775, 7.27285140, 0.99881452, 0.99937416, 0.49324390],8012 [ -6.27323961, -0.00038804, 0.00023772, 7.27285157, 0.99881467, 0.99937424, 0.49324412],8013 [ -6.27323972, -0.00038799, 0.00023769, 7.27285173, 0.99881481, 0.99937432, 0.49324405],8014 [ -6.27323984, -0.00038794, 0.00023766, 7.27285190, 0.99881496, 0.99937440, 0.49324413],8015 [ -6.27323996, -0.00038789, 0.00023763, 7.27285206, 0.99881511, 0.99937448, 0.49324398],8016 [ -6.27324007, -0.00038785, 0.00023760, 7.27285223, 0.99881526, 0.99937455, 0.49324408],8017 [ -6.27324019, -0.00038780, 0.00023757, 7.27285239, 0.99881541, 0.99937463, 0.49324411],8018 [ -6.27324030, -0.00038775, 0.00023754, 7.27285256, 0.99881556, 0.99937471, 0.49324404],8019 [ -6.27324042, -0.00038770, 0.00023751, 7.27285272, 0.99881571, 0.99937479, 0.49324417],8020 [ -6.27324054, -0.00038765, 0.00023748, 7.27285289, 0.99881585, 0.99937487, 0.49324417],8021 [ -6.27324065, -0.00038760, 0.00023745, 7.27285305, 0.99881600, 0.99937495, 0.49324417],8022 [ -6.27324077, -0.00038755, 0.00023742, 7.27285321, 0.99881615, 0.99937502, 0.49324410],8023 [ -6.27324089, -0.00038751, 0.00023739, 7.27285338, 0.99881630, 0.99937510, 0.49324415],8024 [ -6.27324100, -0.00038746, 0.00023736, 7.27285354, 0.99881645, 0.99937518, 0.49324415],8025 [ -6.27324112, -0.00038741, 0.00023733, 7.27285371, 0.99881660, 0.99937526, 0.49324428],8026 [ -6.27324123, -0.00038736, 0.00023730, 7.27285387, 0.99881674, 0.99937534, 0.49324427],8027 [ -6.27324135, -0.00038731, 0.00023727, 7.27285404, 0.99881689, 0.99937541, 0.49324429],8028 [ -6.27324147, -0.00038726, 0.00023724, 7.27285420, 0.99881704, 0.99937549, 0.49324429],8029 [ -6.27324158, -0.00038722, 0.00023721, 7.27285437, 0.99881719, 0.99937557, 0.49324431],8030 [ -6.27324170, -0.00038717, 0.00023718, 7.27285453, 0.99881734, 0.99937565, 0.49324418],8031 [ -6.27324181, -0.00038712, 0.00023715, 7.27285469, 0.99881748, 0.99937573, 0.49324436],8032 [ -6.27324193, -0.00038707, 0.00023712, 7.27285486, 0.99881763, 0.99937581, 0.49324427],8033 [ -6.27324205, -0.00038702, 0.00023709, 7.27285502, 0.99881778, 0.99937588, 0.49324438],8034 [ -6.27324216, -0.00038697, 0.00023706, 7.27285519, 0.99881793, 0.99937596, 0.49324441],8035 [ -6.27324228, -0.00038693, 0.00023704, 7.27285535, 0.99881807, 0.99937604, 0.49324425],8036 [ -6.27324239, -0.00038688, 0.00023701, 7.27285552, 0.99881822, 0.99937612, 0.49324444],8037 [ -6.27324251, -0.00038683, 0.00023698, 7.27285568, 0.99881837, 0.99937620, 0.49324437],8038 [ -6.27324262, -0.00038678, 0.00023695, 7.27285584, 0.99881852, 0.99937627, 0.49324451],8039 [ -6.27324274, -0.00038673, 0.00023692, 7.27285601, 0.99881867, 0.99937635, 0.49324443],8040 [ -6.27324286, -0.00038668, 0.00023689, 7.27285617, 0.99881881, 0.99937643, 0.49324463],8041 [ -6.27324297, -0.00038664, 0.00023686, 7.27285634, 0.99881896, 0.99937651, 0.49324464],8042 [ -6.27324309, -0.00038659, 0.00023683, 7.27285650, 0.99881911, 0.99937659, 0.49324460],8043 [ -6.27324320, -0.00038654, 0.00023680, 7.27285666, 0.99881926, 0.99937666, 0.49324474],8044 [ -6.27324332, -0.00038649, 0.00023677, 7.27285683, 0.99881940, 0.99937674, 0.49324457],8045 [ -6.27324343, -0.00038644, 0.00023674, 7.27285699, 0.99881955, 0.99937682, 0.49324464],8046 [ -6.27324355, -0.00038639, 0.00023671, 7.27285716, 0.99881970, 0.99937690, 0.49324452],8047 [ -6.27324366, -0.00038635, 0.00023668, 7.27285732, 0.99881985, 0.99937697, 0.49324451],8048 [ -6.27324378, -0.00038630, 0.00023665, 7.27285748, 0.99881999, 0.99937705, 0.49324463],8049 [ -6.27324390, -0.00038625, 0.00023662, 7.27285765, 0.99882014, 0.99937713, 0.49324460],8050 [ -6.27324401, -0.00038620, 0.00023659, 7.27285781, 0.99882029, 0.99937721, 0.49324461],8051 [ -6.27324413, -0.00038615, 0.00023656, 7.27285797, 0.99882043, 0.99937729, 0.49324473],8052 [ -6.27324424, -0.00038610, 0.00023653, 7.27285814, 0.99882058, 0.99937736, 0.49324474],8053 [ -6.27324436, -0.00038606, 0.00023650, 7.27285830, 0.99882073, 0.99937744, 0.49324465],8054 [ -6.27324447, -0.00038601, 0.00023647, 7.27285846, 0.99882088, 0.99937752, 0.49324475],8055 [ -6.27324459, -0.00038596, 0.00023644, 7.27285863, 0.99882102, 0.99937760, 0.49324482],8056 [ -6.27324470, -0.00038591, 0.00023641, 7.27285879, 0.99882117, 0.99937767, 0.49324468],8057 [ -6.27324482, -0.00038586, 0.00023638, 7.27285895, 0.99882132, 0.99937775, 0.49324472],8058 [ -6.27324493, -0.00038582, 0.00023636, 7.27285912, 0.99882146, 0.99937783, 0.49324478],8059 [ -6.27324505, -0.00038577, 0.00023633, 7.27285928, 0.99882161, 0.99937791, 0.49324486],8060 [ -6.27324516, -0.00038572, 0.00023630, 7.27285944, 0.99882176, 0.99937798, 0.49324500],8061 [ -6.27324528, -0.00038567, 0.00023627, 7.27285961, 0.99882190, 0.99937806, 0.49324482],8062 [ -6.27324539, -0.00038562, 0.00023624, 7.27285977, 0.99882205, 0.99937814, 0.49324496],8063 [ -6.27324551, -0.00038558, 0.00023621, 7.27285993, 0.99882220, 0.99937822, 0.49324495],8064 [ -6.27324562, -0.00038553, 0.00023618, 7.27286009, 0.99882234, 0.99937829, 0.49324492],8065 [ -6.27324574, -0.00038548, 0.00023615, 7.27286026, 0.99882249, 0.99937837, 0.49324476],8066 [ -6.27324585, -0.00038543, 0.00023612, 7.27286042, 0.99882264, 0.99937845, 0.49324499],8067 [ -6.27324597, -0.00038538, 0.00023609, 7.27286058, 0.99882278, 0.99937853, 0.49324495],8068 [ -6.27324608, -0.00038534, 0.00023606, 7.27286075, 0.99882293, 0.99937860, 0.49324497],8069 [ -6.27324620, -0.00038529, 0.00023603, 7.27286091, 0.99882308, 0.99937868, 0.49324499],8070 [ -6.27324631, -0.00038524, 0.00023600, 7.27286107, 0.99882322, 0.99937876, 0.49324496],8071 [ -6.27324643, -0.00038519, 0.00023597, 7.27286123, 0.99882337, 0.99937884, 0.49324507],8072 [ -6.27324654, -0.00038514, 0.00023594, 7.27286140, 0.99882352, 0.99937891, 0.49324506],8073 [ -6.27324666, -0.00038510, 0.00023591, 7.27286156, 0.99882366, 0.99937899, 0.49324519],8074 [ -6.27324677, -0.00038505, 0.00023588, 7.27286172, 0.99882381, 0.99937907, 0.49324510],8075 [ -6.27324689, -0.00038500, 0.00023586, 7.27286188, 0.99882396, 0.99937914, 0.49324509],8076 [ -6.27324700, -0.00038495, 0.00023583, 7.27286205, 0.99882410, 0.99937922, 0.49324510],8077 [ -6.27324711, -0.00038490, 0.00023580, 7.27286221, 0.99882425, 0.99937930, 0.49324517],8078 [ -6.27324723, -0.00038486, 0.00023577, 7.27286237, 0.99882440, 0.99937938, 0.49324527],8079 [ -6.27324734, -0.00038481, 0.00023574, 7.27286253, 0.99882454, 0.99937945, 0.49324519],8080 [ -6.27324746, -0.00038476, 0.00023571, 7.27286270, 0.99882469, 0.99937953, 0.49324516],8081 [ -6.27324757, -0.00038471, 0.00023568, 7.27286286, 0.99882483, 0.99937961, 0.49324513],8082 [ -6.27324769, -0.00038467, 0.00023565, 7.27286302, 0.99882498, 0.99937968, 0.49324519],8083 [ -6.27324780, -0.00038462, 0.00023562, 7.27286318, 0.99882513, 0.99937976, 0.49324509],8084 [ -6.27324792, -0.00038457, 0.00023559, 7.27286335, 0.99882527, 0.99937984, 0.49324532],8085 [ -6.27324803, -0.00038452, 0.00023556, 7.27286351, 0.99882542, 0.99937992, 0.49324518],8086 [ -6.27324814, -0.00038447, 0.00023553, 7.27286367, 0.99882556, 0.99937999, 0.49324537],8087 [ -6.27324826, -0.00038443, 0.00023550, 7.27286383, 0.99882571, 0.99938007, 0.49324536],8088 [ -6.27324837, -0.00038438, 0.00023547, 7.27286399, 0.99882586, 0.99938015, 0.49324540],8089 [ -6.27324849, -0.00038433, 0.00023545, 7.27286416, 0.99882600, 0.99938022, 0.49324531],8090 [ -6.27324860, -0.00038428, 0.00023542, 7.27286432, 0.99882615, 0.99938030, 0.49324544],8091 [ -6.27324872, -0.00038424, 0.00023539, 7.27286448, 0.99882629, 0.99938038, 0.49324534],8092 [ -6.27324883, -0.00038419, 0.00023536, 7.27286464, 0.99882644, 0.99938045, 0.49324551],8093 [ -6.27324894, -0.00038414, 0.00023533, 7.27286480, 0.99882658, 0.99938053, 0.49324541],8094 [ -6.27324906, -0.00038409, 0.00023530, 7.27286497, 0.99882673, 0.99938061, 0.49324551],8095 [ -6.27324917, -0.00038405, 0.00023527, 7.27286513, 0.99882688, 0.99938068, 0.49324541],8096 [ -6.27324929, -0.00038400, 0.00023524, 7.27286529, 0.99882702, 0.99938076, 0.49324543],8097 [ -6.27324940, -0.00038395, 0.00023521, 7.27286545, 0.99882717, 0.99938084, 0.49324548],8098 [ -6.27324951, -0.00038390, 0.00023518, 7.27286561, 0.99882731, 0.99938092, 0.49324547],8099 [ -6.27324963, -0.00038385, 0.00023515, 7.27286577, 0.99882746, 0.99938099, 0.49324552],8100 [ -6.27324974, -0.00038381, 0.00023512, 7.27286594, 0.99882760, 0.99938107, 0.49324561],8101 [ -6.27324986, -0.00038376, 0.00023509, 7.27286610, 0.99882775, 0.99938115, 0.49324575],8102 [ -6.27324997, -0.00038371, 0.00023507, 7.27286626, 0.99882789, 0.99938122, 0.49324555],8103 [ -6.27325008, -0.00038366, 0.00023504, 7.27286642, 0.99882804, 0.99938130, 0.49324561],8104 [ -6.27325020, -0.00038362, 0.00023501, 7.27286658, 0.99882818, 0.99938138, 0.49324560],8105 [ -6.27325031, -0.00038357, 0.00023498, 7.27286674, 0.99882833, 0.99938145, 0.49324567],8106 [ -6.27325043, -0.00038352, 0.00023495, 7.27286690, 0.99882847, 0.99938153, 0.49324557],8107 [ -6.27325054, -0.00038347, 0.00023492, 7.27286706, 0.99882862, 0.99938161, 0.49324572],8108 [ -6.27325065, -0.00038343, 0.00023489, 7.27286723, 0.99882877, 0.99938168, 0.49324570],8109 [ -6.27325077, -0.00038338, 0.00023486, 7.27286739, 0.99882891, 0.99938176, 0.49324576],8110 [ -6.27325088, -0.00038333, 0.00023483, 7.27286755, 0.99882906, 0.99938184, 0.49324591],8111 [ -6.27325099, -0.00038328, 0.00023480, 7.27286771, 0.99882920, 0.99938191, 0.49324569],8112 [ -6.27325111, -0.00038324, 0.00023477, 7.27286787, 0.99882935, 0.99938199, 0.49324559],8113 [ -6.27325122, -0.00038319, 0.00023475, 7.27286803, 0.99882949, 0.99938207, 0.49324564],8114 [ -6.27325133, -0.00038314, 0.00023472, 7.27286819, 0.99882964, 0.99938214, 0.49324576],8115 [ -6.27325145, -0.00038309, 0.00023469, 7.27286835, 0.99882978, 0.99938222, 0.49324581],8116 [ -6.27325156, -0.00038305, 0.00023466, 7.27286851, 0.99882993, 0.99938229, 0.49324590],8117 [ -6.27325168, -0.00038300, 0.00023463, 7.27286868, 0.99883007, 0.99938237, 0.49324573],8118 [ -6.27325179, -0.00038295, 0.00023460, 7.27286884, 0.99883021, 0.99938245, 0.49324578],8119 [ -6.27325190, -0.00038291, 0.00023457, 7.27286900, 0.99883036, 0.99938252, 0.49324585],8120 [ -6.27325202, -0.00038286, 0.00023454, 7.27286916, 0.99883050, 0.99938260, 0.49324579],8121 [ -6.27325213, -0.00038281, 0.00023451, 7.27286932, 0.99883065, 0.99938268, 0.49324589],8122 [ -6.27325224, -0.00038276, 0.00023448, 7.27286948, 0.99883079, 0.99938275, 0.49324588],8123 [ -6.27325236, -0.00038272, 0.00023446, 7.27286964, 0.99883094, 0.99938283, 0.49324586],8124 [ -6.27325247, -0.00038267, 0.00023443, 7.27286980, 0.99883108, 0.99938291, 0.49324588],8125 [ -6.27325258, -0.00038262, 0.00023440, 7.27286996, 0.99883123, 0.99938298, 0.49324600],8126 [ -6.27325269, -0.00038257, 0.00023437, 7.27287012, 0.99883137, 0.99938306, 0.49324602],8127 [ -6.27325281, -0.00038253, 0.00023434, 7.27287028, 0.99883152, 0.99938313, 0.49324593],8128 [ -6.27325292, -0.00038248, 0.00023431, 7.27287044, 0.99883166, 0.99938321, 0.49324600],8129 [ -6.27325303, -0.00038243, 0.00023428, 7.27287060, 0.99883180, 0.99938329, 0.49324594],8130 [ -6.27325315, -0.00038238, 0.00023425, 7.27287076, 0.99883195, 0.99938336, 0.49324594],8131 [ -6.27325326, -0.00038234, 0.00023422, 7.27287092, 0.99883209, 0.99938344, 0.49324616],8132 [ -6.27325337, -0.00038229, 0.00023419, 7.27287108, 0.99883224, 0.99938352, 0.49324609],8133 [ -6.27325349, -0.00038224, 0.00023417, 7.27287124, 0.99883238, 0.99938359, 0.49324615],8134 [ -6.27325360, -0.00038220, 0.00023414, 7.27287140, 0.99883253, 0.99938367, 0.49324616],8135 [ -6.27325371, -0.00038215, 0.00023411, 7.27287156, 0.99883267, 0.99938374, 0.49324616],8136 [ -6.27325383, -0.00038210, 0.00023408, 7.27287172, 0.99883281, 0.99938382, 0.49324603],8137 [ -6.27325394, -0.00038205, 0.00023405, 7.27287188, 0.99883296, 0.99938390, 0.49324614],8138 [ -6.27325405, -0.00038201, 0.00023402, 7.27287204, 0.99883310, 0.99938397, 0.49324629],8139 [ -6.27325416, -0.00038196, 0.00023399, 7.27287220, 0.99883325, 0.99938405, 0.49324628],8140 [ -6.27325428, -0.00038191, 0.00023396, 7.27287236, 0.99883339, 0.99938412, 0.49324634],8141 [ -6.27325439, -0.00038187, 0.00023393, 7.27287252, 0.99883353, 0.99938420, 0.49324618],8142 [ -6.27325450, -0.00038182, 0.00023391, 7.27287268, 0.99883368, 0.99938428, 0.49324620],8143 [ -6.27325462, -0.00038177, 0.00023388, 7.27287284, 0.99883382, 0.99938435, 0.49324621],8144 [ -6.27325473, -0.00038172, 0.00023385, 7.27287300, 0.99883397, 0.99938443, 0.49324620],8145 [ -6.27325484, -0.00038168, 0.00023382, 7.27287316, 0.99883411, 0.99938450, 0.49324631],8146 [ -6.27325495, -0.00038163, 0.00023379, 7.27287332, 0.99883425, 0.99938458, 0.49324616],8147 [ -6.27325507, -0.00038158, 0.00023376, 7.27287348, 0.99883440, 0.99938466, 0.49324629],8148 [ -6.27325518, -0.00038154, 0.00023373, 7.27287364, 0.99883454, 0.99938473, 0.49324635],8149 [ -6.27325529, -0.00038149, 0.00023370, 7.27287380, 0.99883469, 0.99938481, 0.49324648],8150 [ -6.27325540, -0.00038144, 0.00023367, 7.27287396, 0.99883483, 0.99938488, 0.49324638],8151 [ -6.27325552, -0.00038140, 0.00023365, 7.27287412, 0.99883497, 0.99938496, 0.49324637],8152 [ -6.27325563, -0.00038135, 0.00023362, 7.27287428, 0.99883512, 0.99938503, 0.49324641],8153 [ -6.27325574, -0.00038130, 0.00023359, 7.27287444, 0.99883526, 0.99938511, 0.49324645],8154 [ -6.27325585, -0.00038125, 0.00023356, 7.27287460, 0.99883540, 0.99938519, 0.49324647],8155 [ -6.27325597, -0.00038121, 0.00023353, 7.27287476, 0.99883555, 0.99938526, 0.49324642],8156 [ -6.27325608, -0.00038116, 0.00023350, 7.27287492, 0.99883569, 0.99938534, 0.49324651],8157 [ -6.27325619, -0.00038111, 0.00023347, 7.27287508, 0.99883583, 0.99938541, 0.49324649],8158 [ -6.27325630, -0.00038107, 0.00023344, 7.27287524, 0.99883598, 0.99938549, 0.49324647],8159 [ -6.27325642, -0.00038102, 0.00023342, 7.27287540, 0.99883612, 0.99938556, 0.49324658],8160 [ -6.27325653, -0.00038097, 0.00023339, 7.27287555, 0.99883626, 0.99938564, 0.49324664],8161 [ -6.27325664, -0.00038093, 0.00023336, 7.27287571, 0.99883641, 0.99938572, 0.49324649],8162 [ -6.27325675, -0.00038088, 0.00023333, 7.27287587, 0.99883655, 0.99938579, 0.49324658],8163 [ -6.27325686, -0.00038083, 0.00023330, 7.27287603, 0.99883669, 0.99938587, 0.49324653],8164 [ -6.27325698, -0.00038079, 0.00023327, 7.27287619, 0.99883684, 0.99938594, 0.49324658],8165 [ -6.27325709, -0.00038074, 0.00023324, 7.27287635, 0.99883698, 0.99938602, 0.49324649],8166 [ -6.27325720, -0.00038069, 0.00023321, 7.27287651, 0.99883712, 0.99938609, 0.49324663],8167 [ -6.27325731, -0.00038065, 0.00023319, 7.27287667, 0.99883727, 0.99938617, 0.49324670],8168 [ -6.27325742, -0.00038060, 0.00023316, 7.27287683, 0.99883741, 0.99938624, 0.49324665],8169 [ -6.27325754, -0.00038055, 0.00023313, 7.27287699, 0.99883755, 0.99938632, 0.49324681],8170 [ -6.27325765, -0.00038050, 0.00023310, 7.27287714, 0.99883769, 0.99938640, 0.49324678],8171 [ -6.27325776, -0.00038046, 0.00023307, 7.27287730, 0.99883784, 0.99938647, 0.49324668],8172 [ -6.27325787, -0.00038041, 0.00023304, 7.27287746, 0.99883798, 0.99938655, 0.49324676],8173 [ -6.27325798, -0.00038036, 0.00023301, 7.27287762, 0.99883812, 0.99938662, 0.49324679],8174 [ -6.27325810, -0.00038032, 0.00023299, 7.27287778, 0.99883827, 0.99938670, 0.49324680],8175 [ -6.27325821, -0.00038027, 0.00023296, 7.27287794, 0.99883841, 0.99938677, 0.49324686],8176 [ -6.27325832, -0.00038022, 0.00023293, 7.27287810, 0.99883855, 0.99938685, 0.49324703],8177 [ -6.27325843, -0.00038018, 0.00023290, 7.27287825, 0.99883869, 0.99938692, 0.49324683],8178 [ -6.27325854, -0.00038013, 0.00023287, 7.27287841, 0.99883884, 0.99938700, 0.49324688],8179 [ -6.27325866, -0.00038008, 0.00023284, 7.27287857, 0.99883898, 0.99938707, 0.49324687],8180 [ -6.27325877, -0.00038004, 0.00023281, 7.27287873, 0.99883912, 0.99938715, 0.49324692],8181 [ -6.27325888, -0.00037999, 0.00023279, 7.27287889, 0.99883926, 0.99938722, 0.49324678],8182 [ -6.27325899, -0.00037994, 0.00023276, 7.27287905, 0.99883941, 0.99938730, 0.49324693],8183 [ -6.27325910, -0.00037990, 0.00023273, 7.27287920, 0.99883955, 0.99938737, 0.49324693],8184 [ -6.27325921, -0.00037985, 0.00023270, 7.27287936, 0.99883969, 0.99938745, 0.49324695],8185 [ -6.27325932, -0.00037980, 0.00023267, 7.27287952, 0.99883983, 0.99938752, 0.49324704],8186 [ -6.27325944, -0.00037976, 0.00023264, 7.27287968, 0.99883998, 0.99938760, 0.49324699],8187 [ -6.27325955, -0.00037971, 0.00023261, 7.27287984, 0.99884012, 0.99938768, 0.49324702],8188 [ -6.27325966, -0.00037966, 0.00023259, 7.27287999, 0.99884026, 0.99938775, 0.49324694],8189 [ -6.27325977, -0.00037962, 0.00023256, 7.27288015, 0.99884040, 0.99938783, 0.49324708],8190 [ -6.27325988, -0.00037957, 0.00023253, 7.27288031, 0.99884055, 0.99938790, 0.49324716],8191 [ -6.27325999, -0.00037953, 0.00023250, 7.27288047, 0.99884069, 0.99938798, 0.49324712],8192 [ -6.27326011, -0.00037948, 0.00023247, 7.27288063, 0.99884083, 0.99938805, 0.49324715],8193 [ -6.27326022, -0.00037943, 0.00023244, 7.27288078, 0.99884097, 0.99938813, 0.49324707],8194 [ -6.27326033, -0.00037939, 0.00023241, 7.27288094, 0.99884111, 0.99938820, 0.49324704],8195 [ -6.27326044, -0.00037934, 0.00023239, 7.27288110, 0.99884126, 0.99938828, 0.49324718],8196 [ -6.27326055, -0.00037929, 0.00023236, 7.27288126, 0.99884140, 0.99938835, 0.49324714],8197 [ -6.27326066, -0.00037925, 0.00023233, 7.27288142, 0.99884154, 0.99938843, 0.49324726],8198 [ -6.27326077, -0.00037920, 0.00023230, 7.27288157, 0.99884168, 0.99938850, 0.49324702],8199 [ -6.27326088, -0.00037915, 0.00023227, 7.27288173, 0.99884182, 0.99938858, 0.49324721],8200 [ -6.27326100, -0.00037911, 0.00023224, 7.27288189, 0.99884197, 0.99938865, 0.49324723],8201 [ -6.27326111, -0.00037906, 0.00023221, 7.27288205, 0.99884211, 0.99938873, 0.49324718],8202 [ -6.27326122, -0.00037901, 0.00023219, 7.27288220, 0.99884225, 0.99938880, 0.49324712],8203 [ -6.27326133, -0.00037897, 0.00023216, 7.27288236, 0.99884239, 0.99938887, 0.49324742],8204 [ -6.27326144, -0.00037892, 0.00023213, 7.27288252, 0.99884253, 0.99938895, 0.49324731],8205 [ -6.27326155, -0.00037887, 0.00023210, 7.27288268, 0.99884267, 0.99938902, 0.49324731],8206 [ -6.27326166, -0.00037883, 0.00023207, 7.27288283, 0.99884282, 0.99938910, 0.49324735],8207 [ -6.27326177, -0.00037878, 0.00023204, 7.27288299, 0.99884296, 0.99938917, 0.49324724],8208 [ -6.27326188, -0.00037874, 0.00023202, 7.27288315, 0.99884310, 0.99938925, 0.49324733],8209 [ -6.27326199, -0.00037869, 0.00023199, 7.27288331, 0.99884324, 0.99938932, 0.49324726],8210 [ -6.27326211, -0.00037864, 0.00023196, 7.27288346, 0.99884338, 0.99938940, 0.49324734],8211 [ -6.27326222, -0.00037860, 0.00023193, 7.27288362, 0.99884352, 0.99938947, 0.49324737],8212 [ -6.27326233, -0.00037855, 0.00023190, 7.27288378, 0.99884367, 0.99938955, 0.49324746],8213 [ -6.27326244, -0.00037850, 0.00023187, 7.27288393, 0.99884381, 0.99938962, 0.49324742],8214 [ -6.27326255, -0.00037846, 0.00023185, 7.27288409, 0.99884395, 0.99938970, 0.49324750],8215 [ -6.27326266, -0.00037841, 0.00023182, 7.27288425, 0.99884409, 0.99938977, 0.49324754],8216 [ -6.27326277, -0.00037837, 0.00023179, 7.27288441, 0.99884423, 0.99938985, 0.49324741],8217 [ -6.27326288, -0.00037832, 0.00023176, 7.27288456, 0.99884437, 0.99938992, 0.49324760],8218 [ -6.27326299, -0.00037827, 0.00023173, 7.27288472, 0.99884451, 0.99939000, 0.49324751],8219 [ -6.27326310, -0.00037823, 0.00023170, 7.27288488, 0.99884466, 0.99939007, 0.49324747],8220 [ -6.27326321, -0.00037818, 0.00023168, 7.27288503, 0.99884480, 0.99939014, 0.49324756],8221 [ -6.27326332, -0.00037813, 0.00023165, 7.27288519, 0.99884494, 0.99939022, 0.49324744],8222 [ -6.27326343, -0.00037809, 0.00023162, 7.27288535, 0.99884508, 0.99939029, 0.49324765],8223 [ -6.27326354, -0.00037804, 0.00023159, 7.27288550, 0.99884522, 0.99939037, 0.49324755],8224 [ -6.27326366, -0.00037800, 0.00023156, 7.27288566, 0.99884536, 0.99939044, 0.49324760],8225 [ -6.27326377, -0.00037795, 0.00023153, 7.27288582, 0.99884550, 0.99939052, 0.49324764],8226 [ -6.27326388, -0.00037790, 0.00023151, 7.27288597, 0.99884564, 0.99939059, 0.49324764],8227 [ -6.27326399, -0.00037786, 0.00023148, 7.27288613, 0.99884578, 0.99939067, 0.49324768],8228 [ -6.27326410, -0.00037781, 0.00023145, 7.27288629, 0.99884592, 0.99939074, 0.49324772],8229 [ -6.27326421, -0.00037777, 0.00023142, 7.27288644, 0.99884607, 0.99939081, 0.49324775],8230 [ -6.27326432, -0.00037772, 0.00023139, 7.27288660, 0.99884621, 0.99939089, 0.49324763],8231 [ -6.27326443, -0.00037767, 0.00023136, 7.27288676, 0.99884635, 0.99939096, 0.49324773],8232 [ -6.27326454, -0.00037763, 0.00023134, 7.27288691, 0.99884649, 0.99939104, 0.49324770],8233 [ -6.27326465, -0.00037758, 0.00023131, 7.27288707, 0.99884663, 0.99939111, 0.49324772],8234 [ -6.27326476, -0.00037753, 0.00023128, 7.27288722, 0.99884677, 0.99939119, 0.49324778],8235 [ -6.27326487, -0.00037749, 0.00023125, 7.27288738, 0.99884691, 0.99939126, 0.49324783],8236 [ -6.27326498, -0.00037744, 0.00023122, 7.27288754, 0.99884705, 0.99939133, 0.49324780],8237 [ -6.27326509, -0.00037740, 0.00023120, 7.27288769, 0.99884719, 0.99939141, 0.49324776],8238 [ -6.27326520, -0.00037735, 0.00023117, 7.27288785, 0.99884733, 0.99939148, 0.49324786],8239 [ -6.27326531, -0.00037730, 0.00023114, 7.27288801, 0.99884747, 0.99939156, 0.49324788],8240 [ -6.27326542, -0.00037726, 0.00023111, 7.27288816, 0.99884761, 0.99939163, 0.49324776],8241 [ -6.27326553, -0.00037721, 0.00023108, 7.27288832, 0.99884775, 0.99939171, 0.49324788],8242 [ -6.27326564, -0.00037717, 0.00023105, 7.27288847, 0.99884789, 0.99939178, 0.49324801],8243 [ -6.27326575, -0.00037712, 0.00023103, 7.27288863, 0.99884803, 0.99939185, 0.49324790],8244 [ -6.27326586, -0.00037707, 0.00023100, 7.27288879, 0.99884817, 0.99939193, 0.49324783],8245 [ -6.27326597, -0.00037703, 0.00023097, 7.27288894, 0.99884831, 0.99939200, 0.49324795],8246 [ -6.27326608, -0.00037698, 0.00023094, 7.27288910, 0.99884846, 0.99939208, 0.49324808],8247 [ -6.27326619, -0.00037694, 0.00023091, 7.27288925, 0.99884860, 0.99939215, 0.49324796],8248 [ -6.27326630, -0.00037689, 0.00023089, 7.27288941, 0.99884874, 0.99939222, 0.49324802],8249 [ -6.27326641, -0.00037685, 0.00023086, 7.27288956, 0.99884888, 0.99939230, 0.49324786],8250 [ -6.27326652, -0.00037680, 0.00023083, 7.27288972, 0.99884902, 0.99939237, 0.49324795],8251 [ -6.27326663, -0.00037675, 0.00023080, 7.27288988, 0.99884916, 0.99939245, 0.49324822],8252 [ -6.27326674, -0.00037671, 0.00023077, 7.27289003, 0.99884930, 0.99939252, 0.49324803],8253 [ -6.27326685, -0.00037666, 0.00023074, 7.27289019, 0.99884944, 0.99939259, 0.49324799],8254 [ -6.27326696, -0.00037662, 0.00023072, 7.27289034, 0.99884958, 0.99939267, 0.49324798],8255 [ -6.27326707, -0.00037657, 0.00023069, 7.27289050, 0.99884972, 0.99939274, 0.49324802],8256 [ -6.27326718, -0.00037652, 0.00023066, 7.27289065, 0.99884986, 0.99939282, 0.49324803],8257 [ -6.27326729, -0.00037648, 0.00023063, 7.27289081, 0.99885000, 0.99939289, 0.49324811],8258 [ -6.27326740, -0.00037643, 0.00023060, 7.27289096, 0.99885014, 0.99939296, 0.49324817],8259 [ -6.27326751, -0.00037639, 0.00023058, 7.27289112, 0.99885028, 0.99939304, 0.49324821],8260 [ -6.27326762, -0.00037634, 0.00023055, 7.27289127, 0.99885042, 0.99939311, 0.49324821],8261 [ -6.27326773, -0.00037630, 0.00023052, 7.27289143, 0.99885056, 0.99939318, 0.49324827],8262 [ -6.27326783, -0.00037625, 0.00023049, 7.27289159, 0.99885070, 0.99939326, 0.49324820],8263 [ -6.27326794, -0.00037620, 0.00023046, 7.27289174, 0.99885084, 0.99939333, 0.49324832],8264 [ -6.27326805, -0.00037616, 0.00023044, 7.27289190, 0.99885097, 0.99939341, 0.49324834],8265 [ -6.27326816, -0.00037611, 0.00023041, 7.27289205, 0.99885111, 0.99939348, 0.49324841],8266 [ -6.27326827, -0.00037607, 0.00023038, 7.27289221, 0.99885125, 0.99939355, 0.49324834],8267 [ -6.27326838, -0.00037602, 0.00023035, 7.27289236, 0.99885139, 0.99939363, 0.49324834],8268 [ -6.27326849, -0.00037598, 0.00023032, 7.27289252, 0.99885153, 0.99939370, 0.49324836],8269 [ -6.27326860, -0.00037593, 0.00023030, 7.27289267, 0.99885167, 0.99939377, 0.49324838],8270 [ -6.27326871, -0.00037588, 0.00023027, 7.27289283, 0.99885181, 0.99939385, 0.49324843],8271 [ -6.27326882, -0.00037584, 0.00023024, 7.27289298, 0.99885195, 0.99939392, 0.49324818],8272 [ -6.27326893, -0.00037579, 0.00023021, 7.27289314, 0.99885209, 0.99939399, 0.49324852],8273 [ -6.27326904, -0.00037575, 0.00023018, 7.27289329, 0.99885223, 0.99939407, 0.49324850],8274 [ -6.27326915, -0.00037570, 0.00023016, 7.27289345, 0.99885237, 0.99939414, 0.49324851],8275 [ -6.27326926, -0.00037566, 0.00023013, 7.27289360, 0.99885251, 0.99939422, 0.49324838],8276 [ -6.27326937, -0.00037561, 0.00023010, 7.27289375, 0.99885265, 0.99939429, 0.49324847],8277 [ -6.27326947, -0.00037557, 0.00023007, 7.27289391, 0.99885279, 0.99939436, 0.49324849],8278 [ -6.27326958, -0.00037552, 0.00023004, 7.27289406, 0.99885293, 0.99939444, 0.49324851],8279 [ -6.27326969, -0.00037547, 0.00023002, 7.27289422, 0.99885307, 0.99939451, 0.49324844],8280 [ -6.27326980, -0.00037543, 0.00022999, 7.27289437, 0.99885321, 0.99939458, 0.49324862],8281 [ -6.27326991, -0.00037538, 0.00022996, 7.27289453, 0.99885334, 0.99939466, 0.49324845],8282 [ -6.27327002, -0.00037534, 0.00022993, 7.27289468, 0.99885348, 0.99939473, 0.49324866],8283 [ -6.27327013, -0.00037529, 0.00022991, 7.27289484, 0.99885362, 0.99939480, 0.49324850],8284 [ -6.27327024, -0.00037525, 0.00022988, 7.27289499, 0.99885376, 0.99939488, 0.49324874],8285 [ -6.27327035, -0.00037520, 0.00022985, 7.27289514, 0.99885390, 0.99939495, 0.49324863],8286 [ -6.27327045, -0.00037516, 0.00022982, 7.27289530, 0.99885404, 0.99939502, 0.49324861],8287 [ -6.27327056, -0.00037511, 0.00022979, 7.27289545, 0.99885418, 0.99939510, 0.49324863],8288 [ -6.27327067, -0.00037506, 0.00022977, 7.27289561, 0.99885432, 0.99939517, 0.49324878],8289 [ -6.27327078, -0.00037502, 0.00022974, 7.27289576, 0.99885446, 0.99939524, 0.49324852],8290 [ -6.27327089, -0.00037497, 0.00022971, 7.27289592, 0.99885459, 0.99939532, 0.49324868],8291 [ -6.27327100, -0.00037493, 0.00022968, 7.27289607, 0.99885473, 0.99939539, 0.49324870],8292 [ -6.27327111, -0.00037488, 0.00022965, 7.27289622, 0.99885487, 0.99939546, 0.49324867],8293 [ -6.27327122, -0.00037484, 0.00022963, 7.27289638, 0.99885501, 0.99939554, 0.49324861],8294 [ -6.27327132, -0.00037479, 0.00022960, 7.27289653, 0.99885515, 0.99939561, 0.49324879],8295 [ -6.27327143, -0.00037475, 0.00022957, 7.27289669, 0.99885529, 0.99939568, 0.49324878],8296 [ -6.27327154, -0.00037470, 0.00022954, 7.27289684, 0.99885543, 0.99939576, 0.49324873],8297 [ -6.27327165, -0.00037466, 0.00022952, 7.27289699, 0.99885557, 0.99939583, 0.49324877],8298 [ -6.27327176, -0.00037461, 0.00022949, 7.27289715, 0.99885570, 0.99939590, 0.49324893],8299 [ -6.27327187, -0.00037457, 0.00022946, 7.27289730, 0.99885584, 0.99939597, 0.49324876],8300 [ -6.27327198, -0.00037452, 0.00022943, 7.27289746, 0.99885598, 0.99939605, 0.49324876],8301 [ -6.27327208, -0.00037447, 0.00022940, 7.27289761, 0.99885612, 0.99939612, 0.49324883],8302 [ -6.27327219, -0.00037443, 0.00022938, 7.27289776, 0.99885626, 0.99939619, 0.49324897],8303 [ -6.27327230, -0.00037438, 0.00022935, 7.27289792, 0.99885640, 0.99939627, 0.49324903],8304 [ -6.27327241, -0.00037434, 0.00022932, 7.27289807, 0.99885653, 0.99939634, 0.49324897],8305 [ -6.27327252, -0.00037429, 0.00022929, 7.27289822, 0.99885667, 0.99939641, 0.49324915],8306 [ -6.27327263, -0.00037425, 0.00022927, 7.27289838, 0.99885681, 0.99939649, 0.49324899],8307 [ -6.27327273, -0.00037420, 0.00022924, 7.27289853, 0.99885695, 0.99939656, 0.49324895],8308 [ -6.27327284, -0.00037416, 0.00022921, 7.27289869, 0.99885709, 0.99939663, 0.49324901],8309 [ -6.27327295, -0.00037411, 0.00022918, 7.27289884, 0.99885723, 0.99939671, 0.49324899],8310 [ -6.27327306, -0.00037407, 0.00022915, 7.27289899, 0.99885736, 0.99939678, 0.49324910],8311 [ -6.27327317, -0.00037402, 0.00022913, 7.27289915, 0.99885750, 0.99939685, 0.49324893],8312 [ -6.27327328, -0.00037398, 0.00022910, 7.27289930, 0.99885764, 0.99939692, 0.49324897],8313 [ -6.27327338, -0.00037393, 0.00022907, 7.27289945, 0.99885778, 0.99939700, 0.49324903],8314 [ -6.27327349, -0.00037389, 0.00022904, 7.27289961, 0.99885792, 0.99939707, 0.49324907],8315 [ -6.27327360, -0.00037384, 0.00022902, 7.27289976, 0.99885805, 0.99939714, 0.49324912],8316 [ -6.27327371, -0.00037380, 0.00022899, 7.27289991, 0.99885819, 0.99939722, 0.49324911],8317 [ -6.27327382, -0.00037375, 0.00022896, 7.27290007, 0.99885833, 0.99939729, 0.49324918],8318 [ -6.27327392, -0.00037371, 0.00022893, 7.27290022, 0.99885847, 0.99939736, 0.49324911],8319 [ -6.27327403, -0.00037366, 0.00022891, 7.27290037, 0.99885861, 0.99939743, 0.49324922],8320 [ -6.27327414, -0.00037362, 0.00022888, 7.27290052, 0.99885874, 0.99939751, 0.49324912],8321 [ -6.27327425, -0.00037357, 0.00022885, 7.27290068, 0.99885888, 0.99939758, 0.49324914],8322 [ -6.27327436, -0.00037353, 0.00022882, 7.27290083, 0.99885902, 0.99939765, 0.49324919],8323 [ -6.27327446, -0.00037348, 0.00022880, 7.27290098, 0.99885916, 0.99939772, 0.49324915],8324 [ -6.27327457, -0.00037344, 0.00022877, 7.27290114, 0.99885929, 0.99939780, 0.49324920],8325 [ -6.27327468, -0.00037339, 0.00022874, 7.27290129, 0.99885943, 0.99939787, 0.49324914],8326 [ -6.27327479, -0.00037335, 0.00022871, 7.27290144, 0.99885957, 0.99939794, 0.49324927],8327 [ -6.27327490, -0.00037330, 0.00022868, 7.27290160, 0.99885971, 0.99939801, 0.49324924],8328 [ -6.27327500, -0.00037326, 0.00022866, 7.27290175, 0.99885984, 0.99939809, 0.49324926],8329 [ -6.27327511, -0.00037321, 0.00022863, 7.27290190, 0.99885998, 0.99939816, 0.49324920],8330 [ -6.27327522, -0.00037317, 0.00022860, 7.27290205, 0.99886012, 0.99939823, 0.49324932],8331 [ -6.27327533, -0.00037312, 0.00022857, 7.27290221, 0.99886026, 0.99939831, 0.49324939],8332 [ -6.27327543, -0.00037308, 0.00022855, 7.27290236, 0.99886039, 0.99939838, 0.49324946],8333 [ -6.27327554, -0.00037303, 0.00022852, 7.27290251, 0.99886053, 0.99939845, 0.49324935],8334 [ -6.27327565, -0.00037299, 0.00022849, 7.27290266, 0.99886067, 0.99939852, 0.49324930],8335 [ -6.27327576, -0.00037294, 0.00022846, 7.27290282, 0.99886081, 0.99939860, 0.49324950],8336 [ -6.27327586, -0.00037290, 0.00022844, 7.27290297, 0.99886094, 0.99939867, 0.49324938],8337 [ -6.27327597, -0.00037285, 0.00022841, 7.27290312, 0.99886108, 0.99939874, 0.49324942],8338 [ -6.27327608, -0.00037281, 0.00022838, 7.27290327, 0.99886122, 0.99939881, 0.49324944],8339 [ -6.27327619, -0.00037276, 0.00022835, 7.27290343, 0.99886136, 0.99939888, 0.49324942],8340 [ -6.27327629, -0.00037272, 0.00022833, 7.27290358, 0.99886149, 0.99939896, 0.49324940],8341 [ -6.27327640, -0.00037267, 0.00022830, 7.27290373, 0.99886163, 0.99939903, 0.49324954],8342 [ -6.27327651, -0.00037263, 0.00022827, 7.27290388, 0.99886177, 0.99939910, 0.49324936],8343 [ -6.27327662, -0.00037258, 0.00022824, 7.27290404, 0.99886190, 0.99939917, 0.49324945],8344 [ -6.27327672, -0.00037254, 0.00022822, 7.27290419, 0.99886204, 0.99939925, 0.49324953],8345 [ -6.27327683, -0.00037249, 0.00022819, 7.27290434, 0.99886218, 0.99939932, 0.49324957],8346 [ -6.27327694, -0.00037245, 0.00022816, 7.27290449, 0.99886231, 0.99939939, 0.49324952],8347 [ -6.27327705, -0.00037240, 0.00022813, 7.27290464, 0.99886245, 0.99939946, 0.49324959],8348 [ -6.27327715, -0.00037236, 0.00022811, 7.27290480, 0.99886259, 0.99939954, 0.49324957],8349 [ -6.27327726, -0.00037231, 0.00022808, 7.27290495, 0.99886273, 0.99939961, 0.49324964],8350 [ -6.27327737, -0.00037227, 0.00022805, 7.27290510, 0.99886286, 0.99939968, 0.49324963],8351 [ -6.27327747, -0.00037222, 0.00022802, 7.27290525, 0.99886300, 0.99939975, 0.49324974],8352 [ -6.27327758, -0.00037218, 0.00022800, 7.27290540, 0.99886314, 0.99939982, 0.49324966],8353 [ -6.27327769, -0.00037213, 0.00022797, 7.27290556, 0.99886327, 0.99939990, 0.49324952],8354 [ -6.27327780, -0.00037209, 0.00022794, 7.27290571, 0.99886341, 0.99939997, 0.49324969],8355 [ -6.27327790, -0.00037204, 0.00022791, 7.27290586, 0.99886355, 0.99940004, 0.49324970],8356 [ -6.27327801, -0.00037200, 0.00022789, 7.27290601, 0.99886368, 0.99940011, 0.49324976],8357 [ -6.27327812, -0.00037195, 0.00022786, 7.27290616, 0.99886382, 0.99940019, 0.49324984],8358 [ -6.27327822, -0.00037191, 0.00022783, 7.27290631, 0.99886396, 0.99940026, 0.49324963],8359 [ -6.27327833, -0.00037187, 0.00022781, 7.27290647, 0.99886409, 0.99940033, 0.49324968],8360 [ -6.27327844, -0.00037182, 0.00022778, 7.27290662, 0.99886423, 0.99940040, 0.49324978],8361 [ -6.27327855, -0.00037178, 0.00022775, 7.27290677, 0.99886436, 0.99940047, 0.49324985],8362 [ -6.27327865, -0.00037173, 0.00022772, 7.27290692, 0.99886450, 0.99940055, 0.49325000],8363 [ -6.27327876, -0.00037169, 0.00022770, 7.27290707, 0.99886464, 0.99940062, 0.49324984],8364 [ -6.27327887, -0.00037164, 0.00022767, 7.27290722, 0.99886477, 0.99940069, 0.49324982],8365 [ -6.27327897, -0.00037160, 0.00022764, 7.27290737, 0.99886491, 0.99940076, 0.49324988],8366 [ -6.27327908, -0.00037155, 0.00022761, 7.27290753, 0.99886505, 0.99940083, 0.49325015],8367 [ -6.27327919, -0.00037151, 0.00022759, 7.27290768, 0.99886518, 0.99940091, 0.49324977],8368 [ -6.27327929, -0.00037146, 0.00022756, 7.27290783, 0.99886532, 0.99940098, 0.49324993],8369 [ -6.27327940, -0.00037142, 0.00022753, 7.27290798, 0.99886546, 0.99940105, 0.49325002],8370 [ -6.27327951, -0.00037137, 0.00022750, 7.27290813, 0.99886559, 0.99940112, 0.49324999],8371 [ -6.27327961, -0.00037133, 0.00022748, 7.27290828, 0.99886573, 0.99940119, 0.49325000],8372 [ -6.27327972, -0.00037129, 0.00022745, 7.27290843, 0.99886586, 0.99940126, 0.49325006],8373 [ -6.27327983, -0.00037124, 0.00022742, 7.27290858, 0.99886600, 0.99940134, 0.49324994],8374 [ -6.27327993, -0.00037120, 0.00022740, 7.27290874, 0.99886614, 0.99940141, 0.49324986],8375 [ -6.27328004, -0.00037115, 0.00022737, 7.27290889, 0.99886627, 0.99940148, 0.49325009],8376 [ -6.27328015, -0.00037111, 0.00022734, 7.27290904, 0.99886641, 0.99940155, 0.49325012],8377 [ -6.27328025, -0.00037106, 0.00022731, 7.27290919, 0.99886654, 0.99940162, 0.49325015],8378 [ -6.27328036, -0.00037102, 0.00022729, 7.27290934, 0.99886668, 0.99940170, 0.49325010],8379 [ -6.27328047, -0.00037097, 0.00022726, 7.27290949, 0.99886682, 0.99940177, 0.49325020],8380 [ -6.27328057, -0.00037093, 0.00022723, 7.27290964, 0.99886695, 0.99940184, 0.49325004],8381 [ -6.27328068, -0.00037089, 0.00022720, 7.27290979, 0.99886709, 0.99940191, 0.49325014],8382 [ -6.27328078, -0.00037084, 0.00022718, 7.27290994, 0.99886722, 0.99940198, 0.49325025],8383 [ -6.27328089, -0.00037080, 0.00022715, 7.27291009, 0.99886736, 0.99940205, 0.49325008],8384 [ -6.27328100, -0.00037075, 0.00022712, 7.27291024, 0.99886749, 0.99940213, 0.49325032],8385 [ -6.27328110, -0.00037071, 0.00022710, 7.27291040, 0.99886763, 0.99940220, 0.49325016],8386 [ -6.27328121, -0.00037066, 0.00022707, 7.27291055, 0.99886777, 0.99940227, 0.49325010],8387 [ -6.27328132, -0.00037062, 0.00022704, 7.27291070, 0.99886790, 0.99940234, 0.49325006],8388 [ -6.27328142, -0.00037057, 0.00022701, 7.27291085, 0.99886804, 0.99940241, 0.49325022],8389 [ -6.27328153, -0.00037053, 0.00022699, 7.27291100, 0.99886817, 0.99940248, 0.49325031],8390 [ -6.27328163, -0.00037049, 0.00022696, 7.27291115, 0.99886831, 0.99940255, 0.49325037],8391 [ -6.27328174, -0.00037044, 0.00022693, 7.27291130, 0.99886844, 0.99940263, 0.49325027],8392 [ -6.27328185, -0.00037040, 0.00022691, 7.27291145, 0.99886858, 0.99940270, 0.49325034],8393 [ -6.27328195, -0.00037035, 0.00022688, 7.27291160, 0.99886871, 0.99940277, 0.49325020],8394 [ -6.27328206, -0.00037031, 0.00022685, 7.27291175, 0.99886885, 0.99940284, 0.49325035],8395 [ -6.27328217, -0.00037026, 0.00022682, 7.27291190, 0.99886898, 0.99940291, 0.49325022],8396 [ -6.27328227, -0.00037022, 0.00022680, 7.27291205, 0.99886912, 0.99940298, 0.49325038],8397 [ -6.27328238, -0.00037018, 0.00022677, 7.27291220, 0.99886926, 0.99940305, 0.49325045],8398 [ -6.27328248, -0.00037013, 0.00022674, 7.27291235, 0.99886939, 0.99940313, 0.49325055],8399 [ -6.27328259, -0.00037009, 0.00022672, 7.27291250, 0.99886953, 0.99940320, 0.49325042],8400 [ -6.27328269, -0.00037004, 0.00022669, 7.27291265, 0.99886966, 0.99940327, 0.49325036],8401 [ -6.27328280, -0.00037000, 0.00022666, 7.27291280, 0.99886980, 0.99940334, 0.49325057],8402 [ -6.27328291, -0.00036995, 0.00022663, 7.27291295, 0.99886993, 0.99940341, 0.49325047],8403 [ -6.27328301, -0.00036991, 0.00022661, 7.27291310, 0.99887007, 0.99940348, 0.49325050],8404 [ -6.27328312, -0.00036987, 0.00022658, 7.27291325, 0.99887020, 0.99940355, 0.49325044],8405 [ -6.27328322, -0.00036982, 0.00022655, 7.27291340, 0.99887034, 0.99940363, 0.49325060],8406 [ -6.27328333, -0.00036978, 0.00022653, 7.27291355, 0.99887047, 0.99940370, 0.49325046],8407 [ -6.27328344, -0.00036973, 0.00022650, 7.27291370, 0.99887061, 0.99940377, 0.49325049],8408 [ -6.27328354, -0.00036969, 0.00022647, 7.27291385, 0.99887074, 0.99940384, 0.49325054],8409 [ -6.27328365, -0.00036965, 0.00022644, 7.27291400, 0.99887088, 0.99940391, 0.49325051],8410 [ -6.27328375, -0.00036960, 0.00022642, 7.27291415, 0.99887101, 0.99940398, 0.49325068],8411 [ -6.27328386, -0.00036956, 0.00022639, 7.27291430, 0.99887115, 0.99940405, 0.49325059],8412 [ -6.27328396, -0.00036951, 0.00022636, 7.27291445, 0.99887128, 0.99940412, 0.49325082],8413 [ -6.27328407, -0.00036947, 0.00022634, 7.27291460, 0.99887142, 0.99940419, 0.49325077],8414 [ -6.27328418, -0.00036942, 0.00022631, 7.27291475, 0.99887155, 0.99940427, 0.49325076],8415 [ -6.27328428, -0.00036938, 0.00022628, 7.27291490, 0.99887168, 0.99940434, 0.49325073],8416 [ -6.27328439, -0.00036934, 0.00022626, 7.27291505, 0.99887182, 0.99940441, 0.49325073],8417 [ -6.27328449, -0.00036929, 0.00022623, 7.27291520, 0.99887195, 0.99940448, 0.49325059],8418 [ -6.27328460, -0.00036925, 0.00022620, 7.27291535, 0.99887209, 0.99940455, 0.49325071],8419 [ -6.27328470, -0.00036920, 0.00022617, 7.27291550, 0.99887222, 0.99940462, 0.49325075],8420 [ -6.27328481, -0.00036916, 0.00022615, 7.27291565, 0.99887236, 0.99940469, 0.49325074],8421 [ -6.27328491, -0.00036912, 0.00022612, 7.27291580, 0.99887249, 0.99940476, 0.49325076],8422 [ -6.27328502, -0.00036907, 0.00022609, 7.27291595, 0.99887263, 0.99940483, 0.49325069],8423 [ -6.27328512, -0.00036903, 0.00022607, 7.27291610, 0.99887276, 0.99940491, 0.49325089],8424 [ -6.27328523, -0.00036898, 0.00022604, 7.27291624, 0.99887290, 0.99940498, 0.49325087],8425 [ -6.27328533, -0.00036894, 0.00022601, 7.27291639, 0.99887303, 0.99940505, 0.49325089],8426 [ -6.27328544, -0.00036890, 0.00022599, 7.27291654, 0.99887316, 0.99940512, 0.49325087],8427 [ -6.27328555, -0.00036885, 0.00022596, 7.27291669, 0.99887330, 0.99940519, 0.49325085],8428 [ -6.27328565, -0.00036881, 0.00022593, 7.27291684, 0.99887343, 0.99940526, 0.49325080],8429 [ -6.27328576, -0.00036876, 0.00022590, 7.27291699, 0.99887357, 0.99940533, 0.49325071],8430 [ -6.27328586, -0.00036872, 0.00022588, 7.27291714, 0.99887370, 0.99940540, 0.49325095],8431 [ -6.27328597, -0.00036868, 0.00022585, 7.27291729, 0.99887384, 0.99940547, 0.49325080],8432 [ -6.27328607, -0.00036863, 0.00022582, 7.27291744, 0.99887397, 0.99940554, 0.49325088],8433 [ -6.27328618, -0.00036859, 0.00022580, 7.27291759, 0.99887410, 0.99940561, 0.49325100],8434 [ -6.27328628, -0.00036855, 0.00022577, 7.27291774, 0.99887424, 0.99940568, 0.49325106],8435 [ -6.27328639, -0.00036850, 0.00022574, 7.27291789, 0.99887437, 0.99940576, 0.49325085],8436 [ -6.27328649, -0.00036846, 0.00022572, 7.27291803, 0.99887451, 0.99940583, 0.49325087],8437 [ -6.27328660, -0.00036841, 0.00022569, 7.27291818, 0.99887464, 0.99940590, 0.49325084],8438 [ -6.27328670, -0.00036837, 0.00022566, 7.27291833, 0.99887477, 0.99940597, 0.49325118],8439 [ -6.27328681, -0.00036833, 0.00022564, 7.27291848, 0.99887491, 0.99940604, 0.49325112],8440 [ -6.27328691, -0.00036828, 0.00022561, 7.27291863, 0.99887504, 0.99940611, 0.49325104],8441 [ -6.27328702, -0.00036824, 0.00022558, 7.27291878, 0.99887518, 0.99940618, 0.49325104],8442 [ -6.27328712, -0.00036819, 0.00022556, 7.27291893, 0.99887531, 0.99940625, 0.49325116],8443 [ -6.27328723, -0.00036815, 0.00022553, 7.27291907, 0.99887544, 0.99940632, 0.49325111],8444 [ -6.27328733, -0.00036811, 0.00022550, 7.27291922, 0.99887558, 0.99940639, 0.49325116],8445 [ -6.27328744, -0.00036806, 0.00022547, 7.27291937, 0.99887571, 0.99940646, 0.49325108],8446 [ -6.27328754, -0.00036802, 0.00022545, 7.27291952, 0.99887584, 0.99940653, 0.49325111],8447 [ -6.27328764, -0.00036798, 0.00022542, 7.27291967, 0.99887598, 0.99940660, 0.49325113],8448 [ -6.27328775, -0.00036793, 0.00022539, 7.27291982, 0.99887611, 0.99940667, 0.49325130],8449 [ -6.27328785, -0.00036789, 0.00022537, 7.27291997, 0.99887625, 0.99940674, 0.49325114],8450 [ -6.27328796, -0.00036784, 0.00022534, 7.27292011, 0.99887638, 0.99940681, 0.49325125],8451 [ -6.27328806, -0.00036780, 0.00022531, 7.27292026, 0.99887651, 0.99940689, 0.49325120],8452 [ -6.27328817, -0.00036776, 0.00022529, 7.27292041, 0.99887665, 0.99940696, 0.49325118],8453 [ -6.27328827, -0.00036771, 0.00022526, 7.27292056, 0.99887678, 0.99940703, 0.49325120],8454 [ -6.27328838, -0.00036767, 0.00022523, 7.27292071, 0.99887691, 0.99940710, 0.49325135],8455 [ -6.27328848, -0.00036763, 0.00022521, 7.27292086, 0.99887705, 0.99940717, 0.49325134],8456 [ -6.27328859, -0.00036758, 0.00022518, 7.27292100, 0.99887718, 0.99940724, 0.49325139],8457 [ -6.27328869, -0.00036754, 0.00022515, 7.27292115, 0.99887731, 0.99940731, 0.49325135],8458 [ -6.27328880, -0.00036749, 0.00022513, 7.27292130, 0.99887745, 0.99940738, 0.49325126],8459 [ -6.27328890, -0.00036745, 0.00022510, 7.27292145, 0.99887758, 0.99940745, 0.49325131],8460 [ -6.27328900, -0.00036741, 0.00022507, 7.27292160, 0.99887771, 0.99940752, 0.49325136],8461 [ -6.27328911, -0.00036736, 0.00022505, 7.27292174, 0.99887785, 0.99940759, 0.49325152],8462 [ -6.27328921, -0.00036732, 0.00022502, 7.27292189, 0.99887798, 0.99940766, 0.49325159],8463 [ -6.27328932, -0.00036728, 0.00022499, 7.27292204, 0.99887811, 0.99940773, 0.49325140],8464 [ -6.27328942, -0.00036723, 0.00022497, 7.27292219, 0.99887825, 0.99940780, 0.49325141],8465 [ -6.27328953, -0.00036719, 0.00022494, 7.27292234, 0.99887838, 0.99940787, 0.49325131],8466 [ -6.27328963, -0.00036715, 0.00022491, 7.27292248, 0.99887851, 0.99940794, 0.49325145],8467 [ -6.27328973, -0.00036710, 0.00022489, 7.27292263, 0.99887864, 0.99940801, 0.49325145],8468 [ -6.27328984, -0.00036706, 0.00022486, 7.27292278, 0.99887878, 0.99940808, 0.49325157],8469 [ -6.27328994, -0.00036702, 0.00022483, 7.27292293, 0.99887891, 0.99940815, 0.49325149],8470 [ -6.27329005, -0.00036697, 0.00022481, 7.27292307, 0.99887904, 0.99940822, 0.49325164],8471 [ -6.27329015, -0.00036693, 0.00022478, 7.27292322, 0.99887918, 0.99940829, 0.49325155],8472 [ -6.27329025, -0.00036689, 0.00022475, 7.27292337, 0.99887931, 0.99940836, 0.49325164],8473 [ -6.27329036, -0.00036684, 0.00022473, 7.27292352, 0.99887944, 0.99940843, 0.49325151],8474 [ -6.27329046, -0.00036680, 0.00022470, 7.27292366, 0.99887958, 0.99940850, 0.49325168],8475 [ -6.27329057, -0.00036675, 0.00022467, 7.27292381, 0.99887971, 0.99940857, 0.49325138],8476 [ -6.27329067, -0.00036671, 0.00022465, 7.27292396, 0.99887984, 0.99940864, 0.49325171],8477 [ -6.27329078, -0.00036667, 0.00022462, 7.27292411, 0.99887997, 0.99940871, 0.49325159],8478 [ -6.27329088, -0.00036662, 0.00022459, 7.27292425, 0.99888011, 0.99940878, 0.49325160],8479 [ -6.27329098, -0.00036658, 0.00022457, 7.27292440, 0.99888024, 0.99940885, 0.49325177],8480 [ -6.27329109, -0.00036654, 0.00022454, 7.27292455, 0.99888037, 0.99940892, 0.49325177],8481 [ -6.27329119, -0.00036649, 0.00022451, 7.27292470, 0.99888050, 0.99940899, 0.49325164],8482 [ -6.27329129, -0.00036645, 0.00022449, 7.27292484, 0.99888064, 0.99940906, 0.49325172],8483 [ -6.27329140, -0.00036641, 0.00022446, 7.27292499, 0.99888077, 0.99940913, 0.49325179],8484 [ -6.27329150, -0.00036636, 0.00022443, 7.27292514, 0.99888090, 0.99940920, 0.49325181],8485 [ -6.27329161, -0.00036632, 0.00022441, 7.27292529, 0.99888103, 0.99940927, 0.49325178],8486 [ -6.27329171, -0.00036628, 0.00022438, 7.27292543, 0.99888117, 0.99940934, 0.49325178],8487 [ -6.27329181, -0.00036623, 0.00022435, 7.27292558, 0.99888130, 0.99940941, 0.49325183],8488 [ -6.27329192, -0.00036619, 0.00022433, 7.27292573, 0.99888143, 0.99940948, 0.49325179],8489 [ -6.27329202, -0.00036615, 0.00022430, 7.27292587, 0.99888156, 0.99940955, 0.49325183],8490 [ -6.27329212, -0.00036610, 0.00022427, 7.27292602, 0.99888170, 0.99940962, 0.49325178],8491 [ -6.27329223, -0.00036606, 0.00022425, 7.27292617, 0.99888183, 0.99940969, 0.49325167],8492 [ -6.27329233, -0.00036602, 0.00022422, 7.27292631, 0.99888196, 0.99940976, 0.49325180],8493 [ -6.27329244, -0.00036597, 0.00022419, 7.27292646, 0.99888209, 0.99940983, 0.49325201],8494 [ -6.27329254, -0.00036593, 0.00022417, 7.27292661, 0.99888222, 0.99940990, 0.49325190],8495 [ -6.27329264, -0.00036589, 0.00022414, 7.27292675, 0.99888236, 0.99940997, 0.49325201],8496 [ -6.27329275, -0.00036584, 0.00022412, 7.27292690, 0.99888249, 0.99941004, 0.49325203],8497 [ -6.27329285, -0.00036580, 0.00022409, 7.27292705, 0.99888262, 0.99941011, 0.49325195],8498 [ -6.27329295, -0.00036576, 0.00022406, 7.27292720, 0.99888275, 0.99941018, 0.49325194],8499 [ -6.27329306, -0.00036571, 0.00022404, 7.27292734, 0.99888289, 0.99941025, 0.49325187],8500 [ -6.27329316, -0.00036567, 0.00022401, 7.27292749, 0.99888302, 0.99941032, 0.49325203],8501 [ -6.27329326, -0.00036563, 0.00022398, 7.27292764, 0.99888315, 0.99941039, 0.49325193],8502 [ -6.27329337, -0.00036559, 0.00022396, 7.27292778, 0.99888328, 0.99941046, 0.49325192],8503 [ -6.27329347, -0.00036554, 0.00022393, 7.27292793, 0.99888341, 0.99941053, 0.49325212],8504 [ -6.27329357, -0.00036550, 0.00022390, 7.27292807, 0.99888355, 0.99941060, 0.49325192],8505 [ -6.27329368, -0.00036546, 0.00022388, 7.27292822, 0.99888368, 0.99941067, 0.49325204],8506 [ -6.27329378, -0.00036541, 0.00022385, 7.27292837, 0.99888381, 0.99941074, 0.49325210],8507 [ -6.27329388, -0.00036537, 0.00022382, 7.27292851, 0.99888394, 0.99941081, 0.49325200],8508 [ -6.27329399, -0.00036533, 0.00022380, 7.27292866, 0.99888407, 0.99941088, 0.49325216],8509 [ -6.27329409, -0.00036528, 0.00022377, 7.27292881, 0.99888420, 0.99941095, 0.49325212],8510 [ -6.27329419, -0.00036524, 0.00022374, 7.27292895, 0.99888434, 0.99941102, 0.49325214],8511 [ -6.27329430, -0.00036520, 0.00022372, 7.27292910, 0.99888447, 0.99941108, 0.49325208],8512 [ -6.27329440, -0.00036515, 0.00022369, 7.27292925, 0.99888460, 0.99941115, 0.49325230],8513 [ -6.27329450, -0.00036511, 0.00022367, 7.27292939, 0.99888473, 0.99941122, 0.49325225],8514 [ -6.27329461, -0.00036507, 0.00022364, 7.27292954, 0.99888486, 0.99941129, 0.49325212],8515 [ -6.27329471, -0.00036502, 0.00022361, 7.27292968, 0.99888499, 0.99941136, 0.49325221],8516 [ -6.27329481, -0.00036498, 0.00022359, 7.27292983, 0.99888513, 0.99941143, 0.49325215],8517 [ -6.27329491, -0.00036494, 0.00022356, 7.27292998, 0.99888526, 0.99941150, 0.49325228],8518 [ -6.27329502, -0.00036490, 0.00022353, 7.27293012, 0.99888539, 0.99941157, 0.49325236],8519 [ -6.27329512, -0.00036485, 0.00022351, 7.27293027, 0.99888552, 0.99941164, 0.49325238],8520 [ -6.27329522, -0.00036481, 0.00022348, 7.27293041, 0.99888565, 0.99941171, 0.49325230],8521 [ -6.27329533, -0.00036477, 0.00022345, 7.27293056, 0.99888578, 0.99941178, 0.49325233],8522 [ -6.27329543, -0.00036472, 0.00022343, 7.27293071, 0.99888591, 0.99941185, 0.49325243],8523 [ -6.27329553, -0.00036468, 0.00022340, 7.27293085, 0.99888605, 0.99941192, 0.49325248],8524 [ -6.27329564, -0.00036464, 0.00022338, 7.27293100, 0.99888618, 0.99941199, 0.49325226],8525 [ -6.27329574, -0.00036460, 0.00022335, 7.27293114, 0.99888631, 0.99941206, 0.49325247],8526 [ -6.27329584, -0.00036455, 0.00022332, 7.27293129, 0.99888644, 0.99941213, 0.49325235],8527 [ -6.27329594, -0.00036451, 0.00022330, 7.27293143, 0.99888657, 0.99941219, 0.49325238],8528 [ -6.27329605, -0.00036447, 0.00022327, 7.27293158, 0.99888670, 0.99941226, 0.49325236],8529 [ -6.27329615, -0.00036442, 0.00022324, 7.27293173, 0.99888683, 0.99941233, 0.49325251],8530 [ -6.27329625, -0.00036438, 0.00022322, 7.27293187, 0.99888696, 0.99941240, 0.49325244],8531 [ -6.27329635, -0.00036434, 0.00022319, 7.27293202, 0.99888709, 0.99941247, 0.49325243],8532 [ -6.27329646, -0.00036429, 0.00022317, 7.27293216, 0.99888723, 0.99941254, 0.49325235],8533 [ -6.27329656, -0.00036425, 0.00022314, 7.27293231, 0.99888736, 0.99941261, 0.49325265],8534 [ -6.27329666, -0.00036421, 0.00022311, 7.27293245, 0.99888749, 0.99941268, 0.49325266],8535 [ -6.27329677, -0.00036417, 0.00022309, 7.27293260, 0.99888762, 0.99941275, 0.49325241],8536 [ -6.27329687, -0.00036412, 0.00022306, 7.27293274, 0.99888775, 0.99941282, 0.49325251],8537 [ -6.27329697, -0.00036408, 0.00022303, 7.27293289, 0.99888788, 0.99941289, 0.49325244],8538 [ -6.27329707, -0.00036404, 0.00022301, 7.27293304, 0.99888801, 0.99941295, 0.49325256],8539 [ -6.27329718, -0.00036399, 0.00022298, 7.27293318, 0.99888814, 0.99941302, 0.49325261],8540 [ -6.27329728, -0.00036395, 0.00022296, 7.27293333, 0.99888827, 0.99941309, 0.49325262],8541 [ -6.27329738, -0.00036391, 0.00022293, 7.27293347, 0.99888840, 0.99941316, 0.49325272],8542 [ -6.27329748, -0.00036387, 0.00022290, 7.27293362, 0.99888853, 0.99941323, 0.49325264],8543 [ -6.27329758, -0.00036382, 0.00022288, 7.27293376, 0.99888866, 0.99941330, 0.49325271],8544 [ -6.27329769, -0.00036378, 0.00022285, 7.27293391, 0.99888879, 0.99941337, 0.49325250],8545 [ -6.27329779, -0.00036374, 0.00022282, 7.27293405, 0.99888893, 0.99941344, 0.49325276],8546 [ -6.27329789, -0.00036370, 0.00022280, 7.27293420, 0.99888906, 0.99941351, 0.49325279],8547 [ -6.27329799, -0.00036365, 0.00022277, 7.27293434, 0.99888919, 0.99941358, 0.49325256],8548 [ -6.27329810, -0.00036361, 0.00022275, 7.27293449, 0.99888932, 0.99941364, 0.49325269],8549 [ -6.27329820, -0.00036357, 0.00022272, 7.27293463, 0.99888945, 0.99941371, 0.49325274],8550 [ -6.27329830, -0.00036352, 0.00022269, 7.27293478, 0.99888958, 0.99941378, 0.49325276],8551 [ -6.27329840, -0.00036348, 0.00022267, 7.27293492, 0.99888971, 0.99941385, 0.49325275],8552 [ -6.27329851, -0.00036344, 0.00022264, 7.27293507, 0.99888984, 0.99941392, 0.49325266],8553 [ -6.27329861, -0.00036340, 0.00022261, 7.27293521, 0.99888997, 0.99941399, 0.49325274],8554 [ -6.27329871, -0.00036335, 0.00022259, 7.27293536, 0.99889010, 0.99941406, 0.49325275],8555 [ -6.27329881, -0.00036331, 0.00022256, 7.27293550, 0.99889023, 0.99941413, 0.49325279],8556 [ -6.27329891, -0.00036327, 0.00022254, 7.27293565, 0.99889036, 0.99941420, 0.49325277],8557 [ -6.27329902, -0.00036323, 0.00022251, 7.27293579, 0.99889049, 0.99941426, 0.49325299],8558 [ -6.27329912, -0.00036318, 0.00022248, 7.27293593, 0.99889062, 0.99941433, 0.49325298],8559 [ -6.27329922, -0.00036314, 0.00022246, 7.27293608, 0.99889075, 0.99941440, 0.49325274],8560 [ -6.27329932, -0.00036310, 0.00022243, 7.27293622, 0.99889088, 0.99941447, 0.49325294],8561 [ -6.27329942, -0.00036306, 0.00022241, 7.27293637, 0.99889101, 0.99941454, 0.49325297],8562 [ -6.27329953, -0.00036301, 0.00022238, 7.27293651, 0.99889114, 0.99941461, 0.49325278],8563 [ -6.27329963, -0.00036297, 0.00022235, 7.27293666, 0.99889127, 0.99941468, 0.49325281],8564 [ -6.27329973, -0.00036293, 0.00022233, 7.27293680, 0.99889140, 0.99941474, 0.49325304],8565 [ -6.27329983, -0.00036289, 0.00022230, 7.27293695, 0.99889153, 0.99941481, 0.49325295],8566 [ -6.27329993, -0.00036284, 0.00022228, 7.27293709, 0.99889166, 0.99941488, 0.49325311],8567 [ -6.27330004, -0.00036280, 0.00022225, 7.27293723, 0.99889179, 0.99941495, 0.49325291],8568 [ -6.27330014, -0.00036276, 0.00022222, 7.27293738, 0.99889192, 0.99941502, 0.49325317],8569 [ -6.27330024, -0.00036272, 0.00022220, 7.27293752, 0.99889205, 0.99941509, 0.49325298],8570 [ -6.27330034, -0.00036267, 0.00022217, 7.27293767, 0.99889218, 0.99941516, 0.49325316],8571 [ -6.27330044, -0.00036263, 0.00022215, 7.27293781, 0.99889231, 0.99941522, 0.49325310],8572 [ -6.27330054, -0.00036259, 0.00022212, 7.27293796, 0.99889244, 0.99941529, 0.49325314],8573 [ -6.27330065, -0.00036255, 0.00022209, 7.27293810, 0.99889257, 0.99941536, 0.49325310],8574 [ -6.27330075, -0.00036250, 0.00022207, 7.27293824, 0.99889270, 0.99941543, 0.49325300],8575 [ -6.27330085, -0.00036246, 0.00022204, 7.27293839, 0.99889283, 0.99941550, 0.49325323],8576 [ -6.27330095, -0.00036242, 0.00022202, 7.27293853, 0.99889296, 0.99941557, 0.49325313],8577 [ -6.27330105, -0.00036238, 0.00022199, 7.27293868, 0.99889309, 0.99941564, 0.49325318],8578 [ -6.27330115, -0.00036233, 0.00022196, 7.27293882, 0.99889322, 0.99941570, 0.49325325],8579 [ -6.27330126, -0.00036229, 0.00022194, 7.27293896, 0.99889335, 0.99941577, 0.49325315],8580 [ -6.27330136, -0.00036225, 0.00022191, 7.27293911, 0.99889348, 0.99941584, 0.49325312],8581 [ -6.27330146, -0.00036221, 0.00022189, 7.27293925, 0.99889361, 0.99941591, 0.49325327],8582 [ -6.27330156, -0.00036216, 0.00022186, 7.27293940, 0.99889374, 0.99941598, 0.49325334],8583 [ -6.27330166, -0.00036212, 0.00022183, 7.27293954, 0.99889387, 0.99941605, 0.49325318],8584 [ -6.27330176, -0.00036208, 0.00022181, 7.27293968, 0.99889400, 0.99941611, 0.49325339],8585 [ -6.27330186, -0.00036204, 0.00022178, 7.27293983, 0.99889412, 0.99941618, 0.49325320],8586 [ -6.27330197, -0.00036199, 0.00022176, 7.27293997, 0.99889425, 0.99941625, 0.49325327],8587 [ -6.27330207, -0.00036195, 0.00022173, 7.27294011, 0.99889438, 0.99941632, 0.49325329],8588 [ -6.27330217, -0.00036191, 0.00022170, 7.27294026, 0.99889451, 0.99941639, 0.49325333],8589 [ -6.27330227, -0.00036187, 0.00022168, 7.27294040, 0.99889464, 0.99941646, 0.49325330],8590 [ -6.27330237, -0.00036182, 0.00022165, 7.27294055, 0.99889477, 0.99941652, 0.49325321],8591 [ -6.27330247, -0.00036178, 0.00022163, 7.27294069, 0.99889490, 0.99941659, 0.49325343],8592 [ -6.27330257, -0.00036174, 0.00022160, 7.27294083, 0.99889503, 0.99941666, 0.49325334],8593 [ -6.27330267, -0.00036170, 0.00022157, 7.27294098, 0.99889516, 0.99941673, 0.49325333],8594 [ -6.27330278, -0.00036166, 0.00022155, 7.27294112, 0.99889529, 0.99941680, 0.49325328],8595 [ -6.27330288, -0.00036161, 0.00022152, 7.27294126, 0.99889542, 0.99941686, 0.49325344],8596 [ -6.27330298, -0.00036157, 0.00022150, 7.27294141, 0.99889555, 0.99941693, 0.49325340],8597 [ -6.27330308, -0.00036153, 0.00022147, 7.27294155, 0.99889568, 0.99941700, 0.49325337],8598 [ -6.27330318, -0.00036149, 0.00022144, 7.27294169, 0.99889580, 0.99941707, 0.49325346],8599 [ -6.27330328, -0.00036144, 0.00022142, 7.27294184, 0.99889593, 0.99941714, 0.49325350],8600 [ -6.27330338, -0.00036140, 0.00022139, 7.27294198, 0.99889606, 0.99941720, 0.49325355],8601 [ -6.27330348, -0.00036136, 0.00022137, 7.27294212, 0.99889619, 0.99941727, 0.49325362],8602 [ -6.27330358, -0.00036132, 0.00022134, 7.27294227, 0.99889632, 0.99941734, 0.49325356],8603 [ -6.27330368, -0.00036128, 0.00022132, 7.27294241, 0.99889645, 0.99941741, 0.49325360],8604 [ -6.27330379, -0.00036123, 0.00022129, 7.27294255, 0.99889658, 0.99941748, 0.49325348],8605 [ -6.27330389, -0.00036119, 0.00022126, 7.27294269, 0.99889671, 0.99941754, 0.49325378],8606 [ -6.27330399, -0.00036115, 0.00022124, 7.27294284, 0.99889684, 0.99941761, 0.49325364],8607 [ -6.27330409, -0.00036111, 0.00022121, 7.27294298, 0.99889696, 0.99941768, 0.49325361],8608 [ -6.27330419, -0.00036107, 0.00022119, 7.27294312, 0.99889709, 0.99941775, 0.49325386],8609 [ -6.27330429, -0.00036102, 0.00022116, 7.27294327, 0.99889722, 0.99941782, 0.49325359],8610 [ -6.27330439, -0.00036098, 0.00022113, 7.27294341, 0.99889735, 0.99941788, 0.49325371],8611 [ -6.27330449, -0.00036094, 0.00022111, 7.27294355, 0.99889748, 0.99941795, 0.49325375],8612 [ -6.27330459, -0.00036090, 0.00022108, 7.27294370, 0.99889761, 0.99941802, 0.49325371],8613 [ -6.27330469, -0.00036085, 0.00022106, 7.27294384, 0.99889774, 0.99941809, 0.49325378],8614 [ -6.27330479, -0.00036081, 0.00022103, 7.27294398, 0.99889786, 0.99941816, 0.49325370],8615 [ -6.27330489, -0.00036077, 0.00022101, 7.27294412, 0.99889799, 0.99941822, 0.49325364],8616 [ -6.27330499, -0.00036073, 0.00022098, 7.27294427, 0.99889812, 0.99941829, 0.49325373],8617 [ -6.27330510, -0.00036069, 0.00022095, 7.27294441, 0.99889825, 0.99941836, 0.49325372],8618 [ -6.27330520, -0.00036064, 0.00022093, 7.27294455, 0.99889838, 0.99941843, 0.49325391],8619 [ -6.27330530, -0.00036060, 0.00022090, 7.27294469, 0.99889851, 0.99941849, 0.49325378],8620 [ -6.27330540, -0.00036056, 0.00022088, 7.27294484, 0.99889863, 0.99941856, 0.49325387],8621 [ -6.27330550, -0.00036052, 0.00022085, 7.27294498, 0.99889876, 0.99941863, 0.49325370],8622 [ -6.27330560, -0.00036048, 0.00022083, 7.27294512, 0.99889889, 0.99941870, 0.49325386],8623 [ -6.27330570, -0.00036043, 0.00022080, 7.27294526, 0.99889902, 0.99941877, 0.49325387],8624 [ -6.27330580, -0.00036039, 0.00022077, 7.27294541, 0.99889915, 0.99941883, 0.49325384],8625 [ -6.27330590, -0.00036035, 0.00022075, 7.27294555, 0.99889928, 0.99941890, 0.49325392],8626 [ -6.27330600, -0.00036031, 0.00022072, 7.27294569, 0.99889940, 0.99941897, 0.49325387],8627 [ -6.27330610, -0.00036027, 0.00022070, 7.27294583, 0.99889953, 0.99941904, 0.49325390],8628 [ -6.27330620, -0.00036023, 0.00022067, 7.27294598, 0.99889966, 0.99941910, 0.49325400],8629 [ -6.27330630, -0.00036018, 0.00022065, 7.27294612, 0.99889979, 0.99941917, 0.49325409],8630 [ -6.27330640, -0.00036014, 0.00022062, 7.27294626, 0.99889992, 0.99941924, 0.49325386],8631 [ -6.27330650, -0.00036010, 0.00022059, 7.27294640, 0.99890004, 0.99941931, 0.49325408],8632 [ -6.27330660, -0.00036006, 0.00022057, 7.27294654, 0.99890017, 0.99941937, 0.49325391],8633 [ -6.27330670, -0.00036002, 0.00022054, 7.27294669, 0.99890030, 0.99941944, 0.49325389],8634 [ -6.27330680, -0.00035997, 0.00022052, 7.27294683, 0.99890043, 0.99941951, 0.49325379],8635 [ -6.27330690, -0.00035993, 0.00022049, 7.27294697, 0.99890056, 0.99941958, 0.49325409],8636 [ -6.27330700, -0.00035989, 0.00022047, 7.27294711, 0.99890068, 0.99941964, 0.49325388],8637 [ -6.27330710, -0.00035985, 0.00022044, 7.27294726, 0.99890081, 0.99941971, 0.49325402],8638 [ -6.27330720, -0.00035981, 0.00022041, 7.27294740, 0.99890094, 0.99941978, 0.49325423],8639 [ -6.27330730, -0.00035976, 0.00022039, 7.27294754, 0.99890107, 0.99941985, 0.49325405],8640 [ -6.27330740, -0.00035972, 0.00022036, 7.27294768, 0.99890119, 0.99941991, 0.49325402],8641 [ -6.27330750, -0.00035968, 0.00022034, 7.27294782, 0.99890132, 0.99941998, 0.49325409],8642 [ -6.27330760, -0.00035964, 0.00022031, 7.27294796, 0.99890145, 0.99942005, 0.49325408],8643 [ -6.27330770, -0.00035960, 0.00022029, 7.27294811, 0.99890158, 0.99942012, 0.49325430],8644 [ -6.27330780, -0.00035956, 0.00022026, 7.27294825, 0.99890171, 0.99942018, 0.49325412],8645 [ -6.27330790, -0.00035951, 0.00022024, 7.27294839, 0.99890183, 0.99942025, 0.49325410],8646 [ -6.27330800, -0.00035947, 0.00022021, 7.27294853, 0.99890196, 0.99942032, 0.49325444],8647 [ -6.27330810, -0.00035943, 0.00022018, 7.27294867, 0.99890209, 0.99942039, 0.49325431],8648 [ -6.27330820, -0.00035939, 0.00022016, 7.27294882, 0.99890222, 0.99942045, 0.49325422],8649 [ -6.27330830, -0.00035935, 0.00022013, 7.27294896, 0.99890234, 0.99942052, 0.49325435],8650 [ -6.27330840, -0.00035931, 0.00022011, 7.27294910, 0.99890247, 0.99942059, 0.49325426],8651 [ -6.27330850, -0.00035926, 0.00022008, 7.27294924, 0.99890260, 0.99942065, 0.49325433],8652 [ -6.27330860, -0.00035922, 0.00022006, 7.27294938, 0.99890273, 0.99942072, 0.49325432],8653 [ -6.27330870, -0.00035918, 0.00022003, 7.27294952, 0.99890285, 0.99942079, 0.49325444],8654 [ -6.27330880, -0.00035914, 0.00022001, 7.27294966, 0.99890298, 0.99942086, 0.49325435],8655 [ -6.27330890, -0.00035910, 0.00021998, 7.27294981, 0.99890311, 0.99942092, 0.49325422],8656 [ -6.27330900, -0.00035906, 0.00021995, 7.27294995, 0.99890323, 0.99942099, 0.49325439],8657 [ -6.27330910, -0.00035901, 0.00021993, 7.27295009, 0.99890336, 0.99942106, 0.49325438],8658 [ -6.27330920, -0.00035897, 0.00021990, 7.27295023, 0.99890349, 0.99942113, 0.49325454],8659 [ -6.27330930, -0.00035893, 0.00021988, 7.27295037, 0.99890362, 0.99942119, 0.49325448],8660 [ -6.27330940, -0.00035889, 0.00021985, 7.27295051, 0.99890374, 0.99942126, 0.49325441],8661 [ -6.27330950, -0.00035885, 0.00021983, 7.27295065, 0.99890387, 0.99942133, 0.49325438],8662 [ -6.27330960, -0.00035881, 0.00021980, 7.27295079, 0.99890400, 0.99942139, 0.49325444],8663 [ -6.27330970, -0.00035876, 0.00021978, 7.27295094, 0.99890412, 0.99942146, 0.49325455],8664 [ -6.27330980, -0.00035872, 0.00021975, 7.27295108, 0.99890425, 0.99942153, 0.49325435],8665 [ -6.27330990, -0.00035868, 0.00021972, 7.27295122, 0.99890438, 0.99942159, 0.49325446],8666 [ -6.27331000, -0.00035864, 0.00021970, 7.27295136, 0.99890451, 0.99942166, 0.49325463],8667 [ -6.27331010, -0.00035860, 0.00021967, 7.27295150, 0.99890463, 0.99942173, 0.49325459],8668 [ -6.27331020, -0.00035856, 0.00021965, 7.27295164, 0.99890476, 0.99942180, 0.49325444],8669 [ -6.27331030, -0.00035851, 0.00021962, 7.27295178, 0.99890489, 0.99942186, 0.49325446],8670 [ -6.27331040, -0.00035847, 0.00021960, 7.27295192, 0.99890501, 0.99942193, 0.49325470],8671 [ -6.27331050, -0.00035843, 0.00021957, 7.27295206, 0.99890514, 0.99942200, 0.49325447],8672 [ -6.27331059, -0.00035839, 0.00021955, 7.27295220, 0.99890527, 0.99942206, 0.49325451],8673 [ -6.27331069, -0.00035835, 0.00021952, 7.27295235, 0.99890539, 0.99942213, 0.49325471],8674 [ -6.27331079, -0.00035831, 0.00021950, 7.27295249, 0.99890552, 0.99942220, 0.49325479],8675 [ -6.27331089, -0.00035827, 0.00021947, 7.27295263, 0.99890565, 0.99942226, 0.49325465],8676 [ -6.27331099, -0.00035822, 0.00021944, 7.27295277, 0.99890577, 0.99942233, 0.49325460],8677 [ -6.27331109, -0.00035818, 0.00021942, 7.27295291, 0.99890590, 0.99942240, 0.49325463],8678 [ -6.27331119, -0.00035814, 0.00021939, 7.27295305, 0.99890603, 0.99942246, 0.49325475],8679 [ -6.27331129, -0.00035810, 0.00021937, 7.27295319, 0.99890615, 0.99942253, 0.49325484],8680 [ -6.27331139, -0.00035806, 0.00021934, 7.27295333, 0.99890628, 0.99942260, 0.49325478],8681 [ -6.27331149, -0.00035802, 0.00021932, 7.27295347, 0.99890641, 0.99942267, 0.49325476],8682 [ -6.27331159, -0.00035798, 0.00021929, 7.27295361, 0.99890653, 0.99942273, 0.49325474],8683 [ -6.27331169, -0.00035793, 0.00021927, 7.27295375, 0.99890666, 0.99942280, 0.49325471],8684 [ -6.27331179, -0.00035789, 0.00021924, 7.27295389, 0.99890679, 0.99942287, 0.49325479],8685 [ -6.27331188, -0.00035785, 0.00021922, 7.27295403, 0.99890691, 0.99942293, 0.49325475],8686 [ -6.27331198, -0.00035781, 0.00021919, 7.27295417, 0.99890704, 0.99942300, 0.49325483],8687 [ -6.27331208, -0.00035777, 0.00021917, 7.27295431, 0.99890717, 0.99942307, 0.49325488],8688 [ -6.27331218, -0.00035773, 0.00021914, 7.27295445, 0.99890729, 0.99942313, 0.49325468],8689 [ -6.27331228, -0.00035769, 0.00021911, 7.27295459, 0.99890742, 0.99942320, 0.49325487],8690 [ -6.27331238, -0.00035764, 0.00021909, 7.27295473, 0.99890754, 0.99942327, 0.49325491],8691 [ -6.27331248, -0.00035760, 0.00021906, 7.27295487, 0.99890767, 0.99942333, 0.49325485],8692 [ -6.27331258, -0.00035756, 0.00021904, 7.27295501, 0.99890780, 0.99942340, 0.49325494],8693 [ -6.27331268, -0.00035752, 0.00021901, 7.27295515, 0.99890792, 0.99942347, 0.49325489],8694 [ -6.27331277, -0.00035748, 0.00021899, 7.27295529, 0.99890805, 0.99942353, 0.49325507],8695 [ -6.27331287, -0.00035744, 0.00021896, 7.27295544, 0.99890818, 0.99942360, 0.49325487],8696 [ -6.27331297, -0.00035740, 0.00021894, 7.27295558, 0.99890830, 0.99942367, 0.49325485],8697 [ -6.27331307, -0.00035736, 0.00021891, 7.27295572, 0.99890843, 0.99942373, 0.49325494],8698 [ -6.27331317, -0.00035731, 0.00021889, 7.27295586, 0.99890855, 0.99942380, 0.49325502],8699 [ -6.27331327, -0.00035727, 0.00021886, 7.27295600, 0.99890868, 0.99942386, 0.49325506],8700 [ -6.27331337, -0.00035723, 0.00021884, 7.27295614, 0.99890881, 0.99942393, 0.49325501],8701 [ -6.27331347, -0.00035719, 0.00021881, 7.27295628, 0.99890893, 0.99942400, 0.49325503],8702 [ -6.27331356, -0.00035715, 0.00021879, 7.27295642, 0.99890906, 0.99942406, 0.49325490],8703 [ -6.27331366, -0.00035711, 0.00021876, 7.27295655, 0.99890918, 0.99942413, 0.49325500],8704 [ -6.27331376, -0.00035707, 0.00021874, 7.27295669, 0.99890931, 0.99942420, 0.49325510],8705 [ -6.27331386, -0.00035703, 0.00021871, 7.27295683, 0.99890943, 0.99942426, 0.49325499],8706 [ -6.27331396, -0.00035698, 0.00021869, 7.27295697, 0.99890956, 0.99942433, 0.49325505],8707 [ -6.27331406, -0.00035694, 0.00021866, 7.27295711, 0.99890969, 0.99942440, 0.49325506],8708 [ -6.27331416, -0.00035690, 0.00021863, 7.27295725, 0.99890981, 0.99942446, 0.49325523],8709 [ -6.27331425, -0.00035686, 0.00021861, 7.27295739, 0.99890994, 0.99942453, 0.49325511],8710 [ -6.27331435, -0.00035682, 0.00021858, 7.27295753, 0.99891006, 0.99942460, 0.49325502],8711 [ -6.27331445, -0.00035678, 0.00021856, 7.27295767, 0.99891019, 0.99942466, 0.49325512],8712 [ -6.27331455, -0.00035674, 0.00021853, 7.27295781, 0.99891032, 0.99942473, 0.49325535],8713 [ -6.27331465, -0.00035670, 0.00021851, 7.27295795, 0.99891044, 0.99942479, 0.49325526],8714 [ -6.27331475, -0.00035666, 0.00021848, 7.27295809, 0.99891057, 0.99942486, 0.49325504],8715 [ -6.27331485, -0.00035661, 0.00021846, 7.27295823, 0.99891069, 0.99942493, 0.49325512],8716 [ -6.27331494, -0.00035657, 0.00021843, 7.27295837, 0.99891082, 0.99942499, 0.49325533],8717 [ -6.27331504, -0.00035653, 0.00021841, 7.27295851, 0.99891094, 0.99942506, 0.49325523],8718 [ -6.27331514, -0.00035649, 0.00021838, 7.27295865, 0.99891107, 0.99942513, 0.49325528],8719 [ -6.27331524, -0.00035645, 0.00021836, 7.27295879, 0.99891119, 0.99942519, 0.49325526],8720 [ -6.27331534, -0.00035641, 0.00021833, 7.27295893, 0.99891132, 0.99942526, 0.49325527],8721 [ -6.27331543, -0.00035637, 0.00021831, 7.27295907, 0.99891144, 0.99942532, 0.49325541],8722 [ -6.27331553, -0.00035633, 0.00021828, 7.27295921, 0.99891157, 0.99942539, 0.49325526],8723 [ -6.27331563, -0.00035629, 0.00021826, 7.27295935, 0.99891169, 0.99942546, 0.49325518],8724 [ -6.27331573, -0.00035625, 0.00021823, 7.27295948, 0.99891182, 0.99942552, 0.49325527],8725 [ -6.27331583, -0.00035620, 0.00021821, 7.27295962, 0.99891195, 0.99942559, 0.49325543],8726 [ -6.27331593, -0.00035616, 0.00021818, 7.27295976, 0.99891207, 0.99942566, 0.49325535],8727 [ -6.27331602, -0.00035612, 0.00021816, 7.27295990, 0.99891220, 0.99942572, 0.49325531],8728 [ -6.27331612, -0.00035608, 0.00021813, 7.27296004, 0.99891232, 0.99942579, 0.49325537],8729 [ -6.27331622, -0.00035604, 0.00021811, 7.27296018, 0.99891245, 0.99942585, 0.49325536],8730 [ -6.27331632, -0.00035600, 0.00021808, 7.27296032, 0.99891257, 0.99942592, 0.49325546],8731 [ -6.27331642, -0.00035596, 0.00021806, 7.27296046, 0.99891270, 0.99942599, 0.49325549],8732 [ -6.27331651, -0.00035592, 0.00021803, 7.27296060, 0.99891282, 0.99942605, 0.49325546],8733 [ -6.27331661, -0.00035588, 0.00021801, 7.27296074, 0.99891295, 0.99942612, 0.49325542],8734 [ -6.27331671, -0.00035584, 0.00021798, 7.27296087, 0.99891307, 0.99942618, 0.49325537],8735 [ -6.27331681, -0.00035579, 0.00021796, 7.27296101, 0.99891320, 0.99942625, 0.49325535],8736 [ -6.27331691, -0.00035575, 0.00021793, 7.27296115, 0.99891332, 0.99942632, 0.49325540],8737 [ -6.27331700, -0.00035571, 0.00021791, 7.27296129, 0.99891345, 0.99942638, 0.49325546],8738 [ -6.27331710, -0.00035567, 0.00021788, 7.27296143, 0.99891357, 0.99942645, 0.49325545],8739 [ -6.27331720, -0.00035563, 0.00021786, 7.27296157, 0.99891370, 0.99942651, 0.49325569],8740 [ -6.27331730, -0.00035559, 0.00021783, 7.27296171, 0.99891382, 0.99942658, 0.49325550],8741 [ -6.27331740, -0.00035555, 0.00021781, 7.27296185, 0.99891395, 0.99942664, 0.49325563],8742 [ -6.27331749, -0.00035551, 0.00021778, 7.27296198, 0.99891407, 0.99942671, 0.49325568],8743 [ -6.27331759, -0.00035547, 0.00021776, 7.27296212, 0.99891420, 0.99942678, 0.49325547],8744 [ -6.27331769, -0.00035543, 0.00021773, 7.27296226, 0.99891432, 0.99942684, 0.49325550],8745 [ -6.27331779, -0.00035539, 0.00021771, 7.27296240, 0.99891444, 0.99942691, 0.49325571],8746 [ -6.27331788, -0.00035535, 0.00021768, 7.27296254, 0.99891457, 0.99942697, 0.49325568],8747 [ -6.27331798, -0.00035530, 0.00021766, 7.27296268, 0.99891469, 0.99942704, 0.49325562],8748 [ -6.27331808, -0.00035526, 0.00021763, 7.27296281, 0.99891482, 0.99942711, 0.49325569],8749 [ -6.27331818, -0.00035522, 0.00021761, 7.27296295, 0.99891494, 0.99942717, 0.49325576],8750 [ -6.27331827, -0.00035518, 0.00021758, 7.27296309, 0.99891507, 0.99942724, 0.49325584],8751 [ -6.27331837, -0.00035514, 0.00021756, 7.27296323, 0.99891519, 0.99942730, 0.49325572],8752 [ -6.27331847, -0.00035510, 0.00021753, 7.27296337, 0.99891532, 0.99942737, 0.49325557],8753 [ -6.27331857, -0.00035506, 0.00021751, 7.27296351, 0.99891544, 0.99942743, 0.49325555],8754 [ -6.27331866, -0.00035502, 0.00021748, 7.27296364, 0.99891557, 0.99942750, 0.49325590],8755 [ -6.27331876, -0.00035498, 0.00021746, 7.27296378, 0.99891569, 0.99942757, 0.49325582],8756 [ -6.27331886, -0.00035494, 0.00021743, 7.27296392, 0.99891581, 0.99942763, 0.49325599],8757 [ -6.27331896, -0.00035490, 0.00021741, 7.27296406, 0.99891594, 0.99942770, 0.49325596],8758 [ -6.27331905, -0.00035486, 0.00021738, 7.27296420, 0.99891606, 0.99942776, 0.49325600],8759 [ -6.27331915, -0.00035482, 0.00021736, 7.27296434, 0.99891619, 0.99942783, 0.49325578],8760 [ -6.27331925, -0.00035478, 0.00021733, 7.27296447, 0.99891631, 0.99942789, 0.49325597],8761 [ -6.27331935, -0.00035473, 0.00021731, 7.27296461, 0.99891644, 0.99942796, 0.49325578],8762 [ -6.27331944, -0.00035469, 0.00021728, 7.27296475, 0.99891656, 0.99942802, 0.49325601],8763 [ -6.27331954, -0.00035465, 0.00021726, 7.27296489, 0.99891668, 0.99942809, 0.49325574],8764 [ -6.27331964, -0.00035461, 0.00021723, 7.27296503, 0.99891681, 0.99942816, 0.49325598],8765 [ -6.27331974, -0.00035457, 0.00021721, 7.27296516, 0.99891693, 0.99942822, 0.49325602],8766 [ -6.27331983, -0.00035453, 0.00021718, 7.27296530, 0.99891706, 0.99942829, 0.49325595],8767 [ -6.27331993, -0.00035449, 0.00021716, 7.27296544, 0.99891718, 0.99942835, 0.49325608],8768 [ -6.27332003, -0.00035445, 0.00021713, 7.27296558, 0.99891730, 0.99942842, 0.49325597],8769 [ -6.27332012, -0.00035441, 0.00021711, 7.27296571, 0.99891743, 0.99942848, 0.49325598],8770 [ -6.27332022, -0.00035437, 0.00021708, 7.27296585, 0.99891755, 0.99942855, 0.49325613],8771 [ -6.27332032, -0.00035433, 0.00021706, 7.27296599, 0.99891768, 0.99942861, 0.49325588],8772 [ -6.27332042, -0.00035429, 0.00021703, 7.27296613, 0.99891780, 0.99942868, 0.49325598],8773 [ -6.27332051, -0.00035425, 0.00021701, 7.27296626, 0.99891792, 0.99942874, 0.49325592],8774 [ -6.27332061, -0.00035421, 0.00021698, 7.27296640, 0.99891805, 0.99942881, 0.49325612],8775 [ -6.27332071, -0.00035417, 0.00021696, 7.27296654, 0.99891817, 0.99942888, 0.49325620],8776 [ -6.27332080, -0.00035413, 0.00021693, 7.27296668, 0.99891830, 0.99942894, 0.49325610],8777 [ -6.27332090, -0.00035409, 0.00021691, 7.27296681, 0.99891842, 0.99942901, 0.49325614],8778 [ -6.27332100, -0.00035405, 0.00021688, 7.27296695, 0.99891854, 0.99942907, 0.49325612],8779 [ -6.27332109, -0.00035400, 0.00021686, 7.27296709, 0.99891867, 0.99942914, 0.49325613],8780 [ -6.27332119, -0.00035396, 0.00021683, 7.27296723, 0.99891879, 0.99942920, 0.49325604],8781 [ -6.27332129, -0.00035392, 0.00021681, 7.27296736, 0.99891891, 0.99942927, 0.49325626],8782 [ -6.27332139, -0.00035388, 0.00021678, 7.27296750, 0.99891904, 0.99942933, 0.49325625],8783 [ -6.27332148, -0.00035384, 0.00021676, 7.27296764, 0.99891916, 0.99942940, 0.49325605],8784 [ -6.27332158, -0.00035380, 0.00021673, 7.27296778, 0.99891928, 0.99942946, 0.49325626],8785 [ -6.27332168, -0.00035376, 0.00021671, 7.27296791, 0.99891941, 0.99942953, 0.49325629],8786 [ -6.27332177, -0.00035372, 0.00021669, 7.27296805, 0.99891953, 0.99942959, 0.49325630],8787 [ -6.27332187, -0.00035368, 0.00021666, 7.27296819, 0.99891966, 0.99942966, 0.49325628],8788 [ -6.27332197, -0.00035364, 0.00021664, 7.27296833, 0.99891978, 0.99942972, 0.49325635],8789 [ -6.27332206, -0.00035360, 0.00021661, 7.27296846, 0.99891990, 0.99942979, 0.49325625],8790 [ -6.27332216, -0.00035356, 0.00021659, 7.27296860, 0.99892003, 0.99942985, 0.49325617],8791 [ -6.27332226, -0.00035352, 0.00021656, 7.27296874, 0.99892015, 0.99942992, 0.49325641],8792 [ -6.27332235, -0.00035348, 0.00021654, 7.27296887, 0.99892027, 0.99942998, 0.49325636],8793 [ -6.27332245, -0.00035344, 0.00021651, 7.27296901, 0.99892040, 0.99943005, 0.49325630],8794 [ -6.27332255, -0.00035340, 0.00021649, 7.27296915, 0.99892052, 0.99943011, 0.49325637],8795 [ -6.27332264, -0.00035336, 0.00021646, 7.27296928, 0.99892064, 0.99943018, 0.49325631],8796 [ -6.27332274, -0.00035332, 0.00021644, 7.27296942, 0.99892077, 0.99943024, 0.49325656],8797 [ -6.27332284, -0.00035328, 0.00021641, 7.27296956, 0.99892089, 0.99943031, 0.49325631],8798 [ -6.27332293, -0.00035324, 0.00021639, 7.27296970, 0.99892101, 0.99943037, 0.49325638],8799 [ -6.27332303, -0.00035320, 0.00021636, 7.27296983, 0.99892114, 0.99943044, 0.49325647],8800 [ -6.27332313, -0.00035316, 0.00021634, 7.27296997, 0.99892126, 0.99943050, 0.49325639],8801 [ -6.27332322, -0.00035312, 0.00021631, 7.27297011, 0.99892138, 0.99943057, 0.49325638],8802 [ -6.27332332, -0.00035308, 0.00021629, 7.27297024, 0.99892150, 0.99943063, 0.49325638],8803 [ -6.27332341, -0.00035304, 0.00021626, 7.27297038, 0.99892163, 0.99943070, 0.49325643],8804 [ -6.27332351, -0.00035300, 0.00021624, 7.27297052, 0.99892175, 0.99943076, 0.49325659],8805 [ -6.27332361, -0.00035296, 0.00021622, 7.27297065, 0.99892187, 0.99943083, 0.49325672],8806 [ -6.27332370, -0.00035291, 0.00021619, 7.27297079, 0.99892200, 0.99943089, 0.49325654],8807 [ -6.27332380, -0.00035287, 0.00021617, 7.27297093, 0.99892212, 0.99943096, 0.49325642],8808 [ -6.27332390, -0.00035283, 0.00021614, 7.27297106, 0.99892224, 0.99943102, 0.49325660],8809 [ -6.27332399, -0.00035279, 0.00021612, 7.27297120, 0.99892237, 0.99943109, 0.49325667],8810 [ -6.27332409, -0.00035275, 0.00021609, 7.27297133, 0.99892249, 0.99943115, 0.49325649],8811 [ -6.27332418, -0.00035271, 0.00021607, 7.27297147, 0.99892261, 0.99943122, 0.49325655],8812 [ -6.27332428, -0.00035267, 0.00021604, 7.27297161, 0.99892273, 0.99943128, 0.49325662],8813 [ -6.27332438, -0.00035263, 0.00021602, 7.27297174, 0.99892286, 0.99943135, 0.49325664],8814 [ -6.27332447, -0.00035259, 0.00021599, 7.27297188, 0.99892298, 0.99943141, 0.49325657],8815 [ -6.27332457, -0.00035255, 0.00021597, 7.27297202, 0.99892310, 0.99943148, 0.49325670],8816 [ -6.27332467, -0.00035251, 0.00021594, 7.27297215, 0.99892322, 0.99943154, 0.49325664],8817 [ -6.27332476, -0.00035247, 0.00021592, 7.27297229, 0.99892335, 0.99943161, 0.49325680],8818 [ -6.27332486, -0.00035243, 0.00021590, 7.27297243, 0.99892347, 0.99943167, 0.49325677],8819 [ -6.27332495, -0.00035239, 0.00021587, 7.27297256, 0.99892359, 0.99943174, 0.49325674],8820 [ -6.27332505, -0.00035235, 0.00021585, 7.27297270, 0.99892371, 0.99943180, 0.49325673],8821 [ -6.27332515, -0.00035231, 0.00021582, 7.27297283, 0.99892384, 0.99943187, 0.49325687],8822 [ -6.27332524, -0.00035227, 0.00021580, 7.27297297, 0.99892396, 0.99943193, 0.49325676],8823 [ -6.27332534, -0.00035223, 0.00021577, 7.27297311, 0.99892408, 0.99943200, 0.49325694],8824 [ -6.27332543, -0.00035219, 0.00021575, 7.27297324, 0.99892420, 0.99943206, 0.49325684],8825 [ -6.27332553, -0.00035215, 0.00021572, 7.27297338, 0.99892433, 0.99943212, 0.49325673],8826 [ -6.27332563, -0.00035211, 0.00021570, 7.27297351, 0.99892445, 0.99943219, 0.49325679],8827 [ -6.27332572, -0.00035207, 0.00021567, 7.27297365, 0.99892457, 0.99943225, 0.49325687],8828 [ -6.27332582, -0.00035203, 0.00021565, 7.27297379, 0.99892469, 0.99943232, 0.49325682],8829 [ -6.27332591, -0.00035199, 0.00021563, 7.27297392, 0.99892482, 0.99943238, 0.49325693],8830 [ -6.27332601, -0.00035195, 0.00021560, 7.27297406, 0.99892494, 0.99943245, 0.49325706],8831 [ -6.27332611, -0.00035191, 0.00021558, 7.27297419, 0.99892506, 0.99943251, 0.49325679],8832 [ -6.27332620, -0.00035187, 0.00021555, 7.27297433, 0.99892518, 0.99943258, 0.49325693],8833 [ -6.27332630, -0.00035183, 0.00021553, 7.27297446, 0.99892531, 0.99943264, 0.49325690],8834 [ -6.27332639, -0.00035179, 0.00021550, 7.27297460, 0.99892543, 0.99943271, 0.49325679],8835 [ -6.27332649, -0.00035175, 0.00021548, 7.27297474, 0.99892555, 0.99943277, 0.49325703],8836 [ -6.27332658, -0.00035171, 0.00021545, 7.27297487, 0.99892567, 0.99943283, 0.49325709],8837 [ -6.27332668, -0.00035167, 0.00021543, 7.27297501, 0.99892579, 0.99943290, 0.49325716],8838 [ -6.27332678, -0.00035163, 0.00021540, 7.27297514, 0.99892592, 0.99943296, 0.49325688],8839 [ -6.27332687, -0.00035159, 0.00021538, 7.27297528, 0.99892604, 0.99943303, 0.49325701],8840 [ -6.27332697, -0.00035155, 0.00021536, 7.27297541, 0.99892616, 0.99943309, 0.49325699],8841 [ -6.27332706, -0.00035151, 0.00021533, 7.27297555, 0.99892628, 0.99943316, 0.49325716],8842 [ -6.27332716, -0.00035147, 0.00021531, 7.27297569, 0.99892640, 0.99943322, 0.49325705],8843 [ -6.27332725, -0.00035143, 0.00021528, 7.27297582, 0.99892653, 0.99943329, 0.49325714],8844 [ -6.27332735, -0.00035139, 0.00021526, 7.27297596, 0.99892665, 0.99943335, 0.49325697],8845 [ -6.27332744, -0.00035135, 0.00021523, 7.27297609, 0.99892677, 0.99943341, 0.49325706],8846 [ -6.27332754, -0.00035131, 0.00021521, 7.27297623, 0.99892689, 0.99943348, 0.49325710],8847 [ -6.27332763, -0.00035127, 0.00021518, 7.27297636, 0.99892701, 0.99943354, 0.49325718],8848 [ -6.27332773, -0.00035123, 0.00021516, 7.27297650, 0.99892714, 0.99943361, 0.49325714],8849 [ -6.27332783, -0.00035119, 0.00021514, 7.27297663, 0.99892726, 0.99943367, 0.49325704],8850 [ -6.27332792, -0.00035115, 0.00021511, 7.27297677, 0.99892738, 0.99943374, 0.49325724],8851 [ -6.27332802, -0.00035111, 0.00021509, 7.27297690, 0.99892750, 0.99943380, 0.49325727],8852 [ -6.27332811, -0.00035107, 0.00021506, 7.27297704, 0.99892762, 0.99943386, 0.49325718],8853 [ -6.27332821, -0.00035103, 0.00021504, 7.27297717, 0.99892774, 0.99943393, 0.49325715],8854 [ -6.27332830, -0.00035099, 0.00021501, 7.27297731, 0.99892787, 0.99943399, 0.49325736],8855 [ -6.27332840, -0.00035095, 0.00021499, 7.27297744, 0.99892799, 0.99943406, 0.49325725],8856 [ -6.27332849, -0.00035091, 0.00021496, 7.27297758, 0.99892811, 0.99943412, 0.49325737],8857 [ -6.27332859, -0.00035087, 0.00021494, 7.27297771, 0.99892823, 0.99943418, 0.49325733],8858 [ -6.27332868, -0.00035084, 0.00021492, 7.27297785, 0.99892835, 0.99943425, 0.49325727],8859 [ -6.27332878, -0.00035080, 0.00021489, 7.27297798, 0.99892847, 0.99943431, 0.49325722],8860 [ -6.27332887, -0.00035076, 0.00021487, 7.27297812, 0.99892859, 0.99943438, 0.49325726],8861 [ -6.27332897, -0.00035072, 0.00021484, 7.27297825, 0.99892872, 0.99943444, 0.49325746],8862 [ -6.27332906, -0.00035068, 0.00021482, 7.27297839, 0.99892884, 0.99943451, 0.49325735],8863 [ -6.27332916, -0.00035064, 0.00021479, 7.27297852, 0.99892896, 0.99943457, 0.49325729],8864 [ -6.27332925, -0.00035060, 0.00021477, 7.27297866, 0.99892908, 0.99943463, 0.49325733],8865 [ -6.27332935, -0.00035056, 0.00021475, 7.27297879, 0.99892920, 0.99943470, 0.49325743],8866 [ -6.27332944, -0.00035052, 0.00021472, 7.27297893, 0.99892932, 0.99943476, 0.49325745],8867 [ -6.27332954, -0.00035048, 0.00021470, 7.27297906, 0.99892944, 0.99943483, 0.49325763],8868 [ -6.27332963, -0.00035044, 0.00021467, 7.27297920, 0.99892956, 0.99943489, 0.49325734],8869 [ -6.27332973, -0.00035040, 0.00021465, 7.27297933, 0.99892969, 0.99943495, 0.49325743],8870 [ -6.27332982, -0.00035036, 0.00021462, 7.27297947, 0.99892981, 0.99943502, 0.49325746],8871 [ -6.27332992, -0.00035032, 0.00021460, 7.27297960, 0.99892993, 0.99943508, 0.49325750],8872 [ -6.27333001, -0.00035028, 0.00021458, 7.27297973, 0.99893005, 0.99943515, 0.49325754],8873 [ -6.27333011, -0.00035024, 0.00021455, 7.27297987, 0.99893017, 0.99943521, 0.49325751],8874 [ -6.27333020, -0.00035020, 0.00021453, 7.27298000, 0.99893029, 0.99943527, 0.49325761],8875 [ -6.27333030, -0.00035016, 0.00021450, 7.27298014, 0.99893041, 0.99943534, 0.49325752],8876 [ -6.27333039, -0.00035012, 0.00021448, 7.27298027, 0.99893053, 0.99943540, 0.49325748],8877 [ -6.27333049, -0.00035008, 0.00021445, 7.27298041, 0.99893065, 0.99943546, 0.49325770],8878 [ -6.27333058, -0.00035004, 0.00021443, 7.27298054, 0.99893078, 0.99943553, 0.49325749],8879 [ -6.27333068, -0.00035000, 0.00021441, 7.27298068, 0.99893090, 0.99943559, 0.49325754],8880 [ -6.27333077, -0.00034996, 0.00021438, 7.27298081, 0.99893102, 0.99943566, 0.49325757],8881 [ -6.27333087, -0.00034992, 0.00021436, 7.27298094, 0.99893114, 0.99943572, 0.49325772],8882 [ -6.27333096, -0.00034988, 0.00021433, 7.27298108, 0.99893126, 0.99943578, 0.49325749],8883 [ -6.27333106, -0.00034984, 0.00021431, 7.27298121, 0.99893138, 0.99943585, 0.49325746],8884 [ -6.27333115, -0.00034980, 0.00021428, 7.27298135, 0.99893150, 0.99943591, 0.49325763],8885 [ -6.27333125, -0.00034976, 0.00021426, 7.27298148, 0.99893162, 0.99943597, 0.49325780],8886 [ -6.27333134, -0.00034973, 0.00021424, 7.27298162, 0.99893174, 0.99943604, 0.49325773],8887 [ -6.27333144, -0.00034969, 0.00021421, 7.27298175, 0.99893186, 0.99943610, 0.49325774],8888 [ -6.27333153, -0.00034965, 0.00021419, 7.27298188, 0.99893198, 0.99943617, 0.49325768],8889 [ -6.27333162, -0.00034961, 0.00021416, 7.27298202, 0.99893210, 0.99943623, 0.49325772],8890 [ -6.27333172, -0.00034957, 0.00021414, 7.27298215, 0.99893223, 0.99943629, 0.49325780],8891 [ -6.27333181, -0.00034953, 0.00021412, 7.27298229, 0.99893235, 0.99943636, 0.49325790],8892 [ -6.27333191, -0.00034949, 0.00021409, 7.27298242, 0.99893247, 0.99943642, 0.49325769],8893 [ -6.27333200, -0.00034945, 0.00021407, 7.27298255, 0.99893259, 0.99943648, 0.49325784],8894 [ -6.27333210, -0.00034941, 0.00021404, 7.27298269, 0.99893271, 0.99943655, 0.49325781],8895 [ -6.27333219, -0.00034937, 0.00021402, 7.27298282, 0.99893283, 0.99943661, 0.49325781],8896 [ -6.27333229, -0.00034933, 0.00021399, 7.27298296, 0.99893295, 0.99943668, 0.49325775],8897 [ -6.27333238, -0.00034929, 0.00021397, 7.27298309, 0.99893307, 0.99943674, 0.49325777],8898 [ -6.27333247, -0.00034925, 0.00021395, 7.27298322, 0.99893319, 0.99943680, 0.49325794],8899 [ -6.27333257, -0.00034921, 0.00021392, 7.27298336, 0.99893331, 0.99943687, 0.49325786],8900 [ -6.27333266, -0.00034917, 0.00021390, 7.27298349, 0.99893343, 0.99943693, 0.49325783],8901 [ -6.27333276, -0.00034913, 0.00021387, 7.27298362, 0.99893355, 0.99943699, 0.49325777],8902 [ -6.27333285, -0.00034909, 0.00021385, 7.27298376, 0.99893367, 0.99943706, 0.49325800],8903 [ -6.27333295, -0.00034905, 0.00021383, 7.27298389, 0.99893379, 0.99943712, 0.49325788],8904 [ -6.27333304, -0.00034902, 0.00021380, 7.27298402, 0.99893391, 0.99943718, 0.49325796],8905 [ -6.27333313, -0.00034898, 0.00021378, 7.27298416, 0.99893403, 0.99943725, 0.49325777],8906 [ -6.27333323, -0.00034894, 0.00021375, 7.27298429, 0.99893415, 0.99943731, 0.49325803],8907 [ -6.27333332, -0.00034890, 0.00021373, 7.27298443, 0.99893427, 0.99943737, 0.49325799],8908 [ -6.27333342, -0.00034886, 0.00021370, 7.27298456, 0.99893439, 0.99943744, 0.49325815],8909 [ -6.27333351, -0.00034882, 0.00021368, 7.27298469, 0.99893451, 0.99943750, 0.49325810],8910 [ -6.27333360, -0.00034878, 0.00021366, 7.27298483, 0.99893463, 0.99943756, 0.49325805],8911 [ -6.27333370, -0.00034874, 0.00021363, 7.27298496, 0.99893475, 0.99943763, 0.49325805],8912 [ -6.27333379, -0.00034870, 0.00021361, 7.27298509, 0.99893487, 0.99943769, 0.49325810],8913 [ -6.27333389, -0.00034866, 0.00021358, 7.27298523, 0.99893499, 0.99943775, 0.49325812],8914 [ -6.27333398, -0.00034862, 0.00021356, 7.27298536, 0.99893511, 0.99943782, 0.49325800],8915 [ -6.27333408, -0.00034858, 0.00021354, 7.27298549, 0.99893523, 0.99943788, 0.49325798],8916 [ -6.27333417, -0.00034854, 0.00021351, 7.27298563, 0.99893535, 0.99943794, 0.49325819],8917 [ -6.27333426, -0.00034850, 0.00021349, 7.27298576, 0.99893547, 0.99943801, 0.49325809],8918 [ -6.27333436, -0.00034847, 0.00021346, 7.27298589, 0.99893559, 0.99943807, 0.49325811],8919 [ -6.27333445, -0.00034843, 0.00021344, 7.27298602, 0.99893571, 0.99943813, 0.49325804],8920 [ -6.27333454, -0.00034839, 0.00021342, 7.27298616, 0.99893583, 0.99943820, 0.49325814],8921 [ -6.27333464, -0.00034835, 0.00021339, 7.27298629, 0.99893595, 0.99943826, 0.49325817],8922 [ -6.27333473, -0.00034831, 0.00021337, 7.27298642, 0.99893607, 0.99943832, 0.49325810],8923 [ -6.27333483, -0.00034827, 0.00021334, 7.27298656, 0.99893619, 0.99943839, 0.49325810],8924 [ -6.27333492, -0.00034823, 0.00021332, 7.27298669, 0.99893631, 0.99943845, 0.49325813],8925 [ -6.27333501, -0.00034819, 0.00021330, 7.27298682, 0.99893643, 0.99943851, 0.49325821],8926 [ -6.27333511, -0.00034815, 0.00021327, 7.27298696, 0.99893655, 0.99943858, 0.49325825],8927 [ -6.27333520, -0.00034811, 0.00021325, 7.27298709, 0.99893667, 0.99943864, 0.49325802],8928 [ -6.27333530, -0.00034807, 0.00021322, 7.27298722, 0.99893679, 0.99943870, 0.49325839],8929 [ -6.27333539, -0.00034803, 0.00021320, 7.27298735, 0.99893691, 0.99943877, 0.49325824],8930 [ -6.27333548, -0.00034800, 0.00021318, 7.27298749, 0.99893703, 0.99943883, 0.49325827],8931 [ -6.27333558, -0.00034796, 0.00021315, 7.27298762, 0.99893715, 0.99943889, 0.49325830],8932 [ -6.27333567, -0.00034792, 0.00021313, 7.27298775, 0.99893727, 0.99943895, 0.49325817],8933 [ -6.27333576, -0.00034788, 0.00021310, 7.27298789, 0.99893739, 0.99943902, 0.49325841],8934 [ -6.27333586, -0.00034784, 0.00021308, 7.27298802, 0.99893751, 0.99943908, 0.49325836],8935 [ -6.27333595, -0.00034780, 0.00021306, 7.27298815, 0.99893763, 0.99943914, 0.49325836],8936 [ -6.27333604, -0.00034776, 0.00021303, 7.27298828, 0.99893774, 0.99943921, 0.49325838],8937 [ -6.27333614, -0.00034772, 0.00021301, 7.27298842, 0.99893786, 0.99943927, 0.49325845],8938 [ -6.27333623, -0.00034768, 0.00021298, 7.27298855, 0.99893798, 0.99943933, 0.49325848],8939 [ -6.27333632, -0.00034764, 0.00021296, 7.27298868, 0.99893810, 0.99943940, 0.49325833],8940 [ -6.27333642, -0.00034760, 0.00021294, 7.27298881, 0.99893822, 0.99943946, 0.49325843],8941 [ -6.27333651, -0.00034757, 0.00021291, 7.27298895, 0.99893834, 0.99943952, 0.49325849],8942 [ -6.27333661, -0.00034753, 0.00021289, 7.27298908, 0.99893846, 0.99943958, 0.49325841],8943 [ -6.27333670, -0.00034749, 0.00021286, 7.27298921, 0.99893858, 0.99943965, 0.49325856],8944 [ -6.27333679, -0.00034745, 0.00021284, 7.27298934, 0.99893870, 0.99943971, 0.49325841],8945 [ -6.27333689, -0.00034741, 0.00021282, 7.27298948, 0.99893882, 0.99943977, 0.49325845],8946 [ -6.27333698, -0.00034737, 0.00021279, 7.27298961, 0.99893894, 0.99943984, 0.49325852],8947 [ -6.27333707, -0.00034733, 0.00021277, 7.27298974, 0.99893906, 0.99943990, 0.49325863],8948 [ -6.27333717, -0.00034729, 0.00021275, 7.27298987, 0.99893918, 0.99943996, 0.49325866],8949 [ -6.27333726, -0.00034725, 0.00021272, 7.27299000, 0.99893929, 0.99944002, 0.49325856],8950 [ -6.27333735, -0.00034721, 0.00021270, 7.27299014, 0.99893941, 0.99944009, 0.49325854],8951 [ -6.27333745, -0.00034718, 0.00021267, 7.27299027, 0.99893953, 0.99944015, 0.49325858],8952 [ -6.27333754, -0.00034714, 0.00021265, 7.27299040, 0.99893965, 0.99944021, 0.49325856],8953 [ -6.27333763, -0.00034710, 0.00021263, 7.27299053, 0.99893977, 0.99944028, 0.49325873],8954 [ -6.27333772, -0.00034706, 0.00021260, 7.27299067, 0.99893989, 0.99944034, 0.49325877],8955 [ -6.27333782, -0.00034702, 0.00021258, 7.27299080, 0.99894001, 0.99944040, 0.49325864],8956 [ -6.27333791, -0.00034698, 0.00021255, 7.27299093, 0.99894013, 0.99944046, 0.49325857],8957 [ -6.27333800, -0.00034694, 0.00021253, 7.27299106, 0.99894025, 0.99944053, 0.49325852],8958 [ -6.27333810, -0.00034690, 0.00021251, 7.27299119, 0.99894036, 0.99944059, 0.49325872],8959 [ -6.27333819, -0.00034686, 0.00021248, 7.27299133, 0.99894048, 0.99944065, 0.49325865],8960 [ -6.27333828, -0.00034683, 0.00021246, 7.27299146, 0.99894060, 0.99944072, 0.49325884],8961 [ -6.27333838, -0.00034679, 0.00021244, 7.27299159, 0.99894072, 0.99944078, 0.49325864],8962 [ -6.27333847, -0.00034675, 0.00021241, 7.27299172, 0.99894084, 0.99944084, 0.49325865],8963 [ -6.27333856, -0.00034671, 0.00021239, 7.27299185, 0.99894096, 0.99944090, 0.49325871],8964 [ -6.27333866, -0.00034667, 0.00021236, 7.27299199, 0.99894108, 0.99944097, 0.49325862],8965 [ -6.27333875, -0.00034663, 0.00021234, 7.27299212, 0.99894120, 0.99944103, 0.49325892],8966 [ -6.27333884, -0.00034659, 0.00021232, 7.27299225, 0.99894131, 0.99944109, 0.49325886],8967 [ -6.27333893, -0.00034655, 0.00021229, 7.27299238, 0.99894143, 0.99944115, 0.49325892],8968 [ -6.27333903, -0.00034652, 0.00021227, 7.27299251, 0.99894155, 0.99944122, 0.49325878],8969 [ -6.27333912, -0.00034648, 0.00021225, 7.27299264, 0.99894167, 0.99944128, 0.49325893],8970 [ -6.27333921, -0.00034644, 0.00021222, 7.27299278, 0.99894179, 0.99944134, 0.49325882],8971 [ -6.27333931, -0.00034640, 0.00021220, 7.27299291, 0.99894191, 0.99944140, 0.49325880],8972 [ -6.27333940, -0.00034636, 0.00021217, 7.27299304, 0.99894202, 0.99944147, 0.49325884],8973 [ -6.27333949, -0.00034632, 0.00021215, 7.27299317, 0.99894214, 0.99944153, 0.49325871],8974 [ -6.27333958, -0.00034628, 0.00021213, 7.27299330, 0.99894226, 0.99944159, 0.49325888],8975 [ -6.27333968, -0.00034624, 0.00021210, 7.27299343, 0.99894238, 0.99944165, 0.49325907],8976 [ -6.27333977, -0.00034620, 0.00021208, 7.27299356, 0.99894250, 0.99944172, 0.49325884],8977 [ -6.27333986, -0.00034617, 0.00021206, 7.27299370, 0.99894262, 0.99944178, 0.49325906],8978 [ -6.27333995, -0.00034613, 0.00021203, 7.27299383, 0.99894273, 0.99944184, 0.49325903],8979 [ -6.27334005, -0.00034609, 0.00021201, 7.27299396, 0.99894285, 0.99944190, 0.49325895],8980 [ -6.27334014, -0.00034605, 0.00021198, 7.27299409, 0.99894297, 0.99944197, 0.49325883],8981 [ -6.27334023, -0.00034601, 0.00021196, 7.27299422, 0.99894309, 0.99944203, 0.49325893],8982 [ -6.27334033, -0.00034597, 0.00021194, 7.27299435, 0.99894321, 0.99944209, 0.49325903],8983 [ -6.27334042, -0.00034593, 0.00021191, 7.27299448, 0.99894333, 0.99944215, 0.49325919],8984 [ -6.27334051, -0.00034590, 0.00021189, 7.27299461, 0.99894344, 0.99944222, 0.49325911],8985 [ -6.27334060, -0.00034586, 0.00021187, 7.27299475, 0.99894356, 0.99944228, 0.49325916],8986 [ -6.27334070, -0.00034582, 0.00021184, 7.27299488, 0.99894368, 0.99944234, 0.49325910],8987 [ -6.27334079, -0.00034578, 0.00021182, 7.27299501, 0.99894380, 0.99944240, 0.49325905],8988 [ -6.27334088, -0.00034574, 0.00021179, 7.27299514, 0.99894392, 0.99944246, 0.49325907],8989 [ -6.27334097, -0.00034570, 0.00021177, 7.27299527, 0.99894403, 0.99944253, 0.49325918],8990 [ -6.27334107, -0.00034566, 0.00021175, 7.27299540, 0.99894415, 0.99944259, 0.49325910],8991 [ -6.27334116, -0.00034563, 0.00021172, 7.27299553, 0.99894427, 0.99944265, 0.49325909],8992 [ -6.27334125, -0.00034559, 0.00021170, 7.27299566, 0.99894439, 0.99944271, 0.49325903],8993 [ -6.27334134, -0.00034555, 0.00021168, 7.27299579, 0.99894451, 0.99944278, 0.49325934],8994 [ -6.27334143, -0.00034551, 0.00021165, 7.27299593, 0.99894462, 0.99944284, 0.49325921],8995 [ -6.27334153, -0.00034547, 0.00021163, 7.27299606, 0.99894474, 0.99944290, 0.49325916],8996 [ -6.27334162, -0.00034543, 0.00021161, 7.27299619, 0.99894486, 0.99944296, 0.49325905],8997 [ -6.27334171, -0.00034539, 0.00021158, 7.27299632, 0.99894498, 0.99944302, 0.49325932],8998 [ -6.27334180, -0.00034536, 0.00021156, 7.27299645, 0.99894509, 0.99944309, 0.49325918],8999 [ -6.27334190, -0.00034532, 0.00021153, 7.27299658, 0.99894521, 0.99944315, 0.49325928],9000 [ -6.27334199, -0.00034528, 0.00021151, 7.27299671, 0.99894533, 0.99944321, 0.49325927],9001 [ -6.27334208, -0.00034524, 0.00021149, 7.27299684, 0.99894545, 0.99944327, 0.49325910],9002 [ -6.27334217, -0.00034520, 0.00021146, 7.27299697, 0.99894557, 0.99944334, 0.49325933],9003 [ -6.27334226, -0.00034516, 0.00021144, 7.27299710, 0.99894568, 0.99944340, 0.49325931],9004 [ -6.27334236, -0.00034512, 0.00021142, 7.27299723, 0.99894580, 0.99944346, 0.49325913],9005 [ -6.27334245, -0.00034509, 0.00021139, 7.27299736, 0.99894592, 0.99944352, 0.49325935],9006 [ -6.27334254, -0.00034505, 0.00021137, 7.27299749, 0.99894604, 0.99944358, 0.49325926],9007 [ -6.27334263, -0.00034501, 0.00021135, 7.27299762, 0.99894615, 0.99944365, 0.49325931],9008 [ -6.27334273, -0.00034497, 0.00021132, 7.27299776, 0.99894627, 0.99944371, 0.49325923],9009 [ -6.27334282, -0.00034493, 0.00021130, 7.27299789, 0.99894639, 0.99944377, 0.49325932],9010 [ -6.27334291, -0.00034489, 0.00021128, 7.27299802, 0.99894651, 0.99944383, 0.49325937],9011 [ -6.27334300, -0.00034486, 0.00021125, 7.27299815, 0.99894662, 0.99944389, 0.49325925],9012 [ -6.27334309, -0.00034482, 0.00021123, 7.27299828, 0.99894674, 0.99944396, 0.49325938],9013 [ -6.27334319, -0.00034478, 0.00021120, 7.27299841, 0.99894686, 0.99944402, 0.49325937],9014 [ -6.27334328, -0.00034474, 0.00021118, 7.27299854, 0.99894697, 0.99944408, 0.49325933],9015 [ -6.27334337, -0.00034470, 0.00021116, 7.27299867, 0.99894709, 0.99944414, 0.49325964],9016 [ -6.27334346, -0.00034466, 0.00021113, 7.27299880, 0.99894721, 0.99944420, 0.49325932],9017 [ -6.27334355, -0.00034462, 0.00021111, 7.27299893, 0.99894733, 0.99944426, 0.49325939],9018 [ -6.27334364, -0.00034459, 0.00021109, 7.27299906, 0.99894744, 0.99944433, 0.49325953],9019 [ -6.27334374, -0.00034455, 0.00021106, 7.27299919, 0.99894756, 0.99944439, 0.49325955],9020 [ -6.27334383, -0.00034451, 0.00021104, 7.27299932, 0.99894768, 0.99944445, 0.49325952],9021 [ -6.27334392, -0.00034447, 0.00021102, 7.27299945, 0.99894780, 0.99944451, 0.49325957],9022 [ -6.27334401, -0.00034443, 0.00021099, 7.27299958, 0.99894791, 0.99944457, 0.49325952],9023 [ -6.27334410, -0.00034439, 0.00021097, 7.27299971, 0.99894803, 0.99944464, 0.49325948],9024 [ -6.27334420, -0.00034436, 0.00021095, 7.27299984, 0.99894815, 0.99944470, 0.49325953],9025 [ -6.27334429, -0.00034432, 0.00021092, 7.27299997, 0.99894826, 0.99944476, 0.49325969],9026 [ -6.27334438, -0.00034428, 0.00021090, 7.27300010, 0.99894838, 0.99944482, 0.49325951],9027 [ -6.27334447, -0.00034424, 0.00021088, 7.27300023, 0.99894850, 0.99944488, 0.49325964],9028 [ -6.27334456, -0.00034420, 0.00021085, 7.27300036, 0.99894861, 0.99944494, 0.49325959],9029 [ -6.27334465, -0.00034417, 0.00021083, 7.27300049, 0.99894873, 0.99944501, 0.49325984],9030 [ -6.27334475, -0.00034413, 0.00021081, 7.27300062, 0.99894885, 0.99944507, 0.49325961],9031 [ -6.27334484, -0.00034409, 0.00021078, 7.27300075, 0.99894897, 0.99944513, 0.49325970],9032 [ -6.27334493, -0.00034405, 0.00021076, 7.27300088, 0.99894908, 0.99944519, 0.49325973],9033 [ -6.27334502, -0.00034401, 0.00021073, 7.27300101, 0.99894920, 0.99944525, 0.49325965],9034 [ -6.27334511, -0.00034397, 0.00021071, 7.27300114, 0.99894932, 0.99944531, 0.49325961],9035 [ -6.27334520, -0.00034394, 0.00021069, 7.27300127, 0.99894943, 0.99944538, 0.49325970],9036 [ -6.27334529, -0.00034390, 0.00021066, 7.27300140, 0.99894955, 0.99944544, 0.49325947],9037 [ -6.27334539, -0.00034386, 0.00021064, 7.27300153, 0.99894967, 0.99944550, 0.49325970],9038 [ -6.27334548, -0.00034382, 0.00021062, 7.27300166, 0.99894978, 0.99944556, 0.49325986],9039 [ -6.27334557, -0.00034378, 0.00021059, 7.27300179, 0.99894990, 0.99944562, 0.49325975],9040 [ -6.27334566, -0.00034374, 0.00021057, 7.27300192, 0.99895002, 0.99944568, 0.49325973],9041 [ -6.27334575, -0.00034371, 0.00021055, 7.27300205, 0.99895013, 0.99944575, 0.49325990],9042 [ -6.27334584, -0.00034367, 0.00021052, 7.27300217, 0.99895025, 0.99944581, 0.49325987],9043 [ -6.27334593, -0.00034363, 0.00021050, 7.27300230, 0.99895037, 0.99944587, 0.49325975],9044 [ -6.27334603, -0.00034359, 0.00021048, 7.27300243, 0.99895048, 0.99944593, 0.49325986],9045 [ -6.27334612, -0.00034355, 0.00021045, 7.27300256, 0.99895060, 0.99944599, 0.49325980],9046 [ -6.27334621, -0.00034352, 0.00021043, 7.27300269, 0.99895072, 0.99944605, 0.49325999],9047 [ -6.27334630, -0.00034348, 0.00021041, 7.27300282, 0.99895083, 0.99944611, 0.49326005],9048 [ -6.27334639, -0.00034344, 0.00021038, 7.27300295, 0.99895095, 0.99944618, 0.49325989],9049 [ -6.27334648, -0.00034340, 0.00021036, 7.27300308, 0.99895106, 0.99944624, 0.49325982],9050 [ -6.27334657, -0.00034336, 0.00021034, 7.27300321, 0.99895118, 0.99944630, 0.49326004],9051 [ -6.27334666, -0.00034333, 0.00021031, 7.27300334, 0.99895130, 0.99944636, 0.49325987],9052 [ -6.27334676, -0.00034329, 0.00021029, 7.27300347, 0.99895141, 0.99944642, 0.49326003],9053 [ -6.27334685, -0.00034325, 0.00021027, 7.27300360, 0.99895153, 0.99944648, 0.49325986],9054 [ -6.27334694, -0.00034321, 0.00021024, 7.27300373, 0.99895165, 0.99944654, 0.49326013],9055 [ -6.27334703, -0.00034317, 0.00021022, 7.27300386, 0.99895176, 0.99944661, 0.49326001],9056 [ -6.27334712, -0.00034313, 0.00021020, 7.27300399, 0.99895188, 0.99944667, 0.49325997],9057 [ -6.27334721, -0.00034310, 0.00021017, 7.27300411, 0.99895199, 0.99944673, 0.49325982],9058 [ -6.27334730, -0.00034306, 0.00021015, 7.27300424, 0.99895211, 0.99944679, 0.49326004],9059 [ -6.27334739, -0.00034302, 0.00021013, 7.27300437, 0.99895223, 0.99944685, 0.49326000],9060 [ -6.27334748, -0.00034298, 0.00021010, 7.27300450, 0.99895234, 0.99944691, 0.49326002],9061 [ -6.27334758, -0.00034294, 0.00021008, 7.27300463, 0.99895246, 0.99944697, 0.49326019],9062 [ -6.27334767, -0.00034291, 0.00021006, 7.27300476, 0.99895258, 0.99944704, 0.49326022],9063 [ -6.27334776, -0.00034287, 0.00021003, 7.27300489, 0.99895269, 0.99944710, 0.49325991],9064 [ -6.27334785, -0.00034283, 0.00021001, 7.27300502, 0.99895281, 0.99944716, 0.49326017],9065 [ -6.27334794, -0.00034279, 0.00020999, 7.27300515, 0.99895292, 0.99944722, 0.49326012],9066 [ -6.27334803, -0.00034276, 0.00020996, 7.27300527, 0.99895304, 0.99944728, 0.49326022],9067 [ -6.27334812, -0.00034272, 0.00020994, 7.27300540, 0.99895316, 0.99944734, 0.49326001],9068 [ -6.27334821, -0.00034268, 0.00020992, 7.27300553, 0.99895327, 0.99944740, 0.49326024],9069 [ -6.27334830, -0.00034264, 0.00020989, 7.27300566, 0.99895339, 0.99944746, 0.49326021],9070 [ -6.27334839, -0.00034260, 0.00020987, 7.27300579, 0.99895350, 0.99944753, 0.49326029],9071 [ -6.27334848, -0.00034257, 0.00020985, 7.27300592, 0.99895362, 0.99944759, 0.49326016],9072 [ -6.27334857, -0.00034253, 0.00020983, 7.27300605, 0.99895373, 0.99944765, 0.49326016],9073 [ -6.27334867, -0.00034249, 0.00020980, 7.27300618, 0.99895385, 0.99944771, 0.49326045],9074 [ -6.27334876, -0.00034245, 0.00020978, 7.27300630, 0.99895397, 0.99944777, 0.49326011],9075 [ -6.27334885, -0.00034241, 0.00020976, 7.27300643, 0.99895408, 0.99944783, 0.49326023],9076 [ -6.27334894, -0.00034238, 0.00020973, 7.27300656, 0.99895420, 0.99944789, 0.49326007],9077 [ -6.27334903, -0.00034234, 0.00020971, 7.27300669, 0.99895431, 0.99944795, 0.49326021],9078 [ -6.27334912, -0.00034230, 0.00020969, 7.27300682, 0.99895443, 0.99944801, 0.49326027],9079 [ -6.27334921, -0.00034226, 0.00020966, 7.27300695, 0.99895454, 0.99944807, 0.49326040],9080 [ -6.27334930, -0.00034222, 0.00020964, 7.27300708, 0.99895466, 0.99944814, 0.49326032],9081 [ -6.27334939, -0.00034219, 0.00020962, 7.27300720, 0.99895478, 0.99944820, 0.49326028],9082 [ -6.27334948, -0.00034215, 0.00020959, 7.27300733, 0.99895489, 0.99944826, 0.49326022],9083 [ -6.27334957, -0.00034211, 0.00020957, 7.27300746, 0.99895501, 0.99944832, 0.49326044],9084 [ -6.27334966, -0.00034207, 0.00020955, 7.27300759, 0.99895512, 0.99944838, 0.49326036],9085 [ -6.27334975, -0.00034204, 0.00020952, 7.27300772, 0.99895524, 0.99944844, 0.49326052],9086 [ -6.27334984, -0.00034200, 0.00020950, 7.27300785, 0.99895535, 0.99944850, 0.49326050],9087 [ -6.27334993, -0.00034196, 0.00020948, 7.27300797, 0.99895547, 0.99944856, 0.49326047],9088 [ -6.27335002, -0.00034192, 0.00020945, 7.27300810, 0.99895558, 0.99944862, 0.49326049],9089 [ -6.27335011, -0.00034188, 0.00020943, 7.27300823, 0.99895570, 0.99944868, 0.49326038],9090 [ -6.27335021, -0.00034185, 0.00020941, 7.27300836, 0.99895582, 0.99944875, 0.49326054],9091 [ -6.27335030, -0.00034181, 0.00020938, 7.27300849, 0.99895593, 0.99944881, 0.49326041],9092 [ -6.27335039, -0.00034177, 0.00020936, 7.27300861, 0.99895605, 0.99944887, 0.49326059],9093 [ -6.27335048, -0.00034173, 0.00020934, 7.27300874, 0.99895616, 0.99944893, 0.49326058],9094 [ -6.27335057, -0.00034170, 0.00020932, 7.27300887, 0.99895628, 0.99944899, 0.49326043],9095 [ -6.27335066, -0.00034166, 0.00020929, 7.27300900, 0.99895639, 0.99944905, 0.49326062],9096 [ -6.27335075, -0.00034162, 0.00020927, 7.27300913, 0.99895651, 0.99944911, 0.49326067],9097 [ -6.27335084, -0.00034158, 0.00020925, 7.27300925, 0.99895662, 0.99944917, 0.49326078],9098 [ -6.27335093, -0.00034154, 0.00020922, 7.27300938, 0.99895674, 0.99944923, 0.49326065],9099 [ -6.27335102, -0.00034151, 0.00020920, 7.27300951, 0.99895685, 0.99944929, 0.49326059],9100 [ -6.27335111, -0.00034147, 0.00020918, 7.27300964, 0.99895697, 0.99944935, 0.49326055],9101 [ -6.27335120, -0.00034143, 0.00020915, 7.27300977, 0.99895708, 0.99944941, 0.49326066],9102 [ -6.27335129, -0.00034139, 0.00020913, 7.27300989, 0.99895720, 0.99944948, 0.49326077],9103 [ -6.27335138, -0.00034136, 0.00020911, 7.27301002, 0.99895731, 0.99944954, 0.49326066],9104 [ -6.27335147, -0.00034132, 0.00020908, 7.27301015, 0.99895743, 0.99944960, 0.49326075],9105 [ -6.27335156, -0.00034128, 0.00020906, 7.27301028, 0.99895754, 0.99944966, 0.49326055],9106 [ -6.27335165, -0.00034124, 0.00020904, 7.27301040, 0.99895766, 0.99944972, 0.49326086],9107 [ -6.27335174, -0.00034121, 0.00020902, 7.27301053, 0.99895777, 0.99944978, 0.49326055],9108 [ -6.27335183, -0.00034117, 0.00020899, 7.27301066, 0.99895789, 0.99944984, 0.49326069],9109 [ -6.27335192, -0.00034113, 0.00020897, 7.27301079, 0.99895800, 0.99944990, 0.49326076],9110 [ -6.27335201, -0.00034109, 0.00020895, 7.27301092, 0.99895812, 0.99944996, 0.49326064],9111 [ -6.27335210, -0.00034106, 0.00020892, 7.27301104, 0.99895823, 0.99945002, 0.49326064],9112 [ -6.27335219, -0.00034102, 0.00020890, 7.27301117, 0.99895835, 0.99945008, 0.49326079],9113 [ -6.27335228, -0.00034098, 0.00020888, 7.27301130, 0.99895846, 0.99945014, 0.49326094],9114 [ -6.27335237, -0.00034094, 0.00020885, 7.27301143, 0.99895858, 0.99945020, 0.49326073],9115 [ -6.27335246, -0.00034091, 0.00020883, 7.27301155, 0.99895869, 0.99945026, 0.49326067],9116 [ -6.27335255, -0.00034087, 0.00020881, 7.27301168, 0.99895881, 0.99945032, 0.49326096],9117 [ -6.27335264, -0.00034083, 0.00020878, 7.27301181, 0.99895892, 0.99945038, 0.49326074],9118 [ -6.27335273, -0.00034079, 0.00020876, 7.27301194, 0.99895903, 0.99945045, 0.49326072],9119 [ -6.27335282, -0.00034076, 0.00020874, 7.27301206, 0.99895915, 0.99945051, 0.49326097],9120 [ -6.27335291, -0.00034072, 0.00020872, 7.27301219, 0.99895926, 0.99945057, 0.49326095],9121 [ -6.27335300, -0.00034068, 0.00020869, 7.27301232, 0.99895938, 0.99945063, 0.49326083],9122 [ -6.27335309, -0.00034064, 0.00020867, 7.27301244, 0.99895949, 0.99945069, 0.49326094],9123 [ -6.27335318, -0.00034061, 0.00020865, 7.27301257, 0.99895961, 0.99945075, 0.49326071],9124 [ -6.27335327, -0.00034057, 0.00020862, 7.27301270, 0.99895972, 0.99945081, 0.49326094],9125 [ -6.27335336, -0.00034053, 0.00020860, 7.27301283, 0.99895984, 0.99945087, 0.49326119],9126 [ -6.27335345, -0.00034049, 0.00020858, 7.27301295, 0.99895995, 0.99945093, 0.49326102],9127 [ -6.27335354, -0.00034046, 0.00020856, 7.27301308, 0.99896007, 0.99945099, 0.49326095],9128 [ -6.27335363, -0.00034042, 0.00020853, 7.27301321, 0.99896018, 0.99945105, 0.49326111],9129 [ -6.27335372, -0.00034038, 0.00020851, 7.27301333, 0.99896029, 0.99945111, 0.49326093],9130 [ -6.27335380, -0.00034034, 0.00020849, 7.27301346, 0.99896041, 0.99945117, 0.49326092],9131 [ -6.27335389, -0.00034031, 0.00020846, 7.27301359, 0.99896052, 0.99945123, 0.49326086],9132 [ -6.27335398, -0.00034027, 0.00020844, 7.27301372, 0.99896064, 0.99945129, 0.49326111],9133 [ -6.27335407, -0.00034023, 0.00020842, 7.27301384, 0.99896075, 0.99945135, 0.49326085],9134 [ -6.27335416, -0.00034019, 0.00020839, 7.27301397, 0.99896087, 0.99945141, 0.49326107],9135 [ -6.27335425, -0.00034016, 0.00020837, 7.27301410, 0.99896098, 0.99945147, 0.49326138],9136 [ -6.27335434, -0.00034012, 0.00020835, 7.27301422, 0.99896109, 0.99945153, 0.49326107],9137 [ -6.27335443, -0.00034008, 0.00020833, 7.27301435, 0.99896121, 0.99945159, 0.49326110],9138 [ -6.27335452, -0.00034004, 0.00020830, 7.27301448, 0.99896132, 0.99945165, 0.49326107],9139 [ -6.27335461, -0.00034001, 0.00020828, 7.27301460, 0.99896144, 0.99945171, 0.49326111],9140 [ -6.27335470, -0.00033997, 0.00020826, 7.27301473, 0.99896155, 0.99945177, 0.49326094],9141 [ -6.27335479, -0.00033993, 0.00020823, 7.27301486, 0.99896166, 0.99945183, 0.49326116],9142 [ -6.27335488, -0.00033989, 0.00020821, 7.27301498, 0.99896178, 0.99945189, 0.49326119],9143 [ -6.27335497, -0.00033986, 0.00020819, 7.27301511, 0.99896189, 0.99945195, 0.49326130],9144 [ -6.27335506, -0.00033982, 0.00020817, 7.27301524, 0.99896201, 0.99945201, 0.49326119],9145 [ -6.27335515, -0.00033978, 0.00020814, 7.27301536, 0.99896212, 0.99945207, 0.49326105],9146 [ -6.27335524, -0.00033975, 0.00020812, 7.27301549, 0.99896223, 0.99945213, 0.49326119],9147 [ -6.27335533, -0.00033971, 0.00020810, 7.27301562, 0.99896235, 0.99945219, 0.49326118],9148 [ -6.27335541, -0.00033967, 0.00020807, 7.27301574, 0.99896246, 0.99945225, 0.49326126],9149 [ -6.27335550, -0.00033963, 0.00020805, 7.27301587, 0.99896258, 0.99945231, 0.49326104],9150 [ -6.27335559, -0.00033960, 0.00020803, 7.27301600, 0.99896269, 0.99945237, 0.49326124],9151 [ -6.27335568, -0.00033956, 0.00020801, 7.27301612, 0.99896280, 0.99945243, 0.49326121],9152 [ -6.27335577, -0.00033952, 0.00020798, 7.27301625, 0.99896292, 0.99945249, 0.49326126],9153 [ -6.27335586, -0.00033948, 0.00020796, 7.27301638, 0.99896303, 0.99945255, 0.49326146],9154 [ -6.27335595, -0.00033945, 0.00020794, 7.27301650, 0.99896315, 0.99945261, 0.49326123],9155 [ -6.27335604, -0.00033941, 0.00020791, 7.27301663, 0.99896326, 0.99945267, 0.49326137],9156 [ -6.27335613, -0.00033937, 0.00020789, 7.27301675, 0.99896337, 0.99945274, 0.49326124],9157 [ -6.27335622, -0.00033934, 0.00020787, 7.27301688, 0.99896349, 0.99945279, 0.49326144],9158 [ -6.27335631, -0.00033930, 0.00020785, 7.27301701, 0.99896360, 0.99945286, 0.49326118],9159 [ -6.27335639, -0.00033926, 0.00020782, 7.27301713, 0.99896371, 0.99945291, 0.49326131],9160 [ -6.27335648, -0.00033922, 0.00020780, 7.27301726, 0.99896383, 0.99945297, 0.49326131],9161 [ -6.27335657, -0.00033919, 0.00020778, 7.27301739, 0.99896394, 0.99945303, 0.49326137],9162 [ -6.27335666, -0.00033915, 0.00020776, 7.27301751, 0.99896405, 0.99945309, 0.49326160],9163 [ -6.27335675, -0.00033911, 0.00020773, 7.27301764, 0.99896417, 0.99945315, 0.49326160],9164 [ -6.27335684, -0.00033908, 0.00020771, 7.27301776, 0.99896428, 0.99945321, 0.49326123],9165 [ -6.27335693, -0.00033904, 0.00020769, 7.27301789, 0.99896439, 0.99945327, 0.49326161],9166 [ -6.27335702, -0.00033900, 0.00020766, 7.27301802, 0.99896451, 0.99945333, 0.49326152],9167 [ -6.27335711, -0.00033896, 0.00020764, 7.27301814, 0.99896462, 0.99945339, 0.49326143],9168 [ -6.27335720, -0.00033893, 0.00020762, 7.27301827, 0.99896473, 0.99945345, 0.49326145],9169 [ -6.27335728, -0.00033889, 0.00020760, 7.27301839, 0.99896485, 0.99945351, 0.49326173],9170 [ -6.27335737, -0.00033885, 0.00020757, 7.27301852, 0.99896496, 0.99945357, 0.49326144],9171 [ -6.27335746, -0.00033882, 0.00020755, 7.27301865, 0.99896507, 0.99945363, 0.49326151],9172 [ -6.27335755, -0.00033878, 0.00020753, 7.27301877, 0.99896519, 0.99945369, 0.49326137],9173 [ -6.27335764, -0.00033874, 0.00020751, 7.27301890, 0.99896530, 0.99945375, 0.49326159],9174 [ -6.27335773, -0.00033870, 0.00020748, 7.27301902, 0.99896541, 0.99945381, 0.49326170],9175 [ -6.27335782, -0.00033867, 0.00020746, 7.27301915, 0.99896553, 0.99945387, 0.49326167],9176 [ -6.27335791, -0.00033863, 0.00020744, 7.27301927, 0.99896564, 0.99945393, 0.49326166],9177 [ -6.27335799, -0.00033859, 0.00020741, 7.27301940, 0.99896575, 0.99945399, 0.49326169],9178 [ -6.27335808, -0.00033856, 0.00020739, 7.27301953, 0.99896587, 0.99945405, 0.49326162],9179 [ -6.27335817, -0.00033852, 0.00020737, 7.27301965, 0.99896598, 0.99945411, 0.49326183],9180 [ -6.27335826, -0.00033848, 0.00020735, 7.27301978, 0.99896609, 0.99945417, 0.49326173],9181 [ -6.27335835, -0.00033845, 0.00020732, 7.27301990, 0.99896621, 0.99945423, 0.49326171],9182 [ -6.27335844, -0.00033841, 0.00020730, 7.27302003, 0.99896632, 0.99945429, 0.49326166],9183 [ -6.27335853, -0.00033837, 0.00020728, 7.27302015, 0.99896643, 0.99945435, 0.49326165],9184 [ -6.27335861, -0.00033833, 0.00020726, 7.27302028, 0.99896655, 0.99945441, 0.49326181],9185 [ -6.27335870, -0.00033830, 0.00020723, 7.27302041, 0.99896666, 0.99945447, 0.49326156],9186 [ -6.27335879, -0.00033826, 0.00020721, 7.27302053, 0.99896677, 0.99945453, 0.49326193],9187 [ -6.27335888, -0.00033822, 0.00020719, 7.27302066, 0.99896688, 0.99945459, 0.49326181],9188 [ -6.27335897, -0.00033819, 0.00020716, 7.27302078, 0.99896700, 0.99945465, 0.49326163],9189 [ -6.27335906, -0.00033815, 0.00020714, 7.27302091, 0.99896711, 0.99945471, 0.49326173],9190 [ -6.27335915, -0.00033811, 0.00020712, 7.27302103, 0.99896722, 0.99945477, 0.49326188],9191 [ -6.27335923, -0.00033808, 0.00020710, 7.27302116, 0.99896734, 0.99945483, 0.49326193],9192 [ -6.27335932, -0.00033804, 0.00020707, 7.27302128, 0.99896745, 0.99945489, 0.49326203],9193 [ -6.27335941, -0.00033800, 0.00020705, 7.27302141, 0.99896756, 0.99945495, 0.49326181],9194 [ -6.27335950, -0.00033797, 0.00020703, 7.27302153, 0.99896767, 0.99945501, 0.49326178],9195 [ -6.27335959, -0.00033793, 0.00020701, 7.27302166, 0.99896779, 0.99945507, 0.49326183],9196 [ -6.27335968, -0.00033789, 0.00020698, 7.27302178, 0.99896790, 0.99945512, 0.49326183],9197 [ -6.27335976, -0.00033785, 0.00020696, 7.27302191, 0.99896801, 0.99945518, 0.49326190],9198 [ -6.27335985, -0.00033782, 0.00020694, 7.27302203, 0.99896813, 0.99945524, 0.49326204],9199 [ -6.27335994, -0.00033778, 0.00020692, 7.27302216, 0.99896824, 0.99945530, 0.49326197],9200 [ -6.27336003, -0.00033774, 0.00020689, 7.27302228, 0.99896835, 0.99945536, 0.49326200],9201 [ -6.27336012, -0.00033771, 0.00020687, 7.27302241, 0.99896846, 0.99945542, 0.49326187],9202 [ -6.27336021, -0.00033767, 0.00020685, 7.27302253, 0.99896858, 0.99945548, 0.49326214],9203 [ -6.27336029, -0.00033763, 0.00020683, 7.27302266, 0.99896869, 0.99945554, 0.49326210],9204 [ -6.27336038, -0.00033760, 0.00020680, 7.27302278, 0.99896880, 0.99945560, 0.49326210],9205 [ -6.27336047, -0.00033756, 0.00020678, 7.27302291, 0.99896891, 0.99945566, 0.49326201],9206 [ -6.27336056, -0.00033752, 0.00020676, 7.27302303, 0.99896903, 0.99945572, 0.49326223],9207 [ -6.27336065, -0.00033749, 0.00020674, 7.27302316, 0.99896914, 0.99945578, 0.49326214],9208 [ -6.27336073, -0.00033745, 0.00020671, 7.27302328, 0.99896925, 0.99945584, 0.49326184],9209 [ -6.27336082, -0.00033741, 0.00020669, 7.27302341, 0.99896936, 0.99945590, 0.49326190],9210 [ -6.27336091, -0.00033738, 0.00020667, 7.27302353, 0.99896948, 0.99945596, 0.49326192],9211 [ -6.27336100, -0.00033734, 0.00020665, 7.27302366, 0.99896959, 0.99945602, 0.49326215],9212 [ -6.27336109, -0.00033730, 0.00020662, 7.27302378, 0.99896970, 0.99945607, 0.49326198],9213 [ -6.27336117, -0.00033727, 0.00020660, 7.27302391, 0.99896981, 0.99945613, 0.49326211],9214 [ -6.27336126, -0.00033723, 0.00020658, 7.27302403, 0.99896992, 0.99945619, 0.49326202],9215 [ -6.27336135, -0.00033719, 0.00020656, 7.27302416, 0.99897004, 0.99945625, 0.49326208],9216 [ -6.27336144, -0.00033716, 0.00020653, 7.27302428, 0.99897015, 0.99945631, 0.49326216],9217 [ -6.27336153, -0.00033712, 0.00020651, 7.27302441, 0.99897026, 0.99945637, 0.49326199],9218 [ -6.27336161, -0.00033708, 0.00020649, 7.27302453, 0.99897037, 0.99945643, 0.49326218],9219 [ -6.27336170, -0.00033705, 0.00020647, 7.27302466, 0.99897049, 0.99945649, 0.49326214],9220 [ -6.27336179, -0.00033701, 0.00020644, 7.27302478, 0.99897060, 0.99945655, 0.49326240],9221 [ -6.27336188, -0.00033697, 0.00020642, 7.27302491, 0.99897071, 0.99945661, 0.49326199],9222 [ -6.27336197, -0.00033694, 0.00020640, 7.27302503, 0.99897082, 0.99945667, 0.49326203],9223 [ -6.27336205, -0.00033690, 0.00020638, 7.27302515, 0.99897093, 0.99945673, 0.49326224],9224 [ -6.27336214, -0.00033686, 0.00020635, 7.27302528, 0.99897105, 0.99945679, 0.49326220],9225 [ -6.27336223, -0.00033683, 0.00020633, 7.27302540, 0.99897116, 0.99945684, 0.49326222],9226 [ -6.27336232, -0.00033679, 0.00020631, 7.27302553, 0.99897127, 0.99945690, 0.49326242],9227 [ -6.27336240, -0.00033675, 0.00020629, 7.27302565, 0.99897138, 0.99945696, 0.49326213],9228 [ -6.27336249, -0.00033672, 0.00020626, 7.27302578, 0.99897149, 0.99945702, 0.49326219],9229 [ -6.27336258, -0.00033668, 0.00020624, 7.27302590, 0.99897161, 0.99945708, 0.49326219],9230 [ -6.27336267, -0.00033664, 0.00020622, 7.27302603, 0.99897172, 0.99945714, 0.49326250],9231 [ -6.27336275, -0.00033661, 0.00020620, 7.27302615, 0.99897183, 0.99945720, 0.49326244],9232 [ -6.27336284, -0.00033657, 0.00020617, 7.27302627, 0.99897194, 0.99945726, 0.49326221],9233 [ -6.27336293, -0.00033653, 0.00020615, 7.27302640, 0.99897205, 0.99945732, 0.49326264],9234 [ -6.27336302, -0.00033650, 0.00020613, 7.27302652, 0.99897216, 0.99945738, 0.49326232],9235 [ -6.27336311, -0.00033646, 0.00020611, 7.27302665, 0.99897228, 0.99945743, 0.49326230],9236 [ -6.27336319, -0.00033642, 0.00020608, 7.27302677, 0.99897239, 0.99945749, 0.49326227],9237 [ -6.27336328, -0.00033639, 0.00020606, 7.27302689, 0.99897250, 0.99945755, 0.49326245],9238 [ -6.27336337, -0.00033635, 0.00020604, 7.27302702, 0.99897261, 0.99945761, 0.49326242],9239 [ -6.27336346, -0.00033631, 0.00020602, 7.27302714, 0.99897272, 0.99945767, 0.49326246],9240 [ -6.27336354, -0.00033628, 0.00020599, 7.27302727, 0.99897283, 0.99945773, 0.49326241],9241 [ -6.27336363, -0.00033624, 0.00020597, 7.27302739, 0.99897295, 0.99945779, 0.49326240],9242 [ -6.27336372, -0.00033620, 0.00020595, 7.27302751, 0.99897306, 0.99945785, 0.49326249],9243 [ -6.27336381, -0.00033617, 0.00020593, 7.27302764, 0.99897317, 0.99945791, 0.49326270],9244 [ -6.27336389, -0.00033613, 0.00020590, 7.27302776, 0.99897328, 0.99945797, 0.49326235],9245 [ -6.27336398, -0.00033609, 0.00020588, 7.27302789, 0.99897339, 0.99945802, 0.49326239],9246 [ -6.27336407, -0.00033606, 0.00020586, 7.27302801, 0.99897350, 0.99945808, 0.49326248],9247 [ -6.27336415, -0.00033602, 0.00020584, 7.27302813, 0.99897362, 0.99945814, 0.49326264],9248 [ -6.27336424, -0.00033598, 0.00020582, 7.27302826, 0.99897373, 0.99945820, 0.49326263],9249 [ -6.27336433, -0.00033595, 0.00020579, 7.27302838, 0.99897384, 0.99945826, 0.49326243],9250 [ -6.27336442, -0.00033591, 0.00020577, 7.27302851, 0.99897395, 0.99945832, 0.49326267],9251 [ -6.27336450, -0.00033587, 0.00020575, 7.27302863, 0.99897406, 0.99945838, 0.49326234],9252 [ -6.27336459, -0.00033584, 0.00020573, 7.27302875, 0.99897417, 0.99945844, 0.49326251],9253 [ -6.27336468, -0.00033580, 0.00020570, 7.27302888, 0.99897428, 0.99945849, 0.49326259],9254 [ -6.27336477, -0.00033577, 0.00020568, 7.27302900, 0.99897439, 0.99945855, 0.49326266],9255 [ -6.27336485, -0.00033573, 0.00020566, 7.27302912, 0.99897451, 0.99945861, 0.49326257],9256 [ -6.27336494, -0.00033569, 0.00020564, 7.27302925, 0.99897462, 0.99945867, 0.49326257],9257 [ -6.27336503, -0.00033566, 0.00020561, 7.27302937, 0.99897473, 0.99945873, 0.49326264],9258 [ -6.27336511, -0.00033562, 0.00020559, 7.27302949, 0.99897484, 0.99945879, 0.49326274],9259 [ -6.27336520, -0.00033558, 0.00020557, 7.27302962, 0.99897495, 0.99945885, 0.49326286],9260 [ -6.27336529, -0.00033555, 0.00020555, 7.27302974, 0.99897506, 0.99945891, 0.49326289],9261 [ -6.27336538, -0.00033551, 0.00020553, 7.27302986, 0.99897517, 0.99945896, 0.49326274],9262 [ -6.27336546, -0.00033547, 0.00020550, 7.27302999, 0.99897528, 0.99945902, 0.49326267],9263 [ -6.27336555, -0.00033544, 0.00020548, 7.27303011, 0.99897540, 0.99945908, 0.49326282],9264 [ -6.27336564, -0.00033540, 0.00020546, 7.27303023, 0.99897551, 0.99945914, 0.49326268],9265 [ -6.27336572, -0.00033537, 0.00020544, 7.27303036, 0.99897562, 0.99945920, 0.49326305],9266 [ -6.27336581, -0.00033533, 0.00020541, 7.27303048, 0.99897573, 0.99945926, 0.49326276],9267 [ -6.27336590, -0.00033529, 0.00020539, 7.27303060, 0.99897584, 0.99945932, 0.49326281],9268 [ -6.27336598, -0.00033526, 0.00020537, 7.27303073, 0.99897595, 0.99945937, 0.49326294],9269 [ -6.27336607, -0.00033522, 0.00020535, 7.27303085, 0.99897606, 0.99945943, 0.49326286],9270 [ -6.27336616, -0.00033518, 0.00020532, 7.27303097, 0.99897617, 0.99945949, 0.49326281],9271 [ -6.27336625, -0.00033515, 0.00020530, 7.27303110, 0.99897628, 0.99945955, 0.49326286],9272 [ -6.27336633, -0.00033511, 0.00020528, 7.27303122, 0.99897639, 0.99945961, 0.49326297],9273 [ -6.27336642, -0.00033508, 0.00020526, 7.27303134, 0.99897650, 0.99945967, 0.49326279],9274 [ -6.27336651, -0.00033504, 0.00020524, 7.27303147, 0.99897662, 0.99945973, 0.49326311],9275 [ -6.27336659, -0.00033500, 0.00020521, 7.27303159, 0.99897673, 0.99945978, 0.49326289],9276 [ -6.27336668, -0.00033497, 0.00020519, 7.27303171, 0.99897684, 0.99945984, 0.49326305],9277 [ -6.27336677, -0.00033493, 0.00020517, 7.27303184, 0.99897695, 0.99945990, 0.49326297],9278 [ -6.27336685, -0.00033489, 0.00020515, 7.27303196, 0.99897706, 0.99945996, 0.49326277],9279 [ -6.27336694, -0.00033486, 0.00020512, 7.27303208, 0.99897717, 0.99946002, 0.49326308],9280 [ -6.27336703, -0.00033482, 0.00020510, 7.27303221, 0.99897728, 0.99946008, 0.49326289],9281 [ -6.27336711, -0.00033479, 0.00020508, 7.27303233, 0.99897739, 0.99946013, 0.49326298],9282 [ -6.27336720, -0.00033475, 0.00020506, 7.27303245, 0.99897750, 0.99946019, 0.49326300],9283 [ -6.27336729, -0.00033471, 0.00020504, 7.27303257, 0.99897761, 0.99946025, 0.49326304],9284 [ -6.27336737, -0.00033468, 0.00020501, 7.27303270, 0.99897772, 0.99946031, 0.49326311],9285 [ -6.27336746, -0.00033464, 0.00020499, 7.27303282, 0.99897783, 0.99946037, 0.49326309],9286 [ -6.27336755, -0.00033460, 0.00020497, 7.27303294, 0.99897794, 0.99946043, 0.49326303],9287 [ -6.27336763, -0.00033457, 0.00020495, 7.27303306, 0.99897805, 0.99946048, 0.49326308],9288 [ -6.27336772, -0.00033453, 0.00020493, 7.27303319, 0.99897816, 0.99946054, 0.49326287],9289 [ -6.27336781, -0.00033450, 0.00020490, 7.27303331, 0.99897827, 0.99946060, 0.49326314],9290 [ -6.27336789, -0.00033446, 0.00020488, 7.27303343, 0.99897839, 0.99946066, 0.49326307],9291 [ -6.27336798, -0.00033442, 0.00020486, 7.27303356, 0.99897850, 0.99946072, 0.49326307],9292 [ -6.27336807, -0.00033439, 0.00020484, 7.27303368, 0.99897861, 0.99946078, 0.49326322],9293 [ -6.27336815, -0.00033435, 0.00020481, 7.27303380, 0.99897872, 0.99946083, 0.49326311],9294 [ -6.27336824, -0.00033432, 0.00020479, 7.27303392, 0.99897883, 0.99946089, 0.49326322],9295 [ -6.27336833, -0.00033428, 0.00020477, 7.27303405, 0.99897894, 0.99946095, 0.49326339],9296 [ -6.27336841, -0.00033424, 0.00020475, 7.27303417, 0.99897905, 0.99946101, 0.49326319],9297 [ -6.27336850, -0.00033421, 0.00020473, 7.27303429, 0.99897916, 0.99946107, 0.49326315],9298 [ -6.27336858, -0.00033417, 0.00020470, 7.27303441, 0.99897927, 0.99946113, 0.49326326],9299 [ -6.27336867, -0.00033413, 0.00020468, 7.27303454, 0.99897938, 0.99946118, 0.49326320],9300 [ -6.27336876, -0.00033410, 0.00020466, 7.27303466, 0.99897949, 0.99946124, 0.49326335],9301 [ -6.27336884, -0.00033406, 0.00020464, 7.27303478, 0.99897960, 0.99946130, 0.49326321],9302 [ -6.27336893, -0.00033403, 0.00020462, 7.27303490, 0.99897971, 0.99946136, 0.49326341],9303 [ -6.27336902, -0.00033399, 0.00020459, 7.27303503, 0.99897982, 0.99946142, 0.49326319],9304 [ -6.27336910, -0.00033395, 0.00020457, 7.27303515, 0.99897993, 0.99946147, 0.49326349],9305 [ -6.27336919, -0.00033392, 0.00020455, 7.27303527, 0.99898004, 0.99946153, 0.49326330],9306 [ -6.27336927, -0.00033388, 0.00020453, 7.27303539, 0.99898015, 0.99946159, 0.49326316],9307 [ -6.27336936, -0.00033385, 0.00020451, 7.27303551, 0.99898026, 0.99946165, 0.49326319],9308 [ -6.27336945, -0.00033381, 0.00020448, 7.27303564, 0.99898037, 0.99946171, 0.49326337],9309 [ -6.27336953, -0.00033377, 0.00020446, 7.27303576, 0.99898048, 0.99946176, 0.49326350],9310 [ -6.27336962, -0.00033374, 0.00020444, 7.27303588, 0.99898059, 0.99946182, 0.49326333],9311 [ -6.27336971, -0.00033370, 0.00020442, 7.27303600, 0.99898070, 0.99946188, 0.49326343],9312 [ -6.27336979, -0.00033367, 0.00020439, 7.27303613, 0.99898081, 0.99946194, 0.49326342],9313 [ -6.27336988, -0.00033363, 0.00020437, 7.27303625, 0.99898092, 0.99946200, 0.49326348],9314 [ -6.27336996, -0.00033359, 0.00020435, 7.27303637, 0.99898103, 0.99946205, 0.49326358],9315 [ -6.27337005, -0.00033356, 0.00020433, 7.27303649, 0.99898114, 0.99946211, 0.49326344],9316 [ -6.27337014, -0.00033352, 0.00020431, 7.27303661, 0.99898125, 0.99946217, 0.49326333],9317 [ -6.27337022, -0.00033349, 0.00020428, 7.27303674, 0.99898136, 0.99946223, 0.49326344],9318 [ -6.27337031, -0.00033345, 0.00020426, 7.27303686, 0.99898147, 0.99946229, 0.49326346],9319 [ -6.27337039, -0.00033342, 0.00020424, 7.27303698, 0.99898158, 0.99946234, 0.49326354],9320 [ -6.27337048, -0.00033338, 0.00020422, 7.27303710, 0.99898169, 0.99946240, 0.49326336],9321 [ -6.27337057, -0.00033334, 0.00020420, 7.27303722, 0.99898180, 0.99946246, 0.49326349],9322 [ -6.27337065, -0.00033331, 0.00020417, 7.27303734, 0.99898191, 0.99946252, 0.49326348],9323 [ -6.27337074, -0.00033327, 0.00020415, 7.27303747, 0.99898202, 0.99946258, 0.49326342],9324 [ -6.27337082, -0.00033324, 0.00020413, 7.27303759, 0.99898213, 0.99946263, 0.49326343],9325 [ -6.27337091, -0.00033320, 0.00020411, 7.27303771, 0.99898224, 0.99946269, 0.49326362],9326 [ -6.27337100, -0.00033316, 0.00020409, 7.27303783, 0.99898234, 0.99946275, 0.49326356],9327 [ -6.27337108, -0.00033313, 0.00020406, 7.27303795, 0.99898245, 0.99946281, 0.49326362],9328 [ -6.27337117, -0.00033309, 0.00020404, 7.27303808, 0.99898256, 0.99946287, 0.49326353],9329 [ -6.27337125, -0.00033306, 0.00020402, 7.27303820, 0.99898267, 0.99946292, 0.49326384],9330 [ -6.27337134, -0.00033302, 0.00020400, 7.27303832, 0.99898278, 0.99946298, 0.49326355],9331 [ -6.27337142, -0.00033298, 0.00020398, 7.27303844, 0.99898289, 0.99946304, 0.49326361],9332 [ -6.27337151, -0.00033295, 0.00020395, 7.27303856, 0.99898300, 0.99946310, 0.49326362],9333 [ -6.27337160, -0.00033291, 0.00020393, 7.27303868, 0.99898311, 0.99946315, 0.49326349],9334 [ -6.27337168, -0.00033288, 0.00020391, 7.27303880, 0.99898322, 0.99946321, 0.49326369],9335 [ -6.27337177, -0.00033284, 0.00020389, 7.27303893, 0.99898333, 0.99946327, 0.49326369],9336 [ -6.27337185, -0.00033281, 0.00020387, 7.27303905, 0.99898344, 0.99946333, 0.49326369],9337 [ -6.27337194, -0.00033277, 0.00020385, 7.27303917, 0.99898355, 0.99946338, 0.49326367],9338 [ -6.27337202, -0.00033273, 0.00020382, 7.27303929, 0.99898366, 0.99946344, 0.49326359],9339 [ -6.27337211, -0.00033270, 0.00020380, 7.27303941, 0.99898377, 0.99946350, 0.49326376],9340 [ -6.27337220, -0.00033266, 0.00020378, 7.27303953, 0.99898388, 0.99946356, 0.49326382],9341 [ -6.27337228, -0.00033263, 0.00020376, 7.27303965, 0.99898399, 0.99946362, 0.49326384],9342 [ -6.27337237, -0.00033259, 0.00020374, 7.27303978, 0.99898409, 0.99946367, 0.49326379],9343 [ -6.27337245, -0.00033256, 0.00020371, 7.27303990, 0.99898420, 0.99946373, 0.49326389],9344 [ -6.27337254, -0.00033252, 0.00020369, 7.27304002, 0.99898431, 0.99946379, 0.49326390],9345 [ -6.27337262, -0.00033248, 0.00020367, 7.27304014, 0.99898442, 0.99946385, 0.49326379],9346 [ -6.27337271, -0.00033245, 0.00020365, 7.27304026, 0.99898453, 0.99946390, 0.49326384],9347 [ -6.27337279, -0.00033241, 0.00020363, 7.27304038, 0.99898464, 0.99946396, 0.49326381],9348 [ -6.27337288, -0.00033238, 0.00020360, 7.27304050, 0.99898475, 0.99946402, 0.49326372],9349 [ -6.27337297, -0.00033234, 0.00020358, 7.27304062, 0.99898486, 0.99946408, 0.49326377],9350 [ -6.27337305, -0.00033231, 0.00020356, 7.27304075, 0.99898497, 0.99946413, 0.49326406],9351 [ -6.27337314, -0.00033227, 0.00020354, 7.27304087, 0.99898508, 0.99946419, 0.49326380],9352 [ -6.27337322, -0.00033223, 0.00020352, 7.27304099, 0.99898519, 0.99946425, 0.49326407],9353 [ -6.27337331, -0.00033220, 0.00020350, 7.27304111, 0.99898529, 0.99946431, 0.49326377],9354 [ -6.27337339, -0.00033216, 0.00020347, 7.27304123, 0.99898540, 0.99946436, 0.49326399],9355 [ -6.27337348, -0.00033213, 0.00020345, 7.27304135, 0.99898551, 0.99946442, 0.49326392],9356 [ -6.27337356, -0.00033209, 0.00020343, 7.27304147, 0.99898562, 0.99946448, 0.49326402],9357 [ -6.27337365, -0.00033206, 0.00020341, 7.27304159, 0.99898573, 0.99946454, 0.49326407],9358 [ -6.27337373, -0.00033202, 0.00020339, 7.27304171, 0.99898584, 0.99946459, 0.49326397],9359 [ -6.27337382, -0.00033198, 0.00020336, 7.27304183, 0.99898595, 0.99946465, 0.49326388],9360 [ -6.27337390, -0.00033195, 0.00020334, 7.27304196, 0.99898606, 0.99946471, 0.49326400],9361 [ -6.27337399, -0.00033191, 0.00020332, 7.27304208, 0.99898616, 0.99946477, 0.49326405],9362 [ -6.27337407, -0.00033188, 0.00020330, 7.27304220, 0.99898627, 0.99946482, 0.49326405],9363 [ -6.27337416, -0.00033184, 0.00020328, 7.27304232, 0.99898638, 0.99946488, 0.49326395],9364 [ -6.27337425, -0.00033181, 0.00020326, 7.27304244, 0.99898649, 0.99946494, 0.49326406],9365 [ -6.27337433, -0.00033177, 0.00020323, 7.27304256, 0.99898660, 0.99946500, 0.49326412],9366 [ -6.27337442, -0.00033174, 0.00020321, 7.27304268, 0.99898671, 0.99946505, 0.49326418],9367 [ -6.27337450, -0.00033170, 0.00020319, 7.27304280, 0.99898682, 0.99946511, 0.49326405],9368 [ -6.27337459, -0.00033166, 0.00020317, 7.27304292, 0.99898693, 0.99946517, 0.49326394],9369 [ -6.27337467, -0.00033163, 0.00020315, 7.27304304, 0.99898703, 0.99946522, 0.49326407],9370 [ -6.27337476, -0.00033159, 0.00020312, 7.27304316, 0.99898714, 0.99946528, 0.49326381],9371 [ -6.27337484, -0.00033156, 0.00020310, 7.27304328, 0.99898725, 0.99946534, 0.49326400],9372 [ -6.27337493, -0.00033152, 0.00020308, 7.27304340, 0.99898736, 0.99946540, 0.49326414],9373 [ -6.27337501, -0.00033149, 0.00020306, 7.27304352, 0.99898747, 0.99946545, 0.49326426],9374 [ -6.27337510, -0.00033145, 0.00020304, 7.27304364, 0.99898758, 0.99946551, 0.49326422],9375 [ -6.27337518, -0.00033142, 0.00020302, 7.27304376, 0.99898768, 0.99946557, 0.49326412],9376 [ -6.27337527, -0.00033138, 0.00020299, 7.27304389, 0.99898779, 0.99946563, 0.49326410],9377 [ -6.27337535, -0.00033135, 0.00020297, 7.27304401, 0.99898790, 0.99946568, 0.49326415],9378 [ -6.27337544, -0.00033131, 0.00020295, 7.27304413, 0.99898801, 0.99946574, 0.49326422],9379 [ -6.27337552, -0.00033127, 0.00020293, 7.27304425, 0.99898812, 0.99946580, 0.49326416],9380 [ -6.27337561, -0.00033124, 0.00020291, 7.27304437, 0.99898823, 0.99946585, 0.49326449],9381 [ -6.27337569, -0.00033120, 0.00020289, 7.27304449, 0.99898833, 0.99946591, 0.49326425],9382 [ -6.27337578, -0.00033117, 0.00020286, 7.27304461, 0.99898844, 0.99946597, 0.49326435],9383 [ -6.27337586, -0.00033113, 0.00020284, 7.27304473, 0.99898855, 0.99946603, 0.49326445],9384 [ -6.27337594, -0.00033110, 0.00020282, 7.27304485, 0.99898866, 0.99946608, 0.49326455],9385 [ -6.27337603, -0.00033106, 0.00020280, 7.27304497, 0.99898877, 0.99946614, 0.49326433],9386 [ -6.27337611, -0.00033103, 0.00020278, 7.27304509, 0.99898888, 0.99946620, 0.49326418],9387 [ -6.27337620, -0.00033099, 0.00020275, 7.27304521, 0.99898898, 0.99946625, 0.49326429],9388 [ -6.27337628, -0.00033096, 0.00020273, 7.27304533, 0.99898909, 0.99946631, 0.49326433],9389 [ -6.27337637, -0.00033092, 0.00020271, 7.27304545, 0.99898920, 0.99946637, 0.49326438],9390 [ -6.27337645, -0.00033088, 0.00020269, 7.27304557, 0.99898931, 0.99946643, 0.49326440],9391 [ -6.27337654, -0.00033085, 0.00020267, 7.27304569, 0.99898942, 0.99946648, 0.49326448],9392 [ -6.27337662, -0.00033081, 0.00020265, 7.27304581, 0.99898952, 0.99946654, 0.49326440],9393 [ -6.27337671, -0.00033078, 0.00020262, 7.27304593, 0.99898963, 0.99946660, 0.49326441],9394 [ -6.27337679, -0.00033074, 0.00020260, 7.27304605, 0.99898974, 0.99946665, 0.49326439],9395 [ -6.27337688, -0.00033071, 0.00020258, 7.27304617, 0.99898985, 0.99946671, 0.49326444],9396 [ -6.27337696, -0.00033067, 0.00020256, 7.27304629, 0.99898996, 0.99946677, 0.49326437],9397 [ -6.27337705, -0.00033064, 0.00020254, 7.27304641, 0.99899006, 0.99946682, 0.49326463],9398 [ -6.27337713, -0.00033060, 0.00020252, 7.27304653, 0.99899017, 0.99946688, 0.49326433],9399 [ -6.27337721, -0.00033057, 0.00020250, 7.27304665, 0.99899028, 0.99946694, 0.49326452],9400 [ -6.27337730, -0.00033053, 0.00020247, 7.27304677, 0.99899039, 0.99946700, 0.49326464],9401 [ -6.27337738, -0.00033050, 0.00020245, 7.27304689, 0.99899050, 0.99946705, 0.49326462],9402 [ -6.27337747, -0.00033046, 0.00020243, 7.27304701, 0.99899060, 0.99946711, 0.49326446],9403 [ -6.27337755, -0.00033043, 0.00020241, 7.27304713, 0.99899071, 0.99946717, 0.49326448],9404 [ -6.27337764, -0.00033039, 0.00020239, 7.27304725, 0.99899082, 0.99946722, 0.49326479],9405 [ -6.27337772, -0.00033035, 0.00020237, 7.27304737, 0.99899093, 0.99946728, 0.49326445],9406 [ -6.27337781, -0.00033032, 0.00020234, 7.27304749, 0.99899103, 0.99946734, 0.49326446],9407 [ -6.27337789, -0.00033028, 0.00020232, 7.27304761, 0.99899114, 0.99946739, 0.49326446],9408 [ -6.27337797, -0.00033025, 0.00020230, 7.27304773, 0.99899125, 0.99946745, 0.49326456],9409 [ -6.27337806, -0.00033021, 0.00020228, 7.27304785, 0.99899136, 0.99946751, 0.49326462],9410 [ -6.27337814, -0.00033018, 0.00020226, 7.27304796, 0.99899146, 0.99946756, 0.49326466],9411 [ -6.27337823, -0.00033014, 0.00020224, 7.27304808, 0.99899157, 0.99946762, 0.49326469],9412 [ -6.27337831, -0.00033011, 0.00020221, 7.27304820, 0.99899168, 0.99946768, 0.49326455],9413 [ -6.27337840, -0.00033007, 0.00020219, 7.27304832, 0.99899179, 0.99946773, 0.49326445],9414 [ -6.27337848, -0.00033004, 0.00020217, 7.27304844, 0.99899190, 0.99946779, 0.49326466],9415 [ -6.27337856, -0.00033000, 0.00020215, 7.27304856, 0.99899200, 0.99946785, 0.49326467],9416 [ -6.27337865, -0.00032997, 0.00020213, 7.27304868, 0.99899211, 0.99946790, 0.49326472],9417 [ -6.27337873, -0.00032993, 0.00020211, 7.27304880, 0.99899222, 0.99946796, 0.49326465],9418 [ -6.27337882, -0.00032990, 0.00020208, 7.27304892, 0.99899233, 0.99946802, 0.49326487],9419 [ -6.27337890, -0.00032986, 0.00020206, 7.27304904, 0.99899243, 0.99946807, 0.49326453],9420 [ -6.27337899, -0.00032983, 0.00020204, 7.27304916, 0.99899254, 0.99946813, 0.49326462],9421 [ -6.27337907, -0.00032979, 0.00020202, 7.27304928, 0.99899265, 0.99946819, 0.49326466],9422 [ -6.27337915, -0.00032976, 0.00020200, 7.27304940, 0.99899275, 0.99946824, 0.49326470],9423 [ -6.27337924, -0.00032972, 0.00020198, 7.27304952, 0.99899286, 0.99946830, 0.49326485],9424 [ -6.27337932, -0.00032969, 0.00020196, 7.27304964, 0.99899297, 0.99946836, 0.49326493],9425 [ -6.27337941, -0.00032965, 0.00020193, 7.27304976, 0.99899308, 0.99946841, 0.49326472],9426 [ -6.27337949, -0.00032962, 0.00020191, 7.27304987, 0.99899318, 0.99946847, 0.49326466],9427 [ -6.27337957, -0.00032958, 0.00020189, 7.27304999, 0.99899329, 0.99946853, 0.49326475],9428 [ -6.27337966, -0.00032955, 0.00020187, 7.27305011, 0.99899340, 0.99946858, 0.49326474],9429 [ -6.27337974, -0.00032951, 0.00020185, 7.27305023, 0.99899351, 0.99946864, 0.49326494],9430 [ -6.27337983, -0.00032948, 0.00020183, 7.27305035, 0.99899361, 0.99946870, 0.49326475],9431 [ -6.27337991, -0.00032944, 0.00020181, 7.27305047, 0.99899372, 0.99946875, 0.49326504],9432 [ -6.27337999, -0.00032941, 0.00020178, 7.27305059, 0.99899383, 0.99946881, 0.49326510],9433 [ -6.27338008, -0.00032937, 0.00020176, 7.27305071, 0.99899393, 0.99946887, 0.49326506],9434 [ -6.27338016, -0.00032934, 0.00020174, 7.27305083, 0.99899404, 0.99946892, 0.49326491],9435 [ -6.27338025, -0.00032930, 0.00020172, 7.27305095, 0.99899415, 0.99946898, 0.49326495],9436 [ -6.27338033, -0.00032927, 0.00020170, 7.27305106, 0.99899425, 0.99946904, 0.49326488],9437 [ -6.27338041, -0.00032923, 0.00020168, 7.27305118, 0.99899436, 0.99946909, 0.49326492],9438 [ -6.27338050, -0.00032920, 0.00020165, 7.27305130, 0.99899447, 0.99946915, 0.49326492],9439 [ -6.27338058, -0.00032916, 0.00020163, 7.27305142, 0.99899458, 0.99946921, 0.49326493],9440 [ -6.27338067, -0.00032913, 0.00020161, 7.27305154, 0.99899468, 0.99946926, 0.49326498],9441 [ -6.27338075, -0.00032909, 0.00020159, 7.27305166, 0.99899479, 0.99946932, 0.49326509],9442 [ -6.27338083, -0.00032906, 0.00020157, 7.27305178, 0.99899490, 0.99946938, 0.49326511],9443 [ -6.27338092, -0.00032902, 0.00020155, 7.27305190, 0.99899500, 0.99946943, 0.49326491],9444 [ -6.27338100, -0.00032899, 0.00020153, 7.27305201, 0.99899511, 0.99946949, 0.49326497],9445 [ -6.27338108, -0.00032895, 0.00020150, 7.27305213, 0.99899522, 0.99946954, 0.49326517],9446 [ -6.27338117, -0.00032892, 0.00020148, 7.27305225, 0.99899532, 0.99946960, 0.49326501],9447 [ -6.27338125, -0.00032888, 0.00020146, 7.27305237, 0.99899543, 0.99946966, 0.49326506],9448 [ -6.27338134, -0.00032885, 0.00020144, 7.27305249, 0.99899554, 0.99946971, 0.49326507],9449 [ -6.27338142, -0.00032881, 0.00020142, 7.27305261, 0.99899564, 0.99946977, 0.49326497],9450 [ -6.27338150, -0.00032878, 0.00020140, 7.27305273, 0.99899575, 0.99946983, 0.49326508],9451 [ -6.27338159, -0.00032874, 0.00020138, 7.27305284, 0.99899586, 0.99946988, 0.49326522],9452 [ -6.27338167, -0.00032871, 0.00020135, 7.27305296, 0.99899596, 0.99946994, 0.49326525],9453 [ -6.27338175, -0.00032867, 0.00020133, 7.27305308, 0.99899607, 0.99946999, 0.49326527],9454 [ -6.27338184, -0.00032864, 0.00020131, 7.27305320, 0.99899618, 0.99947005, 0.49326512],9455 [ -6.27338192, -0.00032860, 0.00020129, 7.27305332, 0.99899628, 0.99947011, 0.49326544],9456 [ -6.27338200, -0.00032857, 0.00020127, 7.27305344, 0.99899639, 0.99947016, 0.49326511],9457 [ -6.27338209, -0.00032853, 0.00020125, 7.27305356, 0.99899650, 0.99947022, 0.49326525],9458 [ -6.27338217, -0.00032850, 0.00020123, 7.27305367, 0.99899660, 0.99947028, 0.49326517],9459 [ -6.27338225, -0.00032846, 0.00020121, 7.27305379, 0.99899671, 0.99947033, 0.49326515],9460 [ -6.27338234, -0.00032843, 0.00020118, 7.27305391, 0.99899682, 0.99947039, 0.49326512],9461 [ -6.27338242, -0.00032839, 0.00020116, 7.27305403, 0.99899692, 0.99947045, 0.49326510],9462 [ -6.27338250, -0.00032836, 0.00020114, 7.27305415, 0.99899703, 0.99947050, 0.49326538],9463 [ -6.27338259, -0.00032832, 0.00020112, 7.27305427, 0.99899714, 0.99947056, 0.49326526],9464 [ -6.27338267, -0.00032829, 0.00020110, 7.27305438, 0.99899724, 0.99947061, 0.49326555],9465 [ -6.27338275, -0.00032825, 0.00020108, 7.27305450, 0.99899735, 0.99947067, 0.49326559],9466 [ -6.27338284, -0.00032822, 0.00020106, 7.27305462, 0.99899745, 0.99947073, 0.49326528],9467 [ -6.27338292, -0.00032818, 0.00020103, 7.27305474, 0.99899756, 0.99947078, 0.49326542],9468 [ -6.27338300, -0.00032815, 0.00020101, 7.27305486, 0.99899767, 0.99947084, 0.49326519],9469 [ -6.27338309, -0.00032811, 0.00020099, 7.27305497, 0.99899777, 0.99947089, 0.49326536],9470 [ -6.27338317, -0.00032808, 0.00020097, 7.27305509, 0.99899788, 0.99947095, 0.49326533],9471 [ -6.27338325, -0.00032804, 0.00020095, 7.27305521, 0.99899799, 0.99947101, 0.49326540],9472 [ -6.27338334, -0.00032801, 0.00020093, 7.27305533, 0.99899809, 0.99947106, 0.49326552],9473 [ -6.27338342, -0.00032797, 0.00020091, 7.27305545, 0.99899820, 0.99947112, 0.49326543],9474 [ -6.27338350, -0.00032794, 0.00020089, 7.27305556, 0.99899830, 0.99947117, 0.49326548],9475 [ -6.27338359, -0.00032791, 0.00020086, 7.27305568, 0.99899841, 0.99947123, 0.49326555],9476 [ -6.27338367, -0.00032787, 0.00020084, 7.27305580, 0.99899852, 0.99947129, 0.49326550],9477 [ -6.27338375, -0.00032784, 0.00020082, 7.27305592, 0.99899862, 0.99947134, 0.49326539],9478 [ -6.27338384, -0.00032780, 0.00020080, 7.27305604, 0.99899873, 0.99947140, 0.49326537],9479 [ -6.27338392, -0.00032777, 0.00020078, 7.27305615, 0.99899884, 0.99947145, 0.49326540],9480 [ -6.27338400, -0.00032773, 0.00020076, 7.27305627, 0.99899894, 0.99947151, 0.49326552],9481 [ -6.27338409, -0.00032770, 0.00020074, 7.27305639, 0.99899905, 0.99947157, 0.49326544],9482 [ -6.27338417, -0.00032766, 0.00020072, 7.27305651, 0.99899915, 0.99947162, 0.49326541],9483 [ -6.27338425, -0.00032763, 0.00020069, 7.27305662, 0.99899926, 0.99947168, 0.49326544],9484 [ -6.27338433, -0.00032759, 0.00020067, 7.27305674, 0.99899937, 0.99947173, 0.49326555],9485 [ -6.27338442, -0.00032756, 0.00020065, 7.27305686, 0.99899947, 0.99947179, 0.49326592],9486 [ -6.27338450, -0.00032752, 0.00020063, 7.27305698, 0.99899958, 0.99947185, 0.49326555],9487 [ -6.27338458, -0.00032749, 0.00020061, 7.27305709, 0.99899968, 0.99947190, 0.49326556],9488 [ -6.27338467, -0.00032745, 0.00020059, 7.27305721, 0.99899979, 0.99947196, 0.49326577],9489 [ -6.27338475, -0.00032742, 0.00020057, 7.27305733, 0.99899989, 0.99947201, 0.49326572],9490 [ -6.27338483, -0.00032739, 0.00020055, 7.27305745, 0.99900000, 0.99947207, 0.49326564],9491 [ -6.27338492, -0.00032735, 0.00020052, 7.27305756, 0.99900011, 0.99947213, 0.49326574],9492 [ -6.27338500, -0.00032732, 0.00020050, 7.27305768, 0.99900021, 0.99947218, 0.49326570],9493 [ -6.27338508, -0.00032728, 0.00020048, 7.27305780, 0.99900032, 0.99947224, 0.49326585],9494 [ -6.27338516, -0.00032725, 0.00020046, 7.27305792, 0.99900042, 0.99947229, 0.49326561],9495 [ -6.27338525, -0.00032721, 0.00020044, 7.27305804, 0.99900053, 0.99947235, 0.49326554],9496 [ -6.27338533, -0.00032718, 0.00020042, 7.27305815, 0.99900063, 0.99947240, 0.49326565],9497 [ -6.27338541, -0.00032714, 0.00020040, 7.27305827, 0.99900074, 0.99947246, 0.49326560],9498 [ -6.27338550, -0.00032711, 0.00020038, 7.27305839, 0.99900085, 0.99947252, 0.49326561],9499 [ -6.27338558, -0.00032707, 0.00020035, 7.27305850, 0.99900095, 0.99947257, 0.49326588],9500 [ -6.27338566, -0.00032704, 0.00020033, 7.27305862, 0.99900106, 0.99947263, 0.49326567],9501 [ -6.27338574, -0.00032700, 0.00020031, 7.27305874, 0.99900116, 0.99947268, 0.49326573],9502 [ -6.27338583, -0.00032697, 0.00020029, 7.27305886, 0.99900127, 0.99947274, 0.49326588],9503 [ -6.27338591, -0.00032694, 0.00020027, 7.27305897, 0.99900137, 0.99947279, 0.49326587],9504 [ -6.27338599, -0.00032690, 0.00020025, 7.27305909, 0.99900148, 0.99947285, 0.49326591],9505 [ -6.27338607, -0.00032687, 0.00020023, 7.27305921, 0.99900158, 0.99947291, 0.49326568],9506 [ -6.27338616, -0.00032683, 0.00020021, 7.27305932, 0.99900169, 0.99947296, 0.49326586],9507 [ -6.27338624, -0.00032680, 0.00020019, 7.27305944, 0.99900180, 0.99947302, 0.49326595],9508 [ -6.27338632, -0.00032676, 0.00020016, 7.27305956, 0.99900190, 0.99947307, 0.49326594],9509 [ -6.27338640, -0.00032673, 0.00020014, 7.27305968, 0.99900201, 0.99947313, 0.49326576],9510 [ -6.27338649, -0.00032669, 0.00020012, 7.27305979, 0.99900211, 0.99947318, 0.49326600],9511 [ -6.27338657, -0.00032666, 0.00020010, 7.27305991, 0.99900222, 0.99947324, 0.49326567],9512 [ -6.27338665, -0.00032663, 0.00020008, 7.27306003, 0.99900232, 0.99947330, 0.49326591],9513 [ -6.27338674, -0.00032659, 0.00020006, 7.27306014, 0.99900243, 0.99947335, 0.49326584],9514 [ -6.27338682, -0.00032656, 0.00020004, 7.27306026, 0.99900253, 0.99947341, 0.49326591],9515 [ -6.27338690, -0.00032652, 0.00020002, 7.27306038, 0.99900264, 0.99947346, 0.49326598],9516 [ -6.27338698, -0.00032649, 0.00020000, 7.27306050, 0.99900274, 0.99947352, 0.49326605],9517 [ -6.27338706, -0.00032645, 0.00019997, 7.27306061, 0.99900285, 0.99947357, 0.49326584],9518 [ -6.27338715, -0.00032642, 0.00019995, 7.27306073, 0.99900295, 0.99947363, 0.49326610],9519 [ -6.27338723, -0.00032638, 0.00019993, 7.27306085, 0.99900306, 0.99947368, 0.49326584],9520 [ -6.27338731, -0.00032635, 0.00019991, 7.27306096, 0.99900316, 0.99947374, 0.49326595],9521 [ -6.27338739, -0.00032632, 0.00019989, 7.27306108, 0.99900327, 0.99947379, 0.49326574],9522 [ -6.27338748, -0.00032628, 0.00019987, 7.27306120, 0.99900337, 0.99947385, 0.49326593],9523 [ -6.27338756, -0.00032625, 0.00019985, 7.27306131, 0.99900348, 0.99947391, 0.49326617],9524 [ -6.27338764, -0.00032621, 0.00019983, 7.27306143, 0.99900358, 0.99947396, 0.49326608],9525 [ -6.27338772, -0.00032618, 0.00019981, 7.27306155, 0.99900369, 0.99947402, 0.49326601],9526 [ -6.27338781, -0.00032614, 0.00019978, 7.27306166, 0.99900379, 0.99947407, 0.49326595],9527 [ -6.27338789, -0.00032611, 0.00019976, 7.27306178, 0.99900390, 0.99947413, 0.49326615],9528 [ -6.27338797, -0.00032607, 0.00019974, 7.27306190, 0.99900400, 0.99947418, 0.49326594],9529 [ -6.27338805, -0.00032604, 0.00019972, 7.27306201, 0.99900411, 0.99947424, 0.49326623],9530 [ -6.27338814, -0.00032601, 0.00019970, 7.27306213, 0.99900421, 0.99947429, 0.49326628],9531 [ -6.27338822, -0.00032597, 0.00019968, 7.27306225, 0.99900432, 0.99947435, 0.49326618],9532 [ -6.27338830, -0.00032594, 0.00019966, 7.27306236, 0.99900442, 0.99947440, 0.49326621],9533 [ -6.27338838, -0.00032590, 0.00019964, 7.27306248, 0.99900453, 0.99947446, 0.49326598],9534 [ -6.27338846, -0.00032587, 0.00019962, 7.27306260, 0.99900463, 0.99947452, 0.49326615],9535 [ -6.27338855, -0.00032583, 0.00019960, 7.27306271, 0.99900474, 0.99947457, 0.49326647],9536 [ -6.27338863, -0.00032580, 0.00019957, 7.27306283, 0.99900484, 0.99947463, 0.49326621],9537 [ -6.27338871, -0.00032577, 0.00019955, 7.27306294, 0.99900495, 0.99947468, 0.49326643],9538 [ -6.27338879, -0.00032573, 0.00019953, 7.27306306, 0.99900505, 0.99947474, 0.49326629],9539 [ -6.27338887, -0.00032570, 0.00019951, 7.27306318, 0.99900516, 0.99947479, 0.49326635],9540 [ -6.27338896, -0.00032566, 0.00019949, 7.27306329, 0.99900526, 0.99947485, 0.49326632],9541 [ -6.27338904, -0.00032563, 0.00019947, 7.27306341, 0.99900537, 0.99947490, 0.49326626],9542 [ -6.27338912, -0.00032559, 0.00019945, 7.27306353, 0.99900547, 0.99947496, 0.49326639],9543 [ -6.27338920, -0.00032556, 0.00019943, 7.27306364, 0.99900558, 0.99947501, 0.49326627],9544 [ -6.27338928, -0.00032553, 0.00019941, 7.27306376, 0.99900568, 0.99947507, 0.49326645],9545 [ -6.27338937, -0.00032549, 0.00019939, 7.27306387, 0.99900578, 0.99947512, 0.49326623],9546 [ -6.27338945, -0.00032546, 0.00019936, 7.27306399, 0.99900589, 0.99947518, 0.49326607],9547 [ -6.27338953, -0.00032542, 0.00019934, 7.27306411, 0.99900599, 0.99947523, 0.49326641],9548 [ -6.27338961, -0.00032539, 0.00019932, 7.27306422, 0.99900610, 0.99947529, 0.49326644],9549 [ -6.27338969, -0.00032536, 0.00019930, 7.27306434, 0.99900620, 0.99947534, 0.49326635],9550 [ -6.27338978, -0.00032532, 0.00019928, 7.27306446, 0.99900631, 0.99947540, 0.49326617],9551 [ -6.27338986, -0.00032529, 0.00019926, 7.27306457, 0.99900641, 0.99947545, 0.49326647],9552 [ -6.27338994, -0.00032525, 0.00019924, 7.27306469, 0.99900652, 0.99947551, 0.49326638],9553 [ -6.27339002, -0.00032522, 0.00019922, 7.27306480, 0.99900662, 0.99947556, 0.49326625],9554 [ -6.27339010, -0.00032518, 0.00019920, 7.27306492, 0.99900673, 0.99947562, 0.49326654],9555 [ -6.27339019, -0.00032515, 0.00019918, 7.27306504, 0.99900683, 0.99947567, 0.49326643],9556 [ -6.27339027, -0.00032512, 0.00019915, 7.27306515, 0.99900693, 0.99947573, 0.49326639],9557 [ -6.27339035, -0.00032508, 0.00019913, 7.27306527, 0.99900704, 0.99947578, 0.49326643],9558 [ -6.27339043, -0.00032505, 0.00019911, 7.27306538, 0.99900714, 0.99947584, 0.49326613],9559 [ -6.27339051, -0.00032501, 0.00019909, 7.27306550, 0.99900725, 0.99947589, 0.49326635],9560 [ -6.27339059, -0.00032498, 0.00019907, 7.27306561, 0.99900735, 0.99947595, 0.49326654],9561 [ -6.27339068, -0.00032495, 0.00019905, 7.27306573, 0.99900746, 0.99947600, 0.49326649],9562 [ -6.27339076, -0.00032491, 0.00019903, 7.27306585, 0.99900756, 0.99947606, 0.49326645],9563 [ -6.27339084, -0.00032488, 0.00019901, 7.27306596, 0.99900766, 0.99947611, 0.49326635],9564 [ -6.27339092, -0.00032484, 0.00019899, 7.27306608, 0.99900777, 0.99947617, 0.49326646],9565 [ -6.27339100, -0.00032481, 0.00019897, 7.27306619, 0.99900787, 0.99947622, 0.49326660],9566 [ -6.27339108, -0.00032477, 0.00019895, 7.27306631, 0.99900798, 0.99947628, 0.49326653],9567 [ -6.27339117, -0.00032474, 0.00019892, 7.27306642, 0.99900808, 0.99947633, 0.49326655],9568 [ -6.27339125, -0.00032471, 0.00019890, 7.27306654, 0.99900818, 0.99947639, 0.49326642],9569 [ -6.27339133, -0.00032467, 0.00019888, 7.27306666, 0.99900829, 0.99947644, 0.49326648],9570 [ -6.27339141, -0.00032464, 0.00019886, 7.27306677, 0.99900839, 0.99947650, 0.49326679],9571 [ -6.27339149, -0.00032460, 0.00019884, 7.27306689, 0.99900850, 0.99947655, 0.49326686],9572 [ -6.27339157, -0.00032457, 0.00019882, 7.27306700, 0.99900860, 0.99947661, 0.49326656],9573 [ -6.27339165, -0.00032454, 0.00019880, 7.27306712, 0.99900870, 0.99947666, 0.49326662],9574 [ -6.27339174, -0.00032450, 0.00019878, 7.27306723, 0.99900881, 0.99947672, 0.49326679],9575 [ -6.27339182, -0.00032447, 0.00019876, 7.27306735, 0.99900891, 0.99947677, 0.49326673],9576 [ -6.27339190, -0.00032443, 0.00019874, 7.27306746, 0.99900902, 0.99947683, 0.49326675],9577 [ -6.27339198, -0.00032440, 0.00019872, 7.27306758, 0.99900912, 0.99947688, 0.49326682],9578 [ -6.27339206, -0.00032437, 0.00019870, 7.27306770, 0.99900922, 0.99947694, 0.49326647],9579 [ -6.27339214, -0.00032433, 0.00019867, 7.27306781, 0.99900933, 0.99947699, 0.49326653],9580 [ -6.27339222, -0.00032430, 0.00019865, 7.27306793, 0.99900943, 0.99947705, 0.49326669],9581 [ -6.27339231, -0.00032426, 0.00019863, 7.27306804, 0.99900954, 0.99947710, 0.49326657],9582 [ -6.27339239, -0.00032423, 0.00019861, 7.27306816, 0.99900964, 0.99947716, 0.49326679],9583 [ -6.27339247, -0.00032420, 0.00019859, 7.27306827, 0.99900974, 0.99947721, 0.49326690],9584 [ -6.27339255, -0.00032416, 0.00019857, 7.27306839, 0.99900985, 0.99947727, 0.49326680],9585 [ -6.27339263, -0.00032413, 0.00019855, 7.27306850, 0.99900995, 0.99947732, 0.49326670],9586 [ -6.27339271, -0.00032409, 0.00019853, 7.27306862, 0.99901005, 0.99947738, 0.49326690],9587 [ -6.27339279, -0.00032406, 0.00019851, 7.27306873, 0.99901016, 0.99947743, 0.49326682],9588 [ -6.27339287, -0.00032403, 0.00019849, 7.27306885, 0.99901026, 0.99947749, 0.49326670],9589 [ -6.27339296, -0.00032399, 0.00019847, 7.27306896, 0.99901036, 0.99947754, 0.49326689],9590 [ -6.27339304, -0.00032396, 0.00019845, 7.27306908, 0.99901047, 0.99947760, 0.49326683],9591 [ -6.27339312, -0.00032393, 0.00019843, 7.27306919, 0.99901057, 0.99947765, 0.49326682],9592 [ -6.27339320, -0.00032389, 0.00019840, 7.27306931, 0.99901068, 0.99947770, 0.49326694],9593 [ -6.27339328, -0.00032386, 0.00019838, 7.27306942, 0.99901078, 0.99947776, 0.49326682],9594 [ -6.27339336, -0.00032382, 0.00019836, 7.27306954, 0.99901088, 0.99947781, 0.49326696],9595 [ -6.27339344, -0.00032379, 0.00019834, 7.27306965, 0.99901099, 0.99947787, 0.49326703],9596 [ -6.27339352, -0.00032376, 0.00019832, 7.27306977, 0.99901109, 0.99947792, 0.49326705],9597 [ -6.27339360, -0.00032372, 0.00019830, 7.27306988, 0.99901119, 0.99947798, 0.49326683],9598 [ -6.27339369, -0.00032369, 0.00019828, 7.27307000, 0.99901130, 0.99947803, 0.49326692],9599 [ -6.27339377, -0.00032365, 0.00019826, 7.27307011, 0.99901140, 0.99947809, 0.49326694],9600 [ -6.27339385, -0.00032362, 0.00019824, 7.27307023, 0.99901150, 0.99947814, 0.49326688],9601 [ -6.27339393, -0.00032359, 0.00019822, 7.27307034, 0.99901161, 0.99947820, 0.49326687],9602 [ -6.27339401, -0.00032355, 0.00019820, 7.27307046, 0.99901171, 0.99947825, 0.49326697],9603 [ -6.27339409, -0.00032352, 0.00019818, 7.27307057, 0.99901181, 0.99947830, 0.49326717],9604 [ -6.27339417, -0.00032349, 0.00019816, 7.27307069, 0.99901192, 0.99947836, 0.49326712],9605 [ -6.27339425, -0.00032345, 0.00019813, 7.27307080, 0.99901202, 0.99947841, 0.49326703],9606 [ -6.27339433, -0.00032342, 0.00019811, 7.27307092, 0.99901212, 0.99947847, 0.49326706],9607 [ -6.27339441, -0.00032338, 0.00019809, 7.27307103, 0.99901223, 0.99947852, 0.49326716],9608 [ -6.27339450, -0.00032335, 0.00019807, 7.27307115, 0.99901233, 0.99947858, 0.49326689],9609 [ -6.27339458, -0.00032332, 0.00019805, 7.27307126, 0.99901243, 0.99947863, 0.49326699],9610 [ -6.27339466, -0.00032328, 0.00019803, 7.27307137, 0.99901254, 0.99947869, 0.49326696],9611 [ -6.27339474, -0.00032325, 0.00019801, 7.27307149, 0.99901264, 0.99947874, 0.49326718],9612 [ -6.27339482, -0.00032321, 0.00019799, 7.27307160, 0.99901274, 0.99947880, 0.49326717],9613 [ -6.27339490, -0.00032318, 0.00019797, 7.27307172, 0.99901285, 0.99947885, 0.49326705],9614 [ -6.27339498, -0.00032315, 0.00019795, 7.27307183, 0.99901295, 0.99947890, 0.49326716],9615 [ -6.27339506, -0.00032311, 0.00019793, 7.27307195, 0.99901305, 0.99947896, 0.49326730],9616 [ -6.27339514, -0.00032308, 0.00019791, 7.27307206, 0.99901315, 0.99947901, 0.49326718],9617 [ -6.27339522, -0.00032305, 0.00019789, 7.27307218, 0.99901326, 0.99947907, 0.49326722],9618 [ -6.27339530, -0.00032301, 0.00019787, 7.27307229, 0.99901336, 0.99947912, 0.49326715],9619 [ -6.27339538, -0.00032298, 0.00019785, 7.27307241, 0.99901346, 0.99947918, 0.49326728],9620 [ -6.27339546, -0.00032295, 0.00019782, 7.27307252, 0.99901357, 0.99947923, 0.49326724],9621 [ -6.27339555, -0.00032291, 0.00019780, 7.27307263, 0.99901367, 0.99947928, 0.49326701],9622 [ -6.27339563, -0.00032288, 0.00019778, 7.27307275, 0.99901377, 0.99947934, 0.49326708],9623 [ -6.27339571, -0.00032284, 0.00019776, 7.27307286, 0.99901388, 0.99947939, 0.49326726],9624 [ -6.27339579, -0.00032281, 0.00019774, 7.27307298, 0.99901398, 0.99947945, 0.49326720],9625 [ -6.27339587, -0.00032278, 0.00019772, 7.27307309, 0.99901408, 0.99947950, 0.49326714],9626 [ -6.27339595, -0.00032274, 0.00019770, 7.27307321, 0.99901418, 0.99947956, 0.49326729],9627 [ -6.27339603, -0.00032271, 0.00019768, 7.27307332, 0.99901429, 0.99947961, 0.49326744],9628 [ -6.27339611, -0.00032268, 0.00019766, 7.27307343, 0.99901439, 0.99947966, 0.49326726],9629 [ -6.27339619, -0.00032264, 0.00019764, 7.27307355, 0.99901449, 0.99947972, 0.49326746],9630 [ -6.27339627, -0.00032261, 0.00019762, 7.27307366, 0.99901459, 0.99947977, 0.49326747],9631 [ -6.27339635, -0.00032258, 0.00019760, 7.27307378, 0.99901470, 0.99947983, 0.49326746],9632 [ -6.27339643, -0.00032254, 0.00019758, 7.27307389, 0.99901480, 0.99947988, 0.49326737],9633 [ -6.27339651, -0.00032251, 0.00019756, 7.27307400, 0.99901490, 0.99947994, 0.49326725],9634 [ -6.27339659, -0.00032247, 0.00019754, 7.27307412, 0.99901501, 0.99947999, 0.49326744],9635 [ -6.27339667, -0.00032244, 0.00019752, 7.27307423, 0.99901511, 0.99948004, 0.49326734],9636 [ -6.27339675, -0.00032241, 0.00019749, 7.27307435, 0.99901521, 0.99948010, 0.49326748],9637 [ -6.27339683, -0.00032237, 0.00019747, 7.27307446, 0.99901531, 0.99948015, 0.49326735],9638 [ -6.27339691, -0.00032234, 0.00019745, 7.27307457, 0.99901542, 0.99948021, 0.49326718],9639 [ -6.27339699, -0.00032231, 0.00019743, 7.27307469, 0.99901552, 0.99948026, 0.49326726],9640 [ -6.27339708, -0.00032227, 0.00019741, 7.27307480, 0.99901562, 0.99948031, 0.49326739],9641 [ -6.27339716, -0.00032224, 0.00019739, 7.27307492, 0.99901572, 0.99948037, 0.49326736],9642 [ -6.27339724, -0.00032221, 0.00019737, 7.27307503, 0.99901583, 0.99948042, 0.49326751],9643 [ -6.27339732, -0.00032217, 0.00019735, 7.27307514, 0.99901593, 0.99948048, 0.49326746],9644 [ -6.27339740, -0.00032214, 0.00019733, 7.27307526, 0.99901603, 0.99948053, 0.49326750],9645 [ -6.27339748, -0.00032210, 0.00019731, 7.27307537, 0.99901613, 0.99948059, 0.49326720],9646 [ -6.27339756, -0.00032207, 0.00019729, 7.27307549, 0.99901624, 0.99948064, 0.49326742],9647 [ -6.27339764, -0.00032204, 0.00019727, 7.27307560, 0.99901634, 0.99948069, 0.49326770],9648 [ -6.27339772, -0.00032200, 0.00019725, 7.27307571, 0.99901644, 0.99948075, 0.49326757],9649 [ -6.27339780, -0.00032197, 0.00019723, 7.27307583, 0.99901654, 0.99948080, 0.49326750],9650 [ -6.27339788, -0.00032194, 0.00019721, 7.27307594, 0.99901664, 0.99948086, 0.49326781],9651 [ -6.27339796, -0.00032190, 0.00019719, 7.27307605, 0.99901675, 0.99948091, 0.49326776],9652 [ -6.27339804, -0.00032187, 0.00019717, 7.27307617, 0.99901685, 0.99948096, 0.49326747],9653 [ -6.27339812, -0.00032184, 0.00019715, 7.27307628, 0.99901695, 0.99948102, 0.49326778],9654 [ -6.27339820, -0.00032180, 0.00019713, 7.27307639, 0.99901705, 0.99948107, 0.49326749],9655 [ -6.27339828, -0.00032177, 0.00019710, 7.27307651, 0.99901716, 0.99948113, 0.49326751],9656 [ -6.27339836, -0.00032174, 0.00019708, 7.27307662, 0.99901726, 0.99948118, 0.49326780],9657 [ -6.27339844, -0.00032170, 0.00019706, 7.27307674, 0.99901736, 0.99948123, 0.49326747],9658 [ -6.27339852, -0.00032167, 0.00019704, 7.27307685, 0.99901746, 0.99948129, 0.49326772],9659 [ -6.27339860, -0.00032164, 0.00019702, 7.27307696, 0.99901756, 0.99948134, 0.49326768],9660 [ -6.27339868, -0.00032160, 0.00019700, 7.27307708, 0.99901767, 0.99948139, 0.49326756],9661 [ -6.27339876, -0.00032157, 0.00019698, 7.27307719, 0.99901777, 0.99948145, 0.49326753],9662 [ -6.27339884, -0.00032154, 0.00019696, 7.27307730, 0.99901787, 0.99948150, 0.49326754],9663 [ -6.27339892, -0.00032150, 0.00019694, 7.27307742, 0.99901797, 0.99948156, 0.49326763],9664 [ -6.27339900, -0.00032147, 0.00019692, 7.27307753, 0.99901807, 0.99948161, 0.49326773],9665 [ -6.27339908, -0.00032144, 0.00019690, 7.27307764, 0.99901818, 0.99948166, 0.49326760],9666 [ -6.27339916, -0.00032140, 0.00019688, 7.27307776, 0.99901828, 0.99948172, 0.49326795],9667 [ -6.27339924, -0.00032137, 0.00019686, 7.27307787, 0.99901838, 0.99948177, 0.49326781],9668 [ -6.27339932, -0.00032134, 0.00019684, 7.27307798, 0.99901848, 0.99948183, 0.49326791],9669 [ -6.27339940, -0.00032130, 0.00019682, 7.27307810, 0.99901858, 0.99948188, 0.49326782],9670 [ -6.27339948, -0.00032127, 0.00019680, 7.27307821, 0.99901869, 0.99948193, 0.49326774],9671 [ -6.27339956, -0.00032124, 0.00019678, 7.27307832, 0.99901879, 0.99948199, 0.49326801],9672 [ -6.27339964, -0.00032120, 0.00019676, 7.27307843, 0.99901889, 0.99948204, 0.49326796],9673 [ -6.27339972, -0.00032117, 0.00019674, 7.27307855, 0.99901899, 0.99948209, 0.49326796],9674 [ -6.27339980, -0.00032114, 0.00019672, 7.27307866, 0.99901909, 0.99948215, 0.49326764],9675 [ -6.27339988, -0.00032110, 0.00019670, 7.27307877, 0.99901920, 0.99948220, 0.49326786],9676 [ -6.27339996, -0.00032107, 0.00019668, 7.27307889, 0.99901930, 0.99948226, 0.49326797],9677 [ -6.27340004, -0.00032104, 0.00019665, 7.27307900, 0.99901940, 0.99948231, 0.49326772],9678 [ -6.27340012, -0.00032100, 0.00019663, 7.27307911, 0.99901950, 0.99948236, 0.49326808],9679 [ -6.27340020, -0.00032097, 0.00019661, 7.27307923, 0.99901960, 0.99948242, 0.49326793],9680 [ -6.27340028, -0.00032094, 0.00019659, 7.27307934, 0.99901970, 0.99948247, 0.49326800],9681 [ -6.27340036, -0.00032090, 0.00019657, 7.27307945, 0.99901981, 0.99948252, 0.49326818],9682 [ -6.27340043, -0.00032087, 0.00019655, 7.27307956, 0.99901991, 0.99948258, 0.49326800],9683 [ -6.27340051, -0.00032084, 0.00019653, 7.27307968, 0.99902001, 0.99948263, 0.49326833],9684 [ -6.27340059, -0.00032080, 0.00019651, 7.27307979, 0.99902011, 0.99948268, 0.49326799],9685 [ -6.27340067, -0.00032077, 0.00019649, 7.27307990, 0.99902021, 0.99948274, 0.49326805],9686 [ -6.27340075, -0.00032074, 0.00019647, 7.27308002, 0.99902031, 0.99948279, 0.49326790],9687 [ -6.27340083, -0.00032070, 0.00019645, 7.27308013, 0.99902042, 0.99948285, 0.49326822],9688 [ -6.27340091, -0.00032067, 0.00019643, 7.27308024, 0.99902052, 0.99948290, 0.49326817],9689 [ -6.27340099, -0.00032064, 0.00019641, 7.27308035, 0.99902062, 0.99948295, 0.49326820],9690 [ -6.27340107, -0.00032060, 0.00019639, 7.27308047, 0.99902072, 0.99948301, 0.49326814],9691 [ -6.27340115, -0.00032057, 0.00019637, 7.27308058, 0.99902082, 0.99948306, 0.49326794],9692 [ -6.27340123, -0.00032054, 0.00019635, 7.27308069, 0.99902092, 0.99948311, 0.49326788],9693 [ -6.27340131, -0.00032050, 0.00019633, 7.27308081, 0.99902102, 0.99948317, 0.49326824],9694 [ -6.27340139, -0.00032047, 0.00019631, 7.27308092, 0.99902113, 0.99948322, 0.49326821],9695 [ -6.27340147, -0.00032044, 0.00019629, 7.27308103, 0.99902123, 0.99948327, 0.49326804],9696 [ -6.27340155, -0.00032040, 0.00019627, 7.27308114, 0.99902133, 0.99948333, 0.49326826],9697 [ -6.27340163, -0.00032037, 0.00019625, 7.27308126, 0.99902143, 0.99948338, 0.49326837],9698 [ -6.27340171, -0.00032034, 0.00019623, 7.27308137, 0.99902153, 0.99948343, 0.49326808],9699 [ -6.27340179, -0.00032031, 0.00019621, 7.27308148, 0.99902163, 0.99948349, 0.49326814],9700 [ -6.27340187, -0.00032027, 0.00019619, 7.27308159, 0.99902173, 0.99948354, 0.49326823],9701 [ -6.27340194, -0.00032024, 0.00019617, 7.27308171, 0.99902183, 0.99948359, 0.49326820],9702 [ -6.27340202, -0.00032021, 0.00019615, 7.27308182, 0.99902194, 0.99948365, 0.49326819],9703 [ -6.27340210, -0.00032017, 0.00019613, 7.27308193, 0.99902204, 0.99948370, 0.49326828],9704 [ -6.27340218, -0.00032014, 0.00019611, 7.27308204, 0.99902214, 0.99948376, 0.49326815],9705 [ -6.27340226, -0.00032011, 0.00019608, 7.27308216, 0.99902224, 0.99948381, 0.49326833],9706 [ -6.27340234, -0.00032007, 0.00019606, 7.27308227, 0.99902234, 0.99948386, 0.49326820],9707 [ -6.27340242, -0.00032004, 0.00019604, 7.27308238, 0.99902244, 0.99948392, 0.49326839],9708 [ -6.27340250, -0.00032001, 0.00019602, 7.27308249, 0.99902254, 0.99948397, 0.49326825],9709 [ -6.27340258, -0.00031997, 0.00019600, 7.27308261, 0.99902264, 0.99948402, 0.49326820],9710 [ -6.27340266, -0.00031994, 0.00019598, 7.27308272, 0.99902274, 0.99948408, 0.49326829],9711 [ -6.27340274, -0.00031991, 0.00019596, 7.27308283, 0.99902285, 0.99948413, 0.49326838],9712 [ -6.27340282, -0.00031987, 0.00019594, 7.27308294, 0.99902295, 0.99948418, 0.49326829],9713 [ -6.27340290, -0.00031984, 0.00019592, 7.27308305, 0.99902305, 0.99948424, 0.49326812],9714 [ -6.27340297, -0.00031981, 0.00019590, 7.27308317, 0.99902315, 0.99948429, 0.49326825],9715 [ -6.27340305, -0.00031978, 0.00019588, 7.27308328, 0.99902325, 0.99948434, 0.49326844],9716 [ -6.27340313, -0.00031974, 0.00019586, 7.27308339, 0.99902335, 0.99948440, 0.49326822],9717 [ -6.27340321, -0.00031971, 0.00019584, 7.27308350, 0.99902345, 0.99948445, 0.49326848],9718 [ -6.27340329, -0.00031968, 0.00019582, 7.27308361, 0.99902355, 0.99948450, 0.49326823],9719 [ -6.27340337, -0.00031964, 0.00019580, 7.27308373, 0.99902365, 0.99948455, 0.49326831],9720 [ -6.27340345, -0.00031961, 0.00019578, 7.27308384, 0.99902375, 0.99948461, 0.49326842],9721 [ -6.27340353, -0.00031958, 0.00019576, 7.27308395, 0.99902385, 0.99948466, 0.49326833],9722 [ -6.27340361, -0.00031954, 0.00019574, 7.27308406, 0.99902396, 0.99948471, 0.49326844],9723 [ -6.27340369, -0.00031951, 0.00019572, 7.27308417, 0.99902406, 0.99948477, 0.49326841],9724 [ -6.27340377, -0.00031948, 0.00019570, 7.27308429, 0.99902416, 0.99948482, 0.49326813],9725 [ -6.27340384, -0.00031945, 0.00019568, 7.27308440, 0.99902426, 0.99948487, 0.49326861],9726 [ -6.27340392, -0.00031941, 0.00019566, 7.27308451, 0.99902436, 0.99948493, 0.49326836],9727 [ -6.27340400, -0.00031938, 0.00019564, 7.27308462, 0.99902446, 0.99948498, 0.49326869],9728 [ -6.27340408, -0.00031935, 0.00019562, 7.27308473, 0.99902456, 0.99948503, 0.49326883],9729 [ -6.27340416, -0.00031931, 0.00019560, 7.27308485, 0.99902466, 0.99948509, 0.49326857],9730 [ -6.27340424, -0.00031928, 0.00019558, 7.27308496, 0.99902476, 0.99948514, 0.49326861],9731 [ -6.27340432, -0.00031925, 0.00019556, 7.27308507, 0.99902486, 0.99948519, 0.49326841],9732 [ -6.27340440, -0.00031922, 0.00019554, 7.27308518, 0.99902496, 0.99948525, 0.49326856],9733 [ -6.27340448, -0.00031918, 0.00019552, 7.27308529, 0.99902506, 0.99948530, 0.49326867],9734 [ -6.27340455, -0.00031915, 0.00019550, 7.27308540, 0.99902516, 0.99948535, 0.49326859],9735 [ -6.27340463, -0.00031912, 0.00019548, 7.27308552, 0.99902526, 0.99948541, 0.49326854],9736 [ -6.27340471, -0.00031908, 0.00019546, 7.27308563, 0.99902536, 0.99948546, 0.49326869],9737 [ -6.27340479, -0.00031905, 0.00019544, 7.27308574, 0.99902546, 0.99948551, 0.49326853],9738 [ -6.27340487, -0.00031902, 0.00019542, 7.27308585, 0.99902557, 0.99948556, 0.49326880],9739 [ -6.27340495, -0.00031899, 0.00019540, 7.27308596, 0.99902567, 0.99948562, 0.49326872],9740 [ -6.27340503, -0.00031895, 0.00019538, 7.27308607, 0.99902577, 0.99948567, 0.49326861],9741 [ -6.27340511, -0.00031892, 0.00019536, 7.27308619, 0.99902587, 0.99948572, 0.49326878],9742 [ -6.27340518, -0.00031889, 0.00019534, 7.27308630, 0.99902597, 0.99948578, 0.49326876],9743 [ -6.27340526, -0.00031885, 0.00019532, 7.27308641, 0.99902607, 0.99948583, 0.49326873],9744 [ -6.27340534, -0.00031882, 0.00019530, 7.27308652, 0.99902617, 0.99948588, 0.49326869],9745 [ -6.27340542, -0.00031879, 0.00019528, 7.27308663, 0.99902627, 0.99948594, 0.49326868],9746 [ -6.27340550, -0.00031876, 0.00019526, 7.27308674, 0.99902637, 0.99948599, 0.49326886],9747 [ -6.27340558, -0.00031872, 0.00019524, 7.27308685, 0.99902647, 0.99948604, 0.49326868],9748 [ -6.27340566, -0.00031869, 0.00019522, 7.27308697, 0.99902657, 0.99948609, 0.49326883],9749 [ -6.27340573, -0.00031866, 0.00019520, 7.27308708, 0.99902667, 0.99948615, 0.49326876],9750 [ -6.27340581, -0.00031862, 0.00019518, 7.27308719, 0.99902677, 0.99948620, 0.49326874],9751 [ -6.27340589, -0.00031859, 0.00019516, 7.27308730, 0.99902687, 0.99948625, 0.49326882],9752 [ -6.27340597, -0.00031856, 0.00019514, 7.27308741, 0.99902697, 0.99948631, 0.49326866],9753 [ -6.27340605, -0.00031853, 0.00019512, 7.27308752, 0.99902707, 0.99948636, 0.49326860],9754 [ -6.27340613, -0.00031849, 0.00019510, 7.27308763, 0.99902717, 0.99948641, 0.49326865],9755 [ -6.27340621, -0.00031846, 0.00019508, 7.27308775, 0.99902727, 0.99948646, 0.49326872],9756 [ -6.27340628, -0.00031843, 0.00019506, 7.27308786, 0.99902737, 0.99948652, 0.49326863],9757 [ -6.27340636, -0.00031839, 0.00019504, 7.27308797, 0.99902747, 0.99948657, 0.49326869],9758 [ -6.27340644, -0.00031836, 0.00019502, 7.27308808, 0.99902757, 0.99948662, 0.49326888],9759 [ -6.27340652, -0.00031833, 0.00019500, 7.27308819, 0.99902767, 0.99948668, 0.49326895],9760 [ -6.27340660, -0.00031830, 0.00019498, 7.27308830, 0.99902777, 0.99948673, 0.49326876],9761 [ -6.27340668, -0.00031826, 0.00019496, 7.27308841, 0.99902787, 0.99948678, 0.49326889],9762 [ -6.27340675, -0.00031823, 0.00019494, 7.27308852, 0.99902797, 0.99948683, 0.49326878],9763 [ -6.27340683, -0.00031820, 0.00019492, 7.27308863, 0.99902807, 0.99948689, 0.49326887],9764 [ -6.27340691, -0.00031817, 0.00019490, 7.27308875, 0.99902817, 0.99948694, 0.49326916],9765 [ -6.27340699, -0.00031813, 0.00019488, 7.27308886, 0.99902827, 0.99948699, 0.49326908],9766 [ -6.27340707, -0.00031810, 0.00019486, 7.27308897, 0.99902837, 0.99948704, 0.49326893],9767 [ -6.27340715, -0.00031807, 0.00019484, 7.27308908, 0.99902847, 0.99948710, 0.49326890],9768 [ -6.27340722, -0.00031803, 0.00019482, 7.27308919, 0.99902857, 0.99948715, 0.49326887],9769 [ -6.27340730, -0.00031800, 0.00019480, 7.27308930, 0.99902867, 0.99948720, 0.49326878],9770 [ -6.27340738, -0.00031797, 0.00019478, 7.27308941, 0.99902877, 0.99948726, 0.49326894],9771 [ -6.27340746, -0.00031794, 0.00019476, 7.27308952, 0.99902887, 0.99948731, 0.49326894],9772 [ -6.27340754, -0.00031790, 0.00019474, 7.27308963, 0.99902897, 0.99948736, 0.49326908],9773 [ -6.27340761, -0.00031787, 0.00019472, 7.27308974, 0.99902907, 0.99948741, 0.49326876],9774 [ -6.27340769, -0.00031784, 0.00019470, 7.27308985, 0.99902917, 0.99948747, 0.49326912],9775 [ -6.27340777, -0.00031781, 0.00019468, 7.27308996, 0.99902927, 0.99948752, 0.49326904],9776 [ -6.27340785, -0.00031777, 0.00019466, 7.27309008, 0.99902937, 0.99948757, 0.49326901],9777 [ -6.27340793, -0.00031774, 0.00019464, 7.27309019, 0.99902947, 0.99948762, 0.49326930],9778 [ -6.27340801, -0.00031771, 0.00019462, 7.27309030, 0.99902957, 0.99948768, 0.49326907],9779 [ -6.27340808, -0.00031768, 0.00019460, 7.27309041, 0.99902967, 0.99948773, 0.49326924],9780 [ -6.27340816, -0.00031764, 0.00019458, 7.27309052, 0.99902977, 0.99948778, 0.49326904],9781 [ -6.27340824, -0.00031761, 0.00019456, 7.27309063, 0.99902987, 0.99948783, 0.49326893],9782 [ -6.27340832, -0.00031758, 0.00019454, 7.27309074, 0.99902997, 0.99948789, 0.49326909],9783 [ -6.27340840, -0.00031755, 0.00019452, 7.27309085, 0.99903006, 0.99948794, 0.49326930],9784 [ -6.27340847, -0.00031751, 0.00019450, 7.27309096, 0.99903016, 0.99948799, 0.49326922],9785 [ -6.27340855, -0.00031748, 0.00019448, 7.27309107, 0.99903026, 0.99948804, 0.49326913],9786 [ -6.27340863, -0.00031745, 0.00019446, 7.27309118, 0.99903036, 0.99948810, 0.49326905],9787 [ -6.27340871, -0.00031742, 0.00019444, 7.27309129, 0.99903046, 0.99948815, 0.49326923],9788 [ -6.27340879, -0.00031738, 0.00019442, 7.27309140, 0.99903056, 0.99948820, 0.49326938],9789 [ -6.27340886, -0.00031735, 0.00019440, 7.27309151, 0.99903066, 0.99948825, 0.49326909],9790 [ -6.27340894, -0.00031732, 0.00019438, 7.27309162, 0.99903076, 0.99948831, 0.49326912],9791 [ -6.27340902, -0.00031728, 0.00019436, 7.27309173, 0.99903086, 0.99948836, 0.49326920],9792 [ -6.27340910, -0.00031725, 0.00019434, 7.27309184, 0.99903096, 0.99948841, 0.49326917],9793 [ -6.27340917, -0.00031722, 0.00019432, 7.27309196, 0.99903106, 0.99948846, 0.49326921],9794 [ -6.27340925, -0.00031719, 0.00019430, 7.27309207, 0.99903116, 0.99948852, 0.49326919],9795 [ -6.27340933, -0.00031715, 0.00019428, 7.27309218, 0.99903126, 0.99948857, 0.49326928],9796 [ -6.27340941, -0.00031712, 0.00019426, 7.27309229, 0.99903136, 0.99948862, 0.49326918],9797 [ -6.27340949, -0.00031709, 0.00019424, 7.27309240, 0.99903146, 0.99948867, 0.49326958],9798 [ -6.27340956, -0.00031706, 0.00019422, 7.27309251, 0.99903156, 0.99948873, 0.49326936],9799 [ -6.27340964, -0.00031702, 0.00019420, 7.27309262, 0.99903165, 0.99948878, 0.49326927],9800 [ -6.27340972, -0.00031699, 0.00019418, 7.27309273, 0.99903175, 0.99948883, 0.49326942],9801 [ -6.27340980, -0.00031696, 0.00019416, 7.27309284, 0.99903185, 0.99948888, 0.49326912],9802 [ -6.27340987, -0.00031693, 0.00019414, 7.27309295, 0.99903195, 0.99948894, 0.49326924],9803 [ -6.27340995, -0.00031690, 0.00019412, 7.27309306, 0.99903205, 0.99948899, 0.49326951],9804 [ -6.27341003, -0.00031686, 0.00019410, 7.27309317, 0.99903215, 0.99948904, 0.49326942],9805 [ -6.27341011, -0.00031683, 0.00019408, 7.27309328, 0.99903225, 0.99948909, 0.49326925],9806 [ -6.27341019, -0.00031680, 0.00019406, 7.27309339, 0.99903235, 0.99948914, 0.49326927],9807 [ -6.27341026, -0.00031677, 0.00019404, 7.27309350, 0.99903245, 0.99948920, 0.49326936],9808 [ -6.27341034, -0.00031673, 0.00019402, 7.27309361, 0.99903255, 0.99948925, 0.49326944],9809 [ -6.27341042, -0.00031670, 0.00019400, 7.27309372, 0.99903265, 0.99948930, 0.49326949],9810 [ -6.27341050, -0.00031667, 0.00019398, 7.27309383, 0.99903274, 0.99948935, 0.49326915],9811 [ -6.27341057, -0.00031664, 0.00019396, 7.27309394, 0.99903284, 0.99948941, 0.49326929],9812 [ -6.27341065, -0.00031660, 0.00019394, 7.27309405, 0.99903294, 0.99948946, 0.49326955],9813 [ -6.27341073, -0.00031657, 0.00019392, 7.27309416, 0.99903304, 0.99948951, 0.49326921],9814 [ -6.27341081, -0.00031654, 0.00019390, 7.27309427, 0.99903314, 0.99948956, 0.49326941],9815 [ -6.27341088, -0.00031651, 0.00019388, 7.27309438, 0.99903324, 0.99948961, 0.49326954],9816 [ -6.27341096, -0.00031647, 0.00019386, 7.27309449, 0.99903334, 0.99948967, 0.49326935],9817 [ -6.27341104, -0.00031644, 0.00019384, 7.27309460, 0.99903344, 0.99948972, 0.49326969],9818 [ -6.27341112, -0.00031641, 0.00019382, 7.27309471, 0.99903354, 0.99948977, 0.49326971],9819 [ -6.27341119, -0.00031638, 0.00019380, 7.27309482, 0.99903363, 0.99948982, 0.49326945],9820 [ -6.27341127, -0.00031634, 0.00019378, 7.27309493, 0.99903373, 0.99948988, 0.49326964],9821 [ -6.27341135, -0.00031631, 0.00019376, 7.27309504, 0.99903383, 0.99948993, 0.49326955],9822 [ -6.27341143, -0.00031628, 0.00019374, 7.27309515, 0.99903393, 0.99948998, 0.49326931],9823 [ -6.27341150, -0.00031625, 0.00019372, 7.27309526, 0.99903403, 0.99949003, 0.49326939],9824 [ -6.27341158, -0.00031622, 0.00019370, 7.27309537, 0.99903413, 0.99949008, 0.49326953],9825 [ -6.27341166, -0.00031618, 0.00019368, 7.27309547, 0.99903423, 0.99949014, 0.49326974],9826 [ -6.27341173, -0.00031615, 0.00019366, 7.27309558, 0.99903433, 0.99949019, 0.49326980],9827 [ -6.27341181, -0.00031612, 0.00019364, 7.27309569, 0.99903442, 0.99949024, 0.49326965],9828 [ -6.27341189, -0.00031609, 0.00019362, 7.27309580, 0.99903452, 0.99949029, 0.49326969],9829 [ -6.27341197, -0.00031605, 0.00019360, 7.27309591, 0.99903462, 0.99949034, 0.49326954],9830 [ -6.27341204, -0.00031602, 0.00019358, 7.27309602, 0.99903472, 0.99949040, 0.49326953],9831 [ -6.27341212, -0.00031599, 0.00019356, 7.27309613, 0.99903482, 0.99949045, 0.49326986],9832 [ -6.27341220, -0.00031596, 0.00019354, 7.27309624, 0.99903492, 0.99949050, 0.49326990],9833 [ -6.27341228, -0.00031592, 0.00019352, 7.27309635, 0.99903502, 0.99949055, 0.49326950],9834 [ -6.27341235, -0.00031589, 0.00019350, 7.27309646, 0.99903511, 0.99949060, 0.49326968],9835 [ -6.27341243, -0.00031586, 0.00019348, 7.27309657, 0.99903521, 0.99949066, 0.49326946],9836 [ -6.27341251, -0.00031583, 0.00019346, 7.27309668, 0.99903531, 0.99949071, 0.49326958],9837 [ -6.27341258, -0.00031580, 0.00019344, 7.27309679, 0.99903541, 0.99949076, 0.49326990],9838 [ -6.27341266, -0.00031576, 0.00019342, 7.27309690, 0.99903551, 0.99949081, 0.49326972],9839 [ -6.27341274, -0.00031573, 0.00019340, 7.27309701, 0.99903561, 0.99949086, 0.49326980],9840 [ -6.27341282, -0.00031570, 0.00019338, 7.27309712, 0.99903570, 0.99949092, 0.49327001],9841 [ -6.27341289, -0.00031567, 0.00019336, 7.27309723, 0.99903580, 0.99949097, 0.49326985],9842 [ -6.27341297, -0.00031563, 0.00019334, 7.27309734, 0.99903590, 0.99949102, 0.49326983],9843 [ -6.27341305, -0.00031560, 0.00019333, 7.27309744, 0.99903600, 0.99949107, 0.49326985],9844 [ -6.27341312, -0.00031557, 0.00019331, 7.27309755, 0.99903610, 0.99949112, 0.49327005],9845 [ -6.27341320, -0.00031554, 0.00019329, 7.27309766, 0.99903620, 0.99949118, 0.49326985],9846 [ -6.27341328, -0.00031551, 0.00019327, 7.27309777, 0.99903629, 0.99949123, 0.49326980],9847 [ -6.27341336, -0.00031547, 0.00019325, 7.27309788, 0.99903639, 0.99949128, 0.49326990],9848 [ -6.27341343, -0.00031544, 0.00019323, 7.27309799, 0.99903649, 0.99949133, 0.49326985],9849 [ -6.27341351, -0.00031541, 0.00019321, 7.27309810, 0.99903659, 0.99949138, 0.49326999],9850 [ -6.27341359, -0.00031538, 0.00019319, 7.27309821, 0.99903669, 0.99949144, 0.49326989],9851 [ -6.27341366, -0.00031535, 0.00019317, 7.27309832, 0.99903679, 0.99949149, 0.49326987],9852 [ -6.27341374, -0.00031531, 0.00019315, 7.27309843, 0.99903688, 0.99949154, 0.49327012],9853 [ -6.27341382, -0.00031528, 0.00019313, 7.27309854, 0.99903698, 0.99949159, 0.49326994],9854 [ -6.27341389, -0.00031525, 0.00019311, 7.27309864, 0.99903708, 0.99949164, 0.49327001],9855 [ -6.27341397, -0.00031522, 0.00019309, 7.27309875, 0.99903718, 0.99949169, 0.49327008],9856 [ -6.27341405, -0.00031519, 0.00019307, 7.27309886, 0.99903728, 0.99949175, 0.49327008],9857 [ -6.27341412, -0.00031515, 0.00019305, 7.27309897, 0.99903737, 0.99949180, 0.49326970],9858 [ -6.27341420, -0.00031512, 0.00019303, 7.27309908, 0.99903747, 0.99949185, 0.49326989],9859 [ -6.27341428, -0.00031509, 0.00019301, 7.27309919, 0.99903757, 0.99949190, 0.49326992],9860 [ -6.27341435, -0.00031506, 0.00019299, 7.27309930, 0.99903767, 0.99949195, 0.49327000],9861 [ -6.27341443, -0.00031502, 0.00019297, 7.27309941, 0.99903777, 0.99949200, 0.49327006],9862 [ -6.27341451, -0.00031499, 0.00019295, 7.27309952, 0.99903786, 0.99949206, 0.49327023],9863 [ -6.27341459, -0.00031496, 0.00019293, 7.27309962, 0.99903796, 0.99949211, 0.49327002],9864 [ -6.27341466, -0.00031493, 0.00019291, 7.27309973, 0.99903806, 0.99949216, 0.49327004],9865 [ -6.27341474, -0.00031490, 0.00019289, 7.27309984, 0.99903816, 0.99949221, 0.49327010],9866 [ -6.27341482, -0.00031486, 0.00019287, 7.27309995, 0.99903826, 0.99949226, 0.49327000],9867 [ -6.27341489, -0.00031483, 0.00019285, 7.27310006, 0.99903835, 0.99949231, 0.49326994],9868 [ -6.27341497, -0.00031480, 0.00019283, 7.27310017, 0.99903845, 0.99949237, 0.49327008],9869 [ -6.27341505, -0.00031477, 0.00019281, 7.27310028, 0.99903855, 0.99949242, 0.49327002],9870 [ -6.27341512, -0.00031474, 0.00019279, 7.27310039, 0.99903865, 0.99949247, 0.49327015],9871 [ -6.27341520, -0.00031470, 0.00019277, 7.27310049, 0.99903874, 0.99949252, 0.49326998],9872 [ -6.27341528, -0.00031467, 0.00019275, 7.27310060, 0.99903884, 0.99949257, 0.49327030],9873 [ -6.27341535, -0.00031464, 0.00019274, 7.27310071, 0.99903894, 0.99949262, 0.49326995],9874 [ -6.27341543, -0.00031461, 0.00019272, 7.27310082, 0.99903904, 0.99949268, 0.49327013],9875 [ -6.27341550, -0.00031458, 0.00019270, 7.27310093, 0.99903914, 0.99949273, 0.49327030],9876 [ -6.27341558, -0.00031454, 0.00019268, 7.27310104, 0.99903923, 0.99949278, 0.49327016],9877 [ -6.27341566, -0.00031451, 0.00019266, 7.27310115, 0.99903933, 0.99949283, 0.49327003],9878 [ -6.27341573, -0.00031448, 0.00019264, 7.27310125, 0.99903943, 0.99949288, 0.49327020],9879 [ -6.27341581, -0.00031445, 0.00019262, 7.27310136, 0.99903953, 0.99949293, 0.49327016],9880 [ -6.27341589, -0.00031442, 0.00019260, 7.27310147, 0.99903962, 0.99949298, 0.49327038],9881 [ -6.27341596, -0.00031438, 0.00019258, 7.27310158, 0.99903972, 0.99949304, 0.49327020],9882 [ -6.27341604, -0.00031435, 0.00019256, 7.27310169, 0.99903982, 0.99949309, 0.49326989],9883 [ -6.27341612, -0.00031432, 0.00019254, 7.27310180, 0.99903992, 0.99949314, 0.49327033],9884 [ -6.27341619, -0.00031429, 0.00019252, 7.27310190, 0.99904001, 0.99949319, 0.49327021],9885 [ -6.27341627, -0.00031426, 0.00019250, 7.27310201, 0.99904011, 0.99949324, 0.49327047],9886 [ -6.27341635, -0.00031423, 0.00019248, 7.27310212, 0.99904021, 0.99949329, 0.49327024],9887 [ -6.27341642, -0.00031419, 0.00019246, 7.27310223, 0.99904031, 0.99949335, 0.49327034],9888 [ -6.27341650, -0.00031416, 0.00019244, 7.27310234, 0.99904040, 0.99949340, 0.49327024],9889 [ -6.27341658, -0.00031413, 0.00019242, 7.27310245, 0.99904050, 0.99949345, 0.49327049],9890 [ -6.27341665, -0.00031410, 0.00019240, 7.27310255, 0.99904060, 0.99949350, 0.49327029],9891 [ -6.27341673, -0.00031407, 0.00019238, 7.27310266, 0.99904070, 0.99949355, 0.49327027],9892 [ -6.27341680, -0.00031403, 0.00019236, 7.27310277, 0.99904079, 0.99949360, 0.49327052],9893 [ -6.27341688, -0.00031400, 0.00019234, 7.27310288, 0.99904089, 0.99949365, 0.49327062],9894 [ -6.27341696, -0.00031397, 0.00019232, 7.27310299, 0.99904099, 0.99949370, 0.49327051],9895 [ -6.27341703, -0.00031394, 0.00019231, 7.27310309, 0.99904108, 0.99949376, 0.49327035],9896 [ -6.27341711, -0.00031391, 0.00019229, 7.27310320, 0.99904118, 0.99949381, 0.49327029],9897 [ -6.27341719, -0.00031387, 0.00019227, 7.27310331, 0.99904128, 0.99949386, 0.49327040],9898 [ -6.27341726, -0.00031384, 0.00019225, 7.27310342, 0.99904138, 0.99949391, 0.49327054],9899 [ -6.27341734, -0.00031381, 0.00019223, 7.27310353, 0.99904147, 0.99949396, 0.49327057],9900 [ -6.27341741, -0.00031378, 0.00019221, 7.27310363, 0.99904157, 0.99949401, 0.49327065],9901 [ -6.27341749, -0.00031375, 0.00019219, 7.27310374, 0.99904167, 0.99949406, 0.49327055],9902 [ -6.27341757, -0.00031372, 0.00019217, 7.27310385, 0.99904177, 0.99949412, 0.49327044],9903 [ -6.27341764, -0.00031368, 0.00019215, 7.27310396, 0.99904186, 0.99949417, 0.49327060],9904 [ -6.27341772, -0.00031365, 0.00019213, 7.27310407, 0.99904196, 0.99949422, 0.49327062],9905 [ -6.27341779, -0.00031362, 0.00019211, 7.27310417, 0.99904206, 0.99949427, 0.49327057],9906 [ -6.27341787, -0.00031359, 0.00019209, 7.27310428, 0.99904215, 0.99949432, 0.49327068],9907 [ -6.27341795, -0.00031356, 0.00019207, 7.27310439, 0.99904225, 0.99949437, 0.49327087],9908 [ -6.27341802, -0.00031353, 0.00019205, 7.27310450, 0.99904235, 0.99949442, 0.49327065],9909 [ -6.27341810, -0.00031349, 0.00019203, 7.27310461, 0.99904244, 0.99949447, 0.49327040],9910 [ -6.27341817, -0.00031346, 0.00019201, 7.27310471, 0.99904254, 0.99949453, 0.49327056],9911 [ -6.27341825, -0.00031343, 0.00019199, 7.27310482, 0.99904264, 0.99949458, 0.49327057],9912 [ -6.27341833, -0.00031340, 0.00019197, 7.27310493, 0.99904274, 0.99949463, 0.49327059],9913 [ -6.27341840, -0.00031337, 0.00019195, 7.27310504, 0.99904283, 0.99949468, 0.49327075],9914 [ -6.27341848, -0.00031333, 0.00019194, 7.27310514, 0.99904293, 0.99949473, 0.49327058],9915 [ -6.27341855, -0.00031330, 0.00019192, 7.27310525, 0.99904303, 0.99949478, 0.49327073],9916 [ -6.27341863, -0.00031327, 0.00019190, 7.27310536, 0.99904312, 0.99949483, 0.49327054],9917 [ -6.27341871, -0.00031324, 0.00019188, 7.27310547, 0.99904322, 0.99949488, 0.49327048],9918 [ -6.27341878, -0.00031321, 0.00019186, 7.27310557, 0.99904332, 0.99949493, 0.49327086],9919 [ -6.27341886, -0.00031318, 0.00019184, 7.27310568, 0.99904341, 0.99949499, 0.49327056],9920 [ -6.27341893, -0.00031314, 0.00019182, 7.27310579, 0.99904351, 0.99949504, 0.49327071],9921 [ -6.27341901, -0.00031311, 0.00019180, 7.27310590, 0.99904361, 0.99949509, 0.49327045],9922 [ -6.27341909, -0.00031308, 0.00019178, 7.27310600, 0.99904370, 0.99949514, 0.49327067],9923 [ -6.27341916, -0.00031305, 0.00019176, 7.27310611, 0.99904380, 0.99949519, 0.49327067],9924 [ -6.27341924, -0.00031302, 0.00019174, 7.27310622, 0.99904390, 0.99949524, 0.49327074],9925 [ -6.27341931, -0.00031299, 0.00019172, 7.27310633, 0.99904399, 0.99949529, 0.49327107],9926 [ -6.27341939, -0.00031295, 0.00019170, 7.27310643, 0.99904409, 0.99949534, 0.49327064],9927 [ -6.27341946, -0.00031292, 0.00019168, 7.27310654, 0.99904419, 0.99949539, 0.49327063],9928 [ -6.27341954, -0.00031289, 0.00019166, 7.27310665, 0.99904428, 0.99949545, 0.49327050],9929 [ -6.27341962, -0.00031286, 0.00019164, 7.27310676, 0.99904438, 0.99949550, 0.49327069],9930 [ -6.27341969, -0.00031283, 0.00019162, 7.27310686, 0.99904448, 0.99949555, 0.49327081],9931 [ -6.27341977, -0.00031280, 0.00019161, 7.27310697, 0.99904457, 0.99949560, 0.49327077],9932 [ -6.27341984, -0.00031276, 0.00019159, 7.27310708, 0.99904467, 0.99949565, 0.49327081],9933 [ -6.27341992, -0.00031273, 0.00019157, 7.27310719, 0.99904477, 0.99949570, 0.49327088],9934 [ -6.27341999, -0.00031270, 0.00019155, 7.27310729, 0.99904486, 0.99949575, 0.49327082],9935 [ -6.27342007, -0.00031267, 0.00019153, 7.27310740, 0.99904496, 0.99949580, 0.49327067],9936 [ -6.27342015, -0.00031264, 0.00019151, 7.27310751, 0.99904506, 0.99949585, 0.49327061],9937 [ -6.27342022, -0.00031261, 0.00019149, 7.27310761, 0.99904515, 0.99949590, 0.49327079],9938 [ -6.27342030, -0.00031258, 0.00019147, 7.27310772, 0.99904525, 0.99949595, 0.49327103],9939 [ -6.27342037, -0.00031254, 0.00019145, 7.27310783, 0.99904535, 0.99949601, 0.49327107],9940 [ -6.27342045, -0.00031251, 0.00019143, 7.27310794, 0.99904544, 0.99949606, 0.49327084],9941 [ -6.27342052, -0.00031248, 0.00019141, 7.27310804, 0.99904554, 0.99949611, 0.49327096],9942 [ -6.27342060, -0.00031245, 0.00019139, 7.27310815, 0.99904563, 0.99949616, 0.49327062],9943 [ -6.27342067, -0.00031242, 0.00019137, 7.27310826, 0.99904573, 0.99949621, 0.49327088],9944 [ -6.27342075, -0.00031239, 0.00019135, 7.27310836, 0.99904583, 0.99949626, 0.49327094],9945 [ -6.27342083, -0.00031235, 0.00019133, 7.27310847, 0.99904592, 0.99949631, 0.49327095],9946 [ -6.27342090, -0.00031232, 0.00019132, 7.27310858, 0.99904602, 0.99949636, 0.49327111],9947 [ -6.27342098, -0.00031229, 0.00019130, 7.27310869, 0.99904612, 0.99949641, 0.49327066],9948 [ -6.27342105, -0.00031226, 0.00019128, 7.27310879, 0.99904621, 0.99949646, 0.49327112],9949 [ -6.27342113, -0.00031223, 0.00019126, 7.27310890, 0.99904631, 0.99949651, 0.49327094],9950 [ -6.27342120, -0.00031220, 0.00019124, 7.27310901, 0.99904641, 0.99949656, 0.49327097],9951 [ -6.27342128, -0.00031217, 0.00019122, 7.27310911, 0.99904650, 0.99949662, 0.49327094],9952 [ -6.27342135, -0.00031213, 0.00019120, 7.27310922, 0.99904660, 0.99949667, 0.49327120],9953 [ -6.27342143, -0.00031210, 0.00019118, 7.27310933, 0.99904669, 0.99949672, 0.49327123],9954 [ -6.27342150, -0.00031207, 0.00019116, 7.27310943, 0.99904679, 0.99949677, 0.49327124],9955 [ -6.27342158, -0.00031204, 0.00019114, 7.27310954, 0.99904689, 0.99949682, 0.49327089],9956 [ -6.27342166, -0.00031201, 0.00019112, 7.27310965, 0.99904698, 0.99949687, 0.49327096],9957 [ -6.27342173, -0.00031198, 0.00019110, 7.27310975, 0.99904708, 0.99949692, 0.49327093],9958 [ -6.27342181, -0.00031195, 0.00019108, 7.27310986, 0.99904717, 0.99949697, 0.49327128],9959 [ -6.27342188, -0.00031191, 0.00019106, 7.27310997, 0.99904727, 0.99949702, 0.49327122],9960 [ -6.27342196, -0.00031188, 0.00019105, 7.27311007, 0.99904737, 0.99949707, 0.49327128],9961 [ -6.27342203, -0.00031185, 0.00019103, 7.27311018, 0.99904746, 0.99949712, 0.49327113],9962 [ -6.27342211, -0.00031182, 0.00019101, 7.27311029, 0.99904756, 0.99949717, 0.49327121],9963 [ -6.27342218, -0.00031179, 0.00019099, 7.27311039, 0.99904765, 0.99949722, 0.49327115],9964 [ -6.27342226, -0.00031176, 0.00019097, 7.27311050, 0.99904775, 0.99949727, 0.49327114],9965 [ -6.27342233, -0.00031173, 0.00019095, 7.27311061, 0.99904785, 0.99949733, 0.49327102],9966 [ -6.27342241, -0.00031169, 0.00019093, 7.27311071, 0.99904794, 0.99949738, 0.49327120],9967 [ -6.27342248, -0.00031166, 0.00019091, 7.27311082, 0.99904804, 0.99949743, 0.49327130],9968 [ -6.27342256, -0.00031163, 0.00019089, 7.27311093, 0.99904813, 0.99949748, 0.49327109],9969 [ -6.27342263, -0.00031160, 0.00019087, 7.27311103, 0.99904823, 0.99949753, 0.49327132],9970 [ -6.27342271, -0.00031157, 0.00019085, 7.27311114, 0.99904833, 0.99949758, 0.49327146],9971 [ -6.27342278, -0.00031154, 0.00019083, 7.27311125, 0.99904842, 0.99949763, 0.49327090],9972 [ -6.27342286, -0.00031151, 0.00019081, 7.27311135, 0.99904852, 0.99949768, 0.49327123],9973 [ -6.27342293, -0.00031147, 0.00019080, 7.27311146, 0.99904861, 0.99949773, 0.49327134],9974 [ -6.27342301, -0.00031144, 0.00019078, 7.27311156, 0.99904871, 0.99949778, 0.49327133],9975 [ -6.27342308, -0.00031141, 0.00019076, 7.27311167, 0.99904880, 0.99949783, 0.49327117],9976 [ -6.27342316, -0.00031138, 0.00019074, 7.27311178, 0.99904890, 0.99949788, 0.49327124],9977 [ -6.27342323, -0.00031135, 0.00019072, 7.27311188, 0.99904900, 0.99949793, 0.49327116],9978 [ -6.27342331, -0.00031132, 0.00019070, 7.27311199, 0.99904909, 0.99949798, 0.49327125],9979 [ -6.27342338, -0.00031129, 0.00019068, 7.27311210, 0.99904919, 0.99949803, 0.49327132],9980 [ -6.27342346, -0.00031126, 0.00019066, 7.27311220, 0.99904928, 0.99949808, 0.49327161],9981 [ -6.27342353, -0.00031122, 0.00019064, 7.27311231, 0.99904938, 0.99949813, 0.49327137],9982 [ -6.27342361, -0.00031119, 0.00019062, 7.27311242, 0.99904947, 0.99949818, 0.49327141],9983 [ -6.27342368, -0.00031116, 0.00019060, 7.27311252, 0.99904957, 0.99949824, 0.49327151],9984 [ -6.27342376, -0.00031113, 0.00019058, 7.27311263, 0.99904966, 0.99949829, 0.49327147],9985 [ -6.27342383, -0.00031110, 0.00019057, 7.27311273, 0.99904976, 0.99949834, 0.49327157],9986 [ -6.27342391, -0.00031107, 0.00019055, 7.27311284, 0.99904986, 0.99949839, 0.49327158],9987 [ -6.27342398, -0.00031104, 0.00019053, 7.27311295, 0.99904995, 0.99949844, 0.49327140],9988 [ -6.27342406, -0.00031101, 0.00019051, 7.27311305, 0.99905005, 0.99949849, 0.49327149],9989 [ -6.27342413, -0.00031097, 0.00019049, 7.27311316, 0.99905014, 0.99949854, 0.49327130],9990 [ -6.27342421, -0.00031094, 0.00019047, 7.27311326, 0.99905024, 0.99949859, 0.49327138],9991 [ -6.27342428, -0.00031091, 0.00019045, 7.27311337, 0.99905033, 0.99949864, 0.49327154],9992 [ -6.27342436, -0.00031088, 0.00019043, 7.27311348, 0.99905043, 0.99949869, 0.49327144],9993 [ -6.27342443, -0.00031085, 0.00019041, 7.27311358, 0.99905052, 0.99949874, 0.49327149],9994 [ -6.27342451, -0.00031082, 0.00019039, 7.27311369, 0.99905062, 0.99949879, 0.49327160],9995 [ -6.27342458, -0.00031079, 0.00019037, 7.27311379, 0.99905071, 0.99949884, 0.49327162],9996 [ -6.27342466, -0.00031076, 0.00019035, 7.27311390, 0.99905081, 0.99949889, 0.49327146],9997 [ -6.27342473, -0.00031072, 0.00019034, 7.27311401, 0.99905091, 0.99949894, 0.49327178],9998 [ -6.27342480, -0.00031069, 0.00019032, 7.27311411, 0.99905100, 0.99949899, 0.49327156],9999 [ -6.27342488, -0.00031066, 0.00019030, 7.27311422, 0.99905110, 0.99949904, 0.49327151],10000 [ -6.27342495, -0.00031063, 0.00019028, 7.27311432, 0.99905119, 0.99949909, 0.49327157],10001 [ -6.27342503, -0.00031060, 0.00019026, 7.27311443, 0.99905129, 0.99949914, 0.49327162],10002 [ -6.27342510, -0.00031057, 0.00019024, 7.27311453, 0.99905138, 0.99949919, 0.49327180],10003 [ -6.27342518, -0.00031054, 0.00019022, 7.27311464, 0.99905148, 0.99949924, 0.49327153],10004 [ -6.27342525, -0.00031051, 0.00019020, 7.27311475, 0.99905157, 0.99949929, 0.49327170],10005 [ -6.27342533, -0.00031047, 0.00019018, 7.27311485, 0.99905167, 0.99949934, 0.49327164],10006 [ -6.27342540, -0.00031044, 0.00019016, 7.27311496, 0.99905176, 0.99949939, 0.49327177],10007 [ -6.27342548, -0.00031041, 0.00019014, 7.27311506, 0.99905186, 0.99949944, 0.49327171],10008 [ -6.27342555, -0.00031038, 0.00019013, 7.27311517, 0.99905195, 0.99949949, 0.49327163],10009 [ -6.27342563, -0.00031035, 0.00019011, 7.27311527, 0.99905205, 0.99949954, 0.49327148],10010 [ -6.27342570, -0.00031032, 0.00019009, 7.27311538, 0.99905214, 0.99949959, 0.49327177],10011 [ -6.27342577, -0.00031029, 0.00019007, 7.27311549, 0.99905224, 0.99949964, 0.49327190],10012 [ -6.27342585, -0.00031026, 0.00019005, 7.27311559, 0.99905233, 0.99949969, 0.49327174],10013 [ -6.27342592, -0.00031023, 0.00019003, 7.27311570, 0.99905243, 0.99949974, 0.49327179],10014 [ -6.27342600, -0.00031019, 0.00019001, 7.27311580, 0.99905252, 0.99949979, 0.49327165],10015 [ -6.27342607, -0.00031016, 0.00018999, 7.27311591, 0.99905262, 0.99949984, 0.49327180],10016 [ -6.27342615, -0.00031013, 0.00018997, 7.27311601, 0.99905271, 0.99949989, 0.49327176],10017 [ -6.27342622, -0.00031010, 0.00018995, 7.27311612, 0.99905281, 0.99949994, 0.49327155],10018 [ -6.27342630, -0.00031007, 0.00018993, 7.27311622, 0.99905290, 0.99949999, 0.49327169],10019 [ -6.27342637, -0.00031004, 0.00018992, 7.27311633, 0.99905300, 0.99950004, 0.49327184],10020 [ -6.27342644, -0.00031001, 0.00018990, 7.27311644, 0.99905309, 0.99950009, 0.49327184],10021 [ -6.27342652, -0.00030998, 0.00018988, 7.27311654, 0.99905319, 0.99950014, 0.49327176],10022 [ -6.27342659, -0.00030995, 0.00018986, 7.27311665, 0.99905328, 0.99950019, 0.49327184],10023 [ -6.27342667, -0.00030992, 0.00018984, 7.27311675, 0.99905338, 0.99950024, 0.49327166],10024 [ -6.27342674, -0.00030988, 0.00018982, 7.27311686, 0.99905347, 0.99950029, 0.49327222],10025 [ -6.27342682, -0.00030985, 0.00018980, 7.27311696, 0.99905357, 0.99950034, 0.49327211],10026 [ -6.27342689, -0.00030982, 0.00018978, 7.27311707, 0.99905366, 0.99950039, 0.49327202],10027 [ -6.27342696, -0.00030979, 0.00018976, 7.27311717, 0.99905376, 0.99950044, 0.49327179],10028 [ -6.27342704, -0.00030976, 0.00018974, 7.27311728, 0.99905385, 0.99950049, 0.49327176],10029 [ -6.27342711, -0.00030973, 0.00018973, 7.27311738, 0.99905394, 0.99950054, 0.49327202],10030 [ -6.27342719, -0.00030970, 0.00018971, 7.27311749, 0.99905404, 0.99950059, 0.49327184],10031 [ -6.27342726, -0.00030967, 0.00018969, 7.27311759, 0.99905413, 0.99950064, 0.49327198],10032 [ -6.27342733, -0.00030964, 0.00018967, 7.27311770, 0.99905423, 0.99950069, 0.49327205],10033 [ -6.27342741, -0.00030961, 0.00018965, 7.27311780, 0.99905432, 0.99950074, 0.49327200],10034 [ -6.27342748, -0.00030957, 0.00018963, 7.27311791, 0.99905442, 0.99950079, 0.49327197],10035 [ -6.27342756, -0.00030954, 0.00018961, 7.27311801, 0.99905451, 0.99950084, 0.49327183],10036 [ -6.27342763, -0.00030951, 0.00018959, 7.27311812, 0.99905461, 0.99950089, 0.49327208],10037 [ -6.27342771, -0.00030948, 0.00018957, 7.27311822, 0.99905470, 0.99950094, 0.49327205],10038 [ -6.27342778, -0.00030945, 0.00018956, 7.27311833, 0.99905480, 0.99950099, 0.49327194]]); 10039 10040 if value =='h':10041 series =love_numbers[:,0];10042 elif value =='k':10043 series =love_numbers[:,1];10044 elif value =='l':10045 series =love_numbers[:,2];10046 elif value =='gamma':10047 series =love_numbers[:,3];10048 elif value =='lambda':10049 series =love_numbers[:,4];30 raise RuntimeError('love_numbers error message: bad usage') 31 32 if value not in ['h', 'k', 'l', 'gamma', 'lambda']: 33 raise RuntimeError('value should be one of ''h'', ''k'', ''l'', ''gamma'' and ''lambda''') 34 35 if len(varargin) > 1: 36 raise RuntimeError('love_numbers error message: wrong usage') 37 38 love_numbers = np.array([[0, 0, 0, 0, 0, 0, 0], 39 [- 1.28740059, - 1.00000000, - 0.89858519, 1.28740059, 0.42519882, 0.89858519, 0.00000000], 40 [- 1.00025365, - 0.30922675, 0.02060926, 1.69102690, 0.46358648, 0.67016399, 0.61829668], 41 [- 1.06243501, - 0.19927948, 0.06801636, 1.86315553, 0.55741597, 0.73270416, 0.56270589], 42 [- 1.06779588, - 0.13649834, 0.05667027, 1.93129754, 0.63672498, 0.80683140, 0.51132745], 43 [- 1.10365923, - 0.10736896, 0.04401221, 1.99629027, 0.68737906, 0.84861883, 0.48642259], 44 [- 1.16440348, - 0.09295485, 0.03638747, 2.07144863, 0.72031283, 0.87065768, 0.47898268], 45 [- 1.23634156, - 0.08469861, 0.03202759, 2.15164295, 0.74355796, 0.88327380, 0.47955214], 46 [- 1.31140380, - 0.07921412, 0.02937593, 2.23218968, 0.76126493, 0.89140995, 0.48323250], 47 [- 1.38582399, - 0.07513541, 0.02762338, 2.31068858, 0.77552290, 0.89724121, 0.48795424], 48 [- 1.45807465, - 0.07187005, 0.02638627, 2.38620460, 0.78744212, 0.90174369, 0.49291061], 49 [- 1.52763314, - 0.06913154, 0.02547640, 2.45850160, 0.79766475, 0.90539206, 0.49779422], 50 [- 1.59437866, - 0.06676258, 0.02479080, 2.52761607, 0.80659635, 0.90844662, 0.50248477], 51 [- 1.65833071, - 0.06466619, 0.02426511, 2.59366452, 0.81451271, 0.91106870, 0.50693175], 52 [- 1.71954820, - 0.06277732, 0.02385464, 2.65677088, 0.82161167, 0.91336804, 0.51111243], 53 [- 1.77809640, - 0.06105001, 0.02352654, 2.71704639, 0.82804049, 0.91542346, 0.51501712], 54 [- 1.83403970, - 0.05945081, 0.02325609, 2.77458889, 0.83391153, 0.91729309, 0.51864363], 55 [- 1.88744242, - 0.05795502, 0.02302469, 2.82948740, 0.83931209, 0.91902029, 0.52199490], 56 [- 1.93837115, - 0.05654418, 0.02281843, 2.88182697, 0.84431095, 0.92063739, 0.52507761], 57 [- 1.98689666, - 0.05520447, 0.02262706, 2.93169219, 0.84896295, 0.92216847, 0.52790108], 58 [- 2.03309477, - 0.05392545, 0.02244322, 2.97916932, 0.85331225, 0.92363132, 0.53047654], 59 [- 2.07704643, - 0.05269926, 0.02226173, 3.02434717, 0.85739480, 0.92503902, 0.53281639], 60 [- 2.11883714, - 0.05151988, 0.02207909, 3.06731726, 0.86124014, 0.92640103, 0.53493369], 61 [- 2.15855611, - 0.05038274, 0.02189307, 3.10817337, 0.86487276, 0.92772419, 0.53684176], 62 [- 2.19629514, - 0.04928430, 0.02170238, 3.14701084, 0.86831322, 0.92901331, 0.53855386], 63 [- 2.23214747, - 0.04822179, 0.02150643, 3.18392568, 0.87157886, 0.93027178, 0.54008294], 64 [- 2.26620674, - 0.04719301, 0.02130509, 3.21901373, 0.87468453, 0.93150190, 0.54144148], 65 [- 2.29856595, - 0.04619619, 0.02109858, 3.25236976, 0.87764301, 0.93270523, 0.54264140], 66 [- 2.32931659, - 0.04522983, 0.02088735, 3.28408675, 0.88046543, 0.93388282, 0.54369397], 67 [- 2.35854794, - 0.04429270, 0.02067197, 3.31425524, 0.88316156, 0.93503533, 0.54460979], 68 [- 2.38634650, - 0.04338368, 0.02045310, 3.34296281, 0.88574004, 0.93616321, 0.54539877], 69 [- 2.41279547, - 0.04250179, 0.02023142, 3.37029367, 0.88820859, 0.93726678, 0.54607015], 70 [- 2.43797451, - 0.04164613, 0.02000761, 3.39632839, 0.89057416, 0.93834626, 0.54663248], 71 [- 2.46195951, - 0.04081583, 0.01978231, 3.42114367, 0.89284301, 0.93940185, 0.54709369], 72 [- 2.48482241, - 0.04001011, 0.01955614, 3.44481230, 0.89502085, 0.94043375, 0.54746112], 73 [- 2.50663126, - 0.03922817, 0.01932966, 3.46740309, 0.89711291, 0.94144217, 0.54774153], 74 [- 2.52745016, - 0.03846928, 0.01910337, 3.48898088, 0.89912397, 0.94242735, 0.54794114], 75 [- 2.54733938, - 0.03773269, 0.01887774, 3.50960670, 0.90105847, 0.94338957, 0.54806571], 76 [- 2.56635547, - 0.03701769, 0.01865317, 3.52933779, 0.90292050, 0.94432915, 0.54812051], 77 [- 2.58455138, - 0.03632358, 0.01843000, 3.54822780, 0.90471386, 0.94524642, 0.54811044], 78 [- 2.60197665, - 0.03564968, 0.01820854, 3.56632697, 0.90644209, 0.94614178, 0.54803997], 79 [- 2.61867756, - 0.03499532, 0.01798905, 3.58368224, 0.90810850, 0.94701563, 0.54791326], 80 [- 2.63469733, - 0.03435985, 0.01777176, 3.60033748, 0.90971616, 0.94786840, 0.54773413], 81 [- 2.65007629, - 0.03374263, 0.01755683, 3.61633367, 0.91126798, 0.94870054, 0.54750610], 82 [- 2.66485208, - 0.03314303, 0.01734443, 3.63170905, 0.91276665, 0.94951253, 0.54723245], 83 [- 2.67905981, - 0.03256047, 0.01713468, 3.64649934, 0.91421471, 0.95030485, 0.54691620], 84 [- 2.69273222, - 0.03199435, 0.01692767, 3.66073787, 0.91561457, 0.95107798, 0.54656015], 85 [- 2.70589990, - 0.03144411, 0.01672347, 3.67445580, 0.91696845, 0.95183242, 0.54616691], 86 [- 2.71859139, - 0.03090919, 0.01652215, 3.68768220, 0.91827849, 0.95256866, 0.54573889], 87 [- 2.73083334, - 0.03038907, 0.01632374, 3.70044427, 0.91954667, 0.95328719, 0.54527835], 88 [- 2.74265068, - 0.02988323, 0.01612826, 3.71276745, 0.92077487, 0.95398851, 0.54478739], 89 [- 2.75406669, - 0.02939118, 0.01593573, 3.72467551, 0.92196486, 0.95467309, 0.54426797], 90 [- 2.76510320, - 0.02891245, 0.01574615, 3.73619076, 0.92311833, 0.95534141, 0.54372191], 91 [- 2.77578063, - 0.02844656, 0.01555950, 3.74733406, 0.92423685, 0.95599393, 0.54315095], 92 [- 2.78611812, - 0.02799309, 0.01537578, 3.75812503, 0.92532192, 0.95663113, 0.54255669], 93 [- 2.79613364, - 0.02755161, 0.01519496, 3.76858203, 0.92637496, 0.95725343, 0.54194065], 94 [- 2.80584405, - 0.02712170, 0.01501701, 3.77872235, 0.92739730, 0.95786128, 0.54130424], 95 [- 2.81526521, - 0.02670298, 0.01484191, 3.78856223, 0.92839022, 0.95845511, 0.54064880], 96 [- 2.82441204, - 0.02629506, 0.01466961, 3.79811697, 0.92935491, 0.95903532, 0.53997561], 97 [- 2.83329857, - 0.02589759, 0.01450009, 3.80740098, 0.93029251, 0.95960232, 0.53928586], 98 [- 2.84193804, - 0.02551021, 0.01433329, 3.81642782, 0.93120412, 0.96015649, 0.53858067], 99 [- 2.85034293, - 0.02513260, 0.01416919, 3.82521033, 0.93209074, 0.96069821, 0.53786112], 100 [- 2.85852503, - 0.02476443, 0.01400773, 3.83376061, 0.93295337, 0.96122784, 0.53712821], 101 [- 2.86649548, - 0.02440538, 0.01384888, 3.84209010, 0.93379291, 0.96174574, 0.53638291], 102 [- 2.87426481, - 0.02405518, 0.01369258, 3.85020963, 0.93461026, 0.96225224, 0.53562612], 103 [- 2.88184299, - 0.02371352, 0.01353880, 3.85812947, 0.93540625, 0.96274768, 0.53485873], 104 [- 2.88923945, - 0.02338014, 0.01338749, 3.86585931, 0.93618168, 0.96323236, 0.53408154], 105 [- 2.89646316, - 0.02305478, 0.01323861, 3.87340838, 0.93693730, 0.96370661, 0.53329534], 106 [- 2.90352261, - 0.02273718, 0.01309211, 3.88078542, 0.93767383, 0.96417071, 0.53250089], 107 [- 2.91042585, - 0.02242710, 0.01294795, 3.88799874, 0.93839197, 0.96462494, 0.53169888], 108 [- 2.91718054, - 0.02212431, 0.01280609, 3.89505623, 0.93909236, 0.96506960, 0.53089002], 109 [- 2.92379397, - 0.02182859, 0.01266648, 3.90196538, 0.93977564, 0.96550493, 0.53007493], 110 [- 2.93027306, - 0.02153971, 0.01252908, 3.90873334, 0.94044240, 0.96593120, 0.52925424], 111 [- 2.93662439, - 0.02125748, 0.01239386, 3.91536691, 0.94109322, 0.96634866, 0.52842854], 112 [- 2.94285425, - 0.02098169, 0.01226077, 3.92187256, 0.94172863, 0.96675754, 0.52759839], 113 [- 2.94896860, - 0.02071215, 0.01212977, 3.92825645, 0.94234915, 0.96715808, 0.52676434], 114 [- 2.95497314, - 0.02044868, 0.01200082, 3.93452446, 0.94295529, 0.96755050, 0.52592690], 115 [- 2.96087331, - 0.02019110, 0.01187388, 3.94068220, 0.94354752, 0.96793501, 0.52508656], 116 [- 2.96667427, - 0.01993924, 0.01174893, 3.94673503, 0.94412630, 0.96831183, 0.52424380], 117 [- 2.97238097, - 0.01969293, 0.01162591, 3.95268804, 0.94469206, 0.96868116, 0.52339906], 118 [- 2.97799813, - 0.01945201, 0.01150481, 3.95854612, 0.94524521, 0.96904318, 0.52255277], 119 [- 2.98353025, - 0.01921634, 0.01138557, 3.96431391, 0.94578617, 0.96939809, 0.52170535], 120 [- 2.98898162, - 0.01898576, 0.01126817, 3.96999586, 0.94631531, 0.96974607, 0.52085719], 121 [- 2.99435636, - 0.01876014, 0.01115257, 3.97559622, 0.94683300, 0.97008729, 0.52000868], 122 [- 2.99965838, - 0.01853932, 0.01103875, 3.98111905, 0.94733959, 0.97042193, 0.51916016], 123 [- 3.00489143, - 0.01832319, 0.01092666, 3.98656824, 0.94783543, 0.97075015, 0.51831198], 124 [- 3.01005909, - 0.01811161, 0.01081628, 3.99194748, 0.94832084, 0.97107211, 0.51746448], 125 [- 3.01516479, - 0.01790446, 0.01070757, 3.99726033, 0.94879613, 0.97138796, 0.51661796], 126 [- 3.02021180, - 0.01770162, 0.01060052, 4.00251017, 0.94926160, 0.97169786, 0.51577273], 127 [- 3.02520323, - 0.01750298, 0.01049508, 4.00770025, 0.94971755, 0.97200194, 0.51492908], 128 [- 3.03014209, - 0.01730842, 0.01039123, 4.01283367, 0.95016424, 0.97230035, 0.51408727], 129 [- 3.03503122, - 0.01711783, 0.01028894, 4.01791339, 0.95060195, 0.97259323, 0.51324758], 130 [- 3.03987336, - 0.01693111, 0.01018819, 4.02294225, 0.95103094, 0.97288070, 0.51241024], 131 [- 3.04467112, - 0.01674816, 0.01008894, 4.02792295, 0.95145145, 0.97316290, 0.51157550], 132 [- 3.04942699, - 0.01656889, 0.00999117, 4.03285810, 0.95186373, 0.97343995, 0.51074358], 133 [- 3.05414335, - 0.01639319, 0.00989485, 4.03775017, 0.95226799, 0.97371196, 0.50991471], 134 [- 3.05882250, - 0.01622097, 0.00979997, 4.04260153, 0.95266447, 0.97397906, 0.50908908], 135 [- 3.06346660, - 0.01605215, 0.00970649, 4.04741445, 0.95305338, 0.97424136, 0.50826689], 136 [- 3.06807773, - 0.01588664, 0.00961439, 4.05219109, 0.95343492, 0.97449897, 0.50744832], 137 [- 3.07265789, - 0.01572436, 0.00952364, 4.05693353, 0.95380929, 0.97475200, 0.50663356], 138 [- 3.07720897, - 0.01556522, 0.00943423, 4.06164375, 0.95417670, 0.97500055, 0.50582277], 139 [- 3.08173279, - 0.01540916, 0.00934613, 4.06632364, 0.95453731, 0.97524472, 0.50501611], 140 [- 3.08623109, - 0.01525608, 0.00925931, 4.07097501, 0.95489131, 0.97548461, 0.50421372], 141 [- 3.09070551, - 0.01510592, 0.00917376, 4.07559959, 0.95523888, 0.97572032, 0.50341576], 142 [- 3.09515765, - 0.01495861, 0.00908946, 4.08019904, 0.95558018, 0.97595193, 0.50262236], 143 [- 3.09958899, - 0.01481408, 0.00900637, 4.08477492, 0.95591537, 0.97617955, 0.50183364], 144 [- 3.10400100, - 0.01467225, 0.00892449, 4.08932875, 0.95624461, 0.97640325, 0.50104973], 145 [- 3.10839504, - 0.01453308, 0.00884379, 4.09386196, 0.95656806, 0.97662313, 0.50027073], 146 [- 3.11277241, - 0.01439648, 0.00876425, 4.09837593, 0.95688585, 0.97683927, 0.49949676], 147 [- 3.11713438, - 0.01426240, 0.00868586, 4.10287198, 0.95719812, 0.97705174, 0.49872791], 148 [- 3.12148213, - 0.01413079, 0.00860858, 4.10735134, 0.95750503, 0.97726063, 0.49796429], 149 [- 3.12581680, - 0.01400157, 0.00853241, 4.11181522, 0.95780669, 0.97746601, 0.49720597], 150 [- 3.13013947, - 0.01387471, 0.00845733, 4.11626476, 0.95810324, 0.97766796, 0.49645304], 151 [- 3.13445117, - 0.01375013, 0.00838331, 4.12070104, 0.95839480, 0.97786656, 0.49570558], 152 [- 3.13875289, - 0.01362779, 0.00831034, 4.12512510, 0.95868150, 0.97806186, 0.49496366], 153 [- 3.14304556, - 0.01350764, 0.00823841, 4.12953792, 0.95896344, 0.97825395, 0.49422734], 154 [- 3.14733008, - 0.01338963, 0.00816748, 4.13394045, 0.95924075, 0.97844289, 0.49349669], 155 [- 3.15160728, - 0.01327370, 0.00809756, 4.13833358, 0.95951352, 0.97862874, 0.49277177], 156 [- 3.15587797, - 0.01315981, 0.00802862, 4.14271816, 0.95978188, 0.97881157, 0.49205262], 157 [- 3.16014293, - 0.01304792, 0.00796064, 4.14709501, 0.96004592, 0.97899144, 0.49133930], 158 [- 3.16440288, - 0.01293797, 0.00789361, 4.15146491, 0.96030574, 0.97916842, 0.49063185], 159 [- 3.16865852, - 0.01282993, 0.00782751, 4.15582858, 0.96056144, 0.97934256, 0.48993030], 160 [- 3.17291049, - 0.01272375, 0.00776233, 4.16018673, 0.96081312, 0.97951392, 0.48923471], 161 [- 3.17715942, - 0.01261940, 0.00769805, 4.16454003, 0.96106086, 0.97968255, 0.48854509], 162 [- 3.18140591, - 0.01251682, 0.00763466, 4.16888910, 0.96130476, 0.97984852, 0.48786148], 163 [- 3.18565052, - 0.01241598, 0.00757215, 4.17323454, 0.96154490, 0.98001187, 0.48718390], 164 [- 3.18989378, - 0.01231685, 0.00751049, 4.17757693, 0.96178137, 0.98017266, 0.48651237], 165 [- 3.19413619, - 0.01221938, 0.00744968, 4.18191681, 0.96201424, 0.98033094, 0.48584692], 166 [- 3.19837823, - 0.01212354, 0.00738970, 4.18625469, 0.96224360, 0.98048676, 0.48518756], 167 [- 3.20262035, - 0.01202930, 0.00733053, 4.19059105, 0.96246952, 0.98064017, 0.48453431], 168 [- 3.20686298, - 0.01193661, 0.00727217, 4.19492637, 0.96269208, 0.98079121, 0.48388717], 169 [- 3.21110653, - 0.01184546, 0.00721461, 4.19926107, 0.96291135, 0.98093994, 0.48324615], 170 [- 3.21535137, - 0.01175579, 0.00715782, 4.20359557, 0.96312741, 0.98108639, 0.48261126], 171 [- 3.21959786, - 0.01166759, 0.00710179, 4.20793027, 0.96334031, 0.98123062, 0.48198250], 172 [- 3.22384634, - 0.01158082, 0.00704652, 4.21226552, 0.96355014, 0.98137266, 0.48135988], 173 [- 3.22809714, - 0.01149545, 0.00699199, 4.21660169, 0.96375694, 0.98151256, 0.48074338], 174 [- 3.23235055, - 0.01141146, 0.00693819, 4.22093909, 0.96396080, 0.98165035, 0.48013301], 175 [- 3.23660685, - 0.01132880, 0.00688511, 4.22527805, 0.96416176, 0.98178609, 0.47952876], 176 [- 3.24086631, - 0.01124746, 0.00683273, 4.22961885, 0.96435989, 0.98191980, 0.47893063], 177 [- 3.24512918, - 0.01116741, 0.00678105, 4.23396177, 0.96455525, 0.98205153, 0.47833860], 178 [- 3.24939569, - 0.01108862, 0.00673005, 4.23830707, 0.96474789, 0.98218132, 0.47775267], 179 [- 3.25366606, - 0.01101107, 0.00667973, 4.24265499, 0.96493787, 0.98230920, 0.47717282], 180 [- 3.25794050, - 0.01093473, 0.00663007, 4.24700577, 0.96512525, 0.98243520, 0.47659903], 181 [- 3.26221918, - 0.01085957, 0.00658106, 4.25135961, 0.96531007, 0.98255937, 0.47603130], 182 [- 3.26650230, - 0.01078557, 0.00653269, 4.25571672, 0.96549239, 0.98268174, 0.47546960], 183 [- 3.27079000, - 0.01071272, 0.00648495, 4.26007729, 0.96567225, 0.98280233, 0.47491391], 184 [- 3.27508246, - 0.01064097, 0.00643784, 4.26444149, 0.96584971, 0.98292119, 0.47436422], 185 [- 3.27937980, - 0.01057032, 0.00639134, 4.26880948, 0.96602482, 0.98303834, 0.47382051], 186 [- 3.28368216, - 0.01050074, 0.00634544, 4.27318141, 0.96619761, 0.98315382, 0.47328275], 187 [- 3.28798965, - 0.01043222, 0.00630013, 4.27755743, 0.96636814, 0.98326765, 0.47275091], 188 [- 3.29230239, - 0.01036472, 0.00625541, 4.28193767, 0.96653645, 0.98337988, 0.47222499], 189 [- 3.29662047, - 0.01029823, 0.00621126, 4.28632224, 0.96670258, 0.98349051, 0.47170494], 190 [- 3.30094399, - 0.01023273, 0.00616768, 4.29071126, 0.96686657, 0.98359960, 0.47119074], 191 [- 3.30527303, - 0.01016819, 0.00612465, 4.29510483, 0.96702847, 0.98370715, 0.47068237], 192 [- 3.30960766, - 0.01010461, 0.00608218, 4.29950304, 0.96718831, 0.98381321, 0.47017979], 193 [- 3.31394795, - 0.01004197, 0.00604024, 4.30390598, 0.96734614, 0.98391779, 0.46968299], 194 [- 3.31829395, - 0.00998024, 0.00599883, 4.30831372, 0.96750198, 0.98402093, 0.46919192], 195 [- 3.32264573, - 0.00991940, 0.00595795, 4.31272633, 0.96765588, 0.98412265, 0.46870656], 196 [- 3.32700331, - 0.00985945, 0.00591759, 4.31714387, 0.96780788, 0.98422297, 0.46822687], 197 [- 3.33136675, - 0.00980035, 0.00587773, 4.32156640, 0.96795801, 0.98432191, 0.46775284], 198 [- 3.33573607, - 0.00974211, 0.00583838, 4.32599396, 0.96810630, 0.98441951, 0.46728441], 199 [- 3.34011130, - 0.00968470, 0.00579951, 4.33042660, 0.96825278, 0.98451579, 0.46682157], 200 [- 3.34449246, - 0.00962810, 0.00576113, 4.33486436, 0.96839750, 0.98461077, 0.46636427], 201 [- 3.34887956, - 0.00957230, 0.00572323, 4.33930726, 0.96854048, 0.98470447, 0.46591248], 202 [- 3.35327261, - 0.00951729, 0.00568581, 4.34375533, 0.96868175, 0.98479691, 0.46546617], 203 [- 3.35767163, - 0.00946304, 0.00564884, 4.34820858, 0.96882135, 0.98488812, 0.46502531], 204 [- 3.36207660, - 0.00940956, 0.00561233, 4.35266704, 0.96895930, 0.98497811, 0.46458986], 205 [- 3.36648753, - 0.00935681, 0.00557627, 4.35713071, 0.96909563, 0.98506691, 0.46415977], 206 [- 3.37090440, - 0.00930480, 0.00554066, 4.36159960, 0.96923037, 0.98515454, 0.46373503], 207 [- 3.37532721, - 0.00925350, 0.00550548, 4.36607371, 0.96936355, 0.98524102, 0.46331559], 208 [- 3.37975593, - 0.00920290, 0.00547073, 4.37055303, 0.96949520, 0.98532636, 0.46290141], 209 [- 3.38419056, - 0.00915300, 0.00543641, 4.37503756, 0.96962535, 0.98541059, 0.46249246], 210 [- 3.38863105, - 0.00910377, 0.00540251, 4.37952729, 0.96975401, 0.98549373, 0.46208870], 211 [- 3.39307740, - 0.00905520, 0.00536901, 4.38402220, 0.96988122, 0.98557578, 0.46169009], 212 [- 3.39752956, - 0.00900729, 0.00533593, 4.38852227, 0.97000699, 0.98565678, 0.46129660], 213 [- 3.40198751, - 0.00896002, 0.00530324, 4.39302749, 0.97013137, 0.98573674, 0.46090819], 214 [- 3.40645121, - 0.00891338, 0.00527095, 4.39753783, 0.97025435, 0.98581567, 0.46052482], 215 [- 3.41092063, - 0.00886736, 0.00523904, 4.40205326, 0.97037598, 0.98589360, 0.46014645], 216 [- 3.41539571, - 0.00882195, 0.00520752, 4.40657376, 0.97049628, 0.98597053, 0.45977305], 217 [- 3.41987643, - 0.00877713, 0.00517637, 4.41109929, 0.97061526, 0.98604649, 0.45940458], 218 [- 3.42436272, - 0.00873290, 0.00514560, 4.41562982, 0.97073295, 0.98612149, 0.45904100], 219 [- 3.42885456, - 0.00868925, 0.00511520, 4.42016531, 0.97084936, 0.98619555, 0.45868227], 220 [- 3.43335188, - 0.00864617, 0.00508515, 4.42470571, 0.97096453, 0.98626868, 0.45832835], 221 [- 3.43785464, - 0.00860364, 0.00505546, 4.42925100, 0.97107847, 0.98634090, 0.45797921], 222 [- 3.44236278, - 0.00856166, 0.00502613, 4.43380112, 0.97119120, 0.98641222, 0.45763480], 223 [- 3.44687625, - 0.00852021, 0.00499714, 4.43835604, 0.97130274, 0.98648265, 0.45729509], 224 [- 3.45139500, - 0.00847930, 0.00496849, 4.44291570, 0.97141311, 0.98655221, 0.45696005], 225 [- 3.45591895, - 0.00843890, 0.00494017, 4.44748005, 0.97152233, 0.98662092, 0.45662962], 226 [- 3.46044807, - 0.00839902, 0.00491219, 4.45204905, 0.97163042, 0.98668879, 0.45630378], 227 [- 3.46498227, - 0.00835964, 0.00488454, 4.45662264, 0.97173739, 0.98675583, 0.45598249], 228 [- 3.46952151, - 0.00832075, 0.00485721, 4.46120077, 0.97184326, 0.98682205, 0.45566570], 229 [- 3.47406572, - 0.00828234, 0.00483019, 4.46578338, 0.97194805, 0.98688746, 0.45535338], 230 [- 3.47861484, - 0.00824442, 0.00480349, 4.47037042, 0.97205179, 0.98695209, 0.45504550], 231 [- 3.48316880, - 0.00820696, 0.00477710, 4.47496184, 0.97215447, 0.98701594, 0.45474201], 232 [- 3.48772753, - 0.00816996, 0.00475102, 4.47955756, 0.97225612, 0.98707902, 0.45444287], 233 [- 3.49229097, - 0.00813342, 0.00472523, 4.48415755, 0.97235676, 0.98714134, 0.45414806], 234 [- 3.49685904, - 0.00809733, 0.00469975, 4.48876172, 0.97245640, 0.98720293, 0.45385753], 235 [- 3.50143169, - 0.00806167, 0.00467455, 4.49337002, 0.97255506, 0.98726378, 0.45357123], 236 [- 3.50600884, - 0.00802644, 0.00464964, 4.49798240, 0.97265275, 0.98732391, 0.45328915], 237 [- 3.51059042, - 0.00799164, 0.00462502, 4.50259878, 0.97274949, 0.98738333, 0.45301123], 238 [- 3.51517637, - 0.00795726, 0.00460068, 4.50721911, 0.97284528, 0.98744206, 0.45273745], 239 [- 3.51976660, - 0.00792329, 0.00457662, 4.51184331, 0.97294015, 0.98750009, 0.45246776], 240 [- 3.52436105, - 0.00788972, 0.00455283, 4.51647133, 0.97303411, 0.98755745, 0.45220214], 241 [- 3.52895964, - 0.00785655, 0.00452930, 4.52110309, 0.97312718, 0.98761414, 0.45194053], 242 [- 3.53356231, - 0.00782377, 0.00450605, 4.52573854, 0.97321936, 0.98767018, 0.45168291], 243 [- 3.53816898, - 0.00779138, 0.00448306, 4.53037760, 0.97331067, 0.98772556, 0.45142923], 244 [- 3.54277957, - 0.00775937, 0.00446032, 4.53502021, 0.97340111, 0.98778031, 0.45117947], 245 [- 3.54739402, - 0.00772773, 0.00443784, 4.53966629, 0.97349072, 0.98783443, 0.45093359], 246 [- 3.55201224, - 0.00769645, 0.00441562, 4.54431579, 0.97357949, 0.98788793, 0.45069155], 247 [- 3.55663417, - 0.00766554, 0.00439364, 4.54896864, 0.97366744, 0.98794082, 0.45045331], 248 [- 3.56125973, - 0.00763498, 0.00437190, 4.55362475, 0.97375458, 0.98799311, 0.45021885], 249 [- 3.56588885, - 0.00760478, 0.00435041, 4.55828407, 0.97384092, 0.98804481, 0.44998812], 250 [- 3.57052145, - 0.00757491, 0.00432916, 4.56294653, 0.97392648, 0.98809593, 0.44976109], 251 [- 3.57515745, - 0.00754539, 0.00430814, 4.56761206, 0.97401126, 0.98814646, 0.44953772], 252 [- 3.57979678, - 0.00751620, 0.00428736, 4.57228058, 0.97409528, 0.98819644, 0.44931799], 253 [- 3.58443937, - 0.00748734, 0.00426681, 4.57695203, 0.97417854, 0.98824585, 0.44910185], 254 [- 3.58908514, - 0.00745880, 0.00424648, 4.58162633, 0.97426107, 0.98829472, 0.44888928], 255 [- 3.59373401, - 0.00743059, 0.00422637, 4.58630343, 0.97434286, 0.98834304, 0.44868023], 256 [- 3.59838592, - 0.00740268, 0.00420649, 4.59098323, 0.97442393, 0.98839083, 0.44847468], 257 [- 3.60304078, - 0.00737509, 0.00418682, 4.59566569, 0.97450428, 0.98843809, 0.44827259], 258 [- 3.60769852, - 0.00734780, 0.00416737, 4.60035072, 0.97458394, 0.98848483, 0.44807392], 259 [- 3.61235907, - 0.00732081, 0.00414813, 4.60503826, 0.97466290, 0.98853106, 0.44787865], 260 [- 3.61702235, - 0.00729411, 0.00412910, 4.60972823, 0.97474118, 0.98857678, 0.44768674], 261 [- 3.62168828, - 0.00726771, 0.00411028, 4.61442057, 0.97481879, 0.98862201, 0.44749816], 262 [- 3.62635680, - 0.00724159, 0.00409166, 4.61911521, 0.97489573, 0.98866675, 0.44731288], 263 [- 3.63102782, - 0.00721575, 0.00407325, 4.62381207, 0.97497202, 0.98871100, 0.44713086], 264 [- 3.63570128, - 0.00719020, 0.00405503, 4.62851108, 0.97504766, 0.98875478, 0.44695207], 265 [- 3.64037709, - 0.00716491, 0.00403700, 4.63321218, 0.97512267, 0.98879808, 0.44677649], 266 [- 3.64505519, - 0.00713990, 0.00401918, 4.63791530, 0.97519704, 0.98884093, 0.44660407], 267 [- 3.64973550, - 0.00711515, 0.00400154, 4.64262036, 0.97527080, 0.98888331, 0.44643478], 268 [- 3.65441795, - 0.00709066, 0.00398409, 4.64732729, 0.97534394, 0.98892525, 0.44626861], 269 [- 3.65910247, - 0.00706643, 0.00396683, 4.65203604, 0.97541648, 0.98896674, 0.44610551], 270 [- 3.66378898, - 0.00704246, 0.00394975, 4.65674652, 0.97548842, 0.98900779, 0.44594545], 271 [- 3.66847740, - 0.00701873, 0.00393286, 4.66145867, 0.97555978, 0.98904841, 0.44578841], 272 [- 3.67316767, - 0.00699526, 0.00391614, 4.66617242, 0.97563055, 0.98908860, 0.44563435], 273 [- 3.67785972, - 0.00697202, 0.00389960, 4.67088770, 0.97570076, 0.98912838, 0.44548324], 274 [- 3.68255347, - 0.00694903, 0.00388324, 4.67560444, 0.97577039, 0.98916773, 0.44533506], 275 [- 3.68724885, - 0.00692627, 0.00386705, 4.68032258, 0.97583947, 0.98920668, 0.44518977], 276 [- 3.69194579, - 0.00690374, 0.00385103, 4.68504204, 0.97590800, 0.98924523, 0.44504735], 277 [- 3.69664421, - 0.00688145, 0.00383518, 4.68976277, 0.97597598, 0.98928338, 0.44490776], 278 [- 3.70134406, - 0.00685938, 0.00381949, 4.69448468, 0.97604342, 0.98932113, 0.44477099], 279 [- 3.70604525, - 0.00683753, 0.00380397, 4.69920772, 0.97611034, 0.98935850, 0.44463698], 280 [- 3.71074772, - 0.00681590, 0.00378861, 4.70393182, 0.97617673, 0.98939548, 0.44450573], 281 [- 3.71545140, - 0.00679449, 0.00377342, 4.70865691, 0.97624261, 0.98943209, 0.44437720], 282 [- 3.72015622, - 0.00677330, 0.00375838, 4.71338292, 0.97630797, 0.98946833, 0.44425137], 283 [- 3.72486211, - 0.00675231, 0.00374349, 4.71810980, 0.97637283, 0.98950420, 0.44412820], 284 [- 3.72956899, - 0.00673153, 0.00372877, 4.72283746, 0.97643720, 0.98953970, 0.44400767], 285 [- 3.73427682, - 0.00671096, 0.00371419, 4.72756585, 0.97650107, 0.98957485, 0.44388975], 286 [- 3.73898550, - 0.00669059, 0.00369976, 4.73229491, 0.97656446, 0.98960965, 0.44377441], 287 [- 3.74369498, - 0.00667042, 0.00368549, 4.73702457, 0.97662737, 0.98964409, 0.44366163], 288 [- 3.74840519, - 0.00665044, 0.00367136, 4.74175475, 0.97668980, 0.98967820, 0.44355139], 289 [- 3.75311607, - 0.00663066, 0.00365738, 4.74648541, 0.97675177, 0.98971196, 0.44344364], 290 [- 3.75782754, - 0.00661107, 0.00364354, 4.75121648, 0.97681327, 0.98974540, 0.44333838], 291 [- 3.76253955, - 0.00659167, 0.00362984, 4.75594788, 0.97687432, 0.98977850, 0.44323557], 292 [- 3.76725202, - 0.00657245, 0.00361628, 4.76067957, 0.97693492, 0.98981127, 0.44313518], 293 [- 3.77196489, - 0.00655341, 0.00360286, 4.76541147, 0.97699508, 0.98984372, 0.44303720], 294 [- 3.77667809, - 0.00653456, 0.00358958, 4.77014353, 0.97705479, 0.98987586, 0.44294159], 295 [- 3.78139156, - 0.00651589, 0.00357643, 4.77487568, 0.97711407, 0.98990768, 0.44284833], 296 [- 3.78610525, - 0.00649739, 0.00356342, 4.77960786, 0.97717292, 0.98993920, 0.44275740], 297 [- 3.79081907, - 0.00647906, 0.00355053, 4.78434001, 0.97723134, 0.98997040, 0.44266877], 298 [- 3.79553298, - 0.00646091, 0.00353778, 4.78907207, 0.97728935, 0.99000131, 0.44258241], 299 [- 3.80024690, - 0.00644292, 0.00352516, 4.79380398, 0.97734694, 0.99003192, 0.44249831], 300 [- 3.80496078, - 0.00642510, 0.00351266, 4.79853567, 0.97740413, 0.99006223, 0.44241644], 301 [- 3.80967455, - 0.00640745, 0.00350029, 4.80326710, 0.97746090, 0.99009226, 0.44233677], 302 [- 3.81438815, - 0.00638996, 0.00348804, 4.80799819, 0.97751728, 0.99012200, 0.44225928], 303 [- 3.81910152, - 0.00637262, 0.00347592, 4.81272889, 0.97757326, 0.99015145, 0.44218395], 304 [- 3.82381460, - 0.00635545, 0.00346392, 4.81745915, 0.97762886, 0.99018063, 0.44211076], 305 [- 3.82852732, - 0.00633843, 0.00345204, 4.82218889, 0.97768406, 0.99020953, 0.44203968], 306 [- 3.83323964, - 0.00632157, 0.00344027, 4.82691808, 0.97773889, 0.99023816, 0.44197068], 307 [- 3.83795149, - 0.00630485, 0.00342863, 4.83164664, 0.97779333, 0.99026652, 0.44190376], 308 [- 3.84266280, - 0.00628829, 0.00341709, 4.83637452, 0.97784741, 0.99029462, 0.44183887], 309 [- 3.84737353, - 0.00627187, 0.00340568, 4.84110166, 0.97790111, 0.99032245, 0.44177601], 310 [- 3.85208361, - 0.00625560, 0.00339437, 4.84582801, 0.97795446, 0.99035003, 0.44171515], 311 [- 3.85679299, - 0.00623948, 0.00338318, 4.85055351, 0.97800744, 0.99037735, 0.44165627], 312 [- 3.86150160, - 0.00622349, 0.00337210, 4.85527811, 0.97806006, 0.99040441, 0.44159934], 313 [- 3.86620939, - 0.00620765, 0.00336112, 4.86000175, 0.97811233, 0.99043123, 0.44154435], 314 [- 3.87091631, - 0.00619194, 0.00335026, 4.86472437, 0.97816426, 0.99045780, 0.44149127], 315 [- 3.87562229, - 0.00617637, 0.00333950, 4.86944592, 0.97821584, 0.99048413, 0.44144009], 316 [- 3.88032729, - 0.00616094, 0.00332885, 4.87416635, 0.97826708, 0.99051022, 0.44139078], 317 [- 3.88503124, - 0.00614564, 0.00331830, 4.87888561, 0.97831798, 0.99053607, 0.44134332], 318 [- 3.88973410, - 0.00613047, 0.00330785, 4.88360363, 0.97836855, 0.99056168, 0.44129769], 319 [- 3.89443580, - 0.00611543, 0.00329750, 4.88832037, 0.97841879, 0.99058707, 0.44125387], 320 [- 3.89913629, - 0.00610051, 0.00328726, 4.89303577, 0.97846870, 0.99061223, 0.44121185], 321 [- 3.90383552, - 0.00608573, 0.00327711, 4.89774979, 0.97851829, 0.99063716, 0.44117159], 322 [- 3.90853343, - 0.00607107, 0.00326707, 4.90246236, 0.97856756, 0.99066187, 0.44113309], 323 [- 3.91322998, - 0.00605653, 0.00325712, 4.90717345, 0.97861652, 0.99068635, 0.44109632], 324 [- 3.91792511, - 0.00604212, 0.00324726, 4.91188299, 0.97866516, 0.99071062, 0.44106126], 325 [- 3.92261876, - 0.00602782, 0.00323750, 4.91659094, 0.97871350, 0.99073468, 0.44102790], 326 [- 3.92731089, - 0.00601364, 0.00322784, 4.92129724, 0.97876153, 0.99075852, 0.44099621], 327 [- 3.93200144, - 0.00599958, 0.00321826, 4.92600186, 0.97880926, 0.99078215, 0.44096618], 328 [- 3.93669036, - 0.00598564, 0.00320878, 4.93070472, 0.97885669, 0.99080558, 0.44093779], 329 [- 3.94137761, - 0.00597181, 0.00319939, 4.93540580, 0.97890383, 0.99082880, 0.44091101], 330 [- 3.94606313, - 0.00595809, 0.00319009, 4.94010504, 0.97895067, 0.99085182, 0.44088584], 331 [- 3.95074687, - 0.00594449, 0.00318088, 4.94480238, 0.97899722, 0.99087463, 0.44086225], 332 [- 3.95542878, - 0.00593099, 0.00317175, 4.94949779, 0.97904349, 0.99089725, 0.44084022], 333 [- 3.96010882, - 0.00591761, 0.00316271, 4.95419121, 0.97908947, 0.99091968, 0.44081975], 334 [- 3.96478693, - 0.00590433, 0.00315376, 4.95888260, 0.97913517, 0.99094191, 0.44080080], 335 [- 3.96946306, - 0.00589116, 0.00314489, 4.96357191, 0.97918060, 0.99096395, 0.44078336], 336 [- 3.97413718, - 0.00587809, 0.00313611, 4.96825909, 0.97922575, 0.99098581, 0.44076742], 337 [- 3.97880922, - 0.00586512, 0.00312740, 4.97294410, 0.97927063, 0.99100747, 0.44075296], 338 [- 3.98347915, - 0.00585226, 0.00311878, 4.97762689, 0.97931524, 0.99102895, 0.44073996], 339 [- 3.98814692, - 0.00583950, 0.00311024, 4.98230742, 0.97935959, 0.99105026, 0.44072841], 340 [- 3.99281247, - 0.00582684, 0.00310178, 4.98698564, 0.97940367, 0.99107138, 0.44071828], 341 [- 3.99747577, - 0.00581428, 0.00309340, 4.99166150, 0.97944749, 0.99109232, 0.44070956], 342 [- 4.00213677, - 0.00580181, 0.00308510, 4.99633496, 0.97949105, 0.99111309, 0.44070224], 343 [- 4.00679542, - 0.00578944, 0.00307688, 5.00100598, 0.97953436, 0.99113368, 0.44069630], 344 [- 4.01145168, - 0.00577717, 0.00306873, 5.00567451, 0.97957741, 0.99115410, 0.44069173], 345 [- 4.01610551, - 0.00576499, 0.00306065, 5.01034052, 0.97962021, 0.99117436, 0.44068850], 346 [- 4.02075685, - 0.00575290, 0.00305266, 5.01500395, 0.97966277, 0.99119444, 0.44068660], 347 [- 4.02540567, - 0.00574091, 0.00304473, 5.01966476, 0.97970508, 0.99121436, 0.44068602], 348 [- 4.03005191, - 0.00572900, 0.00303688, 5.02432291, 0.97974715, 0.99123412, 0.44068674], 349 [- 4.03469555, - 0.00571719, 0.00302910, 5.02897837, 0.97978897, 0.99125371, 0.44068875], 350 [- 4.03933654, - 0.00570546, 0.00302139, 5.03363108, 0.97983056, 0.99127315, 0.44069203], 351 [- 4.04397482, - 0.00569382, 0.00301375, 5.03828100, 0.97987192, 0.99129242, 0.44069657], 352 [- 4.04861037, - 0.00568227, 0.00300619, 5.04292810, 0.97991304, 0.99131154, 0.44070234], 353 [- 4.05324314, - 0.00567080, 0.00299869, 5.04757234, 0.97995393, 0.99133051, 0.44070935], 354 [- 4.05787308, - 0.00565942, 0.00299126, 5.05221367, 0.97999459, 0.99134932, 0.44071756], 355 [- 4.06250017, - 0.00564812, 0.00298390, 5.05685205, 0.98003502, 0.99136799, 0.44072698], 356 [- 4.06712435, - 0.00563690, 0.00297660, 5.06148744, 0.98007523, 0.99138650, 0.44073757], 357 [- 4.07174558, - 0.00562577, 0.00296937, 5.06611981, 0.98011522, 0.99140486, 0.44074934], 358 [- 4.07636383, - 0.00561471, 0.00296221, 5.07074912, 0.98015498, 0.99142308, 0.44076227], 359 [- 4.08097906, - 0.00560374, 0.00295511, 5.07537532, 0.98019453, 0.99144116, 0.44077633], 360 [- 4.08559122, - 0.00559284, 0.00294807, 5.07999838, 0.98023386, 0.99145909, 0.44079153], 361 [- 4.09020028, - 0.00558202, 0.00294110, 5.08461826, 0.98027298, 0.99147688, 0.44080784], 362 [- 4.09480620, - 0.00557128, 0.00293419, 5.08923492, 0.98031189, 0.99149453, 0.44082525], 363 [- 4.09940894, - 0.00556061, 0.00292734, 5.09384833, 0.98035059, 0.99151204, 0.44084375], 364 [- 4.10400846, - 0.00555002, 0.00292056, 5.09845844, 0.98038908, 0.99152942, 0.44086333], 365 [- 4.10860473, - 0.00553950, 0.00291383, 5.10306522, 0.98042736, 0.99154666, 0.44088396], 366 [- 4.11319770, - 0.00552906, 0.00290717, 5.10766864, 0.98046544, 0.99156377, 0.44090565], 367 [- 4.11778734, - 0.00551869, 0.00290056, 5.11226865, 0.98050332, 0.99158075, 0.44092838], 368 [- 4.12237362, - 0.00550839, 0.00289401, 5.11686523, 0.98054100, 0.99159760, 0.44095213], 369 [- 4.12695649, - 0.00549816, 0.00288752, 5.12145833, 0.98057848, 0.99161431, 0.44097689], 370 [- 4.13153592, - 0.00548801, 0.00288109, 5.12604792, 0.98061577, 0.99163090, 0.44100265], 371 [- 4.13611188, - 0.00547792, 0.00287471, 5.13063396, 0.98065286, 0.99164737, 0.44102940], 372 [- 4.14068433, - 0.00546790, 0.00286839, 5.13521643, 0.98068975, 0.99166371, 0.44105712], 373 [- 4.14525323, - 0.00545795, 0.00286213, 5.13979528, 0.98072646, 0.99167992, 0.44108581], 374 [- 4.14981854, - 0.00544806, 0.00285592, 5.14437048, 0.98076298, 0.99169602, 0.44111544], 375 [- 4.15438025, - 0.00543824, 0.00284976, 5.14894200, 0.98079931, 0.99171199, 0.44114602], 376 [- 4.15893830, - 0.00542849, 0.00284366, 5.15350981, 0.98083545, 0.99172785, 0.44117753], 377 [- 4.16349267, - 0.00541880, 0.00283761, 5.15807386, 0.98087141, 0.99174358, 0.44120995], 378 [- 4.16804332, - 0.00540918, 0.00283162, 5.16263414, 0.98090719, 0.99175920, 0.44124328], 379 [- 4.17259021, - 0.00539962, 0.00282567, 5.16719060, 0.98094278, 0.99177471, 0.44127750], 380 [- 4.17713333, - 0.00539012, 0.00281978, 5.17174321, 0.98097820, 0.99179010, 0.44131260], 381 [- 4.18167262, - 0.00538069, 0.00281394, 5.17629194, 0.98101344, 0.99180537, 0.44134857], 382 [- 4.18620807, - 0.00537131, 0.00280815, 5.18083676, 0.98104851, 0.99182054, 0.44138541], 383 [- 4.19073963, - 0.00536200, 0.00280241, 5.18537763, 0.98108340, 0.99183560, 0.44142309], 384 [- 4.19526728, - 0.00535274, 0.00279671, 5.18991453, 0.98111811, 0.99185054, 0.44146162], 385 [- 4.19979098, - 0.00534355, 0.00279107, 5.19444743, 0.98115266, 0.99186538, 0.44150097], 386 [- 4.20431070, - 0.00533441, 0.00278548, 5.19897629, 0.98118704, 0.99188011, 0.44154114], 387 [- 4.20882641, - 0.00532534, 0.00277993, 5.20350108, 0.98122125, 0.99189474, 0.44158211], 388 [- 4.21333809, - 0.00531632, 0.00277443, 5.20802177, 0.98125529, 0.99190926, 0.44162389], 389 [- 4.21784569, - 0.00530735, 0.00276897, 5.21253834, 0.98128916, 0.99192367, 0.44166645], 390 [- 4.22234919, - 0.00529845, 0.00276357, 5.21705075, 0.98132288, 0.99193799, 0.44170979], 391 [- 4.22684856, - 0.00528959, 0.00275820, 5.22155897, 0.98135643, 0.99195220, 0.44175389], 392 [- 4.23134377, - 0.00528080, 0.00275289, 5.22606297, 0.98138982, 0.99196631, 0.44179875], 393 [- 4.23583479, - 0.00527206, 0.00274762, 5.23056273, 0.98142305, 0.99198033, 0.44184436], 394 [- 4.24032159, - 0.00526337, 0.00274239, 5.23505822, 0.98145612, 0.99199424, 0.44189070], 395 [- 4.24480413, - 0.00525473, 0.00273720, 5.23954940, 0.98148904, 0.99200806, 0.44193777], 396 [- 4.24928241, - 0.00524615, 0.00273206, 5.24403626, 0.98152180, 0.99202179, 0.44198557], 397 [- 4.25375637, - 0.00523762, 0.00272697, 5.24851875, 0.98155440, 0.99203541, 0.44203406], 398 [- 4.25822600, - 0.00522914, 0.00272191, 5.25299686, 0.98158685, 0.99204895, 0.44208326], 399 [- 4.26269127, - 0.00522071, 0.00271690, 5.25747055, 0.98161916, 0.99206239, 0.44213315], 400 [- 4.26715214, - 0.00521233, 0.00271193, 5.26193981, 0.98165131, 0.99207574, 0.44218372], 401 [- 4.27160860, - 0.00520401, 0.00270700, 5.26640459, 0.98168331, 0.99208900, 0.44223496], 402 [- 4.27606061, - 0.00519573, 0.00270211, 5.27086489, 0.98171516, 0.99210217, 0.44228686], 403 [- 4.28050816, - 0.00518750, 0.00269726, 5.27532066, 0.98174687, 0.99211524, 0.44233942], 404 [- 4.28495120, - 0.00517932, 0.00269245, 5.27977188, 0.98177844, 0.99212824, 0.44239262], 405 [- 4.28938971, - 0.00517119, 0.00268767, 5.28421853, 0.98180986, 0.99214114, 0.44244646], 406 [- 4.29382368, - 0.00516310, 0.00268294, 5.28866058, 0.98184113, 0.99215396, 0.44250093], 407 [- 4.29825306, - 0.00515506, 0.00267825, 5.29309800, 0.98187227, 0.99216669, 0.44255601], 408 [- 4.30267785, - 0.00514707, 0.00267359, 5.29753078, 0.98190326, 0.99217934, 0.44261171], 409 [- 4.30709800, - 0.00513912, 0.00266898, 5.30195888, 0.98193412, 0.99219190, 0.44266801], 410 [- 4.31151350, - 0.00513122, 0.00266440, 5.30638227, 0.98196483, 0.99220438, 0.44272490], 411 [- 4.31592431, - 0.00512337, 0.00265985, 5.31080095, 0.98199542, 0.99221678, 0.44278238], 412 [- 4.32033043, - 0.00511555, 0.00265535, 5.31521487, 0.98202586, 0.99222910, 0.44284044], 413 [- 4.32473181, - 0.00510779, 0.00265088, 5.31962403, 0.98205617, 0.99224134, 0.44289907], 414 [- 4.32912844, - 0.00510006, 0.00264644, 5.32402838, 0.98208635, 0.99225350, 0.44295825], 415 [- 4.33352030, - 0.00509238, 0.00264204, 5.32842792, 0.98211639, 0.99226558, 0.44301800], 416 [- 4.33790735, - 0.00508474, 0.00263768, 5.33282261, 0.98214630, 0.99227758, 0.44307829], 417 [- 4.34228957, - 0.00507715, 0.00263335, 5.33721243, 0.98217609, 0.99228950, 0.44313911], 418 [- 4.34666695, - 0.00506959, 0.00262906, 5.34159736, 0.98220574, 0.99230135, 0.44320047], 419 [- 4.35103946, - 0.00506208, 0.00262479, 5.34597738, 0.98223526, 0.99231313, 0.44326235], 420 [- 4.35540706, - 0.00505461, 0.00262057, 5.35035246, 0.98226466, 0.99232483, 0.44332475], 421 [- 4.35976976, - 0.00504718, 0.00261637, 5.35472258, 0.98229393, 0.99233645, 0.44338766], 422 [- 4.36412751, - 0.00503978, 0.00261221, 5.35908772, 0.98232308, 0.99234800, 0.44345107], 423 [- 4.36848029, - 0.00503243, 0.00260808, 5.36344786, 0.98235210, 0.99235949, 0.44351497], 424 [- 4.37282810, - 0.00502512, 0.00260399, 5.36780298, 0.98238100, 0.99237089, 0.44357936], 425 [- 4.37717089, - 0.00501785, 0.00259992, 5.37215304, 0.98240977, 0.99238223, 0.44364422], 426 [- 4.38150866, - 0.00501061, 0.00259589, 5.37649804, 0.98243843, 0.99239350, 0.44370956], 427 [- 4.38584137, - 0.00500341, 0.00259189, 5.38083796, 0.98246696, 0.99240470, 0.44377537], 428 [- 4.39016901, - 0.00499626, 0.00258792, 5.38517276, 0.98249538, 0.99241583, 0.44384163], 429 [- 4.39449156, - 0.00498913, 0.00258397, 5.38950243, 0.98252368, 0.99242689, 0.44390835], 430 [- 4.39880900, - 0.00498205, 0.00258006, 5.39382695, 0.98255186, 0.99243789, 0.44397551], 431 [- 4.40312130, - 0.00497500, 0.00257618, 5.39814630, 0.98257992, 0.99244881, 0.44404311], 432 [- 4.40742845, - 0.00496799, 0.00257233, 5.40246046, 0.98260787, 0.99245968, 0.44411114], 433 [- 4.41173042, - 0.00496101, 0.00256851, 5.40676940, 0.98263570, 0.99247047, 0.44417960], 434 [- 4.41602719, - 0.00495407, 0.00256472, 5.41107312, 0.98266342, 0.99248121, 0.44424847], 435 [- 4.42031875, - 0.00494717, 0.00256096, 5.41537158, 0.98269102, 0.99249187, 0.44431776], 436 [- 4.42460508, - 0.00494030, 0.00255722, 5.41966478, 0.98271852, 0.99250248, 0.44438745], 437 [- 4.42888615, - 0.00493346, 0.00255351, 5.42395268, 0.98274590, 0.99251302, 0.44445755], 438 [- 4.43316194, - 0.00492666, 0.00254984, 5.42823528, 0.98277317, 0.99252350, 0.44452803], 439 [- 4.43743244, - 0.00491989, 0.00254618, 5.43251255, 0.98280033, 0.99253392, 0.44459891], 440 [- 4.44169763, - 0.00491316, 0.00254256, 5.43678447, 0.98282738, 0.99254428, 0.44467016], 441 [- 4.44595749, - 0.00490646, 0.00253896, 5.44105103, 0.98285433, 0.99255458, 0.44474179], 442 [- 4.45021200, - 0.00489979, 0.00253539, 5.44531221, 0.98288117, 0.99256482, 0.44481379], 443 [- 4.45446115, - 0.00489316, 0.00253185, 5.44956799, 0.98290790, 0.99257500, 0.44488616], 444 [- 4.45870490, - 0.00488655, 0.00252833, 5.45381835, 0.98293452, 0.99258512, 0.44495888], 445 [- 4.46294326, - 0.00487998, 0.00252484, 5.45806327, 0.98296105, 0.99259518, 0.44503195], 446 [- 4.46717619, - 0.00487344, 0.00252137, 5.46230275, 0.98298746, 0.99260519, 0.44510537], 447 [- 4.47140368, - 0.00486693, 0.00251793, 5.46653675, 0.98301378, 0.99261514, 0.44517912], 448 [- 4.47562571, - 0.00486046, 0.00251451, 5.47076526, 0.98303999, 0.99262503, 0.44525322], 449 [- 4.47984227, - 0.00485401, 0.00251112, 5.47498827, 0.98306610, 0.99263487, 0.44532764], 450 [- 4.48405334, - 0.00484759, 0.00250775, 5.47920575, 0.98309211, 0.99264465, 0.44540238], 451 [- 4.48825891, - 0.00484121, 0.00250441, 5.48341770, 0.98311802, 0.99265438, 0.44547744], 452 [- 4.49245894, - 0.00483485, 0.00250109, 5.48762409, 0.98314383, 0.99266406, 0.44555282], 453 [- 4.49665344, - 0.00482852, 0.00249780, 5.49182492, 0.98316954, 0.99267368, 0.44562850], 454 [- 4.50084238, - 0.00482223, 0.00249453, 5.49602015, 0.98319515, 0.99268325, 0.44570449], 455 [- 4.50502575, - 0.00481596, 0.00249128, 5.50020979, 0.98322067, 0.99269277, 0.44578077], 456 [- 4.50920352, - 0.00480972, 0.00248805, 5.50439380, 0.98324609, 0.99270223, 0.44585734], 457 [- 4.51337569, - 0.00480350, 0.00248485, 5.50857219, 0.98327141, 0.99271164, 0.44593420], 458 [- 4.51754224, - 0.00479732, 0.00248167, 5.51274492, 0.98329664, 0.99272101, 0.44601134], 459 [- 4.52170315, - 0.00479117, 0.00247851, 5.51691199, 0.98332177, 0.99273032, 0.44608876], 460 [- 4.52585842, - 0.00478504, 0.00247538, 5.52107338, 0.98334681, 0.99273958, 0.44616645], 461 [- 4.53000801, - 0.00477894, 0.00247227, 5.52522907, 0.98337176, 0.99274880, 0.44624440], 462 [- 4.53415192, - 0.00477286, 0.00246917, 5.52937906, 0.98339661, 0.99275796, 0.44632262], 463 [- 4.53829014, - 0.00476682, 0.00246610, 5.53352332, 0.98342137, 0.99276708, 0.44640109], 464 [- 4.54242264, - 0.00476080, 0.00246306, 5.53766184, 0.98344605, 0.99277615, 0.44647982], 465 [- 4.54654942, - 0.00475480, 0.00246003, 5.54179461, 0.98347063, 0.99278517, 0.44655879], 466 [- 4.55067046, - 0.00474884, 0.00245702, 5.54592162, 0.98349512, 0.99279414, 0.44663801], 467 [- 4.55478574, - 0.00474290, 0.00245404, 5.55004285, 0.98351952, 0.99280307, 0.44671746], 468 [- 4.55889526, - 0.00473698, 0.00245107, 5.55415828, 0.98354383, 0.99281195, 0.44679715], 469 [- 4.56299899, - 0.00473109, 0.00244812, 5.55826790, 0.98356806, 0.99282079, 0.44687706], 470 [- 4.56709693, - 0.00472522, 0.00244520, 5.56237170, 0.98359219, 0.99282958, 0.44695720], 471 [- 4.57118906, - 0.00471938, 0.00244229, 5.56646967, 0.98361625, 0.99283832, 0.44703756], 472 [- 4.57527536, - 0.00471357, 0.00243940, 5.57056179, 0.98364021, 0.99284703, 0.44711814], 473 [- 4.57935583, - 0.00470778, 0.00243654, 5.57464806, 0.98366409, 0.99285569, 0.44719893], 474 [- 4.58343045, - 0.00470201, 0.00243369, 5.57872844, 0.98368788, 0.99286430, 0.44727992], 475 [- 4.58749921, - 0.00469627, 0.00243086, 5.58280295, 0.98371159, 0.99287287, 0.44736112], 476 [- 4.59156210, - 0.00469055, 0.00242805, 5.58687155, 0.98373522, 0.99288140, 0.44744252], 477 [- 4.59561910, - 0.00468485, 0.00242526, 5.59093424, 0.98375876, 0.99288989, 0.44752411], 478 [- 4.59967020, - 0.00467918, 0.00242248, 5.59499102, 0.98378222, 0.99289833, 0.44760589], 479 [- 4.60371538, - 0.00467353, 0.00241973, 5.59904185, 0.98380560, 0.99290674, 0.44768785], 480 [- 4.60775465, - 0.00466791, 0.00241699, 5.60308674, 0.98382890, 0.99291510, 0.44777000], 481 [- 4.61178797, - 0.00466230, 0.00241427, 5.60712567, 0.98385211, 0.99292343, 0.44785233], 482 [- 4.61581536, - 0.00465672, 0.00241157, 5.61115863, 0.98387525, 0.99293171, 0.44793483], 483 [- 4.61983678, - 0.00465116, 0.00240889, 5.61518561, 0.98389830, 0.99293995, 0.44801750], 484 [- 4.62385223, - 0.00464563, 0.00240622, 5.61920660, 0.98392128, 0.99294815, 0.44810034], 485 [- 4.62786170, - 0.00464011, 0.00240357, 5.62322158, 0.98394418, 0.99295632, 0.44818334], 486 [- 4.63186517, - 0.00463462, 0.00240093, 5.62723055, 0.98396700, 0.99296444, 0.44826650], 487 [- 4.63586264, - 0.00462915, 0.00239832, 5.63123349, 0.98398974, 0.99297253, 0.44834982], 488 [- 4.63985410, - 0.00462370, 0.00239572, 5.63523040, 0.98401240, 0.99298058, 0.44843328], 489 [- 4.64383953, - 0.00461827, 0.00239313, 5.63922126, 0.98403499, 0.99298859, 0.44851690], 490 [- 4.64781892, - 0.00461286, 0.00239057, 5.64320606, 0.98405750, 0.99299657, 0.44860066], 491 [- 4.65179227, - 0.00460748, 0.00238802, 5.64718479, 0.98407993, 0.99300451, 0.44868455], 492 [- 4.65575956, - 0.00460211, 0.00238548, 5.65115744, 0.98410229, 0.99301241, 0.44876859], 493 [- 4.65972078, - 0.00459677, 0.00238296, 5.65512401, 0.98412458, 0.99302027, 0.44885276], 494 [- 4.66367592, - 0.00459144, 0.00238046, 5.65908448, 0.98414679, 0.99302810, 0.44893706], 495 [- 4.66762497, - 0.00458614, 0.00237797, 5.66303884, 0.98416893, 0.99303590, 0.44902148], 496 [- 4.67156793, - 0.00458085, 0.00237549, 5.66698708, 0.98419099, 0.99304366, 0.44910603], 497 [- 4.67550478, - 0.00457558, 0.00237303, 5.67092920, 0.98421298, 0.99305138, 0.44919070], 498 [- 4.67943552, - 0.00457034, 0.00237059, 5.67486518, 0.98423490, 0.99305907, 0.44927549], 499 [- 4.68336012, - 0.00456511, 0.00236816, 5.67879501, 0.98425675, 0.99306673, 0.44936038], 500 [- 4.68727860, - 0.00455990, 0.00236575, 5.68271869, 0.98427852, 0.99307435, 0.44944539], 501 [- 4.69119092, - 0.00455472, 0.00236335, 5.68663621, 0.98430023, 0.99308194, 0.44953051], 502 [- 4.69509710, - 0.00454955, 0.00236096, 5.69054755, 0.98432186, 0.99308949, 0.44961572], 503 [- 4.69899711, - 0.00454440, 0.00235859, 5.69445271, 0.98434343, 0.99309701, 0.44970104], 504 [- 4.70289095, - 0.00453926, 0.00235623, 5.69835168, 0.98436492, 0.99310450, 0.44978646], 505 [- 4.70677861, - 0.00453415, 0.00235389, 5.70224446, 0.98438635, 0.99311196, 0.44987197], 506 [- 4.71066008, - 0.00452905, 0.00235156, 5.70613103, 0.98440771, 0.99311939, 0.44995757], 507 [- 4.71453535, - 0.00452398, 0.00234924, 5.71001138, 0.98442899, 0.99312678, 0.45004326], 508 [- 4.71840442, - 0.00451892, 0.00234694, 5.71388551, 0.98445021, 0.99313414, 0.45012903], 509 [- 4.72226728, - 0.00451387, 0.00234465, 5.71775341, 0.98447137, 0.99314147, 0.45021488], 510 [- 4.72612392, - 0.00450885, 0.00234237, 5.72161507, 0.98449245, 0.99314877, 0.45030082], 511 [- 4.72997433, - 0.00450384, 0.00234011, 5.72547048, 0.98451347, 0.99315604, 0.45038683], 512 [- 4.73381850, - 0.00449885, 0.00233786, 5.72931964, 0.98453443, 0.99316328, 0.45047291], 513 [- 4.73765643, - 0.00449388, 0.00233562, 5.73316254, 0.98455532, 0.99317049, 0.45055907], 514 [- 4.74148810, - 0.00448893, 0.00233340, 5.73699917, 0.98457614, 0.99317767, 0.45064529], 515 [- 4.74531352, - 0.00448399, 0.00233119, 5.74082953, 0.98459690, 0.99318483, 0.45073158], 516 [- 4.74913267, - 0.00447907, 0.00232899, 5.74465360, 0.98461759, 0.99319195, 0.45081792], 517 [- 4.75294555, - 0.00447416, 0.00232680, 5.74847138, 0.98463822, 0.99319904, 0.45090433], 518 [- 4.75675214, - 0.00446927, 0.00232462, 5.75228287, 0.98465878, 0.99320610, 0.45099080], 519 [- 4.76055246, - 0.00446440, 0.00232246, 5.75608805, 0.98467929, 0.99321314, 0.45107732], 520 [- 4.76434647, - 0.00445955, 0.00232031, 5.75988693, 0.98469973, 0.99322015, 0.45116389], 521 [- 4.76813419, - 0.00445471, 0.00231816, 5.76367948, 0.98472010, 0.99322713, 0.45125051], 522 [- 4.77191560, - 0.00444988, 0.00231604, 5.76746572, 0.98474042, 0.99323408, 0.45133717], 523 [- 4.77569070, - 0.00444507, 0.00231392, 5.77124562, 0.98476067, 0.99324101, 0.45142388], 524 [- 4.77945947, - 0.00444028, 0.00231181, 5.77501919, 0.98478086, 0.99324791, 0.45151063], 525 [- 4.78322192, - 0.00443550, 0.00230972, 5.77878642, 0.98480099, 0.99325478, 0.45159742], 526 [- 4.78697804, - 0.00443074, 0.00230763, 5.78254730, 0.98482106, 0.99326162, 0.45168425], 527 [- 4.79072783, - 0.00442600, 0.00230556, 5.78630183, 0.98484107, 0.99326844, 0.45177111], 528 [- 4.79447127, - 0.00442127, 0.00230350, 5.79005000, 0.98486102, 0.99327523, 0.45185800], 529 [- 4.79820836, - 0.00441655, 0.00230145, 5.79379181, 0.98488091, 0.99328200, 0.45194492], 530 [- 4.80193909, - 0.00441185, 0.00229941, 5.79752724, 0.98490074, 0.99328874, 0.45203187], 531 [- 4.80566347, - 0.00440716, 0.00229738, 5.80125630, 0.98492051, 0.99329546, 0.45211884], 532 [- 4.80938148, - 0.00440249, 0.00229536, 5.80497899, 0.98494022, 0.99330215, 0.45220583], 533 [- 4.81309312, - 0.00439783, 0.00229335, 5.80869528, 0.98495988, 0.99330881, 0.45229285], 534 [- 4.81679838, - 0.00439319, 0.00229135, 5.81240519, 0.98497947, 0.99331546, 0.45237988], 535 [- 4.82049726, - 0.00438856, 0.00228937, 5.81610870, 0.98499901, 0.99332207, 0.45246692], 536 [- 4.82418976, - 0.00438395, 0.00228739, 5.81980581, 0.98501850, 0.99332866, 0.45255398], 537 [- 4.82787587, - 0.00437935, 0.00228542, 5.82349652, 0.98503792, 0.99333523, 0.45264105], 538 [- 4.83155558, - 0.00437476, 0.00228346, 5.82718082, 0.98505729, 0.99334178, 0.45272813], 539 [- 4.83522889, - 0.00437019, 0.00228151, 5.83085870, 0.98507660, 0.99334830, 0.45281521], 540 [- 4.83889580, - 0.00436563, 0.00227957, 5.83453017, 0.98509586, 0.99335480, 0.45290231], 541 [- 4.84255630, - 0.00436109, 0.00227764, 5.83819521, 0.98511506, 0.99336127, 0.45298940], 542 [- 4.84621038, - 0.00435656, 0.00227572, 5.84185383, 0.98513421, 0.99336772, 0.45307649], 543 [- 4.84985805, - 0.00435204, 0.00227381, 5.84550601, 0.98515330, 0.99337415, 0.45316358], 544 [- 4.85349930, - 0.00434753, 0.00227191, 5.84915177, 0.98517233, 0.99338056, 0.45325067], 545 [- 4.85713412, - 0.00434304, 0.00227002, 5.85279108, 0.98519132, 0.99338694, 0.45333775], 546 [- 4.86076252, - 0.00433856, 0.00226813, 5.85642396, 0.98521024, 0.99339330, 0.45342482], 547 [- 4.86438448, - 0.00433410, 0.00226626, 5.86005038, 0.98522912, 0.99339964, 0.45351189], 548 [- 4.86800001, - 0.00432965, 0.00226439, 5.86367036, 0.98524794, 0.99340596, 0.45359894], 549 [- 4.87160909, - 0.00432521, 0.00226253, 5.86728389, 0.98526671, 0.99341226, 0.45368598], 550 [- 4.87521174, - 0.00432078, 0.00226069, 5.87089096, 0.98528542, 0.99341853, 0.45377301], 551 [- 4.87880793, - 0.00431637, 0.00225885, 5.87449157, 0.98530409, 0.99342479, 0.45386001], 552 [- 4.88239768, - 0.00431196, 0.00225701, 5.87808572, 0.98532270, 0.99343102, 0.45394700], 553 [- 4.88598098, - 0.00430758, 0.00225519, 5.88167340, 0.98534126, 0.99343723, 0.45403397], 554 [- 4.88955781, - 0.00430320, 0.00225338, 5.88525462, 0.98535976, 0.99344342, 0.45412092], 555 [- 4.89312819, - 0.00429883, 0.00225157, 5.88882936, 0.98537822, 0.99344960, 0.45420784], 556 [- 4.89669211, - 0.00429448, 0.00224977, 5.89239763, 0.98539662, 0.99345575, 0.45429473], 557 [- 4.90024957, - 0.00429014, 0.00224798, 5.89595942, 0.98541498, 0.99346188, 0.45438160], 558 [- 4.90380055, - 0.00428581, 0.00224620, 5.89951474, 0.98543328, 0.99346799, 0.45446844], 559 [- 4.90734507, - 0.00428150, 0.00224442, 5.90306357, 0.98545154, 0.99347408, 0.45455524], 560 [- 4.91088312, - 0.00427719, 0.00224266, 5.90660592, 0.98546974, 0.99348015, 0.45464201], 561 [- 4.91441469, - 0.00427290, 0.00224090, 5.91014179, 0.98548790, 0.99348620, 0.45472875], 562 [- 4.91793978, - 0.00426862, 0.00223915, 5.91367116, 0.98550600, 0.99349224, 0.45481546], 563 [- 4.92145840, - 0.00426435, 0.00223740, 5.91719405, 0.98552406, 0.99349825, 0.45490212], 564 [- 4.92497053, - 0.00426009, 0.00223566, 5.92071044, 0.98554206, 0.99350425, 0.45498875], 565 [- 4.92847618, - 0.00425584, 0.00223394, 5.92422034, 0.98556002, 0.99351022, 0.45507533], 566 [- 4.93197535, - 0.00425160, 0.00223221, 5.92772375, 0.98557793, 0.99351618, 0.45516187], 567 [- 4.93546803, - 0.00424738, 0.00223050, 5.93122065, 0.98559579, 0.99352212, 0.45524837], 568 [- 4.93895423, - 0.00424317, 0.00222879, 5.93471106, 0.98561361, 0.99352804, 0.45533482], 569 [- 4.94243393, - 0.00423896, 0.00222709, 5.93819497, 0.98563138, 0.99353395, 0.45542123], 570 [- 4.94590714, - 0.00423477, 0.00222540, 5.94167237, 0.98564910, 0.99353983, 0.45550758], 571 [- 4.94937386, - 0.00423059, 0.00222371, 5.94514327, 0.98566677, 0.99354570, 0.45559389], 572 [- 4.95283409, - 0.00422642, 0.00222203, 5.94860767, 0.98568439, 0.99355155, 0.45568014], 573 [- 4.95628782, - 0.00422226, 0.00222036, 5.95206556, 0.98570197, 0.99355738, 0.45576634], 574 [- 4.95973505, - 0.00421811, 0.00221869, 5.95551694, 0.98571951, 0.99356320, 0.45585249], 575 [- 4.96317579, - 0.00421397, 0.00221703, 5.95896181, 0.98573699, 0.99356900, 0.45593858], 576 [- 4.96661002, - 0.00420984, 0.00221538, 5.96240018, 0.98575444, 0.99357478, 0.45602462], 577 [- 4.97003776, - 0.00420573, 0.00221373, 5.96583204, 0.98577183, 0.99358054, 0.45611059], 578 [- 4.97345900, - 0.00420162, 0.00221209, 5.96925738, 0.98578918, 0.99358629, 0.45619651], 579 [- 4.97687374, - 0.00419752, 0.00221046, 5.97267622, 0.98580649, 0.99359202, 0.45628236], 580 [- 4.98028197, - 0.00419344, 0.00220883, 5.97608854, 0.98582375, 0.99359774, 0.45636816], 581 [- 4.98368371, - 0.00418936, 0.00220721, 5.97949435, 0.98584096, 0.99360343, 0.45645388], 582 [- 4.98707894, - 0.00418529, 0.00220559, 5.98289365, 0.98585814, 0.99360912, 0.45653955], 583 [- 4.99046767, - 0.00418123, 0.00220398, 5.98628643, 0.98587526, 0.99361478, 0.45662514], 584 [- 4.99384989, - 0.00417719, 0.00220238, 5.98967270, 0.98589235, 0.99362043, 0.45671067], 585 [- 4.99722561, - 0.00417315, 0.00220078, 5.99305246, 0.98590939, 0.99362607, 0.45679613], 586 [- 5.00059483, - 0.00416912, 0.00219919, 5.99642571, 0.98592638, 0.99363169, 0.45688152], 587 [- 5.00395754, - 0.00416511, 0.00219761, 5.99979244, 0.98594334, 0.99363729, 0.45696684], 588 [- 5.00731375, - 0.00416110, 0.00219603, 6.00315266, 0.98596025, 0.99364288, 0.45705209], 589 [- 5.01066346, - 0.00415710, 0.00219445, 6.00650636, 0.98597712, 0.99364845, 0.45713726], 590 [- 5.01400667, - 0.00415311, 0.00219288, 6.00985356, 0.98599394, 0.99365401, 0.45722236], 591 [- 5.01734337, - 0.00414913, 0.00219132, 6.01319424, 0.98601072, 0.99365955, 0.45730738], 592 [- 5.02067356, - 0.00414516, 0.00218976, 6.01652841, 0.98602746, 0.99366508, 0.45739233], 593 [- 5.02399726, - 0.00414120, 0.00218821, 6.01985606, 0.98604416, 0.99367059, 0.45747719], 594 [- 5.02731445, - 0.00413724, 0.00218666, 6.02317721, 0.98606082, 0.99367609, 0.45756198], 595 [- 5.03062515, - 0.00413330, 0.00218512, 6.02649184, 0.98607744, 0.99368157, 0.45764669], 596 [- 5.03392934, - 0.00412937, 0.00218359, 6.02979997, 0.98609401, 0.99368704, 0.45773131], 597 [- 5.03722703, - 0.00412544, 0.00218206, 6.03310159, 0.98611054, 0.99369250, 0.45781585], 598 [- 5.04051822, - 0.00412153, 0.00218053, 6.03639670, 0.98612704, 0.99369794, 0.45790031], 599 [- 5.04380292, - 0.00411762, 0.00217901, 6.03968530, 0.98614349, 0.99370337, 0.45798469], 600 [- 5.04708112, - 0.00411372, 0.00217750, 6.04296739, 0.98615990, 0.99370878, 0.45806897], 601 [- 5.05035282, - 0.00410983, 0.00217599, 6.04624299, 0.98617627, 0.99371418, 0.45815318], 602 [- 5.05361802, - 0.00410595, 0.00217448, 6.04951207, 0.98619260, 0.99371957, 0.45823729], 603 [- 5.05687674, - 0.00410208, 0.00217298, 6.05277466, 0.98620889, 0.99372494, 0.45832131], 604 [- 5.06012896, - 0.00409821, 0.00217148, 6.05603074, 0.98622514, 0.99373030, 0.45840525], 605 [- 5.06337469, - 0.00409436, 0.00216999, 6.05928033, 0.98624135, 0.99373565, 0.45848909], 606 [- 5.06661393, - 0.00409051, 0.00216851, 6.06252341, 0.98625753, 0.99374098, 0.45857285], 607 [- 5.06984668, - 0.00408668, 0.00216703, 6.06576000, 0.98627366, 0.99374630, 0.45865651], 608 [- 5.07307294, - 0.00408285, 0.00216555, 6.06899010, 0.98628975, 0.99375161, 0.45874007], 609 [- 5.07629272, - 0.00407902, 0.00216408, 6.07221370, 0.98630581, 0.99375690, 0.45882355], 610 [- 5.07950602, - 0.00407521, 0.00216261, 6.07543081, 0.98632182, 0.99376218, 0.45890693], 611 [- 5.08271283, - 0.00407141, 0.00216115, 6.07864143, 0.98633780, 0.99376745, 0.45899021], 612 [- 5.08591317, - 0.00406761, 0.00215969, 6.08184556, 0.98635374, 0.99377270, 0.45907339], 613 [- 5.08910703, - 0.00406382, 0.00215823, 6.08504321, 0.98636965, 0.99377795, 0.45915648], 614 [- 5.09229441, - 0.00406004, 0.00215678, 6.08823437, 0.98638551, 0.99378318, 0.45923947], 615 [- 5.09547532, - 0.00405627, 0.00215534, 6.09141905, 0.98640134, 0.99378840, 0.45932235], 616 [- 5.09864975, - 0.00405250, 0.00215390, 6.09459725, 0.98641713, 0.99379360, 0.45940514], 617 [- 5.10181772, - 0.00404874, 0.00215246, 6.09776897, 0.98643288, 0.99379880, 0.45948783], 618 [- 5.10497922, - 0.00404500, 0.00215102, 6.10093422, 0.98644859, 0.99380398, 0.45957041], 619 [- 5.10813425, - 0.00404125, 0.00214960, 6.10409300, 0.98646427, 0.99380915, 0.45965289], 620 [- 5.11128282, - 0.00403752, 0.00214817, 6.10724530, 0.98647991, 0.99381431, 0.45973527], 621 [- 5.11442494, - 0.00403379, 0.00214675, 6.11039114, 0.98649552, 0.99381946, 0.45981755], 622 [- 5.11756059, - 0.00403008, 0.00214533, 6.11353051, 0.98651108, 0.99382459, 0.45989972], 623 [- 5.12068979, - 0.00402637, 0.00214392, 6.11666343, 0.98652662, 0.99382971, 0.45998178], 624 [- 5.12381254, - 0.00402266, 0.00214251, 6.11978988, 0.98654211, 0.99383483, 0.46006373], 625 [- 5.12692884, - 0.00401897, 0.00214110, 6.12290987, 0.98655757, 0.99383993, 0.46014558], 626 [- 5.13003869, - 0.00401528, 0.00213970, 6.12602341, 0.98657300, 0.99384502, 0.46022732], 627 [- 5.13314210, - 0.00401160, 0.00213831, 6.12913050, 0.98658838, 0.99385010, 0.46030896], 628 [- 5.13623906, - 0.00400792, 0.00213691, 6.13223114, 0.98660374, 0.99385516, 0.46039048], 629 [- 5.13932959, - 0.00400426, 0.00213552, 6.13532533, 0.98661906, 0.99386022, 0.46047189], 630 [- 5.14241368, - 0.00400060, 0.00213413, 6.13841308, 0.98663434, 0.99386527, 0.46055319], 631 [- 5.14549135, - 0.00399695, 0.00213275, 6.14149440, 0.98664959, 0.99387030, 0.46063438], 632 [- 5.14856258, - 0.00399330, 0.00213137, 6.14456928, 0.98666480, 0.99387532, 0.46071546], 633 [- 5.15162739, - 0.00398967, 0.00213000, 6.14763772, 0.98667998, 0.99388034, 0.46079643], 634 [- 5.15468577, - 0.00398604, 0.00212862, 6.15069974, 0.98669512, 0.99388534, 0.46087728], 635 [- 5.15773774, - 0.00398241, 0.00212725, 6.15375533, 0.98671023, 0.99389033, 0.46095802], 636 [- 5.16078329, - 0.00397880, 0.00212589, 6.15680449, 0.98672531, 0.99389532, 0.46103864], 637 [- 5.16382243, - 0.00397519, 0.00212453, 6.15984724, 0.98674035, 0.99390029, 0.46111915], 638 [- 5.16685516, - 0.00397159, 0.00212317, 6.16288358, 0.98675535, 0.99390525, 0.46119954], 639 [- 5.16988149, - 0.00396799, 0.00212181, 6.16591350, 0.98677033, 0.99391020, 0.46127982], 640 [- 5.17290141, - 0.00396440, 0.00212046, 6.16893701, 0.98678527, 0.99391514, 0.46135997], 641 [- 5.17591494, - 0.00396082, 0.00211911, 6.17195412, 0.98680017, 0.99392007, 0.46144001], 642 [- 5.17892208, - 0.00395724, 0.00211776, 6.17496483, 0.98681505, 0.99392499, 0.46151994], 643 [- 5.18192282, - 0.00395368, 0.00211642, 6.17796914, 0.98682989, 0.99392990, 0.46159974], 644 [- 5.18491718, - 0.00395011, 0.00211508, 6.18096706, 0.98684470, 0.99393481, 0.46167943], 645 [- 5.18790516, - 0.00394656, 0.00211374, 6.18395860, 0.98685947, 0.99393970, 0.46175899], 646 [- 5.19088675, - 0.00394301, 0.00211241, 6.18694374, 0.98687421, 0.99394458, 0.46183843], 647 [- 5.19386198, - 0.00393947, 0.00211108, 6.18992251, 0.98688892, 0.99394945, 0.46191776], 648 [- 5.19683083, - 0.00393593, 0.00210975, 6.19289490, 0.98690360, 0.99395432, 0.46199696], 649 [- 5.19979332, - 0.00393241, 0.00210843, 6.19586092, 0.98691824, 0.99395917, 0.46207604], 650 [- 5.20274945, - 0.00392888, 0.00210710, 6.19882057, 0.98693285, 0.99396401, 0.46215500], 651 [- 5.20569922, - 0.00392537, 0.00210578, 6.20177385, 0.98694743, 0.99396885, 0.46223383], 652 [- 5.20864264, - 0.00392186, 0.00210447, 6.20472078, 0.98696198, 0.99397367, 0.46231254], 653 [- 5.21157971, - 0.00391835, 0.00210315, 6.20766135, 0.98697650, 0.99397849, 0.46239113], 654 [- 5.21451043, - 0.00391486, 0.00210184, 6.21059558, 0.98699098, 0.99398330, 0.46246959], 655 [- 5.21743482, - 0.00391137, 0.00210054, 6.21352345, 0.98700544, 0.99398810, 0.46254793], 656 [- 5.22035287, - 0.00390788, 0.00209923, 6.21644499, 0.98701986, 0.99399289, 0.46262614], 657 [- 5.22326459, - 0.00390440, 0.00209793, 6.21936019, 0.98703425, 0.99399767, 0.46270423], 658 [- 5.22616999, - 0.00390093, 0.00209663, 6.22226905, 0.98704861, 0.99400244, 0.46278219], 659 [- 5.22906906, - 0.00389747, 0.00209533, 6.22517159, 0.98706294, 0.99400720, 0.46286003], 660 [- 5.23196182, - 0.00389401, 0.00209404, 6.22806781, 0.98707724, 0.99401196, 0.46293774], 661 [- 5.23484826, - 0.00389055, 0.00209274, 6.23095771, 0.98709151, 0.99401670, 0.46301532], 662 [- 5.23772840, - 0.00388711, 0.00209145, 6.23384129, 0.98710574, 0.99402144, 0.46309277], 663 [- 5.24060224, - 0.00388366, 0.00209017, 6.23671857, 0.98711995, 0.99402617, 0.46317009], 664 [- 5.24346978, - 0.00388023, 0.00208888, 6.23958955, 0.98713413, 0.99403089, 0.46324729], 665 [- 5.24633103, - 0.00387680, 0.00208760, 6.24245423, 0.98714827, 0.99403560, 0.46332436], 666 [- 5.24918599, - 0.00387338, 0.00208632, 6.24531261, 0.98716239, 0.99404030, 0.46340129], 667 [- 5.25203467, - 0.00386996, 0.00208504, 6.24816471, 0.98717648, 0.99404500, 0.46347810], 668 [- 5.25487707, - 0.00386655, 0.00208377, 6.25101053, 0.98719053, 0.99404969, 0.46355478], 669 [- 5.25771320, - 0.00386314, 0.00208250, 6.25385007, 0.98720456, 0.99405436, 0.46363133], 670 [- 5.26054307, - 0.00385974, 0.00208123, 6.25668333, 0.98721856, 0.99405904, 0.46370775], 671 [- 5.26336668, - 0.00385634, 0.00207996, 6.25951033, 0.98723253, 0.99406370, 0.46378403], 672 [- 5.26618402, - 0.00385295, 0.00207869, 6.26233107, 0.98724646, 0.99406835, 0.46386019], 673 [- 5.26899512, - 0.00384957, 0.00207743, 6.26514555, 0.98726037, 0.99407300, 0.46393621], 674 [- 5.27179998, - 0.00384619, 0.00207617, 6.26795379, 0.98727425, 0.99407764, 0.46401210], 675 [- 5.27459860, - 0.00384282, 0.00207491, 6.27075577, 0.98728810, 0.99408227, 0.46408786], 676 [- 5.27739098, - 0.00383945, 0.00207365, 6.27355152, 0.98730193, 0.99408689, 0.46416348], 677 [- 5.28017713, - 0.00383609, 0.00207240, 6.27634104, 0.98731572, 0.99409151, 0.46423898], 678 [- 5.28295706, - 0.00383274, 0.00207115, 6.27912432, 0.98732949, 0.99409612, 0.46431433], 679 [- 5.28573078, - 0.00382939, 0.00206989, 6.28190139, 0.98734322, 0.99410072, 0.46438956], 680 [- 5.28849828, - 0.00382604, 0.00206865, 6.28467224, 0.98735693, 0.99410531, 0.46446465], 681 [- 5.29125958, - 0.00382271, 0.00206740, 6.28743687, 0.98737061, 0.99410989, 0.46453961], 682 [- 5.29401468, - 0.00381937, 0.00206616, 6.29019530, 0.98738426, 0.99411447, 0.46461443], 683 [- 5.29676358, - 0.00381604, 0.00206491, 6.29294754, 0.98739789, 0.99411904, 0.46468912], 684 [- 5.29950630, - 0.00381272, 0.00206367, 6.29569358, 0.98741148, 0.99412361, 0.46476368], 685 [- 5.30224283, - 0.00380940, 0.00206243, 6.29843343, 0.98742505, 0.99412816, 0.46483809], 686 [- 5.30497319, - 0.00380609, 0.00206120, 6.30116710, 0.98743859, 0.99413271, 0.46491238], 687 [- 5.30769738, - 0.00380279, 0.00205996, 6.30389459, 0.98745210, 0.99413725, 0.46498652], 688 [- 5.31041540, - 0.00379948, 0.00205873, 6.30661592, 0.98746559, 0.99414179, 0.46506054], 689 [- 5.31312727, - 0.00379619, 0.00205750, 6.30933108, 0.98747905, 0.99414631, 0.46513441], 690 [- 5.31583299, - 0.00379290, 0.00205627, 6.31204009, 0.98749248, 0.99415083, 0.46520815], 691 [- 5.31853255, - 0.00378961, 0.00205504, 6.31474294, 0.98750588, 0.99415535, 0.46528175], 692 [- 5.32122598, - 0.00378633, 0.00205382, 6.31743965, 0.98751926, 0.99415985, 0.46535522], 693 [- 5.32391328, - 0.00378306, 0.00205259, 6.32013023, 0.98753261, 0.99416435, 0.46542855], 694 [- 5.32659445, - 0.00377979, 0.00205137, 6.32281466, 0.98754593, 0.99416884, 0.46550174], 695 [- 5.32926950, - 0.00377652, 0.00205015, 6.32549298, 0.98755923, 0.99417333, 0.46557479], 696 [- 5.33193843, - 0.00377326, 0.00204893, 6.32816517, 0.98757249, 0.99417781, 0.46564771], 697 [- 5.33460126, - 0.00377000, 0.00204772, 6.33083125, 0.98758574, 0.99418228, 0.46572049], 698 [- 5.33725798, - 0.00376675, 0.00204650, 6.33349123, 0.98759895, 0.99418674, 0.46579313], 699 [- 5.33990861, - 0.00376351, 0.00204529, 6.33614511, 0.98761214, 0.99419120, 0.46586563], 700 [- 5.34255316, - 0.00376027, 0.00204408, 6.33879289, 0.98762531, 0.99419565, 0.46593799], 701 [- 5.34519162, - 0.00375703, 0.00204287, 6.34143458, 0.98763844, 0.99420010, 0.46601022], 702 [- 5.34782400, - 0.00375380, 0.00204166, 6.34407020, 0.98765155, 0.99420454, 0.46608230], 703 [- 5.35045032, - 0.00375058, 0.00204045, 6.34669974, 0.98766464, 0.99420897, 0.46615425], 704 [- 5.35307057, - 0.00374736, 0.00203925, 6.34932321, 0.98767770, 0.99421340, 0.46622606], 705 [- 5.35568477, - 0.00374414, 0.00203804, 6.35194063, 0.98769073, 0.99421781, 0.46629773], 706 [- 5.35829292, - 0.00374093, 0.00203684, 6.35455199, 0.98770374, 0.99422223, 0.46636926], 707 [- 5.36089503, - 0.00373773, 0.00203564, 6.35715730, 0.98771672, 0.99422663, 0.46644065], 708 [- 5.36349110, - 0.00373453, 0.00203444, 6.35975657, 0.98772968, 0.99423103, 0.46651190], 709 [- 5.36608114, - 0.00373133, 0.00203324, 6.36234981, 0.98774261, 0.99423543, 0.46658301], 710 [- 5.36866517, - 0.00372814, 0.00203205, 6.36493703, 0.98775552, 0.99423982, 0.46665398], 711 [- 5.37124318, - 0.00372495, 0.00203085, 6.36751823, 0.98776840, 0.99424420, 0.46672482], 712 [- 5.37381518, - 0.00372177, 0.00202966, 6.37009341, 0.98778125, 0.99424857, 0.46679551], 713 [- 5.37638118, - 0.00371859, 0.00202847, 6.37266259, 0.98779408, 0.99425294, 0.46686606], 714 [- 5.37894119, - 0.00371542, 0.00202728, 6.37522577, 0.98780689, 0.99425730, 0.46693647], 715 [- 5.38149521, - 0.00371225, 0.00202609, 6.37778296, 0.98781967, 0.99426166, 0.46700674], 716 [- 5.38404325, - 0.00370909, 0.00202490, 6.38033416, 0.98783243, 0.99426601, 0.46707687], 717 [- 5.38658532, - 0.00370593, 0.00202371, 6.38287939, 0.98784516, 0.99427036, 0.46714686], 718 [- 5.38912142, - 0.00370278, 0.00202253, 6.38541865, 0.98785786, 0.99427470, 0.46721671], 719 [- 5.39165157, - 0.00369963, 0.00202134, 6.38795194, 0.98787055, 0.99427903, 0.46728642], 720 [- 5.39417576, - 0.00369648, 0.00202016, 6.39047928, 0.98788320, 0.99428336, 0.46735598], 721 [- 5.39669401, - 0.00369334, 0.00201898, 6.39300067, 0.98789584, 0.99428768, 0.46742541], 722 [- 5.39920633, - 0.00369021, 0.00201780, 6.39551612, 0.98790845, 0.99429200, 0.46749470], 723 [- 5.40171272, - 0.00368707, 0.00201662, 6.39802564, 0.98792103, 0.99429631, 0.46756384], 724 [- 5.40421318, - 0.00368395, 0.00201544, 6.40052923, 0.98793359, 0.99430061, 0.46763284], 725 [- 5.40670773, - 0.00368082, 0.00201427, 6.40302690, 0.98794613, 0.99430491, 0.46770170], 726 [- 5.40919637, - 0.00367771, 0.00201309, 6.40551867, 0.98795864, 0.99430920, 0.46777042], 727 [- 5.41167912, - 0.00367459, 0.00201192, 6.40800452, 0.98797113, 0.99431349, 0.46783900], 728 [- 5.41415597, - 0.00367148, 0.00201075, 6.41048448, 0.98798360, 0.99431777, 0.46790744], 729 [- 5.41662693, - 0.00366838, 0.00200957, 6.41295855, 0.98799604, 0.99432205, 0.46797574], 730 [- 5.41909202, - 0.00366528, 0.00200840, 6.41542674, 0.98800846, 0.99432632, 0.46804389], 731 [- 5.42155124, - 0.00366218, 0.00200724, 6.41788906, 0.98802085, 0.99433058, 0.46811190], 732 [- 5.42400460, - 0.00365909, 0.00200607, 6.42034551, 0.98803323, 0.99433484, 0.46817978], 733 [- 5.42645210, - 0.00365600, 0.00200490, 6.42279610, 0.98804557, 0.99433910, 0.46824751], 734 [- 5.42889376, - 0.00365292, 0.00200374, 6.42524084, 0.98805790, 0.99434334, 0.46831509], 735 [- 5.43132958, - 0.00364984, 0.00200257, 6.42767973, 0.98807020, 0.99434759, 0.46838254], 736 [- 5.43375956, - 0.00364677, 0.00200141, 6.43011279, 0.98808248, 0.99435183, 0.46844985], 737 [- 5.43618372, - 0.00364370, 0.00200024, 6.43254002, 0.98809474, 0.99435606, 0.46851701], 738 [- 5.43860207, - 0.00364063, 0.00199908, 6.43496143, 0.98810697, 0.99436029, 0.46858403], 739 [- 5.44101460, - 0.00363757, 0.00199792, 6.43737703, 0.98811918, 0.99436451, 0.46865091], 740 [- 5.44342134, - 0.00363451, 0.00199676, 6.43978683, 0.98813137, 0.99436872, 0.46871765], 741 [- 5.44582228, - 0.00363146, 0.00199561, 6.44219082, 0.98814353, 0.99437294, 0.46878424], 742 [- 5.44821744, - 0.00362841, 0.00199445, 6.44458903, 0.98815567, 0.99437714, 0.46885070], 743 [- 5.45060682, - 0.00362536, 0.00199329, 6.44698145, 0.98816779, 0.99438134, 0.46891701], 744 [- 5.45299043, - 0.00362232, 0.00199214, 6.44936811, 0.98817989, 0.99438554, 0.46898318], 745 [- 5.45536828, - 0.00361929, 0.00199098, 6.45174899, 0.98819196, 0.99438973, 0.46904921], 746 [- 5.45774037, - 0.00361625, 0.00198983, 6.45412412, 0.98820402, 0.99439392, 0.46911510], 747 [- 5.46010672, - 0.00361323, 0.00198868, 6.45649350, 0.98821605, 0.99439810, 0.46918084], 748 [- 5.46246734, - 0.00361020, 0.00198753, 6.45885714, 0.98822805, 0.99440227, 0.46924645], 749 [- 5.46482222, - 0.00360718, 0.00198638, 6.46121504, 0.98824004, 0.99440644, 0.46931191], 750 [- 5.46717138, - 0.00360417, 0.00198523, 6.46356722, 0.98825200, 0.99441061, 0.46937723], 751 [- 5.46951483, - 0.00360115, 0.00198408, 6.46591367, 0.98826395, 0.99441477, 0.46944241], 752 [- 5.47185257, - 0.00359814, 0.00198293, 6.46825442, 0.98827587, 0.99441892, 0.46950744], 753 [- 5.47418461, - 0.00359514, 0.00198178, 6.47058947, 0.98828776, 0.99442308, 0.46957234], 754 [- 5.47651097, - 0.00359214, 0.00198064, 6.47291883, 0.98829964, 0.99442722, 0.46963709], 755 [- 5.47883164, - 0.00358914, 0.00197949, 6.47524250, 0.98831150, 0.99443136, 0.46970170], 756 [- 5.48114664, - 0.00358615, 0.00197835, 6.47756049, 0.98832333, 0.99443550, 0.46976617], 757 [- 5.48345598, - 0.00358316, 0.00197721, 6.47987281, 0.98833514, 0.99443963, 0.46983050], 758 [- 5.48575966, - 0.00358018, 0.00197606, 6.48217948, 0.98834693, 0.99444376, 0.46989469], 759 [- 5.48805769, - 0.00357720, 0.00197492, 6.48448049, 0.98835870, 0.99444788, 0.46995873], 760 [- 5.49035007, - 0.00357422, 0.00197378, 6.48677585, 0.98837045, 0.99445200, 0.47002264], 761 [- 5.49263683, - 0.00357125, 0.00197264, 6.48906558, 0.98838217, 0.99445611, 0.47008640], 762 [- 5.49491797, - 0.00356828, 0.00197150, 6.49134968, 0.98839388, 0.99446022, 0.47015002], 763 [- 5.49719348, - 0.00356532, 0.00197036, 6.49362817, 0.98840556, 0.99446432, 0.47021350], 764 [- 5.49946339, - 0.00356236, 0.00196923, 6.49590104, 0.98841723, 0.99446842, 0.47027684], 765 [- 5.50172771, - 0.00355940, 0.00196809, 6.49816831, 0.98842887, 0.99447251, 0.47034004], 766 [- 5.50398643, - 0.00355645, 0.00196695, 6.50042998, 0.98844049, 0.99447660, 0.47040310], 767 [- 5.50623957, - 0.00355350, 0.00196582, 6.50268607, 0.98845209, 0.99448068, 0.47046602], 768 [- 5.50848713, - 0.00355055, 0.00196468, 6.50493658, 0.98846367, 0.99448476, 0.47052879], 769 [- 5.51072913, - 0.00354761, 0.00196355, 6.50718152, 0.98847523, 0.99448884, 0.47059143], 770 [- 5.51296557, - 0.00354467, 0.00196242, 6.50942090, 0.98848677, 0.99449291, 0.47065392], 771 [- 5.51519647, - 0.00354174, 0.00196129, 6.51165473, 0.98849828, 0.99449698, 0.47071627], 772 [- 5.51742182, - 0.00353881, 0.00196016, 6.51388301, 0.98850978, 0.99450104, 0.47077849], 773 [- 5.51964164, - 0.00353588, 0.00195902, 6.51610576, 0.98852126, 0.99450510, 0.47084056], 774 [- 5.52185594, - 0.00353296, 0.00195789, 6.51832298, 0.98853271, 0.99450915, 0.47090249], 775 [- 5.52406473, - 0.00353004, 0.00195677, 6.52053469, 0.98854415, 0.99451320, 0.47096428], 776 [- 5.52626800, - 0.00352712, 0.00195564, 6.52274088, 0.98855556, 0.99451724, 0.47102593], 777 [- 5.52846578, - 0.00352421, 0.00195451, 6.52494157, 0.98856696, 0.99452128, 0.47108744], 778 [- 5.53065808, - 0.00352130, 0.00195338, 6.52713677, 0.98857834, 0.99452532, 0.47114881], 779 [- 5.53284489, - 0.00351840, 0.00195226, 6.52932649, 0.98858969, 0.99452935, 0.47121004], 780 [- 5.53502623, - 0.00351550, 0.00195113, 6.53151073, 0.98860103, 0.99453337, 0.47127113], 781 [- 5.53720210, - 0.00351260, 0.00195001, 6.53368950, 0.98861234, 0.99453740, 0.47133208], 782 [- 5.53937252, - 0.00350971, 0.00194888, 6.53586282, 0.98862364, 0.99454141, 0.47139289], 783 [- 5.54153750, - 0.00350682, 0.00194776, 6.53803068, 0.98863491, 0.99454543, 0.47145356], 784 [- 5.54369704, - 0.00350393, 0.00194663, 6.54019311, 0.98864617, 0.99454944, 0.47151409], 785 [- 5.54585115, - 0.00350105, 0.00194551, 6.54235010, 0.98865740, 0.99455344, 0.47157449], 786 [- 5.54799984, - 0.00349817, 0.00194439, 6.54450167, 0.98866862, 0.99455744, 0.47163474], 787 [- 5.55014311, - 0.00349529, 0.00194327, 6.54664782, 0.98867982, 0.99456144, 0.47169485], 788 [- 5.55228099, - 0.00349242, 0.00194215, 6.54878857, 0.98869099, 0.99456543, 0.47175483], 789 [- 5.55441347, - 0.00348955, 0.00194103, 6.55092392, 0.98870215, 0.99456942, 0.47181466], 790 [- 5.55654057, - 0.00348669, 0.00193991, 6.55305388, 0.98871329, 0.99457340, 0.47187436], 791 [- 5.55866229, - 0.00348383, 0.00193879, 6.55517846, 0.98872441, 0.99457738, 0.47193391], 792 [- 5.56077864, - 0.00348097, 0.00193767, 6.55729767, 0.98873551, 0.99458136, 0.47199333], 793 [- 5.56288964, - 0.00347811, 0.00193655, 6.55941152, 0.98874659, 0.99458533, 0.47205261], 794 [- 5.56499528, - 0.00347526, 0.00193544, 6.56152002, 0.98875765, 0.99458930, 0.47211176], 795 [- 5.56709558, - 0.00347242, 0.00193432, 6.56362317, 0.98876869, 0.99459326, 0.47217076], 796 [- 5.56919055, - 0.00346957, 0.00193321, 6.56572098, 0.98877972, 0.99459722, 0.47222962], 797 [- 5.57128020, - 0.00346673, 0.00193209, 6.56781347, 0.98879072, 0.99460118, 0.47228835], 798 [- 5.57336453, - 0.00346390, 0.00193098, 6.56990064, 0.98880171, 0.99460513, 0.47234694], 799 [- 5.57544356, - 0.00346106, 0.00192986, 6.57198250, 0.98881267, 0.99460907, 0.47240539], 800 [- 5.57751729, - 0.00345823, 0.00192875, 6.57405906, 0.98882362, 0.99461302, 0.47246371], 801 [- 5.57958573, - 0.00345541, 0.00192764, 6.57613032, 0.98883455, 0.99461696, 0.47252188], 802 [- 5.58164889, - 0.00345259, 0.00192652, 6.57819631, 0.98884546, 0.99462089, 0.47257992], 803 [- 5.58370679, - 0.00344977, 0.00192541, 6.58025702, 0.98885635, 0.99462482, 0.47263782], 804 [- 5.58575942, - 0.00344695, 0.00192430, 6.58231247, 0.98886722, 0.99462875, 0.47269559], 805 [- 5.58780679, - 0.00344414, 0.00192319, 6.58436266, 0.98887808, 0.99463267, 0.47275321], 806 [- 5.58984893, - 0.00344133, 0.00192208, 6.58640760, 0.98888891, 0.99463659, 0.47281070], 807 [- 5.59188583, - 0.00343852, 0.00192097, 6.58844731, 0.98889973, 0.99464051, 0.47286806], 808 [- 5.59391750, - 0.00343572, 0.00191986, 6.59048178, 0.98891053, 0.99464442, 0.47292528], 809 [- 5.59594396, - 0.00343292, 0.00191875, 6.59251104, 0.98892131, 0.99464833, 0.47298236], 810 [- 5.59796521, - 0.00343013, 0.00191764, 6.59453508, 0.98893207, 0.99465223, 0.47303930], 811 [- 5.59998126, - 0.00342733, 0.00191653, 6.59655393, 0.98894281, 0.99465613, 0.47309611], 812 [- 5.60199212, - 0.00342455, 0.00191543, 6.59856758, 0.98895354, 0.99466003, 0.47315278], 813 [- 5.60399781, - 0.00342176, 0.00191432, 6.60057605, 0.98896425, 0.99466392, 0.47320932], 814 [- 5.60599831, - 0.00341898, 0.00191321, 6.60257934, 0.98897493, 0.99466781, 0.47326572], 815 [- 5.60799366, - 0.00341620, 0.00191211, 6.60457746, 0.98898561, 0.99467169, 0.47332198], 816 [- 5.60998385, - 0.00341342, 0.00191100, 6.60657043, 0.98899626, 0.99467557, 0.47337811], 817 [- 5.61196890, - 0.00341065, 0.00190990, 6.60855825, 0.98900689, 0.99467945, 0.47343411], 818 [- 5.61394881, - 0.00340788, 0.00190879, 6.61054093, 0.98901751, 0.99468332, 0.47348997], 819 [- 5.61592360, - 0.00340512, 0.00190769, 6.61251848, 0.98902811, 0.99468719, 0.47354569], 820 [- 5.61789327, - 0.00340235, 0.00190659, 6.61449091, 0.98903869, 0.99469106, 0.47360128], 821 [- 5.61985783, - 0.00339960, 0.00190548, 6.61645823, 0.98904926, 0.99469492, 0.47365674], 822 [- 5.62181729, - 0.00339684, 0.00190438, 6.61842045, 0.98905980, 0.99469878, 0.47371206], 823 [- 5.62377166, - 0.00339409, 0.00190328, 6.62037757, 0.98907033, 0.99470263, 0.47376724], 824 [- 5.62572095, - 0.00339134, 0.00190218, 6.62232961, 0.98908084, 0.99470648, 0.47382230], 825 [- 5.62766517, - 0.00338859, 0.00190108, 6.62427658, 0.98909133, 0.99471033, 0.47387721], 826 [- 5.62960432, - 0.00338585, 0.00189998, 6.62621847, 0.98910181, 0.99471417, 0.47393200], 827 [- 5.63153842, - 0.00338311, 0.00189888, 6.62815531, 0.98911227, 0.99471801, 0.47398665], 828 [- 5.63346748, - 0.00338037, 0.00189778, 6.63008711, 0.98912271, 0.99472185, 0.47404117], 829 [- 5.63539150, - 0.00337764, 0.00189668, 6.63201386, 0.98913313, 0.99472568, 0.47409555], 830 [- 5.63731050, - 0.00337491, 0.00189558, 6.63393558, 0.98914354, 0.99472951, 0.47414980], 831 [- 5.63922447, - 0.00337218, 0.00189448, 6.63585229, 0.98915393, 0.99473333, 0.47420392], 832 [- 5.64113344, - 0.00336946, 0.00189338, 6.63776398, 0.98916430, 0.99473716, 0.47425791], 833 [- 5.64303741, - 0.00336674, 0.00189229, 6.63967067, 0.98917466, 0.99474097, 0.47431176], 834 [- 5.64493639, - 0.00336402, 0.00189119, 6.64157237, 0.98918499, 0.99474479, 0.47436548], 835 [- 5.64683039, - 0.00336131, 0.00189009, 6.64346908, 0.98919531, 0.99474860, 0.47441907], 836 [- 5.64871942, - 0.00335860, 0.00188899, 6.64536082, 0.98920562, 0.99475241, 0.47447252], 837 [- 5.65060348, - 0.00335589, 0.00188790, 6.64724759, 0.98921590, 0.99475621, 0.47452585], 838 [- 5.65248259, - 0.00335319, 0.00188680, 6.64912941, 0.98922617, 0.99476001, 0.47457904], 839 [- 5.65435676, - 0.00335049, 0.00188571, 6.65100628, 0.98923642, 0.99476381, 0.47463210], 840 [- 5.65622600, - 0.00334779, 0.00188461, 6.65287821, 0.98924666, 0.99476760, 0.47468503], 841 [- 5.65809030, - 0.00334509, 0.00188352, 6.65474521, 0.98925688, 0.99477139, 0.47473783], 842 [- 5.65994970, - 0.00334240, 0.00188243, 6.65660729, 0.98926708, 0.99477517, 0.47479050], 843 [- 5.66180418, - 0.00333971, 0.00188133, 6.65846447, 0.98927727, 0.99477896, 0.47484303], 844 [- 5.66365377, - 0.00333703, 0.00188024, 6.66031674, 0.98928744, 0.99478273, 0.47489544], 845 [- 5.66549846, - 0.00333434, 0.00187915, 6.66216412, 0.98929759, 0.99478651, 0.47494772], 846 [- 5.66733828, - 0.00333166, 0.00187805, 6.66400662, 0.98930772, 0.99479028, 0.47499986], 847 [- 5.66917323, - 0.00332899, 0.00187696, 6.66584424, 0.98931784, 0.99479405, 0.47505187], 848 [- 5.67100331, - 0.00332631, 0.00187587, 6.66767700, 0.98932794, 0.99479781, 0.47510376], 849 [- 5.67282855, - 0.00332364, 0.00187478, 6.66950490, 0.98933803, 0.99480158, 0.47515552], 850 [- 5.67464894, - 0.00332098, 0.00187369, 6.67132796, 0.98934810, 0.99480533, 0.47520714], 851 [- 5.67646450, - 0.00331831, 0.00187260, 6.67314618, 0.98935815, 0.99480909, 0.47525864], 852 [- 5.67827523, - 0.00331565, 0.00187151, 6.67495958, 0.98936819, 0.99481284, 0.47531001], 853 [- 5.68008115, - 0.00331299, 0.00187042, 6.67676816, 0.98937821, 0.99481659, 0.47536125], 854 [- 5.68188226, - 0.00331034, 0.00186933, 6.67857192, 0.98938821, 0.99482033, 0.47541236], 855 [- 5.68367858, - 0.00330769, 0.00186824, 6.68037089, 0.98939820, 0.99482407, 0.47546334], 856 [- 5.68547011, - 0.00330504, 0.00186715, 6.68216507, 0.98940817, 0.99482781, 0.47551419], 857 [- 5.68725686, - 0.00330239, 0.00186606, 6.68395447, 0.98941813, 0.99483154, 0.47556492], 858 [- 5.68903884, - 0.00329975, 0.00186498, 6.68573909, 0.98942807, 0.99483527, 0.47561551], 859 [- 5.69081606, - 0.00329711, 0.00186389, 6.68751895, 0.98943799, 0.99483900, 0.47566598], 860 [- 5.69258853, - 0.00329447, 0.00186280, 6.68929406, 0.98944790, 0.99484272, 0.47571632], 861 [- 5.69435627, - 0.00329184, 0.00186172, 6.69106443, 0.98945779, 0.99484644, 0.47576654], 862 [- 5.69611926, - 0.00328921, 0.00186063, 6.69283005, 0.98946767, 0.99485016, 0.47581663], 863 [- 5.69787754, - 0.00328658, 0.00185954, 6.69459096, 0.98947753, 0.99485388, 0.47586659], 864 [- 5.69963110, - 0.00328396, 0.00185846, 6.69634715, 0.98948737, 0.99485759, 0.47591642], 865 [- 5.70137996, - 0.00328133, 0.00185737, 6.69809863, 0.98949720, 0.99486129, 0.47596613], 866 [- 5.70312413, - 0.00327872, 0.00185629, 6.69984541, 0.98950701, 0.99486500, 0.47601571], 867 [- 5.70486360, - 0.00327610, 0.00185520, 6.70158750, 0.98951681, 0.99486870, 0.47606516], 868 [- 5.70659840, - 0.00327349, 0.00185412, 6.70332492, 0.98952659, 0.99487239, 0.47611449], 869 [- 5.70832854, - 0.00327088, 0.00185304, 6.70505766, 0.98953636, 0.99487609, 0.47616370], 870 [- 5.71005402, - 0.00326827, 0.00185195, 6.70678575, 0.98954611, 0.99487978, 0.47621277], 871 [- 5.71177484, - 0.00326567, 0.00185087, 6.70850918, 0.98955584, 0.99488347, 0.47626172], 872 [- 5.71349103, - 0.00326306, 0.00184979, 6.71022797, 0.98956556, 0.99488715, 0.47631055], 873 [- 5.71520259, - 0.00326047, 0.00184870, 6.71194212, 0.98957526, 0.99489083, 0.47635925], 874 [- 5.71690953, - 0.00325787, 0.00184762, 6.71365166, 0.98958495, 0.99489451, 0.47640783], 875 [- 5.71861185, - 0.00325528, 0.00184654, 6.71535658, 0.98959462, 0.99489818, 0.47645628], 876 [- 5.72030958, - 0.00325269, 0.00184546, 6.71705689, 0.98960428, 0.99490185, 0.47650461], 877 [- 5.72200271, - 0.00325010, 0.00184438, 6.71875261, 0.98961392, 0.99490552, 0.47655282], 878 [- 5.72369126, - 0.00324752, 0.00184330, 6.72044374, 0.98962355, 0.99490918, 0.47660090], 879 [- 5.72537523, - 0.00324494, 0.00184222, 6.72213029, 0.98963316, 0.99491284, 0.47664886], 880 [- 5.72705463, - 0.00324236, 0.00184114, 6.72381227, 0.98964276, 0.99491650, 0.47669669], 881 [- 5.72872948, - 0.00323979, 0.00184006, 6.72548970, 0.98965234, 0.99492016, 0.47674440], 882 [- 5.73039979, - 0.00323721, 0.00183898, 6.72716257, 0.98966190, 0.99492381, 0.47679198], 883 [- 5.73206555, - 0.00323464, 0.00183790, 6.72883091, 0.98967145, 0.99492746, 0.47683945], 884 [- 5.73372679, - 0.00323208, 0.00183682, 6.73049471, 0.98968099, 0.99493110, 0.47688679], 885 [- 5.73538351, - 0.00322952, 0.00183574, 6.73215399, 0.98969051, 0.99493474, 0.47693401], 886 [- 5.73703572, - 0.00322695, 0.00183466, 6.73380876, 0.98970002, 0.99493838, 0.47698111], 887 [- 5.73868343, - 0.00322440, 0.00183359, 6.73545903, 0.98970951, 0.99494202, 0.47702808], 888 [- 5.74032664, - 0.00322184, 0.00183251, 6.73710480, 0.98971898, 0.99494565, 0.47707494], 889 [- 5.74196538, - 0.00321929, 0.00183143, 6.73874609, 0.98972844, 0.99494928, 0.47712167], 890 [- 5.74359964, - 0.00321674, 0.00183036, 6.74038290, 0.98973789, 0.99495290, 0.47716828], 891 [- 5.74522943, - 0.00321419, 0.00182928, 6.74201524, 0.98974732, 0.99495653, 0.47721477], 892 [- 5.74685478, - 0.00321165, 0.00182820, 6.74364312, 0.98975674, 0.99496014, 0.47726113], 893 [- 5.74847567, - 0.00320911, 0.00182713, 6.74526656, 0.98976614, 0.99496376, 0.47730738], 894 [- 5.75009213, - 0.00320657, 0.00182605, 6.74688556, 0.98977552, 0.99496737, 0.47735351], 895 [- 5.75170417, - 0.00320404, 0.00182498, 6.74850013, 0.98978490, 0.99497098, 0.47739952], 896 [- 5.75331179, - 0.00320151, 0.00182390, 6.75011028, 0.98979425, 0.99497459, 0.47744540], 897 [- 5.75491499, - 0.00319898, 0.00182283, 6.75171602, 0.98980360, 0.99497819, 0.47749117], 898 [- 5.75651380, - 0.00319645, 0.00182176, 6.75331735, 0.98981293, 0.99498179, 0.47753682], 899 [- 5.75810822, - 0.00319393, 0.00182068, 6.75491429, 0.98982224, 0.99498539, 0.47758234], 900 [- 5.75969826, - 0.00319141, 0.00181961, 6.75650685, 0.98983154, 0.99498899, 0.47762775], 901 [- 5.76128392, - 0.00318889, 0.00181854, 6.75809504, 0.98984082, 0.99499258, 0.47767304], 902 [- 5.76286523, - 0.00318637, 0.00181746, 6.75967886, 0.98985009, 0.99499616, 0.47771821], 903 [- 5.76444218, - 0.00318386, 0.00181639, 6.76125832, 0.98985935, 0.99499975, 0.47776327], 904 [- 5.76601479, - 0.00318135, 0.00181532, 6.76283343, 0.98986859, 0.99500333, 0.47780820], 905 [- 5.76758306, - 0.00317884, 0.00181425, 6.76440421, 0.98987782, 0.99500691, 0.47785302], 906 [- 5.76914700, - 0.00317634, 0.00181318, 6.76597066, 0.98988703, 0.99501049, 0.47789772], 907 [- 5.77070663, - 0.00317384, 0.00181210, 6.76753279, 0.98989623, 0.99501406, 0.47794230], 908 [- 5.77226195, - 0.00317134, 0.00181103, 6.76909061, 0.98990542, 0.99501763, 0.47798676], 909 [- 5.77381298, - 0.00316884, 0.00180996, 6.77064413, 0.98991459, 0.99502119, 0.47803110], 910 [- 5.77535971, - 0.00316635, 0.00180889, 6.77219336, 0.98992374, 0.99502476, 0.47807533], 911 [- 5.77690216, - 0.00316386, 0.00180782, 6.77373830, 0.98993289, 0.99502832, 0.47811945], 912 [- 5.77844035, - 0.00316137, 0.00180675, 6.77527898, 0.98994201, 0.99503187, 0.47816344], 913 [- 5.77997427, - 0.00315889, 0.00180569, 6.77681538, 0.98995113, 0.99503543, 0.47820732], 914 [- 5.78150394, - 0.00315640, 0.00180462, 6.77834753, 0.98996023, 0.99503898, 0.47825108], 915 [- 5.78302936, - 0.00315393, 0.00180355, 6.77987544, 0.98996931, 0.99504253, 0.47829473], 916 [- 5.78455056, - 0.00315145, 0.00180248, 6.78139911, 0.98997839, 0.99504607, 0.47833826], 917 [- 5.78606752, - 0.00314897, 0.00180141, 6.78291855, 0.98998744, 0.99504961, 0.47838168], 918 [- 5.78758027, - 0.00314650, 0.00180035, 6.78443377, 0.98999649, 0.99505315, 0.47842498], 919 [- 5.78908882, - 0.00314403, 0.00179928, 6.78594478, 0.99000552, 0.99505669, 0.47846816], 920 [- 5.79059316, - 0.00314157, 0.00179821, 6.78745159, 0.99001453, 0.99506022, 0.47851123], 921 [- 5.79209332, - 0.00313911, 0.00179715, 6.78895421, 0.99002354, 0.99506375, 0.47855419], 922 [- 5.79358930, - 0.00313665, 0.00179608, 6.79045265, 0.99003253, 0.99506727, 0.47859703], 923 [- 5.79508110, - 0.00313419, 0.00179501, 6.79194692, 0.99004150, 0.99507080, 0.47863976], 924 [- 5.79656875, - 0.00313173, 0.00179395, 6.79343702, 0.99005046, 0.99507432, 0.47868238], 925 [- 5.79805224, - 0.00312928, 0.00179288, 6.79492296, 0.99005941, 0.99507784, 0.47872487], 926 [- 5.79953159, - 0.00312683, 0.00179182, 6.79640476, 0.99006834, 0.99508135, 0.47876726], 927 [- 5.80100681, - 0.00312438, 0.00179075, 6.79788243, 0.99007726, 0.99508486, 0.47880954], 928 [- 5.80247790, - 0.00312194, 0.00178969, 6.79935596, 0.99008617, 0.99508837, 0.47885170], 929 [- 5.80394487, - 0.00311950, 0.00178863, 6.80082538, 0.99009506, 0.99509187, 0.47889374], 930 [- 5.80540774, - 0.00311706, 0.00178756, 6.80229068, 0.99010394, 0.99509538, 0.47893568], 931 [- 5.80686651, - 0.00311462, 0.00178650, 6.80375189, 0.99011281, 0.99509888, 0.47897750], 932 [- 5.80832119, - 0.00311219, 0.00178544, 6.80520900, 0.99012166, 0.99510237, 0.47901921], 933 [- 5.80977179, - 0.00310976, 0.00178438, 6.80666204, 0.99013050, 0.99510587, 0.47906081], 934 [- 5.81121832, - 0.00310733, 0.00178331, 6.80811099, 0.99013933, 0.99510936, 0.47910230], 935 [- 5.81266079, - 0.00310490, 0.00178225, 6.80955589, 0.99014814, 0.99511284, 0.47914367], 936 [- 5.81409921, - 0.00310248, 0.00178119, 6.81099673, 0.99015694, 0.99511633, 0.47918494], 937 [- 5.81553358, - 0.00310006, 0.00178013, 6.81243352, 0.99016573, 0.99511981, 0.47922609], 938 [- 5.81696392, - 0.00309764, 0.00177907, 6.81386627, 0.99017450, 0.99512329, 0.47926714], 939 [- 5.81839023, - 0.00309523, 0.00177801, 6.81529500, 0.99018326, 0.99512676, 0.47930807], 940 [- 5.81981252, - 0.00309282, 0.00177695, 6.81671970, 0.99019200, 0.99513024, 0.47934889], 941 [- 5.82123081, - 0.00309041, 0.00177589, 6.81814040, 0.99020074, 0.99513370, 0.47938960], 942 [- 5.82264509, - 0.00308800, 0.00177483, 6.81955709, 0.99020946, 0.99513717, 0.47943020], 943 [- 5.82405539, - 0.00308560, 0.00177377, 6.82096980, 0.99021816, 0.99514063, 0.47947070], 944 [- 5.82546171, - 0.00308319, 0.00177271, 6.82237851, 0.99022686, 0.99514410, 0.47951108], 945 [- 5.82686405, - 0.00308079, 0.00177165, 6.82378326, 0.99023554, 0.99514755, 0.47955135], 946 [- 5.82826243, - 0.00307840, 0.00177059, 6.82518403, 0.99024421, 0.99515101, 0.47959152], 947 [- 5.82965686, - 0.00307600, 0.00176954, 6.82658086, 0.99025286, 0.99515446, 0.47963157], 948 [- 5.83104734, - 0.00307361, 0.00176848, 6.82797373, 0.99026150, 0.99515791, 0.47967152], 949 [- 5.83243389, - 0.00307122, 0.00176742, 6.82936266, 0.99027013, 0.99516135, 0.47971136], 950 [- 5.83381650, - 0.00306884, 0.00176637, 6.83074767, 0.99027875, 0.99516480, 0.47975109], 951 [- 5.83519520, - 0.00306645, 0.00176531, 6.83212875, 0.99028735, 0.99516824, 0.47979072], 952 [- 5.83656999, - 0.00306407, 0.00176425, 6.83350592, 0.99029594, 0.99517167, 0.47983023], 953 [- 5.83794088, - 0.00306169, 0.00176320, 6.83487918, 0.99030451, 0.99517511, 0.47986964], 954 [- 5.83930788, - 0.00305932, 0.00176214, 6.83624856, 0.99031308, 0.99517854, 0.47990894], 955 [- 5.84067099, - 0.00305695, 0.00176109, 6.83761404, 0.99032163, 0.99518197, 0.47994814], 956 [- 5.84203023, - 0.00305458, 0.00176003, 6.83897565, 0.99033017, 0.99518539, 0.47998722], 957 [- 5.84338560, - 0.00305221, 0.00175898, 6.84033340, 0.99033869, 0.99518881, 0.48002620], 958 [- 5.84473712, - 0.00304984, 0.00175793, 6.84168728, 0.99034721, 0.99519223, 0.48006508], 959 [- 5.84608479, - 0.00304748, 0.00175687, 6.84303731, 0.99035571, 0.99519565, 0.48010385], 960 [- 5.84742862, - 0.00304512, 0.00175582, 6.84438350, 0.99036419, 0.99519906, 0.48014251], 961 [- 5.84876862, - 0.00304276, 0.00175477, 6.84572586, 0.99037267, 0.99520247, 0.48018107], 962 [- 5.85010480, - 0.00304041, 0.00175371, 6.84706439, 0.99038113, 0.99520588, 0.48021952], 963 [- 5.85143717, - 0.00303805, 0.00175266, 6.84839911, 0.99038958, 0.99520929, 0.48025787], 964 [- 5.85276573, - 0.00303570, 0.00175161, 6.84973003, 0.99039802, 0.99521269, 0.48029611], 965 [- 5.85409050, - 0.00303336, 0.00175056, 6.85105714, 0.99040644, 0.99521609, 0.48033425], 966 [- 5.85541148, - 0.00303101, 0.00174951, 6.85238047, 0.99041485, 0.99521948, 0.48037228], 967 [- 5.85672868, - 0.00302867, 0.00174846, 6.85370002, 0.99042325, 0.99522288, 0.48041021], 968 [- 5.85804212, - 0.00302633, 0.00174741, 6.85501579, 0.99043164, 0.99522627, 0.48044803], 969 [- 5.85935180, - 0.00302399, 0.00174636, 6.85632781, 0.99044002, 0.99522965, 0.48048575], 970 [- 5.86065772, - 0.00302166, 0.00174531, 6.85763607, 0.99044838, 0.99523304, 0.48052337], 971 [- 5.86195991, - 0.00301932, 0.00174426, 6.85894058, 0.99045673, 0.99523642, 0.48056088], 972 [- 5.86325835, - 0.00301699, 0.00174321, 6.86024136, 0.99046507, 0.99523980, 0.48059829], 973 [- 5.86455308, - 0.00301467, 0.00174216, 6.86153841, 0.99047339, 0.99524317, 0.48063560], 974 [- 5.86584409, - 0.00301234, 0.00174111, 6.86283174, 0.99048171, 0.99524655, 0.48067281], 975 [- 5.86713139, - 0.00301002, 0.00174006, 6.86412137, 0.99049001, 0.99524992, 0.48070991], 976 [- 5.86841499, - 0.00300770, 0.00173902, 6.86540729, 0.99049829, 0.99525328, 0.48074691], 977 [- 5.86969490, - 0.00300538, 0.00173797, 6.86668952, 0.99050657, 0.99525665, 0.48078381], 978 [- 5.87097113, - 0.00300307, 0.00173692, 6.86796806, 0.99051483, 0.99526001, 0.48082060], 979 [- 5.87224368, - 0.00300076, 0.00173588, 6.86924293, 0.99052309, 0.99526337, 0.48085730], 980 [- 5.87351257, - 0.00299845, 0.00173483, 6.87051413, 0.99053133, 0.99526672, 0.48089389], 981 [- 5.87477781, - 0.00299614, 0.00173378, 6.87178167, 0.99053955, 0.99527008, 0.48093038], 982 [- 5.87603940, - 0.00299383, 0.00173274, 6.87304557, 0.99054777, 0.99527343, 0.48096678], 983 [- 5.87729735, - 0.00299153, 0.00173169, 6.87430582, 0.99055597, 0.99527677, 0.48100307], 984 [- 5.87855167, - 0.00298923, 0.00173065, 6.87556244, 0.99056416, 0.99528012, 0.48103926], 985 [- 5.87980237, - 0.00298694, 0.00172961, 6.87681543, 0.99057234, 0.99528346, 0.48107535], 986 [- 5.88104946, - 0.00298464, 0.00172856, 6.87806482, 0.99058051, 0.99528680, 0.48111134], 987 [- 5.88229294, - 0.00298235, 0.00172752, 6.87931059, 0.99058867, 0.99529013, 0.48114723], 988 [- 5.88353283, - 0.00298006, 0.00172648, 6.88055277, 0.99059681, 0.99529347, 0.48118302], 989 [- 5.88476913, - 0.00297777, 0.00172543, 6.88179135, 0.99060494, 0.99529680, 0.48121871], 990 [- 5.88600185, - 0.00297549, 0.00172439, 6.88302636, 0.99061306, 0.99530012, 0.48125430], 991 [- 5.88723100, - 0.00297320, 0.00172335, 6.88425779, 0.99062117, 0.99530345, 0.48128980], 992 [- 5.88845659, - 0.00297093, 0.00172231, 6.88548566, 0.99062927, 0.99530677, 0.48132519], 993 [- 5.88967862, - 0.00296865, 0.00172127, 6.88670998, 0.99063735, 0.99531009, 0.48136049], 994 [- 5.89089712, - 0.00296637, 0.00172022, 6.88793074, 0.99064542, 0.99531340, 0.48139569], 995 [- 5.89211207, - 0.00296410, 0.00171918, 6.88914797, 0.99065348, 0.99531671, 0.48143079], 996 [- 5.89332350, - 0.00296183, 0.00171814, 6.89036167, 0.99066153, 0.99532002, 0.48146579], 997 [- 5.89453141, - 0.00295956, 0.00171710, 6.89157185, 0.99066957, 0.99532333, 0.48150069], 998 [- 5.89573581, - 0.00295730, 0.00171607, 6.89277851, 0.99067760, 0.99532664, 0.48153550], 999 [- 5.89693670, - 0.00295504, 0.00171503, 6.89398167, 0.99068561, 0.99532994, 0.48157021], 1000 [- 5.89813411, - 0.00295278, 0.00171399, 6.89518133, 0.99069361, 0.99533324, 0.48160482], 1001 [- 5.89932802, - 0.00295052, 0.00171295, 6.89637751, 0.99070160, 0.99533653, 0.48163934], 1002 [- 5.90051846, - 0.00294826, 0.00171191, 6.89757020, 0.99070958, 0.99533983, 0.48167376], 1003 [- 5.90170544, - 0.00294601, 0.00171088, 6.89875943, 0.99071755, 0.99534312, 0.48170809], 1004 [- 5.90288895, - 0.00294376, 0.00170984, 6.89994519, 0.99072550, 0.99534640, 0.48174231], 1005 [- 5.90406901, - 0.00294151, 0.00170880, 6.90112750, 0.99073345, 0.99534969, 0.48177645], 1006 [- 5.90524562, - 0.00293927, 0.00170777, 6.90230636, 0.99074138, 0.99535297, 0.48181048], 1007 [- 5.90641881, - 0.00293702, 0.00170673, 6.90348178, 0.99074930, 0.99535625, 0.48184443], 1008 [- 5.90758856, - 0.00293478, 0.00170569, 6.90465378, 0.99075721, 0.99535952, 0.48187827], 1009 [- 5.90875490, - 0.00293254, 0.00170466, 6.90582235, 0.99076511, 0.99536280, 0.48191202], 1010 [- 5.90991782, - 0.00293031, 0.00170363, 6.90698751, 0.99077300, 0.99536607, 0.48194568], 1011 [- 5.91107735, - 0.00292807, 0.00170259, 6.90814927, 0.99078087, 0.99536933, 0.48197924], 1012 [- 5.91223348, - 0.00292584, 0.00170156, 6.90930763, 0.99078874, 0.99537260, 0.48201271], 1013 [- 5.91338622, - 0.00292362, 0.00170052, 6.91046261, 0.99079659, 0.99537586, 0.48204608], 1014 [- 5.91453559, - 0.00292139, 0.00169949, 6.91161420, 0.99080443, 0.99537912, 0.48207936], 1015 [- 5.91568159, - 0.00291917, 0.00169846, 6.91276243, 0.99081226, 0.99538238, 0.48211255], 1016 [- 5.91682423, - 0.00291694, 0.00169743, 6.91390729, 0.99082008, 0.99538563, 0.48214564], 1017 [- 5.91796352, - 0.00291472, 0.00169639, 6.91504879, 0.99082789, 0.99538888, 0.48217864], 1018 [- 5.91909946, - 0.00291251, 0.00169536, 6.91618695, 0.99083569, 0.99539213, 0.48221155], 1019 [- 5.92023207, - 0.00291029, 0.00169433, 6.91732177, 0.99084347, 0.99539537, 0.48224436], 1020 [- 5.92136135, - 0.00290808, 0.00169330, 6.91845327, 0.99085124, 0.99539862, 0.48227709], 1021 [- 5.92248731, - 0.00290587, 0.00169227, 6.91958144, 0.99085901, 0.99540186, 0.48230971], 1022 [- 5.92360996, - 0.00290367, 0.00169124, 6.92070629, 0.99086676, 0.99540509, 0.48234225], 1023 [- 5.92472930, - 0.00290146, 0.00169021, 6.92182784, 0.99087450, 0.99540833, 0.48237470], 1024 [- 5.92584536, - 0.00289926, 0.00168918, 6.92294610, 0.99088223, 0.99541156, 0.48240705], 1025 [- 5.92695812, - 0.00289706, 0.00168816, 6.92406106, 0.99088995, 0.99541479, 0.48243931], 1026 [- 5.92806761, - 0.00289486, 0.00168713, 6.92517274, 0.99089766, 0.99541801, 0.48247148], 1027 [- 5.92917382, - 0.00289267, 0.00168610, 6.92628115, 0.99090535, 0.99542123, 0.48250356], 1028 [- 5.93027677, - 0.00289047, 0.00168507, 6.92738630, 0.99091304, 0.99542445, 0.48253555], 1029 [- 5.93137647, - 0.00288828, 0.00168405, 6.92848819, 0.99092071, 0.99542767, 0.48256745], 1030 [- 5.93247293, - 0.00288610, 0.00168302, 6.92958683, 0.99092837, 0.99543089, 0.48259926], 1031 [- 5.93356614, - 0.00288391, 0.00168199, 6.93068223, 0.99093603, 0.99543410, 0.48263098], 1032 [- 5.93465613, - 0.00288173, 0.00168097, 6.93177440, 0.99094367, 0.99543731, 0.48266260], 1033 [- 5.93574289, - 0.00287955, 0.00167994, 6.93286334, 0.99095130, 0.99544051, 0.48269414], 1034 [- 5.93682644, - 0.00287737, 0.00167892, 6.93394907, 0.99095892, 0.99544371, 0.48272559], 1035 [- 5.93790678, - 0.00287519, 0.00167789, 6.93503159, 0.99096653, 0.99544692, 0.48275695], 1036 [- 5.93898392, - 0.00287302, 0.00167687, 6.93611091, 0.99097412, 0.99545011, 0.48278822], 1037 [- 5.94005788, - 0.00287085, 0.00167585, 6.93718703, 0.99098171, 0.99545331, 0.48281940], 1038 [- 5.94112865, - 0.00286868, 0.00167482, 6.93825997, 0.99098929, 0.99545650, 0.48285049], 1039 [- 5.94219625, - 0.00286651, 0.00167380, 6.93932974, 0.99099685, 0.99545969, 0.48288150], 1040 [- 5.94326068, - 0.00286435, 0.00167278, 6.94039634, 0.99100441, 0.99546288, 0.48291241], 1041 [- 5.94432196, - 0.00286218, 0.00167176, 6.94145977, 0.99101195, 0.99546606, 0.48294324], 1042 [- 5.94538008, - 0.00286002, 0.00167074, 6.94252006, 0.99101949, 0.99546924, 0.48297398], 1043 [- 5.94643506, - 0.00285787, 0.00166971, 6.94357720, 0.99102701, 0.99547242, 0.48300463], 1044 [- 5.94748691, - 0.00285571, 0.00166869, 6.94463120, 0.99103452, 0.99547559, 0.48303520], 1045 [- 5.94853563, - 0.00285356, 0.00166767, 6.94568207, 0.99104202, 0.99547877, 0.48306568], 1046 [- 5.94958124, - 0.00285141, 0.00166666, 6.94672983, 0.99104951, 0.99548194, 0.48309607], 1047 [- 5.95062373, - 0.00284926, 0.00166564, 6.94777447, 0.99105699, 0.99548510, 0.48312637], 1048 [- 5.95166312, - 0.00284711, 0.00166462, 6.94881600, 0.99106446, 0.99548827, 0.48315659], 1049 [- 5.95269941, - 0.00284497, 0.00166360, 6.94985444, 0.99107192, 0.99549143, 0.48318672], 1050 [- 5.95373262, - 0.00284283, 0.00166258, 6.95088979, 0.99107937, 0.99549459, 0.48321676], 1051 [- 5.95476275, - 0.00284069, 0.00166156, 6.95192206, 0.99108681, 0.99549775, 0.48324672], 1052 [- 5.95578980, - 0.00283855, 0.00166055, 6.95295125, 0.99109423, 0.99550090, 0.48327660], 1053 [- 5.95681380, - 0.00283642, 0.00165953, 6.95397738, 0.99110165, 0.99550405, 0.48330638], 1054 [- 5.95783474, - 0.00283429, 0.00165852, 6.95500045, 0.99110906, 0.99550720, 0.48333609], 1055 [- 5.95885262, - 0.00283216, 0.00165750, 6.95602047, 0.99111645, 0.99551034, 0.48336571], 1056 [- 5.95986747, - 0.00283003, 0.00165648, 6.95703744, 0.99112384, 0.99551348, 0.48339524], 1057 [- 5.96087929, - 0.00282791, 0.00165547, 6.95805138, 0.99113121, 0.99551662, 0.48342469], 1058 [- 5.96188808, - 0.00282578, 0.00165446, 6.95906230, 0.99113858, 0.99551976, 0.48345405], 1059 [- 5.96289385, - 0.00282366, 0.00165344, 6.96007019, 0.99114593, 0.99552290, 0.48348333], 1060 [- 5.96389662, - 0.00282154, 0.00165243, 6.96107507, 0.99115327, 0.99552603, 0.48351252], 1061 [- 5.96489638, - 0.00281943, 0.00165142, 6.96207695, 0.99116061, 0.99552916, 0.48354163], 1062 [- 5.96589315, - 0.00281732, 0.00165040, 6.96307584, 0.99116793, 0.99553228, 0.48357066], 1063 [- 5.96688693, - 0.00281520, 0.00164939, 6.96407173, 0.99117524, 0.99553540, 0.48359961], 1064 [- 5.96787774, - 0.00281310, 0.00164838, 6.96506464, 0.99118255, 0.99553852, 0.48362846], 1065 [- 5.96886557, - 0.00281099, 0.00164737, 6.96605458, 0.99118984, 0.99554164, 0.48365724], 1066 [- 5.96985044, - 0.00280888, 0.00164636, 6.96704156, 0.99119712, 0.99554476, 0.48368594], 1067 [- 5.97083235, - 0.00280678, 0.00164535, 6.96802557, 0.99120439, 0.99554787, 0.48371455], 1068 [- 5.97181132, - 0.00280468, 0.00164434, 6.96900664, 0.99121165, 0.99555098, 0.48374308], 1069 [- 5.97278734, - 0.00280258, 0.00164333, 6.96998476, 0.99121891, 0.99555409, 0.48377153], 1070 [- 5.97376044, - 0.00280049, 0.00164232, 6.97095995, 0.99122615, 0.99555719, 0.48379989], 1071 [- 5.97473060, - 0.00279840, 0.00164131, 6.97193221, 0.99123338, 0.99556029, 0.48382818], 1072 [- 5.97569785, - 0.00279631, 0.00164031, 6.97290155, 0.99124060, 0.99556339, 0.48385638], 1073 [- 5.97666219, - 0.00279422, 0.00163930, 6.97386797, 0.99124781, 0.99556648, 0.48388450], 1074 [- 5.97762362, - 0.00279213, 0.00163829, 6.97483149, 0.99125501, 0.99556958, 0.48391254], 1075 [- 5.97858216, - 0.00279005, 0.00163729, 6.97579212, 0.99126220, 0.99557267, 0.48394050], 1076 [- 5.97953782, - 0.00278796, 0.00163628, 6.97674985, 0.99126938, 0.99557576, 0.48396837], 1077 [- 5.98049059, - 0.00278589, 0.00163527, 6.97770470, 0.99127655, 0.99557884, 0.48399617], 1078 [- 5.98144049, - 0.00278381, 0.00163427, 6.97865668, 0.99128371, 0.99558192, 0.48402389], 1079 [- 5.98238752, - 0.00278173, 0.00163326, 6.97960579, 0.99129087, 0.99558500, 0.48405152], 1080 [- 5.98333170, - 0.00277966, 0.00163226, 6.98055204, 0.99129801, 0.99558808, 0.48407908], 1081 [- 5.98427302, - 0.00277759, 0.00163126, 6.98149543, 0.99130514, 0.99559115, 0.48410655], 1082 [- 5.98521150, - 0.00277552, 0.00163025, 6.98243598, 0.99131226, 0.99559422, 0.48413395], 1083 [- 5.98614715, - 0.00277346, 0.00162925, 6.98337369, 0.99131937, 0.99559729, 0.48416127], 1084 [- 5.98707997, - 0.00277139, 0.00162825, 6.98430858, 0.99132647, 0.99560036, 0.48418851], 1085 [- 5.98800996, - 0.00276933, 0.00162725, 6.98524063, 0.99133356, 0.99560342, 0.48421567], 1086 [- 5.98893715, - 0.00276727, 0.00162625, 6.98616988, 0.99134064, 0.99560648, 0.48424275], 1087 [- 5.98986153, - 0.00276521, 0.00162525, 6.98709631, 0.99134771, 0.99560954, 0.48426975], 1088 [- 5.99078310, - 0.00276316, 0.00162425, 6.98801995, 0.99135477, 0.99561259, 0.48429667], 1089 [- 5.99170189, - 0.00276111, 0.00162325, 6.98894079, 0.99136183, 0.99561565, 0.48432352], 1090 [- 5.99261789, - 0.00275906, 0.00162225, 6.98985884, 0.99136887, 0.99561870, 0.48435028], 1091 [- 5.99353112, - 0.00275701, 0.00162125, 6.99077411, 0.99137590, 0.99562174, 0.48437697], 1092 [- 5.99444158, - 0.00275496, 0.00162025, 6.99168662, 0.99138292, 0.99562479, 0.48440358], 1093 [- 5.99534927, - 0.00275292, 0.00161925, 6.99259635, 0.99138994, 0.99562783, 0.48443012], 1094 [- 5.99625421, - 0.00275088, 0.00161826, 6.99350334, 0.99139694, 0.99563087, 0.48445657], 1095 [- 5.99715640, - 0.00274884, 0.00161726, 6.99440757, 0.99140393, 0.99563390, 0.48448295], 1096 [- 5.99805585, - 0.00274680, 0.00161626, 6.99530906, 0.99141092, 0.99563694, 0.48450926], 1097 [- 5.99895257, - 0.00274476, 0.00161527, 6.99620781, 0.99141789, 0.99563997, 0.48453548], 1098 [- 5.99984656, - 0.00274273, 0.00161427, 6.99710383, 0.99142485, 0.99564299, 0.48456163], 1099 [- 6.00073784, - 0.00274070, 0.00161328, 6.99799714, 0.99143181, 0.99564602, 0.48458771], 1100 [- 6.00162640, - 0.00273867, 0.00161228, 6.99888773, 0.99143875, 0.99564904, 0.48461370], 1101 [- 6.00251225, - 0.00273665, 0.00161129, 6.99977561, 0.99144569, 0.99565206, 0.48463962], 1102 [- 6.00339541, - 0.00273462, 0.00161030, 7.00066079, 0.99145261, 0.99565508, 0.48466547], 1103 [- 6.00427588, - 0.00273260, 0.00160931, 7.00154328, 0.99145953, 0.99565809, 0.48469124], 1104 [- 6.00515367, - 0.00273058, 0.00160831, 7.00242309, 0.99146644, 0.99566111, 0.48471693], 1105 [- 6.00602878, - 0.00272856, 0.00160732, 7.00330021, 0.99147334, 0.99566411, 0.48474255], 1106 [- 6.00690122, - 0.00272655, 0.00160633, 7.00417467, 0.99148022, 0.99566712, 0.48476810], 1107 [- 6.00777100, - 0.00272454, 0.00160534, 7.00504646, 0.99148710, 0.99567012, 0.48479357], 1108 [- 6.00863812, - 0.00272252, 0.00160435, 7.00591560, 0.99149397, 0.99567313, 0.48481896], 1109 [- 6.00950260, - 0.00272052, 0.00160336, 7.00678208, 0.99150083, 0.99567612, 0.48484429], 1110 [- 6.01036444, - 0.00271851, 0.00160237, 7.00764593, 0.99150768, 0.99567912, 0.48486953], 1111 [- 6.01122364, - 0.00271651, 0.00160138, 7.00850713, 0.99151452, 0.99568211, 0.48489471], 1112 [- 6.01208022, - 0.00271450, 0.00160039, 7.00936571, 0.99152135, 0.99568510, 0.48491980], 1113 [- 6.01293417, - 0.00271250, 0.00159941, 7.01022167, 0.99152817, 0.99568809, 0.48494483], 1114 [- 6.01378552, - 0.00271051, 0.00159842, 7.01107501, 0.99153498, 0.99569107, 0.48496978], 1115 [- 6.01463426, - 0.00270851, 0.00159743, 7.01192575, 0.99154179, 0.99569406, 0.48499466], 1116 [- 6.01548040, - 0.00270652, 0.00159645, 7.01277388, 0.99154858, 0.99569704, 0.48501947], 1117 [- 6.01632394, - 0.00270453, 0.00159546, 7.01361942, 0.99155537, 0.99570001, 0.48504420], 1118 [- 6.01716491, - 0.00270254, 0.00159448, 7.01446237, 0.99156214, 0.99570299, 0.48506886], 1119 [- 6.01800329, - 0.00270055, 0.00159349, 7.01530274, 0.99156891, 0.99570596, 0.48509345], 1120 [- 6.01883911, - 0.00269856, 0.00159251, 7.01614055, 0.99157566, 0.99570893, 0.48511797], 1121 [- 6.01967236, - 0.00269658, 0.00159153, 7.01697578, 0.99158241, 0.99571189, 0.48514241], 1122 [- 6.02050306, - 0.00269460, 0.00159054, 7.01780845, 0.99158915, 0.99571486, 0.48516678], 1123 [- 6.02133120, - 0.00269262, 0.00158956, 7.01863858, 0.99159588, 0.99571782, 0.48519108], 1124 [- 6.02215680, - 0.00269065, 0.00158858, 7.01946615, 0.99160260, 0.99572077, 0.48521531], 1125 [- 6.02297987, - 0.00268867, 0.00158760, 7.02029119, 0.99160931, 0.99572373, 0.48523947], 1126 [- 6.02380040, - 0.00268670, 0.00158662, 7.02111370, 0.99161601, 0.99572668, 0.48526355], 1127 [- 6.02461841, - 0.00268473, 0.00158564, 7.02193368, 0.99162270, 0.99572963, 0.48528757], 1128 [- 6.02543391, - 0.00268276, 0.00158466, 7.02275115, 0.99162938, 0.99573258, 0.48531151], 1129 [- 6.02624690, - 0.00268080, 0.00158368, 7.02356610, 0.99163606, 0.99573552, 0.48533539], 1130 [- 6.02705738, - 0.00267883, 0.00158270, 7.02437855, 0.99164272, 0.99573847, 0.48535919], 1131 [- 6.02786537, - 0.00267687, 0.00158172, 7.02518850, 0.99164938, 0.99574141, 0.48538292], 1132 [- 6.02867087, - 0.00267491, 0.00158074, 7.02599596, 0.99165602, 0.99574434, 0.48540659], 1133 [- 6.02947389, - 0.00267296, 0.00157977, 7.02680093, 0.99166266, 0.99574728, 0.48543018], 1134 [- 6.03027443, - 0.00267100, 0.00157879, 7.02760343, 0.99166929, 0.99575021, 0.48545370], 1135 [- 6.03107251, - 0.00266905, 0.00157781, 7.02840346, 0.99167591, 0.99575314, 0.48547716], 1136 [- 6.03186812, - 0.00266710, 0.00157684, 7.02920102, 0.99168252, 0.99575606, 0.48550054], 1137 [- 6.03266127, - 0.00266515, 0.00157586, 7.02999612, 0.99168912, 0.99575899, 0.48552386], 1138 [- 6.03345198, - 0.00266320, 0.00157489, 7.03078878, 0.99169571, 0.99576191, 0.48554710], 1139 [- 6.03424025, - 0.00266126, 0.00157391, 7.03157899, 0.99170230, 0.99576483, 0.48557028], 1140 [- 6.03502608, - 0.00265932, 0.00157294, 7.03236676, 0.99170887, 0.99576774, 0.48559339], 1141 [- 6.03580948, - 0.00265738, 0.00157197, 7.03315210, 0.99171544, 0.99577065, 0.48561643], 1142 [- 6.03659046, - 0.00265544, 0.00157100, 7.03393502, 0.99172199, 0.99577356, 0.48563940], 1143 [- 6.03736903, - 0.00265350, 0.00157002, 7.03471552, 0.99172854, 0.99577647, 0.48566231], 1144 [- 6.03814518, - 0.00265157, 0.00156905, 7.03549361, 0.99173508, 0.99577938, 0.48568514], 1145 [- 6.03891894, - 0.00264964, 0.00156808, 7.03626930, 0.99174161, 0.99578228, 0.48570791], 1146 [- 6.03969029, - 0.00264771, 0.00156711, 7.03704258, 0.99174813, 0.99578518, 0.48573061], 1147 [- 6.04045926, - 0.00264578, 0.00156614, 7.03781348, 0.99175464, 0.99578807, 0.48575324], 1148 [- 6.04122585, - 0.00264386, 0.00156517, 7.03858199, 0.99176115, 0.99579097, 0.48577581], 1149 [- 6.04199006, - 0.00264193, 0.00156421, 7.03934813, 0.99176764, 0.99579386, 0.48579831], 1150 [- 6.04275190, - 0.00264001, 0.00156324, 7.04011189, 0.99177413, 0.99579675, 0.48582075], 1151 [- 6.04351138, - 0.00263809, 0.00156227, 7.04087328, 0.99178061, 0.99579964, 0.48584311], 1152 [- 6.04426850, - 0.00263618, 0.00156130, 7.04163232, 0.99178707, 0.99580252, 0.48586541], 1153 [- 6.04502327, - 0.00263426, 0.00156034, 7.04238901, 0.99179353, 0.99580540, 0.48588765], 1154 [- 6.04577570, - 0.00263235, 0.00155937, 7.04314335, 0.99179998, 0.99580828, 0.48590981], 1155 [- 6.04652579, - 0.00263044, 0.00155841, 7.04389535, 0.99180643, 0.99581115, 0.48593191], 1156 [- 6.04727354, - 0.00262853, 0.00155744, 7.04464502, 0.99181286, 0.99581403, 0.48595395], 1157 [- 6.04801898, - 0.00262662, 0.00155648, 7.04539236, 0.99181929, 0.99581690, 0.48597592], 1158 [- 6.04876210, - 0.00262472, 0.00155552, 7.04613738, 0.99182570, 0.99581977, 0.48599782], 1159 [- 6.04950290, - 0.00262282, 0.00155455, 7.04688009, 0.99183211, 0.99582263, 0.48601966], 1160 [- 6.05024140, - 0.00262092, 0.00155359, 7.04762049, 0.99183851, 0.99582549, 0.48604144], 1161 [- 6.05097760, - 0.00261902, 0.00155263, 7.04835858, 0.99184490, 0.99582835, 0.48606315], 1162 [- 6.05171151, - 0.00261712, 0.00155167, 7.04909439, 0.99185128, 0.99583121, 0.48608479], 1163 [- 6.05244313, - 0.00261523, 0.00155071, 7.04982791, 0.99185765, 0.99583407, 0.48610637], 1164 [- 6.05317248, - 0.00261334, 0.00154975, 7.05055914, 0.99186402, 0.99583692, 0.48612789], 1165 [- 6.05389955, - 0.00261145, 0.00154879, 7.05128810, 0.99187037, 0.99583977, 0.48614934], 1166 [- 6.05462435, - 0.00260956, 0.00154783, 7.05201479, 0.99187672, 0.99584261, 0.48617073], 1167 [- 6.05534689, - 0.00260767, 0.00154687, 7.05273922, 0.99188306, 0.99584546, 0.48619205], 1168 [- 6.05606718, - 0.00260579, 0.00154591, 7.05346139, 0.99188939, 0.99584830, 0.48621331], 1169 [- 6.05678521, - 0.00260391, 0.00154495, 7.05418131, 0.99189571, 0.99585114, 0.48623450], 1170 [- 6.05750101, - 0.00260203, 0.00154400, 7.05489898, 0.99190203, 0.99585398, 0.48625564], 1171 [- 6.05821457, - 0.00260015, 0.00154304, 7.05561442, 0.99190833, 0.99585681, 0.48627671], 1172 [- 6.05892590, - 0.00259827, 0.00154209, 7.05632763, 0.99191463, 0.99585964, 0.48629772], 1173 [- 6.05963501, - 0.00259640, 0.00154113, 7.05703861, 0.99192092, 0.99586247, 0.48631866], 1174 [- 6.06034190, - 0.00259453, 0.00154018, 7.05774737, 0.99192720, 0.99586529, 0.48633954], 1175 [- 6.06104657, - 0.00259266, 0.00153922, 7.05845392, 0.99193347, 0.99586812, 0.48636036], 1176 [- 6.06174905, - 0.00259079, 0.00153827, 7.05915826, 0.99193973, 0.99587094, 0.48638112], 1177 [- 6.06244932, - 0.00258893, 0.00153732, 7.05986040, 0.99194598, 0.99587376, 0.48640181], 1178 [- 6.06314740, - 0.00258706, 0.00153637, 7.06056034, 0.99195223, 0.99587657, 0.48642244], 1179 [- 6.06384330, - 0.00258520, 0.00153541, 7.06125810, 0.99195847, 0.99587938, 0.48644301], 1180 [- 6.06453701, - 0.00258334, 0.00153446, 7.06195367, 0.99196470, 0.99588220, 0.48646352], 1181 [- 6.06522855, - 0.00258148, 0.00153351, 7.06264707, 0.99197092, 0.99588500, 0.48648397], 1182 [- 6.06591793, - 0.00257963, 0.00153256, 7.06333830, 0.99197713, 0.99588781, 0.48650436], 1183 [- 6.06660514, - 0.00257778, 0.00153161, 7.06402736, 0.99198334, 0.99589061, 0.48652468], 1184 [- 6.06729019, - 0.00257592, 0.00153067, 7.06471427, 0.99198953, 0.99589341, 0.48654494], 1185 [- 6.06797309, - 0.00257408, 0.00152972, 7.06539902, 0.99199572, 0.99589621, 0.48656515], 1186 [- 6.06865385, - 0.00257223, 0.00152877, 7.06608163, 0.99200190, 0.99589900, 0.48658529], 1187 [- 6.06933248, - 0.00257038, 0.00152782, 7.06676209, 0.99200807, 0.99590179, 0.48660537], 1188 [- 6.07000896, - 0.00256854, 0.00152688, 7.06744043, 0.99201424, 0.99590458, 0.48662539], 1189 [- 6.07068333, - 0.00256670, 0.00152593, 7.06811663, 0.99202039, 0.99590737, 0.48664535], 1190 [- 6.07135557, - 0.00256486, 0.00152499, 7.06879071, 0.99202654, 0.99591015, 0.48666525], 1191 [- 6.07202570, - 0.00256302, 0.00152404, 7.06946268, 0.99203268, 0.99591294, 0.48668509], 1192 [- 6.07269372, - 0.00256119, 0.00152310, 7.07013254, 0.99203881, 0.99591572, 0.48670487], 1193 [- 6.07335964, - 0.00255935, 0.00152215, 7.07080029, 0.99204493, 0.99591849, 0.48672460], 1194 [- 6.07402346, - 0.00255752, 0.00152121, 7.07146594, 0.99205104, 0.99592127, 0.48674426], 1195 [- 6.07468520, - 0.00255569, 0.00152027, 7.07212950, 0.99205715, 0.99592404, 0.48676386], 1196 [- 6.07534484, - 0.00255387, 0.00151933, 7.07279098, 0.99206325, 0.99592681, 0.48678341], 1197 [- 6.07600241, - 0.00255204, 0.00151839, 7.07345037, 0.99206934, 0.99592957, 0.48680289], 1198 [- 6.07665791, - 0.00255022, 0.00151745, 7.07410769, 0.99207542, 0.99593234, 0.48682232], 1199 [- 6.07731134, - 0.00254840, 0.00151651, 7.07476294, 0.99208149, 0.99593510, 0.48684169], 1200 [- 6.07796271, - 0.00254658, 0.00151557, 7.07541613, 0.99208756, 0.99593786, 0.48686100], 1201 [- 6.07861202, - 0.00254476, 0.00151463, 7.07606726, 0.99209362, 0.99594061, 0.48688025], 1202 [- 6.07925928, - 0.00254294, 0.00151369, 7.07671634, 0.99209967, 0.99594336, 0.48689944], 1203 [- 6.07990450, - 0.00254113, 0.00151275, 7.07736337, 0.99210571, 0.99594612, 0.48691858], 1204 [- 6.08054769, - 0.00253932, 0.00151182, 7.07800837, 0.99211174, 0.99594886, 0.48693766], 1205 [- 6.08118884, - 0.00253751, 0.00151088, 7.07865133, 0.99211777, 0.99595161, 0.48695668], 1206 [- 6.08182796, - 0.00253570, 0.00150994, 7.07929226, 0.99212379, 0.99595435, 0.48697564], 1207 [- 6.08246507, - 0.00253390, 0.00150901, 7.07993117, 0.99212980, 0.99595709, 0.48699454], 1208 [- 6.08310016, - 0.00253210, 0.00150807, 7.08056806, 0.99213580, 0.99595983, 0.48701339], 1209 [- 6.08373324, - 0.00253029, 0.00150714, 7.08120294, 0.99214179, 0.99596257, 0.48703218], 1210 [- 6.08436431, - 0.00252849, 0.00150621, 7.08183582, 0.99214778, 0.99596530, 0.48705092], 1211 [- 6.08499339, - 0.00252670, 0.00150527, 7.08246669, 0.99215376, 0.99596803, 0.48706960], 1212 [- 6.08562048, - 0.00252490, 0.00150434, 7.08309558, 0.99215973, 0.99597076, 0.48708821], 1213 [- 6.08624558, - 0.00252311, 0.00150341, 7.08372247, 0.99216569, 0.99597348, 0.48710678], 1214 [- 6.08686870, - 0.00252132, 0.00150248, 7.08434738, 0.99217164, 0.99597620, 0.48712529], 1215 [- 6.08748985, - 0.00251953, 0.00150155, 7.08497032, 0.99217759, 0.99597892, 0.48714374], 1216 [- 6.08810902, - 0.00251774, 0.00150062, 7.08559128, 0.99218353, 0.99598164, 0.48716214], 1217 [- 6.08872624, - 0.00251595, 0.00149969, 7.08621028, 0.99218946, 0.99598436, 0.48718048], 1218 [- 6.08934149, - 0.00251417, 0.00149876, 7.08682732, 0.99219538, 0.99598707, 0.48719876], 1219 [- 6.08995479, - 0.00251239, 0.00149784, 7.08744241, 0.99220130, 0.99598978, 0.48721699], 1220 [- 6.09056615, - 0.00251061, 0.00149691, 7.08805554, 0.99220721, 0.99599248, 0.48723517], 1221 [- 6.09117556, - 0.00250883, 0.00149598, 7.08866673, 0.99221310, 0.99599519, 0.48725329], 1222 [- 6.09178304, - 0.00250705, 0.00149506, 7.08927599, 0.99221900, 0.99599789, 0.48727135], 1223 [- 6.09238859, - 0.00250528, 0.00149413, 7.08988331, 0.99222488, 0.99600059, 0.48728936], 1224 [- 6.09299221, - 0.00250351, 0.00149320, 7.09048871, 0.99223076, 0.99600329, 0.48730732], 1225 [- 6.09359392, - 0.00250174, 0.00149228, 7.09109218, 0.99223663, 0.99600598, 0.48732522], 1226 [- 6.09419371, - 0.00249997, 0.00149136, 7.09169374, 0.99224249, 0.99600867, 0.48734306], 1227 [- 6.09479159, - 0.00249820, 0.00149043, 7.09229339, 0.99224834, 0.99601136, 0.48736085], 1228 [- 6.09538757, - 0.00249644, 0.00148951, 7.09289113, 0.99225419, 0.99601405, 0.48737859], 1229 [- 6.09598165, - 0.00249468, 0.00148859, 7.09348698, 0.99226003, 0.99601673, 0.48739628], 1230 [- 6.09657385, - 0.00249292, 0.00148767, 7.09408093, 0.99226586, 0.99601942, 0.48741390], 1231 [- 6.09716415, - 0.00249116, 0.00148675, 7.09467299, 0.99227168, 0.99602210, 0.48743148], 1232 [- 6.09775257, - 0.00248940, 0.00148583, 7.09526317, 0.99227749, 0.99602477, 0.48744900], 1233 [- 6.09833912, - 0.00248765, 0.00148491, 7.09585148, 0.99228330, 0.99602745, 0.48746647], 1234 [- 6.09892380, - 0.00248589, 0.00148399, 7.09643791, 0.99228910, 0.99603012, 0.48748389], 1235 [- 6.09950662, - 0.00248414, 0.00148307, 7.09702248, 0.99229489, 0.99603279, 0.48750125], 1236 [- 6.10008757, - 0.00248239, 0.00148215, 7.09760518, 0.99230068, 0.99603545, 0.48751856], 1237 [- 6.10066667, - 0.00248065, 0.00148124, 7.09818603, 0.99230646, 0.99603812, 0.48753582], 1238 [- 6.10124393, - 0.00247890, 0.00148032, 7.09876503, 0.99231223, 0.99604078, 0.48755302], 1239 [- 6.10181934, - 0.00247716, 0.00147941, 7.09934218, 0.99231799, 0.99604344, 0.48757018], 1240 [- 6.10239291, - 0.00247542, 0.00147849, 7.09991749, 0.99232374, 0.99604609, 0.48758728], 1241 [- 6.10296465, - 0.00247368, 0.00147758, 7.10049097, 0.99232949, 0.99604875, 0.48760432], 1242 [- 6.10353456, - 0.00247194, 0.00147666, 7.10106262, 0.99233523, 0.99605140, 0.48762132], 1243 [- 6.10410265, - 0.00247020, 0.00147575, 7.10163245, 0.99234096, 0.99605405, 0.48763826], 1244 [- 6.10466892, - 0.00246847, 0.00147484, 7.10220045, 0.99234669, 0.99605669, 0.48765516], 1245 [- 6.10523338, - 0.00246674, 0.00147393, 7.10276665, 0.99235240, 0.99605934, 0.48767200], 1246 [- 6.10579604, - 0.00246501, 0.00147301, 7.10333103, 0.99235811, 0.99606198, 0.48768879], 1247 [- 6.10635689, - 0.00246328, 0.00147210, 7.10389362, 0.99236382, 0.99606462, 0.48770552], 1248 [- 6.10691595, - 0.00246155, 0.00147119, 7.10445440, 0.99236951, 0.99606725, 0.48772221], 1249 [- 6.10747322, - 0.00245983, 0.00147028, 7.10501339, 0.99237520, 0.99606989, 0.48773885], 1250 [- 6.10802871, - 0.00245811, 0.00146937, 7.10557060, 0.99238088, 0.99607252, 0.48775543], 1251 [- 6.10858241, - 0.00245639, 0.00146847, 7.10612603, 0.99238655, 0.99607515, 0.48777197], 1252 [- 6.10913434, - 0.00245467, 0.00146756, 7.10667967, 0.99239222, 0.99607777, 0.48778845], 1253 [- 6.10968450, - 0.00245295, 0.00146665, 7.10723155, 0.99239787, 0.99608040, 0.48780488], 1254 [- 6.11023289, - 0.00245123, 0.00146575, 7.10778166, 0.99240353, 0.99608302, 0.48782127], 1255 [- 6.11077953, - 0.00244952, 0.00146484, 7.10833001, 0.99240917, 0.99608564, 0.48783760], 1256 [- 6.11132441, - 0.00244781, 0.00146393, 7.10887660, 0.99241480, 0.99608825, 0.48785388], 1257 [- 6.11186754, - 0.00244610, 0.00146303, 7.10942144, 0.99242043, 0.99609087, 0.48787012], 1258 [- 6.11240893, - 0.00244439, 0.00146213, 7.10996454, 0.99242605, 0.99609348, 0.48788630], 1259 [- 6.11294858, - 0.00244269, 0.00146122, 7.11050589, 0.99243167, 0.99609609, 0.48790243], 1260 [- 6.11348649, - 0.00244098, 0.00146032, 7.11104551, 0.99243728, 0.99609869, 0.48791852], 1261 [- 6.11402268, - 0.00243928, 0.00145942, 7.11158340, 0.99244288, 0.99610130, 0.48793455], 1262 [- 6.11455714, - 0.00243758, 0.00145852, 7.11211956, 0.99244847, 0.99610390, 0.48795053], 1263 [- 6.11508989, - 0.00243588, 0.00145762, 7.11265400, 0.99245405, 0.99610650, 0.48796647], 1264 [- 6.11562092, - 0.00243419, 0.00145672, 7.11318673, 0.99245963, 0.99610909, 0.48798236], 1265 [- 6.11615024, - 0.00243249, 0.00145582, 7.11371775, 0.99246520, 0.99611169, 0.48799820], 1266 [- 6.11667786, - 0.00243080, 0.00145492, 7.11424706, 0.99247077, 0.99611428, 0.48801399], 1267 [- 6.11720378, - 0.00242911, 0.00145402, 7.11477467, 0.99247632, 0.99611687, 0.48802973], 1268 [- 6.11772800, - 0.00242742, 0.00145312, 7.11530058, 0.99248187, 0.99611945, 0.48804543], 1269 [- 6.11825054, - 0.00242574, 0.00145223, 7.11582481, 0.99248741, 0.99612204, 0.48806107], 1270 [- 6.11877140, - 0.00242405, 0.00145133, 7.11634735, 0.99249295, 0.99612462, 0.48807667], 1271 [- 6.11929057, - 0.00242237, 0.00145043, 7.11686820, 0.99249847, 0.99612720, 0.48809222], 1272 [- 6.11980807, - 0.00242069, 0.00144954, 7.11738739, 0.99250400, 0.99612978, 0.48810772], 1273 [- 6.12032390, - 0.00241901, 0.00144864, 7.11790490, 0.99250951, 0.99613235, 0.48812317], 1274 [- 6.12083807, - 0.00241733, 0.00144775, 7.11842074, 0.99251501, 0.99613492, 0.48813858], 1275 [- 6.12135058, - 0.00241565, 0.00144686, 7.11893493, 0.99252051, 0.99613749, 0.48815394], 1276 [- 6.12186144, - 0.00241398, 0.00144597, 7.11944746, 0.99252601, 0.99614006, 0.48816925], 1277 [- 6.12237064, - 0.00241231, 0.00144507, 7.11995834, 0.99253149, 0.99614262, 0.48818451], 1278 [- 6.12287820, - 0.00241064, 0.00144418, 7.12046757, 0.99253697, 0.99614518, 0.48819973], 1279 [- 6.12338412, - 0.00240897, 0.00144329, 7.12097516, 0.99254244, 0.99614774, 0.48821490], 1280 [- 6.12388841, - 0.00240730, 0.00144240, 7.12148111, 0.99254790, 0.99615030, 0.48823002], 1281 [- 6.12439107, - 0.00240563, 0.00144151, 7.12198543, 0.99255336, 0.99615285, 0.48824510], 1282 [- 6.12489210, - 0.00240397, 0.00144062, 7.12248813, 0.99255881, 0.99615540, 0.48826013], 1283 [- 6.12539151, - 0.00240231, 0.00143974, 7.12298920, 0.99256425, 0.99615795, 0.48827512], 1284 [- 6.12588931, - 0.00240065, 0.00143885, 7.12348866, 0.99256969, 0.99616050, 0.48829005], 1285 [- 6.12638549, - 0.00239899, 0.00143796, 7.12398650, 0.99257512, 0.99616304, 0.48830495], 1286 [- 6.12688007, - 0.00239734, 0.00143708, 7.12448273, 0.99258054, 0.99616559, 0.48831979], 1287 [- 6.12737305, - 0.00239568, 0.00143619, 7.12497736, 0.99258596, 0.99616813, 0.48833460], 1288 [- 6.12786443, - 0.00239403, 0.00143531, 7.12547040, 0.99259136, 0.99617066, 0.48834935], 1289 [- 6.12835422, - 0.00239238, 0.00143442, 7.12596184, 0.99259676, 0.99617320, 0.48836406], 1290 [- 6.12884242, - 0.00239073, 0.00143354, 7.12645169, 0.99260216, 0.99617573, 0.48837872], 1291 [- 6.12932904, - 0.00238908, 0.00143266, 7.12693996, 0.99260755, 0.99617826, 0.48839334], 1292 [- 6.12981408, - 0.00238744, 0.00143177, 7.12742664, 0.99261293, 0.99618079, 0.48840792], 1293 [- 6.13029755, - 0.00238580, 0.00143089, 7.12791176, 0.99261830, 0.99618331, 0.48842244], 1294 [- 6.13077945, - 0.00238416, 0.00143001, 7.12839530, 0.99262367, 0.99618583, 0.48843693], 1295 [- 6.13125979, - 0.00238252, 0.00142913, 7.12887728, 0.99262903, 0.99618835, 0.48845136], 1296 [- 6.13173857, - 0.00238088, 0.00142825, 7.12935769, 0.99263438, 0.99619087, 0.48846576], 1297 [- 6.13221579, - 0.00237924, 0.00142737, 7.12983655, 0.99263972, 0.99619339, 0.48848011], 1298 [- 6.13269147, - 0.00237761, 0.00142649, 7.13031386, 0.99264506, 0.99619590, 0.48849441], 1299 [- 6.13316560, - 0.00237598, 0.00142562, 7.13078962, 0.99265040, 0.99619841, 0.48850867], 1300 [- 6.13363819, - 0.00237434, 0.00142474, 7.13126384, 0.99265572, 0.99620092, 0.48852289], 1301 [- 6.13410924, - 0.00237272, 0.00142386, 7.13173652, 0.99266104, 0.99620342, 0.48853706], 1302 [- 6.13457876, - 0.00237109, 0.00142299, 7.13220767, 0.99266635, 0.99620593, 0.48855119], 1303 [- 6.13504676, - 0.00236946, 0.00142211, 7.13267729, 0.99267166, 0.99620843, 0.48856528], 1304 [- 6.13551323, - 0.00236784, 0.00142124, 7.13314539, 0.99267696, 0.99621092, 0.48857932], 1305 [- 6.13597818, - 0.00236622, 0.00142036, 7.13361197, 0.99268225, 0.99621342, 0.48859332], 1306 [- 6.13644163, - 0.00236460, 0.00141949, 7.13407703, 0.99268753, 0.99621591, 0.48860727], 1307 [- 6.13690356, - 0.00236298, 0.00141862, 7.13454058, 0.99269281, 0.99621840, 0.48862118], 1308 [- 6.13736399, - 0.00236136, 0.00141774, 7.13500263, 0.99269808, 0.99622089, 0.48863505], 1309 [- 6.13782292, - 0.00235975, 0.00141687, 7.13546317, 0.99270335, 0.99622338, 0.48864888], 1310 [- 6.13828035, - 0.00235814, 0.00141600, 7.13592222, 0.99270861, 0.99622586, 0.48866266], 1311 [- 6.13873630, - 0.00235652, 0.00141513, 7.13637977, 0.99271386, 0.99622834, 0.48867640], 1312 [- 6.13919076, - 0.00235492, 0.00141426, 7.13683584, 0.99271910, 0.99623082, 0.48869010], 1313 [- 6.13964373, - 0.00235331, 0.00141339, 7.13729042, 0.99272434, 0.99623330, 0.48870375], 1314 [- 6.14009523, - 0.00235170, 0.00141253, 7.13774353, 0.99272957, 0.99623577, 0.48871736], 1315 [- 6.14054526, - 0.00235010, 0.00141166, 7.13819516, 0.99273480, 0.99623824, 0.48873093], 1316 [- 6.14099381, - 0.00234850, 0.00141079, 7.13864532, 0.99274001, 0.99624071, 0.48874446], 1317 [- 6.14144091, - 0.00234689, 0.00140993, 7.13909401, 0.99274523, 0.99624318, 0.48875794], 1318 [- 6.14188654, - 0.00234530, 0.00140906, 7.13954125, 0.99275043, 0.99624564, 0.48877139], 1319 [- 6.14233072, - 0.00234370, 0.00140820, 7.13998702, 0.99275563, 0.99624811, 0.48878479], 1320 [- 6.14277345, - 0.00234210, 0.00140733, 7.14043134, 0.99276082, 0.99625057, 0.48879815], 1321 [- 6.14321473, - 0.00234051, 0.00140647, 7.14087422, 0.99276601, 0.99625302, 0.48881147], 1322 [- 6.14365457, - 0.00233892, 0.00140561, 7.14131565, 0.99277118, 0.99625548, 0.48882475], 1323 [- 6.14409297, - 0.00233733, 0.00140474, 7.14175564, 0.99277636, 0.99625793, 0.48883798], 1324 [- 6.14452994, - 0.00233574, 0.00140388, 7.14219420, 0.99278152, 0.99626038, 0.48885118], 1325 [- 6.14496548, - 0.00233415, 0.00140302, 7.14263132, 0.99278668, 0.99626283, 0.48886433], 1326 [- 6.14539959, - 0.00233257, 0.00140216, 7.14306702, 0.99279183, 0.99626527, 0.48887745], 1327 [- 6.14583228, - 0.00233098, 0.00140130, 7.14350130, 0.99279698, 0.99626772, 0.48889052], 1328 [- 6.14626356, - 0.00232940, 0.00140044, 7.14393416, 0.99280212, 0.99627016, 0.48890355], 1329 [- 6.14669342, - 0.00232782, 0.00139958, 7.14436560, 0.99280725, 0.99627259, 0.48891654], 1330 [- 6.14712188, - 0.00232625, 0.00139873, 7.14479564, 0.99281238, 0.99627503, 0.48892949], 1331 [- 6.14754894, - 0.00232467, 0.00139787, 7.14522427, 0.99281750, 0.99627746, 0.48894240], 1332 [- 6.14797459, - 0.00232309, 0.00139701, 7.14565150, 0.99282261, 0.99627989, 0.48895527], 1333 [- 6.14839885, - 0.00232152, 0.00139616, 7.14607733, 0.99282772, 0.99628232, 0.48896810], 1334 [- 6.14882172, - 0.00231995, 0.00139530, 7.14650177, 0.99283282, 0.99628475, 0.48898089], 1335 [- 6.14924320, - 0.00231838, 0.00139445, 7.14692482, 0.99283791, 0.99628717, 0.48899364], 1336 [- 6.14966330, - 0.00231681, 0.00139359, 7.14734649, 0.99284300, 0.99628959, 0.48900634], 1337 [- 6.15008202, - 0.00231525, 0.00139274, 7.14776677, 0.99284808, 0.99629201, 0.48901902], 1338 [- 6.15049937, - 0.00231368, 0.00139189, 7.14818569, 0.99285316, 0.99629443, 0.48903165], 1339 [- 6.15091535, - 0.00231212, 0.00139104, 7.14860323, 0.99285823, 0.99629684, 0.48904424], 1340 [- 6.15132996, - 0.00231056, 0.00139018, 7.14901940, 0.99286329, 0.99629926, 0.48905679], 1341 [- 6.15174321, - 0.00230900, 0.00138933, 7.14943421, 0.99286834, 0.99630166, 0.48906930], 1342 [- 6.15215510, - 0.00230744, 0.00138848, 7.14984766, 0.99287339, 0.99630407, 0.48908178], 1343 [- 6.15256564, - 0.00230589, 0.00138763, 7.15025975, 0.99287844, 0.99630648, 0.48909421], 1344 [- 6.15297483, - 0.00230433, 0.00138679, 7.15067050, 0.99288347, 0.99630888, 0.48910661], 1345 [- 6.15338268, - 0.00230278, 0.00138594, 7.15107989, 0.99288850, 0.99631128, 0.48911897], 1346 [- 6.15378918, - 0.00230123, 0.00138509, 7.15148795, 0.99289353, 0.99631368, 0.48913128], 1347 [- 6.15419435, - 0.00229968, 0.00138424, 7.15189467, 0.99289855, 0.99631607, 0.48914356], 1348 [- 6.15459818, - 0.00229814, 0.00138340, 7.15230005, 0.99290356, 0.99631847, 0.48915581], 1349 [- 6.15500069, - 0.00229659, 0.00138255, 7.15270410, 0.99290856, 0.99632086, 0.48916801], 1350 [- 6.15540187, - 0.00229505, 0.00138171, 7.15310682, 0.99291356, 0.99632324, 0.48918017], 1351 [- 6.15580173, - 0.00229350, 0.00138087, 7.15350822, 0.99291855, 0.99632563, 0.48919230], 1352 [- 6.15620027, - 0.00229196, 0.00138002, 7.15390831, 0.99292354, 0.99632801, 0.48920439], 1353 [- 6.15659750, - 0.00229042, 0.00137918, 7.15430708, 0.99292852, 0.99633040, 0.48921644], 1354 [- 6.15699342, - 0.00228889, 0.00137834, 7.15470454, 0.99293349, 0.99633278, 0.48922846], 1355 [- 6.15738804, - 0.00228735, 0.00137750, 7.15510069, 0.99293846, 0.99633515, 0.48924043], 1356 [- 6.15778136, - 0.00228582, 0.00137666, 7.15549554, 0.99294342, 0.99633753, 0.48925237], 1357 [- 6.15817338, - 0.00228429, 0.00137582, 7.15588909, 0.99294838, 0.99633990, 0.48926427], 1358 [- 6.15856410, - 0.00228276, 0.00137498, 7.15628135, 0.99295333, 0.99634227, 0.48927613], 1359 [- 6.15895354, - 0.00228123, 0.00137414, 7.15667231, 0.99295827, 0.99634464, 0.48928796], 1360 [- 6.15934170, - 0.00227970, 0.00137330, 7.15706199, 0.99296321, 0.99634700, 0.48929975], 1361 [- 6.15972857, - 0.00227818, 0.00137246, 7.15745039, 0.99296814, 0.99634936, 0.48931151], 1362 [- 6.16011416, - 0.00227665, 0.00137162, 7.15783751, 0.99297306, 0.99635172, 0.48932322], 1363 [- 6.16049848, - 0.00227513, 0.00137079, 7.15822335, 0.99297798, 0.99635408, 0.48933490], 1364 [- 6.16088154, - 0.00227361, 0.00136995, 7.15860793, 0.99298289, 0.99635644, 0.48934654], 1365 [- 6.16126332, - 0.00227209, 0.00136912, 7.15899123, 0.99298780, 0.99635879, 0.48935815], 1366 [- 6.16164385, - 0.00227057, 0.00136828, 7.15937328, 0.99299270, 0.99636114, 0.48936972], 1367 [- 6.16202312, - 0.00226906, 0.00136745, 7.15975406, 0.99299759, 0.99636349, 0.48938125], 1368 [- 6.16240113, - 0.00226754, 0.00136662, 7.16013359, 0.99300248, 0.99636584, 0.48939275], 1369 [- 6.16277790, - 0.00226603, 0.00136579, 7.16051186, 0.99300736, 0.99636818, 0.48940421], 1370 [- 6.16315341, - 0.00226452, 0.00136495, 7.16088889, 0.99301224, 0.99637052, 0.48941563], 1371 [- 6.16352769, - 0.00226301, 0.00136412, 7.16126468, 0.99301711, 0.99637286, 0.48942702], 1372 [- 6.16390073, - 0.00226151, 0.00136329, 7.16163922, 0.99302197, 0.99637520, 0.48943837], 1373 [- 6.16427253, - 0.00226000, 0.00136246, 7.16201253, 0.99302683, 0.99637753, 0.48944969], 1374 [- 6.16464310, - 0.00225850, 0.00136164, 7.16238461, 0.99303168, 0.99637987, 0.48946098], 1375 [- 6.16501245, - 0.00225700, 0.00136081, 7.16275545, 0.99303653, 0.99638220, 0.48947222], 1376 [- 6.16538057, - 0.00225549, 0.00135998, 7.16312507, 0.99304136, 0.99638453, 0.48948343], 1377 [- 6.16574747, - 0.00225400, 0.00135915, 7.16349348, 0.99304620, 0.99638685, 0.48949461], 1378 [- 6.16611316, - 0.00225250, 0.00135833, 7.16386066, 0.99305103, 0.99638918, 0.48950575], 1379 [- 6.16647763, - 0.00225100, 0.00135750, 7.16422663, 0.99305585, 0.99639150, 0.48951685], 1380 [- 6.16684090, - 0.00224951, 0.00135668, 7.16459139, 0.99306066, 0.99639382, 0.48952792], 1381 [- 6.16720296, - 0.00224802, 0.00135585, 7.16495494, 0.99306547, 0.99639613, 0.48953896], 1382 [- 6.16756382, - 0.00224653, 0.00135503, 7.16531729, 0.99307027, 0.99639845, 0.48954996], 1383 [- 6.16792348, - 0.00224504, 0.00135421, 7.16567845, 0.99307507, 0.99640076, 0.48956093], 1384 [- 6.16828195, - 0.00224355, 0.00135338, 7.16603840, 0.99307986, 0.99640307, 0.48957186], 1385 [- 6.16863923, - 0.00224206, 0.00135256, 7.16639717, 0.99308465, 0.99640538, 0.48958276], 1386 [- 6.16899533, - 0.00224058, 0.00135174, 7.16675475, 0.99308943, 0.99640768, 0.48959363], 1387 [- 6.16935024, - 0.00223910, 0.00135092, 7.16711114, 0.99309420, 0.99640998, 0.48960445], 1388 [- 6.16970397, - 0.00223762, 0.00135010, 7.16746636, 0.99309897, 0.99641228, 0.48961525], 1389 [- 6.17005653, - 0.00223614, 0.00134928, 7.16782039, 0.99310373, 0.99641458, 0.48962601], 1390 [- 6.17040791, - 0.00223466, 0.00134846, 7.16817326, 0.99310849, 0.99641688, 0.48963673], 1391 [- 6.17075813, - 0.00223318, 0.00134765, 7.16852495, 0.99311324, 0.99641917, 0.48964743], 1392 [- 6.17110719, - 0.00223171, 0.00134683, 7.16887548, 0.99311798, 0.99642146, 0.48965809], 1393 [- 6.17145508, - 0.00223024, 0.00134601, 7.16922484, 0.99312272, 0.99642375, 0.48966871], 1394 [- 6.17180182, - 0.00222876, 0.00134520, 7.16957305, 0.99312745, 0.99642604, 0.48967931], 1395 [- 6.17214740, - 0.00222729, 0.00134438, 7.16992010, 0.99313218, 0.99642832, 0.48968987], 1396 [- 6.17249183, - 0.00222583, 0.00134357, 7.17026601, 0.99313690, 0.99643061, 0.48970039], 1397 [- 6.17283512, - 0.00222436, 0.00134275, 7.17061076, 0.99314162, 0.99643289, 0.48971088], 1398 [- 6.17317726, - 0.00222289, 0.00134194, 7.17095437, 0.99314633, 0.99643517, 0.48972134], 1399 [- 6.17351827, - 0.00222143, 0.00134113, 7.17129683, 0.99315103, 0.99643744, 0.48973177], 1400 [- 6.17385813, - 0.00221997, 0.00134032, 7.17163816, 0.99315573, 0.99643971, 0.48974217], 1401 [- 6.17419687, - 0.00221851, 0.00133950, 7.17197836, 0.99316042, 0.99644199, 0.48975252], 1402 [- 6.17453448, - 0.00221705, 0.00133869, 7.17231743, 0.99316511, 0.99644425, 0.48976285], 1403 [- 6.17487096, - 0.00221559, 0.00133788, 7.17265537, 0.99316979, 0.99644652, 0.48977314], 1404 [- 6.17520632, - 0.00221414, 0.00133708, 7.17299218, 0.99317446, 0.99644879, 0.48978341], 1405 [- 6.17554056, - 0.00221269, 0.00133627, 7.17332788, 0.99317913, 0.99645105, 0.48979364], 1406 [- 6.17587369, - 0.00221123, 0.00133546, 7.17366246, 0.99318379, 0.99645331, 0.48980384], 1407 [- 6.17620571, - 0.00220978, 0.00133465, 7.17399593, 0.99318845, 0.99645557, 0.48981400], 1408 [- 6.17653662, - 0.00220833, 0.00133385, 7.17432829, 0.99319310, 0.99645782, 0.48982414], 1409 [- 6.17686642, - 0.00220689, 0.00133304, 7.17465954, 0.99319775, 0.99646007, 0.48983424], 1410 [- 6.17719513, - 0.00220544, 0.00133223, 7.17498969, 0.99320239, 0.99646233, 0.48984431], 1411 [- 6.17752273, - 0.00220400, 0.00133143, 7.17531874, 0.99320702, 0.99646457, 0.48985434], 1412 [- 6.17784925, - 0.00220255, 0.00133063, 7.17564669, 0.99321165, 0.99646682, 0.48986435], 1413 [- 6.17817467, - 0.00220111, 0.00132982, 7.17597356, 0.99321628, 0.99646906, 0.48987432], 1414 [- 6.17849900, - 0.00219967, 0.00132902, 7.17629933, 0.99322089, 0.99647131, 0.48988427], 1415 [- 6.17882225, - 0.00219823, 0.00132822, 7.17662402, 0.99322551, 0.99647355, 0.48989418], 1416 [- 6.17914442, - 0.00219680, 0.00132742, 7.17694762, 0.99323011, 0.99647578, 0.48990406], 1417 [- 6.17946552, - 0.00219536, 0.00132662, 7.17727015, 0.99323471, 0.99647802, 0.48991391], 1418 [- 6.17978554, - 0.00219393, 0.00132582, 7.17759161, 0.99323931, 0.99648025, 0.48992373], 1419 [- 6.18010448, - 0.00219250, 0.00132502, 7.17791199, 0.99324390, 0.99648248, 0.48993351], 1420 [- 6.18042237, - 0.00219107, 0.00132422, 7.17823130, 0.99324848, 0.99648471, 0.48994327], 1421 [- 6.18073919, - 0.00218964, 0.00132342, 7.17854955, 0.99325306, 0.99648694, 0.48995299], 1422 [- 6.18105494, - 0.00218821, 0.00132262, 7.17886673, 0.99325763, 0.99648916, 0.48996269], 1423 [- 6.18136964, - 0.00218679, 0.00132183, 7.17918286, 0.99326220, 0.99649139, 0.48997235], 1424 [- 6.18168329, - 0.00218536, 0.00132103, 7.17949793, 0.99326676, 0.99649361, 0.48998198], 1425 [- 6.18199589, - 0.00218394, 0.00132024, 7.17981195, 0.99327132, 0.99649582, 0.48999158], 1426 [- 6.18230744, - 0.00218252, 0.00131944, 7.18012492, 0.99327587, 0.99649804, 0.49000115], 1427 [- 6.18261795, - 0.00218110, 0.00131865, 7.18043684, 0.99328041, 0.99650025, 0.49001070], 1428 [- 6.18292741, - 0.00217968, 0.00131785, 7.18074773, 0.99328495, 0.99650246, 0.49002020], 1429 [- 6.18323584, - 0.00217827, 0.00131706, 7.18105757, 0.99328949, 0.99650467, 0.49002969], 1430 [- 6.18354323, - 0.00217685, 0.00131627, 7.18136638, 0.99329401, 0.99650688, 0.49003913], 1431 [- 6.18384960, - 0.00217544, 0.00131548, 7.18167416, 0.99329854, 0.99650908, 0.49004855], 1432 [- 6.18415493, - 0.00217403, 0.00131469, 7.18198091, 0.99330305, 0.99651129, 0.49005794], 1433 [- 6.18445924, - 0.00217262, 0.00131390, 7.18228663, 0.99330757, 0.99651349, 0.49006730], 1434 [- 6.18476253, - 0.00217121, 0.00131311, 7.18259133, 0.99331207, 0.99651568, 0.49007664], 1435 [- 6.18506481, - 0.00216980, 0.00131232, 7.18289501, 0.99331657, 0.99651788, 0.49008594], 1436 [- 6.18536606, - 0.00216840, 0.00131153, 7.18319767, 0.99332107, 0.99652007, 0.49009521], 1437 [- 6.18566631, - 0.00216699, 0.00131074, 7.18349932, 0.99332556, 0.99652226, 0.49010445], 1438 [- 6.18596555, - 0.00216559, 0.00130996, 7.18379996, 0.99333004, 0.99652445, 0.49011367], 1439 [- 6.18626378, - 0.00216419, 0.00130917, 7.18409959, 0.99333452, 0.99652664, 0.49012285], 1440 [- 6.18656101, - 0.00216279, 0.00130839, 7.18439822, 0.99333900, 0.99652882, 0.49013200], 1441 [- 6.18685724, - 0.00216139, 0.00130760, 7.18469585, 0.99334346, 0.99653101, 0.49014113], 1442 [- 6.18715248, - 0.00216000, 0.00130682, 7.18499249, 0.99334793, 0.99653319, 0.49015022], 1443 [- 6.18744673, - 0.00215860, 0.00130603, 7.18528812, 0.99335238, 0.99653537, 0.49015929], 1444 [- 6.18773998, - 0.00215721, 0.00130525, 7.18558277, 0.99335684, 0.99653754, 0.49016833], 1445 [- 6.18803225, - 0.00215582, 0.00130447, 7.18587643, 0.99336128, 0.99653972, 0.49017734], 1446 [- 6.18832353, - 0.00215443, 0.00130369, 7.18616911, 0.99336572, 0.99654189, 0.49018632], 1447 [- 6.18861384, - 0.00215304, 0.00130291, 7.18646080, 0.99337016, 0.99654406, 0.49019527], 1448 [- 6.18890316, - 0.00215165, 0.00130213, 7.18675152, 0.99337459, 0.99654622, 0.49020420], 1449 [- 6.18919152, - 0.00215026, 0.00130135, 7.18704125, 0.99337901, 0.99654839, 0.49021309], 1450 [- 6.18947890, - 0.00214888, 0.00130057, 7.18733002, 0.99338343, 0.99655055, 0.49022196], 1451 [- 6.18976532, - 0.00214750, 0.00129979, 7.18761782, 0.99338785, 0.99655271, 0.49023080], 1452 [- 6.19005077, - 0.00214612, 0.00129901, 7.18790465, 0.99339226, 0.99655487, 0.49023961], 1453 [- 6.19033526, - 0.00214474, 0.00129823, 7.18819052, 0.99339666, 0.99655703, 0.49024839], 1454 [- 6.19061879, - 0.00214336, 0.00129746, 7.18847543, 0.99340106, 0.99655918, 0.49025714], 1455 [- 6.19090136, - 0.00214198, 0.00129668, 7.18875938, 0.99340545, 0.99656134, 0.49026588], 1456 [- 6.19118298, - 0.00214061, 0.00129591, 7.18904238, 0.99340984, 0.99656349, 0.49027457], 1457 [- 6.19146366, - 0.00213923, 0.00129513, 7.18932442, 0.99341422, 0.99656563, 0.49028324], 1458 [- 6.19174338, - 0.00213786, 0.00129436, 7.18960552, 0.99341860, 0.99656778, 0.49029189], 1459 [- 6.19202217, - 0.00213649, 0.00129359, 7.18988568, 0.99342297, 0.99656992, 0.49030051], 1460 [- 6.19230001, - 0.00213512, 0.00129281, 7.19016489, 0.99342734, 0.99657207, 0.49030909], 1461 [- 6.19257691, - 0.00213375, 0.00129204, 7.19044316, 0.99343170, 0.99657421, 0.49031766], 1462 [- 6.19285288, - 0.00213239, 0.00129127, 7.19072050, 0.99343606, 0.99657634, 0.49032619], 1463 [- 6.19312792, - 0.00213102, 0.00129050, 7.19099690, 0.99344041, 0.99657848, 0.49033470], 1464 [- 6.19340203, - 0.00212966, 0.00128973, 7.19127237, 0.99344475, 0.99658061, 0.49034317], 1465 [- 6.19367521, - 0.00212830, 0.00128896, 7.19154692, 0.99344909, 0.99658274, 0.49035163], 1466 [- 6.19394748, - 0.00212694, 0.00128819, 7.19182054, 0.99345343, 0.99658487, 0.49036006], 1467 [- 6.19421882, - 0.00212558, 0.00128743, 7.19209324, 0.99345776, 0.99658700, 0.49036845], 1468 [- 6.19448924, - 0.00212422, 0.00128666, 7.19236502, 0.99346208, 0.99658912, 0.49037683], 1469 [- 6.19475875, - 0.00212286, 0.00128589, 7.19263589, 0.99346640, 0.99659124, 0.49038517], 1470 [- 6.19502735, - 0.00212151, 0.00128513, 7.19290584, 0.99347072, 0.99659336, 0.49039349], 1471 [- 6.19529504, - 0.00212016, 0.00128436, 7.19317489, 0.99347503, 0.99659548, 0.49040178], 1472 [- 6.19556183, - 0.00211880, 0.00128360, 7.19344302, 0.99347933, 0.99659760, 0.49041005], 1473 [- 6.19582771, - 0.00211745, 0.00128283, 7.19371026, 0.99348363, 0.99659971, 0.49041829], 1474 [- 6.19609270, - 0.00211611, 0.00128207, 7.19397659, 0.99348792, 0.99660182, 0.49042650], 1475 [- 6.19635678, - 0.00211476, 0.00128131, 7.19424203, 0.99349221, 0.99660393, 0.49043469], 1476 [- 6.19661998, - 0.00211341, 0.00128054, 7.19450656, 0.99349650, 0.99660604, 0.49044285], 1477 [- 6.19688228, - 0.00211207, 0.00127978, 7.19477021, 0.99350077, 0.99660815, 0.49045099], 1478 [- 6.19714369, - 0.00211073, 0.00127902, 7.19503297, 0.99350505, 0.99661025, 0.49045909], 1479 [- 6.19740422, - 0.00210938, 0.00127826, 7.19529484, 0.99350932, 0.99661235, 0.49046717], 1480 [- 6.19766387, - 0.00210804, 0.00127750, 7.19555583, 0.99351358, 0.99661445, 0.49047523], 1481 [- 6.19792264, - 0.00210671, 0.00127674, 7.19581593, 0.99351784, 0.99661655, 0.49048326], 1482 [- 6.19818053, - 0.00210537, 0.00127599, 7.19607516, 0.99352209, 0.99661864, 0.49049127], 1483 [- 6.19843754, - 0.00210403, 0.00127523, 7.19633351, 0.99352634, 0.99662074, 0.49049925], 1484 [- 6.19869369, - 0.00210270, 0.00127447, 7.19659099, 0.99353058, 0.99662283, 0.49050720], 1485 [- 6.19894896, - 0.00210137, 0.00127372, 7.19684760, 0.99353482, 0.99662492, 0.49051513], 1486 [- 6.19920337, - 0.00210004, 0.00127296, 7.19710334, 0.99353905, 0.99662700, 0.49052303], 1487 [- 6.19945692, - 0.00209871, 0.00127221, 7.19735822, 0.99354328, 0.99662909, 0.49053091], 1488 [- 6.19970961, - 0.00209738, 0.00127145, 7.19761223, 0.99354750, 0.99663117, 0.49053876], 1489 [- 6.19996144, - 0.00209605, 0.00127070, 7.19786539, 0.99355172, 0.99663325, 0.49054659], 1490 [- 6.20021242, - 0.00209473, 0.00126995, 7.19811769, 0.99355593, 0.99663533, 0.49055439], 1491 [- 6.20046254, - 0.00209340, 0.00126919, 7.19836914, 0.99356014, 0.99663741, 0.49056217], 1492 [- 6.20071181, - 0.00209208, 0.00126844, 7.19861973, 0.99356434, 0.99663948, 0.49056992], 1493 [- 6.20096024, - 0.00209076, 0.00126769, 7.19886948, 0.99356854, 0.99664155, 0.49057765], 1494 [- 6.20120782, - 0.00208944, 0.00126694, 7.19911839, 0.99357273, 0.99664362, 0.49058536], 1495 [- 6.20145457, - 0.00208812, 0.00126619, 7.19936645, 0.99357692, 0.99664569, 0.49059304], 1496 [- 6.20170047, - 0.00208680, 0.00126544, 7.19961367, 0.99358110, 0.99664776, 0.49060069], 1497 [- 6.20194554, - 0.00208549, 0.00126469, 7.19986005, 0.99358528, 0.99664982, 0.49060832], 1498 [- 6.20218978, - 0.00208417, 0.00126395, 7.20010560, 0.99358945, 0.99665188, 0.49061593], 1499 [- 6.20243318, - 0.00208286, 0.00126320, 7.20035032, 0.99359362, 0.99665394, 0.49062351], 1500 [- 6.20267576, - 0.00208155, 0.00126245, 7.20059421, 0.99359778, 0.99665600, 0.49063106], 1501 [- 6.20291751, - 0.00208024, 0.00126171, 7.20083727, 0.99360194, 0.99665805, 0.49063859], 1502 [- 6.20315844, - 0.00207893, 0.00126096, 7.20107951, 0.99360609, 0.99666011, 0.49064611], 1503 [- 6.20339855, - 0.00207762, 0.00126022, 7.20132093, 0.99361024, 0.99666216, 0.49065358], 1504 [- 6.20363785, - 0.00207632, 0.00125947, 7.20156153, 0.99361438, 0.99666421, 0.49066104], 1505 [- 6.20387633, - 0.00207501, 0.00125873, 7.20180131, 0.99361852, 0.99666626, 0.49066848], 1506 [- 6.20411399, - 0.00207371, 0.00125799, 7.20204028, 0.99362265, 0.99666830, 0.49067589], 1507 [- 6.20435085, - 0.00207241, 0.00125725, 7.20227844, 0.99362678, 0.99667034, 0.49068328], 1508 [- 6.20458690, - 0.00207111, 0.00125650, 7.20251579, 0.99363090, 0.99667238, 0.49069064], 1509 [- 6.20482215, - 0.00206981, 0.00125576, 7.20275234, 0.99363502, 0.99667442, 0.49069799], 1510 [- 6.20505660, - 0.00206852, 0.00125502, 7.20298808, 0.99363914, 0.99667646, 0.49070530], 1511 [- 6.20529024, - 0.00206722, 0.00125428, 7.20322302, 0.99364325, 0.99667850, 0.49071260], 1512 [- 6.20552310, - 0.00206593, 0.00125355, 7.20345717, 0.99364735, 0.99668053, 0.49071987], 1513 [- 6.20575515, - 0.00206463, 0.00125281, 7.20369052, 0.99365145, 0.99668256, 0.49072711], 1514 [- 6.20598642, - 0.00206334, 0.00125207, 7.20392308, 0.99365554, 0.99668459, 0.49073434], 1515 [- 6.20621690, - 0.00206205, 0.00125133, 7.20415485, 0.99365963, 0.99668662, 0.49074154], 1516 [- 6.20644659, - 0.00206076, 0.00125060, 7.20438583, 0.99366372, 0.99668864, 0.49074872], 1517 [- 6.20667550, - 0.00205947, 0.00124986, 7.20461602, 0.99366780, 0.99669066, 0.49075587], 1518 [- 6.20690362, - 0.00205819, 0.00124913, 7.20484543, 0.99367187, 0.99669268, 0.49076300], 1519 [- 6.20713097, - 0.00205690, 0.00124839, 7.20507407, 0.99367594, 0.99669470, 0.49077011], 1520 [- 6.20735754, - 0.00205562, 0.00124766, 7.20530192, 0.99368001, 0.99669672, 0.49077720], 1521 [- 6.20758334, - 0.00205434, 0.00124693, 7.20552900, 0.99368407, 0.99669873, 0.49078426], 1522 [- 6.20780837, - 0.00205306, 0.00124619, 7.20575531, 0.99368812, 0.99670075, 0.49079130], 1523 [- 6.20803263, - 0.00205178, 0.00124546, 7.20598085, 0.99369217, 0.99670276, 0.49079832], 1524 [- 6.20825612, - 0.00205050, 0.00124473, 7.20620562, 0.99369622, 0.99670477, 0.49080531], 1525 [- 6.20847885, - 0.00204923, 0.00124400, 7.20642963, 0.99370026, 0.99670677, 0.49081228], 1526 [- 6.20870082, - 0.00204795, 0.00124327, 7.20665287, 0.99370430, 0.99670878, 0.49081924], 1527 [- 6.20892203, - 0.00204668, 0.00124254, 7.20687536, 0.99370833, 0.99671078, 0.49082617], 1528 [- 6.20914249, - 0.00204540, 0.00124181, 7.20709708, 0.99371236, 0.99671278, 0.49083307], 1529 [- 6.20936219, - 0.00204413, 0.00124109, 7.20731805, 0.99371638, 0.99671478, 0.49083996], 1530 [- 6.20958114, - 0.00204286, 0.00124036, 7.20753827, 0.99372040, 0.99671678, 0.49084681], 1531 [- 6.20979934, - 0.00204160, 0.00123963, 7.20775774, 0.99372441, 0.99671877, 0.49085365], 1532 [- 6.21001679, - 0.00204033, 0.00123891, 7.20797646, 0.99372842, 0.99672076, 0.49086047], 1533 [- 6.21023350, - 0.00203906, 0.00123818, 7.20819444, 0.99373242, 0.99672275, 0.49086727], 1534 [- 6.21044947, - 0.00203780, 0.00123746, 7.20841167, 0.99373642, 0.99672474, 0.49087404], 1535 [- 6.21066470, - 0.00203654, 0.00123673, 7.20862816, 0.99374042, 0.99672673, 0.49088079], 1536 [- 6.21087920, - 0.00203528, 0.00123601, 7.20884392, 0.99374441, 0.99672871, 0.49088752], 1537 [- 6.21109295, - 0.00203402, 0.00123529, 7.20905894, 0.99374839, 0.99673070, 0.49089423], 1538 [- 6.21130598, - 0.00203276, 0.00123456, 7.20927322, 0.99375237, 0.99673268, 0.49090092], 1539 [- 6.21151828, - 0.00203150, 0.00123384, 7.20948678, 0.99375635, 0.99673466, 0.49090759], 1540 [- 6.21172985, - 0.00203024, 0.00123312, 7.20969960, 0.99376032, 0.99673663, 0.49091423], 1541 [- 6.21194069, - 0.00202899, 0.00123240, 7.20991170, 0.99376428, 0.99673861, 0.49092085], 1542 [- 6.21215082, - 0.00202774, 0.00123168, 7.21012308, 0.99376825, 0.99674058, 0.49092745], 1543 [- 6.21236022, - 0.00202648, 0.00123096, 7.21033373, 0.99377220, 0.99674255, 0.49093403], 1544 [- 6.21256890, - 0.00202523, 0.00123025, 7.21054367, 0.99377616, 0.99674452, 0.49094059], 1545 [- 6.21277687, - 0.00202398, 0.00122953, 7.21075289, 0.99378010, 0.99674649, 0.49094712], 1546 [- 6.21298413, - 0.00202274, 0.00122881, 7.21096139, 0.99378405, 0.99674845, 0.49095364], 1547 [- 6.21319067, - 0.00202149, 0.00122809, 7.21116918, 0.99378798, 0.99675042, 0.49096013], 1548 [- 6.21339651, - 0.00202025, 0.00122738, 7.21137627, 0.99379192, 0.99675238, 0.49096661], 1549 [- 6.21360164, - 0.00201900, 0.00122666, 7.21158264, 0.99379585, 0.99675434, 0.49097306], 1550 [- 6.21380607, - 0.00201776, 0.00122595, 7.21178831, 0.99379977, 0.99675629, 0.49097950], 1551 [- 6.21400979, - 0.00201652, 0.00122523, 7.21199328, 0.99380369, 0.99675825, 0.49098591], 1552 [- 6.21421282, - 0.00201528, 0.00122452, 7.21219754, 0.99380761, 0.99676020, 0.49099230], 1553 [- 6.21441515, - 0.00201404, 0.00122381, 7.21240111, 0.99381152, 0.99676215, 0.49099867], 1554 [- 6.21461678, - 0.00201280, 0.00122310, 7.21260398, 0.99381543, 0.99676410, 0.49100502], 1555 [- 6.21481773, - 0.00201157, 0.00122239, 7.21280616, 0.99381933, 0.99676605, 0.49101135], 1556 [- 6.21501798, - 0.00201033, 0.00122167, 7.21300765, 0.99382323, 0.99676799, 0.49101767], 1557 [- 6.21521754, - 0.00200910, 0.00122096, 7.21320844, 0.99382712, 0.99676994, 0.49102395], 1558 [- 6.21541642, - 0.00200787, 0.00122026, 7.21340855, 0.99383101, 0.99677188, 0.49103022], 1559 [- 6.21561461, - 0.00200664, 0.00121955, 7.21360798, 0.99383489, 0.99677382, 0.49103647], 1560 [- 6.21581213, - 0.00200541, 0.00121884, 7.21380672, 0.99383877, 0.99677575, 0.49104269], 1561 [- 6.21600896, - 0.00200418, 0.00121813, 7.21400478, 0.99384265, 0.99677769, 0.49104891], 1562 [- 6.21620512, - 0.00200295, 0.00121742, 7.21420217, 0.99384652, 0.99677962, 0.49105509], 1563 [- 6.21640060, - 0.00200173, 0.00121672, 7.21439887, 0.99385038, 0.99678156, 0.49106126], 1564 [- 6.21659541, - 0.00200050, 0.00121601, 7.21459491, 0.99385424, 0.99678349, 0.49106741], 1565 [- 6.21678955, - 0.00199928, 0.00121531, 7.21479027, 0.99385810, 0.99678541, 0.49107353], 1566 [- 6.21698302, - 0.00199806, 0.00121460, 7.21498497, 0.99386195, 0.99678734, 0.49107964], 1567 [- 6.21717583, - 0.00199684, 0.00121390, 7.21517899, 0.99386580, 0.99678926, 0.49108574], 1568 [- 6.21736797, - 0.00199562, 0.00121320, 7.21537235, 0.99386965, 0.99679119, 0.49109180], 1569 [- 6.21755945, - 0.00199440, 0.00121249, 7.21556505, 0.99387349, 0.99679311, 0.49109786], 1570 [- 6.21775028, - 0.00199319, 0.00121179, 7.21575709, 0.99387732, 0.99679502, 0.49110388], 1571 [- 6.21794044, - 0.00199197, 0.00121109, 7.21594847, 0.99388115, 0.99679694, 0.49110989], 1572 [- 6.21812995, - 0.00199076, 0.00121039, 7.21613919, 0.99388498, 0.99679885, 0.49111588], 1573 [- 6.21831881, - 0.00198955, 0.00120969, 7.21632926, 0.99388880, 0.99680077, 0.49112186], 1574 [- 6.21850702, - 0.00198833, 0.00120899, 7.21651868, 0.99389261, 0.99680268, 0.49112781], 1575 [- 6.21869457, - 0.00198712, 0.00120829, 7.21670745, 0.99389643, 0.99680459, 0.49113374], 1576 [- 6.21888149, - 0.00198592, 0.00120759, 7.21689557, 0.99390024, 0.99680649, 0.49113965], 1577 [- 6.21906775, - 0.00198471, 0.00120689, 7.21708304, 0.99390404, 0.99680840, 0.49114555], 1578 [- 6.21925338, - 0.00198350, 0.00120620, 7.21726987, 0.99390784, 0.99681030, 0.49115142], 1579 [- 6.21943836, - 0.00198230, 0.00120550, 7.21745606, 0.99391163, 0.99681220, 0.49115728], 1580 [- 6.21962271, - 0.00198110, 0.00120481, 7.21764161, 0.99391542, 0.99681410, 0.49116312], 1581 [- 6.21980642, - 0.00197989, 0.00120411, 7.21782653, 0.99391921, 0.99681600, 0.49116895], 1582 [- 6.21998950, - 0.00197869, 0.00120342, 7.21801081, 0.99392299, 0.99681789, 0.49117474], 1583 [- 6.22017194, - 0.00197749, 0.00120272, 7.21819445, 0.99392677, 0.99681979, 0.49118052], 1584 [- 6.22035376, - 0.00197630, 0.00120203, 7.21837746, 0.99393054, 0.99682168, 0.49118629], 1585 [- 6.22053495, - 0.00197510, 0.00120134, 7.21855985, 0.99393431, 0.99682357, 0.49119203], 1586 [- 6.22071551, - 0.00197390, 0.00120064, 7.21874161, 0.99393808, 0.99682545, 0.49119776], 1587 [- 6.22089545, - 0.00197271, 0.00119995, 7.21892274, 0.99394184, 0.99682734, 0.49120347], 1588 [- 6.22107477, - 0.00197152, 0.00119926, 7.21910325, 0.99394559, 0.99682922, 0.49120916], 1589 [- 6.22125347, - 0.00197032, 0.00119857, 7.21928314, 0.99394935, 0.99683111, 0.49121482], 1590 [- 6.22143155, - 0.00196913, 0.00119788, 7.21946242, 0.99395309, 0.99683299, 0.49122047], 1591 [- 6.22160902, - 0.00196794, 0.00119719, 7.21964107, 0.99395684, 0.99683486, 0.49122611], 1592 [- 6.22178587, - 0.00196676, 0.00119650, 7.21981911, 0.99396058, 0.99683674, 0.49123173], 1593 [- 6.22196211, - 0.00196557, 0.00119582, 7.21999654, 0.99396431, 0.99683861, 0.49123732], 1594 [- 6.22213774, - 0.00196438, 0.00119513, 7.22017336, 0.99396804, 0.99684049, 0.49124290], 1595 [- 6.22231277, - 0.00196320, 0.00119444, 7.22034957, 0.99397177, 0.99684236, 0.49124846], 1596 [- 6.22248719, - 0.00196202, 0.00119376, 7.22052517, 0.99397549, 0.99684423, 0.49125400], 1597 [- 6.22266101, - 0.00196083, 0.00119307, 7.22070017, 0.99397920, 0.99684609, 0.49125953], 1598 [- 6.22283422, - 0.00195965, 0.00119239, 7.22087457, 0.99398292, 0.99684796, 0.49126504], 1599 [- 6.22300684, - 0.00195848, 0.00119170, 7.22104836, 0.99398663, 0.99684982, 0.49127053], 1600 [- 6.22317886, - 0.00195730, 0.00119102, 7.22122156, 0.99399033, 0.99685168, 0.49127600], 1601 [- 6.22335028, - 0.00195612, 0.00119034, 7.22139416, 0.99399403, 0.99685354, 0.49128145], 1602 [- 6.22352111, - 0.00195495, 0.00118965, 7.22156617, 0.99399773, 0.99685540, 0.49128689], 1603 [- 6.22369135, - 0.00195377, 0.00118897, 7.22173758, 0.99400142, 0.99685726, 0.49129231], 1604 [- 6.22386100, - 0.00195260, 0.00118829, 7.22190841, 0.99400511, 0.99685911, 0.49129771], 1605 [- 6.22403007, - 0.00195143, 0.00118761, 7.22207864, 0.99400879, 0.99686096, 0.49130310], 1606 [- 6.22419854, - 0.00195026, 0.00118693, 7.22224829, 0.99401247, 0.99686281, 0.49130846], 1607 [- 6.22436644, - 0.00194909, 0.00118625, 7.22241735, 0.99401615, 0.99686466, 0.49131381], 1608 [- 6.22453375, - 0.00194792, 0.00118557, 7.22258583, 0.99401982, 0.99686651, 0.49131914], 1609 [- 6.22470048, - 0.00194675, 0.00118490, 7.22275373, 0.99402348, 0.99686835, 0.49132446], 1610 [- 6.22486664, - 0.00194559, 0.00118422, 7.22292105, 0.99402715, 0.99687019, 0.49132975], 1611 [- 6.22503222, - 0.00194442, 0.00118354, 7.22308780, 0.99403081, 0.99687204, 0.49133503], 1612 [- 6.22519722, - 0.00194326, 0.00118287, 7.22325396, 0.99403446, 0.99687387, 0.49134030], 1613 [- 6.22536166, - 0.00194210, 0.00118219, 7.22341956, 0.99403811, 0.99687571, 0.49134554], 1614 [- 6.22552552, - 0.00194094, 0.00118152, 7.22358458, 0.99404176, 0.99687755, 0.49135077], 1615 [- 6.22568881, - 0.00193978, 0.00118084, 7.22374904, 0.99404540, 0.99687938, 0.49135598], 1616 [- 6.22585154, - 0.00193862, 0.00118017, 7.22391292, 0.99404904, 0.99688121, 0.49136117], 1617 [- 6.22601370, - 0.00193746, 0.00117950, 7.22407624, 0.99405267, 0.99688304, 0.49136635], 1618 [- 6.22617531, - 0.00193631, 0.00117882, 7.22423900, 0.99405630, 0.99688487, 0.49137152], 1619 [- 6.22633635, - 0.00193515, 0.00117815, 7.22440119, 0.99405992, 0.99688670, 0.49137666], 1620 [- 6.22649683, - 0.00193400, 0.00117748, 7.22456283, 0.99406354, 0.99688852, 0.49138179], 1621 [- 6.22665675, - 0.00193285, 0.00117681, 7.22472390, 0.99406716, 0.99689034, 0.49138690], 1622 [- 6.22681612, - 0.00193170, 0.00117614, 7.22488442, 0.99407077, 0.99689216, 0.49139199], 1623 [- 6.22697494, - 0.00193055, 0.00117547, 7.22504439, 0.99407438, 0.99689398, 0.49139707], 1624 [- 6.22713320, - 0.00192940, 0.00117480, 7.22520380, 0.99407799, 0.99689580, 0.49140214], 1625 [- 6.22729092, - 0.00192825, 0.00117413, 7.22536266, 0.99408159, 0.99689762, 0.49140718], 1626 [- 6.22744808, - 0.00192711, 0.00117346, 7.22552098, 0.99408519, 0.99689943, 0.49141221], 1627 [- 6.22760470, - 0.00192596, 0.00117280, 7.22567874, 0.99408878, 0.99690124, 0.49141723], 1628 [- 6.22776078, - 0.00192482, 0.00117213, 7.22583596, 0.99409237, 0.99690305, 0.49142222], 1629 [- 6.22791631, - 0.00192368, 0.00117147, 7.22599264, 0.99409595, 0.99690486, 0.49142719], 1630 [- 6.22807131, - 0.00192253, 0.00117080, 7.22614877, 0.99409953, 0.99690667, 0.49143216], 1631 [- 6.22822576, - 0.00192139, 0.00117014, 7.22630437, 0.99410311, 0.99690847, 0.49143711], 1632 [- 6.22837968, - 0.00192026, 0.00116947, 7.22645942, 0.99410668, 0.99691027, 0.49144204], 1633 [- 6.22853306, - 0.00191912, 0.00116881, 7.22661394, 0.99411025, 0.99691207, 0.49144696], 1634 [- 6.22868591, - 0.00191798, 0.00116815, 7.22676793, 0.99411381, 0.99691387, 0.49145186], 1635 [- 6.22883823, - 0.00191685, 0.00116748, 7.22692138, 0.99411737, 0.99691567, 0.49145674], 1636 [- 6.22899002, - 0.00191571, 0.00116682, 7.22707430, 0.99412093, 0.99691747, 0.49146161], 1637 [- 6.22914128, - 0.00191458, 0.00116616, 7.22722670, 0.99412448, 0.99691926, 0.49146647], 1638 [- 6.22929201, - 0.00191345, 0.00116550, 7.22737856, 0.99412803, 0.99692105, 0.49147130], 1639 [- 6.22944222, - 0.00191232, 0.00116484, 7.22752990, 0.99413157, 0.99692284, 0.49147613], 1640 [- 6.22959190, - 0.00191119, 0.00116418, 7.22768071, 0.99413511, 0.99692463, 0.49148093], 1641 [- 6.22974107, - 0.00191006, 0.00116352, 7.22783101, 0.99413865, 0.99692642, 0.49148571], 1642 [- 6.22988971, - 0.00190893, 0.00116286, 7.22798078, 0.99414218, 0.99692820, 0.49149049], 1643 [- 6.23003784, - 0.00190781, 0.00116221, 7.22813003, 0.99414571, 0.99692998, 0.49149525], 1644 [- 6.23018545, - 0.00190669, 0.00116155, 7.22827877, 0.99414924, 0.99693176, 0.49149999], 1645 [- 6.23033255, - 0.00190556, 0.00116089, 7.22842699, 0.99415276, 0.99693354, 0.49150472], 1646 [- 6.23047913, - 0.00190444, 0.00116024, 7.22857469, 0.99415627, 0.99693532, 0.49150944], 1647 [- 6.23062521, - 0.00190332, 0.00115958, 7.22872189, 0.99415978, 0.99693710, 0.49151413], 1648 [- 6.23077077, - 0.00190220, 0.00115893, 7.22886857, 0.99416329, 0.99693887, 0.49151881], 1649 [- 6.23091583, - 0.00190108, 0.00115828, 7.22901475, 0.99416680, 0.99694064, 0.49152348], 1650 [- 6.23106038, - 0.00189996, 0.00115762, 7.22916042, 0.99417030, 0.99694241, 0.49152813], 1651 [- 6.23120443, - 0.00189885, 0.00115697, 7.22930558, 0.99417379, 0.99694418, 0.49153277], 1652 [- 6.23134798, - 0.00189773, 0.00115632, 7.22945024, 0.99417729, 0.99694595, 0.49153739], 1653 [- 6.23149102, - 0.00189662, 0.00115567, 7.22959440, 0.99418078, 0.99694772, 0.49154200], 1654 [- 6.23163357, - 0.00189551, 0.00115501, 7.22973806, 0.99418426, 0.99694948, 0.49154659], 1655 [- 6.23177562, - 0.00189439, 0.00115436, 7.22988122, 0.99418774, 0.99695124, 0.49155116], 1656 [- 6.23191717, - 0.00189328, 0.00115371, 7.23002389, 0.99419122, 0.99695300, 0.49155572], 1657 [- 6.23205823, - 0.00189218, 0.00115307, 7.23016606, 0.99419469, 0.99695476, 0.49156028], 1658 [- 6.23219880, - 0.00189107, 0.00115242, 7.23030773, 0.99419816, 0.99695652, 0.49156481], 1659 [- 6.23233888, - 0.00188996, 0.00115177, 7.23044891, 0.99420163, 0.99695827, 0.49156932], 1660 [- 6.23247846, - 0.00188886, 0.00115112, 7.23058961, 0.99420509, 0.99696002, 0.49157383], 1661 [- 6.23261756, - 0.00188775, 0.00115047, 7.23072981, 0.99420855, 0.99696177, 0.49157832], 1662 [- 6.23275618, - 0.00188665, 0.00114983, 7.23086953, 0.99421200, 0.99696352, 0.49158279], 1663 [- 6.23289431, - 0.00188555, 0.00114918, 7.23100876, 0.99421545, 0.99696527, 0.49158725], 1664 [- 6.23303196, - 0.00188444, 0.00114854, 7.23114751, 0.99421890, 0.99696702, 0.49159170], 1665 [- 6.23316912, - 0.00188334, 0.00114789, 7.23128578, 0.99422234, 0.99696876, 0.49159612], 1666 [- 6.23330581, - 0.00188225, 0.00114725, 7.23142357, 0.99422578, 0.99697050, 0.49160053], 1667 [- 6.23344202, - 0.00188115, 0.00114661, 7.23156087, 0.99422921, 0.99697225, 0.49160494], 1668 [- 6.23357776, - 0.00188005, 0.00114596, 7.23169771, 0.99423264, 0.99697398, 0.49160932], 1669 [- 6.23371302, - 0.00187896, 0.00114532, 7.23183406, 0.99423607, 0.99697572, 0.49161370], 1670 [- 6.23384781, - 0.00187786, 0.00114468, 7.23196994, 0.99423949, 0.99697746, 0.49161806], 1671 [- 6.23398212, - 0.00187677, 0.00114404, 7.23210535, 0.99424291, 0.99697919, 0.49162241], 1672 [- 6.23411597, - 0.00187568, 0.00114340, 7.23224029, 0.99424633, 0.99698092, 0.49162674], 1673 [- 6.23424935, - 0.00187459, 0.00114276, 7.23237476, 0.99424974, 0.99698265, 0.49163105], 1674 [- 6.23438226, - 0.00187350, 0.00114212, 7.23250876, 0.99425315, 0.99698438, 0.49163535], 1675 [- 6.23451471, - 0.00187241, 0.00114148, 7.23264230, 0.99425655, 0.99698611, 0.49163964], 1676 [- 6.23464669, - 0.00187132, 0.00114084, 7.23277537, 0.99425995, 0.99698783, 0.49164392], 1677 [- 6.23477821, - 0.00187024, 0.00114021, 7.23290797, 0.99426335, 0.99698956, 0.49164818], 1678 [- 6.23490927, - 0.00186915, 0.00113957, 7.23304012, 0.99426674, 0.99699128, 0.49165242], 1679 [- 6.23503988, - 0.00186807, 0.00113893, 7.23317181, 0.99427013, 0.99699300, 0.49165666], 1680 [- 6.23517002, - 0.00186698, 0.00113830, 7.23330304, 0.99427352, 0.99699472, 0.49166087], 1681 [- 6.23529971, - 0.00186590, 0.00113766, 7.23343381, 0.99427690, 0.99699644, 0.49166508], 1682 [- 6.23542895, - 0.00186482, 0.00113703, 7.23356413, 0.99428028, 0.99699815, 0.49166927], 1683 [- 6.23555773, - 0.00186374, 0.00113639, 7.23369399, 0.99428365, 0.99699986, 0.49167345], 1684 [- 6.23568606, - 0.00186267, 0.00113576, 7.23382340, 0.99428702, 0.99700157, 0.49167762], 1685 [- 6.23581395, - 0.00186159, 0.00113513, 7.23395236, 0.99429039, 0.99700328, 0.49168176], 1686 [- 6.23594138, - 0.00186051, 0.00113449, 7.23408087, 0.99429375, 0.99700499, 0.49168591], 1687 [- 6.23606837, - 0.00185944, 0.00113386, 7.23420893, 0.99429711, 0.99700670, 0.49169003], 1688 [- 6.23619491, - 0.00185836, 0.00113323, 7.23433655, 0.99430047, 0.99700840, 0.49169415], 1689 [- 6.23632102, - 0.00185729, 0.00113260, 7.23446372, 0.99430382, 0.99701011, 0.49169823], 1690 [- 6.23644667, - 0.00185622, 0.00113197, 7.23459045, 0.99430717, 0.99701181, 0.49170232], 1691 [- 6.23657189, - 0.00185515, 0.00113134, 7.23471674, 0.99431051, 0.99701351, 0.49170640], 1692 [- 6.23669667, - 0.00185408, 0.00113071, 7.23484259, 0.99431385, 0.99701521, 0.49171044], 1693 [- 6.23682101, - 0.00185301, 0.00113009, 7.23496800, 0.99431719, 0.99701690, 0.49171449], 1694 [- 6.23694492, - 0.00185195, 0.00112946, 7.23509297, 0.99432052, 0.99701860, 0.49171853], 1695 [- 6.23706839, - 0.00185088, 0.00112883, 7.23521751, 0.99432385, 0.99702029, 0.49172254], 1696 [- 6.23719143, - 0.00184981, 0.00112820, 7.23534161, 0.99432718, 0.99702198, 0.49172655], 1697 [- 6.23731403, - 0.00184875, 0.00112758, 7.23546528, 0.99433050, 0.99702367, 0.49173054], 1698 [- 6.23743621, - 0.00184769, 0.00112695, 7.23558852, 0.99433382, 0.99702536, 0.49173452], 1699 [- 6.23755795, - 0.00184663, 0.00112633, 7.23571133, 0.99433713, 0.99702705, 0.49173848], 1700 [- 6.23767927, - 0.00184557, 0.00112570, 7.23583371, 0.99434044, 0.99702873, 0.49174243], 1701 [- 6.23780017, - 0.00184451, 0.00112508, 7.23595566, 0.99434375, 0.99703041, 0.49174639], 1702 [- 6.23792064, - 0.00184345, 0.00112446, 7.23607719, 0.99434706, 0.99703209, 0.49175031], 1703 [- 6.23804068, - 0.00184239, 0.00112383, 7.23619829, 0.99435036, 0.99703377, 0.49175422], 1704 [- 6.23816031, - 0.00184134, 0.00112321, 7.23631897, 0.99435365, 0.99703545, 0.49175813], 1705 [- 6.23827952, - 0.00184028, 0.00112259, 7.23643923, 0.99435695, 0.99703713, 0.49176201], 1706 [- 6.23839830, - 0.00183923, 0.00112197, 7.23655907, 0.99436024, 0.99703880, 0.49176589], 1707 [- 6.23851667, - 0.00183817, 0.00112135, 7.23667850, 0.99436352, 0.99704048, 0.49176975], 1708 [- 6.23863462, - 0.00183712, 0.00112073, 7.23679750, 0.99436680, 0.99704215, 0.49177361], 1709 [- 6.23875216, - 0.00183607, 0.00112011, 7.23691609, 0.99437008, 0.99704382, 0.49177744], 1710 [- 6.23886929, - 0.00183502, 0.00111949, 7.23703427, 0.99437336, 0.99704548, 0.49178127], 1711 [- 6.23898600, - 0.00183398, 0.00111887, 7.23715203, 0.99437663, 0.99704715, 0.49178508], 1712 [- 6.23910231, - 0.00183293, 0.00111826, 7.23726938, 0.99437990, 0.99704881, 0.49178889], 1713 [- 6.23921820, - 0.00183188, 0.00111764, 7.23738632, 0.99438316, 0.99705048, 0.49179268], 1714 [- 6.23933369, - 0.00183084, 0.00111702, 7.23750286, 0.99438642, 0.99705214, 0.49179645], 1715 [- 6.23944877, - 0.00182979, 0.00111641, 7.23761898, 0.99438968, 0.99705380, 0.49180022], 1716 [- 6.23956345, - 0.00182875, 0.00111579, 7.23773470, 0.99439293, 0.99705546, 0.49180397], 1717 [- 6.23967773, - 0.00182771, 0.00111518, 7.23785002, 0.99439618, 0.99705711, 0.49180771], 1718 [- 6.23979160, - 0.00182667, 0.00111456, 7.23796493, 0.99439943, 0.99705877, 0.49181144], 1719 [- 6.23990507, - 0.00182563, 0.00111395, 7.23807944, 0.99440267, 0.99706042, 0.49181516], 1720 [- 6.24001814, - 0.00182459, 0.00111334, 7.23819355, 0.99440591, 0.99706207, 0.49181886], 1721 [- 6.24013082, - 0.00182355, 0.00111273, 7.23830726, 0.99440915, 0.99706372, 0.49182255], 1722 [- 6.24024309, - 0.00182251, 0.00111211, 7.23842058, 0.99441238, 0.99706537, 0.49182623], 1723 [- 6.24035498, - 0.00182148, 0.00111150, 7.23853350, 0.99441561, 0.99706702, 0.49182990], 1724 [- 6.24046647, - 0.00182045, 0.00111089, 7.23864602, 0.99441884, 0.99706866, 0.49183355], 1725 [- 6.24057756, - 0.00181941, 0.00111028, 7.23875815, 0.99442206, 0.99707031, 0.49183719], 1726 [- 6.24068827, - 0.00181838, 0.00110967, 7.23886989, 0.99442528, 0.99707195, 0.49184083], 1727 [- 6.24079858, - 0.00181735, 0.00110906, 7.23898123, 0.99442849, 0.99707359, 0.49184446], 1728 [- 6.24090851, - 0.00181632, 0.00110846, 7.23909219, 0.99443170, 0.99707523, 0.49184806], 1729 [- 6.24101805, - 0.00181529, 0.00110785, 7.23920276, 0.99443491, 0.99707686, 0.49185165], 1730 [- 6.24112720, - 0.00181426, 0.00110724, 7.23931294, 0.99443812, 0.99707850, 0.49185524], 1731 [- 6.24123597, - 0.00181324, 0.00110663, 7.23942274, 0.99444132, 0.99708013, 0.49185881], 1732 [- 6.24134436, - 0.00181221, 0.00110603, 7.23953215, 0.99444451, 0.99708176, 0.49186237], 1733 [- 6.24145237, - 0.00181118, 0.00110542, 7.23964118, 0.99444771, 0.99708339, 0.49186593], 1734 [- 6.24155999, - 0.00181016, 0.00110482, 7.23974983, 0.99445090, 0.99708502, 0.49186947], 1735 [- 6.24166723, - 0.00180914, 0.00110421, 7.23985810, 0.99445408, 0.99708665, 0.49187299], 1736 [- 6.24177410, - 0.00180812, 0.00110361, 7.23996598, 0.99445727, 0.99708828, 0.49187651], 1737 [- 6.24188059, - 0.00180710, 0.00110300, 7.24007349, 0.99446045, 0.99708990, 0.49188001], 1738 [- 6.24198671, - 0.00180608, 0.00110240, 7.24018063, 0.99446363, 0.99709152, 0.49188351], 1739 [- 6.24209245, - 0.00180506, 0.00110180, 7.24028739, 0.99446680, 0.99709314, 0.49188699], 1740 [- 6.24219781, - 0.00180404, 0.00110120, 7.24039377, 0.99446997, 0.99709476, 0.49189046], 1741 [- 6.24230281, - 0.00180302, 0.00110060, 7.24049978, 0.99447313, 0.99709638, 0.49189392], 1742 [- 6.24240743, - 0.00180201, 0.00110000, 7.24060543, 0.99447630, 0.99709800, 0.49189737], 1743 [- 6.24251169, - 0.00180100, 0.00109940, 7.24071070, 0.99447946, 0.99709961, 0.49190081], 1744 [- 6.24261558, - 0.00179998, 0.00109880, 7.24081560, 0.99448261, 0.99710122, 0.49190424], 1745 [- 6.24271910, - 0.00179897, 0.00109820, 7.24092013, 0.99448577, 0.99710283, 0.49190765], 1746 [- 6.24282226, - 0.00179796, 0.00109760, 7.24102430, 0.99448891, 0.99710444, 0.49191105], 1747 [- 6.24292505, - 0.00179695, 0.00109700, 7.24112810, 0.99449206, 0.99710605, 0.49191444], 1748 [- 6.24302748, - 0.00179594, 0.00109640, 7.24123154, 0.99449520, 0.99710766, 0.49191782], 1749 [- 6.24312955, - 0.00179493, 0.00109581, 7.24133462, 0.99449834, 0.99710926, 0.49192119], 1750 [- 6.24323126, - 0.00179392, 0.00109521, 7.24143733, 0.99450148, 0.99711087, 0.49192455], 1751 [- 6.24333261, - 0.00179292, 0.00109461, 7.24153969, 0.99450461, 0.99711247, 0.49192789], 1752 [- 6.24343360, - 0.00179191, 0.00109402, 7.24164168, 0.99450774, 0.99711407, 0.49193123], 1753 [- 6.24353423, - 0.00179091, 0.00109342, 7.24174332, 0.99451086, 0.99711567, 0.49193456], 1754 [- 6.24363451, - 0.00178991, 0.00109283, 7.24184460, 0.99451399, 0.99711726, 0.49193787], 1755 [- 6.24373444, - 0.00178891, 0.00109224, 7.24194553, 0.99451711, 0.99711886, 0.49194119], 1756 [- 6.24383401, - 0.00178790, 0.00109164, 7.24204610, 0.99452022, 0.99712045, 0.49194448], 1757 [- 6.24393323, - 0.00178690, 0.00109105, 7.24214632, 0.99452333, 0.99712204, 0.49194776], 1758 [- 6.24403210, - 0.00178591, 0.00109046, 7.24224619, 0.99452644, 0.99712364, 0.49195103], 1759 [- 6.24413062, - 0.00178491, 0.00108987, 7.24234571, 0.99452955, 0.99712522, 0.49195429], 1760 [- 6.24422879, - 0.00178391, 0.00108928, 7.24244488, 0.99453265, 0.99712681, 0.49195755], 1761 [- 6.24432661, - 0.00178292, 0.00108869, 7.24254370, 0.99453575, 0.99712840, 0.49196079], 1762 [- 6.24442409, - 0.00178192, 0.00108810, 7.24264217, 0.99453884, 0.99712998, 0.49196402], 1763 [- 6.24452123, - 0.00178093, 0.00108751, 7.24274030, 0.99454194, 0.99713157, 0.49196723], 1764 [- 6.24461802, - 0.00177993, 0.00108692, 7.24283808, 0.99454502, 0.99713315, 0.49197045], 1765 [- 6.24471446, - 0.00177894, 0.00108633, 7.24293552, 0.99454811, 0.99713473, 0.49197365], 1766 [- 6.24481057, - 0.00177795, 0.00108574, 7.24303262, 0.99455119, 0.99713630, 0.49197684], 1767 [- 6.24490634, - 0.00177696, 0.00108516, 7.24312938, 0.99455427, 0.99713788, 0.49198002], 1768 [- 6.24500177, - 0.00177597, 0.00108457, 7.24322579, 0.99455735, 0.99713946, 0.49198318], 1769 [- 6.24509686, - 0.00177499, 0.00108398, 7.24332187, 0.99456042, 0.99714103, 0.49198634], 1770 [- 6.24519161, - 0.00177400, 0.00108340, 7.24341761, 0.99456349, 0.99714260, 0.49198949], 1771 [- 6.24528603, - 0.00177301, 0.00108281, 7.24351302, 0.99456655, 0.99714417, 0.49199263], 1772 [- 6.24538012, - 0.00177203, 0.00108223, 7.24360809, 0.99456961, 0.99714574, 0.49199575], 1773 [- 6.24547387, - 0.00177105, 0.00108164, 7.24370283, 0.99457267, 0.99714731, 0.49199887], 1774 [- 6.24556729, - 0.00177006, 0.00108106, 7.24379723, 0.99457573, 0.99714887, 0.49200198], 1775 [- 6.24566038, - 0.00176908, 0.00108048, 7.24389130, 0.99457878, 0.99715044, 0.49200507], 1776 [- 6.24575314, - 0.00176810, 0.00107990, 7.24398504, 0.99458183, 0.99715200, 0.49200817], 1777 [- 6.24584557, - 0.00176712, 0.00107931, 7.24407845, 0.99458488, 0.99715356, 0.49201123], 1778 [- 6.24593768, - 0.00176614, 0.00107873, 7.24417153, 0.99458792, 0.99715512, 0.49201431], 1779 [- 6.24602946, - 0.00176517, 0.00107815, 7.24426429, 0.99459096, 0.99715668, 0.49201737], 1780 [- 6.24612091, - 0.00176419, 0.00107757, 7.24435672, 0.99459400, 0.99715824, 0.49202041], 1781 [- 6.24621204, - 0.00176321, 0.00107699, 7.24444883, 0.99459703, 0.99715979, 0.49202344], 1782 [- 6.24630285, - 0.00176224, 0.00107641, 7.24454061, 0.99460006, 0.99716135, 0.49202647], 1783 [- 6.24639333, - 0.00176127, 0.00107584, 7.24463206, 0.99460309, 0.99716290, 0.49202949], 1784 [- 6.24648350, - 0.00176029, 0.00107526, 7.24472320, 0.99460611, 0.99716445, 0.49203250], 1785 [- 6.24657334, - 0.00175932, 0.00107468, 7.24481402, 0.99460913, 0.99716600, 0.49203550], 1786 [- 6.24666287, - 0.00175835, 0.00107410, 7.24490451, 0.99461215, 0.99716755, 0.49203848], 1787 [- 6.24675208, - 0.00175738, 0.00107353, 7.24499469, 0.99461516, 0.99716909, 0.49204146], 1788 [- 6.24684097, - 0.00175641, 0.00107295, 7.24508455, 0.99461817, 0.99717064, 0.49204443], 1789 [- 6.24692955, - 0.00175545, 0.00107238, 7.24517410, 0.99462118, 0.99717218, 0.49204739], 1790 [- 6.24701781, - 0.00175448, 0.00107180, 7.24526333, 0.99462418, 0.99717372, 0.49205033], 1791 [- 6.24710576, - 0.00175351, 0.00107123, 7.24535225, 0.99462718, 0.99717526, 0.49205328], 1792 [- 6.24719340, - 0.00175255, 0.00107065, 7.24544085, 0.99463018, 0.99717680, 0.49205621], 1793 [- 6.24728073, - 0.00175158, 0.00107008, 7.24552914, 0.99463317, 0.99717834, 0.49205913], 1794 [- 6.24736775, - 0.00175062, 0.00106951, 7.24561712, 0.99463617, 0.99717987, 0.49206204], 1795 [- 6.24745446, - 0.00174966, 0.00106893, 7.24570479, 0.99463915, 0.99718141, 0.49206494], 1796 [- 6.24754086, - 0.00174870, 0.00106836, 7.24579216, 0.99464214, 0.99718294, 0.49206783], 1797 [- 6.24762695, - 0.00174774, 0.00106779, 7.24587921, 0.99464512, 0.99718447, 0.49207072], 1798 [- 6.24771274, - 0.00174678, 0.00106722, 7.24596596, 0.99464810, 0.99718600, 0.49207359], 1799 [- 6.24779823, - 0.00174582, 0.00106665, 7.24605241, 0.99465108, 0.99718753, 0.49207645], 1800 [- 6.24788341, - 0.00174487, 0.00106608, 7.24613854, 0.99465405, 0.99718905, 0.49207931], 1801 [- 6.24796829, - 0.00174391, 0.00106551, 7.24622438, 0.99465702, 0.99719058, 0.49208216], 1802 [- 6.24805287, - 0.00174296, 0.00106494, 7.24630991, 0.99465998, 0.99719210, 0.49208499], 1803 [- 6.24813715, - 0.00174200, 0.00106438, 7.24639515, 0.99466295, 0.99719362, 0.49208783], 1804 [- 6.24822113, - 0.00174105, 0.00106381, 7.24648008, 0.99466591, 0.99719514, 0.49209064], 1805 [- 6.24830481, - 0.00174010, 0.00106324, 7.24656471, 0.99466886, 0.99719666, 0.49209345], 1806 [- 6.24838819, - 0.00173915, 0.00106267, 7.24664905, 0.99467182, 0.99719818, 0.49209625], 1807 [- 6.24847128, - 0.00173819, 0.00106211, 7.24673309, 0.99467477, 0.99719970, 0.49209904], 1808 [- 6.24855407, - 0.00173725, 0.00106154, 7.24681683, 0.99467771, 0.99720121, 0.49210182], 1809 [- 6.24863657, - 0.00173630, 0.00106098, 7.24690027, 0.99468066, 0.99720272, 0.49210459], 1810 [- 6.24871878, - 0.00173535, 0.00106041, 7.24698343, 0.99468360, 0.99720424, 0.49210735], 1811 [- 6.24880069, - 0.00173440, 0.00105985, 7.24706629, 0.99468654, 0.99720575, 0.49211010], 1812 [- 6.24888231, - 0.00173346, 0.00105929, 7.24714886, 0.99468947, 0.99720725, 0.49211286], 1813 [- 6.24896365, - 0.00173251, 0.00105872, 7.24723113, 0.99469240, 0.99720876, 0.49211559], 1814 [- 6.24904469, - 0.00173157, 0.00105816, 7.24731312, 0.99469533, 0.99721027, 0.49211832], 1815 [- 6.24912545, - 0.00173063, 0.00105760, 7.24739482, 0.99469826, 0.99721177, 0.49212104], 1816 [- 6.24920591, - 0.00172969, 0.00105704, 7.24747623, 0.99470118, 0.99721327, 0.49212375], 1817 [- 6.24928610, - 0.00172875, 0.00105648, 7.24755735, 0.99470410, 0.99721478, 0.49212645], 1818 [- 6.24936599, - 0.00172781, 0.00105592, 7.24763819, 0.99470702, 0.99721628, 0.49212915], 1819 [- 6.24944561, - 0.00172687, 0.00105536, 7.24771874, 0.99470993, 0.99721777, 0.49213183], 1820 [- 6.24952494, - 0.00172593, 0.00105480, 7.24779901, 0.99471284, 0.99721927, 0.49213451], 1821 [- 6.24960399, - 0.00172499, 0.00105424, 7.24787899, 0.99471575, 0.99722077, 0.49213717], 1822 [- 6.24968275, - 0.00172406, 0.00105368, 7.24795870, 0.99471865, 0.99722226, 0.49213983], 1823 [- 6.24976124, - 0.00172312, 0.00105312, 7.24803812, 0.99472155, 0.99722375, 0.49214248], 1824 [- 6.24983945, - 0.00172219, 0.00105257, 7.24811726, 0.99472445, 0.99722524, 0.49214512], 1825 [- 6.24991738, - 0.00172126, 0.00105201, 7.24819612, 0.99472735, 0.99722673, 0.49214776], 1826 [- 6.24999503, - 0.00172032, 0.00105145, 7.24827471, 0.99473024, 0.99722822, 0.49215038], 1827 [- 6.25007241, - 0.00171939, 0.00105090, 7.24835302, 0.99473313, 0.99722971, 0.49215299], 1828 [- 6.25014951, - 0.00171846, 0.00105034, 7.24843105, 0.99473601, 0.99723119, 0.49215561], 1829 [- 6.25022634, - 0.00171753, 0.00104979, 7.24850880, 0.99473890, 0.99723268, 0.49215820], 1830 [- 6.25030289, - 0.00171660, 0.00104923, 7.24858628, 0.99474178, 0.99723416, 0.49216079], 1831 [- 6.25037917, - 0.00171568, 0.00104868, 7.24866349, 0.99474465, 0.99723564, 0.49216338], 1832 [- 6.25045518, - 0.00171475, 0.00104813, 7.24874043, 0.99474753, 0.99723712, 0.49216595], 1833 [- 6.25053092, - 0.00171382, 0.00104758, 7.24881709, 0.99475040, 0.99723860, 0.49216851], 1834 [- 6.25060639, - 0.00171290, 0.00104702, 7.24889349, 0.99475327, 0.99724008, 0.49217106], 1835 [- 6.25068159, - 0.00171198, 0.00104647, 7.24896961, 0.99475613, 0.99724155, 0.49217362], 1836 [- 6.25075652, - 0.00171105, 0.00104592, 7.24904547, 0.99475899, 0.99724303, 0.49217616], 1837 [- 6.25083119, - 0.00171013, 0.00104537, 7.24912106, 0.99476185, 0.99724450, 0.49217869], 1838 [- 6.25090559, - 0.00170921, 0.00104482, 7.24919638, 0.99476471, 0.99724597, 0.49218121], 1839 [- 6.25097972, - 0.00170829, 0.00104427, 7.24927143, 0.99476756, 0.99724744, 0.49218373], 1840 [- 6.25105359, - 0.00170737, 0.00104372, 7.24934622, 0.99477041, 0.99724891, 0.49218624], 1841 [- 6.25112720, - 0.00170645, 0.00104317, 7.24942075, 0.99477326, 0.99725037, 0.49218873], 1842 [- 6.25120055, - 0.00170554, 0.00104262, 7.24949501, 0.99477610, 0.99725184, 0.49219122], 1843 [- 6.25127363, - 0.00170462, 0.00104208, 7.24956901, 0.99477894, 0.99725330, 0.49219371], 1844 [- 6.25134646, - 0.00170370, 0.00104153, 7.24964275, 0.99478178, 0.99725477, 0.49219618], 1845 [- 6.25141902, - 0.00170279, 0.00104098, 7.24971623, 0.99478462, 0.99725623, 0.49219865], 1846 [- 6.25149133, - 0.00170188, 0.00104044, 7.24978945, 0.99478745, 0.99725769, 0.49220112], 1847 [- 6.25156338, - 0.00170096, 0.00103989, 7.24986241, 0.99479028, 0.99725915, 0.49220356], 1848 [- 6.25163517, - 0.00170005, 0.00103935, 7.24993512, 0.99479311, 0.99726060, 0.49220600], 1849 [- 6.25170670, - 0.00169914, 0.00103880, 7.25000756, 0.99479593, 0.99726206, 0.49220844], 1850 [- 6.25177798, - 0.00169823, 0.00103826, 7.25007975, 0.99479875, 0.99726351, 0.49221087], 1851 [- 6.25184901, - 0.00169732, 0.00103771, 7.25015169, 0.99480157, 0.99726496, 0.49221329], 1852 [- 6.25191978, - 0.00169641, 0.00103717, 7.25022337, 0.99480438, 0.99726642, 0.49221570], 1853 [- 6.25199031, - 0.00169551, 0.00103663, 7.25029480, 0.99480719, 0.99726787, 0.49221811], 1854 [- 6.25206057, - 0.00169460, 0.00103609, 7.25036598, 0.99481000, 0.99726931, 0.49222050], 1855 [- 6.25213059, - 0.00169369, 0.00103555, 7.25043690, 0.99481281, 0.99727076, 0.49222289], 1856 [- 6.25220036, - 0.00169279, 0.00103500, 7.25050757, 0.99481561, 0.99727221, 0.49222527], 1857 [- 6.25226988, - 0.00169189, 0.00103446, 7.25057800, 0.99481841, 0.99727365, 0.49222765], 1858 [- 6.25233916, - 0.00169098, 0.00103392, 7.25064817, 0.99482121, 0.99727509, 0.49223001], 1859 [- 6.25240818, - 0.00169008, 0.00103338, 7.25071810, 0.99482400, 0.99727653, 0.49223237], 1860 [- 6.25247696, - 0.00168918, 0.00103285, 7.25078778, 0.99482680, 0.99727797, 0.49223472], 1861 [- 6.25254550, - 0.00168828, 0.00103231, 7.25085722, 0.99482958, 0.99727941, 0.49223706], 1862 [- 6.25261379, - 0.00168738, 0.00103177, 7.25092640, 0.99483237, 0.99728085, 0.49223939], 1863 [- 6.25268183, - 0.00168648, 0.00103123, 7.25099535, 0.99483515, 0.99728229, 0.49224172], 1864 [- 6.25274963, - 0.00168559, 0.00103069, 7.25106405, 0.99483793, 0.99728372, 0.49224404], 1865 [- 6.25281720, - 0.00168469, 0.00103016, 7.25113251, 0.99484071, 0.99728515, 0.49224636], 1866 [- 6.25288452, - 0.00168379, 0.00102962, 7.25120072, 0.99484348, 0.99728659, 0.49224866], 1867 [- 6.25295160, - 0.00168290, 0.00102909, 7.25126870, 0.99484626, 0.99728802, 0.49225097], 1868 [- 6.25301844, - 0.00168200, 0.00102855, 7.25133643, 0.99484902, 0.99728945, 0.49225325], 1869 [- 6.25308504, - 0.00168111, 0.00102802, 7.25140393, 0.99485179, 0.99729087, 0.49225553], 1870 [- 6.25315140, - 0.00168022, 0.00102748, 7.25147118, 0.99485455, 0.99729230, 0.49225780], 1871 [- 6.25321753, - 0.00167933, 0.00102695, 7.25153820, 0.99485731, 0.99729372, 0.49226008], 1872 [- 6.25328342, - 0.00167844, 0.00102641, 7.25160498, 0.99486007, 0.99729515, 0.49226233], 1873 [- 6.25334907, - 0.00167755, 0.00102588, 7.25167153, 0.99486282, 0.99729657, 0.49226459], 1874 [- 6.25341450, - 0.00167666, 0.00102535, 7.25173784, 0.99486558, 0.99729799, 0.49226684], 1875 [- 6.25347968, - 0.00167577, 0.00102482, 7.25180391, 0.99486832, 0.99729941, 0.49226907], 1876 [- 6.25354464, - 0.00167489, 0.00102429, 7.25186975, 0.99487107, 0.99730083, 0.49227131], 1877 [- 6.25360936, - 0.00167400, 0.00102376, 7.25193536, 0.99487381, 0.99730224, 0.49227354], 1878 [- 6.25367385, - 0.00167312, 0.00102323, 7.25200074, 0.99487655, 0.99730366, 0.49227575], 1879 [- 6.25373811, - 0.00167223, 0.00102270, 7.25206588, 0.99487929, 0.99730507, 0.49227796], 1880 [- 6.25380215, - 0.00167135, 0.00102217, 7.25213080, 0.99488202, 0.99730649, 0.49228016], 1881 [- 6.25386595, - 0.00167047, 0.00102164, 7.25219548, 0.99488476, 0.99730790, 0.49228236], 1882 [- 6.25392952, - 0.00166958, 0.00102111, 7.25225994, 0.99488749, 0.99730931, 0.49228455], 1883 [- 6.25399287, - 0.00166870, 0.00102058, 7.25232417, 0.99489021, 0.99731072, 0.49228673], 1884 [- 6.25405599, - 0.00166782, 0.00102005, 7.25238817, 0.99489294, 0.99731212, 0.49228892], 1885 [- 6.25411889, - 0.00166694, 0.00101953, 7.25245194, 0.99489566, 0.99731353, 0.49229108], 1886 [- 6.25418156, - 0.00166607, 0.00101900, 7.25251549, 0.99489837, 0.99731493, 0.49229324], 1887 [- 6.25424401, - 0.00166519, 0.00101847, 7.25257882, 0.99490109, 0.99731634, 0.49229539], 1888 [- 6.25430623, - 0.00166431, 0.00101795, 7.25264192, 0.99490380, 0.99731774, 0.49229754], 1889 [- 6.25436823, - 0.00166344, 0.00101742, 7.25270479, 0.99490651, 0.99731914, 0.49229968], 1890 [- 6.25443001, - 0.00166256, 0.00101690, 7.25276745, 0.99490922, 0.99732054, 0.49230182], 1891 [- 6.25449157, - 0.00166169, 0.00101638, 7.25282988, 0.99491192, 0.99732194, 0.49230394], 1892 [- 6.25455291, - 0.00166082, 0.00101585, 7.25289209, 0.99491462, 0.99732333, 0.49230606], 1893 [- 6.25461403, - 0.00165994, 0.00101533, 7.25295408, 0.99491732, 0.99732473, 0.49230817], 1894 [- 6.25467493, - 0.00165907, 0.00101481, 7.25301586, 0.99492002, 0.99732612, 0.49231027], 1895 [- 6.25473561, - 0.00165820, 0.00101428, 7.25307741, 0.99492271, 0.99732751, 0.49231238], 1896 [- 6.25479608, - 0.00165733, 0.00101376, 7.25313874, 0.99492540, 0.99732890, 0.49231446], 1897 [- 6.25485633, - 0.00165647, 0.00101324, 7.25319986, 0.99492809, 0.99733029, 0.49231656], 1898 [- 6.25491636, - 0.00165560, 0.00101272, 7.25326076, 0.99493077, 0.99733168, 0.49231863], 1899 [- 6.25497618, - 0.00165473, 0.00101220, 7.25332145, 0.99493345, 0.99733307, 0.49232070], 1900 [- 6.25503579, - 0.00165386, 0.00101168, 7.25338192, 0.99493613, 0.99733445, 0.49232277], 1901 [- 6.25509518, - 0.00165300, 0.00101116, 7.25344218, 0.99493881, 0.99733584, 0.49232483], 1902 [- 6.25515436, - 0.00165214, 0.00101064, 7.25350222, 0.99494148, 0.99733722, 0.49232688], 1903 [- 6.25521333, - 0.00165127, 0.00101012, 7.25356206, 0.99494415, 0.99733860, 0.49232894], 1904 [- 6.25527209, - 0.00165041, 0.00100961, 7.25362168, 0.99494682, 0.99733998, 0.49233097], 1905 [- 6.25533063, - 0.00164955, 0.00100909, 7.25368108, 0.99494949, 0.99734136, 0.49233301], 1906 [- 6.25538897, - 0.00164869, 0.00100857, 7.25374028, 0.99495215, 0.99734274, 0.49233504], 1907 [- 6.25544710, - 0.00164783, 0.00100806, 7.25379927, 0.99495481, 0.99734412, 0.49233704], 1908 [- 6.25550502, - 0.00164697, 0.00100754, 7.25385805, 0.99495747, 0.99734549, 0.49233906], 1909 [- 6.25556273, - 0.00164611, 0.00100702, 7.25391662, 0.99496012, 0.99734687, 0.49234107], 1910 [- 6.25562024, - 0.00164525, 0.00100651, 7.25397499, 0.99496278, 0.99734824, 0.49234308], 1911 [- 6.25567754, - 0.00164440, 0.00100599, 7.25403314, 0.99496543, 0.99734961, 0.49234506], 1912 [- 6.25573464, - 0.00164354, 0.00100548, 7.25409110, 0.99496807, 0.99735098, 0.49234706], 1913 [- 6.25579153, - 0.00164268, 0.00100497, 7.25414884, 0.99497072, 0.99735235, 0.49234904], 1914 [- 6.25584821, - 0.00164183, 0.00100445, 7.25420638, 0.99497336, 0.99735372, 0.49235101], 1915 [- 6.25590470, - 0.00164098, 0.00100394, 7.25426372, 0.99497600, 0.99735508, 0.49235297], 1916 [- 6.25596098, - 0.00164012, 0.00100343, 7.25432086, 0.99497863, 0.99735645, 0.49235495], 1917 [- 6.25601706, - 0.00163927, 0.00100292, 7.25437779, 0.99498127, 0.99735781, 0.49235690], 1918 [- 6.25607294, - 0.00163842, 0.00100241, 7.25443452, 0.99498390, 0.99735917, 0.49235884], 1919 [- 6.25612862, - 0.00163757, 0.00100189, 7.25449105, 0.99498652, 0.99736053, 0.49236079], 1920 [- 6.25618410, - 0.00163672, 0.00100138, 7.25454738, 0.99498915, 0.99736189, 0.49236272], 1921 [- 6.25623938, - 0.00163587, 0.00100087, 7.25460351, 0.99499177, 0.99736325, 0.49236466], 1922 [- 6.25629447, - 0.00163503, 0.00100036, 7.25465944, 0.99499439, 0.99736461, 0.49236658], 1923 [- 6.25634936, - 0.00163418, 0.00099986, 7.25471518, 0.99499701, 0.99736596, 0.49236850], 1924 [- 6.25640405, - 0.00163333, 0.00099935, 7.25477071, 0.99499963, 0.99736732, 0.49237042], 1925 [- 6.25645854, - 0.00163249, 0.00099884, 7.25482605, 0.99500224, 0.99736867, 0.49237232], 1926 [- 6.25651284, - 0.00163164, 0.00099833, 7.25488119, 0.99500485, 0.99737002, 0.49237422], 1927 [- 6.25656694, - 0.00163080, 0.00099782, 7.25493614, 0.99500745, 0.99737137, 0.49237612], 1928 [- 6.25662085, - 0.00162996, 0.00099732, 7.25499089, 0.99501006, 0.99737272, 0.49237800], 1929 [- 6.25667457, - 0.00162912, 0.00099681, 7.25504545, 0.99501266, 0.99737407, 0.49237989], 1930 [- 6.25672809, - 0.00162828, 0.00099631, 7.25509982, 0.99501526, 0.99737542, 0.49238176], 1931 [- 6.25678143, - 0.00162744, 0.00099580, 7.25515399, 0.99501786, 0.99737676, 0.49238364], 1932 [- 6.25683457, - 0.00162660, 0.00099530, 7.25520797, 0.99502045, 0.99737811, 0.49238550], 1933 [- 6.25688752, - 0.00162576, 0.00099479, 7.25526176, 0.99502304, 0.99737945, 0.49238736], 1934 [- 6.25694028, - 0.00162492, 0.00099429, 7.25531536, 0.99502563, 0.99738079, 0.49238921], 1935 [- 6.25699285, - 0.00162408, 0.00099378, 7.25536877, 0.99502822, 0.99738213, 0.49239105], 1936 [- 6.25704524, - 0.00162325, 0.00099328, 7.25542199, 0.99503080, 0.99738347, 0.49239289], 1937 [- 6.25709743, - 0.00162241, 0.00099278, 7.25547502, 0.99503338, 0.99738481, 0.49239473], 1938 [- 6.25714944, - 0.00162158, 0.00099228, 7.25552786, 0.99503596, 0.99738615, 0.49239656], 1939 [- 6.25720127, - 0.00162074, 0.00099177, 7.25558052, 0.99503853, 0.99738748, 0.49239838], 1940 [- 6.25725290, - 0.00161991, 0.00099127, 7.25563299, 0.99504111, 0.99738881, 0.49240020], 1941 [- 6.25730435, - 0.00161908, 0.00099077, 7.25568527, 0.99504368, 0.99739015, 0.49240201], 1942 [- 6.25735562, - 0.00161825, 0.00099027, 7.25573737, 0.99504625, 0.99739148, 0.49240381], 1943 [- 6.25740670, - 0.00161742, 0.00098977, 7.25578929, 0.99504881, 0.99739281, 0.49240561], 1944 [- 6.25745761, - 0.00161659, 0.00098927, 7.25584102, 0.99505137, 0.99739414, 0.49240741], 1945 [- 6.25750832, - 0.00161576, 0.00098877, 7.25589256, 0.99505393, 0.99739547, 0.49240919], 1946 [- 6.25755886, - 0.00161493, 0.00098828, 7.25594393, 0.99505649, 0.99739679, 0.49241098], 1947 [- 6.25760921, - 0.00161411, 0.00098778, 7.25599511, 0.99505905, 0.99739812, 0.49241276], 1948 [- 6.25765939, - 0.00161328, 0.00098728, 7.25604611, 0.99506160, 0.99739944, 0.49241453], 1949 [- 6.25770938, - 0.00161245, 0.00098678, 7.25609693, 0.99506415, 0.99740076, 0.49241630], 1950 [- 6.25775920, - 0.00161163, 0.00098629, 7.25614757, 0.99506670, 0.99740209, 0.49241806], 1951 [- 6.25780883, - 0.00161080, 0.00098579, 7.25619803, 0.99506924, 0.99740341, 0.49241981], 1952 [- 6.25785829, - 0.00160998, 0.00098529, 7.25624831, 0.99507179, 0.99740472, 0.49242156], 1953 [- 6.25790757, - 0.00160916, 0.00098480, 7.25629841, 0.99507433, 0.99740604, 0.49242330], 1954 [- 6.25795667, - 0.00160834, 0.00098430, 7.25634834, 0.99507686, 0.99740736, 0.49242504], 1955 [- 6.25800560, - 0.00160752, 0.00098381, 7.25639808, 0.99507940, 0.99740867, 0.49242678], 1956 [- 6.25805435, - 0.00160670, 0.00098332, 7.25644766, 0.99508193, 0.99740999, 0.49242849], 1957 [- 6.25810293, - 0.00160588, 0.00098282, 7.25649705, 0.99508446, 0.99741130, 0.49243022], 1958 [- 6.25815133, - 0.00160506, 0.00098233, 7.25654627, 0.99508699, 0.99741261, 0.49243193], 1959 [- 6.25819956, - 0.00160424, 0.00098184, 7.25659532, 0.99508951, 0.99741392, 0.49243365], 1960 [- 6.25824762, - 0.00160342, 0.00098134, 7.25664419, 0.99509203, 0.99741523, 0.49243535], 1961 [- 6.25829550, - 0.00160261, 0.00098085, 7.25669289, 0.99509455, 0.99741654, 0.49243704], 1962 [- 6.25834321, - 0.00160179, 0.00098036, 7.25674142, 0.99509707, 0.99741784, 0.49243875], 1963 [- 6.25839075, - 0.00160098, 0.00097987, 7.25678978, 0.99509959, 0.99741915, 0.49244043], 1964 [- 6.25843812, - 0.00160017, 0.00097938, 7.25683796, 0.99510210, 0.99742045, 0.49244213], 1965 [- 6.25848532, - 0.00159935, 0.00097889, 7.25688597, 0.99510461, 0.99742176, 0.49244379], 1966 [- 6.25853235, - 0.00159854, 0.00097840, 7.25693381, 0.99510712, 0.99742306, 0.49244547], 1967 [- 6.25857922, - 0.00159773, 0.00097791, 7.25698149, 0.99510962, 0.99742436, 0.49244714], 1968 [- 6.25862591, - 0.00159692, 0.00097742, 7.25702899, 0.99511212, 0.99742566, 0.49244880], 1969 [- 6.25867244, - 0.00159611, 0.00097693, 7.25707633, 0.99511462, 0.99742696, 0.49245046], 1970 [- 6.25871879, - 0.00159530, 0.00097645, 7.25712350, 0.99511712, 0.99742825, 0.49245210], 1971 [- 6.25876499, - 0.00159449, 0.00097596, 7.25717050, 0.99511962, 0.99742955, 0.49245376], 1972 [- 6.25881101, - 0.00159368, 0.00097547, 7.25721733, 0.99512211, 0.99743084, 0.49245539], 1973 [- 6.25885688, - 0.00159288, 0.00097499, 7.25726400, 0.99512460, 0.99743214, 0.49245702], 1974 [- 6.25890257, - 0.00159207, 0.00097450, 7.25731050, 0.99512709, 0.99743343, 0.49245866], 1975 [- 6.25894810, - 0.00159127, 0.00097402, 7.25735684, 0.99512957, 0.99743472, 0.49246028], 1976 [- 6.25899347, - 0.00159046, 0.00097353, 7.25740301, 0.99513205, 0.99743601, 0.49246190], 1977 [- 6.25903868, - 0.00158966, 0.00097305, 7.25744902, 0.99513453, 0.99743730, 0.49246352], 1978 [- 6.25908372, - 0.00158886, 0.00097256, 7.25749487, 0.99513701, 0.99743858, 0.49246513], 1979 [- 6.25912861, - 0.00158805, 0.00097208, 7.25754055, 0.99513949, 0.99743987, 0.49246673], 1980 [- 6.25917333, - 0.00158725, 0.00097159, 7.25758607, 0.99514196, 0.99744115, 0.49246833], 1981 [- 6.25921789, - 0.00158645, 0.00097111, 7.25763144, 0.99514443, 0.99744244, 0.49246993], 1982 [- 6.25926229, - 0.00158565, 0.00097063, 7.25767664, 0.99514690, 0.99744372, 0.49247152], 1983 [- 6.25930653, - 0.00158485, 0.00097015, 7.25772168, 0.99514936, 0.99744500, 0.49247309], 1984 [- 6.25935061, - 0.00158406, 0.00096966, 7.25776656, 0.99515183, 0.99744628, 0.49247468], 1985 [- 6.25939453, - 0.00158326, 0.00096918, 7.25781128, 0.99515429, 0.99744756, 0.49247625], 1986 [- 6.25943830, - 0.00158246, 0.00096870, 7.25785584, 0.99515675, 0.99744884, 0.49247782], 1987 [- 6.25948191, - 0.00158167, 0.00096822, 7.25790024, 0.99515920, 0.99745011, 0.49247939], 1988 [- 6.25952536, - 0.00158087, 0.00096774, 7.25794449, 0.99516165, 0.99745139, 0.49248095], 1989 [- 6.25956866, - 0.00158008, 0.00096726, 7.25798858, 0.99516411, 0.99745266, 0.49248251], 1990 [- 6.25961180, - 0.00157928, 0.00096678, 7.25803252, 0.99516655, 0.99745393, 0.49248405], 1991 [- 6.25965478, - 0.00157849, 0.00096631, 7.25807629, 0.99516900, 0.99745521, 0.49248560], 1992 [- 6.25969761, - 0.00157770, 0.00096583, 7.25811992, 0.99517144, 0.99745648, 0.49248715], 1993 [- 6.25974029, - 0.00157691, 0.00096535, 7.25816339, 0.99517389, 0.99745774, 0.49248867], 1994 [- 6.25978282, - 0.00157612, 0.00096487, 7.25820670, 0.99517633, 0.99745901, 0.49249021], 1995 [- 6.25982519, - 0.00157533, 0.00096440, 7.25824986, 0.99517876, 0.99746028, 0.49249174], 1996 [- 6.25986741, - 0.00157454, 0.00096392, 7.25829287, 0.99518120, 0.99746154, 0.49249325], 1997 [- 6.25990947, - 0.00157375, 0.00096344, 7.25833572, 0.99518363, 0.99746281, 0.49249477], 1998 [- 6.25995139, - 0.00157296, 0.00096297, 7.25837843, 0.99518606, 0.99746407, 0.49249628], 1999 [- 6.25999315, - 0.00157217, 0.00096249, 7.25842098, 0.99518848, 0.99746533, 0.49249779], 2000 [- 6.26003477, - 0.00157139, 0.00096202, 7.25846338, 0.99519091, 0.99746659, 0.49249929], 2001 [- 6.26007624, - 0.00157060, 0.00096154, 7.25850563, 0.99519333, 0.99746785, 0.49250079], 2002 [- 6.26011755, - 0.00156982, 0.00096107, 7.25854773, 0.99519575, 0.99746911, 0.49250228], 2003 [- 6.26015872, - 0.00156903, 0.00096060, 7.25858969, 0.99519817, 0.99747037, 0.49250377], 2004 [- 6.26019974, - 0.00156825, 0.00096012, 7.25863149, 0.99520058, 0.99747163, 0.49250524], 2005 [- 6.26024061, - 0.00156747, 0.00095965, 7.25867315, 0.99520300, 0.99747288, 0.49250672], 2006 [- 6.26028134, - 0.00156669, 0.00095918, 7.25871465, 0.99520541, 0.99747414, 0.49250819], 2007 [- 6.26032192, - 0.00156591, 0.00095871, 7.25875601, 0.99520782, 0.99747539, 0.49250967], 2008 [- 6.26036235, - 0.00156513, 0.00095823, 7.25879723, 0.99521022, 0.99747664, 0.49251114], 2009 [- 6.26040264, - 0.00156435, 0.00095776, 7.25883830, 0.99521263, 0.99747789, 0.49251259], 2010 [- 6.26044279, - 0.00156357, 0.00095729, 7.25887922, 0.99521503, 0.99747914, 0.49251404], 2011 [- 6.26048279, - 0.00156279, 0.00095682, 7.25892000, 0.99521743, 0.99748039, 0.49251549], 2012 [- 6.26052264, - 0.00156201, 0.00095635, 7.25896063, 0.99521982, 0.99748163, 0.49251694], 2013 [- 6.26056235, - 0.00156124, 0.00095588, 7.25900112, 0.99522222, 0.99748288, 0.49251838], 2014 [- 6.26060192, - 0.00156046, 0.00095542, 7.25904146, 0.99522461, 0.99748412, 0.49251982], 2015 [- 6.26064135, - 0.00155969, 0.00095495, 7.25908167, 0.99522700, 0.99748537, 0.49252125], 2016 [- 6.26068064, - 0.00155891, 0.00095448, 7.25912173, 0.99522939, 0.99748661, 0.49252269], 2017 [- 6.26071978, - 0.00155814, 0.00095401, 7.25916164, 0.99523177, 0.99748785, 0.49252410], 2018 [- 6.26075879, - 0.00155737, 0.00095354, 7.25920142, 0.99523415, 0.99748909, 0.49252552], 2019 [- 6.26079765, - 0.00155659, 0.00095308, 7.25924106, 0.99523653, 0.99749033, 0.49252694], 2020 [- 6.26083637, - 0.00155582, 0.00095261, 7.25928055, 0.99523891, 0.99749157, 0.49252834], 2021 [- 6.26087496, - 0.00155505, 0.00095215, 7.25931991, 0.99524129, 0.99749280, 0.49252975], 2022 [- 6.26091341, - 0.00155428, 0.00095168, 7.25935912, 0.99524366, 0.99749404, 0.49253116], 2023 [- 6.26095171, - 0.00155351, 0.00095122, 7.25939820, 0.99524603, 0.99749527, 0.49253255], 2024 [- 6.26098988, - 0.00155274, 0.00095075, 7.25943714, 0.99524840, 0.99749651, 0.49253394], 2025 [- 6.26102792, - 0.00155198, 0.00095029, 7.25947594, 0.99525077, 0.99749774, 0.49253533], 2026 [- 6.26106581, - 0.00155121, 0.00094982, 7.25951460, 0.99525313, 0.99749897, 0.49253672], 2027 [- 6.26110357, - 0.00155044, 0.00094936, 7.25955313, 0.99525549, 0.99750020, 0.49253810], 2028 [- 6.26114120, - 0.00154968, 0.00094890, 7.25959152, 0.99525785, 0.99750143, 0.49253947], 2029 [- 6.26117869, - 0.00154891, 0.00094843, 7.25962977, 0.99526021, 0.99750265, 0.49254085], 2030 [- 6.26121604, - 0.00154815, 0.00094797, 7.25966789, 0.99526256, 0.99750388, 0.49254220], 2031 [- 6.26125326, - 0.00154739, 0.00094751, 7.25970587, 0.99526492, 0.99750510, 0.49254357], 2032 [- 6.26129035, - 0.00154662, 0.00094705, 7.25974372, 0.99526727, 0.99750633, 0.49254493], 2033 [- 6.26132730, - 0.00154586, 0.00094659, 7.25978144, 0.99526962, 0.99750755, 0.49254628], 2034 [- 6.26136412, - 0.00154510, 0.00094613, 7.25981902, 0.99527196, 0.99750877, 0.49254763], 2035 [- 6.26140081, - 0.00154434, 0.00094567, 7.25985647, 0.99527431, 0.99750999, 0.49254897], 2036 [- 6.26143736, - 0.00154358, 0.00094521, 7.25989378, 0.99527665, 0.99751121, 0.49255032], 2037 [- 6.26147379, - 0.00154282, 0.00094475, 7.25993097, 0.99527899, 0.99751243, 0.49255166], 2038 [- 6.26151008, - 0.00154206, 0.00094429, 7.25996802, 0.99528132, 0.99751365, 0.49255299], 2039 [- 6.26154624, - 0.00154131, 0.00094383, 7.26000494, 0.99528366, 0.99751486, 0.49255432], 2040 [- 6.26158228, - 0.00154055, 0.00094337, 7.26004173, 0.99528599, 0.99751608, 0.49255564], 2041 [- 6.26161818, - 0.00153979, 0.00094292, 7.26007839, 0.99528832, 0.99751729, 0.49255696], 2042 [- 6.26165395, - 0.00153904, 0.00094246, 7.26011492, 0.99529065, 0.99751851, 0.49255828], 2043 [- 6.26168960, - 0.00153828, 0.00094200, 7.26015132, 0.99529297, 0.99751972, 0.49255958], 2044 [- 6.26172512, - 0.00153753, 0.00094155, 7.26018759, 0.99529530, 0.99752093, 0.49256090], 2045 [- 6.26176051, - 0.00153677, 0.00094109, 7.26022373, 0.99529762, 0.99752214, 0.49256219], 2046 [- 6.26179577, - 0.00153602, 0.00094063, 7.26025975, 0.99529994, 0.99752334, 0.49256349], 2047 [- 6.26183090, - 0.00153527, 0.00094018, 7.26029563, 0.99530226, 0.99752455, 0.49256478], 2048 [- 6.26186591, - 0.00153452, 0.00093972, 7.26033139, 0.99530457, 0.99752576, 0.49256609], 2049 [- 6.26190080, - 0.00153377, 0.00093927, 7.26036703, 0.99530688, 0.99752696, 0.49256738], 2050 [- 6.26193555, - 0.00153302, 0.00093882, 7.26040254, 0.99530919, 0.99752817, 0.49256866], 2051 [- 6.26197019, - 0.00153227, 0.00093836, 7.26043792, 0.99531150, 0.99752937, 0.49256993], 2052 [- 6.26200470, - 0.00153152, 0.00093791, 7.26047317, 0.99531381, 0.99753057, 0.49257121], 2053 [- 6.26203908, - 0.00153077, 0.00093746, 7.26050831, 0.99531611, 0.99753177, 0.49257249], 2054 [- 6.26207334, - 0.00153003, 0.00093700, 7.26054331, 0.99531841, 0.99753297, 0.49257375], 2055 [- 6.26210748, - 0.00152928, 0.00093655, 7.26057820, 0.99532071, 0.99753417, 0.49257501], 2056 [- 6.26214149, - 0.00152853, 0.00093610, 7.26061296, 0.99532301, 0.99753537, 0.49257629], 2057 [- 6.26217539, - 0.00152779, 0.00093565, 7.26064760, 0.99532530, 0.99753656, 0.49257754], 2058 [- 6.26220916, - 0.00152705, 0.00093520, 7.26068211, 0.99532759, 0.99753776, 0.49257879], 2059 [- 6.26224280, - 0.00152630, 0.00093475, 7.26071650, 0.99532988, 0.99753895, 0.49258003], 2060 [- 6.26227633, - 0.00152556, 0.00093430, 7.26075077, 0.99533217, 0.99754014, 0.49258128], 2061 [- 6.26230974, - 0.00152482, 0.00093385, 7.26078492, 0.99533446, 0.99754133, 0.49258252], 2062 [- 6.26234303, - 0.00152408, 0.00093340, 7.26081895, 0.99533674, 0.99754253, 0.49258376], 2063 [- 6.26237620, - 0.00152333, 0.00093295, 7.26085286, 0.99533902, 0.99754372, 0.49258498], 2064 [- 6.26240924, - 0.00152259, 0.00093250, 7.26088665, 0.99534130, 0.99754490, 0.49258622], 2065 [- 6.26244217, - 0.00152186, 0.00093205, 7.26092032, 0.99534358, 0.99754609, 0.49258745], 2066 [- 6.26247499, - 0.00152112, 0.00093161, 7.26095387, 0.99534586, 0.99754728, 0.49258868], 2067 [- 6.26250768, - 0.00152038, 0.00093116, 7.26098730, 0.99534813, 0.99754846, 0.49258989], 2068 [- 6.26254025, - 0.00151964, 0.00093071, 7.26102061, 0.99535040, 0.99754965, 0.49259110], 2069 [- 6.26257271, - 0.00151890, 0.00093027, 7.26105381, 0.99535267, 0.99755083, 0.49259230], 2070 [- 6.26260505, - 0.00151817, 0.00092982, 7.26108689, 0.99535493, 0.99755201, 0.49259351], 2071 [- 6.26263728, - 0.00151743, 0.00092937, 7.26111985, 0.99535720, 0.99755319, 0.49259471], 2072 [- 6.26266939, - 0.00151670, 0.00092893, 7.26115269, 0.99535946, 0.99755437, 0.49259592], 2073 [- 6.26270138, - 0.00151596, 0.00092848, 7.26118542, 0.99536172, 0.99755555, 0.49259711], 2074 [- 6.26273326, - 0.00151523, 0.00092804, 7.26121803, 0.99536398, 0.99755673, 0.49259829], 2075 [- 6.26276503, - 0.00151450, 0.00092760, 7.26125053, 0.99536623, 0.99755790, 0.49259950], 2076 [- 6.26279668, - 0.00151377, 0.00092715, 7.26128291, 0.99536849, 0.99755908, 0.49260067], 2077 [- 6.26282822, - 0.00151304, 0.00092671, 7.26131518, 0.99537074, 0.99756025, 0.49260186], 2078 [- 6.26285964, - 0.00151231, 0.00092627, 7.26134733, 0.99537299, 0.99756143, 0.49260303], 2079 [- 6.26289095, - 0.00151158, 0.00092582, 7.26137937, 0.99537524, 0.99756260, 0.49260421], 2080 [- 6.26292215, - 0.00151085, 0.00092538, 7.26141130, 0.99537748, 0.99756377, 0.49260538], 2081 [- 6.26295323, - 0.00151012, 0.00092494, 7.26144311, 0.99537972, 0.99756494, 0.49260653], 2082 [- 6.26298421, - 0.00150939, 0.00092450, 7.26147481, 0.99538196, 0.99756611, 0.49260770], 2083 [- 6.26301507, - 0.00150866, 0.00092406, 7.26150640, 0.99538420, 0.99756728, 0.49260887], 2084 [- 6.26304582, - 0.00150794, 0.00092362, 7.26153788, 0.99538644, 0.99756844, 0.49261002], 2085 [- 6.26307646, - 0.00150721, 0.00092318, 7.26156925, 0.99538867, 0.99756961, 0.49261117], 2086 [- 6.26310699, - 0.00150649, 0.00092274, 7.26160050, 0.99539091, 0.99757078, 0.49261231], 2087 [- 6.26313741, - 0.00150576, 0.00092230, 7.26163165, 0.99539314, 0.99757194, 0.49261347], 2088 [- 6.26316772, - 0.00150504, 0.00092186, 7.26166269, 0.99539536, 0.99757310, 0.49261461], 2089 [- 6.26319793, - 0.00150431, 0.00092142, 7.26169361, 0.99539759, 0.99757426, 0.49261575], 2090 [- 6.26322802, - 0.00150359, 0.00092098, 7.26172443, 0.99539981, 0.99757542, 0.49261688], 2091 [- 6.26325801, - 0.00150287, 0.00092055, 7.26175513, 0.99540204, 0.99757658, 0.49261801], 2092 [- 6.26328788, - 0.00150215, 0.00092011, 7.26178573, 0.99540426, 0.99757774, 0.49261913], 2093 [- 6.26331765, - 0.00150143, 0.00091967, 7.26181623, 0.99540647, 0.99757890, 0.49262025], 2094 [- 6.26334732, - 0.00150071, 0.00091924, 7.26184661, 0.99540869, 0.99758006, 0.49262138], 2095 [- 6.26337687, - 0.00149999, 0.00091880, 7.26187688, 0.99541090, 0.99758121, 0.49262250], 2096 [- 6.26340633, - 0.00149927, 0.00091836, 7.26190705, 0.99541311, 0.99758236, 0.49262361], 2097 [- 6.26343567, - 0.00149855, 0.00091793, 7.26193712, 0.99541532, 0.99758352, 0.49262472], 2098 [- 6.26346491, - 0.00149784, 0.00091749, 7.26196707, 0.99541753, 0.99758467, 0.49262583], 2099 [- 6.26349404, - 0.00149712, 0.00091706, 7.26199692, 0.99541974, 0.99758582, 0.49262693], 2100 [- 6.26352307, - 0.00149640, 0.00091662, 7.26202667, 0.99542194, 0.99758697, 0.49262803], 2101 [- 6.26355200, - 0.00149569, 0.00091619, 7.26205631, 0.99542414, 0.99758812, 0.49262913], 2102 [- 6.26358082, - 0.00149498, 0.00091576, 7.26208585, 0.99542634, 0.99758927, 0.49263021], 2103 [- 6.26360954, - 0.00149426, 0.00091532, 7.26211528, 0.99542854, 0.99759042, 0.49263131], 2104 [- 6.26363815, - 0.00149355, 0.00091489, 7.26214460, 0.99543073, 0.99759156, 0.49263239], 2105 [- 6.26366666, - 0.00149284, 0.00091446, 7.26217383, 0.99543292, 0.99759271, 0.49263348], 2106 [- 6.26369507, - 0.00149212, 0.00091403, 7.26220295, 0.99543511, 0.99759385, 0.49263456], 2107 [- 6.26372338, - 0.00149141, 0.00091359, 7.26223197, 0.99543730, 0.99759499, 0.49263563], 2108 [- 6.26375159, - 0.00149070, 0.00091316, 7.26226088, 0.99543949, 0.99759613, 0.49263671], 2109 [- 6.26377969, - 0.00148999, 0.00091273, 7.26228970, 0.99544167, 0.99759728, 0.49263778], 2110 [- 6.26380769, - 0.00148928, 0.00091230, 7.26231841, 0.99544386, 0.99759841, 0.49263884], 2111 [- 6.26383560, - 0.00148857, 0.00091187, 7.26234702, 0.99544604, 0.99759955, 0.49263991], 2112 [- 6.26386340, - 0.00148787, 0.00091144, 7.26237553, 0.99544821, 0.99760069, 0.49264097], 2113 [- 6.26389110, - 0.00148716, 0.00091101, 7.26240394, 0.99545039, 0.99760183, 0.49264203], 2114 [- 6.26391870, - 0.00148645, 0.00091058, 7.26243225, 0.99545257, 0.99760296, 0.49264308], 2115 [- 6.26394621, - 0.00148575, 0.00091016, 7.26246046, 0.99545474, 0.99760410, 0.49264413], 2116 [- 6.26397361, - 0.00148504, 0.00090973, 7.26248857, 0.99545691, 0.99760523, 0.49264518], 2117 [- 6.26400092, - 0.00148434, 0.00090930, 7.26251658, 0.99545908, 0.99760636, 0.49264622], 2118 [- 6.26402813, - 0.00148363, 0.00090887, 7.26254449, 0.99546124, 0.99760750, 0.49264726], 2119 [- 6.26405524, - 0.00148293, 0.00090844, 7.26257231, 0.99546341, 0.99760863, 0.49264830], 2120 [- 6.26408225, - 0.00148223, 0.00090802, 7.26260002, 0.99546557, 0.99760976, 0.49264934], 2121 [- 6.26410916, - 0.00148152, 0.00090759, 7.26262764, 0.99546773, 0.99761088, 0.49265036], 2122 [- 6.26413598, - 0.00148082, 0.00090717, 7.26265516, 0.99546989, 0.99761201, 0.49265140], 2123 [- 6.26416271, - 0.00148012, 0.00090674, 7.26268258, 0.99547204, 0.99761314, 0.49265242], 2124 [- 6.26418933, - 0.00147942, 0.00090631, 7.26270991, 0.99547420, 0.99761426, 0.49265345], 2125 [- 6.26421586, - 0.00147872, 0.00090589, 7.26273714, 0.99547635, 0.99761539, 0.49265447], 2126 [- 6.26424230, - 0.00147802, 0.00090547, 7.26276428, 0.99547850, 0.99761651, 0.49265547], 2127 [- 6.26426864, - 0.00147733, 0.00090504, 7.26279132, 0.99548065, 0.99761763, 0.49265649], 2128 [- 6.26429489, - 0.00147663, 0.00090462, 7.26281826, 0.99548279, 0.99761875, 0.49265751], 2129 [- 6.26432104, - 0.00147593, 0.00090419, 7.26284511, 0.99548494, 0.99761987, 0.49265851], 2130 [- 6.26434710, - 0.00147523, 0.00090377, 7.26287186, 0.99548708, 0.99762099, 0.49265951], 2131 [- 6.26437306, - 0.00147454, 0.00090335, 7.26289852, 0.99548922, 0.99762211, 0.49266051], 2132 [- 6.26439893, - 0.00147384, 0.00090293, 7.26292509, 0.99549136, 0.99762323, 0.49266151], 2133 [- 6.26442471, - 0.00147315, 0.00090250, 7.26295156, 0.99549349, 0.99762435, 0.49266249], 2134 [- 6.26445040, - 0.00147246, 0.00090208, 7.26297794, 0.99549563, 0.99762546, 0.49266350], 2135 [- 6.26447599, - 0.00147176, 0.00090166, 7.26300423, 0.99549776, 0.99762658, 0.49266448], 2136 [- 6.26450150, - 0.00147107, 0.00090124, 7.26303043, 0.99549989, 0.99762769, 0.49266547], 2137 [- 6.26452691, - 0.00147038, 0.00090082, 7.26305653, 0.99550202, 0.99762880, 0.49266646], 2138 [- 6.26455222, - 0.00146969, 0.00090040, 7.26308254, 0.99550415, 0.99762991, 0.49266744], 2139 [- 6.26457745, - 0.00146900, 0.00089998, 7.26310846, 0.99550627, 0.99763102, 0.49266841], 2140 [- 6.26460259, - 0.00146831, 0.00089956, 7.26313428, 0.99550839, 0.99763213, 0.49266939], 2141 [- 6.26462764, - 0.00146762, 0.00089914, 7.26316002, 0.99551051, 0.99763324, 0.49267035], 2142 [- 6.26465259, - 0.00146693, 0.00089872, 7.26318567, 0.99551263, 0.99763435, 0.49267132], 2143 [- 6.26467746, - 0.00146624, 0.00089831, 7.26321122, 0.99551475, 0.99763545, 0.49267230], 2144 [- 6.26470224, - 0.00146555, 0.00089789, 7.26323669, 0.99551686, 0.99763656, 0.49267325], 2145 [- 6.26472693, - 0.00146486, 0.00089747, 7.26326207, 0.99551898, 0.99763766, 0.49267421], 2146 [- 6.26475153, - 0.00146418, 0.00089705, 7.26328735, 0.99552109, 0.99763877, 0.49267517], 2147 [- 6.26477604, - 0.00146349, 0.00089664, 7.26331255, 0.99552319, 0.99763987, 0.49267611], 2148 [- 6.26480047, - 0.00146281, 0.00089622, 7.26333766, 0.99552530, 0.99764097, 0.49267707], 2149 [- 6.26482481, - 0.00146212, 0.00089580, 7.26336268, 0.99552741, 0.99764207, 0.49267802], 2150 [- 6.26484906, - 0.00146144, 0.00089539, 7.26338762, 0.99552951, 0.99764317, 0.49267897], 2151 [- 6.26487322, - 0.00146076, 0.00089497, 7.26341246, 0.99553161, 0.99764427, 0.49267991], 2152 [- 6.26489730, - 0.00146007, 0.00089456, 7.26343722, 0.99553371, 0.99764537, 0.49268085], 2153 [- 6.26492129, - 0.00145939, 0.00089414, 7.26346189, 0.99553581, 0.99764646, 0.49268179], 2154 [- 6.26494519, - 0.00145871, 0.00089373, 7.26348648, 0.99553790, 0.99764756, 0.49268272], 2155 [- 6.26496901, - 0.00145803, 0.00089332, 7.26351098, 0.99553999, 0.99764865, 0.49268365], 2156 [- 6.26499274, - 0.00145735, 0.00089290, 7.26353539, 0.99554209, 0.99764975, 0.49268458], 2157 [- 6.26501639, - 0.00145667, 0.00089249, 7.26355972, 0.99554417, 0.99765084, 0.49268549], 2158 [- 6.26503995, - 0.00145599, 0.00089208, 7.26358396, 0.99554626, 0.99765193, 0.49268643], 2159 [- 6.26506343, - 0.00145531, 0.00089166, 7.26360811, 0.99554835, 0.99765302, 0.49268735], 2160 [- 6.26508682, - 0.00145463, 0.00089125, 7.26363219, 0.99555043, 0.99765411, 0.49268826], 2161 [- 6.26511013, - 0.00145396, 0.00089084, 7.26365617, 0.99555251, 0.99765520, 0.49268918], 2162 [- 6.26513336, - 0.00145328, 0.00089043, 7.26368008, 0.99555459, 0.99765629, 0.49269008], 2163 [- 6.26515650, - 0.00145261, 0.00089002, 7.26370389, 0.99555667, 0.99765738, 0.49269099], 2164 [- 6.26517956, - 0.00145193, 0.00088961, 7.26372763, 0.99555875, 0.99765846, 0.49269190], 2165 [- 6.26520254, - 0.00145126, 0.00088920, 7.26375128, 0.99556082, 0.99765955, 0.49269281], 2166 [- 6.26522543, - 0.00145058, 0.00088879, 7.26377485, 0.99556289, 0.99766063, 0.49269370], 2167 [- 6.26524824, - 0.00144991, 0.00088838, 7.26379834, 0.99556496, 0.99766171, 0.49269460], 2168 [- 6.26527098, - 0.00144924, 0.00088797, 7.26382174, 0.99556703, 0.99766280, 0.49269550], 2169 [- 6.26529363, - 0.00144856, 0.00088756, 7.26384506, 0.99556910, 0.99766388, 0.49269640], 2170 [- 6.26531619, - 0.00144789, 0.00088715, 7.26386830, 0.99557116, 0.99766496, 0.49269728], 2171 [- 6.26533868, - 0.00144722, 0.00088674, 7.26389146, 0.99557323, 0.99766604, 0.49269817], 2172 [- 6.26536109, - 0.00144655, 0.00088634, 7.26391454, 0.99557529, 0.99766711, 0.49269905], 2173 [- 6.26538341, - 0.00144588, 0.00088593, 7.26393753, 0.99557735, 0.99766819, 0.49269994], 2174 [- 6.26540566, - 0.00144521, 0.00088552, 7.26396045, 0.99557940, 0.99766927, 0.49270083], 2175 [- 6.26542783, - 0.00144454, 0.00088511, 7.26398329, 0.99558146, 0.99767034, 0.49270168], 2176 [- 6.26544992, - 0.00144387, 0.00088471, 7.26400604, 0.99558351, 0.99767142, 0.49270256], 2177 [- 6.26547192, - 0.00144321, 0.00088430, 7.26402872, 0.99558556, 0.99767249, 0.49270344], 2178 [- 6.26549385, - 0.00144254, 0.00088390, 7.26405131, 0.99558761, 0.99767356, 0.49270431], 2179 [- 6.26551570, - 0.00144187, 0.00088349, 7.26407383, 0.99558966, 0.99767463, 0.49270518], 2180 [- 6.26553748, - 0.00144121, 0.00088309, 7.26409627, 0.99559171, 0.99767571, 0.49270604], 2181 [- 6.26555917, - 0.00144054, 0.00088268, 7.26411863, 0.99559375, 0.99767678, 0.49270690], 2182 [- 6.26558079, - 0.00143988, 0.00088228, 7.26414091, 0.99559579, 0.99767784, 0.49270776], 2183 [- 6.26560233, - 0.00143922, 0.00088187, 7.26416311, 0.99559783, 0.99767891, 0.49270862], 2184 [- 6.26562379, - 0.00143855, 0.00088147, 7.26418524, 0.99559987, 0.99767998, 0.49270947], 2185 [- 6.26564518, - 0.00143789, 0.00088107, 7.26420729, 0.99560191, 0.99768104, 0.49271032], 2186 [- 6.26566648, - 0.00143723, 0.00088066, 7.26422926, 0.99560394, 0.99768211, 0.49271118], 2187 [- 6.26568772, - 0.00143657, 0.00088026, 7.26425115, 0.99560598, 0.99768317, 0.49271202], 2188 [- 6.26570887, - 0.00143590, 0.00087986, 7.26427297, 0.99560801, 0.99768424, 0.49271286], 2189 [- 6.26572995, - 0.00143524, 0.00087946, 7.26429471, 0.99561004, 0.99768530, 0.49271371], 2190 [- 6.26575096, - 0.00143458, 0.00087906, 7.26431637, 0.99561206, 0.99768636, 0.49271455], 2191 [- 6.26577189, - 0.00143393, 0.00087865, 7.26433796, 0.99561409, 0.99768742, 0.49271537], 2192 [- 6.26579274, - 0.00143327, 0.00087825, 7.26435948, 0.99561611, 0.99768848, 0.49271621], 2193 [- 6.26581352, - 0.00143261, 0.00087785, 7.26438092, 0.99561813, 0.99768954, 0.49271704], 2194 [- 6.26583423, - 0.00143195, 0.00087745, 7.26440228, 0.99562015, 0.99769059, 0.49271787], 2195 [- 6.26585486, - 0.00143130, 0.00087705, 7.26442357, 0.99562217, 0.99769165, 0.49271871], 2196 [- 6.26587542, - 0.00143064, 0.00087665, 7.26444478, 0.99562419, 0.99769271, 0.49271954], 2197 [- 6.26589591, - 0.00142998, 0.00087626, 7.26446592, 0.99562620, 0.99769376, 0.49272035], 2198 [- 6.26591632, - 0.00142933, 0.00087586, 7.26448699, 0.99562822, 0.99769482, 0.49272117], 2199 [- 6.26593666, - 0.00142867, 0.00087546, 7.26450798, 0.99563023, 0.99769587, 0.49272198], 2200 [- 6.26595692, - 0.00142802, 0.00087506, 7.26452890, 0.99563224, 0.99769692, 0.49272279], 2201 [- 6.26597711, - 0.00142737, 0.00087466, 7.26454975, 0.99563424, 0.99769797, 0.49272362], 2202 [- 6.26599724, - 0.00142671, 0.00087426, 7.26457052, 0.99563625, 0.99769902, 0.49272441], 2203 [- 6.26601728, - 0.00142606, 0.00087387, 7.26459122, 0.99563825, 0.99770007, 0.49272522], 2204 [- 6.26603726, - 0.00142541, 0.00087347, 7.26461185, 0.99564025, 0.99770112, 0.49272604], 2205 [- 6.26605717, - 0.00142476, 0.00087307, 7.26463241, 0.99564225, 0.99770217, 0.49272683], 2206 [- 6.26607700, - 0.00142411, 0.00087268, 7.26465289, 0.99564425, 0.99770321, 0.49272764], 2207 [- 6.26609676, - 0.00142346, 0.00087228, 7.26467331, 0.99564625, 0.99770426, 0.49272843], 2208 [- 6.26611646, - 0.00142281, 0.00087189, 7.26469365, 0.99564824, 0.99770530, 0.49272921], 2209 [- 6.26613608, - 0.00142216, 0.00087149, 7.26471392, 0.99565024, 0.99770635, 0.49273003], 2210 [- 6.26615563, - 0.00142151, 0.00087110, 7.26473412, 0.99565223, 0.99770739, 0.49273081], 2211 [- 6.26617512, - 0.00142087, 0.00087070, 7.26475425, 0.99565422, 0.99770843, 0.49273160], 2212 [- 6.26619453, - 0.00142022, 0.00087031, 7.26477431, 0.99565620, 0.99770947, 0.49273238], 2213 [- 6.26621387, - 0.00141957, 0.00086992, 7.26479430, 0.99565819, 0.99771051, 0.49273317], 2214 [- 6.26623315, - 0.00141893, 0.00086952, 7.26481422, 0.99566017, 0.99771155, 0.49273396], 2215 [- 6.26625235, - 0.00141828, 0.00086913, 7.26483407, 0.99566216, 0.99771259, 0.49273473], 2216 [- 6.26627149, - 0.00141764, 0.00086874, 7.26485385, 0.99566414, 0.99771362, 0.49273551], 2217 [- 6.26629056, - 0.00141699, 0.00086835, 7.26487356, 0.99566612, 0.99771466, 0.49273628], 2218 [- 6.26630956, - 0.00141635, 0.00086795, 7.26489321, 0.99566809, 0.99771570, 0.49273706], 2219 [- 6.26632849, - 0.00141571, 0.00086756, 7.26491278, 0.99567007, 0.99771673, 0.49273783], 2220 [- 6.26634735, - 0.00141506, 0.00086717, 7.26493229, 0.99567204, 0.99771776, 0.49273859], 2221 [- 6.26636615, - 0.00141442, 0.00086678, 7.26495173, 0.99567401, 0.99771880, 0.49273935], 2222 [- 6.26638488, - 0.00141378, 0.00086639, 7.26497110, 0.99567598, 0.99771983, 0.49274013], 2223 [- 6.26640355, - 0.00141314, 0.00086600, 7.26499041, 0.99567795, 0.99772086, 0.49274089], 2224 [- 6.26642214, - 0.00141250, 0.00086561, 7.26500964, 0.99567992, 0.99772189, 0.49274164], 2225 [- 6.26644067, - 0.00141186, 0.00086522, 7.26502881, 0.99568188, 0.99772292, 0.49274241], 2226 [- 6.26645914, - 0.00141122, 0.00086483, 7.26504792, 0.99568384, 0.99772395, 0.49274316], 2227 [- 6.26647754, - 0.00141058, 0.00086444, 7.26506695, 0.99568580, 0.99772497, 0.49274392], 2228 [- 6.26649587, - 0.00140995, 0.00086405, 7.26508592, 0.99568776, 0.99772600, 0.49274466], 2229 [- 6.26651414, - 0.00140931, 0.00086366, 7.26510483, 0.99568972, 0.99772703, 0.49274542], 2230 [- 6.26653234, - 0.00140867, 0.00086328, 7.26512367, 0.99569168, 0.99772805, 0.49274618], 2231 [- 6.26655048, - 0.00140804, 0.00086289, 7.26514244, 0.99569363, 0.99772908, 0.49274690], 2232 [- 6.26656855, - 0.00140740, 0.00086250, 7.26516115, 0.99569558, 0.99773010, 0.49274765], 2233 [- 6.26658656, - 0.00140677, 0.00086211, 7.26517979, 0.99569753, 0.99773112, 0.49274839], 2234 [- 6.26660450, - 0.00140613, 0.00086173, 7.26519837, 0.99569948, 0.99773214, 0.49274912], 2235 [- 6.26662238, - 0.00140550, 0.00086134, 7.26521688, 0.99570143, 0.99773316, 0.49274986], 2236 [- 6.26664020, - 0.00140486, 0.00086096, 7.26523533, 0.99570337, 0.99773418, 0.49275059], 2237 [- 6.26665795, - 0.00140423, 0.00086057, 7.26525372, 0.99570532, 0.99773520, 0.49275132], 2238 [- 6.26667564, - 0.00140360, 0.00086018, 7.26527204, 0.99570726, 0.99773622, 0.49275206], 2239 [- 6.26669326, - 0.00140297, 0.00085980, 7.26529030, 0.99570920, 0.99773723, 0.49275276], 2240 [- 6.26671083, - 0.00140234, 0.00085942, 7.26530849, 0.99571114, 0.99773825, 0.49275350], 2241 [- 6.26672833, - 0.00140171, 0.00085903, 7.26532662, 0.99571307, 0.99773926, 0.49275423], 2242 [- 6.26674577, - 0.00140108, 0.00085865, 7.26534469, 0.99571501, 0.99774028, 0.49275495], 2243 [- 6.26676314, - 0.00140045, 0.00085826, 7.26536270, 0.99571694, 0.99774129, 0.49275567], 2244 [- 6.26678046, - 0.00139982, 0.00085788, 7.26538064, 0.99571887, 0.99774230, 0.49275639], 2245 [- 6.26679771, - 0.00139919, 0.00085750, 7.26539852, 0.99572080, 0.99774331, 0.49275711], 2246 [- 6.26681490, - 0.00139856, 0.00085711, 7.26541634, 0.99572273, 0.99774433, 0.49275782], 2247 [- 6.26683203, - 0.00139793, 0.00085673, 7.26543410, 0.99572466, 0.99774533, 0.49275852], 2248 [- 6.26684910, - 0.00139731, 0.00085635, 7.26545179, 0.99572658, 0.99774634, 0.49275924], 2249 [- 6.26686611, - 0.00139668, 0.00085597, 7.26546943, 0.99572851, 0.99774735, 0.49275995], 2250 [- 6.26688306, - 0.00139605, 0.00085559, 7.26548700, 0.99573043, 0.99774836, 0.49276065], 2251 [- 6.26689994, - 0.00139543, 0.00085521, 7.26550451, 0.99573235, 0.99774936, 0.49276134], 2252 [- 6.26691677, - 0.00139481, 0.00085482, 7.26552196, 0.99573426, 0.99775037, 0.49276204], 2253 [- 6.26693354, - 0.00139418, 0.00085444, 7.26553936, 0.99573618, 0.99775137, 0.49276274], 2254 [- 6.26695024, - 0.00139356, 0.00085406, 7.26555669, 0.99573809, 0.99775238, 0.49276344], 2255 [- 6.26696689, - 0.00139293, 0.00085368, 7.26557396, 0.99574001, 0.99775338, 0.49276413], 2256 [- 6.26698348, - 0.00139231, 0.00085331, 7.26559117, 0.99574192, 0.99775438, 0.49276484], 2257 [- 6.26700001, - 0.00139169, 0.00085293, 7.26560832, 0.99574383, 0.99775538, 0.49276553], 2258 [- 6.26701648, - 0.00139107, 0.00085255, 7.26562541, 0.99574574, 0.99775638, 0.49276621], 2259 [- 6.26703289, - 0.00139045, 0.00085217, 7.26564245, 0.99574764, 0.99775738, 0.49276691], 2260 [- 6.26704925, - 0.00138983, 0.00085179, 7.26565942, 0.99574955, 0.99775838, 0.49276759], 2261 [- 6.26706554, - 0.00138921, 0.00085141, 7.26567633, 0.99575145, 0.99775938, 0.49276826], 2262 [- 6.26708178, - 0.00138859, 0.00085104, 7.26569319, 0.99575335, 0.99776038, 0.49276895], 2263 [- 6.26709796, - 0.00138797, 0.00085066, 7.26570999, 0.99575525, 0.99776137, 0.49276963], 2264 [- 6.26711408, - 0.00138735, 0.00085028, 7.26572673, 0.99575715, 0.99776237, 0.49277030], 2265 [- 6.26713015, - 0.00138674, 0.00084990, 7.26574341, 0.99575904, 0.99776336, 0.49277097], 2266 [- 6.26714616, - 0.00138612, 0.00084953, 7.26576004, 0.99576094, 0.99776435, 0.49277165], 2267 [- 6.26716211, - 0.00138550, 0.00084915, 7.26577661, 0.99576283, 0.99776535, 0.49277232], 2268 [- 6.26717800, - 0.00138489, 0.00084878, 7.26579312, 0.99576472, 0.99776634, 0.49277298], 2269 [- 6.26719384, - 0.00138427, 0.00084840, 7.26580957, 0.99576661, 0.99776733, 0.49277366], 2270 [- 6.26720962, - 0.00138366, 0.00084803, 7.26582597, 0.99576850, 0.99776832, 0.49277432], 2271 [- 6.26722535, - 0.00138304, 0.00084765, 7.26584231, 0.99577038, 0.99776931, 0.49277499], 2272 [- 6.26724102, - 0.00138243, 0.00084728, 7.26585859, 0.99577227, 0.99777029, 0.49277565], 2273 [- 6.26725663, - 0.00138181, 0.00084690, 7.26587482, 0.99577415, 0.99777128, 0.49277630], 2274 [- 6.26727219, - 0.00138120, 0.00084653, 7.26589099, 0.99577603, 0.99777227, 0.49277698], 2275 [- 6.26728769, - 0.00138059, 0.00084616, 7.26590710, 0.99577791, 0.99777325, 0.49277763], 2276 [- 6.26730314, - 0.00137998, 0.00084578, 7.26592316, 0.99577979, 0.99777424, 0.49277828], 2277 [- 6.26731854, - 0.00137937, 0.00084541, 7.26593917, 0.99578166, 0.99777522, 0.49277893], 2278 [- 6.26733388, - 0.00137876, 0.00084504, 7.26595512, 0.99578354, 0.99777621, 0.49277959], 2279 [- 6.26734916, - 0.00137815, 0.00084467, 7.26597101, 0.99578541, 0.99777719, 0.49278024], 2280 [- 6.26736439, - 0.00137754, 0.00084429, 7.26598685, 0.99578728, 0.99777817, 0.49278088], 2281 [- 6.26737957, - 0.00137693, 0.00084392, 7.26600264, 0.99578915, 0.99777915, 0.49278153], 2282 [- 6.26739469, - 0.00137632, 0.00084355, 7.26601837, 0.99579102, 0.99778013, 0.49278219], 2283 [- 6.26740976, - 0.00137571, 0.00084318, 7.26603405, 0.99579289, 0.99778111, 0.49278281], 2284 [- 6.26742477, - 0.00137510, 0.00084281, 7.26604967, 0.99579475, 0.99778209, 0.49278347], 2285 [- 6.26743974, - 0.00137450, 0.00084244, 7.26606524, 0.99579661, 0.99778306, 0.49278410], 2286 [- 6.26745464, - 0.00137389, 0.00084207, 7.26608075, 0.99579847, 0.99778404, 0.49278472], 2287 [- 6.26746950, - 0.00137328, 0.00084170, 7.26609622, 0.99580033, 0.99778502, 0.49278536], 2288 [- 6.26748430, - 0.00137268, 0.00084133, 7.26611162, 0.99580219, 0.99778599, 0.49278600], 2289 [- 6.26749906, - 0.00137207, 0.00084096, 7.26612698, 0.99580405, 0.99778696, 0.49278663], 2290 [- 6.26751375, - 0.00137147, 0.00084059, 7.26614228, 0.99580590, 0.99778794, 0.49278724], 2291 [- 6.26752840, - 0.00137087, 0.00084022, 7.26615753, 0.99580776, 0.99778891, 0.49278789], 2292 [- 6.26754300, - 0.00137026, 0.00083986, 7.26617273, 0.99580961, 0.99778988, 0.49278852], 2293 [- 6.26755754, - 0.00136966, 0.00083949, 7.26618788, 0.99581146, 0.99779085, 0.49278914], 2294 [- 6.26757203, - 0.00136906, 0.00083912, 7.26620297, 0.99581331, 0.99779182, 0.49278975], 2295 [- 6.26758647, - 0.00136846, 0.00083875, 7.26621801, 0.99581515, 0.99779279, 0.49279037], 2296 [- 6.26760086, - 0.00136786, 0.00083839, 7.26623300, 0.99581700, 0.99779376, 0.49279099], 2297 [- 6.26761520, - 0.00136725, 0.00083802, 7.26624794, 0.99581884, 0.99779472, 0.49279161], 2298 [- 6.26762949, - 0.00136665, 0.00083765, 7.26626283, 0.99582068, 0.99779569, 0.49279223], 2299 [- 6.26764372, - 0.00136605, 0.00083729, 7.26627767, 0.99582252, 0.99779666, 0.49279284], 2300 [- 6.26765791, - 0.00136546, 0.00083692, 7.26629245, 0.99582436, 0.99779762, 0.49279345], 2301 [- 6.26767205, - 0.00136486, 0.00083656, 7.26630719, 0.99582620, 0.99779859, 0.49279407], 2302 [- 6.26768613, - 0.00136426, 0.00083619, 7.26632187, 0.99582804, 0.99779955, 0.49279468], 2303 [- 6.26770017, - 0.00136366, 0.00083583, 7.26633651, 0.99582987, 0.99780051, 0.49279528], 2304 [- 6.26771416, - 0.00136306, 0.00083546, 7.26635109, 0.99583170, 0.99780147, 0.49279588], 2305 [- 6.26772809, - 0.00136247, 0.00083510, 7.26636562, 0.99583353, 0.99780243, 0.49279649], 2306 [- 6.26774198, - 0.00136187, 0.00083474, 7.26638011, 0.99583536, 0.99780339, 0.49279710], 2307 [- 6.26775582, - 0.00136128, 0.00083437, 7.26639454, 0.99583719, 0.99780435, 0.49279770], 2308 [- 6.26776961, - 0.00136068, 0.00083401, 7.26640893, 0.99583902, 0.99780531, 0.49279829], 2309 [- 6.26778335, - 0.00136009, 0.00083365, 7.26642326, 0.99584084, 0.99780627, 0.49279888], 2310 [- 6.26779704, - 0.00135949, 0.00083328, 7.26643755, 0.99584266, 0.99780722, 0.49279946], 2311 [- 6.26781069, - 0.00135890, 0.00083292, 7.26645179, 0.99584449, 0.99780818, 0.49280008], 2312 [- 6.26782428, - 0.00135831, 0.00083256, 7.26646598, 0.99584631, 0.99780913, 0.49280067], 2313 [- 6.26783783, - 0.00135771, 0.00083220, 7.26648012, 0.99584812, 0.99781009, 0.49280125], 2314 [- 6.26785133, - 0.00135712, 0.00083184, 7.26649421, 0.99584994, 0.99781104, 0.49280185], 2315 [- 6.26786479, - 0.00135653, 0.00083148, 7.26650826, 0.99585175, 0.99781199, 0.49280244], 2316 [- 6.26787819, - 0.00135594, 0.00083111, 7.26652225, 0.99585357, 0.99781295, 0.49280301], 2317 [- 6.26789155, - 0.00135535, 0.00083075, 7.26653620, 0.99585538, 0.99781390, 0.49280360], 2318 [- 6.26790486, - 0.00135476, 0.00083039, 7.26655010, 0.99585719, 0.99781485, 0.49280419], 2319 [- 6.26791812, - 0.00135417, 0.00083003, 7.26656395, 0.99585900, 0.99781580, 0.49280476], 2320 [- 6.26793134, - 0.00135358, 0.00082967, 7.26657776, 0.99586081, 0.99781675, 0.49280534], 2321 [- 6.26794451, - 0.00135299, 0.00082931, 7.26659152, 0.99586261, 0.99781769, 0.49280594], 2322 [- 6.26795764, - 0.00135240, 0.00082896, 7.26660523, 0.99586442, 0.99781864, 0.49280650], 2323 [- 6.26797071, - 0.00135182, 0.00082860, 7.26661890, 0.99586622, 0.99781959, 0.49280708], 2324 [- 6.26798374, - 0.00135123, 0.00082824, 7.26663252, 0.99586802, 0.99782053, 0.49280764], 2325 [- 6.26799673, - 0.00135064, 0.00082788, 7.26664609, 0.99586982, 0.99782148, 0.49280822], 2326 [- 6.26800967, - 0.00135006, 0.00082752, 7.26665961, 0.99587162, 0.99782242, 0.49280878], 2327 [- 6.26802256, - 0.00134947, 0.00082717, 7.26667309, 0.99587341, 0.99782336, 0.49280935], 2328 [- 6.26803541, - 0.00134889, 0.00082681, 7.26668653, 0.99587521, 0.99782431, 0.49280992], 2329 [- 6.26804822, - 0.00134830, 0.00082645, 7.26669991, 0.99587700, 0.99782525, 0.49281048], 2330 [- 6.26806098, - 0.00134772, 0.00082609, 7.26671326, 0.99587879, 0.99782619, 0.49281107], 2331 [- 6.26807369, - 0.00134713, 0.00082574, 7.26672655, 0.99588058, 0.99782713, 0.49281162], 2332 [- 6.26808636, - 0.00134655, 0.00082538, 7.26673981, 0.99588237, 0.99782807, 0.49281218], 2333 [- 6.26809898, - 0.00134597, 0.00082503, 7.26675301, 0.99588416, 0.99782900, 0.49281274], 2334 [- 6.26811156, - 0.00134539, 0.00082467, 7.26676617, 0.99588595, 0.99782994, 0.49281329], 2335 [- 6.26812410, - 0.00134481, 0.00082432, 7.26677929, 0.99588773, 0.99783088, 0.49281384], 2336 [- 6.26813659, - 0.00134422, 0.00082396, 7.26679236, 0.99588951, 0.99783181, 0.49281439], 2337 [- 6.26814904, - 0.00134364, 0.00082361, 7.26680539, 0.99589129, 0.99783275, 0.49281496], 2338 [- 6.26816144, - 0.00134306, 0.00082325, 7.26681838, 0.99589307, 0.99783368, 0.49281552], 2339 [- 6.26817380, - 0.00134248, 0.00082290, 7.26683132, 0.99589485, 0.99783462, 0.49281605], 2340 [- 6.26818612, - 0.00134191, 0.00082255, 7.26684421, 0.99589663, 0.99783555, 0.49281661], 2341 [- 6.26819839, - 0.00134133, 0.00082219, 7.26685706, 0.99589840, 0.99783648, 0.49281716], 2342 [- 6.26821062, - 0.00134075, 0.00082184, 7.26686987, 0.99590018, 0.99783741, 0.49281769], 2343 [- 6.26822281, - 0.00134017, 0.00082149, 7.26688264, 0.99590195, 0.99783834, 0.49281824], 2344 [- 6.26823495, - 0.00133959, 0.00082113, 7.26689536, 0.99590372, 0.99783927, 0.49281878], 2345 [- 6.26824705, - 0.00133902, 0.00082078, 7.26690804, 0.99590549, 0.99784020, 0.49281933], 2346 [- 6.26825911, - 0.00133844, 0.00082043, 7.26692067, 0.99590725, 0.99784113, 0.49281987], 2347 [- 6.26827113, - 0.00133787, 0.00082008, 7.26693326, 0.99590902, 0.99784206, 0.49282040], 2348 [- 6.26828310, - 0.00133729, 0.00081973, 7.26694581, 0.99591078, 0.99784298, 0.49282094], 2349 [- 6.26829504, - 0.00133672, 0.00081938, 7.26695832, 0.99591255, 0.99784391, 0.49282147], 2350 [- 6.26830693, - 0.00133614, 0.00081902, 7.26697079, 0.99591431, 0.99784483, 0.49282201], 2351 [- 6.26831878, - 0.00133557, 0.00081867, 7.26698321, 0.99591607, 0.99784576, 0.49282254], 2352 [- 6.26833058, - 0.00133499, 0.00081832, 7.26699559, 0.99591783, 0.99784668, 0.49282308], 2353 [- 6.26834235, - 0.00133442, 0.00081797, 7.26700793, 0.99591958, 0.99784760, 0.49282360], 2354 [- 6.26835407, - 0.00133385, 0.00081762, 7.26702023, 0.99592134, 0.99784853, 0.49282414], 2355 [- 6.26836576, - 0.00133328, 0.00081728, 7.26703248, 0.99592309, 0.99784945, 0.49282465], 2356 [- 6.26837740, - 0.00133271, 0.00081693, 7.26704469, 0.99592485, 0.99785037, 0.49282520], 2357 [- 6.26838900, - 0.00133214, 0.00081658, 7.26705687, 0.99592660, 0.99785129, 0.49282572], 2358 [- 6.26840056, - 0.00133157, 0.00081623, 7.26706900, 0.99592835, 0.99785221, 0.49282624], 2359 [- 6.26841209, - 0.00133100, 0.00081588, 7.26708109, 0.99593009, 0.99785312, 0.49282676], 2360 [- 6.26842357, - 0.00133043, 0.00081553, 7.26709314, 0.99593184, 0.99785404, 0.49282728], 2361 [- 6.26843501, - 0.00132986, 0.00081519, 7.26710515, 0.99593359, 0.99785496, 0.49282780], 2362 [- 6.26844641, - 0.00132929, 0.00081484, 7.26711712, 0.99593533, 0.99785587, 0.49282829], 2363 [- 6.26845777, - 0.00132872, 0.00081449, 7.26712905, 0.99593707, 0.99785679, 0.49282883], 2364 [- 6.26846909, - 0.00132815, 0.00081414, 7.26714093, 0.99593881, 0.99785770, 0.49282934], 2365 [- 6.26848037, - 0.00132759, 0.00081380, 7.26715278, 0.99594055, 0.99785862, 0.49282986], 2366 [- 6.26849161, - 0.00132702, 0.00081345, 7.26716459, 0.99594229, 0.99785953, 0.49283037], 2367 [- 6.26850281, - 0.00132645, 0.00081311, 7.26717636, 0.99594402, 0.99786044, 0.49283087], 2368 [- 6.26851397, - 0.00132589, 0.00081276, 7.26718809, 0.99594576, 0.99786135, 0.49283138], 2369 [- 6.26852510, - 0.00132532, 0.00081242, 7.26719977, 0.99594749, 0.99786226, 0.49283189], 2370 [- 6.26853618, - 0.00132476, 0.00081207, 7.26721142, 0.99594922, 0.99786317, 0.49283239], 2371 [- 6.26854723, - 0.00132419, 0.00081173, 7.26722303, 0.99595095, 0.99786408, 0.49283291], 2372 [- 6.26855824, - 0.00132363, 0.00081138, 7.26723461, 0.99595268, 0.99786499, 0.49283341], 2373 [- 6.26856921, - 0.00132307, 0.00081104, 7.26724614, 0.99595441, 0.99786590, 0.49283391], 2374 [- 6.26858014, - 0.00132251, 0.00081069, 7.26725763, 0.99595614, 0.99786680, 0.49283441], 2375 [- 6.26859103, - 0.00132194, 0.00081035, 7.26726909, 0.99595786, 0.99786771, 0.49283490], 2376 [- 6.26860188, - 0.00132138, 0.00081001, 7.26728050, 0.99595958, 0.99786861, 0.49283543], 2377 [- 6.26861270, - 0.00132082, 0.00080966, 7.26729188, 0.99596131, 0.99786952, 0.49283590], 2378 [- 6.26862348, - 0.00132026, 0.00080932, 7.26730322, 0.99596303, 0.99787042, 0.49283641], 2379 [- 6.26863422, - 0.00131970, 0.00080898, 7.26731452, 0.99596474, 0.99787132, 0.49283690], 2380 [- 6.26864493, - 0.00131914, 0.00080864, 7.26732579, 0.99596646, 0.99787223, 0.49283740], 2381 [- 6.26865559, - 0.00131858, 0.00080829, 7.26733701, 0.99596818, 0.99787313, 0.49283789], 2382 [- 6.26866622, - 0.00131802, 0.00080795, 7.26734820, 0.99596989, 0.99787403, 0.49283838], 2383 [- 6.26867681, - 0.00131746, 0.00080761, 7.26735935, 0.99597160, 0.99787493, 0.49283886], 2384 [- 6.26868737, - 0.00131690, 0.00080727, 7.26737047, 0.99597332, 0.99787583, 0.49283935], 2385 [- 6.26869789, - 0.00131635, 0.00080693, 7.26738154, 0.99597503, 0.99787673, 0.49283983], 2386 [- 6.26870837, - 0.00131579, 0.00080659, 7.26739258, 0.99597673, 0.99787762, 0.49284032], 2387 [- 6.26871882, - 0.00131523, 0.00080625, 7.26740358, 0.99597844, 0.99787852, 0.49284083], 2388 [- 6.26872923, - 0.00131468, 0.00080591, 7.26741455, 0.99598015, 0.99787942, 0.49284129], 2389 [- 6.26873960, - 0.00131412, 0.00080557, 7.26742548, 0.99598185, 0.99788031, 0.49284178], 2390 [- 6.26874993, - 0.00131357, 0.00080523, 7.26743637, 0.99598355, 0.99788121, 0.49284226], 2391 [- 6.26876024, - 0.00131301, 0.00080489, 7.26744723, 0.99598526, 0.99788210, 0.49284273], 2392 [- 6.26877050, - 0.00131246, 0.00080455, 7.26745804, 0.99598696, 0.99788299, 0.49284320], 2393 [- 6.26878073, - 0.00131190, 0.00080421, 7.26746883, 0.99598865, 0.99788389, 0.49284369], 2394 [- 6.26879092, - 0.00131135, 0.00080387, 7.26747958, 0.99599035, 0.99788478, 0.49284417], 2395 [- 6.26880108, - 0.00131080, 0.00080354, 7.26749029, 0.99599205, 0.99788567, 0.49284465], 2396 [- 6.26881120, - 0.00131024, 0.00080320, 7.26750096, 0.99599374, 0.99788656, 0.49284510], 2397 [- 6.26882129, - 0.00130969, 0.00080286, 7.26751160, 0.99599543, 0.99788745, 0.49284559], 2398 [- 6.26883135, - 0.00130914, 0.00080252, 7.26752221, 0.99599713, 0.99788834, 0.49284606], 2399 [- 6.26884136, - 0.00130859, 0.00080219, 7.26753278, 0.99599882, 0.99788923, 0.49284653], 2400 [- 6.26885135, - 0.00130804, 0.00080185, 7.26754331, 0.99600050, 0.99789011, 0.49284699], 2401 [- 6.26886129, - 0.00130749, 0.00080151, 7.26755381, 0.99600219, 0.99789100, 0.49284746], 2402 [- 6.26887121, - 0.00130694, 0.00080118, 7.26756427, 0.99600388, 0.99789189, 0.49284793], 2403 [- 6.26888109, - 0.00130639, 0.00080084, 7.26757470, 0.99600556, 0.99789277, 0.49284838], 2404 [- 6.26889093, - 0.00130584, 0.00080051, 7.26758509, 0.99600724, 0.99789365, 0.49284885], 2405 [- 6.26890074, - 0.00130529, 0.00080017, 7.26759545, 0.99600893, 0.99789454, 0.49284932], 2406 [- 6.26891052, - 0.00130474, 0.00079984, 7.26760578, 0.99601061, 0.99789542, 0.49284977], 2407 [- 6.26892026, - 0.00130420, 0.00079950, 7.26761607, 0.99601228, 0.99789630, 0.49285024], 2408 [- 6.26892997, - 0.00130365, 0.00079917, 7.26762633, 0.99601396, 0.99789719, 0.49285069], 2409 [- 6.26893965, - 0.00130310, 0.00079883, 7.26763655, 0.99601564, 0.99789807, 0.49285114], 2410 [- 6.26894929, - 0.00130256, 0.00079850, 7.26764674, 0.99601731, 0.99789895, 0.49285162], 2411 [- 6.26895890, - 0.00130201, 0.00079816, 7.26765689, 0.99601899, 0.99789983, 0.49285206], 2412 [- 6.26896848, - 0.00130146, 0.00079783, 7.26766701, 0.99602066, 0.99790070, 0.49285251], 2413 [- 6.26897802, - 0.00130092, 0.00079750, 7.26767710, 0.99602233, 0.99790158, 0.49285297], 2414 [- 6.26898753, - 0.00130038, 0.00079717, 7.26768715, 0.99602400, 0.99790246, 0.49285344], 2415 [- 6.26899700, - 0.00129983, 0.00079683, 7.26769717, 0.99602566, 0.99790334, 0.49285388], 2416 [- 6.26900645, - 0.00129929, 0.00079650, 7.26770716, 0.99602733, 0.99790421, 0.49285432], 2417 [- 6.26901586, - 0.00129875, 0.00079617, 7.26771711, 0.99602900, 0.99790509, 0.49285477], 2418 [- 6.26902524, - 0.00129820, 0.00079584, 7.26772703, 0.99603066, 0.99790596, 0.49285523], 2419 [- 6.26903458, - 0.00129766, 0.00079550, 7.26773692, 0.99603232, 0.99790683, 0.49285566], 2420 [- 6.26904390, - 0.00129712, 0.00079517, 7.26774678, 0.99603398, 0.99790771, 0.49285611], 2421 [- 6.26905318, - 0.00129658, 0.00079484, 7.26775660, 0.99603564, 0.99790858, 0.49285655], 2422 [- 6.26906243, - 0.00129604, 0.00079451, 7.26776639, 0.99603730, 0.99790945, 0.49285701], 2423 [- 6.26907164, - 0.00129550, 0.00079418, 7.26777615, 0.99603896, 0.99791032, 0.49285743], 2424 [- 6.26908083, - 0.00129496, 0.00079385, 7.26778587, 0.99604061, 0.99791119, 0.49285787], 2425 [- 6.26908998, - 0.00129442, 0.00079352, 7.26779557, 0.99604227, 0.99791206, 0.49285833], 2426 [- 6.26909911, - 0.00129388, 0.00079319, 7.26780523, 0.99604392, 0.99791293, 0.49285876], 2427 [- 6.26910820, - 0.00129334, 0.00079286, 7.26781486, 0.99604557, 0.99791380, 0.49285921], 2428 [- 6.26911726, - 0.00129280, 0.00079253, 7.26782446, 0.99604722, 0.99791467, 0.49285963], 2429 [- 6.26912629, - 0.00129226, 0.00079220, 7.26783402, 0.99604887, 0.99791553, 0.49286007], 2430 [- 6.26913528, - 0.00129173, 0.00079188, 7.26784356, 0.99605051, 0.99791640, 0.49286049], 2431 [- 6.26914425, - 0.00129119, 0.00079155, 7.26785306, 0.99605216, 0.99791726, 0.49286093], 2432 [- 6.26915318, - 0.00129065, 0.00079122, 7.26786253, 0.99605380, 0.99791813, 0.49286138], 2433 [- 6.26916209, - 0.00129012, 0.00079089, 7.26787197, 0.99605545, 0.99791899, 0.49286178], 2434 [- 6.26917096, - 0.00128958, 0.00079056, 7.26788138, 0.99605709, 0.99791985, 0.49286223], 2435 [- 6.26917981, - 0.00128905, 0.00079024, 7.26789076, 0.99605873, 0.99792072, 0.49286266], 2436 [- 6.26918862, - 0.00128851, 0.00078991, 7.26790011, 0.99606037, 0.99792158, 0.49286308], 2437 [- 6.26919740, - 0.00128798, 0.00078958, 7.26790942, 0.99606201, 0.99792244, 0.49286350], 2438 [- 6.26920615, - 0.00128744, 0.00078926, 7.26791871, 0.99606364, 0.99792330, 0.49286392], 2439 [- 6.26921488, - 0.00128691, 0.00078893, 7.26792797, 0.99606528, 0.99792416, 0.49286436], 2440 [- 6.26922357, - 0.00128638, 0.00078860, 7.26793719, 0.99606691, 0.99792502, 0.49286478], 2441 [- 6.26923223, - 0.00128585, 0.00078828, 7.26794639, 0.99606854, 0.99792588, 0.49286521], 2442 [- 6.26924086, - 0.00128531, 0.00078795, 7.26795555, 0.99607017, 0.99792673, 0.49286564], 2443 [- 6.26924947, - 0.00128478, 0.00078763, 7.26796468, 0.99607180, 0.99792759, 0.49286605], 2444 [- 6.26925804, - 0.00128425, 0.00078730, 7.26797379, 0.99607343, 0.99792845, 0.49286646], 2445 [- 6.26926658, - 0.00128372, 0.00078698, 7.26798286, 0.99607506, 0.99792930, 0.49286689], 2446 [- 6.26927510, - 0.00128319, 0.00078665, 7.26799191, 0.99607668, 0.99793016, 0.49286730], 2447 [- 6.26928358, - 0.00128266, 0.00078633, 7.26800092, 0.99607831, 0.99793101, 0.49286770], 2448 [- 6.26929204, - 0.00128213, 0.00078601, 7.26800991, 0.99607993, 0.99793186, 0.49286812], 2449 [- 6.26930047, - 0.00128160, 0.00078568, 7.26801887, 0.99608155, 0.99793272, 0.49286854], 2450 [- 6.26930887, - 0.00128107, 0.00078536, 7.26802779, 0.99608317, 0.99793357, 0.49286895], 2451 [- 6.26931724, - 0.00128054, 0.00078504, 7.26803669, 0.99608479, 0.99793442, 0.49286937], 2452 [- 6.26932558, - 0.00128002, 0.00078471, 7.26804556, 0.99608641, 0.99793527, 0.49286977], 2453 [- 6.26933389, - 0.00127949, 0.00078439, 7.26805440, 0.99608802, 0.99793612, 0.49287019], 2454 [- 6.26934217, - 0.00127896, 0.00078407, 7.26806321, 0.99608964, 0.99793697, 0.49287058], 2455 [- 6.26935043, - 0.00127844, 0.00078375, 7.26807199, 0.99609125, 0.99793782, 0.49287100], 2456 [- 6.26935866, - 0.00127791, 0.00078342, 7.26808075, 0.99609287, 0.99793867, 0.49287142], 2457 [- 6.26936686, - 0.00127738, 0.00078310, 7.26808947, 0.99609448, 0.99793951, 0.49287182], 2458 [- 6.26937503, - 0.00127686, 0.00078278, 7.26809817, 0.99609609, 0.99794036, 0.49287224], 2459 [- 6.26938317, - 0.00127634, 0.00078246, 7.26810683, 0.99609769, 0.99794120, 0.49287263], 2460 [- 6.26939129, - 0.00127581, 0.00078214, 7.26811547, 0.99609930, 0.99794205, 0.49287302], 2461 [- 6.26939937, - 0.00127529, 0.00078182, 7.26812409, 0.99610091, 0.99794289, 0.49287345], 2462 [- 6.26940743, - 0.00127476, 0.00078150, 7.26813267, 0.99610251, 0.99794374, 0.49287384], 2463 [- 6.26941547, - 0.00127424, 0.00078118, 7.26814123, 0.99610411, 0.99794458, 0.49287423], 2464 [- 6.26942347, - 0.00127372, 0.00078086, 7.26814975, 0.99610572, 0.99794542, 0.49287464], 2465 [- 6.26943145, - 0.00127320, 0.00078054, 7.26815825, 0.99610732, 0.99794626, 0.49287504], 2466 [- 6.26943940, - 0.00127267, 0.00078022, 7.26816673, 0.99610892, 0.99794711, 0.49287543], 2467 [- 6.26944732, - 0.00127215, 0.00077990, 7.26817517, 0.99611051, 0.99794795, 0.49287581], 2468 [- 6.26945522, - 0.00127163, 0.00077958, 7.26818359, 0.99611211, 0.99794879, 0.49287621], 2469 [- 6.26946309, - 0.00127111, 0.00077926, 7.26819198, 0.99611370, 0.99794962, 0.49287661], 2470 [- 6.26947093, - 0.00127059, 0.00077895, 7.26820034, 0.99611530, 0.99795046, 0.49287701], 2471 [- 6.26947875, - 0.00127007, 0.00077863, 7.26820868, 0.99611689, 0.99795130, 0.49287739], 2472 [- 6.26948654, - 0.00126955, 0.00077831, 7.26821698, 0.99611848, 0.99795214, 0.49287779], 2473 [- 6.26949430, - 0.00126903, 0.00077799, 7.26822527, 0.99612007, 0.99795297, 0.49287817], 2474 [- 6.26950204, - 0.00126852, 0.00077768, 7.26823352, 0.99612166, 0.99795381, 0.49287857], 2475 [- 6.26950975, - 0.00126800, 0.00077736, 7.26824175, 0.99612325, 0.99795464, 0.49287896], 2476 [- 6.26951743, - 0.00126748, 0.00077704, 7.26824995, 0.99612484, 0.99795548, 0.49287934], 2477 [- 6.26952509, - 0.00126696, 0.00077673, 7.26825813, 0.99612642, 0.99795631, 0.49287973], 2478 [- 6.26953272, - 0.00126645, 0.00077641, 7.26826627, 0.99612800, 0.99795714, 0.49288012], 2479 [- 6.26954033, - 0.00126593, 0.00077609, 7.26827440, 0.99612959, 0.99795798, 0.49288050], 2480 [- 6.26954791, - 0.00126541, 0.00077578, 7.26828249, 0.99613117, 0.99795881, 0.49288087], 2481 [- 6.26955546, - 0.00126490, 0.00077546, 7.26829056, 0.99613275, 0.99795964, 0.49288126], 2482 [- 6.26956299, - 0.00126438, 0.00077515, 7.26829860, 0.99613433, 0.99796047, 0.49288164], 2483 [- 6.26957049, - 0.00126387, 0.00077483, 7.26830662, 0.99613590, 0.99796130, 0.49288203], 2484 [- 6.26957797, - 0.00126335, 0.00077452, 7.26831461, 0.99613748, 0.99796213, 0.49288240], 2485 [- 6.26958542, - 0.00126284, 0.00077420, 7.26832258, 0.99613905, 0.99796296, 0.49288278], 2486 [- 6.26959285, - 0.00126233, 0.00077389, 7.26833052, 0.99614063, 0.99796378, 0.49288317], 2487 [- 6.26960025, - 0.00126181, 0.00077357, 7.26833844, 0.99614220, 0.99796461, 0.49288354], 2488 [- 6.26960763, - 0.00126130, 0.00077326, 7.26834632, 0.99614377, 0.99796544, 0.49288392], 2489 [- 6.26961498, - 0.00126079, 0.00077295, 7.26835419, 0.99614534, 0.99796626, 0.49288432], 2490 [- 6.26962230, - 0.00126028, 0.00077263, 7.26836203, 0.99614691, 0.99796709, 0.49288467], 2491 [- 6.26962961, - 0.00125977, 0.00077232, 7.26836984, 0.99614847, 0.99796791, 0.49288504], 2492 [- 6.26963688, - 0.00125926, 0.00077201, 7.26837763, 0.99615004, 0.99796874, 0.49288540], 2493 [- 6.26964414, - 0.00125874, 0.00077170, 7.26838539, 0.99615160, 0.99796956, 0.49288580], 2494 [- 6.26965137, - 0.00125823, 0.00077138, 7.26839313, 0.99615317, 0.99797038, 0.49288618], 2495 [- 6.26965857, - 0.00125772, 0.00077107, 7.26840084, 0.99615473, 0.99797120, 0.49288651], 2496 [- 6.26966575, - 0.00125722, 0.00077076, 7.26840853, 0.99615629, 0.99797202, 0.49288691], 2497 [- 6.26967290, - 0.00125671, 0.00077045, 7.26841620, 0.99615785, 0.99797284, 0.49288729], 2498 [- 6.26968003, - 0.00125620, 0.00077014, 7.26842384, 0.99615941, 0.99797366, 0.49288765], 2499 [- 6.26968714, - 0.00125569, 0.00076983, 7.26843145, 0.99616097, 0.99797448, 0.49288801], 2500 [- 6.26969422, - 0.00125518, 0.00076952, 7.26843904, 0.99616252, 0.99797530, 0.49288835], 2501 [- 6.26970128, - 0.00125468, 0.00076920, 7.26844661, 0.99616408, 0.99797612, 0.49288872], 2502 [- 6.26970832, - 0.00125417, 0.00076889, 7.26845415, 0.99616563, 0.99797694, 0.49288910], 2503 [- 6.26971533, - 0.00125366, 0.00076858, 7.26846167, 0.99616718, 0.99797775, 0.49288946], 2504 [- 6.26972232, - 0.00125316, 0.00076827, 7.26846916, 0.99616873, 0.99797857, 0.49288983], 2505 [- 6.26972928, - 0.00125265, 0.00076797, 7.26847663, 0.99617028, 0.99797938, 0.49289019], 2506 [- 6.26973622, - 0.00125214, 0.00076766, 7.26848408, 0.99617183, 0.99798020, 0.49289056], 2507 [- 6.26974314, - 0.00125164, 0.00076735, 7.26849150, 0.99617338, 0.99798101, 0.49289092], 2508 [- 6.26975003, - 0.00125114, 0.00076704, 7.26849890, 0.99617492, 0.99798183, 0.49289126], 2509 [- 6.26975691, - 0.00125063, 0.00076673, 7.26850627, 0.99617647, 0.99798264, 0.49289162], 2510 [- 6.26976375, - 0.00125013, 0.00076642, 7.26851363, 0.99617801, 0.99798345, 0.49289199], 2511 [- 6.26977058, - 0.00124962, 0.00076611, 7.26852095, 0.99617955, 0.99798426, 0.49289234], 2512 [- 6.26977738, - 0.00124912, 0.00076581, 7.26852826, 0.99618109, 0.99798507, 0.49289269], 2513 [- 6.26978416, - 0.00124862, 0.00076550, 7.26853554, 0.99618263, 0.99798588, 0.49289304], 2514 [- 6.26979092, - 0.00124812, 0.00076519, 7.26854280, 0.99618417, 0.99798669, 0.49289341], 2515 [- 6.26979765, - 0.00124762, 0.00076488, 7.26855003, 0.99618571, 0.99798750, 0.49289376], 2516 [- 6.26980436, - 0.00124711, 0.00076458, 7.26855725, 0.99618724, 0.99798831, 0.49289409], 2517 [- 6.26981105, - 0.00124661, 0.00076427, 7.26856444, 0.99618878, 0.99798912, 0.49289444], 2518 [- 6.26981772, - 0.00124611, 0.00076396, 7.26857160, 0.99619031, 0.99798992, 0.49289482], 2519 [- 6.26982436, - 0.00124561, 0.00076366, 7.26857875, 0.99619184, 0.99799073, 0.49289516], 2520 [- 6.26983098, - 0.00124511, 0.00076335, 7.26858587, 0.99619337, 0.99799154, 0.49289554], 2521 [- 6.26983758, - 0.00124461, 0.00076305, 7.26859297, 0.99619490, 0.99799234, 0.49289586], 2522 [- 6.26984416, - 0.00124412, 0.00076274, 7.26860004, 0.99619643, 0.99799314, 0.49289620], 2523 [- 6.26985071, - 0.00124362, 0.00076244, 7.26860710, 0.99619796, 0.99799395, 0.49289657], 2524 [- 6.26985725, - 0.00124312, 0.00076213, 7.26861413, 0.99619949, 0.99799475, 0.49289690], 2525 [- 6.26986376, - 0.00124262, 0.00076183, 7.26862114, 0.99620101, 0.99799555, 0.49289724], 2526 [- 6.26987025, - 0.00124212, 0.00076152, 7.26862812, 0.99620253, 0.99799636, 0.49289757], 2527 [- 6.26987672, - 0.00124163, 0.00076122, 7.26863509, 0.99620406, 0.99799716, 0.49289792], 2528 [- 6.26988316, - 0.00124113, 0.00076091, 7.26864203, 0.99620558, 0.99799796, 0.49289828], 2529 [- 6.26988959, - 0.00124063, 0.00076061, 7.26864895, 0.99620710, 0.99799876, 0.49289862], 2530 [- 6.26989599, - 0.00124014, 0.00076031, 7.26865585, 0.99620862, 0.99799956, 0.49289895], 2531 [- 6.26990237, - 0.00123964, 0.00076000, 7.26866273, 0.99621013, 0.99800035, 0.49289931], 2532 [- 6.26990873, - 0.00123915, 0.00075970, 7.26866958, 0.99621165, 0.99800115, 0.49289965], 2533 [- 6.26991507, - 0.00123865, 0.00075940, 7.26867642, 0.99621317, 0.99800195, 0.49289998], 2534 [- 6.26992139, - 0.00123816, 0.00075909, 7.26868323, 0.99621468, 0.99800275, 0.49290032], 2535 [- 6.26992769, - 0.00123767, 0.00075879, 7.26869002, 0.99621619, 0.99800354, 0.49290066], 2536 [- 6.26993396, - 0.00123717, 0.00075849, 7.26869679, 0.99621770, 0.99800434, 0.49290100], 2537 [- 6.26994022, - 0.00123668, 0.00075819, 7.26870354, 0.99621921, 0.99800513, 0.49290132], 2538 [- 6.26994645, - 0.00123619, 0.00075789, 7.26871027, 0.99622072, 0.99800593, 0.49290166], 2539 [- 6.26995267, - 0.00123569, 0.00075758, 7.26871697, 0.99622223, 0.99800672, 0.49290199], 2540 [- 6.26995886, - 0.00123520, 0.00075728, 7.26872366, 0.99622374, 0.99800751, 0.49290231], 2541 [- 6.26996503, - 0.00123471, 0.00075698, 7.26873032, 0.99622524, 0.99800831, 0.49290268], 2542 [- 6.26997119, - 0.00123422, 0.00075668, 7.26873697, 0.99622675, 0.99800910, 0.49290298], 2543 [- 6.26997732, - 0.00123373, 0.00075638, 7.26874359, 0.99622825, 0.99800989, 0.49290333], 2544 [- 6.26998343, - 0.00123324, 0.00075608, 7.26875019, 0.99622975, 0.99801068, 0.49290366], 2545 [- 6.26998952, - 0.00123275, 0.00075578, 7.26875677, 0.99623126, 0.99801147, 0.49290397], 2546 [- 6.26999559, - 0.00123226, 0.00075548, 7.26876333, 0.99623275, 0.99801226, 0.49290432], 2547 [- 6.27000164, - 0.00123177, 0.00075518, 7.26876987, 0.99623425, 0.99801305, 0.49290464], 2548 [- 6.27000767, - 0.00123128, 0.00075488, 7.26877639, 0.99623575, 0.99801384, 0.49290499], 2549 [- 6.27001368, - 0.00123079, 0.00075458, 7.26878289, 0.99623725, 0.99801462, 0.49290530], 2550 [- 6.27001968, - 0.00123031, 0.00075428, 7.26878937, 0.99623874, 0.99801541, 0.49290562], 2551 [- 6.27002565, - 0.00122982, 0.00075399, 7.26879583, 0.99624024, 0.99801620, 0.49290596], 2552 [- 6.27003160, - 0.00122933, 0.00075369, 7.26880227, 0.99624173, 0.99801698, 0.49290628], 2553 [- 6.27003753, - 0.00122884, 0.00075339, 7.26880869, 0.99624322, 0.99801777, 0.49290660], 2554 [- 6.27004344, - 0.00122836, 0.00075309, 7.26881508, 0.99624471, 0.99801855, 0.49290693], 2555 [- 6.27004933, - 0.00122787, 0.00075279, 7.26882146, 0.99624620, 0.99801934, 0.49290725], 2556 [- 6.27005521, - 0.00122739, 0.00075250, 7.26882782, 0.99624769, 0.99802012, 0.49290756], 2557 [- 6.27006106, - 0.00122690, 0.00075220, 7.26883416, 0.99624917, 0.99802090, 0.49290790], 2558 [- 6.27006690, - 0.00122642, 0.00075190, 7.26884048, 0.99625066, 0.99802168, 0.49290821], 2559 [- 6.27007271, - 0.00122593, 0.00075160, 7.26884678, 0.99625214, 0.99802246, 0.49290851], 2560 [- 6.27007851, - 0.00122545, 0.00075131, 7.26885306, 0.99625363, 0.99802324, 0.49290885], 2561 [- 6.27008428, - 0.00122496, 0.00075101, 7.26885932, 0.99625511, 0.99802402, 0.49290916], 2562 [- 6.27009004, - 0.00122448, 0.00075072, 7.26886556, 0.99625659, 0.99802480, 0.49290948], 2563 [- 6.27009578, - 0.00122400, 0.00075042, 7.26887178, 0.99625807, 0.99802558, 0.49290980], 2564 [- 6.27010150, - 0.00122351, 0.00075012, 7.26887799, 0.99625955, 0.99802636, 0.49291012], 2565 [- 6.27010720, - 0.00122303, 0.00074983, 7.26888417, 0.99626102, 0.99802714, 0.49291045], 2566 [- 6.27011288, - 0.00122255, 0.00074953, 7.26889033, 0.99626250, 0.99802792, 0.49291075], 2567 [- 6.27011855, - 0.00122207, 0.00074924, 7.26889648, 0.99626398, 0.99802869, 0.49291108], 2568 [- 6.27012419, - 0.00122159, 0.00074894, 7.26890260, 0.99626545, 0.99802947, 0.49291137], 2569 [- 6.27012982, - 0.00122111, 0.00074865, 7.26890871, 0.99626692, 0.99803024, 0.49291169], 2570 [- 6.27013543, - 0.00122063, 0.00074836, 7.26891480, 0.99626839, 0.99803102, 0.49291199], 2571 [- 6.27014102, - 0.00122015, 0.00074806, 7.26892087, 0.99626986, 0.99803179, 0.49291232], 2572 [- 6.27014659, - 0.00121967, 0.00074777, 7.26892692, 0.99627133, 0.99803257, 0.49291262], 2573 [- 6.27015214, - 0.00121919, 0.00074747, 7.26893295, 0.99627280, 0.99803334, 0.49291295], 2574 [- 6.27015767, - 0.00121871, 0.00074718, 7.26893897, 0.99627427, 0.99803411, 0.49291325], 2575 [- 6.27016319, - 0.00121823, 0.00074689, 7.26894496, 0.99627574, 0.99803488, 0.49291356], 2576 [- 6.27016869, - 0.00121775, 0.00074659, 7.26895094, 0.99627720, 0.99803565, 0.49291386], 2577 [- 6.27017417, - 0.00121727, 0.00074630, 7.26895690, 0.99627866, 0.99803642, 0.49291418], 2578 [- 6.27017963, - 0.00121680, 0.00074601, 7.26896284, 0.99628013, 0.99803719, 0.49291448], 2579 [- 6.27018508, - 0.00121632, 0.00074572, 7.26896876, 0.99628159, 0.99803796, 0.49291478], 2580 [- 6.27019050, - 0.00121584, 0.00074543, 7.26897466, 0.99628305, 0.99803873, 0.49291509], 2581 [- 6.27019591, - 0.00121537, 0.00074513, 7.26898055, 0.99628451, 0.99803950, 0.49291539], 2582 [- 6.27020130, - 0.00121489, 0.00074484, 7.26898641, 0.99628596, 0.99804027, 0.49291571], 2583 [- 6.27020668, - 0.00121441, 0.00074455, 7.26899226, 0.99628742, 0.99804103, 0.49291599], 2584 [- 6.27021203, - 0.00121394, 0.00074426, 7.26899810, 0.99628888, 0.99804180, 0.49291629], 2585 [- 6.27021737, - 0.00121346, 0.00074397, 7.26900391, 0.99629033, 0.99804257, 0.49291660], 2586 [- 6.27022270, - 0.00121299, 0.00074368, 7.26900971, 0.99629178, 0.99804333, 0.49291688], 2587 [- 6.27022800, - 0.00121252, 0.00074339, 7.26901548, 0.99629324, 0.99804410, 0.49291722], 2588 [- 6.27023329, - 0.00121204, 0.00074310, 7.26902124, 0.99629469, 0.99804486, 0.49291750], 2589 [- 6.27023856, - 0.00121157, 0.00074281, 7.26902699, 0.99629614, 0.99804562, 0.49291781], 2590 [- 6.27024381, - 0.00121110, 0.00074252, 7.26903271, 0.99629759, 0.99804639, 0.49291812], 2591 [- 6.27024904, - 0.00121062, 0.00074223, 7.26903842, 0.99629903, 0.99804715, 0.49291840], 2592 [- 6.27025426, - 0.00121015, 0.00074194, 7.26904411, 0.99630048, 0.99804791, 0.49291870], 2593 [- 6.27025946, - 0.00120968, 0.00074165, 7.26904979, 0.99630193, 0.99804867, 0.49291902], 2594 [- 6.27026465, - 0.00120921, 0.00074136, 7.26905544, 0.99630337, 0.99804943, 0.49291932], 2595 [- 6.27026982, - 0.00120874, 0.00074107, 7.26906108, 0.99630481, 0.99805019, 0.49291960], 2596 [- 6.27027497, - 0.00120827, 0.00074078, 7.26906670, 0.99630626, 0.99805095, 0.49291988], 2597 [- 6.27028010, - 0.00120780, 0.00074050, 7.26907231, 0.99630770, 0.99805171, 0.49292018], 2598 [- 6.27028522, - 0.00120732, 0.00074021, 7.26907789, 0.99630914, 0.99805247, 0.49292047], 2599 [- 6.27029032, - 0.00120686, 0.00073992, 7.26908347, 0.99631057, 0.99805322, 0.49292077], 2600 [- 6.27029541, - 0.00120639, 0.00073963, 7.26908902, 0.99631201, 0.99805398, 0.49292106], 2601 [- 6.27030047, - 0.00120592, 0.00073934, 7.26909456, 0.99631345, 0.99805474, 0.49292137], 2602 [- 6.27030552, - 0.00120545, 0.00073906, 7.26910008, 0.99631488, 0.99805549, 0.49292164], 2603 [- 6.27031056, - 0.00120498, 0.00073877, 7.26910558, 0.99631632, 0.99805625, 0.49292193], 2604 [- 6.27031558, - 0.00120451, 0.00073848, 7.26911107, 0.99631775, 0.99805700, 0.49292223], 2605 [- 6.27032058, - 0.00120404, 0.00073820, 7.26911654, 0.99631918, 0.99805776, 0.49292252], 2606 [- 6.27032557, - 0.00120358, 0.00073791, 7.26912199, 0.99632061, 0.99805851, 0.49292278], 2607 [- 6.27033054, - 0.00120311, 0.00073763, 7.26912743, 0.99632204, 0.99805926, 0.49292312], 2608 [- 6.27033549, - 0.00120264, 0.00073734, 7.26913285, 0.99632347, 0.99806002, 0.49292338], 2609 [- 6.27034043, - 0.00120218, 0.00073705, 7.26913825, 0.99632490, 0.99806077, 0.49292367], 2610 [- 6.27034536, - 0.00120171, 0.00073677, 7.26914364, 0.99632633, 0.99806152, 0.49292394], 2611 [- 6.27035026, - 0.00120125, 0.00073648, 7.26914902, 0.99632775, 0.99806227, 0.49292425], 2612 [- 6.27035515, - 0.00120078, 0.00073620, 7.26915437, 0.99632918, 0.99806302, 0.49292452], 2613 [- 6.27036003, - 0.00120032, 0.00073591, 7.26915971, 0.99633060, 0.99806377, 0.49292480], 2614 [- 6.27036489, - 0.00119985, 0.00073563, 7.26916504, 0.99633202, 0.99806452, 0.49292511], 2615 [- 6.27036973, - 0.00119939, 0.00073535, 7.26917034, 0.99633344, 0.99806527, 0.49292536], 2616 [- 6.27037456, - 0.00119892, 0.00073506, 7.26917564, 0.99633486, 0.99806601, 0.49292567], 2617 [- 6.27037937, - 0.00119846, 0.00073478, 7.26918091, 0.99633628, 0.99806676, 0.49292595], 2618 [- 6.27038417, - 0.00119800, 0.00073449, 7.26918617, 0.99633770, 0.99806751, 0.49292622], 2619 [- 6.27038895, - 0.00119754, 0.00073421, 7.26919142, 0.99633912, 0.99806825, 0.49292651], 2620 [- 6.27039372, - 0.00119707, 0.00073393, 7.26919664, 0.99634053, 0.99806900, 0.49292678], 2621 [- 6.27039847, - 0.00119661, 0.00073364, 7.26920186, 0.99634195, 0.99806974, 0.49292707], 2622 [- 6.27040321, - 0.00119615, 0.00073336, 7.26920706, 0.99634336, 0.99807049, 0.49292736], 2623 [- 6.27040793, - 0.00119569, 0.00073308, 7.26921224, 0.99634477, 0.99807123, 0.49292762], 2624 [- 6.27041263, - 0.00119523, 0.00073280, 7.26921740, 0.99634618, 0.99807198, 0.49292790], 2625 [- 6.27041732, - 0.00119477, 0.00073251, 7.26922256, 0.99634759, 0.99807272, 0.49292816], 2626 [- 6.27042200, - 0.00119431, 0.00073223, 7.26922769, 0.99634900, 0.99807346, 0.49292845], 2627 [- 6.27042666, - 0.00119385, 0.00073195, 7.26923281, 0.99635041, 0.99807420, 0.49292873], 2628 [- 6.27043131, - 0.00119339, 0.00073167, 7.26923792, 0.99635182, 0.99807494, 0.49292902], 2629 [- 6.27043594, - 0.00119293, 0.00073139, 7.26924301, 0.99635322, 0.99807568, 0.49292929], 2630 [- 6.27044055, - 0.00119247, 0.00073111, 7.26924808, 0.99635463, 0.99807642, 0.49292955], 2631 [- 6.27044516, - 0.00119201, 0.00073083, 7.26925314, 0.99635603, 0.99807716, 0.49292983], 2632 [- 6.27044974, - 0.00119155, 0.00073054, 7.26925819, 0.99635743, 0.99807790, 0.49293011], 2633 [- 6.27045432, - 0.00119110, 0.00073026, 7.26926322, 0.99635884, 0.99807864, 0.49293037], 2634 [- 6.27045887, - 0.00119064, 0.00072998, 7.26926823, 0.99636024, 0.99807938, 0.49293066], 2635 [- 6.27046342, - 0.00119018, 0.00072970, 7.26927323, 0.99636164, 0.99808011, 0.49293095], 2636 [- 6.27046795, - 0.00118973, 0.00072942, 7.26927822, 0.99636303, 0.99808085, 0.49293118], 2637 [- 6.27047246, - 0.00118927, 0.00072914, 7.26928319, 0.99636443, 0.99808158, 0.49293146], 2638 [- 6.27047696, - 0.00118881, 0.00072887, 7.26928815, 0.99636583, 0.99808232, 0.49293175], 2639 [- 6.27048145, - 0.00118836, 0.00072859, 7.26929309, 0.99636722, 0.99808305, 0.49293201], 2640 [- 6.27048592, - 0.00118790, 0.00072831, 7.26929802, 0.99636862, 0.99808379, 0.49293228], 2641 [- 6.27049038, - 0.00118745, 0.00072803, 7.26930293, 0.99637001, 0.99808452, 0.49293255], 2642 [- 6.27049482, - 0.00118699, 0.00072775, 7.26930783, 0.99637140, 0.99808526, 0.49293281], 2643 [- 6.27049925, - 0.00118654, 0.00072747, 7.26931271, 0.99637279, 0.99808599, 0.49293309], 2644 [- 6.27050366, - 0.00118609, 0.00072719, 7.26931758, 0.99637418, 0.99808672, 0.49293334], 2645 [- 6.27050807, - 0.00118563, 0.00072692, 7.26932243, 0.99637557, 0.99808745, 0.49293360], 2646 [- 6.27051245, - 0.00118518, 0.00072664, 7.26932727, 0.99637696, 0.99808818, 0.49293390], 2647 [- 6.27051683, - 0.00118473, 0.00072636, 7.26933210, 0.99637835, 0.99808891, 0.49293415], 2648 [- 6.27052119, - 0.00118427, 0.00072608, 7.26933691, 0.99637973, 0.99808964, 0.49293444], 2649 [- 6.27052553, - 0.00118382, 0.00072581, 7.26934171, 0.99638112, 0.99809037, 0.49293467], 2650 [- 6.27052986, - 0.00118337, 0.00072553, 7.26934649, 0.99638250, 0.99809110, 0.49293494], 2651 [- 6.27053418, - 0.00118292, 0.00072525, 7.26935126, 0.99638388, 0.99809183, 0.49293521], 2652 [- 6.27053849, - 0.00118247, 0.00072498, 7.26935602, 0.99638526, 0.99809256, 0.49293547], 2653 [- 6.27054278, - 0.00118202, 0.00072470, 7.26936076, 0.99638664, 0.99809328, 0.49293575], 2654 [- 6.27054706, - 0.00118157, 0.00072442, 7.26936549, 0.99638802, 0.99809401, 0.49293600], 2655 [- 6.27055132, - 0.00118112, 0.00072415, 7.26937020, 0.99638940, 0.99809474, 0.49293625], 2656 [- 6.27055557, - 0.00118067, 0.00072387, 7.26937491, 0.99639078, 0.99809546, 0.49293651], 2657 [- 6.27055981, - 0.00118022, 0.00072360, 7.26937959, 0.99639215, 0.99809619, 0.49293677], 2658 [- 6.27056403, - 0.00117977, 0.00072332, 7.26938427, 0.99639353, 0.99809691, 0.49293703], 2659 [- 6.27056825, - 0.00117932, 0.00072305, 7.26938893, 0.99639490, 0.99809763, 0.49293729], 2660 [- 6.27057244, - 0.00117887, 0.00072277, 7.26939357, 0.99639628, 0.99809836, 0.49293754], 2661 [- 6.27057663, - 0.00117842, 0.00072250, 7.26939820, 0.99639765, 0.99809908, 0.49293783], 2662 [- 6.27058080, - 0.00117798, 0.00072222, 7.26940282, 0.99639902, 0.99809980, 0.49293807], 2663 [- 6.27058496, - 0.00117753, 0.00072195, 7.26940743, 0.99640039, 0.99810052, 0.49293833], 2664 [- 6.27058910, - 0.00117708, 0.00072167, 7.26941202, 0.99640176, 0.99810124, 0.49293858], 2665 [- 6.27059324, - 0.00117663, 0.00072140, 7.26941660, 0.99640312, 0.99810196, 0.49293885], 2666 [- 6.27059736, - 0.00117619, 0.00072113, 7.26942117, 0.99640449, 0.99810268, 0.49293910], 2667 [- 6.27060146, - 0.00117574, 0.00072085, 7.26942572, 0.99640586, 0.99810340, 0.49293936], 2668 [- 6.27060556, - 0.00117530, 0.00072058, 7.26943026, 0.99640722, 0.99810412, 0.49293961], 2669 [- 6.27060964, - 0.00117485, 0.00072031, 7.26943479, 0.99640859, 0.99810484, 0.49293988], 2670 [- 6.27061371, - 0.00117441, 0.00072004, 7.26943930, 0.99640995, 0.99810556, 0.49294014], 2671 [- 6.27061776, - 0.00117396, 0.00071976, 7.26944380, 0.99641131, 0.99810628, 0.49294037], 2672 [- 6.27062180, - 0.00117352, 0.00071949, 7.26944829, 0.99641267, 0.99810699, 0.49294061], 2673 [- 6.27062583, - 0.00117307, 0.00071922, 7.26945276, 0.99641403, 0.99810771, 0.49294091], 2674 [- 6.27062985, - 0.00117263, 0.00071895, 7.26945722, 0.99641539, 0.99810842, 0.49294113], 2675 [- 6.27063386, - 0.00117219, 0.00071867, 7.26946167, 0.99641675, 0.99810914, 0.49294137], 2676 [- 6.27063785, - 0.00117174, 0.00071840, 7.26946611, 0.99641810, 0.99810985, 0.49294161], 2677 [- 6.27064183, - 0.00117130, 0.00071813, 7.26947053, 0.99641946, 0.99811057, 0.49294187], 2678 [- 6.27064580, - 0.00117086, 0.00071786, 7.26947494, 0.99642081, 0.99811128, 0.49294216], 2679 [- 6.27064976, - 0.00117042, 0.00071759, 7.26947934, 0.99642217, 0.99811199, 0.49294239], 2680 [- 6.27065370, - 0.00116997, 0.00071732, 7.26948372, 0.99642352, 0.99811271, 0.49294263], 2681 [- 6.27065763, - 0.00116953, 0.00071705, 7.26948810, 0.99642487, 0.99811342, 0.49294289], 2682 [- 6.27066155, - 0.00116909, 0.00071678, 7.26949246, 0.99642622, 0.99811413, 0.49294314], 2683 [- 6.27066546, - 0.00116865, 0.00071651, 7.26949680, 0.99642757, 0.99811484, 0.49294338], 2684 [- 6.27066935, - 0.00116821, 0.00071624, 7.26950114, 0.99642892, 0.99811555, 0.49294362], 2685 [- 6.27067323, - 0.00116777, 0.00071597, 7.26950546, 0.99643026, 0.99811626, 0.49294387], 2686 [- 6.27067711, - 0.00116733, 0.00071570, 7.26950977, 0.99643161, 0.99811697, 0.49294414], 2687 [- 6.27068096, - 0.00116689, 0.00071543, 7.26951407, 0.99643296, 0.99811768, 0.49294435], 2688 [- 6.27068481, - 0.00116645, 0.00071516, 7.26951836, 0.99643430, 0.99811839, 0.49294462], 2689 [- 6.27068865, - 0.00116601, 0.00071489, 7.26952263, 0.99643564, 0.99811909, 0.49294486], 2690 [- 6.27069247, - 0.00116558, 0.00071462, 7.26952689, 0.99643699, 0.99811980, 0.49294512], 2691 [- 6.27069628, - 0.00116514, 0.00071435, 7.26953114, 0.99643833, 0.99812051, 0.49294533], 2692 [- 6.27070008, - 0.00116470, 0.00071409, 7.26953538, 0.99643967, 0.99812121, 0.49294559], 2693 [- 6.27070387, - 0.00116426, 0.00071382, 7.26953961, 0.99644101, 0.99812192, 0.49294582], 2694 [- 6.27070765, - 0.00116383, 0.00071355, 7.26954382, 0.99644235, 0.99812262, 0.49294607], 2695 [- 6.27071141, - 0.00116339, 0.00071328, 7.26954802, 0.99644368, 0.99812333, 0.49294633], 2696 [- 6.27071516, - 0.00116295, 0.00071301, 7.26955221, 0.99644502, 0.99812403, 0.49294657], 2697 [- 6.27071891, - 0.00116252, 0.00071275, 7.26955639, 0.99644635, 0.99812474, 0.49294678], 2698 [- 6.27072264, - 0.00116208, 0.00071248, 7.26956056, 0.99644769, 0.99812544, 0.49294701], 2699 [- 6.27072636, - 0.00116165, 0.00071221, 7.26956471, 0.99644902, 0.99812614, 0.49294726], 2700 [- 6.27073006, - 0.00116121, 0.00071195, 7.26956885, 0.99645035, 0.99812684, 0.49294753], 2701 [- 6.27073376, - 0.00116078, 0.00071168, 7.26957298, 0.99645169, 0.99812755, 0.49294774], 2702 [- 6.27073744, - 0.00116034, 0.00071141, 7.26957710, 0.99645302, 0.99812825, 0.49294799], 2703 [- 6.27074112, - 0.00115991, 0.00071115, 7.26958121, 0.99645434, 0.99812895, 0.49294824], 2704 [- 6.27074478, - 0.00115947, 0.00071088, 7.26958531, 0.99645567, 0.99812965, 0.49294849], 2705 [- 6.27074843, - 0.00115904, 0.00071062, 7.26958939, 0.99645700, 0.99813035, 0.49294867], 2706 [- 6.27075207, - 0.00115861, 0.00071035, 7.26959347, 0.99645833, 0.99813104, 0.49294894], 2707 [- 6.27075570, - 0.00115817, 0.00071008, 7.26959753, 0.99645965, 0.99813174, 0.49294918], 2708 [- 6.27075932, - 0.00115774, 0.00070982, 7.26960158, 0.99646098, 0.99813244, 0.49294940], 2709 [- 6.27076293, - 0.00115731, 0.00070955, 7.26960562, 0.99646230, 0.99813314, 0.49294966], 2710 [- 6.27076652, - 0.00115688, 0.00070929, 7.26960965, 0.99646362, 0.99813383, 0.49294988], 2711 [- 6.27077011, - 0.00115644, 0.00070902, 7.26961366, 0.99646494, 0.99813453, 0.49295014], 2712 [- 6.27077368, - 0.00115601, 0.00070876, 7.26961767, 0.99646626, 0.99813523, 0.49295035], 2713 [- 6.27077724, - 0.00115558, 0.00070850, 7.26962166, 0.99646758, 0.99813592, 0.49295058], 2714 [- 6.27078080, - 0.00115515, 0.00070823, 7.26962565, 0.99646890, 0.99813662, 0.49295081], 2715 [- 6.27078434, - 0.00115472, 0.00070797, 7.26962962, 0.99647022, 0.99813731, 0.49295107], 2716 [- 6.27078787, - 0.00115429, 0.00070770, 7.26963358, 0.99647154, 0.99813800, 0.49295129], 2717 [- 6.27079139, - 0.00115386, 0.00070744, 7.26963753, 0.99647285, 0.99813870, 0.49295151], 2718 [- 6.27079490, - 0.00115343, 0.00070718, 7.26964147, 0.99647417, 0.99813939, 0.49295175], 2719 [- 6.27079840, - 0.00115300, 0.00070692, 7.26964540, 0.99647548, 0.99814008, 0.49295200], 2720 [- 6.27080189, - 0.00115257, 0.00070665, 7.26964931, 0.99647679, 0.99814077, 0.49295221], 2721 [- 6.27080537, - 0.00115215, 0.00070639, 7.26965322, 0.99647810, 0.99814146, 0.49295246], 2722 [- 6.27080883, - 0.00115172, 0.00070613, 7.26965711, 0.99647941, 0.99814215, 0.49295267], 2723 [- 6.27081229, - 0.00115129, 0.00070586, 7.26966100, 0.99648072, 0.99814284, 0.49295289], 2724 [- 6.27081574, - 0.00115086, 0.00070560, 7.26966487, 0.99648203, 0.99814353, 0.49295314], 2725 [- 6.27081917, - 0.00115044, 0.00070534, 7.26966874, 0.99648334, 0.99814422, 0.49295337], 2726 [- 6.27082260, - 0.00115001, 0.00070508, 7.26967259, 0.99648465, 0.99814491, 0.49295357], 2727 [- 6.27082601, - 0.00114958, 0.00070482, 7.26967643, 0.99648595, 0.99814560, 0.49295381], 2728 [- 6.27082942, - 0.00114916, 0.00070456, 7.26968026, 0.99648726, 0.99814629, 0.49295404], 2729 [- 6.27083281, - 0.00114873, 0.00070430, 7.26968408, 0.99648856, 0.99814697, 0.49295428], 2730 [- 6.27083620, - 0.00114830, 0.00070403, 7.26968789, 0.99648986, 0.99814766, 0.49295451], 2731 [- 6.27083957, - 0.00114788, 0.00070377, 7.26969169, 0.99649117, 0.99814835, 0.49295473], 2732 [- 6.27084294, - 0.00114745, 0.00070351, 7.26969548, 0.99649247, 0.99814903, 0.49295497], 2733 [- 6.27084629, - 0.00114703, 0.00070325, 7.26969926, 0.99649377, 0.99814972, 0.49295518], 2734 [- 6.27084964, - 0.00114661, 0.00070299, 7.26970303, 0.99649507, 0.99815040, 0.49295540], 2735 [- 6.27085297, - 0.00114618, 0.00070273, 7.26970679, 0.99649636, 0.99815109, 0.49295563], 2736 [- 6.27085630, - 0.00114576, 0.00070247, 7.26971054, 0.99649766, 0.99815177, 0.49295584], 2737 [- 6.27085961, - 0.00114533, 0.00070221, 7.26971428, 0.99649896, 0.99815245, 0.49295609], 2738 [- 6.27086292, - 0.00114491, 0.00070195, 7.26971800, 0.99650025, 0.99815313, 0.49295629], 2739 [- 6.27086621, - 0.00114449, 0.00070169, 7.26972172, 0.99650155, 0.99815382, 0.49295653], 2740 [- 6.27086950, - 0.00114407, 0.00070144, 7.26972543, 0.99650284, 0.99815450, 0.49295673], 2741 [- 6.27087277, - 0.00114364, 0.00070118, 7.26972913, 0.99650413, 0.99815518, 0.49295696], 2742 [- 6.27087604, - 0.00114322, 0.00070092, 7.26973281, 0.99650542, 0.99815586, 0.49295720], 2743 [- 6.27087929, - 0.00114280, 0.00070066, 7.26973649, 0.99650671, 0.99815654, 0.49295739], 2744 [- 6.27088254, - 0.00114238, 0.00070040, 7.26974016, 0.99650800, 0.99815722, 0.49295764], 2745 [- 6.27088577, - 0.00114196, 0.00070014, 7.26974382, 0.99650929, 0.99815790, 0.49295785], 2746 [- 6.27088900, - 0.00114154, 0.00069989, 7.26974746, 0.99651058, 0.99815858, 0.49295811], 2747 [- 6.27089222, - 0.00114112, 0.00069963, 7.26975110, 0.99651187, 0.99815925, 0.49295829], 2748 [- 6.27089543, - 0.00114070, 0.00069937, 7.26975473, 0.99651315, 0.99815993, 0.49295850], 2749 [- 6.27089862, - 0.00114028, 0.00069911, 7.26975835, 0.99651444, 0.99816061, 0.49295875], 2750 [- 6.27090181, - 0.00113986, 0.00069886, 7.26976195, 0.99651572, 0.99816129, 0.49295895], 2751 [- 6.27090499, - 0.00113944, 0.00069860, 7.26976555, 0.99651700, 0.99816196, 0.49295918], 2752 [- 6.27090816, - 0.00113902, 0.00069834, 7.26976914, 0.99651829, 0.99816264, 0.49295938], 2753 [- 6.27091132, - 0.00113860, 0.00069809, 7.26977272, 0.99651957, 0.99816331, 0.49295963], 2754 [- 6.27091447, - 0.00113818, 0.00069783, 7.26977629, 0.99652085, 0.99816399, 0.49295982], 2755 [- 6.27091762, - 0.00113777, 0.00069757, 7.26977985, 0.99652213, 0.99816466, 0.49296003], 2756 [- 6.27092075, - 0.00113735, 0.00069732, 7.26978340, 0.99652340, 0.99816533, 0.49296028], 2757 [- 6.27092387, - 0.00113693, 0.00069706, 7.26978694, 0.99652468, 0.99816601, 0.49296049], 2758 [- 6.27092699, - 0.00113651, 0.00069681, 7.26979047, 0.99652596, 0.99816668, 0.49296071], 2759 [- 6.27093009, - 0.00113610, 0.00069655, 7.26979399, 0.99652723, 0.99816735, 0.49296091], 2760 [- 6.27093319, - 0.00113568, 0.00069629, 7.26979751, 0.99652851, 0.99816802, 0.49296112], 2761 [- 6.27093627, - 0.00113527, 0.00069604, 7.26980101, 0.99652978, 0.99816869, 0.49296137], 2762 [- 6.27093935, - 0.00113485, 0.00069578, 7.26980450, 0.99653105, 0.99816937, 0.49296155], 2763 [- 6.27094242, - 0.00113443, 0.00069553, 7.26980799, 0.99653232, 0.99817004, 0.49296176], 2764 [- 6.27094548, - 0.00113402, 0.00069528, 7.26981146, 0.99653360, 0.99817070, 0.49296198], 2765 [- 6.27094853, - 0.00113360, 0.00069502, 7.26981493, 0.99653487, 0.99817137, 0.49296221], 2766 [- 6.27095157, - 0.00113319, 0.00069477, 7.26981838, 0.99653613, 0.99817204, 0.49296241], 2767 [- 6.27095461, - 0.00113278, 0.00069451, 7.26982183, 0.99653740, 0.99817271, 0.49296261], 2768 [- 6.27095763, - 0.00113236, 0.00069426, 7.26982527, 0.99653867, 0.99817338, 0.49296284], 2769 [- 6.27096065, - 0.00113195, 0.00069401, 7.26982870, 0.99653994, 0.99817405, 0.49296306], 2770 [- 6.27096365, - 0.00113154, 0.00069375, 7.26983212, 0.99654120, 0.99817471, 0.49296324], 2771 [- 6.27096665, - 0.00113112, 0.00069350, 7.26983553, 0.99654246, 0.99817538, 0.49296349], 2772 [- 6.27096964, - 0.00113071, 0.00069325, 7.26983893, 0.99654373, 0.99817604, 0.49296367], 2773 [- 6.27097262, - 0.00113030, 0.00069299, 7.26984232, 0.99654499, 0.99817671, 0.49296390], 2774 [- 6.27097559, - 0.00112989, 0.00069274, 7.26984571, 0.99654625, 0.99817737, 0.49296411], 2775 [- 6.27097856, - 0.00112947, 0.00069249, 7.26984908, 0.99654751, 0.99817804, 0.49296432], 2776 [- 6.27098151, - 0.00112906, 0.00069224, 7.26985245, 0.99654877, 0.99817870, 0.49296451], 2777 [- 6.27098446, - 0.00112865, 0.00069198, 7.26985581, 0.99655003, 0.99817937, 0.49296475], 2778 [- 6.27098739, - 0.00112824, 0.00069173, 7.26985915, 0.99655129, 0.99818003, 0.49296493], 2779 [- 6.27099032, - 0.00112783, 0.00069148, 7.26986249, 0.99655255, 0.99818069, 0.49296516], 2780 [- 6.27099324, - 0.00112742, 0.00069123, 7.26986583, 0.99655380, 0.99818135, 0.49296535], 2781 [- 6.27099616, - 0.00112701, 0.00069098, 7.26986915, 0.99655506, 0.99818202, 0.49296556], 2782 [- 6.27099906, - 0.00112660, 0.00069072, 7.26987246, 0.99655631, 0.99818268, 0.49296577], 2783 [- 6.27100196, - 0.00112619, 0.00069047, 7.26987577, 0.99655756, 0.99818334, 0.49296597], 2784 [- 6.27100484, - 0.00112578, 0.00069022, 7.26987906, 0.99655882, 0.99818400, 0.49296619], 2785 [- 6.27100772, - 0.00112537, 0.00068997, 7.26988235, 0.99656007, 0.99818466, 0.49296639], 2786 [- 6.27101059, - 0.00112496, 0.00068972, 7.26988563, 0.99656132, 0.99818532, 0.49296663], 2787 [- 6.27101345, - 0.00112455, 0.00068947, 7.26988890, 0.99656257, 0.99818597, 0.49296681], 2788 [- 6.27101631, - 0.00112415, 0.00068922, 7.26989216, 0.99656382, 0.99818663, 0.49296699], 2789 [- 6.27101915, - 0.00112374, 0.00068897, 7.26989541, 0.99656506, 0.99818729, 0.49296722], 2790 [- 6.27102199, - 0.00112333, 0.00068872, 7.26989866, 0.99656631, 0.99818795, 0.49296743], 2791 [- 6.27102482, - 0.00112292, 0.00068847, 7.26990189, 0.99656756, 0.99818860, 0.49296764], 2792 [- 6.27102764, - 0.00112252, 0.00068822, 7.26990512, 0.99656880, 0.99818926, 0.49296783], 2793 [- 6.27103045, - 0.00112211, 0.00068797, 7.26990834, 0.99657005, 0.99818992, 0.49296802], 2794 [- 6.27103326, - 0.00112171, 0.00068772, 7.26991155, 0.99657129, 0.99819057, 0.49296822], 2795 [- 6.27103606, - 0.00112130, 0.00068747, 7.26991476, 0.99657253, 0.99819123, 0.49296843], 2796 [- 6.27103885, - 0.00112089, 0.00068723, 7.26991795, 0.99657377, 0.99819188, 0.49296863], 2797 [- 6.27104163, - 0.00112049, 0.00068698, 7.26992114, 0.99657501, 0.99819253, 0.49296882], 2798 [- 6.27104440, - 0.00112008, 0.00068673, 7.26992432, 0.99657625, 0.99819319, 0.49296903], 2799 [- 6.27104717, - 0.00111968, 0.00068648, 7.26992749, 0.99657749, 0.99819384, 0.49296925], 2800 [- 6.27104992, - 0.00111927, 0.00068623, 7.26993065, 0.99657873, 0.99819449, 0.49296948], 2801 [- 6.27105267, - 0.00111887, 0.00068599, 7.26993380, 0.99657997, 0.99819514, 0.49296966], 2802 [- 6.27105541, - 0.00111847, 0.00068574, 7.26993695, 0.99658120, 0.99819580, 0.49296986], 2803 [- 6.27105815, - 0.00111806, 0.00068549, 7.26994009, 0.99658244, 0.99819645, 0.49297006], 2804 [- 6.27106088, - 0.00111766, 0.00068524, 7.26994322, 0.99658367, 0.99819710, 0.49297025], 2805 [- 6.27106359, - 0.00111726, 0.00068500, 7.26994634, 0.99658491, 0.99819775, 0.49297043], 2806 [- 6.27106630, - 0.00111685, 0.00068475, 7.26994945, 0.99658614, 0.99819840, 0.49297064], 2807 [- 6.27106901, - 0.00111645, 0.00068450, 7.26995256, 0.99658737, 0.99819905, 0.49297085], 2808 [- 6.27107170, - 0.00111605, 0.00068426, 7.26995565, 0.99658860, 0.99819970, 0.49297106], 2809 [- 6.27107439, - 0.00111565, 0.00068401, 7.26995874, 0.99658983, 0.99820034, 0.49297123], 2810 [- 6.27107707, - 0.00111525, 0.00068376, 7.26996183, 0.99659106, 0.99820099, 0.49297145], 2811 [- 6.27107974, - 0.00111484, 0.00068352, 7.26996490, 0.99659229, 0.99820164, 0.49297165], 2812 [- 6.27108241, - 0.00111444, 0.00068327, 7.26996797, 0.99659352, 0.99820229, 0.49297182], 2813 [- 6.27108507, - 0.00111404, 0.00068302, 7.26997103, 0.99659474, 0.99820293, 0.49297202], 2814 [- 6.27108772, - 0.00111364, 0.00068278, 7.26997408, 0.99659597, 0.99820358, 0.49297222], 2815 [- 6.27109036, - 0.00111324, 0.00068253, 7.26997712, 0.99659719, 0.99820422, 0.49297241], 2816 [- 6.27109300, - 0.00111284, 0.00068229, 7.26998015, 0.99659842, 0.99820487, 0.49297262], 2817 [- 6.27109562, - 0.00111244, 0.00068204, 7.26998318, 0.99659964, 0.99820551, 0.49297281], 2818 [- 6.27109825, - 0.00111204, 0.00068180, 7.26998620, 0.99660086, 0.99820616, 0.49297301], 2819 [- 6.27110086, - 0.00111164, 0.00068155, 7.26998921, 0.99660208, 0.99820680, 0.49297320], 2820 [- 6.27110347, - 0.00111125, 0.00068131, 7.26999222, 0.99660330, 0.99820744, 0.49297339], 2821 [- 6.27110606, - 0.00111085, 0.00068106, 7.26999522, 0.99660452, 0.99820809, 0.49297359], 2822 [- 6.27110866, - 0.00111045, 0.00068082, 7.26999821, 0.99660574, 0.99820873, 0.49297380], 2823 [- 6.27111124, - 0.00111005, 0.00068058, 7.27000119, 0.99660696, 0.99820937, 0.49297397], 2824 [- 6.27111382, - 0.00110965, 0.00068033, 7.27000416, 0.99660818, 0.99821001, 0.49297417], 2825 [- 6.27111639, - 0.00110926, 0.00068009, 7.27000713, 0.99660939, 0.99821065, 0.49297437], 2826 [- 6.27111895, - 0.00110886, 0.00067985, 7.27001009, 0.99661061, 0.99821129, 0.49297456], 2827 [- 6.27112151, - 0.00110846, 0.00067960, 7.27001304, 0.99661182, 0.99821193, 0.49297477], 2828 [- 6.27112405, - 0.00110807, 0.00067936, 7.27001599, 0.99661303, 0.99821257, 0.49297493], 2829 [- 6.27112660, - 0.00110767, 0.00067912, 7.27001892, 0.99661425, 0.99821321, 0.49297516], 2830 [- 6.27112913, - 0.00110728, 0.00067887, 7.27002185, 0.99661546, 0.99821385, 0.49297533], 2831 [- 6.27113166, - 0.00110688, 0.00067863, 7.27002478, 0.99661667, 0.99821449, 0.49297550], 2832 [- 6.27113418, - 0.00110648, 0.00067839, 7.27002769, 0.99661788, 0.99821513, 0.49297572], 2833 [- 6.27113669, - 0.00110609, 0.00067815, 7.27003060, 0.99661909, 0.99821576, 0.49297589], 2834 [- 6.27113920, - 0.00110569, 0.00067790, 7.27003350, 0.99662030, 0.99821640, 0.49297607], 2835 [- 6.27114170, - 0.00110530, 0.00067766, 7.27003640, 0.99662150, 0.99821704, 0.49297628], 2836 [- 6.27114419, - 0.00110491, 0.00067742, 7.27003928, 0.99662271, 0.99821767, 0.49297646], 2837 [- 6.27114668, - 0.00110451, 0.00067718, 7.27004216, 0.99662392, 0.99821831, 0.49297664], 2838 [- 6.27114915, - 0.00110412, 0.00067694, 7.27004504, 0.99662512, 0.99821894, 0.49297684], 2839 [- 6.27115163, - 0.00110372, 0.00067670, 7.27004790, 0.99662632, 0.99821958, 0.49297702], 2840 [- 6.27115409, - 0.00110333, 0.00067646, 7.27005076, 0.99662753, 0.99822021, 0.49297723], 2841 [- 6.27115655, - 0.00110294, 0.00067621, 7.27005361, 0.99662873, 0.99822085, 0.49297742], 2842 [- 6.27115900, - 0.00110255, 0.00067597, 7.27005646, 0.99662993, 0.99822148, 0.49297759], 2843 [- 6.27116145, - 0.00110215, 0.00067573, 7.27005929, 0.99663113, 0.99822211, 0.49297781], 2844 [- 6.27116389, - 0.00110176, 0.00067549, 7.27006212, 0.99663233, 0.99822274, 0.49297799], 2845 [- 6.27116632, - 0.00110137, 0.00067525, 7.27006495, 0.99663353, 0.99822338, 0.49297818], 2846 [- 6.27116874, - 0.00110098, 0.00067501, 7.27006776, 0.99663473, 0.99822401, 0.49297837], 2847 [- 6.27117116, - 0.00110059, 0.00067477, 7.27007057, 0.99663592, 0.99822464, 0.49297853], 2848 [- 6.27117357, - 0.00110020, 0.00067453, 7.27007338, 0.99663712, 0.99822527, 0.49297873], 2849 [- 6.27117598, - 0.00109981, 0.00067429, 7.27007617, 0.99663832, 0.99822590, 0.49297890], 2850 [- 6.27117838, - 0.00109942, 0.00067405, 7.27007896, 0.99663951, 0.99822653, 0.49297910], 2851 [- 6.27118077, - 0.00109903, 0.00067381, 7.27008174, 0.99664070, 0.99822716, 0.49297929], 2852 [- 6.27118315, - 0.00109864, 0.00067358, 7.27008452, 0.99664190, 0.99822779, 0.49297945], 2853 [- 6.27118553, - 0.00109825, 0.00067334, 7.27008729, 0.99664309, 0.99822842, 0.49297965], 2854 [- 6.27118791, - 0.00109786, 0.00067310, 7.27009005, 0.99664428, 0.99822904, 0.49297987], 2855 [- 6.27119027, - 0.00109747, 0.00067286, 7.27009280, 0.99664547, 0.99822967, 0.49298005], 2856 [- 6.27119263, - 0.00109708, 0.00067262, 7.27009555, 0.99664666, 0.99823030, 0.49298023], 2857 [- 6.27119499, - 0.00109669, 0.00067238, 7.27009829, 0.99664785, 0.99823092, 0.49298041], 2858 [- 6.27119733, - 0.00109630, 0.00067214, 7.27010103, 0.99664904, 0.99823155, 0.49298056], 2859 [- 6.27119968, - 0.00109592, 0.00067191, 7.27010376, 0.99665022, 0.99823218, 0.49298074], 2860 [- 6.27120201, - 0.00109553, 0.00067167, 7.27010648, 0.99665141, 0.99823280, 0.49298095], 2861 [- 6.27120434, - 0.00109514, 0.00067143, 7.27010920, 0.99665259, 0.99823343, 0.49298115], 2862 [- 6.27120666, - 0.00109475, 0.00067119, 7.27011190, 0.99665378, 0.99823405, 0.49298131], 2863 [- 6.27120898, - 0.00109437, 0.00067096, 7.27011461, 0.99665496, 0.99823467, 0.49298149], 2864 [- 6.27121129, - 0.00109398, 0.00067072, 7.27011730, 0.99665614, 0.99823530, 0.49298166], 2865 [- 6.27121359, - 0.00109360, 0.00067048, 7.27011999, 0.99665733, 0.99823592, 0.49298185], 2866 [- 6.27121589, - 0.00109321, 0.00067025, 7.27012268, 0.99665851, 0.99823654, 0.49298202], 2867 [- 6.27121818, - 0.00109282, 0.00067001, 7.27012535, 0.99665969, 0.99823717, 0.49298224], 2868 [- 6.27122046, - 0.00109244, 0.00066977, 7.27012802, 0.99666087, 0.99823779, 0.49298236], 2869 [- 6.27122274, - 0.00109205, 0.00066954, 7.27013069, 0.99666205, 0.99823841, 0.49298260], 2870 [- 6.27122501, - 0.00109167, 0.00066930, 7.27013334, 0.99666322, 0.99823903, 0.49298275], 2871 [- 6.27122728, - 0.00109128, 0.00066907, 7.27013600, 0.99666440, 0.99823965, 0.49298294], 2872 [- 6.27122954, - 0.00109090, 0.00066883, 7.27013864, 0.99666558, 0.99824027, 0.49298313], 2873 [- 6.27123179, - 0.00109052, 0.00066859, 7.27014128, 0.99666675, 0.99824089, 0.49298330], 2874 [- 6.27123404, - 0.00109013, 0.00066836, 7.27014391, 0.99666793, 0.99824151, 0.49298351], 2875 [- 6.27123629, - 0.00108975, 0.00066812, 7.27014654, 0.99666910, 0.99824213, 0.49298363], 2876 [- 6.27123852, - 0.00108937, 0.00066789, 7.27014916, 0.99667027, 0.99824275, 0.49298382], 2877 [- 6.27124075, - 0.00108898, 0.00066765, 7.27015177, 0.99667144, 0.99824336, 0.49298401], 2878 [- 6.27124298, - 0.00108860, 0.00066742, 7.27015438, 0.99667261, 0.99824398, 0.49298420], 2879 [- 6.27124520, - 0.00108822, 0.00066718, 7.27015698, 0.99667379, 0.99824460, 0.49298438], 2880 [- 6.27124741, - 0.00108784, 0.00066695, 7.27015957, 0.99667495, 0.99824521, 0.49298453], 2881 [- 6.27124962, - 0.00108745, 0.00066672, 7.27016216, 0.99667612, 0.99824583, 0.49298471], 2882 [- 6.27125182, - 0.00108707, 0.00066648, 7.27016475, 0.99667729, 0.99824645, 0.49298491], 2883 [- 6.27125401, - 0.00108669, 0.00066625, 7.27016732, 0.99667846, 0.99824706, 0.49298510], 2884 [- 6.27125620, - 0.00108631, 0.00066601, 7.27016989, 0.99667962, 0.99824768, 0.49298524], 2885 [- 6.27125839, - 0.00108593, 0.00066578, 7.27017246, 0.99668079, 0.99824829, 0.49298544], 2886 [- 6.27126057, - 0.00108555, 0.00066555, 7.27017502, 0.99668195, 0.99824890, 0.49298562], 2887 [- 6.27126274, - 0.00108517, 0.00066531, 7.27017757, 0.99668312, 0.99824952, 0.49298575], 2888 [- 6.27126490, - 0.00108479, 0.00066508, 7.27018012, 0.99668428, 0.99825013, 0.49298596], 2889 [- 6.27126707, - 0.00108441, 0.00066485, 7.27018266, 0.99668544, 0.99825074, 0.49298614], 2890 [- 6.27126922, - 0.00108403, 0.00066461, 7.27018519, 0.99668660, 0.99825136, 0.49298629], 2891 [- 6.27127137, - 0.00108365, 0.00066438, 7.27018772, 0.99668776, 0.99825197, 0.49298647], 2892 [- 6.27127351, - 0.00108327, 0.00066415, 7.27019024, 0.99668892, 0.99825258, 0.49298665], 2893 [- 6.27127565, - 0.00108289, 0.00066392, 7.27019276, 0.99669008, 0.99825319, 0.49298685], 2894 [- 6.27127779, - 0.00108251, 0.00066369, 7.27019527, 0.99669124, 0.99825380, 0.49298701], 2895 [- 6.27127991, - 0.00108214, 0.00066345, 7.27019778, 0.99669240, 0.99825441, 0.49298719], 2896 [- 6.27128204, - 0.00108176, 0.00066322, 7.27020028, 0.99669356, 0.99825502, 0.49298735], 2897 [- 6.27128415, - 0.00108138, 0.00066299, 7.27020277, 0.99669471, 0.99825563, 0.49298754], 2898 [- 6.27128626, - 0.00108100, 0.00066276, 7.27020526, 0.99669587, 0.99825624, 0.49298772], 2899 [- 6.27128837, - 0.00108063, 0.00066253, 7.27020774, 0.99669702, 0.99825685, 0.49298787], 2900 [- 6.27129047, - 0.00108025, 0.00066230, 7.27021022, 0.99669817, 0.99825746, 0.49298806], 2901 [- 6.27129256, - 0.00107987, 0.00066206, 7.27021269, 0.99669933, 0.99825806, 0.49298822], 2902 [- 6.27129465, - 0.00107950, 0.00066183, 7.27021516, 0.99670048, 0.99825867, 0.49298838], 2903 [- 6.27129674, - 0.00107912, 0.00066160, 7.27021762, 0.99670163, 0.99825928, 0.49298857], 2904 [- 6.27129881, - 0.00107874, 0.00066137, 7.27022007, 0.99670278, 0.99825988, 0.49298872], 2905 [- 6.27130089, - 0.00107837, 0.00066114, 7.27022252, 0.99670393, 0.99826049, 0.49298890], 2906 [- 6.27130295, - 0.00107799, 0.00066091, 7.27022496, 0.99670508, 0.99826109, 0.49298906], 2907 [- 6.27130502, - 0.00107762, 0.00066068, 7.27022740, 0.99670622, 0.99826170, 0.49298921], 2908 [- 6.27130707, - 0.00107724, 0.00066045, 7.27022983, 0.99670737, 0.99826230, 0.49298942], 2909 [- 6.27130913, - 0.00107687, 0.00066022, 7.27023226, 0.99670852, 0.99826291, 0.49298958], 2910 [- 6.27131117, - 0.00107649, 0.00065999, 7.27023468, 0.99670966, 0.99826351, 0.49298977], 2911 [- 6.27131321, - 0.00107612, 0.00065976, 7.27023709, 0.99671081, 0.99826412, 0.49298992], 2912 [- 6.27131525, - 0.00107575, 0.00065953, 7.27023950, 0.99671195, 0.99826472, 0.49299011], 2913 [- 6.27131728, - 0.00107537, 0.00065931, 7.27024191, 0.99671309, 0.99826532, 0.49299028], 2914 [- 6.27131930, - 0.00107500, 0.00065908, 7.27024430, 0.99671423, 0.99826592, 0.49299042], 2915 [- 6.27132133, - 0.00107463, 0.00065885, 7.27024670, 0.99671538, 0.99826653, 0.49299058], 2916 [- 6.27132334, - 0.00107425, 0.00065862, 7.27024909, 0.99671652, 0.99826713, 0.49299077], 2917 [- 6.27132535, - 0.00107388, 0.00065839, 7.27025147, 0.99671766, 0.99826773, 0.49299096], 2918 [- 6.27132736, - 0.00107351, 0.00065816, 7.27025385, 0.99671879, 0.99826833, 0.49299111], 2919 [- 6.27132936, - 0.00107314, 0.00065793, 7.27025622, 0.99671993, 0.99826893, 0.49299126], 2920 [- 6.27133135, - 0.00107277, 0.00065771, 7.27025858, 0.99672107, 0.99826953, 0.49299144], 2921 [- 6.27133334, - 0.00107239, 0.00065748, 7.27026094, 0.99672221, 0.99827013, 0.49299160], 2922 [- 6.27133532, - 0.00107202, 0.00065725, 7.27026330, 0.99672334, 0.99827073, 0.49299180], 2923 [- 6.27133730, - 0.00107165, 0.00065702, 7.27026565, 0.99672448, 0.99827132, 0.49299193], 2924 [- 6.27133928, - 0.00107128, 0.00065680, 7.27026800, 0.99672561, 0.99827192, 0.49299212], 2925 [- 6.27134125, - 0.00107091, 0.00065657, 7.27027034, 0.99672674, 0.99827252, 0.49299227], 2926 [- 6.27134321, - 0.00107054, 0.00065634, 7.27027267, 0.99672788, 0.99827312, 0.49299243], 2927 [- 6.27134517, - 0.00107017, 0.00065611, 7.27027500, 0.99672901, 0.99827371, 0.49299259], 2928 [- 6.27134713, - 0.00106980, 0.00065589, 7.27027733, 0.99673014, 0.99827431, 0.49299280], 2929 [- 6.27134908, - 0.00106943, 0.00065566, 7.27027964, 0.99673127, 0.99827491, 0.49299296], 2930 [- 6.27135102, - 0.00106906, 0.00065543, 7.27028196, 0.99673240, 0.99827550, 0.49299309], 2931 [- 6.27135296, - 0.00106870, 0.00065521, 7.27028427, 0.99673353, 0.99827610, 0.49299327], 2932 [- 6.27135490, - 0.00106833, 0.00065498, 7.27028657, 0.99673466, 0.99827669, 0.49299344], 2933 [- 6.27135683, - 0.00106796, 0.00065476, 7.27028887, 0.99673578, 0.99827729, 0.49299361], 2934 [- 6.27135875, - 0.00106759, 0.00065453, 7.27029116, 0.99673691, 0.99827788, 0.49299378], 2935 [- 6.27136067, - 0.00106722, 0.00065430, 7.27029345, 0.99673804, 0.99827847, 0.49299395], 2936 [- 6.27136259, - 0.00106685, 0.00065408, 7.27029574, 0.99673916, 0.99827907, 0.49299413], 2937 [- 6.27136450, - 0.00106649, 0.00065385, 7.27029801, 0.99674028, 0.99827966, 0.49299427], 2938 [- 6.27136641, - 0.00106612, 0.00065363, 7.27030029, 0.99674141, 0.99828025, 0.49299442], 2939 [- 6.27136831, - 0.00106575, 0.00065340, 7.27030256, 0.99674253, 0.99828084, 0.49299460], 2940 [- 6.27137021, - 0.00106539, 0.00065318, 7.27030482, 0.99674365, 0.99828143, 0.49299474], 2941 [- 6.27137210, - 0.00106502, 0.00065295, 7.27030708, 0.99674477, 0.99828203, 0.49299490], 2942 [- 6.27137399, - 0.00106465, 0.00065273, 7.27030933, 0.99674589, 0.99828262, 0.49299509], 2943 [- 6.27137587, - 0.00106429, 0.00065250, 7.27031158, 0.99674701, 0.99828321, 0.49299525], 2944 [- 6.27137775, - 0.00106392, 0.00065228, 7.27031382, 0.99674813, 0.99828380, 0.49299541], 2945 [- 6.27137962, - 0.00106356, 0.00065206, 7.27031606, 0.99674925, 0.99828439, 0.49299561], 2946 [- 6.27138149, - 0.00106319, 0.00065183, 7.27031830, 0.99675037, 0.99828497, 0.49299573], 2947 [- 6.27138335, - 0.00106283, 0.00065161, 7.27032053, 0.99675148, 0.99828556, 0.49299589], 2948 [- 6.27138521, - 0.00106246, 0.00065139, 7.27032275, 0.99675260, 0.99828615, 0.49299603], 2949 [- 6.27138707, - 0.00106210, 0.00065116, 7.27032497, 0.99675371, 0.99828674, 0.49299621], 2950 [- 6.27138892, - 0.00106173, 0.00065094, 7.27032719, 0.99675483, 0.99828733, 0.49299635], 2951 [- 6.27139077, - 0.00106137, 0.00065072, 7.27032940, 0.99675594, 0.99828791, 0.49299653], 2952 [- 6.27139261, - 0.00106101, 0.00065049, 7.27033160, 0.99675705, 0.99828850, 0.49299670], 2953 [- 6.27139445, - 0.00106064, 0.00065027, 7.27033380, 0.99675816, 0.99828909, 0.49299687], 2954 [- 6.27139628, - 0.00106028, 0.00065005, 7.27033600, 0.99675928, 0.99828967, 0.49299705], 2955 [- 6.27139811, - 0.00105992, 0.00064982, 7.27033819, 0.99676039, 0.99829026, 0.49299718], 2956 [- 6.27139993, - 0.00105956, 0.00064960, 7.27034037, 0.99676150, 0.99829084, 0.49299736], 2957 [- 6.27140175, - 0.00105919, 0.00064938, 7.27034256, 0.99676260, 0.99829143, 0.49299751], 2958 [- 6.27140356, - 0.00105883, 0.00064916, 7.27034473, 0.99676371, 0.99829201, 0.49299765], 2959 [- 6.27140537, - 0.00105847, 0.00064893, 7.27034690, 0.99676482, 0.99829260, 0.49299782], 2960 [- 6.27140718, - 0.00105811, 0.00064871, 7.27034907, 0.99676593, 0.99829318, 0.49299800], 2961 [- 6.27140898, - 0.00105775, 0.00064849, 7.27035123, 0.99676703, 0.99829376, 0.49299816], 2962 [- 6.27141078, - 0.00105739, 0.00064827, 7.27035339, 0.99676814, 0.99829434, 0.49299833], 2963 [- 6.27141257, - 0.00105702, 0.00064805, 7.27035555, 0.99676924, 0.99829493, 0.49299845], 2964 [- 6.27141436, - 0.00105666, 0.00064783, 7.27035770, 0.99677034, 0.99829551, 0.49299862], 2965 [- 6.27141614, - 0.00105630, 0.00064761, 7.27035984, 0.99677145, 0.99829609, 0.49299878], 2966 [- 6.27141792, - 0.00105594, 0.00064739, 7.27036198, 0.99677255, 0.99829667, 0.49299891], 2967 [- 6.27141970, - 0.00105558, 0.00064716, 7.27036412, 0.99677365, 0.99829725, 0.49299912], 2968 [- 6.27142147, - 0.00105522, 0.00064694, 7.27036625, 0.99677475, 0.99829783, 0.49299926], 2969 [- 6.27142324, - 0.00105486, 0.00064672, 7.27036837, 0.99677585, 0.99829841, 0.49299943], 2970 [- 6.27142500, - 0.00105451, 0.00064650, 7.27037050, 0.99677695, 0.99829899, 0.49299955], 2971 [- 6.27142676, - 0.00105415, 0.00064628, 7.27037261, 0.99677805, 0.99829957, 0.49299971], 2972 [- 6.27142851, - 0.00105379, 0.00064606, 7.27037473, 0.99677914, 0.99830015, 0.49299984], 2973 [- 6.27143026, - 0.00105343, 0.00064584, 7.27037683, 0.99678024, 0.99830073, 0.49300001], 2974 [- 6.27143201, - 0.00105307, 0.00064562, 7.27037894, 0.99678134, 0.99830131, 0.49300017], 2975 [- 6.27143375, - 0.00105271, 0.00064540, 7.27038104, 0.99678243, 0.99830188, 0.49300033], 2976 [- 6.27143549, - 0.00105236, 0.00064518, 7.27038313, 0.99678353, 0.99830246, 0.49300050], 2977 [- 6.27143722, - 0.00105200, 0.00064496, 7.27038522, 0.99678462, 0.99830304, 0.49300065], 2978 [- 6.27143895, - 0.00105164, 0.00064475, 7.27038731, 0.99678571, 0.99830361, 0.49300081], 2979 [- 6.27144068, - 0.00105128, 0.00064453, 7.27038939, 0.99678681, 0.99830419, 0.49300096], 2980 [- 6.27144240, - 0.00105093, 0.00064431, 7.27039147, 0.99678790, 0.99830477, 0.49300112], 2981 [- 6.27144412, - 0.00105057, 0.00064409, 7.27039355, 0.99678899, 0.99830534, 0.49300126], 2982 [- 6.27144583, - 0.00105021, 0.00064387, 7.27039561, 0.99679008, 0.99830592, 0.49300141], 2983 [- 6.27144754, - 0.00104986, 0.00064365, 7.27039768, 0.99679117, 0.99830649, 0.49300158], 2984 [- 6.27144924, - 0.00104950, 0.00064343, 7.27039974, 0.99679226, 0.99830706, 0.49300174], 2985 [- 6.27145094, - 0.00104915, 0.00064322, 7.27040180, 0.99679334, 0.99830764, 0.49300191], 2986 [- 6.27145264, - 0.00104879, 0.00064300, 7.27040385, 0.99679443, 0.99830821, 0.49300203], 2987 [- 6.27145433, - 0.00104844, 0.00064278, 7.27040590, 0.99679552, 0.99830878, 0.49300220], 2988 [- 6.27145602, - 0.00104808, 0.00064256, 7.27040794, 0.99679660, 0.99830936, 0.49300234], 2989 [- 6.27145771, - 0.00104773, 0.00064234, 7.27040998, 0.99679769, 0.99830993, 0.49300248], 2990 [- 6.27145939, - 0.00104737, 0.00064213, 7.27041202, 0.99679877, 0.99831050, 0.49300264], 2991 [- 6.27146107, - 0.00104702, 0.00064191, 7.27041405, 0.99679986, 0.99831107, 0.49300280], 2992 [- 6.27146274, - 0.00104667, 0.00064169, 7.27041607, 0.99680094, 0.99831164, 0.49300294], 2993 [- 6.27146441, - 0.00104631, 0.00064148, 7.27041810, 0.99680202, 0.99831221, 0.49300310], 2994 [- 6.27146607, - 0.00104596, 0.00064126, 7.27042012, 0.99680310, 0.99831278, 0.49300325], 2995 [- 6.27146774, - 0.00104561, 0.00064104, 7.27042213, 0.99680418, 0.99831335, 0.49300340], 2996 [- 6.27146939, - 0.00104525, 0.00064083, 7.27042414, 0.99680526, 0.99831392, 0.49300357], 2997 [- 6.27147105, - 0.00104490, 0.00064061, 7.27042615, 0.99680634, 0.99831449, 0.49300370], 2998 [- 6.27147270, - 0.00104455, 0.00064039, 7.27042815, 0.99680742, 0.99831506, 0.49300390], 2999 [- 6.27147434, - 0.00104420, 0.00064018, 7.27043015, 0.99680850, 0.99831563, 0.49300402], 3000 [- 6.27147599, - 0.00104384, 0.00063996, 7.27043214, 0.99680957, 0.99831620, 0.49300417], 3001 [- 6.27147762, - 0.00104349, 0.00063975, 7.27043413, 0.99681065, 0.99831676, 0.49300431], 3002 [- 6.27147926, - 0.00104314, 0.00063953, 7.27043612, 0.99681172, 0.99831733, 0.49300449], 3003 [- 6.27148089, - 0.00104279, 0.00063931, 7.27043810, 0.99681280, 0.99831790, 0.49300460], 3004 [- 6.27148252, - 0.00104244, 0.00063910, 7.27044008, 0.99681387, 0.99831846, 0.49300478], 3005 [- 6.27148414, - 0.00104209, 0.00063888, 7.27044205, 0.99681495, 0.99831903, 0.49300494], 3006 [- 6.27148576, - 0.00104174, 0.00063867, 7.27044402, 0.99681602, 0.99831959, 0.49300507], 3007 [- 6.27148738, - 0.00104139, 0.00063845, 7.27044599, 0.99681709, 0.99832016, 0.49300523], 3008 [- 6.27148899, - 0.00104104, 0.00063824, 7.27044795, 0.99681816, 0.99832072, 0.49300537], 3009 [- 6.27149060, - 0.00104069, 0.00063802, 7.27044991, 0.99681923, 0.99832129, 0.49300552], 3010 [- 6.27149220, - 0.00104034, 0.00063781, 7.27045186, 0.99682030, 0.99832185, 0.49300567], 3011 [- 6.27149380, - 0.00103999, 0.00063760, 7.27045382, 0.99682137, 0.99832242, 0.49300583], 3012 [- 6.27149540, - 0.00103964, 0.00063738, 7.27045576, 0.99682244, 0.99832298, 0.49300595], 3013 [- 6.27149699, - 0.00103929, 0.00063717, 7.27045771, 0.99682351, 0.99832354, 0.49300609], 3014 [- 6.27149859, - 0.00103894, 0.00063695, 7.27045964, 0.99682457, 0.99832411, 0.49300627], 3015 [- 6.27150017, - 0.00103859, 0.00063674, 7.27046158, 0.99682564, 0.99832467, 0.49300642], 3016 [- 6.27150175, - 0.00103824, 0.00063653, 7.27046351, 0.99682670, 0.99832523, 0.49300653], 3017 [- 6.27150333, - 0.00103790, 0.00063631, 7.27046544, 0.99682777, 0.99832579, 0.49300671], 3018 [- 6.27150491, - 0.00103755, 0.00063610, 7.27046736, 0.99682883, 0.99832635, 0.49300686], 3019 [- 6.27150648, - 0.00103720, 0.00063589, 7.27046928, 0.99682990, 0.99832691, 0.49300700], 3020 [- 6.27150805, - 0.00103685, 0.00063567, 7.27047120, 0.99683096, 0.99832747, 0.49300717], 3021 [- 6.27150962, - 0.00103651, 0.00063546, 7.27047311, 0.99683202, 0.99832803, 0.49300731], 3022 [- 6.27151118, - 0.00103616, 0.00063525, 7.27047502, 0.99683308, 0.99832859, 0.49300742], 3023 [- 6.27151274, - 0.00103581, 0.00063503, 7.27047692, 0.99683414, 0.99832915, 0.49300759], 3024 [- 6.27151429, - 0.00103547, 0.00063482, 7.27047882, 0.99683520, 0.99832971, 0.49300775], 3025 [- 6.27151584, - 0.00103512, 0.00063461, 7.27048072, 0.99683626, 0.99833027, 0.49300787], 3026 [- 6.27151739, - 0.00103478, 0.00063440, 7.27048262, 0.99683732, 0.99833083, 0.49300803], 3027 [- 6.27151893, - 0.00103443, 0.00063419, 7.27048451, 0.99683838, 0.99833138, 0.49300818], 3028 [- 6.27152048, - 0.00103408, 0.00063397, 7.27048639, 0.99683943, 0.99833194, 0.49300831], 3029 [- 6.27152201, - 0.00103374, 0.00063376, 7.27048827, 0.99684049, 0.99833250, 0.49300846], 3030 [- 6.27152355, - 0.00103339, 0.00063355, 7.27049015, 0.99684154, 0.99833306, 0.49300863], 3031 [- 6.27152508, - 0.00103305, 0.00063334, 7.27049203, 0.99684260, 0.99833361, 0.49300877], 3032 [- 6.27152660, - 0.00103270, 0.00063313, 7.27049390, 0.99684365, 0.99833417, 0.49300891], 3033 [- 6.27152813, - 0.00103236, 0.00063292, 7.27049577, 0.99684471, 0.99833472, 0.49300907], 3034 [- 6.27152965, - 0.00103202, 0.00063271, 7.27049763, 0.99684576, 0.99833528, 0.49300922], 3035 [- 6.27153117, - 0.00103167, 0.00063249, 7.27049949, 0.99684681, 0.99833583, 0.49300935], 3036 [- 6.27153268, - 0.00103133, 0.00063228, 7.27050135, 0.99684786, 0.99833639, 0.49300949], 3037 [- 6.27153419, - 0.00103099, 0.00063207, 7.27050320, 0.99684891, 0.99833694, 0.49300966], 3038 [- 6.27153570, - 0.00103064, 0.00063186, 7.27050505, 0.99684996, 0.99833749, 0.49300980], 3039 [- 6.27153720, - 0.00103030, 0.00063165, 7.27050690, 0.99685101, 0.99833805, 0.49300992], 3040 [- 6.27153870, - 0.00102996, 0.00063144, 7.27050874, 0.99685206, 0.99833860, 0.49301003], 3041 [- 6.27154020, - 0.00102961, 0.00063123, 7.27051058, 0.99685311, 0.99833915, 0.49301024], 3042 [- 6.27154169, - 0.00102927, 0.00063102, 7.27051242, 0.99685415, 0.99833971, 0.49301036], 3043 [- 6.27154318, - 0.00102893, 0.00063081, 7.27051425, 0.99685520, 0.99834026, 0.49301051], 3044 [- 6.27154467, - 0.00102859, 0.00063060, 7.27051608, 0.99685625, 0.99834081, 0.49301064], 3045 [- 6.27154615, - 0.00102825, 0.00063039, 7.27051791, 0.99685729, 0.99834136, 0.49301076], 3046 [- 6.27154763, - 0.00102791, 0.00063018, 7.27051973, 0.99685834, 0.99834191, 0.49301089], 3047 [- 6.27154911, - 0.00102756, 0.00062997, 7.27052155, 0.99685938, 0.99834246, 0.49301105], 3048 [- 6.27155059, - 0.00102722, 0.00062976, 7.27052336, 0.99686042, 0.99834301, 0.49301119], 3049 [- 6.27155206, - 0.00102688, 0.00062956, 7.27052517, 0.99686146, 0.99834356, 0.49301134], 3050 [- 6.27155352, - 0.00102654, 0.00062935, 7.27052698, 0.99686251, 0.99834411, 0.49301148], 3051 [- 6.27155499, - 0.00102620, 0.00062914, 7.27052879, 0.99686355, 0.99834466, 0.49301163], 3052 [- 6.27155645, - 0.00102586, 0.00062893, 7.27053059, 0.99686459, 0.99834521, 0.49301176], 3053 [- 6.27155791, - 0.00102552, 0.00062872, 7.27053239, 0.99686563, 0.99834576, 0.49301188], 3054 [- 6.27155936, - 0.00102518, 0.00062851, 7.27053418, 0.99686666, 0.99834630, 0.49301206], 3055 [- 6.27156082, - 0.00102484, 0.00062830, 7.27053597, 0.99686770, 0.99834685, 0.49301220], 3056 [- 6.27156226, - 0.00102451, 0.00062810, 7.27053776, 0.99686874, 0.99834740, 0.49301233], 3057 [- 6.27156371, - 0.00102417, 0.00062789, 7.27053954, 0.99686978, 0.99834794, 0.49301246], 3058 [- 6.27156515, - 0.00102383, 0.00062768, 7.27054132, 0.99687081, 0.99834849, 0.49301262], 3059 [- 6.27156659, - 0.00102349, 0.00062747, 7.27054310, 0.99687185, 0.99834904, 0.49301280], 3060 [- 6.27156803, - 0.00102315, 0.00062727, 7.27054488, 0.99687288, 0.99834958, 0.49301294], 3061 [- 6.27156946, - 0.00102281, 0.00062706, 7.27054665, 0.99687392, 0.99835013, 0.49301309], 3062 [- 6.27157089, - 0.00102248, 0.00062685, 7.27054842, 0.99687495, 0.99835067, 0.49301319], 3063 [- 6.27157232, - 0.00102214, 0.00062664, 7.27055018, 0.99687598, 0.99835122, 0.49301335], 3064 [- 6.27157374, - 0.00102180, 0.00062644, 7.27055194, 0.99687701, 0.99835176, 0.49301345], 3065 [- 6.27157517, - 0.00102146, 0.00062623, 7.27055370, 0.99687805, 0.99835231, 0.49301362], 3066 [- 6.27157658, - 0.00102113, 0.00062602, 7.27055546, 0.99687908, 0.99835285, 0.49301372], 3067 [- 6.27157800, - 0.00102079, 0.00062582, 7.27055721, 0.99688011, 0.99835339, 0.49301383], 3068 [- 6.27157941, - 0.00102045, 0.00062561, 7.27055896, 0.99688113, 0.99835393, 0.49301405], 3069 [- 6.27158082, - 0.00102012, 0.00062540, 7.27056070, 0.99688216, 0.99835448, 0.49301418], 3070 [- 6.27158223, - 0.00101978, 0.00062520, 7.27056244, 0.99688319, 0.99835502, 0.49301433], 3071 [- 6.27158363, - 0.00101945, 0.00062499, 7.27056418, 0.99688422, 0.99835556, 0.49301444], 3072 [- 6.27158503, - 0.00101911, 0.00062479, 7.27056592, 0.99688524, 0.99835610, 0.49301454], 3073 [- 6.27158643, - 0.00101878, 0.00062458, 7.27056765, 0.99688627, 0.99835664, 0.49301468], 3074 [- 6.27158782, - 0.00101844, 0.00062438, 7.27056938, 0.99688730, 0.99835718, 0.49301483], 3075 [- 6.27158921, - 0.00101811, 0.00062417, 7.27057111, 0.99688832, 0.99835772, 0.49301499], 3076 [- 6.27159060, - 0.00101777, 0.00062396, 7.27057283, 0.99688934, 0.99835826, 0.49301513], 3077 [- 6.27159199, - 0.00101744, 0.00062376, 7.27057455, 0.99689037, 0.99835880, 0.49301528], 3078 [- 6.27159337, - 0.00101710, 0.00062355, 7.27057627, 0.99689139, 0.99835934, 0.49301541], 3079 [- 6.27159475, - 0.00101677, 0.00062335, 7.27057798, 0.99689241, 0.99835988, 0.49301553], 3080 [- 6.27159613, - 0.00101644, 0.00062314, 7.27057969, 0.99689343, 0.99836042, 0.49301569], 3081 [- 6.27159750, - 0.00101610, 0.00062294, 7.27058140, 0.99689445, 0.99836096, 0.49301584], 3082 [- 6.27159887, - 0.00101577, 0.00062274, 7.27058310, 0.99689547, 0.99836150, 0.49301593], 3083 [- 6.27160024, - 0.00101544, 0.00062253, 7.27058480, 0.99689649, 0.99836203, 0.49301608], 3084 [- 6.27160160, - 0.00101510, 0.00062233, 7.27058650, 0.99689751, 0.99836257, 0.49301621], 3085 [- 6.27160297, - 0.00101477, 0.00062212, 7.27058820, 0.99689853, 0.99836311, 0.49301634], 3086 [- 6.27160433, - 0.00101444, 0.00062192, 7.27058989, 0.99689954, 0.99836364, 0.49301647], 3087 [- 6.27160568, - 0.00101410, 0.00062171, 7.27059158, 0.99690056, 0.99836418, 0.49301663], 3088 [- 6.27160704, - 0.00101377, 0.00062151, 7.27059327, 0.99690158, 0.99836472, 0.49301679], 3089 [- 6.27160839, - 0.00101344, 0.00062131, 7.27059495, 0.99690259, 0.99836525, 0.49301693], 3090 [- 6.27160974, - 0.00101311, 0.00062110, 7.27059663, 0.99690361, 0.99836579, 0.49301706], 3091 [- 6.27161108, - 0.00101278, 0.00062090, 7.27059831, 0.99690462, 0.99836632, 0.49301722], 3092 [- 6.27161243, - 0.00101245, 0.00062070, 7.27059998, 0.99690563, 0.99836686, 0.49301730], 3093 [- 6.27161377, - 0.00101212, 0.00062049, 7.27060165, 0.99690664, 0.99836739, 0.49301748], 3094 [- 6.27161511, - 0.00101179, 0.00062029, 7.27060332, 0.99690766, 0.99836792, 0.49301757], 3095 [- 6.27161644, - 0.00101146, 0.00062009, 7.27060499, 0.99690867, 0.99836846, 0.49301772], 3096 [- 6.27161777, - 0.00101112, 0.00061989, 7.27060665, 0.99690968, 0.99836899, 0.49301787], 3097 [- 6.27161910, - 0.00101079, 0.00061968, 7.27060831, 0.99691069, 0.99836952, 0.49301798], 3098 [- 6.27162043, - 0.00101046, 0.00061948, 7.27060996, 0.99691170, 0.99837005, 0.49301811], 3099 [- 6.27162175, - 0.00101014, 0.00061928, 7.27061162, 0.99691271, 0.99837059, 0.49301825], 3100 [- 6.27162307, - 0.00100981, 0.00061908, 7.27061327, 0.99691371, 0.99837112, 0.49301840], 3101 [- 6.27162439, - 0.00100948, 0.00061887, 7.27061492, 0.99691472, 0.99837165, 0.49301855], 3102 [- 6.27162571, - 0.00100915, 0.00061867, 7.27061656, 0.99691573, 0.99837218, 0.49301866], 3103 [- 6.27162702, - 0.00100882, 0.00061847, 7.27061820, 0.99691673, 0.99837271, 0.49301881], 3104 [- 6.27162833, - 0.00100849, 0.00061827, 7.27061984, 0.99691774, 0.99837324, 0.49301892], 3105 [- 6.27162964, - 0.00100816, 0.00061807, 7.27062148, 0.99691874, 0.99837377, 0.49301906], 3106 [- 6.27163095, - 0.00100783, 0.00061787, 7.27062311, 0.99691975, 0.99837430, 0.49301923], 3107 [- 6.27163225, - 0.00100751, 0.00061767, 7.27062474, 0.99692075, 0.99837483, 0.49301935], 3108 [- 6.27163355, - 0.00100718, 0.00061746, 7.27062637, 0.99692175, 0.99837536, 0.49301944], 3109 [- 6.27163485, - 0.00100685, 0.00061726, 7.27062800, 0.99692275, 0.99837589, 0.49301961], 3110 [- 6.27163614, - 0.00100652, 0.00061706, 7.27062962, 0.99692375, 0.99837641, 0.49301974], 3111 [- 6.27163743, - 0.00100620, 0.00061686, 7.27063124, 0.99692476, 0.99837694, 0.49301990], 3112 [- 6.27163872, - 0.00100587, 0.00061666, 7.27063285, 0.99692576, 0.99837747, 0.49301996], 3113 [- 6.27164001, - 0.00100554, 0.00061646, 7.27063447, 0.99692675, 0.99837800, 0.49302013], 3114 [- 6.27164130, - 0.00100522, 0.00061626, 7.27063608, 0.99692775, 0.99837852, 0.49302024], 3115 [- 6.27164258, - 0.00100489, 0.00061606, 7.27063769, 0.99692875, 0.99837905, 0.49302039], 3116 [- 6.27164386, - 0.00100456, 0.00061586, 7.27063929, 0.99692975, 0.99837957, 0.49302050], 3117 [- 6.27164513, - 0.00100424, 0.00061566, 7.27064090, 0.99693075, 0.99838010, 0.49302064], 3118 [- 6.27164641, - 0.00100391, 0.00061546, 7.27064250, 0.99693174, 0.99838063, 0.49302080], 3119 [- 6.27164768, - 0.00100359, 0.00061526, 7.27064409, 0.99693274, 0.99838115, 0.49302092], 3120 [- 6.27164895, - 0.00100326, 0.00061506, 7.27064569, 0.99693373, 0.99838168, 0.49302106], 3121 [- 6.27165022, - 0.00100294, 0.00061486, 7.27064728, 0.99693473, 0.99838220, 0.49302117], 3122 [- 6.27165148, - 0.00100261, 0.00061466, 7.27064887, 0.99693572, 0.99838272, 0.49302135], 3123 [- 6.27165274, - 0.00100229, 0.00061446, 7.27065045, 0.99693671, 0.99838325, 0.49302147], 3124 [- 6.27165400, - 0.00100196, 0.00061427, 7.27065204, 0.99693770, 0.99838377, 0.49302161], 3125 [- 6.27165526, - 0.00100164, 0.00061407, 7.27065362, 0.99693870, 0.99838429, 0.49302174], 3126 [- 6.27165651, - 0.00100132, 0.00061387, 7.27065520, 0.99693969, 0.99838482, 0.49302182], 3127 [- 6.27165777, - 0.00100099, 0.00061367, 7.27065677, 0.99694068, 0.99838534, 0.49302200], 3128 [- 6.27165902, - 0.00100067, 0.00061347, 7.27065835, 0.99694167, 0.99838586, 0.49302214], 3129 [- 6.27166026, - 0.00100035, 0.00061327, 7.27065992, 0.99694266, 0.99838638, 0.49302227], 3130 [- 6.27166151, - 0.00100002, 0.00061307, 7.27066149, 0.99694364, 0.99838690, 0.49302237], 3131 [- 6.27166275, - 0.00099970, 0.00061288, 7.27066305, 0.99694463, 0.99838742, 0.49302253], 3132 [- 6.27166399, - 0.00099938, 0.00061268, 7.27066461, 0.99694562, 0.99838795, 0.49302264], 3133 [- 6.27166523, - 0.00099905, 0.00061248, 7.27066617, 0.99694660, 0.99838847, 0.49302277], 3134 [- 6.27166646, - 0.00099873, 0.00061228, 7.27066773, 0.99694759, 0.99838899, 0.49302290], 3135 [- 6.27166770, - 0.00099841, 0.00061208, 7.27066928, 0.99694858, 0.99838951, 0.49302301], 3136 [- 6.27166893, - 0.00099809, 0.00061189, 7.27067084, 0.99694956, 0.99839002, 0.49302315], 3137 [- 6.27167015, - 0.00099777, 0.00061169, 7.27067239, 0.99695054, 0.99839054, 0.49302331], 3138 [- 6.27167138, - 0.00099745, 0.00061149, 7.27067393, 0.99695153, 0.99839106, 0.49302343], 3139 [- 6.27167260, - 0.00099712, 0.00061130, 7.27067548, 0.99695251, 0.99839158, 0.49302354], 3140 [- 6.27167382, - 0.00099680, 0.00061110, 7.27067702, 0.99695349, 0.99839210, 0.49302367], 3141 [- 6.27167504, - 0.00099648, 0.00061090, 7.27067856, 0.99695447, 0.99839262, 0.49302378], 3142 [- 6.27167626, - 0.00099616, 0.00061070, 7.27068010, 0.99695545, 0.99839313, 0.49302391], 3143 [- 6.27167747, - 0.00099584, 0.00061051, 7.27068163, 0.99695643, 0.99839365, 0.49302405], 3144 [- 6.27167868, - 0.00099552, 0.00061031, 7.27068316, 0.99695741, 0.99839417, 0.49302418], 3145 [- 6.27167989, - 0.00099520, 0.00061012, 7.27068469, 0.99695839, 0.99839468, 0.49302428], 3146 [- 6.27168110, - 0.00099488, 0.00060992, 7.27068622, 0.99695937, 0.99839520, 0.49302442], 3147 [- 6.27168231, - 0.00099456, 0.00060972, 7.27068774, 0.99696035, 0.99839571, 0.49302457], 3148 [- 6.27168351, - 0.00099424, 0.00060953, 7.27068927, 0.99696133, 0.99839623, 0.49302469], 3149 [- 6.27168471, - 0.00099392, 0.00060933, 7.27069078, 0.99696230, 0.99839674, 0.49302483], 3150 [- 6.27168591, - 0.00099360, 0.00060914, 7.27069230, 0.99696328, 0.99839726, 0.49302493], 3151 [- 6.27168710, - 0.00099329, 0.00060894, 7.27069382, 0.99696425, 0.99839777, 0.49302510], 3152 [- 6.27168829, - 0.00099297, 0.00060874, 7.27069533, 0.99696523, 0.99839829, 0.49302519], 3153 [- 6.27168949, - 0.00099265, 0.00060855, 7.27069684, 0.99696620, 0.99839880, 0.49302531], 3154 [- 6.27169067, - 0.00099233, 0.00060835, 7.27069834, 0.99696717, 0.99839931, 0.49302546], 3155 [- 6.27169186, - 0.00099201, 0.00060816, 7.27069985, 0.99696815, 0.99839983, 0.49302559], 3156 [- 6.27169305, - 0.00099170, 0.00060796, 7.27070135, 0.99696912, 0.99840034, 0.49302572], 3157 [- 6.27169423, - 0.00099138, 0.00060777, 7.27070285, 0.99697009, 0.99840085, 0.49302581], 3158 [- 6.27169541, - 0.00099106, 0.00060757, 7.27070435, 0.99697106, 0.99840137, 0.49302594], 3159 [- 6.27169659, - 0.00099074, 0.00060738, 7.27070584, 0.99697203, 0.99840188, 0.49302606], 3160 [- 6.27169776, - 0.00099043, 0.00060719, 7.27070734, 0.99697300, 0.99840239, 0.49302620], 3161 [- 6.27169893, - 0.00099011, 0.00060699, 7.27070883, 0.99697397, 0.99840290, 0.49302635], 3162 [- 6.27170011, - 0.00098979, 0.00060680, 7.27071031, 0.99697494, 0.99840341, 0.49302644], 3163 [- 6.27170128, - 0.00098948, 0.00060660, 7.27071180, 0.99697590, 0.99840392, 0.49302662], 3164 [- 6.27170244, - 0.00098916, 0.00060641, 7.27071328, 0.99697687, 0.99840443, 0.49302676], 3165 [- 6.27170361, - 0.00098884, 0.00060622, 7.27071476, 0.99697784, 0.99840494, 0.49302682], 3166 [- 6.27170477, - 0.00098853, 0.00060602, 7.27071624, 0.99697880, 0.99840545, 0.49302696], 3167 [- 6.27170593, - 0.00098821, 0.00060583, 7.27071772, 0.99697977, 0.99840596, 0.49302711], 3168 [- 6.27170709, - 0.00098790, 0.00060563, 7.27071919, 0.99698073, 0.99840647, 0.49302721], 3169 [- 6.27170825, - 0.00098758, 0.00060544, 7.27072066, 0.99698170, 0.99840698, 0.49302733], 3170 [- 6.27170940, - 0.00098727, 0.00060525, 7.27072213, 0.99698266, 0.99840748, 0.49302748], 3171 [- 6.27171055, - 0.00098695, 0.00060505, 7.27072360, 0.99698362, 0.99840799, 0.49302765], 3172 [- 6.27171170, - 0.00098664, 0.00060486, 7.27072506, 0.99698459, 0.99840850, 0.49302773], 3173 [- 6.27171285, - 0.00098633, 0.00060467, 7.27072652, 0.99698555, 0.99840901, 0.49302786], 3174 [- 6.27171399, - 0.00098601, 0.00060448, 7.27072798, 0.99698651, 0.99840951, 0.49302797], 3175 [- 6.27171514, - 0.00098570, 0.00060428, 7.27072944, 0.99698747, 0.99841002, 0.49302811], 3176 [- 6.27171628, - 0.00098538, 0.00060409, 7.27073090, 0.99698843, 0.99841053, 0.49302824], 3177 [- 6.27171742, - 0.00098507, 0.00060390, 7.27073235, 0.99698939, 0.99841103, 0.49302835], 3178 [- 6.27171856, - 0.00098476, 0.00060371, 7.27073380, 0.99699035, 0.99841154, 0.49302848], 3179 [- 6.27171969, - 0.00098444, 0.00060351, 7.27073525, 0.99699130, 0.99841204, 0.49302858], 3180 [- 6.27172082, - 0.00098413, 0.00060332, 7.27073669, 0.99699226, 0.99841255, 0.49302871], 3181 [- 6.27172196, - 0.00098382, 0.00060313, 7.27073814, 0.99699322, 0.99841305, 0.49302887], 3182 [- 6.27172309, - 0.00098351, 0.00060294, 7.27073958, 0.99699417, 0.99841356, 0.49302895], 3183 [- 6.27172421, - 0.00098319, 0.00060275, 7.27074102, 0.99699513, 0.99841406, 0.49302912], 3184 [- 6.27172534, - 0.00098288, 0.00060256, 7.27074246, 0.99699608, 0.99841456, 0.49302925], 3185 [- 6.27172646, - 0.00098257, 0.00060236, 7.27074389, 0.99699704, 0.99841507, 0.49302935], 3186 [- 6.27172758, - 0.00098226, 0.00060217, 7.27074532, 0.99699799, 0.99841557, 0.49302945], 3187 [- 6.27172870, - 0.00098195, 0.00060198, 7.27074676, 0.99699894, 0.99841607, 0.49302959], 3188 [- 6.27172982, - 0.00098163, 0.00060179, 7.27074818, 0.99699990, 0.99841657, 0.49302970], 3189 [- 6.27173093, - 0.00098132, 0.00060160, 7.27074961, 0.99700085, 0.99841708, 0.49302981], 3190 [- 6.27173205, - 0.00098101, 0.00060141, 7.27075103, 0.99700180, 0.99841758, 0.49302992], 3191 [- 6.27173316, - 0.00098070, 0.00060122, 7.27075246, 0.99700275, 0.99841808, 0.49303009], 3192 [- 6.27173427, - 0.00098039, 0.00060103, 7.27075388, 0.99700370, 0.99841858, 0.49303019], 3193 [- 6.27173537, - 0.00098008, 0.00060084, 7.27075529, 0.99700465, 0.99841908, 0.49303031], 3194 [- 6.27173648, - 0.00097977, 0.00060065, 7.27075671, 0.99700560, 0.99841958, 0.49303044], 3195 [- 6.27173758, - 0.00097946, 0.00060046, 7.27075812, 0.99700655, 0.99842008, 0.49303056], 3196 [- 6.27173868, - 0.00097915, 0.00060027, 7.27075953, 0.99700749, 0.99842058, 0.49303069], 3197 [- 6.27173978, - 0.00097884, 0.00060008, 7.27076094, 0.99700844, 0.99842108, 0.49303080], 3198 [- 6.27174088, - 0.00097853, 0.00059989, 7.27076235, 0.99700939, 0.99842158, 0.49303094], 3199 [- 6.27174198, - 0.00097822, 0.00059970, 7.27076375, 0.99701033, 0.99842208, 0.49303107], 3200 [- 6.27174307, - 0.00097791, 0.00059951, 7.27076516, 0.99701128, 0.99842258, 0.49303120], 3201 [- 6.27174416, - 0.00097761, 0.00059932, 7.27076656, 0.99701222, 0.99842308, 0.49303132], 3202 [- 6.27174525, - 0.00097730, 0.00059913, 7.27076795, 0.99701317, 0.99842357, 0.49303142], 3203 [- 6.27174634, - 0.00097699, 0.00059894, 7.27076935, 0.99701411, 0.99842407, 0.49303154], 3204 [- 6.27174743, - 0.00097668, 0.00059875, 7.27077075, 0.99701505, 0.99842457, 0.49303168], 3205 [- 6.27174851, - 0.00097637, 0.00059856, 7.27077214, 0.99701599, 0.99842507, 0.49303176], 3206 [- 6.27174959, - 0.00097606, 0.00059837, 7.27077353, 0.99701693, 0.99842556, 0.49303192], 3207 [- 6.27175067, - 0.00097576, 0.00059818, 7.27077491, 0.99701788, 0.99842606, 0.49303205], 3208 [- 6.27175175, - 0.00097545, 0.00059800, 7.27077630, 0.99701882, 0.99842656, 0.49303212], 3209 [- 6.27175283, - 0.00097514, 0.00059781, 7.27077769, 0.99701976, 0.99842705, 0.49303223], 3210 [- 6.27175390, - 0.00097484, 0.00059762, 7.27077907, 0.99702070, 0.99842755, 0.49303239], 3211 [- 6.27175497, - 0.00097453, 0.00059743, 7.27078045, 0.99702163, 0.99842804, 0.49303247], 3212 [- 6.27175605, - 0.00097422, 0.00059724, 7.27078182, 0.99702257, 0.99842854, 0.49303263], 3213 [- 6.27175712, - 0.00097392, 0.00059705, 7.27078320, 0.99702351, 0.99842903, 0.49303277], 3214 [- 6.27175818, - 0.00097361, 0.00059687, 7.27078457, 0.99702445, 0.99842952, 0.49303287], 3215 [- 6.27175925, - 0.00097330, 0.00059668, 7.27078595, 0.99702538, 0.99843002, 0.49303298], 3216 [- 6.27176031, - 0.00097300, 0.00059649, 7.27078731, 0.99702632, 0.99843051, 0.49303309], 3217 [- 6.27176137, - 0.00097269, 0.00059630, 7.27078868, 0.99702725, 0.99843101, 0.49303324], 3218 [- 6.27176243, - 0.00097239, 0.00059612, 7.27079005, 0.99702819, 0.99843150, 0.49303337], 3219 [- 6.27176349, - 0.00097208, 0.00059593, 7.27079141, 0.99702912, 0.99843199, 0.49303342], 3220 [- 6.27176455, - 0.00097178, 0.00059574, 7.27079277, 0.99703005, 0.99843248, 0.49303355], 3221 [- 6.27176560, - 0.00097147, 0.00059555, 7.27079413, 0.99703099, 0.99843298, 0.49303367], 3222 [- 6.27176666, - 0.00097117, 0.00059537, 7.27079549, 0.99703192, 0.99843347, 0.49303384], 3223 [- 6.27176771, - 0.00097086, 0.00059518, 7.27079685, 0.99703285, 0.99843396, 0.49303391], 3224 [- 6.27176876, - 0.00097056, 0.00059499, 7.27079820, 0.99703378, 0.99843445, 0.49303404], 3225 [- 6.27176980, - 0.00097025, 0.00059481, 7.27079955, 0.99703471, 0.99843494, 0.49303417], 3226 [- 6.27177085, - 0.00096995, 0.00059462, 7.27080090, 0.99703564, 0.99843543, 0.49303426], 3227 [- 6.27177189, - 0.00096965, 0.00059443, 7.27080225, 0.99703657, 0.99843592, 0.49303442], 3228 [- 6.27177294, - 0.00096934, 0.00059425, 7.27080359, 0.99703750, 0.99843641, 0.49303454], 3229 [- 6.27177398, - 0.00096904, 0.00059406, 7.27080494, 0.99703843, 0.99843690, 0.49303464], 3230 [- 6.27177502, - 0.00096874, 0.00059388, 7.27080628, 0.99703936, 0.99843739, 0.49303476], 3231 [- 6.27177605, - 0.00096843, 0.00059369, 7.27080762, 0.99704028, 0.99843788, 0.49303487], 3232 [- 6.27177709, - 0.00096813, 0.00059350, 7.27080896, 0.99704121, 0.99843837, 0.49303501], 3233 [- 6.27177812, - 0.00096783, 0.00059332, 7.27081030, 0.99704213, 0.99843886, 0.49303512], 3234 [- 6.27177915, - 0.00096752, 0.00059313, 7.27081163, 0.99704306, 0.99843934, 0.49303521], 3235 [- 6.27178018, - 0.00096722, 0.00059295, 7.27081296, 0.99704398, 0.99843983, 0.49303537], 3236 [- 6.27178121, - 0.00096692, 0.00059276, 7.27081429, 0.99704491, 0.99844032, 0.49303546], 3237 [- 6.27178224, - 0.00096662, 0.00059258, 7.27081562, 0.99704583, 0.99844081, 0.49303558], 3238 [- 6.27178326, - 0.00096632, 0.00059239, 7.27081695, 0.99704675, 0.99844129, 0.49303575], 3239 [- 6.27178429, - 0.00096602, 0.00059221, 7.27081827, 0.99704768, 0.99844178, 0.49303581], 3240 [- 6.27178531, - 0.00096571, 0.00059202, 7.27081960, 0.99704860, 0.99844227, 0.49303591], 3241 [- 6.27178633, - 0.00096541, 0.00059184, 7.27082092, 0.99704952, 0.99844275, 0.49303609], 3242 [- 6.27178735, - 0.00096511, 0.00059165, 7.27082224, 0.99705044, 0.99844324, 0.49303618], 3243 [- 6.27178836, - 0.00096481, 0.00059147, 7.27082355, 0.99705136, 0.99844372, 0.49303628], 3244 [- 6.27178938, - 0.00096451, 0.00059128, 7.27082487, 0.99705228, 0.99844421, 0.49303641], 3245 [- 6.27179039, - 0.00096421, 0.00059110, 7.27082618, 0.99705320, 0.99844469, 0.49303652], 3246 [- 6.27179140, - 0.00096391, 0.00059091, 7.27082749, 0.99705412, 0.99844518, 0.49303666], 3247 [- 6.27179242, - 0.00096361, 0.00059073, 7.27082881, 0.99705503, 0.99844566, 0.49303673], 3248 [- 6.27179342, - 0.00096331, 0.00059055, 7.27083011, 0.99705595, 0.99844614, 0.49303690], 3249 [- 6.27179443, - 0.00096301, 0.00059036, 7.27083142, 0.99705687, 0.99844663, 0.49303700], 3250 [- 6.27179544, - 0.00096271, 0.00059018, 7.27083272, 0.99705778, 0.99844711, 0.49303712], 3251 [- 6.27179644, - 0.00096241, 0.00058999, 7.27083403, 0.99705870, 0.99844759, 0.49303722], 3252 [- 6.27179744, - 0.00096211, 0.00058981, 7.27083533, 0.99705961, 0.99844808, 0.49303732], 3253 [- 6.27179844, - 0.00096181, 0.00058963, 7.27083663, 0.99706053, 0.99844856, 0.49303745], 3254 [- 6.27179944, - 0.00096152, 0.00058944, 7.27083792, 0.99706144, 0.99844904, 0.49303757], 3255 [- 6.27180044, - 0.00096122, 0.00058926, 7.27083922, 0.99706235, 0.99844952, 0.49303771], 3256 [- 6.27180143, - 0.00096092, 0.00058908, 7.27084051, 0.99706327, 0.99845000, 0.49303777], 3257 [- 6.27180243, - 0.00096062, 0.00058890, 7.27084181, 0.99706418, 0.99845048, 0.49303795], 3258 [- 6.27180342, - 0.00096032, 0.00058871, 7.27084310, 0.99706509, 0.99845097, 0.49303802], 3259 [- 6.27180441, - 0.00096002, 0.00058853, 7.27084438, 0.99706600, 0.99845145, 0.49303815], 3260 [- 6.27180540, - 0.00095973, 0.00058835, 7.27084567, 0.99706691, 0.99845193, 0.49303827], 3261 [- 6.27180639, - 0.00095943, 0.00058816, 7.27084696, 0.99706782, 0.99845241, 0.49303836], 3262 [- 6.27180737, - 0.00095913, 0.00058798, 7.27084824, 0.99706873, 0.99845289, 0.49303844], 3263 [- 6.27180836, - 0.00095884, 0.00058780, 7.27084952, 0.99706964, 0.99845336, 0.49303861], 3264 [- 6.27180934, - 0.00095854, 0.00058762, 7.27085080, 0.99707055, 0.99845384, 0.49303868], 3265 [- 6.27181032, - 0.00095824, 0.00058744, 7.27085208, 0.99707145, 0.99845432, 0.49303884], 3266 [- 6.27181130, - 0.00095795, 0.00058725, 7.27085335, 0.99707236, 0.99845480, 0.49303895], 3267 [- 6.27181228, - 0.00095765, 0.00058707, 7.27085463, 0.99707327, 0.99845528, 0.49303908], 3268 [- 6.27181325, - 0.00095735, 0.00058689, 7.27085590, 0.99707417, 0.99845576, 0.49303915], 3269 [- 6.27181423, - 0.00095706, 0.00058671, 7.27085717, 0.99707508, 0.99845623, 0.49303928], 3270 [- 6.27181520, - 0.00095676, 0.00058653, 7.27085844, 0.99707598, 0.99845671, 0.49303940], 3271 [- 6.27181618, - 0.00095647, 0.00058635, 7.27085971, 0.99707689, 0.99845719, 0.49303950], 3272 [- 6.27181715, - 0.00095617, 0.00058616, 7.27086098, 0.99707779, 0.99845766, 0.49303965], 3273 [- 6.27181811, - 0.00095588, 0.00058598, 7.27086224, 0.99707869, 0.99845814, 0.49303979], 3274 [- 6.27181908, - 0.00095558, 0.00058580, 7.27086350, 0.99707960, 0.99845862, 0.49303989], 3275 [- 6.27182005, - 0.00095529, 0.00058562, 7.27086476, 0.99708050, 0.99845909, 0.49303994], 3276 [- 6.27182101, - 0.00095499, 0.00058544, 7.27086602, 0.99708140, 0.99845957, 0.49304006], 3277 [- 6.27182198, - 0.00095470, 0.00058526, 7.27086728, 0.99708230, 0.99846004, 0.49304023], 3278 [- 6.27182294, - 0.00095440, 0.00058508, 7.27086854, 0.99708320, 0.99846052, 0.49304031], 3279 [- 6.27182390, - 0.00095411, 0.00058490, 7.27086979, 0.99708410, 0.99846099, 0.49304040], 3280 [- 6.27182486, - 0.00095381, 0.00058472, 7.27087104, 0.99708500, 0.99846147, 0.49304052], 3281 [- 6.27182581, - 0.00095352, 0.00058454, 7.27087229, 0.99708590, 0.99846194, 0.49304066], 3282 [- 6.27182677, - 0.00095323, 0.00058436, 7.27087354, 0.99708680, 0.99846242, 0.49304078], 3283 [- 6.27182772, - 0.00095293, 0.00058418, 7.27087479, 0.99708769, 0.99846289, 0.49304090], 3284 [- 6.27182867, - 0.00095264, 0.00058400, 7.27087603, 0.99708859, 0.99846336, 0.49304102], 3285 [- 6.27182963, - 0.00095235, 0.00058382, 7.27087728, 0.99708949, 0.99846383, 0.49304112], 3286 [- 6.27183058, - 0.00095205, 0.00058364, 7.27087852, 0.99709038, 0.99846431, 0.49304120], 3287 [- 6.27183152, - 0.00095176, 0.00058346, 7.27087976, 0.99709128, 0.99846478, 0.49304129], 3288 [- 6.27183247, - 0.00095147, 0.00058328, 7.27088100, 0.99709217, 0.99846525, 0.49304145], 3289 [- 6.27183342, - 0.00095118, 0.00058310, 7.27088224, 0.99709307, 0.99846572, 0.49304157], 3290 [- 6.27183436, - 0.00095088, 0.00058292, 7.27088348, 0.99709396, 0.99846619, 0.49304165], 3291 [- 6.27183530, - 0.00095059, 0.00058274, 7.27088471, 0.99709485, 0.99846667, 0.49304175], 3292 [- 6.27183624, - 0.00095030, 0.00058256, 7.27088594, 0.99709575, 0.99846714, 0.49304190], 3293 [- 6.27183718, - 0.00095001, 0.00058238, 7.27088717, 0.99709664, 0.99846761, 0.49304204], 3294 [- 6.27183812, - 0.00094972, 0.00058221, 7.27088840, 0.99709753, 0.99846808, 0.49304212], 3295 [- 6.27183906, - 0.00094943, 0.00058203, 7.27088963, 0.99709842, 0.99846855, 0.49304222], 3296 [- 6.27183999, - 0.00094914, 0.00058185, 7.27089086, 0.99709931, 0.99846902, 0.49304233], 3297 [- 6.27184093, - 0.00094884, 0.00058167, 7.27089208, 0.99710020, 0.99846949, 0.49304245], 3298 [- 6.27184186, - 0.00094855, 0.00058149, 7.27089331, 0.99710109, 0.99846996, 0.49304255], 3299 [- 6.27184279, - 0.00094826, 0.00058131, 7.27089453, 0.99710198, 0.99847042, 0.49304263], 3300 [- 6.27184372, - 0.00094797, 0.00058113, 7.27089575, 0.99710287, 0.99847089, 0.49304277], 3301 [- 6.27184465, - 0.00094768, 0.00058096, 7.27089697, 0.99710375, 0.99847136, 0.49304288], 3302 [- 6.27184558, - 0.00094739, 0.00058078, 7.27089818, 0.99710464, 0.99847183, 0.49304302], 3303 [- 6.27184650, - 0.00094710, 0.00058060, 7.27089940, 0.99710553, 0.99847230, 0.49304309], 3304 [- 6.27184743, - 0.00094681, 0.00058042, 7.27090061, 0.99710641, 0.99847276, 0.49304322], 3305 [- 6.27184835, - 0.00094652, 0.00058025, 7.27090182, 0.99710730, 0.99847323, 0.49304332], 3306 [- 6.27184927, - 0.00094623, 0.00058007, 7.27090304, 0.99710818, 0.99847370, 0.49304348], 3307 [- 6.27185019, - 0.00094595, 0.00057989, 7.27090424, 0.99710907, 0.99847416, 0.49304351], 3308 [- 6.27185111, - 0.00094566, 0.00057971, 7.27090545, 0.99710995, 0.99847463, 0.49304363], 3309 [- 6.27185203, - 0.00094537, 0.00057954, 7.27090666, 0.99711083, 0.99847510, 0.49304378], 3310 [- 6.27185294, - 0.00094508, 0.00057936, 7.27090786, 0.99711172, 0.99847556, 0.49304390], 3311 [- 6.27185386, - 0.00094479, 0.00057918, 7.27090907, 0.99711260, 0.99847603, 0.49304399], 3312 [- 6.27185477, - 0.00094450, 0.00057901, 7.27091027, 0.99711348, 0.99847649, 0.49304412], 3313 [- 6.27185568, - 0.00094421, 0.00057883, 7.27091147, 0.99711436, 0.99847696, 0.49304419], 3314 [- 6.27185659, - 0.00094393, 0.00057865, 7.27091267, 0.99711524, 0.99847742, 0.49304433], 3315 [- 6.27185750, - 0.00094364, 0.00057848, 7.27091386, 0.99711612, 0.99847789, 0.49304445], 3316 [- 6.27185841, - 0.00094335, 0.00057830, 7.27091506, 0.99711700, 0.99847835, 0.49304453], 3317 [- 6.27185932, - 0.00094306, 0.00057812, 7.27091625, 0.99711788, 0.99847881, 0.49304463], 3318 [- 6.27186022, - 0.00094278, 0.00057795, 7.27091745, 0.99711876, 0.99847928, 0.49304471], 3319 [- 6.27186113, - 0.00094249, 0.00057777, 7.27091864, 0.99711964, 0.99847974, 0.49304488], 3320 [- 6.27186203, - 0.00094220, 0.00057759, 7.27091983, 0.99712051, 0.99848020, 0.49304496], 3321 [- 6.27186293, - 0.00094192, 0.00057742, 7.27092101, 0.99712139, 0.99848067, 0.49304509], 3322 [- 6.27186383, - 0.00094163, 0.00057724, 7.27092220, 0.99712227, 0.99848113, 0.49304521], 3323 [- 6.27186473, - 0.00094134, 0.00057707, 7.27092339, 0.99712314, 0.99848159, 0.49304528], 3324 [- 6.27186563, - 0.00094106, 0.00057689, 7.27092457, 0.99712402, 0.99848205, 0.49304542], 3325 [- 6.27186652, - 0.00094077, 0.00057672, 7.27092575, 0.99712489, 0.99848251, 0.49304552], 3326 [- 6.27186742, - 0.00094049, 0.00057654, 7.27092693, 0.99712577, 0.99848297, 0.49304562], 3327 [- 6.27186831, - 0.00094020, 0.00057636, 7.27092811, 0.99712664, 0.99848344, 0.49304571], 3328 [- 6.27186920, - 0.00093991, 0.00057619, 7.27092929, 0.99712751, 0.99848390, 0.49304585], 3329 [- 6.27187010, - 0.00093963, 0.00057601, 7.27093047, 0.99712839, 0.99848436, 0.49304595], 3330 [- 6.27187098, - 0.00093934, 0.00057584, 7.27093164, 0.99712926, 0.99848482, 0.49304606], 3331 [- 6.27187187, - 0.00093906, 0.00057567, 7.27093281, 0.99713013, 0.99848528, 0.49304619], 3332 [- 6.27187276, - 0.00093877, 0.00057549, 7.27093399, 0.99713100, 0.99848574, 0.49304625], 3333 [- 6.27187365, - 0.00093849, 0.00057532, 7.27093516, 0.99713187, 0.99848619, 0.49304638], 3334 [- 6.27187453, - 0.00093821, 0.00057514, 7.27093633, 0.99713274, 0.99848665, 0.49304650], 3335 [- 6.27187541, - 0.00093792, 0.00057497, 7.27093749, 0.99713361, 0.99848711, 0.49304662], 3336 [- 6.27187630, - 0.00093764, 0.00057479, 7.27093866, 0.99713448, 0.99848757, 0.49304675], 3337 [- 6.27187718, - 0.00093735, 0.00057462, 7.27093983, 0.99713535, 0.99848803, 0.49304680], 3338 [- 6.27187806, - 0.00093707, 0.00057444, 7.27094099, 0.99713622, 0.99848849, 0.49304696], 3339 [- 6.27187894, - 0.00093679, 0.00057427, 7.27094215, 0.99713708, 0.99848894, 0.49304701], 3340 [- 6.27187981, - 0.00093650, 0.00057410, 7.27094331, 0.99713795, 0.99848940, 0.49304717], 3341 [- 6.27188069, - 0.00093622, 0.00057392, 7.27094447, 0.99713882, 0.99848986, 0.49304726], 3342 [- 6.27188156, - 0.00093594, 0.00057375, 7.27094563, 0.99713968, 0.99849031, 0.49304734], 3343 [- 6.27188244, - 0.00093565, 0.00057358, 7.27094678, 0.99714055, 0.99849077, 0.49304749], 3344 [- 6.27188331, - 0.00093537, 0.00057340, 7.27094794, 0.99714141, 0.99849123, 0.49304756], 3345 [- 6.27188418, - 0.00093509, 0.00057323, 7.27094909, 0.99714228, 0.99849168, 0.49304769], 3346 [- 6.27188505, - 0.00093481, 0.00057306, 7.27095025, 0.99714314, 0.99849214, 0.49304781], 3347 [- 6.27188592, - 0.00093452, 0.00057288, 7.27095140, 0.99714400, 0.99849259, 0.49304789], 3348 [- 6.27188679, - 0.00093424, 0.00057271, 7.27095255, 0.99714486, 0.99849305, 0.49304797], 3349 [- 6.27188765, - 0.00093396, 0.00057254, 7.27095369, 0.99714573, 0.99849350, 0.49304811], 3350 [- 6.27188852, - 0.00093368, 0.00057236, 7.27095484, 0.99714659, 0.99849396, 0.49304819], 3351 [- 6.27188938, - 0.00093340, 0.00057219, 7.27095599, 0.99714745, 0.99849441, 0.49304832], 3352 [- 6.27189025, - 0.00093312, 0.00057202, 7.27095713, 0.99714831, 0.99849487, 0.49304841], 3353 [- 6.27189111, - 0.00093283, 0.00057185, 7.27095827, 0.99714917, 0.99849532, 0.49304852], 3354 [- 6.27189197, - 0.00093255, 0.00057167, 7.27095942, 0.99715003, 0.99849577, 0.49304861], 3355 [- 6.27189283, - 0.00093227, 0.00057150, 7.27096056, 0.99715089, 0.99849623, 0.49304875], 3356 [- 6.27189369, - 0.00093199, 0.00057133, 7.27096169, 0.99715175, 0.99849668, 0.49304884], 3357 [- 6.27189454, - 0.00093171, 0.00057116, 7.27096283, 0.99715260, 0.99849713, 0.49304894], 3358 [- 6.27189540, - 0.00093143, 0.00057098, 7.27096397, 0.99715346, 0.99849758, 0.49304909], 3359 [- 6.27189625, - 0.00093115, 0.00057081, 7.27096510, 0.99715432, 0.99849804, 0.49304918], 3360 [- 6.27189711, - 0.00093087, 0.00057064, 7.27096624, 0.99715517, 0.99849849, 0.49304926], 3361 [- 6.27189796, - 0.00093059, 0.00057047, 7.27096737, 0.99715603, 0.99849894, 0.49304941], 3362 [- 6.27189881, - 0.00093031, 0.00057030, 7.27096850, 0.99715689, 0.99849939, 0.49304950], 3363 [- 6.27189966, - 0.00093003, 0.00057013, 7.27096963, 0.99715774, 0.99849984, 0.49304958], 3364 [- 6.27190051, - 0.00092975, 0.00056995, 7.27097076, 0.99715860, 0.99850029, 0.49304964], 3365 [- 6.27190136, - 0.00092947, 0.00056978, 7.27097188, 0.99715945, 0.99850074, 0.49304982], 3366 [- 6.27190220, - 0.00092919, 0.00056961, 7.27097301, 0.99716030, 0.99850119, 0.49304989], 3367 [- 6.27190305, - 0.00092892, 0.00056944, 7.27097413, 0.99716115, 0.99850164, 0.49305004], 3368 [- 6.27190389, - 0.00092864, 0.00056927, 7.27097525, 0.99716201, 0.99850209, 0.49305011], 3369 [- 6.27190474, - 0.00092836, 0.00056910, 7.27097638, 0.99716286, 0.99850254, 0.49305025], 3370 [- 6.27190558, - 0.00092808, 0.00056893, 7.27097750, 0.99716371, 0.99850299, 0.49305033], 3371 [- 6.27190642, - 0.00092780, 0.00056876, 7.27097862, 0.99716456, 0.99850344, 0.49305045], 3372 [- 6.27190726, - 0.00092752, 0.00056859, 7.27097973, 0.99716541, 0.99850389, 0.49305056], 3373 [- 6.27190810, - 0.00092725, 0.00056842, 7.27098085, 0.99716626, 0.99850434, 0.49305065], 3374 [- 6.27190893, - 0.00092697, 0.00056825, 7.27098197, 0.99716711, 0.99850478, 0.49305076], 3375 [- 6.27190977, - 0.00092669, 0.00056808, 7.27098308, 0.99716796, 0.99850523, 0.49305085], 3376 [- 6.27191061, - 0.00092641, 0.00056791, 7.27098419, 0.99716881, 0.99850568, 0.49305094], 3377 [- 6.27191144, - 0.00092614, 0.00056774, 7.27098530, 0.99716965, 0.99850613, 0.49305108], 3378 [- 6.27191227, - 0.00092586, 0.00056757, 7.27098641, 0.99717050, 0.99850657, 0.49305115], 3379 [- 6.27191311, - 0.00092558, 0.00056740, 7.27098752, 0.99717135, 0.99850702, 0.49305125], 3380 [- 6.27191394, - 0.00092531, 0.00056723, 7.27098863, 0.99717219, 0.99850747, 0.49305139], 3381 [- 6.27191477, - 0.00092503, 0.00056706, 7.27098974, 0.99717304, 0.99850791, 0.49305148], 3382 [- 6.27191559, - 0.00092475, 0.00056689, 7.27099084, 0.99717389, 0.99850836, 0.49305158], 3383 [- 6.27191642, - 0.00092448, 0.00056672, 7.27099194, 0.99717473, 0.99850880, 0.49305167], 3384 [- 6.27191725, - 0.00092420, 0.00056655, 7.27099305, 0.99717557, 0.99850925, 0.49305181], 3385 [- 6.27191807, - 0.00092393, 0.00056638, 7.27099415, 0.99717642, 0.99850969, 0.49305190], 3386 [- 6.27191890, - 0.00092365, 0.00056621, 7.27099525, 0.99717726, 0.99851014, 0.49305201], 3387 [- 6.27191972, - 0.00092338, 0.00056604, 7.27099635, 0.99717810, 0.99851058, 0.49305208], 3388 [- 6.27192054, - 0.00092310, 0.00056587, 7.27099744, 0.99717895, 0.99851103, 0.49305223], 3389 [- 6.27192136, - 0.00092282, 0.00056570, 7.27099854, 0.99717979, 0.99851147, 0.49305232], 3390 [- 6.27192218, - 0.00092255, 0.00056553, 7.27099964, 0.99718063, 0.99851192, 0.49305243], 3391 [- 6.27192300, - 0.00092227, 0.00056537, 7.27100073, 0.99718147, 0.99851236, 0.49305250], 3392 [- 6.27192382, - 0.00092200, 0.00056520, 7.27100182, 0.99718231, 0.99851280, 0.49305258], 3393 [- 6.27192464, - 0.00092173, 0.00056503, 7.27100291, 0.99718315, 0.99851325, 0.49305275], 3394 [- 6.27192545, - 0.00092145, 0.00056486, 7.27100400, 0.99718399, 0.99851369, 0.49305278], 3395 [- 6.27192627, - 0.00092118, 0.00056469, 7.27100509, 0.99718483, 0.99851413, 0.49305295], 3396 [- 6.27192708, - 0.00092090, 0.00056452, 7.27100618, 0.99718566, 0.99851457, 0.49305299], 3397 [- 6.27192790, - 0.00092063, 0.00056436, 7.27100727, 0.99718650, 0.99851502, 0.49305314], 3398 [- 6.27192871, - 0.00092036, 0.00056419, 7.27100835, 0.99718734, 0.99851546, 0.49305323], 3399 [- 6.27192952, - 0.00092008, 0.00056402, 7.27100944, 0.99718818, 0.99851590, 0.49305333], 3400 [- 6.27193033, - 0.00091981, 0.00056385, 7.27101052, 0.99718901, 0.99851634, 0.49305345], 3401 [- 6.27193114, - 0.00091954, 0.00056368, 7.27101160, 0.99718985, 0.99851678, 0.49305349], 3402 [- 6.27193194, - 0.00091926, 0.00056352, 7.27101268, 0.99719068, 0.99851722, 0.49305365], 3403 [- 6.27193275, - 0.00091899, 0.00056335, 7.27101376, 0.99719152, 0.99851766, 0.49305371], 3404 [- 6.27193356, - 0.00091872, 0.00056318, 7.27101484, 0.99719235, 0.99851810, 0.49305382], 3405 [- 6.27193436, - 0.00091844, 0.00056301, 7.27101592, 0.99719318, 0.99851854, 0.49305392], 3406 [- 6.27193516, - 0.00091817, 0.00056285, 7.27101699, 0.99719402, 0.99851898, 0.49305400], 3407 [- 6.27193597, - 0.00091790, 0.00056268, 7.27101807, 0.99719485, 0.99851942, 0.49305415], 3408 [- 6.27193677, - 0.00091763, 0.00056251, 7.27101914, 0.99719568, 0.99851986, 0.49305427], 3409 [- 6.27193757, - 0.00091736, 0.00056235, 7.27102021, 0.99719651, 0.99852030, 0.49305437], 3410 [- 6.27193837, - 0.00091708, 0.00056218, 7.27102128, 0.99719735, 0.99852074, 0.49305443], 3411 [- 6.27193917, - 0.00091681, 0.00056201, 7.27102235, 0.99719818, 0.99852117, 0.49305458], 3412 [- 6.27193996, - 0.00091654, 0.00056185, 7.27102342, 0.99719901, 0.99852161, 0.49305464], 3413 [- 6.27194076, - 0.00091627, 0.00056168, 7.27102449, 0.99719984, 0.99852205, 0.49305472], 3414 [- 6.27194155, - 0.00091600, 0.00056151, 7.27102556, 0.99720066, 0.99852249, 0.49305485], 3415 [- 6.27194235, - 0.00091573, 0.00056135, 7.27102662, 0.99720149, 0.99852292, 0.49305488], 3416 [- 6.27194314, - 0.00091546, 0.00056118, 7.27102769, 0.99720232, 0.99852336, 0.49305501], 3417 [- 6.27194394, - 0.00091519, 0.00056102, 7.27102875, 0.99720315, 0.99852380, 0.49305520], 3418 [- 6.27194473, - 0.00091492, 0.00056085, 7.27102981, 0.99720398, 0.99852423, 0.49305527], 3419 [- 6.27194552, - 0.00091465, 0.00056068, 7.27103087, 0.99720480, 0.99852467, 0.49305537], 3420 [- 6.27194631, - 0.00091438, 0.00056052, 7.27103193, 0.99720563, 0.99852511, 0.49305541], 3421 [- 6.27194710, - 0.00091411, 0.00056035, 7.27103299, 0.99720646, 0.99852554, 0.49305558], 3422 [- 6.27194788, - 0.00091384, 0.00056019, 7.27103405, 0.99720728, 0.99852598, 0.49305568], 3423 [- 6.27194867, - 0.00091357, 0.00056002, 7.27103510, 0.99720811, 0.99852641, 0.49305582], 3424 [- 6.27194946, - 0.00091330, 0.00055986, 7.27103616, 0.99720893, 0.99852685, 0.49305585], 3425 [- 6.27195024, - 0.00091303, 0.00055969, 7.27103721, 0.99720975, 0.99852728, 0.49305599], 3426 [- 6.27195102, - 0.00091276, 0.00055953, 7.27103827, 0.99721058, 0.99852772, 0.49305606], 3427 [- 6.27195181, - 0.00091249, 0.00055936, 7.27103932, 0.99721140, 0.99852815, 0.49305614], 3428 [- 6.27195259, - 0.00091222, 0.00055920, 7.27104037, 0.99721222, 0.99852858, 0.49305629], 3429 [- 6.27195337, - 0.00091195, 0.00055903, 7.27104142, 0.99721304, 0.99852902, 0.49305636], 3430 [- 6.27195415, - 0.00091168, 0.00055887, 7.27104247, 0.99721387, 0.99852945, 0.49305643], 3431 [- 6.27195493, - 0.00091141, 0.00055870, 7.27104351, 0.99721469, 0.99852988, 0.49305655], 3432 [- 6.27195571, - 0.00091115, 0.00055854, 7.27104456, 0.99721551, 0.99853032, 0.49305663], 3433 [- 6.27195648, - 0.00091088, 0.00055837, 7.27104561, 0.99721633, 0.99853075, 0.49305679], 3434 [- 6.27195726, - 0.00091061, 0.00055821, 7.27104665, 0.99721715, 0.99853118, 0.49305682], 3435 [- 6.27195803, - 0.00091034, 0.00055804, 7.27104769, 0.99721796, 0.99853161, 0.49305696], 3436 [- 6.27195881, - 0.00091007, 0.00055788, 7.27104873, 0.99721878, 0.99853205, 0.49305711], 3437 [- 6.27195958, - 0.00090981, 0.00055771, 7.27104978, 0.99721960, 0.99853248, 0.49305719], 3438 [- 6.27196035, - 0.00090954, 0.00055755, 7.27105081, 0.99722042, 0.99853291, 0.49305721], 3439 [- 6.27196113, - 0.00090927, 0.00055739, 7.27105185, 0.99722124, 0.99853334, 0.49305736], 3440 [- 6.27196190, - 0.00090901, 0.00055722, 7.27105289, 0.99722205, 0.99853377, 0.49305741], 3441 [- 6.27196267, - 0.00090874, 0.00055706, 7.27105393, 0.99722287, 0.99853420, 0.49305756], 3442 [- 6.27196344, - 0.00090847, 0.00055690, 7.27105496, 0.99722368, 0.99853463, 0.49305766], 3443 [- 6.27196420, - 0.00090821, 0.00055673, 7.27105600, 0.99722450, 0.99853506, 0.49305779], 3444 [- 6.27196497, - 0.00090794, 0.00055657, 7.27105703, 0.99722531, 0.99853549, 0.49305788], 3445 [- 6.27196574, - 0.00090767, 0.00055641, 7.27105806, 0.99722613, 0.99853592, 0.49305797], 3446 [- 6.27196650, - 0.00090741, 0.00055624, 7.27105909, 0.99722694, 0.99853635, 0.49305806], 3447 [- 6.27196726, - 0.00090714, 0.00055608, 7.27106012, 0.99722776, 0.99853678, 0.49305817], 3448 [- 6.27196803, - 0.00090688, 0.00055592, 7.27106115, 0.99722857, 0.99853721, 0.49305825], 3449 [- 6.27196879, - 0.00090661, 0.00055575, 7.27106218, 0.99722938, 0.99853764, 0.49305840], 3450 [- 6.27196955, - 0.00090634, 0.00055559, 7.27106321, 0.99723019, 0.99853807, 0.49305847], 3451 [- 6.27197031, - 0.00090608, 0.00055543, 7.27106423, 0.99723100, 0.99853849, 0.49305859], 3452 [- 6.27197107, - 0.00090581, 0.00055526, 7.27106526, 0.99723181, 0.99853892, 0.49305865], 3453 [- 6.27197183, - 0.00090555, 0.00055510, 7.27106628, 0.99723262, 0.99853935, 0.49305875], 3454 [- 6.27197259, - 0.00090528, 0.00055494, 7.27106730, 0.99723343, 0.99853978, 0.49305889], 3455 [- 6.27197335, - 0.00090502, 0.00055478, 7.27106833, 0.99723424, 0.99854020, 0.49305896], 3456 [- 6.27197410, - 0.00090476, 0.00055461, 7.27106935, 0.99723505, 0.99854063, 0.49305906], 3457 [- 6.27197486, - 0.00090449, 0.00055445, 7.27107037, 0.99723586, 0.99854106, 0.49305911], 3458 [- 6.27197561, - 0.00090423, 0.00055429, 7.27107138, 0.99723667, 0.99854148, 0.49305929], 3459 [- 6.27197637, - 0.00090396, 0.00055413, 7.27107240, 0.99723748, 0.99854191, 0.49305933], 3460 [- 6.27197712, - 0.00090370, 0.00055397, 7.27107342, 0.99723828, 0.99854233, 0.49305943], 3461 [- 6.27197787, - 0.00090344, 0.00055380, 7.27107443, 0.99723909, 0.99854276, 0.49305954], 3462 [- 6.27197862, - 0.00090317, 0.00055364, 7.27107545, 0.99723990, 0.99854319, 0.49305965], 3463 [- 6.27197937, - 0.00090291, 0.00055348, 7.27107646, 0.99724070, 0.99854361, 0.49305972], 3464 [- 6.27198012, - 0.00090264, 0.00055332, 7.27107748, 0.99724151, 0.99854404, 0.49305986], 3465 [- 6.27198087, - 0.00090238, 0.00055316, 7.27107849, 0.99724231, 0.99854446, 0.49305996], 3466 [- 6.27198162, - 0.00090212, 0.00055300, 7.27107950, 0.99724312, 0.99854488, 0.49306003], 3467 [- 6.27198236, - 0.00090186, 0.00055284, 7.27108051, 0.99724392, 0.99854531, 0.49306014], 3468 [- 6.27198311, - 0.00090159, 0.00055267, 7.27108151, 0.99724472, 0.99854573, 0.49306027], 3469 [- 6.27198385, - 0.00090133, 0.00055251, 7.27108252, 0.99724553, 0.99854616, 0.49306036], 3470 [- 6.27198460, - 0.00090107, 0.00055235, 7.27108353, 0.99724633, 0.99854658, 0.49306043], 3471 [- 6.27198534, - 0.00090081, 0.00055219, 7.27108453, 0.99724713, 0.99854700, 0.49306047], 3472 [- 6.27198608, - 0.00090054, 0.00055203, 7.27108554, 0.99724793, 0.99854742, 0.49306066], 3473 [- 6.27198682, - 0.00090028, 0.00055187, 7.27108654, 0.99724873, 0.99854785, 0.49306072], 3474 [- 6.27198756, - 0.00090002, 0.00055171, 7.27108754, 0.99724953, 0.99854827, 0.49306079], 3475 [- 6.27198830, - 0.00089976, 0.00055155, 7.27108855, 0.99725033, 0.99854869, 0.49306090], 3476 [- 6.27198904, - 0.00089950, 0.00055139, 7.27108955, 0.99725113, 0.99854911, 0.49306100], 3477 [- 6.27198978, - 0.00089924, 0.00055123, 7.27109054, 0.99725193, 0.99854954, 0.49306107], 3478 [- 6.27199052, - 0.00089898, 0.00055107, 7.27109154, 0.99725273, 0.99854996, 0.49306122], 3479 [- 6.27199126, - 0.00089871, 0.00055091, 7.27109254, 0.99725353, 0.99855038, 0.49306129], 3480 [- 6.27199199, - 0.00089845, 0.00055075, 7.27109354, 0.99725433, 0.99855080, 0.49306135], 3481 [- 6.27199273, - 0.00089819, 0.00055059, 7.27109453, 0.99725512, 0.99855122, 0.49306146], 3482 [- 6.27199346, - 0.00089793, 0.00055043, 7.27109553, 0.99725592, 0.99855164, 0.49306163], 3483 [- 6.27199419, - 0.00089767, 0.00055027, 7.27109652, 0.99725672, 0.99855206, 0.49306163], 3484 [- 6.27199493, - 0.00089741, 0.00055011, 7.27109751, 0.99725751, 0.99855248, 0.49306178], 3485 [- 6.27199566, - 0.00089715, 0.00054995, 7.27109851, 0.99725831, 0.99855290, 0.49306188], 3486 [- 6.27199639, - 0.00089689, 0.00054979, 7.27109950, 0.99725910, 0.99855332, 0.49306196], 3487 [- 6.27199712, - 0.00089663, 0.00054963, 7.27110049, 0.99725990, 0.99855374, 0.49306206], 3488 [- 6.27199785, - 0.00089637, 0.00054947, 7.27110147, 0.99726069, 0.99855416, 0.49306218], 3489 [- 6.27199857, - 0.00089611, 0.00054931, 7.27110246, 0.99726149, 0.99855458, 0.49306227], 3490 [- 6.27199930, - 0.00089585, 0.00054915, 7.27110345, 0.99726228, 0.99855499, 0.49306238], 3491 [- 6.27200003, - 0.00089559, 0.00054899, 7.27110443, 0.99726307, 0.99855541, 0.49306244], 3492 [- 6.27200076, - 0.00089534, 0.00054883, 7.27110542, 0.99726386, 0.99855583, 0.49306254], 3493 [- 6.27200148, - 0.00089508, 0.00054868, 7.27110640, 0.99726465, 0.99855625, 0.49306260], 3494 [- 6.27200220, - 0.00089482, 0.00054852, 7.27110739, 0.99726545, 0.99855667, 0.49306270], 3495 [- 6.27200293, - 0.00089456, 0.00054836, 7.27110837, 0.99726624, 0.99855708, 0.49306284], 3496 [- 6.27200365, - 0.00089430, 0.00054820, 7.27110935, 0.99726703, 0.99855750, 0.49306289], 3497 [- 6.27200437, - 0.00089404, 0.00054804, 7.27111033, 0.99726782, 0.99855792, 0.49306299], 3498 [- 6.27200509, - 0.00089378, 0.00054788, 7.27111131, 0.99726861, 0.99855833, 0.49306315], 3499 [- 6.27200581, - 0.00089353, 0.00054772, 7.27111229, 0.99726940, 0.99855875, 0.49306325], 3500 [- 6.27200653, - 0.00089327, 0.00054757, 7.27111326, 0.99727018, 0.99855916, 0.49306334], 3501 [- 6.27200725, - 0.00089301, 0.00054741, 7.27111424, 0.99727097, 0.99855958, 0.49306342], 3502 [- 6.27200797, - 0.00089275, 0.00054725, 7.27111522, 0.99727176, 0.99856000, 0.49306348], 3503 [- 6.27200869, - 0.00089250, 0.00054709, 7.27111619, 0.99727255, 0.99856041, 0.49306360], 3504 [- 6.27200940, - 0.00089224, 0.00054693, 7.27111717, 0.99727333, 0.99856083, 0.49306368], 3505 [- 6.27201012, - 0.00089198, 0.00054678, 7.27111814, 0.99727412, 0.99856124, 0.49306382], 3506 [- 6.27201083, - 0.00089172, 0.00054662, 7.27111911, 0.99727491, 0.99856166, 0.49306389], 3507 [- 6.27201155, - 0.00089147, 0.00054646, 7.27112008, 0.99727569, 0.99856207, 0.49306395], 3508 [- 6.27201226, - 0.00089121, 0.00054630, 7.27112105, 0.99727648, 0.99856248, 0.49306405], 3509 [- 6.27201297, - 0.00089095, 0.00054615, 7.27112202, 0.99727726, 0.99856290, 0.49306415], 3510 [- 6.27201369, - 0.00089070, 0.00054599, 7.27112299, 0.99727804, 0.99856331, 0.49306425], 3511 [- 6.27201440, - 0.00089044, 0.00054583, 7.27112395, 0.99727883, 0.99856373, 0.49306438], 3512 [- 6.27201511, - 0.00089019, 0.00054568, 7.27112492, 0.99727961, 0.99856414, 0.49306445], 3513 [- 6.27201582, - 0.00088993, 0.00054552, 7.27112589, 0.99728039, 0.99856455, 0.49306454], 3514 [- 6.27201653, - 0.00088967, 0.00054536, 7.27112685, 0.99728118, 0.99856496, 0.49306460], 3515 [- 6.27201723, - 0.00088942, 0.00054520, 7.27112782, 0.99728196, 0.99856538, 0.49306473], 3516 [- 6.27201794, - 0.00088916, 0.00054505, 7.27112878, 0.99728274, 0.99856579, 0.49306481], 3517 [- 6.27201865, - 0.00088891, 0.00054489, 7.27112974, 0.99728352, 0.99856620, 0.49306490], 3518 [- 6.27201935, - 0.00088865, 0.00054473, 7.27113070, 0.99728430, 0.99856661, 0.49306499], 3519 [- 6.27202006, - 0.00088840, 0.00054458, 7.27113166, 0.99728508, 0.99856702, 0.49306507], 3520 [- 6.27202076, - 0.00088814, 0.00054442, 7.27113262, 0.99728586, 0.99856744, 0.49306519], 3521 [- 6.27202147, - 0.00088789, 0.00054427, 7.27113358, 0.99728664, 0.99856785, 0.49306522], 3522 [- 6.27202217, - 0.00088763, 0.00054411, 7.27113454, 0.99728742, 0.99856826, 0.49306541], 3523 [- 6.27202287, - 0.00088738, 0.00054395, 7.27113549, 0.99728820, 0.99856867, 0.49306548], 3524 [- 6.27202357, - 0.00088713, 0.00054380, 7.27113645, 0.99728897, 0.99856908, 0.49306558], 3525 [- 6.27202427, - 0.00088687, 0.00054364, 7.27113740, 0.99728975, 0.99856949, 0.49306563], 3526 [- 6.27202497, - 0.00088662, 0.00054349, 7.27113836, 0.99729053, 0.99856990, 0.49306575], 3527 [- 6.27202567, - 0.00088636, 0.00054333, 7.27113931, 0.99729130, 0.99857031, 0.49306582], 3528 [- 6.27202637, - 0.00088611, 0.00054317, 7.27114026, 0.99729208, 0.99857072, 0.49306593], 3529 [- 6.27202707, - 0.00088586, 0.00054302, 7.27114121, 0.99729285, 0.99857113, 0.49306602], 3530 [- 6.27202777, - 0.00088560, 0.00054286, 7.27114216, 0.99729363, 0.99857153, 0.49306615], 3531 [- 6.27202846, - 0.00088535, 0.00054271, 7.27114311, 0.99729440, 0.99857194, 0.49306620], 3532 [- 6.27202916, - 0.00088510, 0.00054255, 7.27114406, 0.99729518, 0.99857235, 0.49306631], 3533 [- 6.27202985, - 0.00088484, 0.00054240, 7.27114501, 0.99729595, 0.99857276, 0.49306638], 3534 [- 6.27203055, - 0.00088459, 0.00054224, 7.27114596, 0.99729673, 0.99857317, 0.49306650], 3535 [- 6.27203124, - 0.00088434, 0.00054209, 7.27114690, 0.99729750, 0.99857358, 0.49306661], 3536 [- 6.27203193, - 0.00088409, 0.00054193, 7.27114785, 0.99729827, 0.99857398, 0.49306664], 3537 [- 6.27203262, - 0.00088383, 0.00054178, 7.27114879, 0.99729904, 0.99857439, 0.49306674], 3538 [- 6.27203332, - 0.00088358, 0.00054162, 7.27114973, 0.99729981, 0.99857480, 0.49306687], 3539 [- 6.27203401, - 0.00088333, 0.00054147, 7.27115068, 0.99730059, 0.99857520, 0.49306699], 3540 [- 6.27203470, - 0.00088308, 0.00054131, 7.27115162, 0.99730136, 0.99857561, 0.49306701], 3541 [- 6.27203539, - 0.00088282, 0.00054116, 7.27115256, 0.99730213, 0.99857602, 0.49306713], 3542 [- 6.27203607, - 0.00088257, 0.00054100, 7.27115350, 0.99730290, 0.99857642, 0.49306721], 3543 [- 6.27203676, - 0.00088232, 0.00054085, 7.27115444, 0.99730366, 0.99857683, 0.49306728], 3544 [- 6.27203745, - 0.00088207, 0.00054069, 7.27115538, 0.99730443, 0.99857724, 0.49306742], 3545 [- 6.27203813, - 0.00088182, 0.00054054, 7.27115632, 0.99730520, 0.99857764, 0.49306753], 3546 [- 6.27203882, - 0.00088157, 0.00054039, 7.27115725, 0.99730597, 0.99857805, 0.49306761], 3547 [- 6.27203950, - 0.00088132, 0.00054023, 7.27115819, 0.99730674, 0.99857845, 0.49306769], 3548 [- 6.27204019, - 0.00088107, 0.00054008, 7.27115912, 0.99730750, 0.99857886, 0.49306776], 3549 [- 6.27204087, - 0.00088082, 0.00053992, 7.27116006, 0.99730827, 0.99857926, 0.49306785], 3550 [- 6.27204156, - 0.00088056, 0.00053977, 7.27116099, 0.99730904, 0.99857966, 0.49306801], 3551 [- 6.27204224, - 0.00088031, 0.00053962, 7.27116192, 0.99730980, 0.99858007, 0.49306813], 3552 [- 6.27204292, - 0.00088006, 0.00053946, 7.27116286, 0.99731057, 0.99858047, 0.49306816], 3553 [- 6.27204360, - 0.00087981, 0.00053931, 7.27116379, 0.99731133, 0.99858088, 0.49306827], 3554 [- 6.27204428, - 0.00087956, 0.00053916, 7.27116472, 0.99731210, 0.99858128, 0.49306833], 3555 [- 6.27204496, - 0.00087931, 0.00053900, 7.27116565, 0.99731286, 0.99858168, 0.49306842], 3556 [- 6.27204564, - 0.00087906, 0.00053885, 7.27116657, 0.99731363, 0.99858209, 0.49306852], 3557 [- 6.27204632, - 0.00087881, 0.00053870, 7.27116750, 0.99731439, 0.99858249, 0.49306865], 3558 [- 6.27204699, - 0.00087857, 0.00053854, 7.27116843, 0.99731515, 0.99858289, 0.49306872], 3559 [- 6.27204767, - 0.00087832, 0.00053839, 7.27116935, 0.99731591, 0.99858329, 0.49306875], 3560 [- 6.27204835, - 0.00087807, 0.00053824, 7.27117028, 0.99731668, 0.99858369, 0.49306889], 3561 [- 6.27204902, - 0.00087782, 0.00053809, 7.27117120, 0.99731744, 0.99858410, 0.49306899], 3562 [- 6.27204970, - 0.00087757, 0.00053793, 7.27117213, 0.99731820, 0.99858450, 0.49306909], 3563 [- 6.27205037, - 0.00087732, 0.00053778, 7.27117305, 0.99731896, 0.99858490, 0.49306915], 3564 [- 6.27205104, - 0.00087707, 0.00053763, 7.27117397, 0.99731972, 0.99858530, 0.49306931], 3565 [- 6.27205172, - 0.00087682, 0.00053748, 7.27117489, 0.99732048, 0.99858570, 0.49306931], 3566 [- 6.27205239, - 0.00087658, 0.00053732, 7.27117581, 0.99732124, 0.99858610, 0.49306947], 3567 [- 6.27205306, - 0.00087633, 0.00053717, 7.27117673, 0.99732200, 0.99858650, 0.49306949], 3568 [- 6.27205373, - 0.00087608, 0.00053702, 7.27117765, 0.99732276, 0.99858690, 0.49306961], 3569 [- 6.27205440, - 0.00087583, 0.00053687, 7.27117857, 0.99732351, 0.99858730, 0.49306974], 3570 [- 6.27205507, - 0.00087558, 0.00053671, 7.27117949, 0.99732427, 0.99858770, 0.49306982], 3571 [- 6.27205574, - 0.00087534, 0.00053656, 7.27118040, 0.99732503, 0.99858810, 0.49306986], 3572 [- 6.27205641, - 0.00087509, 0.00053641, 7.27118132, 0.99732579, 0.99858850, 0.49306997], 3573 [- 6.27205707, - 0.00087484, 0.00053626, 7.27118223, 0.99732654, 0.99858890, 0.49307002], 3574 [- 6.27205774, - 0.00087459, 0.00053611, 7.27118315, 0.99732730, 0.99858930, 0.49307020], 3575 [- 6.27205841, - 0.00087435, 0.00053596, 7.27118406, 0.99732805, 0.99858970, 0.49307021], 3576 [- 6.27205907, - 0.00087410, 0.00053580, 7.27118497, 0.99732881, 0.99859010, 0.49307035], 3577 [- 6.27205974, - 0.00087385, 0.00053565, 7.27118588, 0.99732956, 0.99859049, 0.49307047], 3578 [- 6.27206040, - 0.00087361, 0.00053550, 7.27118679, 0.99733032, 0.99859089, 0.49307051], 3579 [- 6.27206106, - 0.00087336, 0.00053535, 7.27118770, 0.99733107, 0.99859129, 0.49307062], 3580 [- 6.27206173, - 0.00087311, 0.00053520, 7.27118861, 0.99733182, 0.99859169, 0.49307069], 3581 [- 6.27206239, - 0.00087287, 0.00053505, 7.27118952, 0.99733258, 0.99859208, 0.49307080], 3582 [- 6.27206305, - 0.00087262, 0.00053490, 7.27119043, 0.99733333, 0.99859248, 0.49307089], 3583 [- 6.27206371, - 0.00087238, 0.00053475, 7.27119134, 0.99733408, 0.99859288, 0.49307096], 3584 [- 6.27206437, - 0.00087213, 0.00053460, 7.27119224, 0.99733483, 0.99859327, 0.49307103], 3585 [- 6.27206503, - 0.00087188, 0.00053445, 7.27119315, 0.99733558, 0.99859367, 0.49307121], 3586 [- 6.27206569, - 0.00087164, 0.00053429, 7.27119405, 0.99733633, 0.99859407, 0.49307121], 3587 [- 6.27206635, - 0.00087139, 0.00053414, 7.27119496, 0.99733709, 0.99859446, 0.49307131], 3588 [- 6.27206701, - 0.00087115, 0.00053399, 7.27119586, 0.99733783, 0.99859486, 0.49307143], 3589 [- 6.27206767, - 0.00087090, 0.00053384, 7.27119676, 0.99733858, 0.99859525, 0.49307152], 3590 [- 6.27206832, - 0.00087066, 0.00053369, 7.27119766, 0.99733933, 0.99859565, 0.49307163], 3591 [- 6.27206898, - 0.00087041, 0.00053354, 7.27119856, 0.99734008, 0.99859604, 0.49307170], 3592 [- 6.27206963, - 0.00087017, 0.00053339, 7.27119946, 0.99734083, 0.99859644, 0.49307178], 3593 [- 6.27207029, - 0.00086992, 0.00053324, 7.27120036, 0.99734158, 0.99859683, 0.49307182], 3594 [- 6.27207094, - 0.00086968, 0.00053309, 7.27120126, 0.99734233, 0.99859723, 0.49307196], 3595 [- 6.27207160, - 0.00086944, 0.00053294, 7.27120216, 0.99734307, 0.99859762, 0.49307197], 3596 [- 6.27207225, - 0.00086919, 0.00053279, 7.27120306, 0.99734382, 0.99859802, 0.49307220], 3597 [- 6.27207290, - 0.00086895, 0.00053264, 7.27120395, 0.99734457, 0.99859841, 0.49307226], 3598 [- 6.27207355, - 0.00086870, 0.00053249, 7.27120485, 0.99734531, 0.99859880, 0.49307233], 3599 [- 6.27207420, - 0.00086846, 0.00053234, 7.27120574, 0.99734606, 0.99859920, 0.49307241], 3600 [- 6.27207485, - 0.00086822, 0.00053219, 7.27120664, 0.99734680, 0.99859959, 0.49307252], 3601 [- 6.27207550, - 0.00086797, 0.00053205, 7.27120753, 0.99734755, 0.99859998, 0.49307258], 3602 [- 6.27207615, - 0.00086773, 0.00053190, 7.27120842, 0.99734829, 0.99860037, 0.49307271], 3603 [- 6.27207680, - 0.00086749, 0.00053175, 7.27120931, 0.99734903, 0.99860077, 0.49307274], 3604 [- 6.27207745, - 0.00086724, 0.00053160, 7.27121021, 0.99734978, 0.99860116, 0.49307287], 3605 [- 6.27207810, - 0.00086700, 0.00053145, 7.27121110, 0.99735052, 0.99860155, 0.49307293], 3606 [- 6.27207874, - 0.00086676, 0.00053130, 7.27121199, 0.99735126, 0.99860194, 0.49307303], 3607 [- 6.27207939, - 0.00086652, 0.00053115, 7.27121287, 0.99735200, 0.99860233, 0.49307313], 3608 [- 6.27208004, - 0.00086627, 0.00053100, 7.27121376, 0.99735275, 0.99860273, 0.49307325], 3609 [- 6.27208068, - 0.00086603, 0.00053085, 7.27121465, 0.99735349, 0.99860312, 0.49307329], 3610 [- 6.27208132, - 0.00086579, 0.00053070, 7.27121554, 0.99735423, 0.99860351, 0.49307333], 3611 [- 6.27208197, - 0.00086555, 0.00053056, 7.27121642, 0.99735497, 0.99860390, 0.49307349], 3612 [- 6.27208261, - 0.00086530, 0.00053041, 7.27121731, 0.99735571, 0.99860429, 0.49307355], 3613 [- 6.27208325, - 0.00086506, 0.00053026, 7.27121819, 0.99735645, 0.99860468, 0.49307366], 3614 [- 6.27208390, - 0.00086482, 0.00053011, 7.27121907, 0.99735719, 0.99860507, 0.49307376], 3615 [- 6.27208454, - 0.00086458, 0.00052996, 7.27121996, 0.99735792, 0.99860546, 0.49307384], 3616 [- 6.27208518, - 0.00086434, 0.00052981, 7.27122084, 0.99735866, 0.99860585, 0.49307389], 3617 [- 6.27208582, - 0.00086410, 0.00052967, 7.27122172, 0.99735940, 0.99860624, 0.49307398], 3618 [- 6.27208646, - 0.00086386, 0.00052952, 7.27122260, 0.99736014, 0.99860663, 0.49307410], 3619 [- 6.27208710, - 0.00086361, 0.00052937, 7.27122348, 0.99736088, 0.99860701, 0.49307418], 3620 [- 6.27208774, - 0.00086337, 0.00052922, 7.27122436, 0.99736161, 0.99860740, 0.49307431], 3621 [- 6.27208837, - 0.00086313, 0.00052908, 7.27122524, 0.99736235, 0.99860779, 0.49307430], 3622 [- 6.27208901, - 0.00086289, 0.00052893, 7.27122612, 0.99736308, 0.99860818, 0.49307450], 3623 [- 6.27208965, - 0.00086265, 0.00052878, 7.27122700, 0.99736382, 0.99860857, 0.49307452], 3624 [- 6.27209028, - 0.00086241, 0.00052863, 7.27122787, 0.99736455, 0.99860896, 0.49307461], 3625 [- 6.27209092, - 0.00086217, 0.00052849, 7.27122875, 0.99736529, 0.99860934, 0.49307473], 3626 [- 6.27209155, - 0.00086193, 0.00052834, 7.27122962, 0.99736602, 0.99860973, 0.49307476], 3627 [- 6.27209219, - 0.00086169, 0.00052819, 7.27123050, 0.99736676, 0.99861012, 0.49307493], 3628 [- 6.27209282, - 0.00086145, 0.00052804, 7.27123137, 0.99736749, 0.99861050, 0.49307491], 3629 [- 6.27209346, - 0.00086121, 0.00052790, 7.27123224, 0.99736822, 0.99861089, 0.49307506], 3630 [- 6.27209409, - 0.00086097, 0.00052775, 7.27123312, 0.99736896, 0.99861128, 0.49307515], 3631 [- 6.27209472, - 0.00086073, 0.00052760, 7.27123399, 0.99736969, 0.99861166, 0.49307527], 3632 [- 6.27209535, - 0.00086049, 0.00052746, 7.27123486, 0.99737042, 0.99861205, 0.49307528], 3633 [- 6.27209598, - 0.00086025, 0.00052731, 7.27123573, 0.99737115, 0.99861244, 0.49307544], 3634 [- 6.27209661, - 0.00086002, 0.00052716, 7.27123660, 0.99737188, 0.99861282, 0.49307551], 3635 [- 6.27209724, - 0.00085978, 0.00052702, 7.27123747, 0.99737261, 0.99861321, 0.49307555], 3636 [- 6.27209787, - 0.00085954, 0.00052687, 7.27123833, 0.99737334, 0.99861359, 0.49307566], 3637 [- 6.27209850, - 0.00085930, 0.00052672, 7.27123920, 0.99737407, 0.99861398, 0.49307570], 3638 [- 6.27209913, - 0.00085906, 0.00052658, 7.27124007, 0.99737480, 0.99861436, 0.49307581], 3639 [- 6.27209976, - 0.00085882, 0.00052643, 7.27124094, 0.99737553, 0.99861475, 0.49307599], 3640 [- 6.27210038, - 0.00085858, 0.00052628, 7.27124180, 0.99737626, 0.99861513, 0.49307598], 3641 [- 6.27210101, - 0.00085835, 0.00052614, 7.27124266, 0.99737699, 0.99861551, 0.49307614], 3642 [- 6.27210164, - 0.00085811, 0.00052599, 7.27124353, 0.99737771, 0.99861590, 0.49307614], 3643 [- 6.27210226, - 0.00085787, 0.00052585, 7.27124439, 0.99737844, 0.99861628, 0.49307625], 3644 [- 6.27210289, - 0.00085763, 0.00052570, 7.27124525, 0.99737917, 0.99861667, 0.49307637], 3645 [- 6.27210351, - 0.00085740, 0.00052555, 7.27124612, 0.99737989, 0.99861705, 0.49307645], 3646 [- 6.27210414, - 0.00085716, 0.00052541, 7.27124698, 0.99738062, 0.99861743, 0.49307653], 3647 [- 6.27210476, - 0.00085692, 0.00052526, 7.27124784, 0.99738135, 0.99861782, 0.49307663], 3648 [- 6.27210538, - 0.00085668, 0.00052512, 7.27124870, 0.99738207, 0.99861820, 0.49307669], 3649 [- 6.27210600, - 0.00085645, 0.00052497, 7.27124956, 0.99738280, 0.99861858, 0.49307677], 3650 [- 6.27210663, - 0.00085621, 0.00052483, 7.27125042, 0.99738352, 0.99861896, 0.49307688], 3651 [- 6.27210725, - 0.00085597, 0.00052468, 7.27125127, 0.99738424, 0.99861934, 0.49307699], 3652 [- 6.27210787, - 0.00085574, 0.00052454, 7.27125213, 0.99738497, 0.99861973, 0.49307706], 3653 [- 6.27210849, - 0.00085550, 0.00052439, 7.27125299, 0.99738569, 0.99862011, 0.49307704], 3654 [- 6.27210911, - 0.00085526, 0.00052425, 7.27125384, 0.99738641, 0.99862049, 0.49307723], 3655 [- 6.27210973, - 0.00085503, 0.00052410, 7.27125470, 0.99738714, 0.99862087, 0.49307731], 3656 [- 6.27211034, - 0.00085479, 0.00052396, 7.27125555, 0.99738786, 0.99862125, 0.49307742], 3657 [- 6.27211096, - 0.00085456, 0.00052381, 7.27125641, 0.99738858, 0.99862163, 0.49307753], 3658 [- 6.27211158, - 0.00085432, 0.00052367, 7.27125726, 0.99738930, 0.99862201, 0.49307753], 3659 [- 6.27211220, - 0.00085408, 0.00052352, 7.27125811, 0.99739002, 0.99862239, 0.49307764], 3660 [- 6.27211281, - 0.00085385, 0.00052338, 7.27125896, 0.99739074, 0.99862277, 0.49307770], 3661 [- 6.27211343, - 0.00085361, 0.00052323, 7.27125981, 0.99739146, 0.99862315, 0.49307780], 3662 [- 6.27211404, - 0.00085338, 0.00052309, 7.27126067, 0.99739218, 0.99862353, 0.49307792], 3663 [- 6.27211466, - 0.00085314, 0.00052295, 7.27126152, 0.99739290, 0.99862391, 0.49307794], 3664 [- 6.27211527, - 0.00085291, 0.00052280, 7.27126236, 0.99739362, 0.99862429, 0.49307803], 3665 [- 6.27211589, - 0.00085267, 0.00052266, 7.27126321, 0.99739434, 0.99862467, 0.49307820], 3666 [- 6.27211650, - 0.00085244, 0.00052251, 7.27126406, 0.99739506, 0.99862505, 0.49307827], 3667 [- 6.27211711, - 0.00085220, 0.00052237, 7.27126491, 0.99739577, 0.99862543, 0.49307830], 3668 [- 6.27211772, - 0.00085197, 0.00052222, 7.27126575, 0.99739649, 0.99862581, 0.49307839], 3669 [- 6.27211833, - 0.00085173, 0.00052208, 7.27126660, 0.99739721, 0.99862618, 0.49307851], 3670 [- 6.27211895, - 0.00085150, 0.00052194, 7.27126745, 0.99739792, 0.99862656, 0.49307861], 3671 [- 6.27211956, - 0.00085127, 0.00052179, 7.27126829, 0.99739864, 0.99862694, 0.49307868], 3672 [- 6.27212017, - 0.00085103, 0.00052165, 7.27126913, 0.99739936, 0.99862732, 0.49307878], 3673 [- 6.27212078, - 0.00085080, 0.00052151, 7.27126998, 0.99740007, 0.99862770, 0.49307884], 3674 [- 6.27212138, - 0.00085056, 0.00052136, 7.27127082, 0.99740079, 0.99862807, 0.49307888], 3675 [- 6.27212199, - 0.00085033, 0.00052122, 7.27127166, 0.99740150, 0.99862845, 0.49307902], 3676 [- 6.27212260, - 0.00085010, 0.00052108, 7.27127250, 0.99740221, 0.99862883, 0.49307911], 3677 [- 6.27212321, - 0.00084986, 0.00052093, 7.27127334, 0.99740293, 0.99862920, 0.49307920], 3678 [- 6.27212381, - 0.00084963, 0.00052079, 7.27127418, 0.99740364, 0.99862958, 0.49307926], 3679 [- 6.27212442, - 0.00084940, 0.00052065, 7.27127502, 0.99740435, 0.99862996, 0.49307935], 3680 [- 6.27212503, - 0.00084916, 0.00052050, 7.27127586, 0.99740507, 0.99863033, 0.49307944], 3681 [- 6.27212563, - 0.00084893, 0.00052036, 7.27127670, 0.99740578, 0.99863071, 0.49307944], 3682 [- 6.27212624, - 0.00084870, 0.00052022, 7.27127754, 0.99740649, 0.99863108, 0.49307954], 3683 [- 6.27212684, - 0.00084847, 0.00052008, 7.27127837, 0.99740720, 0.99863146, 0.49307961], 3684 [- 6.27212744, - 0.00084823, 0.00051993, 7.27127921, 0.99740791, 0.99863183, 0.49307978], 3685 [- 6.27212805, - 0.00084800, 0.00051979, 7.27128005, 0.99740862, 0.99863221, 0.49307983], 3686 [- 6.27212865, - 0.00084777, 0.00051965, 7.27128088, 0.99740933, 0.99863258, 0.49307996], 3687 [- 6.27212925, - 0.00084754, 0.00051951, 7.27128172, 0.99741004, 0.99863296, 0.49308005], 3688 [- 6.27212986, - 0.00084730, 0.00051936, 7.27128255, 0.99741075, 0.99863333, 0.49308014], 3689 [- 6.27213046, - 0.00084707, 0.00051922, 7.27128338, 0.99741146, 0.99863371, 0.49308018], 3690 [- 6.27213106, - 0.00084684, 0.00051908, 7.27128422, 0.99741217, 0.99863408, 0.49308030], 3691 [- 6.27213166, - 0.00084661, 0.00051894, 7.27128505, 0.99741288, 0.99863445, 0.49308040], 3692 [- 6.27213226, - 0.00084638, 0.00051879, 7.27128588, 0.99741359, 0.99863483, 0.49308040], 3693 [- 6.27213286, - 0.00084615, 0.00051865, 7.27128671, 0.99741429, 0.99863520, 0.49308050], 3694 [- 6.27213345, - 0.00084592, 0.00051851, 7.27128754, 0.99741500, 0.99863557, 0.49308061], 3695 [- 6.27213405, - 0.00084568, 0.00051837, 7.27128837, 0.99741571, 0.99863595, 0.49308064], 3696 [- 6.27213465, - 0.00084545, 0.00051823, 7.27128920, 0.99741641, 0.99863632, 0.49308083], 3697 [- 6.27213525, - 0.00084522, 0.00051809, 7.27129003, 0.99741712, 0.99863669, 0.49308089], 3698 [- 6.27213585, - 0.00084499, 0.00051794, 7.27129085, 0.99741783, 0.99863706, 0.49308103], 3699 [- 6.27213644, - 0.00084476, 0.00051780, 7.27129168, 0.99741853, 0.99863744, 0.49308104], 3700 [- 6.27213704, - 0.00084453, 0.00051766, 7.27129251, 0.99741924, 0.99863781, 0.49308114], 3701 [- 6.27213763, - 0.00084430, 0.00051752, 7.27129333, 0.99741994, 0.99863818, 0.49308122], 3702 [- 6.27213823, - 0.00084407, 0.00051738, 7.27129416, 0.99742064, 0.99863855, 0.49308125], 3703 [- 6.27213882, - 0.00084384, 0.00051724, 7.27129498, 0.99742135, 0.99863892, 0.49308128], 3704 [- 6.27213942, - 0.00084361, 0.00051710, 7.27129581, 0.99742205, 0.99863929, 0.49308149], 3705 [- 6.27214001, - 0.00084338, 0.00051696, 7.27129663, 0.99742275, 0.99863966, 0.49308153], 3706 [- 6.27214060, - 0.00084315, 0.00051681, 7.27129745, 0.99742346, 0.99864003, 0.49308160], 3707 [- 6.27214120, - 0.00084292, 0.00051667, 7.27129827, 0.99742416, 0.99864041, 0.49308174], 3708 [- 6.27214179, - 0.00084269, 0.00051653, 7.27129910, 0.99742486, 0.99864078, 0.49308171], 3709 [- 6.27214238, - 0.00084246, 0.00051639, 7.27129992, 0.99742556, 0.99864115, 0.49308189], 3710 [- 6.27214297, - 0.00084223, 0.00051625, 7.27130074, 0.99742626, 0.99864152, 0.49308189], 3711 [- 6.27214356, - 0.00084200, 0.00051611, 7.27130156, 0.99742696, 0.99864188, 0.49308208], 3712 [- 6.27214415, - 0.00084178, 0.00051597, 7.27130237, 0.99742766, 0.99864225, 0.49308218], 3713 [- 6.27214474, - 0.00084155, 0.00051583, 7.27130319, 0.99742836, 0.99864262, 0.49308217], 3714 [- 6.27214533, - 0.00084132, 0.00051569, 7.27130401, 0.99742906, 0.99864299, 0.49308225], 3715 [- 6.27214592, - 0.00084109, 0.00051555, 7.27130483, 0.99742976, 0.99864336, 0.49308239], 3716 [- 6.27214651, - 0.00084086, 0.00051541, 7.27130564, 0.99743046, 0.99864373, 0.49308247], 3717 [- 6.27214709, - 0.00084063, 0.00051527, 7.27130646, 0.99743116, 0.99864410, 0.49308255], 3718 [- 6.27214768, - 0.00084040, 0.00051513, 7.27130728, 0.99743186, 0.99864447, 0.49308258], 3719 [- 6.27214827, - 0.00084018, 0.00051499, 7.27130809, 0.99743255, 0.99864483, 0.49308266], 3720 [- 6.27214885, - 0.00083995, 0.00051485, 7.27130891, 0.99743325, 0.99864520, 0.49308274], 3721 [- 6.27214944, - 0.00083972, 0.00051471, 7.27130972, 0.99743395, 0.99864557, 0.49308290], 3722 [- 6.27215002, - 0.00083949, 0.00051457, 7.27131053, 0.99743464, 0.99864594, 0.49308290], 3723 [- 6.27215061, - 0.00083926, 0.00051443, 7.27131134, 0.99743534, 0.99864631, 0.49308300], 3724 [- 6.27215119, - 0.00083904, 0.00051429, 7.27131216, 0.99743604, 0.99864667, 0.49308315], 3725 [- 6.27215178, - 0.00083881, 0.00051415, 7.27131297, 0.99743673, 0.99864704, 0.49308314], 3726 [- 6.27215236, - 0.00083858, 0.00051401, 7.27131378, 0.99743743, 0.99864741, 0.49308324], 3727 [- 6.27215294, - 0.00083836, 0.00051387, 7.27131459, 0.99743812, 0.99864777, 0.49308338], 3728 [- 6.27215353, - 0.00083813, 0.00051373, 7.27131540, 0.99743881, 0.99864814, 0.49308338], 3729 [- 6.27215411, - 0.00083790, 0.00051359, 7.27131621, 0.99743951, 0.99864850, 0.49308350], 3730 [- 6.27215469, - 0.00083768, 0.00051345, 7.27131702, 0.99744020, 0.99864887, 0.49308357], 3731 [- 6.27215527, - 0.00083745, 0.00051332, 7.27131782, 0.99744089, 0.99864924, 0.49308374], 3732 [- 6.27215585, - 0.00083722, 0.00051318, 7.27131863, 0.99744159, 0.99864960, 0.49308379], 3733 [- 6.27215643, - 0.00083700, 0.00051304, 7.27131944, 0.99744228, 0.99864997, 0.49308384], 3734 [- 6.27215701, - 0.00083677, 0.00051290, 7.27132024, 0.99744297, 0.99865033, 0.49308393], 3735 [- 6.27215759, - 0.00083654, 0.00051276, 7.27132105, 0.99744366, 0.99865070, 0.49308399], 3736 [- 6.27215817, - 0.00083632, 0.00051262, 7.27132185, 0.99744435, 0.99865106, 0.49308412], 3737 [- 6.27215875, - 0.00083609, 0.00051248, 7.27132266, 0.99744504, 0.99865143, 0.49308421], 3738 [- 6.27215933, - 0.00083587, 0.00051234, 7.27132346, 0.99744574, 0.99865179, 0.49308425], 3739 [- 6.27215990, - 0.00083564, 0.00051221, 7.27132426, 0.99744643, 0.99865215, 0.49308434], 3740 [- 6.27216048, - 0.00083541, 0.00051207, 7.27132507, 0.99744711, 0.99865252, 0.49308442], 3741 [- 6.27216106, - 0.00083519, 0.00051193, 7.27132587, 0.99744780, 0.99865288, 0.49308450], 3742 [- 6.27216164, - 0.00083496, 0.00051179, 7.27132667, 0.99744849, 0.99865324, 0.49308461], 3743 [- 6.27216221, - 0.00083474, 0.00051165, 7.27132747, 0.99744918, 0.99865361, 0.49308467], 3744 [- 6.27216279, - 0.00083451, 0.00051151, 7.27132827, 0.99744987, 0.99865397, 0.49308473], 3745 [- 6.27216336, - 0.00083429, 0.00051138, 7.27132907, 0.99745056, 0.99865433, 0.49308483], 3746 [- 6.27216394, - 0.00083406, 0.00051124, 7.27132987, 0.99745124, 0.99865470, 0.49308489], 3747 [- 6.27216451, - 0.00083384, 0.00051110, 7.27133067, 0.99745193, 0.99865506, 0.49308501], 3748 [- 6.27216508, - 0.00083361, 0.00051096, 7.27133147, 0.99745262, 0.99865542, 0.49308509], 3749 [- 6.27216566, - 0.00083339, 0.00051083, 7.27133227, 0.99745330, 0.99865578, 0.49308519], 3750 [- 6.27216623, - 0.00083317, 0.00051069, 7.27133306, 0.99745399, 0.99865615, 0.49308520], 3751 [- 6.27216680, - 0.00083294, 0.00051055, 7.27133386, 0.99745468, 0.99865651, 0.49308532], 3752 [- 6.27216737, - 0.00083272, 0.00051041, 7.27133465, 0.99745536, 0.99865687, 0.49308537], 3753 [- 6.27216794, - 0.00083249, 0.00051028, 7.27133545, 0.99745605, 0.99865723, 0.49308548], 3754 [- 6.27216851, - 0.00083227, 0.00051014, 7.27133624, 0.99745673, 0.99865759, 0.49308555], 3755 [- 6.27216909, - 0.00083205, 0.00051000, 7.27133704, 0.99745741, 0.99865795, 0.49308568], 3756 [- 6.27216966, - 0.00083182, 0.00050986, 7.27133783, 0.99745810, 0.99865831, 0.49308575], 3757 [- 6.27217022, - 0.00083160, 0.00050973, 7.27133863, 0.99745878, 0.99865867, 0.49308580], 3758 [- 6.27217079, - 0.00083138, 0.00050959, 7.27133942, 0.99745946, 0.99865903, 0.49308589], 3759 [- 6.27217136, - 0.00083115, 0.00050945, 7.27134021, 0.99746015, 0.99865939, 0.49308593], 3760 [- 6.27217193, - 0.00083093, 0.00050932, 7.27134100, 0.99746083, 0.99865975, 0.49308603], 3761 [- 6.27217250, - 0.00083071, 0.00050918, 7.27134179, 0.99746151, 0.99866011, 0.49308603], 3762 [- 6.27217307, - 0.00083048, 0.00050904, 7.27134258, 0.99746219, 0.99866047, 0.49308626], 3763 [- 6.27217363, - 0.00083026, 0.00050891, 7.27134337, 0.99746287, 0.99866083, 0.49308628], 3764 [- 6.27217420, - 0.00083004, 0.00050877, 7.27134416, 0.99746355, 0.99866119, 0.49308633], 3765 [- 6.27217477, - 0.00082982, 0.00050863, 7.27134495, 0.99746424, 0.99866155, 0.49308648], 3766 [- 6.27217533, - 0.00082959, 0.00050850, 7.27134574, 0.99746492, 0.99866191, 0.49308650], 3767 [- 6.27217590, - 0.00082937, 0.00050836, 7.27134653, 0.99746559, 0.99866227, 0.49308659], 3768 [- 6.27217646, - 0.00082915, 0.00050822, 7.27134731, 0.99746627, 0.99866263, 0.49308664], 3769 [- 6.27217703, - 0.00082893, 0.00050809, 7.27134810, 0.99746695, 0.99866299, 0.49308674], 3770 [- 6.27217759, - 0.00082871, 0.00050795, 7.27134888, 0.99746763, 0.99866334, 0.49308688], 3771 [- 6.27217815, - 0.00082848, 0.00050782, 7.27134967, 0.99746831, 0.99866370, 0.49308691], 3772 [- 6.27217872, - 0.00082826, 0.00050768, 7.27135045, 0.99746899, 0.99866406, 0.49308700], 3773 [- 6.27217928, - 0.00082804, 0.00050754, 7.27135124, 0.99746967, 0.99866442, 0.49308706], 3774 [- 6.27217984, - 0.00082782, 0.00050741, 7.27135202, 0.99747034, 0.99866477, 0.49308711], 3775 [- 6.27218040, - 0.00082760, 0.00050727, 7.27135281, 0.99747102, 0.99866513, 0.49308731], 3776 [- 6.27218097, - 0.00082738, 0.00050714, 7.27135359, 0.99747170, 0.99866549, 0.49308733], 3777 [- 6.27218153, - 0.00082716, 0.00050700, 7.27135437, 0.99747237, 0.99866584, 0.49308746], 3778 [- 6.27218209, - 0.00082693, 0.00050686, 7.27135515, 0.99747305, 0.99866620, 0.49308753], 3779 [- 6.27218265, - 0.00082671, 0.00050673, 7.27135593, 0.99747372, 0.99866656, 0.49308759], 3780 [- 6.27218321, - 0.00082649, 0.00050659, 7.27135671, 0.99747440, 0.99866691, 0.49308757], 3781 [- 6.27218377, - 0.00082627, 0.00050646, 7.27135749, 0.99747507, 0.99866727, 0.49308770], 3782 [- 6.27218433, - 0.00082605, 0.00050632, 7.27135827, 0.99747575, 0.99866763, 0.49308772], 3783 [- 6.27218488, - 0.00082583, 0.00050619, 7.27135905, 0.99747642, 0.99866798, 0.49308784], 3784 [- 6.27218544, - 0.00082561, 0.00050605, 7.27135983, 0.99747709, 0.99866834, 0.49308794], 3785 [- 6.27218600, - 0.00082539, 0.00050592, 7.27136061, 0.99747777, 0.99866869, 0.49308810], 3786 [- 6.27218656, - 0.00082517, 0.00050578, 7.27136139, 0.99747844, 0.99866905, 0.49308812], 3787 [- 6.27218711, - 0.00082495, 0.00050565, 7.27136216, 0.99747911, 0.99866940, 0.49308821], 3788 [- 6.27218767, - 0.00082473, 0.00050551, 7.27136294, 0.99747978, 0.99866976, 0.49308825], 3789 [- 6.27218823, - 0.00082451, 0.00050538, 7.27136371, 0.99748046, 0.99867011, 0.49308833], 3790 [- 6.27218878, - 0.00082429, 0.00050524, 7.27136449, 0.99748113, 0.99867046, 0.49308847], 3791 [- 6.27218934, - 0.00082407, 0.00050511, 7.27136526, 0.99748180, 0.99867082, 0.49308860], 3792 [- 6.27218989, - 0.00082385, 0.00050497, 7.27136604, 0.99748247, 0.99867117, 0.49308859], 3793 [- 6.27219045, - 0.00082363, 0.00050484, 7.27136681, 0.99748314, 0.99867153, 0.49308869], 3794 [- 6.27219100, - 0.00082341, 0.00050471, 7.27136759, 0.99748381, 0.99867188, 0.49308873], 3795 [- 6.27219155, - 0.00082320, 0.00050457, 7.27136836, 0.99748448, 0.99867223, 0.49308878], 3796 [- 6.27219211, - 0.00082298, 0.00050444, 7.27136913, 0.99748515, 0.99867259, 0.49308888], 3797 [- 6.27219266, - 0.00082276, 0.00050430, 7.27136990, 0.99748582, 0.99867294, 0.49308897], 3798 [- 6.27219321, - 0.00082254, 0.00050417, 7.27137067, 0.99748649, 0.99867329, 0.49308901], 3799 [- 6.27219376, - 0.00082232, 0.00050403, 7.27137144, 0.99748715, 0.99867364, 0.49308913], 3800 [- 6.27219432, - 0.00082210, 0.00050390, 7.27137221, 0.99748782, 0.99867400, 0.49308916], 3801 [- 6.27219487, - 0.00082188, 0.00050377, 7.27137298, 0.99748849, 0.99867435, 0.49308935], 3802 [- 6.27219542, - 0.00082167, 0.00050363, 7.27137375, 0.99748916, 0.99867470, 0.49308938], 3803 [- 6.27219597, - 0.00082145, 0.00050350, 7.27137452, 0.99748982, 0.99867505, 0.49308944], 3804 [- 6.27219652, - 0.00082123, 0.00050337, 7.27137529, 0.99749049, 0.99867540, 0.49308959], 3805 [- 6.27219707, - 0.00082101, 0.00050323, 7.27137606, 0.99749116, 0.99867576, 0.49308961], 3806 [- 6.27219762, - 0.00082080, 0.00050310, 7.27137682, 0.99749182, 0.99867611, 0.49308966], 3807 [- 6.27219817, - 0.00082058, 0.00050296, 7.27137759, 0.99749249, 0.99867646, 0.49308979], 3808 [- 6.27219872, - 0.00082036, 0.00050283, 7.27137836, 0.99749315, 0.99867681, 0.49308985], 3809 [- 6.27219926, - 0.00082014, 0.00050270, 7.27137912, 0.99749382, 0.99867716, 0.49308989], 3810 [- 6.27219981, - 0.00081993, 0.00050256, 7.27137989, 0.99749448, 0.99867751, 0.49309002], 3811 [- 6.27220036, - 0.00081971, 0.00050243, 7.27138065, 0.99749514, 0.99867786, 0.49309006], 3812 [- 6.27220091, - 0.00081949, 0.00050230, 7.27138141, 0.99749581, 0.99867821, 0.49309016], 3813 [- 6.27220145, - 0.00081927, 0.00050216, 7.27138218, 0.99749647, 0.99867856, 0.49309022], 3814 [- 6.27220200, - 0.00081906, 0.00050203, 7.27138294, 0.99749713, 0.99867891, 0.49309028], 3815 [- 6.27220254, - 0.00081884, 0.00050190, 7.27138370, 0.99749780, 0.99867926, 0.49309037], 3816 [- 6.27220309, - 0.00081862, 0.00050177, 7.27138446, 0.99749846, 0.99867961, 0.49309053], 3817 [- 6.27220363, - 0.00081841, 0.00050163, 7.27138523, 0.99749912, 0.99867996, 0.49309055], 3818 [- 6.27220418, - 0.00081819, 0.00050150, 7.27138599, 0.99749978, 0.99868031, 0.49309069], 3819 [- 6.27220472, - 0.00081798, 0.00050137, 7.27138675, 0.99750044, 0.99868066, 0.49309070], 3820 [- 6.27220527, - 0.00081776, 0.00050124, 7.27138751, 0.99750110, 0.99868100, 0.49309083], 3821 [- 6.27220581, - 0.00081754, 0.00050110, 7.27138827, 0.99750176, 0.99868135, 0.49309090], 3822 [- 6.27220635, - 0.00081733, 0.00050097, 7.27138902, 0.99750242, 0.99868170, 0.49309098], 3823 [- 6.27220690, - 0.00081711, 0.00050084, 7.27138978, 0.99750308, 0.99868205, 0.49309101], 3824 [- 6.27220744, - 0.00081690, 0.00050071, 7.27139054, 0.99750374, 0.99868240, 0.49309113], 3825 [- 6.27220798, - 0.00081668, 0.00050057, 7.27139130, 0.99750440, 0.99868275, 0.49309116], 3826 [- 6.27220852, - 0.00081647, 0.00050044, 7.27139205, 0.99750506, 0.99868309, 0.49309123], 3827 [- 6.27220906, - 0.00081625, 0.00050031, 7.27139281, 0.99750572, 0.99868344, 0.49309142], 3828 [- 6.27220960, - 0.00081604, 0.00050018, 7.27139357, 0.99750638, 0.99868379, 0.49309142], 3829 [- 6.27221014, - 0.00081582, 0.00050005, 7.27139432, 0.99750703, 0.99868413, 0.49309146], 3830 [- 6.27221068, - 0.00081561, 0.00049991, 7.27139508, 0.99750769, 0.99868448, 0.49309158], 3831 [- 6.27221122, - 0.00081539, 0.00049978, 7.27139583, 0.99750835, 0.99868483, 0.49309166], 3832 [- 6.27221176, - 0.00081518, 0.00049965, 7.27139659, 0.99750901, 0.99868517, 0.49309171], 3833 [- 6.27221230, - 0.00081496, 0.00049952, 7.27139734, 0.99750966, 0.99868552, 0.49309183], 3834 [- 6.27221284, - 0.00081475, 0.00049939, 7.27139809, 0.99751032, 0.99868587, 0.49309186], 3835 [- 6.27221338, - 0.00081453, 0.00049926, 7.27139884, 0.99751097, 0.99868621, 0.49309196], 3836 [- 6.27221391, - 0.00081432, 0.00049912, 7.27139960, 0.99751163, 0.99868656, 0.49309197], 3837 [- 6.27221445, - 0.00081410, 0.00049899, 7.27140035, 0.99751228, 0.99868690, 0.49309212], 3838 [- 6.27221499, - 0.00081389, 0.00049886, 7.27140110, 0.99751294, 0.99868725, 0.49309226], 3839 [- 6.27221552, - 0.00081368, 0.00049873, 7.27140185, 0.99751359, 0.99868759, 0.49309233], 3840 [- 6.27221606, - 0.00081346, 0.00049860, 7.27140260, 0.99751425, 0.99868794, 0.49309240], 3841 [- 6.27221660, - 0.00081325, 0.00049847, 7.27140335, 0.99751490, 0.99868828, 0.49309241], 3842 [- 6.27221713, - 0.00081303, 0.00049834, 7.27140410, 0.99751555, 0.99868863, 0.49309250], 3843 [- 6.27221767, - 0.00081282, 0.00049821, 7.27140485, 0.99751621, 0.99868897, 0.49309252], 3844 [- 6.27221820, - 0.00081261, 0.00049807, 7.27140559, 0.99751686, 0.99868932, 0.49309262], 3845 [- 6.27221874, - 0.00081239, 0.00049794, 7.27140634, 0.99751751, 0.99868966, 0.49309274], 3846 [- 6.27221927, - 0.00081218, 0.00049781, 7.27140709, 0.99751816, 0.99869001, 0.49309277], 3847 [- 6.27221980, - 0.00081197, 0.00049768, 7.27140784, 0.99751881, 0.99869035, 0.49309287], 3848 [- 6.27222034, - 0.00081176, 0.00049755, 7.27140858, 0.99751946, 0.99869069, 0.49309295], 3849 [- 6.27222087, - 0.00081154, 0.00049742, 7.27140933, 0.99752012, 0.99869104, 0.49309305], 3850 [- 6.27222140, - 0.00081133, 0.00049729, 7.27141007, 0.99752077, 0.99869138, 0.49309311], 3851 [- 6.27222193, - 0.00081112, 0.00049716, 7.27141082, 0.99752142, 0.99869172, 0.49309317], 3852 [- 6.27222247, - 0.00081090, 0.00049703, 7.27141156, 0.99752207, 0.99869207, 0.49309328], 3853 [- 6.27222300, - 0.00081069, 0.00049690, 7.27141230, 0.99752271, 0.99869241, 0.49309332], 3854 [- 6.27222353, - 0.00081048, 0.00049677, 7.27141305, 0.99752336, 0.99869275, 0.49309344], 3855 [- 6.27222406, - 0.00081027, 0.00049664, 7.27141379, 0.99752401, 0.99869309, 0.49309341], 3856 [- 6.27222459, - 0.00081006, 0.00049651, 7.27141453, 0.99752466, 0.99869344, 0.49309354], 3857 [- 6.27222512, - 0.00080984, 0.00049638, 7.27141527, 0.99752531, 0.99869378, 0.49309361], 3858 [- 6.27222565, - 0.00080963, 0.00049625, 7.27141602, 0.99752596, 0.99869412, 0.49309375], 3859 [- 6.27222618, - 0.00080942, 0.00049612, 7.27141676, 0.99752660, 0.99869446, 0.49309380], 3860 [- 6.27222671, - 0.00080921, 0.00049599, 7.27141750, 0.99752725, 0.99869480, 0.49309382], 3861 [- 6.27222723, - 0.00080900, 0.00049586, 7.27141824, 0.99752790, 0.99869514, 0.49309395], 3862 [- 6.27222776, - 0.00080879, 0.00049573, 7.27141898, 0.99752854, 0.99869548, 0.49309403], 3863 [- 6.27222829, - 0.00080857, 0.00049560, 7.27141972, 0.99752919, 0.99869582, 0.49309409], 3864 [- 6.27222882, - 0.00080836, 0.00049547, 7.27142045, 0.99752984, 0.99869617, 0.49309410], 3865 [- 6.27222934, - 0.00080815, 0.00049534, 7.27142119, 0.99753048, 0.99869651, 0.49309425], 3866 [- 6.27222987, - 0.00080794, 0.00049521, 7.27142193, 0.99753113, 0.99869685, 0.49309434], 3867 [- 6.27223040, - 0.00080773, 0.00049508, 7.27142267, 0.99753177, 0.99869719, 0.49309443], 3868 [- 6.27223092, - 0.00080752, 0.00049495, 7.27142340, 0.99753241, 0.99869753, 0.49309447], 3869 [- 6.27223145, - 0.00080731, 0.00049482, 7.27142414, 0.99753306, 0.99869787, 0.49309457], 3870 [- 6.27223197, - 0.00080710, 0.00049469, 7.27142488, 0.99753370, 0.99869821, 0.49309459], 3871 [- 6.27223250, - 0.00080689, 0.00049457, 7.27142561, 0.99753435, 0.99869855, 0.49309463], 3872 [- 6.27223302, - 0.00080668, 0.00049444, 7.27142635, 0.99753499, 0.99869888, 0.49309473], 3873 [- 6.27223355, - 0.00080647, 0.00049431, 7.27142708, 0.99753563, 0.99869922, 0.49309486], 3874 [- 6.27223407, - 0.00080626, 0.00049418, 7.27142781, 0.99753627, 0.99869956, 0.49309496], 3875 [- 6.27223460, - 0.00080605, 0.00049405, 7.27142855, 0.99753692, 0.99869990, 0.49309501], 3876 [- 6.27223512, - 0.00080584, 0.00049392, 7.27142928, 0.99753756, 0.99870024, 0.49309506], 3877 [- 6.27223564, - 0.00080563, 0.00049379, 7.27143001, 0.99753820, 0.99870058, 0.49309510], 3878 [- 6.27223616, - 0.00080542, 0.00049366, 7.27143074, 0.99753884, 0.99870092, 0.49309524], 3879 [- 6.27223669, - 0.00080521, 0.00049354, 7.27143148, 0.99753948, 0.99870125, 0.49309538], 3880 [- 6.27223721, - 0.00080500, 0.00049341, 7.27143221, 0.99754012, 0.99870159, 0.49309541], 3881 [- 6.27223773, - 0.00080479, 0.00049328, 7.27143294, 0.99754076, 0.99870193, 0.49309547], 3882 [- 6.27223825, - 0.00080458, 0.00049315, 7.27143367, 0.99754140, 0.99870227, 0.49309552], 3883 [- 6.27223877, - 0.00080437, 0.00049302, 7.27143440, 0.99754204, 0.99870260, 0.49309562], 3884 [- 6.27223929, - 0.00080416, 0.00049289, 7.27143513, 0.99754268, 0.99870294, 0.49309564], 3885 [- 6.27223981, - 0.00080395, 0.00049277, 7.27143586, 0.99754332, 0.99870328, 0.49309575], 3886 [- 6.27224033, - 0.00080375, 0.00049264, 7.27143658, 0.99754395, 0.99870362, 0.49309585], 3887 [- 6.27224085, - 0.00080354, 0.00049251, 7.27143731, 0.99754459, 0.99870395, 0.49309591], 3888 [- 6.27224137, - 0.00080333, 0.00049238, 7.27143804, 0.99754523, 0.99870429, 0.49309595], 3889 [- 6.27224189, - 0.00080312, 0.00049225, 7.27143877, 0.99754587, 0.99870463, 0.49309610], 3890 [- 6.27224241, - 0.00080291, 0.00049213, 7.27143949, 0.99754650, 0.99870496, 0.49309609], 3891 [- 6.27224292, - 0.00080270, 0.00049200, 7.27144022, 0.99754714, 0.99870530, 0.49309625], 3892 [- 6.27224344, - 0.00080250, 0.00049187, 7.27144094, 0.99754778, 0.99870563, 0.49309625], 3893 [- 6.27224396, - 0.00080229, 0.00049174, 7.27144167, 0.99754841, 0.99870597, 0.49309632], 3894 [- 6.27224447, - 0.00080208, 0.00049162, 7.27144239, 0.99754905, 0.99870630, 0.49309639], 3895 [- 6.27224499, - 0.00080187, 0.00049149, 7.27144312, 0.99754968, 0.99870664, 0.49309648], 3896 [- 6.27224551, - 0.00080166, 0.00049136, 7.27144384, 0.99755032, 0.99870697, 0.49309655], 3897 [- 6.27224602, - 0.00080146, 0.00049123, 7.27144457, 0.99755095, 0.99870731, 0.49309667], 3898 [- 6.27224654, - 0.00080125, 0.00049111, 7.27144529, 0.99755159, 0.99870764, 0.49309666], 3899 [- 6.27224705, - 0.00080104, 0.00049098, 7.27144601, 0.99755222, 0.99870798, 0.49309679], 3900 [- 6.27224757, - 0.00080084, 0.00049085, 7.27144673, 0.99755286, 0.99870831, 0.49309687], 3901 [- 6.27224808, - 0.00080063, 0.00049072, 7.27144746, 0.99755349, 0.99870865, 0.49309695], 3902 [- 6.27224860, - 0.00080042, 0.00049060, 7.27144818, 0.99755412, 0.99870898, 0.49309704], 3903 [- 6.27224911, - 0.00080021, 0.00049047, 7.27144890, 0.99755476, 0.99870932, 0.49309706], 3904 [- 6.27224962, - 0.00080001, 0.00049034, 7.27144962, 0.99755539, 0.99870965, 0.49309713], 3905 [- 6.27225014, - 0.00079980, 0.00049022, 7.27145034, 0.99755602, 0.99870998, 0.49309722], 3906 [- 6.27225065, - 0.00079959, 0.00049009, 7.27145106, 0.99755665, 0.99871032, 0.49309728], 3907 [- 6.27225116, - 0.00079939, 0.00048996, 7.27145178, 0.99755728, 0.99871065, 0.49309738], 3908 [- 6.27225168, - 0.00079918, 0.00048984, 7.27145249, 0.99755791, 0.99871098, 0.49309747], 3909 [- 6.27225219, - 0.00079897, 0.00048971, 7.27145321, 0.99755854, 0.99871131, 0.49309753], 3910 [- 6.27225270, - 0.00079877, 0.00048958, 7.27145393, 0.99755918, 0.99871165, 0.49309771], 3911 [- 6.27225321, - 0.00079856, 0.00048946, 7.27145465, 0.99755981, 0.99871198, 0.49309765], 3912 [- 6.27225372, - 0.00079836, 0.00048933, 7.27145536, 0.99756044, 0.99871231, 0.49309782], 3913 [- 6.27225423, - 0.00079815, 0.00048921, 7.27145608, 0.99756106, 0.99871264, 0.49309784], 3914 [- 6.27225474, - 0.00079795, 0.00048908, 7.27145680, 0.99756169, 0.99871298, 0.49309793], 3915 [- 6.27225525, - 0.00079774, 0.00048895, 7.27145751, 0.99756232, 0.99871331, 0.49309799], 3916 [- 6.27225576, - 0.00079753, 0.00048883, 7.27145823, 0.99756295, 0.99871364, 0.49309812], 3917 [- 6.27225627, - 0.00079733, 0.00048870, 7.27145894, 0.99756358, 0.99871397, 0.49309805], 3918 [- 6.27225678, - 0.00079712, 0.00048857, 7.27145966, 0.99756421, 0.99871430, 0.49309821], 3919 [- 6.27225729, - 0.00079692, 0.00048845, 7.27146037, 0.99756483, 0.99871463, 0.49309831], 3920 [- 6.27225780, - 0.00079671, 0.00048832, 7.27146108, 0.99756546, 0.99871496, 0.49309836], 3921 [- 6.27225830, - 0.00079651, 0.00048820, 7.27146180, 0.99756609, 0.99871529, 0.49309842], 3922 [- 6.27225881, - 0.00079630, 0.00048807, 7.27146251, 0.99756671, 0.99871563, 0.49309856], 3923 [- 6.27225932, - 0.00079610, 0.00048795, 7.27146322, 0.99756734, 0.99871596, 0.49309861], 3924 [- 6.27225983, - 0.00079589, 0.00048782, 7.27146393, 0.99756797, 0.99871629, 0.49309861], 3925 [- 6.27226033, - 0.00079569, 0.00048769, 7.27146464, 0.99756859, 0.99871662, 0.49309873], 3926 [- 6.27226084, - 0.00079548, 0.00048757, 7.27146535, 0.99756922, 0.99871695, 0.49309877], 3927 [- 6.27226134, - 0.00079528, 0.00048744, 7.27146606, 0.99756984, 0.99871728, 0.49309886], 3928 [- 6.27226185, - 0.00079508, 0.00048732, 7.27146677, 0.99757047, 0.99871761, 0.49309893], 3929 [- 6.27226235, - 0.00079487, 0.00048719, 7.27146748, 0.99757109, 0.99871793, 0.49309902], 3930 [- 6.27226286, - 0.00079467, 0.00048707, 7.27146819, 0.99757172, 0.99871826, 0.49309912], 3931 [- 6.27226336, - 0.00079446, 0.00048694, 7.27146890, 0.99757234, 0.99871859, 0.49309921], 3932 [- 6.27226387, - 0.00079426, 0.00048682, 7.27146961, 0.99757296, 0.99871892, 0.49309921], 3933 [- 6.27226437, - 0.00079406, 0.00048669, 7.27147032, 0.99757359, 0.99871925, 0.49309928], 3934 [- 6.27226488, - 0.00079385, 0.00048657, 7.27147102, 0.99757421, 0.99871958, 0.49309939], 3935 [- 6.27226538, - 0.00079365, 0.00048644, 7.27147173, 0.99757483, 0.99871991, 0.49309945], 3936 [- 6.27226588, - 0.00079345, 0.00048632, 7.27147244, 0.99757545, 0.99872024, 0.49309958], 3937 [- 6.27226639, - 0.00079324, 0.00048619, 7.27147314, 0.99757607, 0.99872056, 0.49309958], 3938 [- 6.27226689, - 0.00079304, 0.00048607, 7.27147385, 0.99757670, 0.99872089, 0.49309961], 3939 [- 6.27226739, - 0.00079284, 0.00048594, 7.27147455, 0.99757732, 0.99872122, 0.49309967], 3940 [- 6.27226789, - 0.00079263, 0.00048582, 7.27147526, 0.99757794, 0.99872155, 0.49309986], 3941 [- 6.27226839, - 0.00079243, 0.00048570, 7.27147596, 0.99757856, 0.99872187, 0.49309996], 3942 [- 6.27226889, - 0.00079223, 0.00048557, 7.27147667, 0.99757918, 0.99872220, 0.49309999], 3943 [- 6.27226939, - 0.00079202, 0.00048545, 7.27147737, 0.99757980, 0.99872253, 0.49310010], 3944 [- 6.27226990, - 0.00079182, 0.00048532, 7.27147807, 0.99758042, 0.99872286, 0.49310015], 3945 [- 6.27227040, - 0.00079162, 0.00048520, 7.27147878, 0.99758104, 0.99872318, 0.49310022], 3946 [- 6.27227090, - 0.00079142, 0.00048507, 7.27147948, 0.99758166, 0.99872351, 0.49310023], 3947 [- 6.27227139, - 0.00079121, 0.00048495, 7.27148018, 0.99758227, 0.99872384, 0.49310029], 3948 [- 6.27227189, - 0.00079101, 0.00048483, 7.27148088, 0.99758289, 0.99872416, 0.49310038], 3949 [- 6.27227239, - 0.00079081, 0.00048470, 7.27148158, 0.99758351, 0.99872449, 0.49310046], 3950 [- 6.27227289, - 0.00079061, 0.00048458, 7.27148228, 0.99758413, 0.99872481, 0.49310052], 3951 [- 6.27227339, - 0.00079041, 0.00048445, 7.27148298, 0.99758474, 0.99872514, 0.49310058], 3952 [- 6.27227389, - 0.00079020, 0.00048433, 7.27148368, 0.99758536, 0.99872546, 0.49310064], 3953 [- 6.27227439, - 0.00079000, 0.00048421, 7.27148438, 0.99758598, 0.99872579, 0.49310077], 3954 [- 6.27227488, - 0.00078980, 0.00048408, 7.27148508, 0.99758659, 0.99872612, 0.49310085], 3955 [- 6.27227538, - 0.00078960, 0.00048396, 7.27148578, 0.99758721, 0.99872644, 0.49310092], 3956 [- 6.27227588, - 0.00078940, 0.00048384, 7.27148648, 0.99758783, 0.99872677, 0.49310100], 3957 [- 6.27227637, - 0.00078920, 0.00048371, 7.27148717, 0.99758844, 0.99872709, 0.49310112], 3958 [- 6.27227687, - 0.00078900, 0.00048359, 7.27148787, 0.99758906, 0.99872741, 0.49310113], 3959 [- 6.27227736, - 0.00078880, 0.00048347, 7.27148857, 0.99758967, 0.99872774, 0.49310122], 3960 [- 6.27227786, - 0.00078859, 0.00048334, 7.27148927, 0.99759029, 0.99872806, 0.49310127], 3961 [- 6.27227836, - 0.00078839, 0.00048322, 7.27148996, 0.99759090, 0.99872839, 0.49310130], 3962 [- 6.27227885, - 0.00078819, 0.00048310, 7.27149066, 0.99759151, 0.99872871, 0.49310141], 3963 [- 6.27227934, - 0.00078799, 0.00048297, 7.27149135, 0.99759213, 0.99872903, 0.49310152], 3964 [- 6.27227984, - 0.00078779, 0.00048285, 7.27149205, 0.99759274, 0.99872936, 0.49310152], 3965 [- 6.27228033, - 0.00078759, 0.00048273, 7.27149274, 0.99759335, 0.99872968, 0.49310163], 3966 [- 6.27228083, - 0.00078739, 0.00048260, 7.27149344, 0.99759397, 0.99873001, 0.49310168], 3967 [- 6.27228132, - 0.00078719, 0.00048248, 7.27149413, 0.99759458, 0.99873033, 0.49310178], 3968 [- 6.27228181, - 0.00078699, 0.00048236, 7.27149482, 0.99759519, 0.99873065, 0.49310189], 3969 [- 6.27228231, - 0.00078679, 0.00048224, 7.27149552, 0.99759580, 0.99873097, 0.49310191], 3970 [- 6.27228280, - 0.00078659, 0.00048211, 7.27149621, 0.99759641, 0.99873130, 0.49310203], 3971 [- 6.27228329, - 0.00078639, 0.00048199, 7.27149690, 0.99759702, 0.99873162, 0.49310202], 3972 [- 6.27228378, - 0.00078619, 0.00048187, 7.27149759, 0.99759763, 0.99873194, 0.49310216], 3973 [- 6.27228427, - 0.00078599, 0.00048175, 7.27149828, 0.99759825, 0.99873226, 0.49310220], 3974 [- 6.27228476, - 0.00078579, 0.00048162, 7.27149897, 0.99759886, 0.99873259, 0.49310228], 3975 [- 6.27228526, - 0.00078559, 0.00048150, 7.27149966, 0.99759946, 0.99873291, 0.49310231], 3976 [- 6.27228575, - 0.00078539, 0.00048138, 7.27150035, 0.99760007, 0.99873323, 0.49310245], 3977 [- 6.27228624, - 0.00078519, 0.00048126, 7.27150104, 0.99760068, 0.99873355, 0.49310250], 3978 [- 6.27228673, - 0.00078500, 0.00048113, 7.27150173, 0.99760129, 0.99873387, 0.49310256], 3979 [- 6.27228722, - 0.00078480, 0.00048101, 7.27150242, 0.99760190, 0.99873419, 0.49310269], 3980 [- 6.27228771, - 0.00078460, 0.00048089, 7.27150311, 0.99760251, 0.99873451, 0.49310278], 3981 [- 6.27228819, - 0.00078440, 0.00048077, 7.27150380, 0.99760312, 0.99873483, 0.49310277], 3982 [- 6.27228868, - 0.00078420, 0.00048065, 7.27150448, 0.99760372, 0.99873515, 0.49310291], 3983 [- 6.27228917, - 0.00078400, 0.00048052, 7.27150517, 0.99760433, 0.99873548, 0.49310291], 3984 [- 6.27228966, - 0.00078380, 0.00048040, 7.27150586, 0.99760494, 0.99873580, 0.49310301], 3985 [- 6.27229015, - 0.00078360, 0.00048028, 7.27150654, 0.99760555, 0.99873612, 0.49310307], 3986 [- 6.27229064, - 0.00078341, 0.00048016, 7.27150723, 0.99760615, 0.99873644, 0.49310321], 3987 [- 6.27229112, - 0.00078321, 0.00048004, 7.27150792, 0.99760676, 0.99873676, 0.49310322], 3988 [- 6.27229161, - 0.00078301, 0.00047992, 7.27150860, 0.99760736, 0.99873707, 0.49310330], 3989 [- 6.27229210, - 0.00078281, 0.00047979, 7.27150929, 0.99760797, 0.99873739, 0.49310330], 3990 [- 6.27229258, - 0.00078261, 0.00047967, 7.27150997, 0.99760857, 0.99873771, 0.49310340], 3991 [- 6.27229307, - 0.00078242, 0.00047955, 7.27151065, 0.99760918, 0.99873803, 0.49310344], 3992 [- 6.27229356, - 0.00078222, 0.00047943, 7.27151134, 0.99760978, 0.99873835, 0.49310362], 3993 [- 6.27229404, - 0.00078202, 0.00047931, 7.27151202, 0.99761039, 0.99873867, 0.49310362], 3994 [- 6.27229453, - 0.00078182, 0.00047919, 7.27151270, 0.99761099, 0.99873899, 0.49310369], 3995 [- 6.27229501, - 0.00078163, 0.00047907, 7.27151339, 0.99761160, 0.99873931, 0.49310382], 3996 [- 6.27229550, - 0.00078143, 0.00047895, 7.27151407, 0.99761220, 0.99873963, 0.49310378], 3997 [- 6.27229598, - 0.00078123, 0.00047882, 7.27151475, 0.99761280, 0.99873994, 0.49310395], 3998 [- 6.27229646, - 0.00078103, 0.00047870, 7.27151543, 0.99761340, 0.99874026, 0.49310398], 3999 [- 6.27229695, - 0.00078084, 0.00047858, 7.27151611, 0.99761401, 0.99874058, 0.49310409], 4000 [- 6.27229743, - 0.00078064, 0.00047846, 7.27151679, 0.99761461, 0.99874090, 0.49310410], 4001 [- 6.27229791, - 0.00078044, 0.00047834, 7.27151747, 0.99761521, 0.99874122, 0.49310419], 4002 [- 6.27229840, - 0.00078025, 0.00047822, 7.27151815, 0.99761581, 0.99874153, 0.49310426], 4003 [- 6.27229888, - 0.00078005, 0.00047810, 7.27151883, 0.99761641, 0.99874185, 0.49310431], 4004 [- 6.27229936, - 0.00077985, 0.00047798, 7.27151951, 0.99761701, 0.99874217, 0.49310439], 4005 [- 6.27229984, - 0.00077966, 0.00047786, 7.27152019, 0.99761762, 0.99874248, 0.49310456], 4006 [- 6.27230033, - 0.00077946, 0.00047774, 7.27152087, 0.99761822, 0.99874280, 0.49310453], 4007 [- 6.27230081, - 0.00077926, 0.00047762, 7.27152154, 0.99761882, 0.99874312, 0.49310456], 4008 [- 6.27230129, - 0.00077907, 0.00047750, 7.27152222, 0.99761942, 0.99874343, 0.49310472], 4009 [- 6.27230177, - 0.00077887, 0.00047738, 7.27152290, 0.99762001, 0.99874375, 0.49310478], 4010 [- 6.27230225, - 0.00077868, 0.00047726, 7.27152357, 0.99762061, 0.99874407, 0.49310482], 4011 [- 6.27230273, - 0.00077848, 0.00047714, 7.27152425, 0.99762121, 0.99874438, 0.49310485], 4012 [- 6.27230321, - 0.00077828, 0.00047702, 7.27152493, 0.99762181, 0.99874470, 0.49310496], 4013 [- 6.27230369, - 0.00077809, 0.00047690, 7.27152560, 0.99762241, 0.99874501, 0.49310508], 4014 [- 6.27230417, - 0.00077789, 0.00047678, 7.27152628, 0.99762301, 0.99874533, 0.49310514], 4015 [- 6.27230465, - 0.00077770, 0.00047666, 7.27152695, 0.99762360, 0.99874564, 0.49310512], 4016 [- 6.27230513, - 0.00077750, 0.00047654, 7.27152763, 0.99762420, 0.99874596, 0.49310522], 4017 [- 6.27230561, - 0.00077731, 0.00047642, 7.27152830, 0.99762480, 0.99874627, 0.49310530], 4018 [- 6.27230609, - 0.00077711, 0.00047630, 7.27152897, 0.99762540, 0.99874659, 0.49310543], 4019 [- 6.27230656, - 0.00077692, 0.00047618, 7.27152965, 0.99762599, 0.99874690, 0.49310543], 4020 [- 6.27230704, - 0.00077672, 0.00047606, 7.27153032, 0.99762659, 0.99874722, 0.49310556], 4021 [- 6.27230752, - 0.00077653, 0.00047594, 7.27153099, 0.99762718, 0.99874753, 0.49310555], 4022 [- 6.27230800, - 0.00077633, 0.00047582, 7.27153166, 0.99762778, 0.99874785, 0.49310570], 4023 [- 6.27230847, - 0.00077614, 0.00047570, 7.27153233, 0.99762837, 0.99874816, 0.49310570], 4024 [- 6.27230895, - 0.00077594, 0.00047558, 7.27153301, 0.99762897, 0.99874848, 0.49310582], 4025 [- 6.27230943, - 0.00077575, 0.00047546, 7.27153368, 0.99762956, 0.99874879, 0.49310585], 4026 [- 6.27230990, - 0.00077556, 0.00047534, 7.27153435, 0.99763016, 0.99874910, 0.49310599], 4027 [- 6.27231038, - 0.00077536, 0.00047522, 7.27153502, 0.99763075, 0.99874942, 0.49310605], 4028 [- 6.27231085, - 0.00077517, 0.00047510, 7.27153569, 0.99763135, 0.99874973, 0.49310608], 4029 [- 6.27231133, - 0.00077497, 0.00047498, 7.27153636, 0.99763194, 0.99875004, 0.49310612], 4030 [- 6.27231180, - 0.00077478, 0.00047487, 7.27153702, 0.99763253, 0.99875036, 0.49310624], 4031 [- 6.27231228, - 0.00077458, 0.00047475, 7.27153769, 0.99763312, 0.99875067, 0.49310622], 4032 [- 6.27231275, - 0.00077439, 0.00047463, 7.27153836, 0.99763372, 0.99875098, 0.49310639], 4033 [- 6.27231323, - 0.00077420, 0.00047451, 7.27153903, 0.99763431, 0.99875129, 0.49310643], 4034 [- 6.27231370, - 0.00077400, 0.00047439, 7.27153970, 0.99763490, 0.99875161, 0.49310644], 4035 [- 6.27231417, - 0.00077381, 0.00047427, 7.27154036, 0.99763549, 0.99875192, 0.49310654], 4036 [- 6.27231465, - 0.00077362, 0.00047415, 7.27154103, 0.99763608, 0.99875223, 0.49310665], 4037 [- 6.27231512, - 0.00077342, 0.00047403, 7.27154170, 0.99763668, 0.99875254, 0.49310674], 4038 [- 6.27231559, - 0.00077323, 0.00047392, 7.27154236, 0.99763727, 0.99875285, 0.49310670], 4039 [- 6.27231607, - 0.00077304, 0.00047380, 7.27154303, 0.99763786, 0.99875317, 0.49310684], 4040 [- 6.27231654, - 0.00077284, 0.00047368, 7.27154369, 0.99763845, 0.99875348, 0.49310692], 4041 [- 6.27231701, - 0.00077265, 0.00047356, 7.27154436, 0.99763904, 0.99875379, 0.49310699], 4042 [- 6.27231748, - 0.00077246, 0.00047344, 7.27154502, 0.99763963, 0.99875410, 0.49310700], 4043 [- 6.27231795, - 0.00077227, 0.00047332, 7.27154569, 0.99764021, 0.99875441, 0.49310703], 4044 [- 6.27231842, - 0.00077207, 0.00047321, 7.27154635, 0.99764080, 0.99875472, 0.49310722], 4045 [- 6.27231889, - 0.00077188, 0.00047309, 7.27154701, 0.99764139, 0.99875503, 0.49310725], 4046 [- 6.27231936, - 0.00077169, 0.00047297, 7.27154768, 0.99764198, 0.99875534, 0.49310729], 4047 [- 6.27231984, - 0.00077150, 0.00047285, 7.27154834, 0.99764257, 0.99875565, 0.49310745], 4048 [- 6.27232031, - 0.00077130, 0.00047273, 7.27154900, 0.99764316, 0.99875596, 0.49310751], 4049 [- 6.27232077, - 0.00077111, 0.00047262, 7.27154966, 0.99764374, 0.99875627, 0.49310749], 4050 [- 6.27232124, - 0.00077092, 0.00047250, 7.27155032, 0.99764433, 0.99875658, 0.49310765], 4051 [- 6.27232171, - 0.00077073, 0.00047238, 7.27155099, 0.99764492, 0.99875689, 0.49310767], 4052 [- 6.27232218, - 0.00077054, 0.00047226, 7.27155165, 0.99764550, 0.99875720, 0.49310775], 4053 [- 6.27232265, - 0.00077034, 0.00047215, 7.27155231, 0.99764609, 0.99875751, 0.49310781], 4054 [- 6.27232312, - 0.00077015, 0.00047203, 7.27155297, 0.99764668, 0.99875782, 0.49310787], 4055 [- 6.27232359, - 0.00076996, 0.00047191, 7.27155363, 0.99764726, 0.99875813, 0.49310796], 4056 [- 6.27232406, - 0.00076977, 0.00047179, 7.27155429, 0.99764785, 0.99875844, 0.49310787], 4057 [- 6.27232452, - 0.00076958, 0.00047168, 7.27155494, 0.99764843, 0.99875875, 0.49310807], 4058 [- 6.27232499, - 0.00076939, 0.00047156, 7.27155560, 0.99764902, 0.99875906, 0.49310819], 4059 [- 6.27232546, - 0.00076920, 0.00047144, 7.27155626, 0.99764960, 0.99875936, 0.49310824], 4060 [- 6.27232592, - 0.00076900, 0.00047132, 7.27155692, 0.99765019, 0.99875967, 0.49310831], 4061 [- 6.27232639, - 0.00076881, 0.00047121, 7.27155758, 0.99765077, 0.99875998, 0.49310826], 4062 [- 6.27232686, - 0.00076862, 0.00047109, 7.27155823, 0.99765135, 0.99876029, 0.49310841], 4063 [- 6.27232732, - 0.00076843, 0.00047097, 7.27155889, 0.99765194, 0.99876060, 0.49310851], 4064 [- 6.27232779, - 0.00076824, 0.00047086, 7.27155955, 0.99765252, 0.99876090, 0.49310855], 4065 [- 6.27232825, - 0.00076805, 0.00047074, 7.27156020, 0.99765310, 0.99876121, 0.49310862], 4066 [- 6.27232872, - 0.00076786, 0.00047062, 7.27156086, 0.99765369, 0.99876152, 0.49310868], 4067 [- 6.27232918, - 0.00076767, 0.00047050, 7.27156151, 0.99765427, 0.99876183, 0.49310870], 4068 [- 6.27232965, - 0.00076748, 0.00047039, 7.27156217, 0.99765485, 0.99876213, 0.49310885], 4069 [- 6.27233011, - 0.00076729, 0.00047027, 7.27156282, 0.99765543, 0.99876244, 0.49310881], 4070 [- 6.27233058, - 0.00076710, 0.00047015, 7.27156348, 0.99765601, 0.99876275, 0.49310901], 4071 [- 6.27233104, - 0.00076691, 0.00047004, 7.27156413, 0.99765660, 0.99876305, 0.49310905], 4072 [- 6.27233150, - 0.00076672, 0.00046992, 7.27156478, 0.99765718, 0.99876336, 0.49310906], 4073 [- 6.27233197, - 0.00076653, 0.00046981, 7.27156544, 0.99765776, 0.99876367, 0.49310915], 4074 [- 6.27233243, - 0.00076634, 0.00046969, 7.27156609, 0.99765834, 0.99876397, 0.49310926], 4075 [- 6.27233289, - 0.00076615, 0.00046957, 7.27156674, 0.99765892, 0.99876428, 0.49310922], 4076 [- 6.27233336, - 0.00076596, 0.00046946, 7.27156740, 0.99765950, 0.99876458, 0.49310945], 4077 [- 6.27233382, - 0.00076577, 0.00046934, 7.27156805, 0.99766008, 0.99876489, 0.49310949], 4078 [- 6.27233428, - 0.00076558, 0.00046922, 7.27156870, 0.99766065, 0.99876520, 0.49310955], 4079 [- 6.27233474, - 0.00076539, 0.00046911, 7.27156935, 0.99766123, 0.99876550, 0.49310960], 4080 [- 6.27233520, - 0.00076520, 0.00046899, 7.27157000, 0.99766181, 0.99876581, 0.49310966], 4081 [- 6.27233566, - 0.00076501, 0.00046888, 7.27157065, 0.99766239, 0.99876611, 0.49310976], 4082 [- 6.27233612, - 0.00076482, 0.00046876, 7.27157130, 0.99766297, 0.99876642, 0.49310982], 4083 [- 6.27233658, - 0.00076464, 0.00046864, 7.27157195, 0.99766355, 0.99876672, 0.49310988], 4084 [- 6.27233705, - 0.00076445, 0.00046853, 7.27157260, 0.99766412, 0.99876703, 0.49310995], 4085 [- 6.27233751, - 0.00076426, 0.00046841, 7.27157325, 0.99766470, 0.99876733, 0.49310998], 4086 [- 6.27233797, - 0.00076407, 0.00046830, 7.27157390, 0.99766528, 0.99876763, 0.49311004], 4087 [- 6.27233843, - 0.00076388, 0.00046818, 7.27157454, 0.99766585, 0.99876794, 0.49311017], 4088 [- 6.27233888, - 0.00076369, 0.00046806, 7.27157519, 0.99766643, 0.99876824, 0.49311019], 4089 [- 6.27233934, - 0.00076350, 0.00046795, 7.27157584, 0.99766701, 0.99876855, 0.49311023], 4090 [- 6.27233980, - 0.00076332, 0.00046783, 7.27157649, 0.99766758, 0.99876885, 0.49311028], 4091 [- 6.27234026, - 0.00076313, 0.00046772, 7.27157713, 0.99766816, 0.99876915, 0.49311042], 4092 [- 6.27234072, - 0.00076294, 0.00046760, 7.27157778, 0.99766873, 0.99876946, 0.49311047], 4093 [- 6.27234118, - 0.00076275, 0.00046749, 7.27157843, 0.99766931, 0.99876976, 0.49311045], 4094 [- 6.27234163, - 0.00076256, 0.00046737, 7.27157907, 0.99766988, 0.99877006, 0.49311061], 4095 [- 6.27234209, - 0.00076238, 0.00046726, 7.27157972, 0.99767046, 0.99877037, 0.49311059], 4096 [- 6.27234255, - 0.00076219, 0.00046714, 7.27158036, 0.99767103, 0.99877067, 0.49311072], 4097 [- 6.27234301, - 0.00076200, 0.00046703, 7.27158101, 0.99767160, 0.99877097, 0.49311081], 4098 [- 6.27234346, - 0.00076181, 0.00046691, 7.27158165, 0.99767218, 0.99877128, 0.49311088], 4099 [- 6.27234392, - 0.00076163, 0.00046680, 7.27158229, 0.99767275, 0.99877158, 0.49311099], 4100 [- 6.27234438, - 0.00076144, 0.00046668, 7.27158294, 0.99767332, 0.99877188, 0.49311100], 4101 [- 6.27234483, - 0.00076125, 0.00046657, 7.27158358, 0.99767389, 0.99877218, 0.49311108], 4102 [- 6.27234529, - 0.00076106, 0.00046645, 7.27158422, 0.99767447, 0.99877248, 0.49311114], 4103 [- 6.27234574, - 0.00076088, 0.00046634, 7.27158487, 0.99767504, 0.99877279, 0.49311126], 4104 [- 6.27234620, - 0.00076069, 0.00046622, 7.27158551, 0.99767561, 0.99877309, 0.49311118], 4105 [- 6.27234665, - 0.00076050, 0.00046611, 7.27158615, 0.99767618, 0.99877339, 0.49311132], 4106 [- 6.27234711, - 0.00076032, 0.00046599, 7.27158679, 0.99767675, 0.99877369, 0.49311134], 4107 [- 6.27234756, - 0.00076013, 0.00046588, 7.27158743, 0.99767732, 0.99877399, 0.49311138], 4108 [- 6.27234802, - 0.00075994, 0.00046576, 7.27158807, 0.99767789, 0.99877429, 0.49311158], 4109 [- 6.27234847, - 0.00075976, 0.00046565, 7.27158872, 0.99767846, 0.99877459, 0.49311152], 4110 [- 6.27234892, - 0.00075957, 0.00046554, 7.27158935, 0.99767903, 0.99877489, 0.49311170], 4111 [- 6.27234938, - 0.00075938, 0.00046542, 7.27158999, 0.99767960, 0.99877519, 0.49311176], 4112 [- 6.27234983, - 0.00075920, 0.00046531, 7.27159063, 0.99768017, 0.99877550, 0.49311184], 4113 [- 6.27235028, - 0.00075901, 0.00046519, 7.27159127, 0.99768074, 0.99877580, 0.49311180], 4114 [- 6.27235074, - 0.00075882, 0.00046508, 7.27159191, 0.99768131, 0.99877610, 0.49311187], 4115 [- 6.27235119, - 0.00075864, 0.00046496, 7.27159255, 0.99768188, 0.99877640, 0.49311206], 4116 [- 6.27235164, - 0.00075845, 0.00046485, 7.27159319, 0.99768245, 0.99877670, 0.49311212], 4117 [- 6.27235209, - 0.00075827, 0.00046474, 7.27159383, 0.99768302, 0.99877700, 0.49311212], 4118 [- 6.27235255, - 0.00075808, 0.00046462, 7.27159446, 0.99768358, 0.99877730, 0.49311214], 4119 [- 6.27235300, - 0.00075790, 0.00046451, 7.27159510, 0.99768415, 0.99877759, 0.49311223], 4120 [- 6.27235345, - 0.00075771, 0.00046440, 7.27159574, 0.99768472, 0.99877789, 0.49311231], 4121 [- 6.27235390, - 0.00075753, 0.00046428, 7.27159637, 0.99768529, 0.99877819, 0.49311242], 4122 [- 6.27235435, - 0.00075734, 0.00046417, 7.27159701, 0.99768585, 0.99877849, 0.49311242], 4123 [- 6.27235480, - 0.00075715, 0.00046405, 7.27159765, 0.99768642, 0.99877879, 0.49311257], 4124 [- 6.27235525, - 0.00075697, 0.00046394, 7.27159828, 0.99768699, 0.99877909, 0.49311263], 4125 [- 6.27235570, - 0.00075678, 0.00046383, 7.27159892, 0.99768755, 0.99877939, 0.49311265], 4126 [- 6.27235615, - 0.00075660, 0.00046371, 7.27159955, 0.99768812, 0.99877969, 0.49311271], 4127 [- 6.27235660, - 0.00075641, 0.00046360, 7.27160019, 0.99768868, 0.99877999, 0.49311273], 4128 [- 6.27235705, - 0.00075623, 0.00046349, 7.27160082, 0.99768925, 0.99878028, 0.49311292], 4129 [- 6.27235750, - 0.00075605, 0.00046337, 7.27160145, 0.99768981, 0.99878058, 0.49311290], 4130 [- 6.27235795, - 0.00075586, 0.00046326, 7.27160209, 0.99769038, 0.99878088, 0.49311294], 4131 [- 6.27235840, - 0.00075568, 0.00046315, 7.27160272, 0.99769094, 0.99878118, 0.49311305], 4132 [- 6.27235884, - 0.00075549, 0.00046303, 7.27160335, 0.99769150, 0.99878147, 0.49311309], 4133 [- 6.27235929, - 0.00075531, 0.00046292, 7.27160398, 0.99769207, 0.99878177, 0.49311327], 4134 [- 6.27235974, - 0.00075512, 0.00046281, 7.27160462, 0.99769263, 0.99878207, 0.49311324], 4135 [- 6.27236019, - 0.00075494, 0.00046269, 7.27160525, 0.99769319, 0.99878237, 0.49311327], 4136 [- 6.27236063, - 0.00075475, 0.00046258, 7.27160588, 0.99769376, 0.99878266, 0.49311333], 4137 [- 6.27236108, - 0.00075457, 0.00046247, 7.27160651, 0.99769432, 0.99878296, 0.49311348], 4138 [- 6.27236153, - 0.00075439, 0.00046236, 7.27160714, 0.99769488, 0.99878326, 0.49311361], 4139 [- 6.27236197, - 0.00075420, 0.00046224, 7.27160777, 0.99769544, 0.99878355, 0.49311357], 4140 [- 6.27236242, - 0.00075402, 0.00046213, 7.27160840, 0.99769601, 0.99878385, 0.49311362], 4141 [- 6.27236287, - 0.00075384, 0.00046202, 7.27160903, 0.99769657, 0.99878415, 0.49311367], 4142 [- 6.27236331, - 0.00075365, 0.00046191, 7.27160966, 0.99769713, 0.99878444, 0.49311366], 4143 [- 6.27236376, - 0.00075347, 0.00046179, 7.27161029, 0.99769769, 0.99878474, 0.49311384], 4144 [- 6.27236420, - 0.00075329, 0.00046168, 7.27161092, 0.99769825, 0.99878503, 0.49311393], 4145 [- 6.27236465, - 0.00075310, 0.00046157, 7.27161155, 0.99769881, 0.99878533, 0.49311405], 4146 [- 6.27236509, - 0.00075292, 0.00046146, 7.27161217, 0.99769937, 0.99878563, 0.49311410], 4147 [- 6.27236554, - 0.00075274, 0.00046134, 7.27161280, 0.99769993, 0.99878592, 0.49311401], 4148 [- 6.27236598, - 0.00075255, 0.00046123, 7.27161343, 0.99770049, 0.99878622, 0.49311424], 4149 [- 6.27236643, - 0.00075237, 0.00046112, 7.27161406, 0.99770105, 0.99878651, 0.49311425], 4150 [- 6.27236687, - 0.00075219, 0.00046101, 7.27161468, 0.99770161, 0.99878681, 0.49311423], 4151 [- 6.27236731, - 0.00075200, 0.00046089, 7.27161531, 0.99770217, 0.99878710, 0.49311442], 4152 [- 6.27236776, - 0.00075182, 0.00046078, 7.27161594, 0.99770272, 0.99878740, 0.49311431], 4153 [- 6.27236820, - 0.00075164, 0.00046067, 7.27161656, 0.99770328, 0.99878769, 0.49311449], 4154 [- 6.27236864, - 0.00075146, 0.00046056, 7.27161719, 0.99770384, 0.99878798, 0.49311451], 4155 [- 6.27236909, - 0.00075127, 0.00046045, 7.27161781, 0.99770440, 0.99878828, 0.49311462], 4156 [- 6.27236953, - 0.00075109, 0.00046034, 7.27161844, 0.99770496, 0.99878857, 0.49311465], 4157 [- 6.27236997, - 0.00075091, 0.00046022, 7.27161906, 0.99770551, 0.99878887, 0.49311479], 4158 [- 6.27237041, - 0.00075073, 0.00046011, 7.27161968, 0.99770607, 0.99878916, 0.49311488], 4159 [- 6.27237085, - 0.00075055, 0.00046000, 7.27162031, 0.99770663, 0.99878945, 0.49311489], 4160 [- 6.27237130, - 0.00075036, 0.00045989, 7.27162093, 0.99770718, 0.99878975, 0.49311496], 4161 [- 6.27237174, - 0.00075018, 0.00045978, 7.27162155, 0.99770774, 0.99879004, 0.49311494], 4162 [- 6.27237218, - 0.00075000, 0.00045967, 7.27162218, 0.99770829, 0.99879033, 0.49311510], 4163 [- 6.27237262, - 0.00074982, 0.00045955, 7.27162280, 0.99770885, 0.99879063, 0.49311504], 4164 [- 6.27237306, - 0.00074964, 0.00045944, 7.27162342, 0.99770941, 0.99879092, 0.49311523], 4165 [- 6.27237350, - 0.00074946, 0.00045933, 7.27162404, 0.99770996, 0.99879121, 0.49311526], 4166 [- 6.27237394, - 0.00074927, 0.00045922, 7.27162466, 0.99771051, 0.99879151, 0.49311531], 4167 [- 6.27237438, - 0.00074909, 0.00045911, 7.27162529, 0.99771107, 0.99879180, 0.49311549], 4168 [- 6.27237482, - 0.00074891, 0.00045900, 7.27162591, 0.99771162, 0.99879209, 0.49311546], 4169 [- 6.27237526, - 0.00074873, 0.00045889, 7.27162653, 0.99771218, 0.99879238, 0.49311554], 4170 [- 6.27237570, - 0.00074855, 0.00045878, 7.27162715, 0.99771273, 0.99879268, 0.49311557], 4171 [- 6.27237614, - 0.00074837, 0.00045866, 7.27162777, 0.99771328, 0.99879297, 0.49311573], 4172 [- 6.27237657, - 0.00074819, 0.00045855, 7.27162839, 0.99771384, 0.99879326, 0.49311571], 4173 [- 6.27237701, - 0.00074801, 0.00045844, 7.27162901, 0.99771439, 0.99879355, 0.49311580], 4174 [- 6.27237745, - 0.00074783, 0.00045833, 7.27162962, 0.99771494, 0.99879384, 0.49311585], 4175 [- 6.27237789, - 0.00074765, 0.00045822, 7.27163024, 0.99771549, 0.99879413, 0.49311592], 4176 [- 6.27237833, - 0.00074747, 0.00045811, 7.27163086, 0.99771605, 0.99879442, 0.49311607], 4177 [- 6.27237876, - 0.00074728, 0.00045800, 7.27163148, 0.99771660, 0.99879472, 0.49311608], 4178 [- 6.27237920, - 0.00074710, 0.00045789, 7.27163210, 0.99771715, 0.99879501, 0.49311612], 4179 [- 6.27237964, - 0.00074692, 0.00045778, 7.27163271, 0.99771770, 0.99879530, 0.49311622], 4180 [- 6.27238007, - 0.00074674, 0.00045767, 7.27163333, 0.99771825, 0.99879559, 0.49311623], 4181 [- 6.27238051, - 0.00074656, 0.00045756, 7.27163395, 0.99771880, 0.99879588, 0.49311629], 4182 [- 6.27238095, - 0.00074638, 0.00045745, 7.27163456, 0.99771935, 0.99879617, 0.49311629], 4183 [- 6.27238138, - 0.00074620, 0.00045734, 7.27163518, 0.99771990, 0.99879646, 0.49311644], 4184 [- 6.27238182, - 0.00074602, 0.00045723, 7.27163580, 0.99772045, 0.99879675, 0.49311641], 4185 [- 6.27238225, - 0.00074584, 0.00045712, 7.27163641, 0.99772100, 0.99879704, 0.49311653], 4186 [- 6.27238269, - 0.00074566, 0.00045701, 7.27163703, 0.99772155, 0.99879733, 0.49311671], 4187 [- 6.27238312, - 0.00074548, 0.00045690, 7.27163764, 0.99772210, 0.99879762, 0.49311673], 4188 [- 6.27238356, - 0.00074531, 0.00045679, 7.27163825, 0.99772265, 0.99879791, 0.49311683], 4189 [- 6.27238399, - 0.00074513, 0.00045668, 7.27163887, 0.99772320, 0.99879820, 0.49311676], 4190 [- 6.27238443, - 0.00074495, 0.00045657, 7.27163948, 0.99772375, 0.99879849, 0.49311684], 4191 [- 6.27238486, - 0.00074477, 0.00045646, 7.27164010, 0.99772429, 0.99879878, 0.49311690], 4192 [- 6.27238530, - 0.00074459, 0.00045635, 7.27164071, 0.99772484, 0.99879907, 0.49311703], 4193 [- 6.27238573, - 0.00074441, 0.00045624, 7.27164132, 0.99772539, 0.99879936, 0.49311710], 4194 [- 6.27238616, - 0.00074423, 0.00045613, 7.27164193, 0.99772594, 0.99879964, 0.49311708], 4195 [- 6.27238660, - 0.00074405, 0.00045602, 7.27164255, 0.99772648, 0.99879993, 0.49311725], 4196 [- 6.27238703, - 0.00074387, 0.00045591, 7.27164316, 0.99772703, 0.99880022, 0.49311732], 4197 [- 6.27238746, - 0.00074369, 0.00045580, 7.27164377, 0.99772758, 0.99880051, 0.49311738], 4198 [- 6.27238790, - 0.00074352, 0.00045569, 7.27164438, 0.99772812, 0.99880080, 0.49311739], 4199 [- 6.27238833, - 0.00074334, 0.00045558, 7.27164499, 0.99772867, 0.99880109, 0.49311746], 4200 [- 6.27238876, - 0.00074316, 0.00045547, 7.27164560, 0.99772921, 0.99880137, 0.49311752], 4201 [- 6.27238919, - 0.00074298, 0.00045536, 7.27164621, 0.99772976, 0.99880166, 0.49311758], 4202 [- 6.27238962, - 0.00074280, 0.00045525, 7.27164682, 0.99773030, 0.99880195, 0.49311766], 4203 [- 6.27239006, - 0.00074262, 0.00045514, 7.27164743, 0.99773085, 0.99880224, 0.49311772], 4204 [- 6.27239049, - 0.00074245, 0.00045503, 7.27164804, 0.99773139, 0.99880252, 0.49311777], 4205 [- 6.27239092, - 0.00074227, 0.00045492, 7.27164865, 0.99773194, 0.99880281, 0.49311785], 4206 [- 6.27239135, - 0.00074209, 0.00045481, 7.27164926, 0.99773248, 0.99880310, 0.49311791], 4207 [- 6.27239178, - 0.00074191, 0.00045470, 7.27164987, 0.99773303, 0.99880339, 0.49311797], 4208 [- 6.27239221, - 0.00074173, 0.00045459, 7.27165048, 0.99773357, 0.99880367, 0.49311806], 4209 [- 6.27239264, - 0.00074156, 0.00045449, 7.27165108, 0.99773411, 0.99880396, 0.49311809], 4210 [- 6.27239307, - 0.00074138, 0.00045438, 7.27165169, 0.99773466, 0.99880425, 0.49311816], 4211 [- 6.27239350, - 0.00074120, 0.00045427, 7.27165230, 0.99773520, 0.99880453, 0.49311824], 4212 [- 6.27239393, - 0.00074102, 0.00045416, 7.27165291, 0.99773574, 0.99880482, 0.49311829], 4213 [- 6.27239436, - 0.00074085, 0.00045405, 7.27165351, 0.99773628, 0.99880510, 0.49311835], 4214 [- 6.27239479, - 0.00074067, 0.00045394, 7.27165412, 0.99773683, 0.99880539, 0.49311839], 4215 [- 6.27239522, - 0.00074049, 0.00045383, 7.27165472, 0.99773737, 0.99880568, 0.49311849], 4216 [- 6.27239564, - 0.00074031, 0.00045372, 7.27165533, 0.99773791, 0.99880596, 0.49311853], 4217 [- 6.27239607, - 0.00074014, 0.00045362, 7.27165593, 0.99773845, 0.99880625, 0.49311862], 4218 [- 6.27239650, - 0.00073996, 0.00045351, 7.27165654, 0.99773899, 0.99880653, 0.49311867], 4219 [- 6.27239693, - 0.00073978, 0.00045340, 7.27165714, 0.99773953, 0.99880682, 0.49311873], 4220 [- 6.27239736, - 0.00073961, 0.00045329, 7.27165775, 0.99774007, 0.99880710, 0.49311878], 4221 [- 6.27239778, - 0.00073943, 0.00045318, 7.27165835, 0.99774061, 0.99880739, 0.49311885], 4222 [- 6.27239821, - 0.00073925, 0.00045307, 7.27165896, 0.99774115, 0.99880767, 0.49311891], 4223 [- 6.27239864, - 0.00073908, 0.00045296, 7.27165956, 0.99774169, 0.99880796, 0.49311897], 4224 [- 6.27239906, - 0.00073890, 0.00045286, 7.27166016, 0.99774223, 0.99880824, 0.49311905], 4225 [- 6.27239949, - 0.00073872, 0.00045275, 7.27166077, 0.99774277, 0.99880853, 0.49311912], 4226 [- 6.27239992, - 0.00073855, 0.00045264, 7.27166137, 0.99774331, 0.99880881, 0.49311918], 4227 [- 6.27240034, - 0.00073837, 0.00045253, 7.27166197, 0.99774385, 0.99880910, 0.49311924], 4228 [- 6.27240077, - 0.00073820, 0.00045242, 7.27166257, 0.99774439, 0.99880938, 0.49311929], 4229 [- 6.27240119, - 0.00073802, 0.00045232, 7.27166317, 0.99774492, 0.99880966, 0.49311935], 4230 [- 6.27240162, - 0.00073784, 0.00045221, 7.27166378, 0.99774546, 0.99880995, 0.49311941], 4231 [- 6.27240205, - 0.00073767, 0.00045210, 7.27166438, 0.99774600, 0.99881023, 0.49311949], 4232 [- 6.27240247, - 0.00073749, 0.00045199, 7.27166498, 0.99774654, 0.99881051, 0.49311956], 4233 [- 6.27240289, - 0.00073732, 0.00045188, 7.27166558, 0.99774707, 0.99881080, 0.49311961], 4234 [- 6.27240332, - 0.00073714, 0.00045178, 7.27166618, 0.99774761, 0.99881108, 0.49311968], 4235 [- 6.27240374, - 0.00073697, 0.00045167, 7.27166678, 0.99774815, 0.99881136, 0.49311975], 4236 [- 6.27240417, - 0.00073679, 0.00045156, 7.27166738, 0.99774868, 0.99881165, 0.49311980], 4237 [- 6.27240459, - 0.00073662, 0.00045145, 7.27166798, 0.99774922, 0.99881193, 0.49311987], 4238 [- 6.27240502, - 0.00073644, 0.00045135, 7.27166858, 0.99774976, 0.99881221, 0.49311992], 4239 [- 6.27240544, - 0.00073626, 0.00045124, 7.27166917, 0.99775029, 0.99881250, 0.49312000], 4240 [- 6.27240586, - 0.00073609, 0.00045113, 7.27166977, 0.99775083, 0.99881278, 0.49312006], 4241 [- 6.27240628, - 0.00073591, 0.00045102, 7.27167037, 0.99775136, 0.99881306, 0.49312011], 4242 [- 6.27240671, - 0.00073574, 0.00045092, 7.27167097, 0.99775190, 0.99881334, 0.49312017], 4243 [- 6.27240713, - 0.00073556, 0.00045081, 7.27167157, 0.99775243, 0.99881362, 0.49312022], 4244 [- 6.27240755, - 0.00073539, 0.00045070, 7.27167216, 0.99775297, 0.99881391, 0.49312031], 4245 [- 6.27240797, - 0.00073522, 0.00045060, 7.27167276, 0.99775350, 0.99881419, 0.49312033], 4246 [- 6.27240840, - 0.00073504, 0.00045049, 7.27167336, 0.99775403, 0.99881447, 0.49312043], 4247 [- 6.27240882, - 0.00073487, 0.00045038, 7.27167395, 0.99775457, 0.99881475, 0.49312049], 4248 [- 6.27240924, - 0.00073469, 0.00045027, 7.27167455, 0.99775510, 0.99881503, 0.49312054], 4249 [- 6.27240966, - 0.00073452, 0.00045017, 7.27167514, 0.99775563, 0.99881531, 0.49312061], 4250 [- 6.27241008, - 0.00073434, 0.00045006, 7.27167574, 0.99775617, 0.99881560, 0.49312068], 4251 [- 6.27241050, - 0.00073417, 0.00044995, 7.27167633, 0.99775670, 0.99881588, 0.49312074], 4252 [- 6.27241092, - 0.00073400, 0.00044985, 7.27167693, 0.99775723, 0.99881616, 0.49312080], 4253 [- 6.27241134, - 0.00073382, 0.00044974, 7.27167752, 0.99775776, 0.99881644, 0.49312087], 4254 [- 6.27241176, - 0.00073365, 0.00044963, 7.27167812, 0.99775829, 0.99881672, 0.49312093], 4255 [- 6.27241218, - 0.00073347, 0.00044953, 7.27167871, 0.99775883, 0.99881700, 0.49312099], 4256 [- 6.27241260, - 0.00073330, 0.00044942, 7.27167930, 0.99775936, 0.99881728, 0.49312106], 4257 [- 6.27241302, - 0.00073313, 0.00044931, 7.27167990, 0.99775989, 0.99881756, 0.49312110], 4258 [- 6.27241344, - 0.00073295, 0.00044921, 7.27168049, 0.99776042, 0.99881784, 0.49312117], 4259 [- 6.27241386, - 0.00073278, 0.00044910, 7.27168108, 0.99776095, 0.99881812, 0.49312124], 4260 [- 6.27241428, - 0.00073261, 0.00044899, 7.27168167, 0.99776148, 0.99881840, 0.49312129], 4261 [- 6.27241470, - 0.00073243, 0.00044889, 7.27168227, 0.99776201, 0.99881868, 0.49312137], 4262 [- 6.27241512, - 0.00073226, 0.00044878, 7.27168286, 0.99776254, 0.99881896, 0.49312141], 4263 [- 6.27241554, - 0.00073209, 0.00044868, 7.27168345, 0.99776307, 0.99881924, 0.49312147], 4264 [- 6.27241595, - 0.00073191, 0.00044857, 7.27168404, 0.99776360, 0.99881952, 0.49312156], 4265 [- 6.27241637, - 0.00073174, 0.00044846, 7.27168463, 0.99776413, 0.99881980, 0.49312161], 4266 [- 6.27241679, - 0.00073157, 0.00044836, 7.27168522, 0.99776466, 0.99882008, 0.49312166], 4267 [- 6.27241721, - 0.00073139, 0.00044825, 7.27168581, 0.99776518, 0.99882035, 0.49312172], 4268 [- 6.27241762, - 0.00073122, 0.00044815, 7.27168640, 0.99776571, 0.99882063, 0.49312178], 4269 [- 6.27241804, - 0.00073105, 0.00044804, 7.27168699, 0.99776624, 0.99882091, 0.49312185], 4270 [- 6.27241846, - 0.00073088, 0.00044793, 7.27168758, 0.99776677, 0.99882119, 0.49312193], 4271 [- 6.27241887, - 0.00073070, 0.00044783, 7.27168817, 0.99776730, 0.99882147, 0.49312197], 4272 [- 6.27241929, - 0.00073053, 0.00044772, 7.27168876, 0.99776782, 0.99882175, 0.49312203], 4273 [- 6.27241971, - 0.00073036, 0.00044762, 7.27168935, 0.99776835, 0.99882202, 0.49312211], 4274 [- 6.27242012, - 0.00073019, 0.00044751, 7.27168994, 0.99776888, 0.99882230, 0.49312215], 4275 [- 6.27242054, - 0.00073001, 0.00044741, 7.27169052, 0.99776940, 0.99882258, 0.49312222], 4276 [- 6.27242095, - 0.00072984, 0.00044730, 7.27169111, 0.99776993, 0.99882286, 0.49312230], 4277 [- 6.27242137, - 0.00072967, 0.00044719, 7.27169170, 0.99777045, 0.99882314, 0.49312233], 4278 [- 6.27242178, - 0.00072950, 0.00044709, 7.27169229, 0.99777098, 0.99882341, 0.49312241], 4279 [- 6.27242220, - 0.00072933, 0.00044698, 7.27169287, 0.99777151, 0.99882369, 0.49312246], 4280 [- 6.27242261, - 0.00072915, 0.00044688, 7.27169346, 0.99777203, 0.99882397, 0.49312253], 4281 [- 6.27242303, - 0.00072898, 0.00044677, 7.27169405, 0.99777256, 0.99882424, 0.49312260], 4282 [- 6.27242344, - 0.00072881, 0.00044667, 7.27169463, 0.99777308, 0.99882452, 0.49312265], 4283 [- 6.27242386, - 0.00072864, 0.00044656, 7.27169522, 0.99777361, 0.99882480, 0.49312272], 4284 [- 6.27242427, - 0.00072847, 0.00044646, 7.27169580, 0.99777413, 0.99882508, 0.49312276], 4285 [- 6.27242468, - 0.00072830, 0.00044635, 7.27169639, 0.99777465, 0.99882535, 0.49312285], 4286 [- 6.27242510, - 0.00072813, 0.00044625, 7.27169697, 0.99777518, 0.99882563, 0.49312291], 4287 [- 6.27242551, - 0.00072795, 0.00044614, 7.27169756, 0.99777570, 0.99882590, 0.49312295], 4288 [- 6.27242592, - 0.00072778, 0.00044604, 7.27169814, 0.99777622, 0.99882618, 0.49312303], 4289 [- 6.27242634, - 0.00072761, 0.00044593, 7.27169872, 0.99777675, 0.99882646, 0.49312307], 4290 [- 6.27242675, - 0.00072744, 0.00044583, 7.27169931, 0.99777727, 0.99882673, 0.49312312], 4291 [- 6.27242716, - 0.00072727, 0.00044572, 7.27169989, 0.99777779, 0.99882701, 0.49312319], 4292 [- 6.27242757, - 0.00072710, 0.00044562, 7.27170047, 0.99777831, 0.99882728, 0.49312326], 4293 [- 6.27242798, - 0.00072693, 0.00044551, 7.27170106, 0.99777884, 0.99882756, 0.49312335], 4294 [- 6.27242840, - 0.00072676, 0.00044541, 7.27170164, 0.99777936, 0.99882783, 0.49312338], 4295 [- 6.27242881, - 0.00072659, 0.00044530, 7.27170222, 0.99777988, 0.99882811, 0.49312345], 4296 [- 6.27242922, - 0.00072642, 0.00044520, 7.27170280, 0.99778040, 0.99882838, 0.49312349], 4297 [- 6.27242963, - 0.00072625, 0.00044509, 7.27170338, 0.99778092, 0.99882866, 0.49312358], 4298 [- 6.27243004, - 0.00072608, 0.00044499, 7.27170397, 0.99778144, 0.99882893, 0.49312364], 4299 [- 6.27243045, - 0.00072591, 0.00044488, 7.27170455, 0.99778196, 0.99882921, 0.49312368], 4300 [- 6.27243086, - 0.00072574, 0.00044478, 7.27170513, 0.99778248, 0.99882948, 0.49312376], 4301 [- 6.27243127, - 0.00072557, 0.00044468, 7.27170571, 0.99778300, 0.99882976, 0.49312381], 4302 [- 6.27243168, - 0.00072540, 0.00044457, 7.27170629, 0.99778352, 0.99883003, 0.49312388], 4303 [- 6.27243209, - 0.00072523, 0.00044447, 7.27170687, 0.99778404, 0.99883031, 0.49312394], 4304 [- 6.27243250, - 0.00072506, 0.00044436, 7.27170745, 0.99778456, 0.99883058, 0.49312397], 4305 [- 6.27243291, - 0.00072489, 0.00044426, 7.27170803, 0.99778508, 0.99883086, 0.49312405], 4306 [- 6.27243332, - 0.00072472, 0.00044416, 7.27170860, 0.99778560, 0.99883113, 0.49312410], 4307 [- 6.27243373, - 0.00072455, 0.00044405, 7.27170918, 0.99778612, 0.99883140, 0.49312419], 4308 [- 6.27243414, - 0.00072438, 0.00044395, 7.27170976, 0.99778664, 0.99883168, 0.49312424], 4309 [- 6.27243455, - 0.00072421, 0.00044384, 7.27171034, 0.99778716, 0.99883195, 0.49312429], 4310 [- 6.27243496, - 0.00072404, 0.00044374, 7.27171092, 0.99778767, 0.99883222, 0.49312436], 4311 [- 6.27243536, - 0.00072387, 0.00044364, 7.27171150, 0.99778819, 0.99883250, 0.49312441], 4312 [- 6.27243577, - 0.00072370, 0.00044353, 7.27171207, 0.99778871, 0.99883277, 0.49312447], 4313 [- 6.27243618, - 0.00072353, 0.00044343, 7.27171265, 0.99778923, 0.99883304, 0.49312454], 4314 [- 6.27243659, - 0.00072336, 0.00044332, 7.27171323, 0.99778974, 0.99883331, 0.49312460], 4315 [- 6.27243700, - 0.00072319, 0.00044322, 7.27171380, 0.99779026, 0.99883359, 0.49312464], 4316 [- 6.27243740, - 0.00072302, 0.00044312, 7.27171438, 0.99779078, 0.99883386, 0.49312471], 4317 [- 6.27243781, - 0.00072285, 0.00044301, 7.27171495, 0.99779129, 0.99883413, 0.49312476], 4318 [- 6.27243822, - 0.00072269, 0.00044291, 7.27171553, 0.99779181, 0.99883440, 0.49312483], 4319 [- 6.27243862, - 0.00072252, 0.00044281, 7.27171611, 0.99779232, 0.99883468, 0.49312489], 4320 [- 6.27243903, - 0.00072235, 0.00044270, 7.27171668, 0.99779284, 0.99883495, 0.49312495], 4321 [- 6.27243944, - 0.00072218, 0.00044260, 7.27171726, 0.99779336, 0.99883522, 0.49312500], 4322 [- 6.27243984, - 0.00072201, 0.00044250, 7.27171783, 0.99779387, 0.99883549, 0.49312508], 4323 [- 6.27244025, - 0.00072184, 0.00044239, 7.27171840, 0.99779438, 0.99883576, 0.49312514], 4324 [- 6.27244065, - 0.00072167, 0.00044229, 7.27171898, 0.99779490, 0.99883604, 0.49312518], 4325 [- 6.27244106, - 0.00072151, 0.00044219, 7.27171955, 0.99779541, 0.99883631, 0.49312525], 4326 [- 6.27244146, - 0.00072134, 0.00044208, 7.27172012, 0.99779593, 0.99883658, 0.49312531], 4327 [- 6.27244187, - 0.00072117, 0.00044198, 7.27172070, 0.99779644, 0.99883685, 0.49312537], 4328 [- 6.27244227, - 0.00072100, 0.00044188, 7.27172127, 0.99779696, 0.99883712, 0.49312544], 4329 [- 6.27244268, - 0.00072083, 0.00044177, 7.27172184, 0.99779747, 0.99883739, 0.49312550], 4330 [- 6.27244308, - 0.00072067, 0.00044167, 7.27172242, 0.99779798, 0.99883766, 0.49312555], 4331 [- 6.27244349, - 0.00072050, 0.00044157, 7.27172299, 0.99779849, 0.99883793, 0.49312563], 4332 [- 6.27244389, - 0.00072033, 0.00044147, 7.27172356, 0.99779901, 0.99883820, 0.49312567], 4333 [- 6.27244429, - 0.00072016, 0.00044136, 7.27172413, 0.99779952, 0.99883847, 0.49312573], 4334 [- 6.27244470, - 0.00072000, 0.00044126, 7.27172470, 0.99780003, 0.99883874, 0.49312578], 4335 [- 6.27244510, - 0.00071983, 0.00044116, 7.27172527, 0.99780054, 0.99883901, 0.49312585], 4336 [- 6.27244550, - 0.00071966, 0.00044105, 7.27172584, 0.99780105, 0.99883928, 0.49312592], 4337 [- 6.27244591, - 0.00071949, 0.00044095, 7.27172641, 0.99780157, 0.99883955, 0.49312598], 4338 [- 6.27244631, - 0.00071933, 0.00044085, 7.27172698, 0.99780208, 0.99883982, 0.49312604], 4339 [- 6.27244671, - 0.00071916, 0.00044075, 7.27172755, 0.99780259, 0.99884009, 0.49312608], 4340 [- 6.27244712, - 0.00071899, 0.00044064, 7.27172812, 0.99780310, 0.99884036, 0.49312614], 4341 [- 6.27244752, - 0.00071883, 0.00044054, 7.27172869, 0.99780361, 0.99884063, 0.49312622], 4342 [- 6.27244792, - 0.00071866, 0.00044044, 7.27172926, 0.99780412, 0.99884090, 0.49312626], 4343 [- 6.27244832, - 0.00071849, 0.00044034, 7.27172983, 0.99780463, 0.99884117, 0.49312632], 4344 [- 6.27244872, - 0.00071833, 0.00044024, 7.27173040, 0.99780514, 0.99884144, 0.49312638], 4345 [- 6.27244912, - 0.00071816, 0.00044013, 7.27173097, 0.99780565, 0.99884171, 0.49312645], 4346 [- 6.27244953, - 0.00071799, 0.00044003, 7.27173153, 0.99780616, 0.99884198, 0.49312649], 4347 [- 6.27244993, - 0.00071783, 0.00043993, 7.27173210, 0.99780667, 0.99884225, 0.49312657], 4348 [- 6.27245033, - 0.00071766, 0.00043983, 7.27173267, 0.99780718, 0.99884251, 0.49312664], 4349 [- 6.27245073, - 0.00071749, 0.00043972, 7.27173323, 0.99780768, 0.99884278, 0.49312669], 4350 [- 6.27245113, - 0.00071733, 0.00043962, 7.27173380, 0.99780819, 0.99884305, 0.49312674], 4351 [- 6.27245153, - 0.00071716, 0.00043952, 7.27173437, 0.99780870, 0.99884332, 0.49312680], 4352 [- 6.27245193, - 0.00071699, 0.00043942, 7.27173493, 0.99780921, 0.99884359, 0.49312685], 4353 [- 6.27245233, - 0.00071683, 0.00043932, 7.27173550, 0.99780972, 0.99884385, 0.49312691], 4354 [- 6.27245273, - 0.00071666, 0.00043922, 7.27173607, 0.99781022, 0.99884412, 0.49312701], 4355 [- 6.27245313, - 0.00071650, 0.00043911, 7.27173663, 0.99781073, 0.99884439, 0.49312703], 4356 [- 6.27245353, - 0.00071633, 0.00043901, 7.27173720, 0.99781124, 0.99884466, 0.49312710], 4357 [- 6.27245393, - 0.00071617, 0.00043891, 7.27173776, 0.99781174, 0.99884492, 0.49312716], 4358 [- 6.27245432, - 0.00071600, 0.00043881, 7.27173833, 0.99781225, 0.99884519, 0.49312722], 4359 [- 6.27245472, - 0.00071583, 0.00043871, 7.27173889, 0.99781276, 0.99884546, 0.49312728], 4360 [- 6.27245512, - 0.00071567, 0.00043861, 7.27173945, 0.99781326, 0.99884573, 0.49312736], 4361 [- 6.27245552, - 0.00071550, 0.00043850, 7.27174002, 0.99781377, 0.99884599, 0.49312741], 4362 [- 6.27245592, - 0.00071534, 0.00043840, 7.27174058, 0.99781427, 0.99884626, 0.49312745], 4363 [- 6.27245632, - 0.00071517, 0.00043830, 7.27174114, 0.99781478, 0.99884653, 0.49312752], 4364 [- 6.27245671, - 0.00071501, 0.00043820, 7.27174171, 0.99781528, 0.99884679, 0.49312756], 4365 [- 6.27245711, - 0.00071484, 0.00043810, 7.27174227, 0.99781579, 0.99884706, 0.49312763], 4366 [- 6.27245751, - 0.00071468, 0.00043800, 7.27174283, 0.99781629, 0.99884733, 0.49312770], 4367 [- 6.27245791, - 0.00071451, 0.00043790, 7.27174339, 0.99781680, 0.99884759, 0.49312773], 4368 [- 6.27245830, - 0.00071435, 0.00043779, 7.27174396, 0.99781730, 0.99884786, 0.49312781], 4369 [- 6.27245870, - 0.00071418, 0.00043769, 7.27174452, 0.99781781, 0.99884812, 0.49312788], 4370 [- 6.27245910, - 0.00071402, 0.00043759, 7.27174508, 0.99781831, 0.99884839, 0.49312794], 4371 [- 6.27245949, - 0.00071385, 0.00043749, 7.27174564, 0.99781881, 0.99884866, 0.49312798], 4372 [- 6.27245989, - 0.00071369, 0.00043739, 7.27174620, 0.99781932, 0.99884892, 0.49312802], 4373 [- 6.27246028, - 0.00071352, 0.00043729, 7.27174676, 0.99781982, 0.99884919, 0.49312810], 4374 [- 6.27246068, - 0.00071336, 0.00043719, 7.27174732, 0.99782032, 0.99884945, 0.49312816], 4375 [- 6.27246108, - 0.00071320, 0.00043709, 7.27174788, 0.99782083, 0.99884972, 0.49312820], 4376 [- 6.27246147, - 0.00071303, 0.00043699, 7.27174844, 0.99782133, 0.99884998, 0.49312828], 4377 [- 6.27246187, - 0.00071287, 0.00043689, 7.27174900, 0.99782183, 0.99885025, 0.49312834], 4378 [- 6.27246226, - 0.00071270, 0.00043679, 7.27174956, 0.99782233, 0.99885051, 0.49312839], 4379 [- 6.27246266, - 0.00071254, 0.00043669, 7.27175012, 0.99782283, 0.99885078, 0.49312847], 4380 [- 6.27246305, - 0.00071237, 0.00043658, 7.27175068, 0.99782333, 0.99885104, 0.49312849], 4381 [- 6.27246345, - 0.00071221, 0.00043648, 7.27175123, 0.99782384, 0.99885131, 0.49312857], 4382 [- 6.27246384, - 0.00071205, 0.00043638, 7.27175179, 0.99782434, 0.99885157, 0.49312862], 4383 [- 6.27246423, - 0.00071188, 0.00043628, 7.27175235, 0.99782484, 0.99885183, 0.49312870], 4384 [- 6.27246463, - 0.00071172, 0.00043618, 7.27175291, 0.99782534, 0.99885210, 0.49312875], 4385 [- 6.27246502, - 0.00071156, 0.00043608, 7.27175347, 0.99782584, 0.99885236, 0.49312878], 4386 [- 6.27246541, - 0.00071139, 0.00043598, 7.27175402, 0.99782634, 0.99885263, 0.49312886], 4387 [- 6.27246581, - 0.00071123, 0.00043588, 7.27175458, 0.99782684, 0.99885289, 0.49312892], 4388 [- 6.27246620, - 0.00071107, 0.00043578, 7.27175514, 0.99782734, 0.99885315, 0.49312899], 4389 [- 6.27246659, - 0.00071090, 0.00043568, 7.27175569, 0.99782784, 0.99885342, 0.49312906], 4390 [- 6.27246699, - 0.00071074, 0.00043558, 7.27175625, 0.99782833, 0.99885368, 0.49312908], 4391 [- 6.27246738, - 0.00071058, 0.00043548, 7.27175680, 0.99782883, 0.99885394, 0.49312914], 4392 [- 6.27246777, - 0.00071041, 0.00043538, 7.27175736, 0.99782933, 0.99885421, 0.49312922], 4393 [- 6.27246816, - 0.00071025, 0.00043528, 7.27175791, 0.99782983, 0.99885447, 0.49312926], 4394 [- 6.27246856, - 0.00071009, 0.00043518, 7.27175847, 0.99783033, 0.99885473, 0.49312934], 4395 [- 6.27246895, - 0.00070992, 0.00043508, 7.27175902, 0.99783083, 0.99885499, 0.49312938], 4396 [- 6.27246934, - 0.00070976, 0.00043498, 7.27175958, 0.99783132, 0.99885526, 0.49312944], 4397 [- 6.27246973, - 0.00070960, 0.00043488, 7.27176013, 0.99783182, 0.99885552, 0.49312948], 4398 [- 6.27247012, - 0.00070944, 0.00043478, 7.27176069, 0.99783232, 0.99885578, 0.49312957], 4399 [- 6.27247051, - 0.00070927, 0.00043468, 7.27176124, 0.99783282, 0.99885604, 0.49312962], 4400 [- 6.27247090, - 0.00070911, 0.00043458, 7.27176179, 0.99783331, 0.99885631, 0.49312968], 4401 [- 6.27247129, - 0.00070895, 0.00043448, 7.27176235, 0.99783381, 0.99885657, 0.49312972], 4402 [- 6.27247168, - 0.00070879, 0.00043438, 7.27176290, 0.99783431, 0.99885683, 0.49312980], 4403 [- 6.27247207, - 0.00070862, 0.00043428, 7.27176345, 0.99783480, 0.99885709, 0.49312985], 4404 [- 6.27247246, - 0.00070846, 0.00043418, 7.27176400, 0.99783530, 0.99885735, 0.49312992], 4405 [- 6.27247285, - 0.00070830, 0.00043409, 7.27176456, 0.99783579, 0.99885762, 0.49312999], 4406 [- 6.27247324, - 0.00070814, 0.00043399, 7.27176511, 0.99783629, 0.99885788, 0.49313003], 4407 [- 6.27247363, - 0.00070798, 0.00043389, 7.27176566, 0.99783678, 0.99885814, 0.49313009], 4408 [- 6.27247402, - 0.00070781, 0.00043379, 7.27176621, 0.99783728, 0.99885840, 0.49313014], 4409 [- 6.27247441, - 0.00070765, 0.00043369, 7.27176676, 0.99783777, 0.99885866, 0.49313021], 4410 [- 6.27247480, - 0.00070749, 0.00043359, 7.27176731, 0.99783827, 0.99885892, 0.49313025], 4411 [- 6.27247519, - 0.00070733, 0.00043349, 7.27176786, 0.99783876, 0.99885918, 0.49313031], 4412 [- 6.27247558, - 0.00070717, 0.00043339, 7.27176841, 0.99783926, 0.99885944, 0.49313036], 4413 [- 6.27247597, - 0.00070701, 0.00043329, 7.27176896, 0.99783975, 0.99885970, 0.49313043], 4414 [- 6.27247636, - 0.00070684, 0.00043319, 7.27176951, 0.99784024, 0.99885996, 0.49313047], 4415 [- 6.27247674, - 0.00070668, 0.00043309, 7.27177006, 0.99784074, 0.99886022, 0.49313056], 4416 [- 6.27247713, - 0.00070652, 0.00043299, 7.27177061, 0.99784123, 0.99886048, 0.49313062], 4417 [- 6.27247752, - 0.00070636, 0.00043290, 7.27177116, 0.99784172, 0.99886074, 0.49313067], 4418 [- 6.27247791, - 0.00070620, 0.00043280, 7.27177171, 0.99784222, 0.99886100, 0.49313072], 4419 [- 6.27247829, - 0.00070604, 0.00043270, 7.27177226, 0.99784271, 0.99886126, 0.49313077], 4420 [- 6.27247868, - 0.00070588, 0.00043260, 7.27177280, 0.99784320, 0.99886152, 0.49313084], 4421 [- 6.27247907, - 0.00070572, 0.00043250, 7.27177335, 0.99784369, 0.99886178, 0.49313089], 4422 [- 6.27247945, - 0.00070556, 0.00043240, 7.27177390, 0.99784418, 0.99886204, 0.49313094], 4423 [- 6.27247984, - 0.00070539, 0.00043230, 7.27177445, 0.99784468, 0.99886230, 0.49313101], 4424 [- 6.27248023, - 0.00070523, 0.00043220, 7.27177499, 0.99784517, 0.99886256, 0.49313105], 4425 [- 6.27248061, - 0.00070507, 0.00043211, 7.27177554, 0.99784566, 0.99886282, 0.49313111], 4426 [- 6.27248100, - 0.00070491, 0.00043201, 7.27177609, 0.99784615, 0.99886308, 0.49313117], 4427 [- 6.27248139, - 0.00070475, 0.00043191, 7.27177663, 0.99784664, 0.99886334, 0.49313123], 4428 [- 6.27248177, - 0.00070459, 0.00043181, 7.27177718, 0.99784713, 0.99886360, 0.49313129], 4429 [- 6.27248216, - 0.00070443, 0.00043171, 7.27177773, 0.99784762, 0.99886386, 0.49313133], 4430 [- 6.27248254, - 0.00070427, 0.00043161, 7.27177827, 0.99784811, 0.99886411, 0.49313142], 4431 [- 6.27248293, - 0.00070411, 0.00043152, 7.27177882, 0.99784860, 0.99886437, 0.49313147], 4432 [- 6.27248331, - 0.00070395, 0.00043142, 7.27177936, 0.99784909, 0.99886463, 0.49313152], 4433 [- 6.27248370, - 0.00070379, 0.00043132, 7.27177991, 0.99784958, 0.99886489, 0.49313157], 4434 [- 6.27248408, - 0.00070363, 0.00043122, 7.27178045, 0.99785007, 0.99886515, 0.49313161], 4435 [- 6.27248447, - 0.00070347, 0.00043112, 7.27178099, 0.99785056, 0.99886541, 0.49313168], 4436 [- 6.27248485, - 0.00070331, 0.00043103, 7.27178154, 0.99785104, 0.99886566, 0.49313174], 4437 [- 6.27248523, - 0.00070315, 0.00043093, 7.27178208, 0.99785153, 0.99886592, 0.49313183], 4438 [- 6.27248562, - 0.00070299, 0.00043083, 7.27178263, 0.99785202, 0.99886618, 0.49313186], 4439 [- 6.27248600, - 0.00070283, 0.00043073, 7.27178317, 0.99785251, 0.99886644, 0.49313191], 4440 [- 6.27248638, - 0.00070267, 0.00043063, 7.27178371, 0.99785300, 0.99886669, 0.49313198], 4441 [- 6.27248677, - 0.00070251, 0.00043054, 7.27178425, 0.99785348, 0.99886695, 0.49313204], 4442 [- 6.27248715, - 0.00070235, 0.00043044, 7.27178480, 0.99785397, 0.99886721, 0.49313208], 4443 [- 6.27248753, - 0.00070219, 0.00043034, 7.27178534, 0.99785446, 0.99886747, 0.49313214], 4444 [- 6.27248792, - 0.00070203, 0.00043024, 7.27178588, 0.99785495, 0.99886772, 0.49313220], 4445 [- 6.27248830, - 0.00070188, 0.00043014, 7.27178642, 0.99785543, 0.99886798, 0.49313224], 4446 [- 6.27248868, - 0.00070172, 0.00043005, 7.27178696, 0.99785592, 0.99886824, 0.49313233], 4447 [- 6.27248906, - 0.00070156, 0.00042995, 7.27178751, 0.99785641, 0.99886849, 0.49313235], 4448 [- 6.27248945, - 0.00070140, 0.00042985, 7.27178805, 0.99785689, 0.99886875, 0.49313243], 4449 [- 6.27248983, - 0.00070124, 0.00042975, 7.27178859, 0.99785738, 0.99886901, 0.49313250], 4450 [- 6.27249021, - 0.00070108, 0.00042966, 7.27178913, 0.99785786, 0.99886926, 0.49313254], 4451 [- 6.27249059, - 0.00070092, 0.00042956, 7.27178967, 0.99785835, 0.99886952, 0.49313259], 4452 [- 6.27249097, - 0.00070076, 0.00042946, 7.27179021, 0.99785883, 0.99886977, 0.49313265], 4453 [- 6.27249135, - 0.00070060, 0.00042937, 7.27179075, 0.99785932, 0.99887003, 0.49313270], 4454 [- 6.27249173, - 0.00070045, 0.00042927, 7.27179129, 0.99785980, 0.99887029, 0.49313277], 4455 [- 6.27249211, - 0.00070029, 0.00042917, 7.27179183, 0.99786029, 0.99887054, 0.49313282], 4456 [- 6.27249250, - 0.00070013, 0.00042907, 7.27179237, 0.99786077, 0.99887080, 0.49313289], 4457 [- 6.27249288, - 0.00069997, 0.00042898, 7.27179290, 0.99786126, 0.99887105, 0.49313291], 4458 [- 6.27249326, - 0.00069981, 0.00042888, 7.27179344, 0.99786174, 0.99887131, 0.49313301], 4459 [- 6.27249364, - 0.00069965, 0.00042878, 7.27179398, 0.99786222, 0.99887156, 0.49313305], 4460 [- 6.27249402, - 0.00069950, 0.00042869, 7.27179452, 0.99786271, 0.99887182, 0.49313311], 4461 [- 6.27249440, - 0.00069934, 0.00042859, 7.27179506, 0.99786319, 0.99887207, 0.49313316], 4462 [- 6.27249477, - 0.00069918, 0.00042849, 7.27179559, 0.99786367, 0.99887233, 0.49313322], 4463 [- 6.27249515, - 0.00069902, 0.00042840, 7.27179613, 0.99786415, 0.99887258, 0.49313329], 4464 [- 6.27249553, - 0.00069887, 0.00042830, 7.27179667, 0.99786464, 0.99887284, 0.49313333], 4465 [- 6.27249591, - 0.00069871, 0.00042820, 7.27179720, 0.99786512, 0.99887309, 0.49313340], 4466 [- 6.27249629, - 0.00069855, 0.00042810, 7.27179774, 0.99786560, 0.99887335, 0.49313343], 4467 [- 6.27249667, - 0.00069839, 0.00042801, 7.27179828, 0.99786608, 0.99887360, 0.49313349], 4468 [- 6.27249705, - 0.00069823, 0.00042791, 7.27179881, 0.99786656, 0.99887385, 0.49313355], 4469 [- 6.27249743, - 0.00069808, 0.00042781, 7.27179935, 0.99786705, 0.99887411, 0.49313361], 4470 [- 6.27249780, - 0.00069792, 0.00042772, 7.27179988, 0.99786753, 0.99887436, 0.49313365], 4471 [- 6.27249818, - 0.00069776, 0.00042762, 7.27180042, 0.99786801, 0.99887462, 0.49313373], 4472 [- 6.27249856, - 0.00069761, 0.00042753, 7.27180095, 0.99786849, 0.99887487, 0.49313378], 4473 [- 6.27249894, - 0.00069745, 0.00042743, 7.27180149, 0.99786897, 0.99887512, 0.49313382], 4474 [- 6.27249931, - 0.00069729, 0.00042733, 7.27180202, 0.99786945, 0.99887538, 0.49313387], 4475 [- 6.27249969, - 0.00069713, 0.00042724, 7.27180256, 0.99786993, 0.99887563, 0.49313395], 4476 [- 6.27250007, - 0.00069698, 0.00042714, 7.27180309, 0.99787041, 0.99887588, 0.49313401], 4477 [- 6.27250045, - 0.00069682, 0.00042704, 7.27180363, 0.99787089, 0.99887614, 0.49313405], 4478 [- 6.27250082, - 0.00069666, 0.00042695, 7.27180416, 0.99787137, 0.99887639, 0.49313411], 4479 [- 6.27250120, - 0.00069651, 0.00042685, 7.27180469, 0.99787185, 0.99887664, 0.49313417], 4480 [- 6.27250158, - 0.00069635, 0.00042676, 7.27180523, 0.99787233, 0.99887689, 0.49313425], 4481 [- 6.27250195, - 0.00069619, 0.00042666, 7.27180576, 0.99787281, 0.99887715, 0.49313428], 4482 [- 6.27250233, - 0.00069604, 0.00042656, 7.27180629, 0.99787328, 0.99887740, 0.49313433], 4483 [- 6.27250270, - 0.00069588, 0.00042647, 7.27180682, 0.99787376, 0.99887765, 0.49313436], 4484 [- 6.27250308, - 0.00069572, 0.00042637, 7.27180736, 0.99787424, 0.99887790, 0.49313447], 4485 [- 6.27250345, - 0.00069557, 0.00042628, 7.27180789, 0.99787472, 0.99887816, 0.49313453], 4486 [- 6.27250383, - 0.00069541, 0.00042618, 7.27180842, 0.99787520, 0.99887841, 0.49313456], 4487 [- 6.27250420, - 0.00069525, 0.00042608, 7.27180895, 0.99787567, 0.99887866, 0.49313463], 4488 [- 6.27250458, - 0.00069510, 0.00042599, 7.27180948, 0.99787615, 0.99887891, 0.49313466], 4489 [- 6.27250495, - 0.00069494, 0.00042589, 7.27181001, 0.99787663, 0.99887916, 0.49313471], 4490 [- 6.27250533, - 0.00069479, 0.00042580, 7.27181054, 0.99787711, 0.99887942, 0.49313478], 4491 [- 6.27250570, - 0.00069463, 0.00042570, 7.27181107, 0.99787758, 0.99887967, 0.49313484], 4492 [- 6.27250608, - 0.00069447, 0.00042561, 7.27181160, 0.99787806, 0.99887992, 0.49313489], 4493 [- 6.27250645, - 0.00069432, 0.00042551, 7.27181213, 0.99787854, 0.99888017, 0.49313499], 4494 [- 6.27250683, - 0.00069416, 0.00042541, 7.27181266, 0.99787901, 0.99888042, 0.49313500], 4495 [- 6.27250720, - 0.00069401, 0.00042532, 7.27181319, 0.99787949, 0.99888067, 0.49313506], 4496 [- 6.27250757, - 0.00069385, 0.00042522, 7.27181372, 0.99787996, 0.99888092, 0.49313510], 4497 [- 6.27250795, - 0.00069370, 0.00042513, 7.27181425, 0.99788044, 0.99888117, 0.49313518], 4498 [- 6.27250832, - 0.00069354, 0.00042503, 7.27181478, 0.99788091, 0.99888143, 0.49313523], 4499 [- 6.27250869, - 0.00069339, 0.00042494, 7.27181531, 0.99788139, 0.99888168, 0.49313528], 4500 [- 6.27250906, - 0.00069323, 0.00042484, 7.27181583, 0.99788186, 0.99888193, 0.49313532], 4501 [- 6.27250944, - 0.00069308, 0.00042475, 7.27181636, 0.99788234, 0.99888218, 0.49313537], 4502 [- 6.27250981, - 0.00069292, 0.00042465, 7.27181689, 0.99788281, 0.99888243, 0.49313545], 4503 [- 6.27251018, - 0.00069277, 0.00042456, 7.27181742, 0.99788329, 0.99888268, 0.49313551], 4504 [- 6.27251055, - 0.00069261, 0.00042446, 7.27181794, 0.99788376, 0.99888293, 0.49313557], 4505 [- 6.27251093, - 0.00069246, 0.00042437, 7.27181847, 0.99788423, 0.99888318, 0.49313560], 4506 [- 6.27251130, - 0.00069230, 0.00042427, 7.27181900, 0.99788471, 0.99888343, 0.49313566], 4507 [- 6.27251167, - 0.00069215, 0.00042418, 7.27181952, 0.99788518, 0.99888368, 0.49313574], 4508 [- 6.27251204, - 0.00069199, 0.00042408, 7.27182005, 0.99788565, 0.99888393, 0.49313579], 4509 [- 6.27251241, - 0.00069184, 0.00042399, 7.27182058, 0.99788613, 0.99888418, 0.49313583], 4510 [- 6.27251278, - 0.00069168, 0.00042389, 7.27182110, 0.99788660, 0.99888443, 0.49313587], 4511 [- 6.27251315, - 0.00069153, 0.00042380, 7.27182163, 0.99788707, 0.99888468, 0.49313593], 4512 [- 6.27251353, - 0.00069137, 0.00042370, 7.27182215, 0.99788754, 0.99888492, 0.49313600], 4513 [- 6.27251390, - 0.00069122, 0.00042361, 7.27182268, 0.99788801, 0.99888517, 0.49313604], 4514 [- 6.27251427, - 0.00069106, 0.00042351, 7.27182320, 0.99788849, 0.99888542, 0.49313613], 4515 [- 6.27251464, - 0.00069091, 0.00042342, 7.27182373, 0.99788896, 0.99888567, 0.49313616], 4516 [- 6.27251501, - 0.00069076, 0.00042332, 7.27182425, 0.99788943, 0.99888592, 0.49313621], 4517 [- 6.27251538, - 0.00069060, 0.00042323, 7.27182478, 0.99788990, 0.99888617, 0.49313628], 4518 [- 6.27251575, - 0.00069045, 0.00042314, 7.27182530, 0.99789037, 0.99888642, 0.49313634], 4519 [- 6.27251612, - 0.00069029, 0.00042304, 7.27182582, 0.99789084, 0.99888667, 0.49313637], 4520 [- 6.27251649, - 0.00069014, 0.00042295, 7.27182635, 0.99789131, 0.99888691, 0.49313644], 4521 [- 6.27251685, - 0.00068999, 0.00042285, 7.27182687, 0.99789178, 0.99888716, 0.49313651], 4522 [- 6.27251722, - 0.00068983, 0.00042276, 7.27182739, 0.99789225, 0.99888741, 0.49313656], 4523 [- 6.27251759, - 0.00068968, 0.00042266, 7.27182791, 0.99789272, 0.99888766, 0.49313664], 4524 [- 6.27251796, - 0.00068952, 0.00042257, 7.27182844, 0.99789319, 0.99888791, 0.49313666], 4525 [- 6.27251833, - 0.00068937, 0.00042248, 7.27182896, 0.99789366, 0.99888815, 0.49313670], 4526 [- 6.27251870, - 0.00068922, 0.00042238, 7.27182948, 0.99789413, 0.99888840, 0.49313677], 4527 [- 6.27251907, - 0.00068906, 0.00042229, 7.27183000, 0.99789460, 0.99888865, 0.49313683], 4528 [- 6.27251943, - 0.00068891, 0.00042219, 7.27183052, 0.99789507, 0.99888890, 0.49313687], 4529 [- 6.27251980, - 0.00068876, 0.00042210, 7.27183104, 0.99789554, 0.99888914, 0.49313691], 4530 [- 6.27252017, - 0.00068860, 0.00042200, 7.27183157, 0.99789601, 0.99888939, 0.49313700], 4531 [- 6.27252054, - 0.00068845, 0.00042191, 7.27183209, 0.99789647, 0.99888964, 0.49313706], 4532 [- 6.27252091, - 0.00068830, 0.00042182, 7.27183261, 0.99789694, 0.99888988, 0.49313707], 4533 [- 6.27252127, - 0.00068815, 0.00042172, 7.27183313, 0.99789741, 0.99889013, 0.49313711], 4534 [- 6.27252164, - 0.00068799, 0.00042163, 7.27183365, 0.99789788, 0.99889038, 0.49313720], 4535 [- 6.27252201, - 0.00068784, 0.00042154, 7.27183417, 0.99789835, 0.99889062, 0.49313727], 4536 [- 6.27252237, - 0.00068769, 0.00042144, 7.27183469, 0.99789881, 0.99889087, 0.49313733], 4537 [- 6.27252274, - 0.00068753, 0.00042135, 7.27183521, 0.99789928, 0.99889112, 0.49313737], 4538 [- 6.27252311, - 0.00068738, 0.00042125, 7.27183572, 0.99789975, 0.99889136, 0.49313744], 4539 [- 6.27252347, - 0.00068723, 0.00042116, 7.27183624, 0.99790021, 0.99889161, 0.49313749], 4540 [- 6.27252384, - 0.00068708, 0.00042107, 7.27183676, 0.99790068, 0.99889186, 0.49313754], 4541 [- 6.27252420, - 0.00068692, 0.00042097, 7.27183728, 0.99790115, 0.99889210, 0.49313760], 4542 [- 6.27252457, - 0.00068677, 0.00042088, 7.27183780, 0.99790161, 0.99889235, 0.49313767], 4543 [- 6.27252494, - 0.00068662, 0.00042079, 7.27183832, 0.99790208, 0.99889259, 0.49313771], 4544 [- 6.27252530, - 0.00068647, 0.00042069, 7.27183883, 0.99790254, 0.99889284, 0.49313775], 4545 [- 6.27252567, - 0.00068631, 0.00042060, 7.27183935, 0.99790301, 0.99889309, 0.49313782], 4546 [- 6.27252603, - 0.00068616, 0.00042051, 7.27183987, 0.99790347, 0.99889333, 0.49313786], 4547 [- 6.27252640, - 0.00068601, 0.00042041, 7.27184039, 0.99790394, 0.99889358, 0.49313791], 4548 [- 6.27252676, - 0.00068586, 0.00042032, 7.27184090, 0.99790440, 0.99889382, 0.49313797], 4549 [- 6.27252712, - 0.00068571, 0.00042023, 7.27184142, 0.99790487, 0.99889407, 0.49313801], 4550 [- 6.27252749, - 0.00068555, 0.00042013, 7.27184193, 0.99790533, 0.99889431, 0.49313810], 4551 [- 6.27252785, - 0.00068540, 0.00042004, 7.27184245, 0.99790579, 0.99889456, 0.49313815], 4552 [- 6.27252822, - 0.00068525, 0.00041995, 7.27184297, 0.99790626, 0.99889480, 0.49313818], 4553 [- 6.27252858, - 0.00068510, 0.00041985, 7.27184348, 0.99790672, 0.99889505, 0.49313824], 4554 [- 6.27252895, - 0.00068495, 0.00041976, 7.27184400, 0.99790719, 0.99889529, 0.49313828], 4555 [- 6.27252931, - 0.00068480, 0.00041967, 7.27184451, 0.99790765, 0.99889553, 0.49313835], 4556 [- 6.27252967, - 0.00068464, 0.00041958, 7.27184503, 0.99790811, 0.99889578, 0.49313842], 4557 [- 6.27253004, - 0.00068449, 0.00041948, 7.27184554, 0.99790857, 0.99889602, 0.49313845], 4558 [- 6.27253040, - 0.00068434, 0.00041939, 7.27184606, 0.99790904, 0.99889627, 0.49313853], 4559 [- 6.27253076, - 0.00068419, 0.00041930, 7.27184657, 0.99790950, 0.99889651, 0.49313854], 4560 [- 6.27253112, - 0.00068404, 0.00041920, 7.27184708, 0.99790996, 0.99889676, 0.49313861], 4561 [- 6.27253149, - 0.00068389, 0.00041911, 7.27184760, 0.99791042, 0.99889700, 0.49313867], 4562 [- 6.27253185, - 0.00068374, 0.00041902, 7.27184811, 0.99791089, 0.99889724, 0.49313874], 4563 [- 6.27253221, - 0.00068359, 0.00041893, 7.27184862, 0.99791135, 0.99889749, 0.49313876], 4564 [- 6.27253257, - 0.00068344, 0.00041883, 7.27184914, 0.99791181, 0.99889773, 0.49313881], 4565 [- 6.27253293, - 0.00068328, 0.00041874, 7.27184965, 0.99791227, 0.99889797, 0.49313886], 4566 [- 6.27253330, - 0.00068313, 0.00041865, 7.27185016, 0.99791273, 0.99889822, 0.49313893], 4567 [- 6.27253366, - 0.00068298, 0.00041856, 7.27185068, 0.99791319, 0.99889846, 0.49313897], 4568 [- 6.27253402, - 0.00068283, 0.00041846, 7.27185119, 0.99791365, 0.99889870, 0.49313904], 4569 [- 6.27253438, - 0.00068268, 0.00041837, 7.27185170, 0.99791411, 0.99889895, 0.49313909], 4570 [- 6.27253474, - 0.00068253, 0.00041828, 7.27185221, 0.99791457, 0.99889919, 0.49313915], 4571 [- 6.27253510, - 0.00068238, 0.00041819, 7.27185272, 0.99791503, 0.99889943, 0.49313920], 4572 [- 6.27253546, - 0.00068223, 0.00041810, 7.27185323, 0.99791549, 0.99889967, 0.49313924], 4573 [- 6.27253582, - 0.00068208, 0.00041800, 7.27185374, 0.99791595, 0.99889992, 0.49313932], 4574 [- 6.27253618, - 0.00068193, 0.00041791, 7.27185425, 0.99791641, 0.99890016, 0.49313937], 4575 [- 6.27253654, - 0.00068178, 0.00041782, 7.27185477, 0.99791687, 0.99890040, 0.49313944], 4576 [- 6.27253690, - 0.00068163, 0.00041773, 7.27185528, 0.99791733, 0.99890064, 0.49313947], 4577 [- 6.27253726, - 0.00068148, 0.00041763, 7.27185579, 0.99791779, 0.99890089, 0.49313953], 4578 [- 6.27253762, - 0.00068133, 0.00041754, 7.27185630, 0.99791825, 0.99890113, 0.49313960], 4579 [- 6.27253798, - 0.00068118, 0.00041745, 7.27185680, 0.99791871, 0.99890137, 0.49313964], 4580 [- 6.27253834, - 0.00068103, 0.00041736, 7.27185731, 0.99791916, 0.99890161, 0.49313969], 4581 [- 6.27253870, - 0.00068088, 0.00041727, 7.27185782, 0.99791962, 0.99890185, 0.49313973], 4582 [- 6.27253906, - 0.00068073, 0.00041718, 7.27185833, 0.99792008, 0.99890209, 0.49313978], 4583 [- 6.27253942, - 0.00068058, 0.00041708, 7.27185884, 0.99792054, 0.99890234, 0.49313983], 4584 [- 6.27253978, - 0.00068043, 0.00041699, 7.27185935, 0.99792099, 0.99890258, 0.49313991], 4585 [- 6.27254014, - 0.00068028, 0.00041690, 7.27185986, 0.99792145, 0.99890282, 0.49313998], 4586 [- 6.27254050, - 0.00068013, 0.00041681, 7.27186036, 0.99792191, 0.99890306, 0.49314002], 4587 [- 6.27254086, - 0.00067998, 0.00041672, 7.27186087, 0.99792237, 0.99890330, 0.49314008], 4588 [- 6.27254121, - 0.00067983, 0.00041662, 7.27186138, 0.99792282, 0.99890354, 0.49314012], 4589 [- 6.27254157, - 0.00067968, 0.00041653, 7.27186189, 0.99792328, 0.99890378, 0.49314018], 4590 [- 6.27254193, - 0.00067953, 0.00041644, 7.27186239, 0.99792373, 0.99890402, 0.49314019], 4591 [- 6.27254229, - 0.00067939, 0.00041635, 7.27186290, 0.99792419, 0.99890426, 0.49314025], 4592 [- 6.27254264, - 0.00067924, 0.00041626, 7.27186341, 0.99792465, 0.99890450, 0.49314034], 4593 [- 6.27254300, - 0.00067909, 0.00041617, 7.27186391, 0.99792510, 0.99890474, 0.49314040], 4594 [- 6.27254336, - 0.00067894, 0.00041608, 7.27186442, 0.99792556, 0.99890499, 0.49314044], 4595 [- 6.27254372, - 0.00067879, 0.00041598, 7.27186493, 0.99792601, 0.99890523, 0.49314049], 4596 [- 6.27254407, - 0.00067864, 0.00041589, 7.27186543, 0.99792647, 0.99890547, 0.49314054], 4597 [- 6.27254443, - 0.00067849, 0.00041580, 7.27186594, 0.99792692, 0.99890571, 0.49314058], 4598 [- 6.27254479, - 0.00067834, 0.00041571, 7.27186644, 0.99792738, 0.99890595, 0.49314062], 4599 [- 6.27254514, - 0.00067819, 0.00041562, 7.27186695, 0.99792783, 0.99890618, 0.49314070], 4600 [- 6.27254550, - 0.00067805, 0.00041553, 7.27186745, 0.99792828, 0.99890642, 0.49314075], 4601 [- 6.27254585, - 0.00067790, 0.00041544, 7.27186796, 0.99792874, 0.99890666, 0.49314079], 4602 [- 6.27254621, - 0.00067775, 0.00041535, 7.27186846, 0.99792919, 0.99890690, 0.49314085], 4603 [- 6.27254657, - 0.00067760, 0.00041526, 7.27186897, 0.99792965, 0.99890714, 0.49314090], 4604 [- 6.27254692, - 0.00067745, 0.00041516, 7.27186947, 0.99793010, 0.99890738, 0.49314094], 4605 [- 6.27254728, - 0.00067730, 0.00041507, 7.27186997, 0.99793055, 0.99890762, 0.49314100], 4606 [- 6.27254763, - 0.00067716, 0.00041498, 7.27187048, 0.99793101, 0.99890786, 0.49314106], 4607 [- 6.27254799, - 0.00067701, 0.00041489, 7.27187098, 0.99793146, 0.99890810, 0.49314111], 4608 [- 6.27254834, - 0.00067686, 0.00041480, 7.27187148, 0.99793191, 0.99890834, 0.49314118], 4609 [- 6.27254870, - 0.00067671, 0.00041471, 7.27187199, 0.99793236, 0.99890858, 0.49314123], 4610 [- 6.27254905, - 0.00067656, 0.00041462, 7.27187249, 0.99793282, 0.99890882, 0.49314127], 4611 [- 6.27254941, - 0.00067642, 0.00041453, 7.27187299, 0.99793327, 0.99890905, 0.49314132], 4612 [- 6.27254976, - 0.00067627, 0.00041444, 7.27187349, 0.99793372, 0.99890929, 0.49314138], 4613 [- 6.27255012, - 0.00067612, 0.00041435, 7.27187399, 0.99793417, 0.99890953, 0.49314144], 4614 [- 6.27255047, - 0.00067597, 0.00041426, 7.27187450, 0.99793462, 0.99890977, 0.49314149], 4615 [- 6.27255082, - 0.00067583, 0.00041417, 7.27187500, 0.99793507, 0.99891001, 0.49314155], 4616 [- 6.27255118, - 0.00067568, 0.00041408, 7.27187550, 0.99793552, 0.99891025, 0.49314159], 4617 [- 6.27255153, - 0.00067553, 0.00041399, 7.27187600, 0.99793597, 0.99891048, 0.49314164], 4618 [- 6.27255188, - 0.00067538, 0.00041390, 7.27187650, 0.99793643, 0.99891072, 0.49314169], 4619 [- 6.27255224, - 0.00067524, 0.00041381, 7.27187700, 0.99793688, 0.99891096, 0.49314176], 4620 [- 6.27255259, - 0.00067509, 0.00041372, 7.27187750, 0.99793733, 0.99891120, 0.49314181], 4621 [- 6.27255294, - 0.00067494, 0.00041362, 7.27187800, 0.99793778, 0.99891143, 0.49314185], 4622 [- 6.27255330, - 0.00067479, 0.00041353, 7.27187850, 0.99793823, 0.99891167, 0.49314190], 4623 [- 6.27255365, - 0.00067465, 0.00041344, 7.27187900, 0.99793868, 0.99891191, 0.49314197], 4624 [- 6.27255400, - 0.00067450, 0.00041335, 7.27187950, 0.99793912, 0.99891215, 0.49314200], 4625 [- 6.27255435, - 0.00067435, 0.00041326, 7.27188000, 0.99793957, 0.99891238, 0.49314208], 4626 [- 6.27255470, - 0.00067421, 0.00041317, 7.27188050, 0.99794002, 0.99891262, 0.49314213], 4627 [- 6.27255506, - 0.00067406, 0.00041308, 7.27188100, 0.99794047, 0.99891286, 0.49314217], 4628 [- 6.27255541, - 0.00067391, 0.00041299, 7.27188150, 0.99794092, 0.99891309, 0.49314220], 4629 [- 6.27255576, - 0.00067377, 0.00041290, 7.27188199, 0.99794137, 0.99891333, 0.49314225], 4630 [- 6.27255611, - 0.00067362, 0.00041281, 7.27188249, 0.99794182, 0.99891357, 0.49314232], 4631 [- 6.27255646, - 0.00067347, 0.00041272, 7.27188299, 0.99794227, 0.99891380, 0.49314238], 4632 [- 6.27255681, - 0.00067333, 0.00041263, 7.27188349, 0.99794271, 0.99891404, 0.49314241], 4633 [- 6.27255717, - 0.00067318, 0.00041254, 7.27188398, 0.99794316, 0.99891428, 0.49314247], 4634 [- 6.27255752, - 0.00067303, 0.00041245, 7.27188448, 0.99794361, 0.99891451, 0.49314253], 4635 [- 6.27255787, - 0.00067289, 0.00041236, 7.27188498, 0.99794406, 0.99891475, 0.49314258], 4636 [- 6.27255822, - 0.00067274, 0.00041228, 7.27188548, 0.99794450, 0.99891498, 0.49314263], 4637 [- 6.27255857, - 0.00067260, 0.00041219, 7.27188597, 0.99794495, 0.99891522, 0.49314268], 4638 [- 6.27255892, - 0.00067245, 0.00041210, 7.27188647, 0.99794540, 0.99891545, 0.49314274], 4639 [- 6.27255927, - 0.00067230, 0.00041201, 7.27188696, 0.99794584, 0.99891569, 0.49314280], 4640 [- 6.27255962, - 0.00067216, 0.00041192, 7.27188746, 0.99794629, 0.99891593, 0.49314284], 4641 [- 6.27255997, - 0.00067201, 0.00041183, 7.27188796, 0.99794673, 0.99891616, 0.49314287], 4642 [- 6.27256032, - 0.00067187, 0.00041174, 7.27188845, 0.99794718, 0.99891640, 0.49314297], 4643 [- 6.27256067, - 0.00067172, 0.00041165, 7.27188895, 0.99794763, 0.99891663, 0.49314303], 4644 [- 6.27256102, - 0.00067157, 0.00041156, 7.27188944, 0.99794807, 0.99891687, 0.49314307], 4645 [- 6.27256137, - 0.00067143, 0.00041147, 7.27188994, 0.99794852, 0.99891710, 0.49314312], 4646 [- 6.27256171, - 0.00067128, 0.00041138, 7.27189043, 0.99794896, 0.99891734, 0.49314315], 4647 [- 6.27256206, - 0.00067114, 0.00041129, 7.27189093, 0.99794941, 0.99891757, 0.49314322], 4648 [- 6.27256241, - 0.00067099, 0.00041120, 7.27189142, 0.99794985, 0.99891781, 0.49314325], 4649 [- 6.27256276, - 0.00067085, 0.00041111, 7.27189191, 0.99795030, 0.99891804, 0.49314333], 4650 [- 6.27256311, - 0.00067070, 0.00041102, 7.27189241, 0.99795074, 0.99891828, 0.49314337], 4651 [- 6.27256346, - 0.00067056, 0.00041093, 7.27189290, 0.99795119, 0.99891851, 0.49314340], 4652 [- 6.27256381, - 0.00067041, 0.00041085, 7.27189339, 0.99795163, 0.99891874, 0.49314348], 4653 [- 6.27256415, - 0.00067027, 0.00041076, 7.27189389, 0.99795207, 0.99891898, 0.49314353], 4654 [- 6.27256450, - 0.00067012, 0.00041067, 7.27189438, 0.99795252, 0.99891921, 0.49314358], 4655 [- 6.27256485, - 0.00066998, 0.00041058, 7.27189487, 0.99795296, 0.99891945, 0.49314365], 4656 [- 6.27256520, - 0.00066983, 0.00041049, 7.27189537, 0.99795340, 0.99891968, 0.49314368], 4657 [- 6.27256554, - 0.00066969, 0.00041040, 7.27189586, 0.99795385, 0.99891991, 0.49314376], 4658 [- 6.27256589, - 0.00066954, 0.00041031, 7.27189635, 0.99795429, 0.99892015, 0.49314379], 4659 [- 6.27256624, - 0.00066940, 0.00041022, 7.27189684, 0.99795473, 0.99892038, 0.49314383], 4660 [- 6.27256658, - 0.00066925, 0.00041013, 7.27189733, 0.99795517, 0.99892061, 0.49314389], 4661 [- 6.27256693, - 0.00066911, 0.00041005, 7.27189782, 0.99795562, 0.99892085, 0.49314395], 4662 [- 6.27256728, - 0.00066896, 0.00040996, 7.27189832, 0.99795606, 0.99892108, 0.49314398], 4663 [- 6.27256762, - 0.00066882, 0.00040987, 7.27189881, 0.99795650, 0.99892131, 0.49314403], 4664 [- 6.27256797, - 0.00066867, 0.00040978, 7.27189930, 0.99795694, 0.99892155, 0.49314409], 4665 [- 6.27256832, - 0.00066853, 0.00040969, 7.27189979, 0.99795738, 0.99892178, 0.49314415], 4666 [- 6.27256866, - 0.00066838, 0.00040960, 7.27190028, 0.99795782, 0.99892201, 0.49314419], 4667 [- 6.27256901, - 0.00066824, 0.00040951, 7.27190077, 0.99795827, 0.99892225, 0.49314425], 4668 [- 6.27256935, - 0.00066810, 0.00040943, 7.27190126, 0.99795871, 0.99892248, 0.49314428], 4669 [- 6.27256970, - 0.00066795, 0.00040934, 7.27190175, 0.99795915, 0.99892271, 0.49314436], 4670 [- 6.27257004, - 0.00066781, 0.00040925, 7.27190224, 0.99795959, 0.99892294, 0.49314439], 4671 [- 6.27257039, - 0.00066766, 0.00040916, 7.27190273, 0.99796003, 0.99892318, 0.49314446], 4672 [- 6.27257073, - 0.00066752, 0.00040907, 7.27190322, 0.99796047, 0.99892341, 0.49314452], 4673 [- 6.27257108, - 0.00066738, 0.00040898, 7.27190370, 0.99796091, 0.99892364, 0.49314453], 4674 [- 6.27257142, - 0.00066723, 0.00040890, 7.27190419, 0.99796135, 0.99892387, 0.49314460], 4675 [- 6.27257177, - 0.00066709, 0.00040881, 7.27190468, 0.99796179, 0.99892410, 0.49314466], 4676 [- 6.27257211, - 0.00066694, 0.00040872, 7.27190517, 0.99796223, 0.99892434, 0.49314470], 4677 [- 6.27257246, - 0.00066680, 0.00040863, 7.27190566, 0.99796267, 0.99892457, 0.49314476], 4678 [- 6.27257280, - 0.00066666, 0.00040854, 7.27190615, 0.99796311, 0.99892480, 0.49314482], 4679 [- 6.27257315, - 0.00066651, 0.00040846, 7.27190663, 0.99796354, 0.99892503, 0.49314486], 4680 [- 6.27257349, - 0.00066637, 0.00040837, 7.27190712, 0.99796398, 0.99892526, 0.49314490], 4681 [- 6.27257383, - 0.00066623, 0.00040828, 7.27190761, 0.99796442, 0.99892549, 0.49314498], 4682 [- 6.27257418, - 0.00066608, 0.00040819, 7.27190809, 0.99796486, 0.99892573, 0.49314501], 4683 [- 6.27257452, - 0.00066594, 0.00040810, 7.27190858, 0.99796530, 0.99892596, 0.49314505], 4684 [- 6.27257486, - 0.00066580, 0.00040802, 7.27190907, 0.99796574, 0.99892619, 0.49314512], 4685 [- 6.27257521, - 0.00066565, 0.00040793, 7.27190955, 0.99796617, 0.99892642, 0.49314515], 4686 [- 6.27257555, - 0.00066551, 0.00040784, 7.27191004, 0.99796661, 0.99892665, 0.49314521], 4687 [- 6.27257589, - 0.00066537, 0.00040775, 7.27191053, 0.99796705, 0.99892688, 0.49314528], 4688 [- 6.27257623, - 0.00066522, 0.00040766, 7.27191101, 0.99796748, 0.99892711, 0.49314532], 4689 [- 6.27257658, - 0.00066508, 0.00040758, 7.27191150, 0.99796792, 0.99892734, 0.49314537], 4690 [- 6.27257692, - 0.00066494, 0.00040749, 7.27191198, 0.99796836, 0.99892757, 0.49314541], 4691 [- 6.27257726, - 0.00066480, 0.00040740, 7.27191247, 0.99796880, 0.99892780, 0.49314547], 4692 [- 6.27257760, - 0.00066465, 0.00040731, 7.27191295, 0.99796923, 0.99892803, 0.49314555], 4693 [- 6.27257795, - 0.00066451, 0.00040723, 7.27191344, 0.99796967, 0.99892826, 0.49314558], 4694 [- 6.27257829, - 0.00066437, 0.00040714, 7.27191392, 0.99797010, 0.99892849, 0.49314564], 4695 [- 6.27257863, - 0.00066422, 0.00040705, 7.27191440, 0.99797054, 0.99892872, 0.49314568], 4696 [- 6.27257897, - 0.00066408, 0.00040696, 7.27191489, 0.99797098, 0.99892895, 0.49314573], 4697 [- 6.27257931, - 0.00066394, 0.00040688, 7.27191537, 0.99797141, 0.99892918, 0.49314579], 4698 [- 6.27257965, - 0.00066380, 0.00040679, 7.27191586, 0.99797185, 0.99892941, 0.49314582], 4699 [- 6.27257999, - 0.00066366, 0.00040670, 7.27191634, 0.99797228, 0.99892964, 0.49314588], 4700 [- 6.27258033, - 0.00066351, 0.00040662, 7.27191682, 0.99797272, 0.99892987, 0.49314593], 4701 [- 6.27258068, - 0.00066337, 0.00040653, 7.27191730, 0.99797315, 0.99893010, 0.49314598], 4702 [- 6.27258102, - 0.00066323, 0.00040644, 7.27191779, 0.99797358, 0.99893033, 0.49314603], 4703 [- 6.27258136, - 0.00066309, 0.00040635, 7.27191827, 0.99797402, 0.99893056, 0.49314608], 4704 [- 6.27258170, - 0.00066294, 0.00040627, 7.27191875, 0.99797445, 0.99893079, 0.49314611], 4705 [- 6.27258204, - 0.00066280, 0.00040618, 7.27191923, 0.99797489, 0.99893102, 0.49314621], 4706 [- 6.27258238, - 0.00066266, 0.00040609, 7.27191972, 0.99797532, 0.99893125, 0.49314623], 4707 [- 6.27258272, - 0.00066252, 0.00040601, 7.27192020, 0.99797575, 0.99893148, 0.49314626], 4708 [- 6.27258306, - 0.00066238, 0.00040592, 7.27192068, 0.99797619, 0.99893170, 0.49314635], 4709 [- 6.27258340, - 0.00066224, 0.00040583, 7.27192116, 0.99797662, 0.99893193, 0.49314639], 4710 [- 6.27258373, - 0.00066209, 0.00040574, 7.27192164, 0.99797705, 0.99893216, 0.49314644], 4711 [- 6.27258407, - 0.00066195, 0.00040566, 7.27192212, 0.99797749, 0.99893239, 0.49314649], 4712 [- 6.27258441, - 0.00066181, 0.00040557, 7.27192260, 0.99797792, 0.99893262, 0.49314651], 4713 [- 6.27258475, - 0.00066167, 0.00040548, 7.27192308, 0.99797835, 0.99893285, 0.49314660], 4714 [- 6.27258509, - 0.00066153, 0.00040540, 7.27192356, 0.99797878, 0.99893307, 0.49314663], 4715 [- 6.27258543, - 0.00066139, 0.00040531, 7.27192404, 0.99797922, 0.99893330, 0.49314669], 4716 [- 6.27258577, - 0.00066125, 0.00040522, 7.27192452, 0.99797965, 0.99893353, 0.49314673], 4717 [- 6.27258611, - 0.00066110, 0.00040514, 7.27192500, 0.99798008, 0.99893376, 0.49314679], 4718 [- 6.27258644, - 0.00066096, 0.00040505, 7.27192548, 0.99798051, 0.99893399, 0.49314686], 4719 [- 6.27258678, - 0.00066082, 0.00040496, 7.27192596, 0.99798094, 0.99893421, 0.49314689], 4720 [- 6.27258712, - 0.00066068, 0.00040488, 7.27192644, 0.99798137, 0.99893444, 0.49314694], 4721 [- 6.27258746, - 0.00066054, 0.00040479, 7.27192692, 0.99798181, 0.99893467, 0.49314700], 4722 [- 6.27258780, - 0.00066040, 0.00040471, 7.27192740, 0.99798224, 0.99893490, 0.49314705], 4723 [- 6.27258813, - 0.00066026, 0.00040462, 7.27192788, 0.99798267, 0.99893512, 0.49314708], 4724 [- 6.27258847, - 0.00066012, 0.00040453, 7.27192835, 0.99798310, 0.99893535, 0.49314712], 4725 [- 6.27258881, - 0.00065998, 0.00040445, 7.27192883, 0.99798353, 0.99893558, 0.49314719], 4726 [- 6.27258914, - 0.00065984, 0.00040436, 7.27192931, 0.99798396, 0.99893580, 0.49314727], 4727 [- 6.27258948, - 0.00065970, 0.00040427, 7.27192979, 0.99798439, 0.99893603, 0.49314727], 4728 [- 6.27258982, - 0.00065955, 0.00040419, 7.27193026, 0.99798482, 0.99893626, 0.49314731], 4729 [- 6.27259015, - 0.00065941, 0.00040410, 7.27193074, 0.99798525, 0.99893648, 0.49314740], 4730 [- 6.27259049, - 0.00065927, 0.00040401, 7.27193122, 0.99798568, 0.99893671, 0.49314745], 4731 [- 6.27259083, - 0.00065913, 0.00040393, 7.27193169, 0.99798610, 0.99893694, 0.49314746], 4732 [- 6.27259116, - 0.00065899, 0.00040384, 7.27193217, 0.99798653, 0.99893716, 0.49314754], 4733 [- 6.27259150, - 0.00065885, 0.00040376, 7.27193265, 0.99798696, 0.99893739, 0.49314761], 4734 [- 6.27259184, - 0.00065871, 0.00040367, 7.27193312, 0.99798739, 0.99893762, 0.49314766], 4735 [- 6.27259217, - 0.00065857, 0.00040358, 7.27193360, 0.99798782, 0.99893784, 0.49314769], 4736 [- 6.27259251, - 0.00065843, 0.00040350, 7.27193407, 0.99798825, 0.99893807, 0.49314775], 4737 [- 6.27259284, - 0.00065829, 0.00040341, 7.27193455, 0.99798868, 0.99893829, 0.49314778], 4738 [- 6.27259318, - 0.00065815, 0.00040333, 7.27193502, 0.99798910, 0.99893852, 0.49314784], 4739 [- 6.27259351, - 0.00065801, 0.00040324, 7.27193550, 0.99798953, 0.99893875, 0.49314788], 4740 [- 6.27259385, - 0.00065787, 0.00040316, 7.27193597, 0.99798996, 0.99893897, 0.49314794], 4741 [- 6.27259418, - 0.00065773, 0.00040307, 7.27193645, 0.99799039, 0.99893920, 0.49314799], 4742 [- 6.27259452, - 0.00065759, 0.00040298, 7.27193692, 0.99799081, 0.99893942, 0.49314805], 4743 [- 6.27259485, - 0.00065745, 0.00040290, 7.27193740, 0.99799124, 0.99893965, 0.49314807], 4744 [- 6.27259519, - 0.00065731, 0.00040281, 7.27193787, 0.99799167, 0.99893987, 0.49314813], 4745 [- 6.27259552, - 0.00065717, 0.00040273, 7.27193835, 0.99799209, 0.99894010, 0.49314822], 4746 [- 6.27259585, - 0.00065703, 0.00040264, 7.27193882, 0.99799252, 0.99894032, 0.49314825], 4747 [- 6.27259619, - 0.00065690, 0.00040256, 7.27193929, 0.99799295, 0.99894055, 0.49314830], 4748 [- 6.27259652, - 0.00065676, 0.00040247, 7.27193977, 0.99799337, 0.99894077, 0.49314836], 4749 [- 6.27259686, - 0.00065662, 0.00040239, 7.27194024, 0.99799380, 0.99894100, 0.49314839], 4750 [- 6.27259719, - 0.00065648, 0.00040230, 7.27194071, 0.99799422, 0.99894122, 0.49314844], 4751 [- 6.27259752, - 0.00065634, 0.00040221, 7.27194118, 0.99799465, 0.99894145, 0.49314848], 4752 [- 6.27259786, - 0.00065620, 0.00040213, 7.27194166, 0.99799507, 0.99894167, 0.49314852], 4753 [- 6.27259819, - 0.00065606, 0.00040204, 7.27194213, 0.99799550, 0.99894190, 0.49314858], 4754 [- 6.27259852, - 0.00065592, 0.00040196, 7.27194260, 0.99799593, 0.99894212, 0.49314864], 4755 [- 6.27259885, - 0.00065578, 0.00040187, 7.27194307, 0.99799635, 0.99894234, 0.49314867], 4756 [- 6.27259919, - 0.00065564, 0.00040179, 7.27194354, 0.99799677, 0.99894257, 0.49314872], 4757 [- 6.27259952, - 0.00065550, 0.00040170, 7.27194402, 0.99799720, 0.99894279, 0.49314880], 4758 [- 6.27259985, - 0.00065537, 0.00040162, 7.27194449, 0.99799762, 0.99894302, 0.49314880], 4759 [- 6.27260018, - 0.00065523, 0.00040153, 7.27194496, 0.99799805, 0.99894324, 0.49314888], 4760 [- 6.27260052, - 0.00065509, 0.00040145, 7.27194543, 0.99799847, 0.99894346, 0.49314897], 4761 [- 6.27260085, - 0.00065495, 0.00040136, 7.27194590, 0.99799889, 0.99894369, 0.49314899], 4762 [- 6.27260118, - 0.00065481, 0.00040128, 7.27194637, 0.99799932, 0.99894391, 0.49314902], 4763 [- 6.27260151, - 0.00065467, 0.00040119, 7.27194684, 0.99799974, 0.99894413, 0.49314908], 4764 [- 6.27260184, - 0.00065453, 0.00040111, 7.27194731, 0.99800016, 0.99894436, 0.49314911], 4765 [- 6.27260217, - 0.00065440, 0.00040102, 7.27194778, 0.99800059, 0.99894458, 0.49314920], 4766 [- 6.27260251, - 0.00065426, 0.00040094, 7.27194825, 0.99800101, 0.99894480, 0.49314922], 4767 [- 6.27260284, - 0.00065412, 0.00040085, 7.27194872, 0.99800143, 0.99894503, 0.49314928], 4768 [- 6.27260317, - 0.00065398, 0.00040077, 7.27194919, 0.99800186, 0.99894525, 0.49314931], 4769 [- 6.27260350, - 0.00065384, 0.00040068, 7.27194966, 0.99800228, 0.99894547, 0.49314937], 4770 [- 6.27260383, - 0.00065370, 0.00040060, 7.27195013, 0.99800270, 0.99894570, 0.49314942], 4771 [- 6.27260416, - 0.00065357, 0.00040051, 7.27195059, 0.99800312, 0.99894592, 0.49314947], 4772 [- 6.27260449, - 0.00065343, 0.00040043, 7.27195106, 0.99800354, 0.99894614, 0.49314952], 4773 [- 6.27260482, - 0.00065329, 0.00040035, 7.27195153, 0.99800397, 0.99894636, 0.49314960], 4774 [- 6.27260515, - 0.00065315, 0.00040026, 7.27195200, 0.99800439, 0.99894659, 0.49314963], 4775 [- 6.27260548, - 0.00065302, 0.00040018, 7.27195247, 0.99800481, 0.99894681, 0.49314965], 4776 [- 6.27260581, - 0.00065288, 0.00040009, 7.27195293, 0.99800523, 0.99894703, 0.49314972], 4777 [- 6.27260614, - 0.00065274, 0.00040001, 7.27195340, 0.99800565, 0.99894725, 0.49314975], 4778 [- 6.27260647, - 0.00065260, 0.00039992, 7.27195387, 0.99800607, 0.99894747, 0.49314983], 4779 [- 6.27260680, - 0.00065246, 0.00039984, 7.27195434, 0.99800649, 0.99894770, 0.49314987], 4780 [- 6.27260713, - 0.00065233, 0.00039975, 7.27195480, 0.99800691, 0.99894792, 0.49314994], 4781 [- 6.27260746, - 0.00065219, 0.00039967, 7.27195527, 0.99800733, 0.99894814, 0.49314996], 4782 [- 6.27260779, - 0.00065205, 0.00039959, 7.27195573, 0.99800775, 0.99894836, 0.49314998], 4783 [- 6.27260812, - 0.00065192, 0.00039950, 7.27195620, 0.99800817, 0.99894858, 0.49315004], 4784 [- 6.27260844, - 0.00065178, 0.00039942, 7.27195667, 0.99800859, 0.99894880, 0.49315011], 4785 [- 6.27260877, - 0.00065164, 0.00039933, 7.27195713, 0.99800901, 0.99894903, 0.49315016], 4786 [- 6.27260910, - 0.00065150, 0.00039925, 7.27195760, 0.99800943, 0.99894925, 0.49315020], 4787 [- 6.27260943, - 0.00065137, 0.00039917, 7.27195806, 0.99800985, 0.99894947, 0.49315028], 4788 [- 6.27260976, - 0.00065123, 0.00039908, 7.27195853, 0.99801027, 0.99894969, 0.49315027], 4789 [- 6.27261009, - 0.00065109, 0.00039900, 7.27195899, 0.99801069, 0.99894991, 0.49315035], 4790 [- 6.27261041, - 0.00065096, 0.00039891, 7.27195946, 0.99801110, 0.99895013, 0.49315041], 4791 [- 6.27261074, - 0.00065082, 0.00039883, 7.27195992, 0.99801152, 0.99895035, 0.49315047], 4792 [- 6.27261107, - 0.00065068, 0.00039875, 7.27196039, 0.99801194, 0.99895057, 0.49315053], 4793 [- 6.27261140, - 0.00065055, 0.00039866, 7.27196085, 0.99801236, 0.99895079, 0.49315055], 4794 [- 6.27261172, - 0.00065041, 0.00039858, 7.27196132, 0.99801278, 0.99895101, 0.49315059], 4795 [- 6.27261205, - 0.00065027, 0.00039849, 7.27196178, 0.99801320, 0.99895123, 0.49315063], 4796 [- 6.27261238, - 0.00065014, 0.00039841, 7.27196224, 0.99801361, 0.99895145, 0.49315070], 4797 [- 6.27261271, - 0.00065000, 0.00039833, 7.27196271, 0.99801403, 0.99895167, 0.49315074], 4798 [- 6.27261303, - 0.00064986, 0.00039824, 7.27196317, 0.99801445, 0.99895189, 0.49315081], 4799 [- 6.27261336, - 0.00064973, 0.00039816, 7.27196363, 0.99801486, 0.99895212, 0.49315083], 4800 [- 6.27261369, - 0.00064959, 0.00039808, 7.27196410, 0.99801528, 0.99895233, 0.49315088], 4801 [- 6.27261401, - 0.00064945, 0.00039799, 7.27196456, 0.99801570, 0.99895255, 0.49315095], 4802 [- 6.27261434, - 0.00064932, 0.00039791, 7.27196502, 0.99801611, 0.99895277, 0.49315102], 4803 [- 6.27261466, - 0.00064918, 0.00039782, 7.27196548, 0.99801653, 0.99895299, 0.49315101], 4804 [- 6.27261499, - 0.00064904, 0.00039774, 7.27196595, 0.99801695, 0.99895321, 0.49315109], 4805 [- 6.27261532, - 0.00064891, 0.00039766, 7.27196641, 0.99801736, 0.99895343, 0.49315112], 4806 [- 6.27261564, - 0.00064877, 0.00039757, 7.27196687, 0.99801778, 0.99895365, 0.49315120], 4807 [- 6.27261597, - 0.00064864, 0.00039749, 7.27196733, 0.99801819, 0.99895387, 0.49315122], 4808 [- 6.27261629, - 0.00064850, 0.00039741, 7.27196779, 0.99801861, 0.99895409, 0.49315129], 4809 [- 6.27261662, - 0.00064836, 0.00039732, 7.27196825, 0.99801902, 0.99895431, 0.49315134], 4810 [- 6.27261694, - 0.00064823, 0.00039724, 7.27196871, 0.99801944, 0.99895453, 0.49315136], 4811 [- 6.27261727, - 0.00064809, 0.00039716, 7.27196917, 0.99801985, 0.99895475, 0.49315141], 4812 [- 6.27261759, - 0.00064796, 0.00039707, 7.27196963, 0.99802027, 0.99895497, 0.49315149], 4813 [- 6.27261792, - 0.00064782, 0.00039699, 7.27197009, 0.99802068, 0.99895519, 0.49315153], 4814 [- 6.27261824, - 0.00064769, 0.00039691, 7.27197056, 0.99802110, 0.99895540, 0.49315156], 4815 [- 6.27261857, - 0.00064755, 0.00039683, 7.27197101, 0.99802151, 0.99895562, 0.49315162], 4816 [- 6.27261889, - 0.00064742, 0.00039674, 7.27197147, 0.99802193, 0.99895584, 0.49315167], 4817 [- 6.27261921, - 0.00064728, 0.00039666, 7.27197193, 0.99802234, 0.99895606, 0.49315173], 4818 [- 6.27261954, - 0.00064715, 0.00039658, 7.27197239, 0.99802275, 0.99895628, 0.49315176], 4819 [- 6.27261986, - 0.00064701, 0.00039649, 7.27197285, 0.99802317, 0.99895650, 0.49315180], 4820 [- 6.27262019, - 0.00064687, 0.00039641, 7.27197331, 0.99802358, 0.99895671, 0.49315186], 4821 [- 6.27262051, - 0.00064674, 0.00039633, 7.27197377, 0.99802399, 0.99895693, 0.49315191], 4822 [- 6.27262083, - 0.00064660, 0.00039624, 7.27197423, 0.99802441, 0.99895715, 0.49315198], 4823 [- 6.27262116, - 0.00064647, 0.00039616, 7.27197469, 0.99802482, 0.99895737, 0.49315200], 4824 [- 6.27262148, - 0.00064633, 0.00039608, 7.27197515, 0.99802523, 0.99895759, 0.49315204], 4825 [- 6.27262180, - 0.00064620, 0.00039600, 7.27197560, 0.99802564, 0.99895780, 0.49315211], 4826 [- 6.27262213, - 0.00064606, 0.00039591, 7.27197606, 0.99802606, 0.99895802, 0.49315216], 4827 [- 6.27262245, - 0.00064593, 0.00039583, 7.27197652, 0.99802647, 0.99895824, 0.49315219], 4828 [- 6.27262277, - 0.00064579, 0.00039575, 7.27197698, 0.99802688, 0.99895846, 0.49315225], 4829 [- 6.27262309, - 0.00064566, 0.00039567, 7.27197743, 0.99802729, 0.99895867, 0.49315226], 4830 [- 6.27262342, - 0.00064553, 0.00039558, 7.27197789, 0.99802770, 0.99895889, 0.49315233], 4831 [- 6.27262374, - 0.00064539, 0.00039550, 7.27197835, 0.99802812, 0.99895911, 0.49315238], 4832 [- 6.27262406, - 0.00064526, 0.00039542, 7.27197880, 0.99802853, 0.99895933, 0.49315244], 4833 [- 6.27262438, - 0.00064512, 0.00039534, 7.27197926, 0.99802894, 0.99895954, 0.49315248], 4834 [- 6.27262470, - 0.00064499, 0.00039525, 7.27197972, 0.99802935, 0.99895976, 0.49315254], 4835 [- 6.27262503, - 0.00064485, 0.00039517, 7.27198017, 0.99802976, 0.99895998, 0.49315255], 4836 [- 6.27262535, - 0.00064472, 0.00039509, 7.27198063, 0.99803017, 0.99896019, 0.49315260], 4837 [- 6.27262567, - 0.00064458, 0.00039501, 7.27198108, 0.99803058, 0.99896041, 0.49315266], 4838 [- 6.27262599, - 0.00064445, 0.00039492, 7.27198154, 0.99803099, 0.99896063, 0.49315272], 4839 [- 6.27262631, - 0.00064432, 0.00039484, 7.27198199, 0.99803140, 0.99896084, 0.49315276], 4840 [- 6.27262663, - 0.00064418, 0.00039476, 7.27198245, 0.99803181, 0.99896106, 0.49315283], 4841 [- 6.27262695, - 0.00064405, 0.00039468, 7.27198290, 0.99803222, 0.99896127, 0.49315287], 4842 [- 6.27262727, - 0.00064391, 0.00039460, 7.27198336, 0.99803263, 0.99896149, 0.49315291], 4843 [- 6.27262759, - 0.00064378, 0.00039451, 7.27198381, 0.99803304, 0.99896171, 0.49315298], 4844 [- 6.27262792, - 0.00064365, 0.00039443, 7.27198427, 0.99803345, 0.99896192, 0.49315301], 4845 [- 6.27262824, - 0.00064351, 0.00039435, 7.27198472, 0.99803386, 0.99896214, 0.49315305], 4846 [- 6.27262856, - 0.00064338, 0.00039427, 7.27198518, 0.99803427, 0.99896235, 0.49315310], 4847 [- 6.27262888, - 0.00064325, 0.00039418, 7.27198563, 0.99803468, 0.99896257, 0.49315315], 4848 [- 6.27262920, - 0.00064311, 0.00039410, 7.27198608, 0.99803508, 0.99896279, 0.49315320], 4849 [- 6.27262952, - 0.00064298, 0.00039402, 7.27198654, 0.99803549, 0.99896300, 0.49315324], 4850 [- 6.27262984, - 0.00064284, 0.00039394, 7.27198699, 0.99803590, 0.99896322, 0.49315329], 4851 [- 6.27263015, - 0.00064271, 0.00039386, 7.27198744, 0.99803631, 0.99896343, 0.49315335], 4852 [- 6.27263047, - 0.00064258, 0.00039378, 7.27198790, 0.99803672, 0.99896365, 0.49315341], 4853 [- 6.27263079, - 0.00064244, 0.00039369, 7.27198835, 0.99803712, 0.99896386, 0.49315341], 4854 [- 6.27263111, - 0.00064231, 0.00039361, 7.27198880, 0.99803753, 0.99896408, 0.49315348], 4855 [- 6.27263143, - 0.00064218, 0.00039353, 7.27198925, 0.99803794, 0.99896429, 0.49315355], 4856 [- 6.27263175, - 0.00064204, 0.00039345, 7.27198971, 0.99803835, 0.99896451, 0.49315360], 4857 [- 6.27263207, - 0.00064191, 0.00039337, 7.27199016, 0.99803875, 0.99896472, 0.49315362], 4858 [- 6.27263239, - 0.00064178, 0.00039329, 7.27199061, 0.99803916, 0.99896494, 0.49315366], 4859 [- 6.27263271, - 0.00064165, 0.00039320, 7.27199106, 0.99803957, 0.99896515, 0.49315370], 4860 [- 6.27263302, - 0.00064151, 0.00039312, 7.27199151, 0.99803997, 0.99896537, 0.49315378], 4861 [- 6.27263334, - 0.00064138, 0.00039304, 7.27199196, 0.99804038, 0.99896558, 0.49315382], 4862 [- 6.27263366, - 0.00064125, 0.00039296, 7.27199241, 0.99804079, 0.99896579, 0.49315384], 4863 [- 6.27263398, - 0.00064111, 0.00039288, 7.27199287, 0.99804119, 0.99896601, 0.49315390], 4864 [- 6.27263430, - 0.00064098, 0.00039280, 7.27199332, 0.99804160, 0.99896622, 0.49315398], 4865 [- 6.27263461, - 0.00064085, 0.00039271, 7.27199377, 0.99804200, 0.99896644, 0.49315398], 4866 [- 6.27263493, - 0.00064072, 0.00039263, 7.27199422, 0.99804241, 0.99896665, 0.49315402], 4867 [- 6.27263525, - 0.00064058, 0.00039255, 7.27199467, 0.99804281, 0.99896686, 0.49315410], 4868 [- 6.27263557, - 0.00064045, 0.00039247, 7.27199512, 0.99804322, 0.99896708, 0.49315415], 4869 [- 6.27263588, - 0.00064032, 0.00039239, 7.27199557, 0.99804362, 0.99896729, 0.49315420], 4870 [- 6.27263620, - 0.00064019, 0.00039231, 7.27199602, 0.99804403, 0.99896751, 0.49315423], 4871 [- 6.27263652, - 0.00064005, 0.00039223, 7.27199646, 0.99804443, 0.99896772, 0.49315429], 4872 [- 6.27263683, - 0.00063992, 0.00039215, 7.27199691, 0.99804484, 0.99896793, 0.49315433], 4873 [- 6.27263715, - 0.00063979, 0.00039206, 7.27199736, 0.99804524, 0.99896815, 0.49315438], 4874 [- 6.27263747, - 0.00063966, 0.00039198, 7.27199781, 0.99804565, 0.99896836, 0.49315441], 4875 [- 6.27263778, - 0.00063952, 0.00039190, 7.27199826, 0.99804605, 0.99896857, 0.49315445], 4876 [- 6.27263810, - 0.00063939, 0.00039182, 7.27199871, 0.99804645, 0.99896879, 0.49315452], 4877 [- 6.27263842, - 0.00063926, 0.00039174, 7.27199916, 0.99804686, 0.99896900, 0.49315453], 4878 [- 6.27263873, - 0.00063913, 0.00039166, 7.27199960, 0.99804726, 0.99896921, 0.49315461], 4879 [- 6.27263905, - 0.00063900, 0.00039158, 7.27200005, 0.99804766, 0.99896942, 0.49315465], 4880 [- 6.27263936, - 0.00063886, 0.00039150, 7.27200050, 0.99804807, 0.99896964, 0.49315471], 4881 [- 6.27263968, - 0.00063873, 0.00039142, 7.27200095, 0.99804847, 0.99896985, 0.49315476], 4882 [- 6.27263999, - 0.00063860, 0.00039134, 7.27200139, 0.99804887, 0.99897006, 0.49315480], 4883 [- 6.27264031, - 0.00063847, 0.00039126, 7.27200184, 0.99804928, 0.99897028, 0.49315486], 4884 [- 6.27264063, - 0.00063834, 0.00039117, 7.27200229, 0.99804968, 0.99897049, 0.49315489], 4885 [- 6.27264094, - 0.00063821, 0.00039109, 7.27200273, 0.99805008, 0.99897070, 0.49315491], 4886 [- 6.27264126, - 0.00063807, 0.00039101, 7.27200318, 0.99805048, 0.99897091, 0.49315503], 4887 [- 6.27264157, - 0.00063794, 0.00039093, 7.27200363, 0.99805088, 0.99897112, 0.49315504], 4888 [- 6.27264188, - 0.00063781, 0.00039085, 7.27200407, 0.99805129, 0.99897134, 0.49315507], 4889 [- 6.27264220, - 0.00063768, 0.00039077, 7.27200452, 0.99805169, 0.99897155, 0.49315512], 4890 [- 6.27264251, - 0.00063755, 0.00039069, 7.27200496, 0.99805209, 0.99897176, 0.49315517], 4891 [- 6.27264283, - 0.00063742, 0.00039061, 7.27200541, 0.99805249, 0.99897197, 0.49315521], 4892 [- 6.27264314, - 0.00063729, 0.00039053, 7.27200586, 0.99805289, 0.99897218, 0.49315529], 4893 [- 6.27264346, - 0.00063716, 0.00039045, 7.27200630, 0.99805329, 0.99897240, 0.49315533], 4894 [- 6.27264377, - 0.00063702, 0.00039037, 7.27200675, 0.99805369, 0.99897261, 0.49315538], 4895 [- 6.27264408, - 0.00063689, 0.00039029, 7.27200719, 0.99805409, 0.99897282, 0.49315540], 4896 [- 6.27264440, - 0.00063676, 0.00039021, 7.27200764, 0.99805450, 0.99897303, 0.49315545], 4897 [- 6.27264471, - 0.00063663, 0.00039013, 7.27200808, 0.99805490, 0.99897324, 0.49315550], 4898 [- 6.27264502, - 0.00063650, 0.00039005, 7.27200852, 0.99805530, 0.99897345, 0.49315556], 4899 [- 6.27264534, - 0.00063637, 0.00038997, 7.27200897, 0.99805570, 0.99897366, 0.49315563], 4900 [- 6.27264565, - 0.00063624, 0.00038989, 7.27200941, 0.99805610, 0.99897387, 0.49315563], 4901 [- 6.27264596, - 0.00063611, 0.00038981, 7.27200986, 0.99805649, 0.99897409, 0.49315568], 4902 [- 6.27264628, - 0.00063598, 0.00038973, 7.27201030, 0.99805689, 0.99897430, 0.49315572], 4903 [- 6.27264659, - 0.00063585, 0.00038965, 7.27201074, 0.99805729, 0.99897451, 0.49315579], 4904 [- 6.27264690, - 0.00063572, 0.00038957, 7.27201119, 0.99805769, 0.99897472, 0.49315582], 4905 [- 6.27264721, - 0.00063559, 0.00038949, 7.27201163, 0.99805809, 0.99897493, 0.49315589], 4906 [- 6.27264753, - 0.00063545, 0.00038941, 7.27201207, 0.99805849, 0.99897514, 0.49315595], 4907 [- 6.27264784, - 0.00063532, 0.00038933, 7.27201251, 0.99805889, 0.99897535, 0.49315600], 4908 [- 6.27264815, - 0.00063519, 0.00038925, 7.27201296, 0.99805929, 0.99897556, 0.49315603], 4909 [- 6.27264846, - 0.00063506, 0.00038917, 7.27201340, 0.99805969, 0.99897577, 0.49315606], 4910 [- 6.27264877, - 0.00063493, 0.00038909, 7.27201384, 0.99806008, 0.99897598, 0.49315609], 4911 [- 6.27264909, - 0.00063480, 0.00038901, 7.27201428, 0.99806048, 0.99897619, 0.49315614], 4912 [- 6.27264940, - 0.00063467, 0.00038893, 7.27201472, 0.99806088, 0.99897640, 0.49315621], 4913 [- 6.27264971, - 0.00063454, 0.00038885, 7.27201517, 0.99806128, 0.99897661, 0.49315622], 4914 [- 6.27265002, - 0.00063441, 0.00038877, 7.27201561, 0.99806168, 0.99897682, 0.49315632], 4915 [- 6.27265033, - 0.00063428, 0.00038869, 7.27201605, 0.99806207, 0.99897703, 0.49315636], 4916 [- 6.27265064, - 0.00063415, 0.00038861, 7.27201649, 0.99806247, 0.99897724, 0.49315639], 4917 [- 6.27265095, - 0.00063402, 0.00038853, 7.27201693, 0.99806287, 0.99897745, 0.49315644], 4918 [- 6.27265126, - 0.00063389, 0.00038845, 7.27201737, 0.99806326, 0.99897766, 0.49315648], 4919 [- 6.27265157, - 0.00063376, 0.00038837, 7.27201781, 0.99806366, 0.99897787, 0.49315654], 4920 [- 6.27265189, - 0.00063363, 0.00038829, 7.27201825, 0.99806406, 0.99897808, 0.49315656], 4921 [- 6.27265220, - 0.00063350, 0.00038821, 7.27201869, 0.99806445, 0.99897829, 0.49315663], 4922 [- 6.27265251, - 0.00063337, 0.00038813, 7.27201913, 0.99806485, 0.99897849, 0.49315664], 4923 [- 6.27265282, - 0.00063324, 0.00038805, 7.27201957, 0.99806525, 0.99897870, 0.49315672], 4924 [- 6.27265313, - 0.00063312, 0.00038797, 7.27202001, 0.99806564, 0.99897891, 0.49315678], 4925 [- 6.27265344, - 0.00063299, 0.00038789, 7.27202045, 0.99806604, 0.99897912, 0.49315679], 4926 [- 6.27265375, - 0.00063286, 0.00038781, 7.27202089, 0.99806643, 0.99897933, 0.49315682], 4927 [- 6.27265406, - 0.00063273, 0.00038773, 7.27202133, 0.99806683, 0.99897954, 0.49315688], 4928 [- 6.27265436, - 0.00063260, 0.00038765, 7.27202177, 0.99806722, 0.99897975, 0.49315697], 4929 [- 6.27265467, - 0.00063247, 0.00038758, 7.27202221, 0.99806762, 0.99897996, 0.49315698], 4930 [- 6.27265498, - 0.00063234, 0.00038750, 7.27202264, 0.99806801, 0.99898016, 0.49315705], 4931 [- 6.27265529, - 0.00063221, 0.00038742, 7.27202308, 0.99806841, 0.99898037, 0.49315710], 4932 [- 6.27265560, - 0.00063208, 0.00038734, 7.27202352, 0.99806880, 0.99898058, 0.49315714], 4933 [- 6.27265591, - 0.00063195, 0.00038726, 7.27202396, 0.99806920, 0.99898079, 0.49315716], 4934 [- 6.27265622, - 0.00063182, 0.00038718, 7.27202440, 0.99806959, 0.99898100, 0.49315722], 4935 [- 6.27265653, - 0.00063169, 0.00038710, 7.27202483, 0.99806999, 0.99898121, 0.49315726], 4936 [- 6.27265684, - 0.00063157, 0.00038702, 7.27202527, 0.99807038, 0.99898141, 0.49315731], 4937 [- 6.27265714, - 0.00063144, 0.00038694, 7.27202571, 0.99807077, 0.99898162, 0.49315737], 4938 [- 6.27265745, - 0.00063131, 0.00038686, 7.27202614, 0.99807117, 0.99898183, 0.49315740], 4939 [- 6.27265776, - 0.00063118, 0.00038678, 7.27202658, 0.99807156, 0.99898204, 0.49315744], 4940 [- 6.27265807, - 0.00063105, 0.00038671, 7.27202702, 0.99807195, 0.99898224, 0.49315747], 4941 [- 6.27265838, - 0.00063092, 0.00038663, 7.27202745, 0.99807235, 0.99898245, 0.49315751], 4942 [- 6.27265868, - 0.00063079, 0.00038655, 7.27202789, 0.99807274, 0.99898266, 0.49315758], 4943 [- 6.27265899, - 0.00063066, 0.00038647, 7.27202833, 0.99807313, 0.99898287, 0.49315760], 4944 [- 6.27265930, - 0.00063054, 0.00038639, 7.27202876, 0.99807353, 0.99898307, 0.49315770], 4945 [- 6.27265961, - 0.00063041, 0.00038631, 7.27202920, 0.99807392, 0.99898328, 0.49315771], 4946 [- 6.27265991, - 0.00063028, 0.00038623, 7.27202963, 0.99807431, 0.99898349, 0.49315780], 4947 [- 6.27266022, - 0.00063015, 0.00038615, 7.27203007, 0.99807470, 0.99898369, 0.49315780], 4948 [- 6.27266053, - 0.00063002, 0.00038608, 7.27203051, 0.99807510, 0.99898390, 0.49315786], 4949 [- 6.27266083, - 0.00062989, 0.00038600, 7.27203094, 0.99807549, 0.99898411, 0.49315792], 4950 [- 6.27266114, - 0.00062977, 0.00038592, 7.27203138, 0.99807588, 0.99898432, 0.49315794], 4951 [- 6.27266145, - 0.00062964, 0.00038584, 7.27203181, 0.99807627, 0.99898452, 0.49315802], 4952 [- 6.27266175, - 0.00062951, 0.00038576, 7.27203224, 0.99807666, 0.99898473, 0.49315805], 4953 [- 6.27266206, - 0.00062938, 0.00038568, 7.27203268, 0.99807705, 0.99898493, 0.49315808], 4954 [- 6.27266237, - 0.00062925, 0.00038560, 7.27203311, 0.99807744, 0.99898514, 0.49315812], 4955 [- 6.27266267, - 0.00062913, 0.00038553, 7.27203355, 0.99807784, 0.99898535, 0.49315818], 4956 [- 6.27266298, - 0.00062900, 0.00038545, 7.27203398, 0.99807823, 0.99898555, 0.49315821], 4957 [- 6.27266329, - 0.00062887, 0.00038537, 7.27203441, 0.99807862, 0.99898576, 0.49315828], 4958 [- 6.27266359, - 0.00062874, 0.00038529, 7.27203485, 0.99807901, 0.99898597, 0.49315830], 4959 [- 6.27266390, - 0.00062862, 0.00038521, 7.27203528, 0.99807940, 0.99898617, 0.49315836], 4960 [- 6.27266420, - 0.00062849, 0.00038513, 7.27203571, 0.99807979, 0.99898638, 0.49315841], 4961 [- 6.27266451, - 0.00062836, 0.00038506, 7.27203615, 0.99808018, 0.99898658, 0.49315847], 4962 [- 6.27266481, - 0.00062823, 0.00038498, 7.27203658, 0.99808057, 0.99898679, 0.49315850], 4963 [- 6.27266512, - 0.00062811, 0.00038490, 7.27203701, 0.99808096, 0.99898700, 0.49315856], 4964 [- 6.27266542, - 0.00062798, 0.00038482, 7.27203744, 0.99808135, 0.99898720, 0.49315859], 4965 [- 6.27266573, - 0.00062785, 0.00038474, 7.27203788, 0.99808174, 0.99898741, 0.49315862], 4966 [- 6.27266603, - 0.00062772, 0.00038467, 7.27203831, 0.99808213, 0.99898761, 0.49315867], 4967 [- 6.27266634, - 0.00062760, 0.00038459, 7.27203874, 0.99808251, 0.99898782, 0.49315875], 4968 [- 6.27266664, - 0.00062747, 0.00038451, 7.27203917, 0.99808290, 0.99898802, 0.49315880], 4969 [- 6.27266695, - 0.00062734, 0.00038443, 7.27203960, 0.99808329, 0.99898823, 0.49315883], 4970 [- 6.27266725, - 0.00062721, 0.00038435, 7.27204004, 0.99808368, 0.99898843, 0.49315887], 4971 [- 6.27266755, - 0.00062709, 0.00038428, 7.27204047, 0.99808407, 0.99898864, 0.49315892], 4972 [- 6.27266786, - 0.00062696, 0.00038420, 7.27204090, 0.99808446, 0.99898884, 0.49315895], 4973 [- 6.27266816, - 0.00062683, 0.00038412, 7.27204133, 0.99808485, 0.99898905, 0.49315899], 4974 [- 6.27266847, - 0.00062671, 0.00038404, 7.27204176, 0.99808523, 0.99898925, 0.49315906], 4975 [- 6.27266877, - 0.00062658, 0.00038396, 7.27204219, 0.99808562, 0.99898946, 0.49315910], 4976 [- 6.27266907, - 0.00062645, 0.00038389, 7.27204262, 0.99808601, 0.99898966, 0.49315911], 4977 [- 6.27266938, - 0.00062633, 0.00038381, 7.27204305, 0.99808640, 0.99898987, 0.49315917], 4978 [- 6.27266968, - 0.00062620, 0.00038373, 7.27204348, 0.99808678, 0.99899007, 0.49315922], 4979 [- 6.27266998, - 0.00062607, 0.00038365, 7.27204391, 0.99808717, 0.99899027, 0.49315926], 4980 [- 6.27267028, - 0.00062595, 0.00038358, 7.27204434, 0.99808756, 0.99899048, 0.49315930], 4981 [- 6.27267059, - 0.00062582, 0.00038350, 7.27204477, 0.99808794, 0.99899068, 0.49315934], 4982 [- 6.27267089, - 0.00062569, 0.00038342, 7.27204520, 0.99808833, 0.99899089, 0.49315940], 4983 [- 6.27267119, - 0.00062557, 0.00038334, 7.27204563, 0.99808872, 0.99899109, 0.49315945], 4984 [- 6.27267150, - 0.00062544, 0.00038327, 7.27204606, 0.99808910, 0.99899129, 0.49315950], 4985 [- 6.27267180, - 0.00062531, 0.00038319, 7.27204648, 0.99808949, 0.99899150, 0.49315953], 4986 [- 6.27267210, - 0.00062519, 0.00038311, 7.27204691, 0.99808988, 0.99899170, 0.49315956], 4987 [- 6.27267240, - 0.00062506, 0.00038303, 7.27204734, 0.99809026, 0.99899191, 0.49315961], 4988 [- 6.27267270, - 0.00062494, 0.00038296, 7.27204777, 0.99809065, 0.99899211, 0.49315968], 4989 [- 6.27267301, - 0.00062481, 0.00038288, 7.27204820, 0.99809103, 0.99899231, 0.49315973], 4990 [- 6.27267331, - 0.00062468, 0.00038280, 7.27204863, 0.99809142, 0.99899252, 0.49315977], 4991 [- 6.27267361, - 0.00062456, 0.00038272, 7.27204905, 0.99809180, 0.99899272, 0.49315980], 4992 [- 6.27267391, - 0.00062443, 0.00038265, 7.27204948, 0.99809219, 0.99899292, 0.49315984], 4993 [- 6.27267421, - 0.00062431, 0.00038257, 7.27204991, 0.99809257, 0.99899313, 0.49315989], 4994 [- 6.27267451, - 0.00062418, 0.00038249, 7.27205033, 0.99809296, 0.99899333, 0.49315993], 4995 [- 6.27267481, - 0.00062405, 0.00038241, 7.27205076, 0.99809334, 0.99899353, 0.49315999], 4996 [- 6.27267512, - 0.00062393, 0.00038234, 7.27205119, 0.99809373, 0.99899373, 0.49316004], 4997 [- 6.27267542, - 0.00062380, 0.00038226, 7.27205162, 0.99809411, 0.99899394, 0.49316007], 4998 [- 6.27267572, - 0.00062368, 0.00038218, 7.27205204, 0.99809450, 0.99899414, 0.49316011], 4999 [- 6.27267602, - 0.00062355, 0.00038211, 7.27205247, 0.99809488, 0.99899434, 0.49316016], 5000 [- 6.27267632, - 0.00062342, 0.00038203, 7.27205289, 0.99809527, 0.99899455, 0.49316020], 5001 [- 6.27267662, - 0.00062330, 0.00038195, 7.27205332, 0.99809565, 0.99899475, 0.49316023], 5002 [- 6.27267692, - 0.00062317, 0.00038188, 7.27205375, 0.99809603, 0.99899495, 0.49316033], 5003 [- 6.27267722, - 0.00062305, 0.00038180, 7.27205417, 0.99809642, 0.99899515, 0.49316032], 5004 [- 6.27267752, - 0.00062292, 0.00038172, 7.27205460, 0.99809680, 0.99899536, 0.49316037], 5005 [- 6.27267782, - 0.00062280, 0.00038164, 7.27205502, 0.99809718, 0.99899556, 0.49316043], 5006 [- 6.27267812, - 0.00062267, 0.00038157, 7.27205545, 0.99809757, 0.99899576, 0.49316049], 5007 [- 6.27267842, - 0.00062255, 0.00038149, 7.27205587, 0.99809795, 0.99899596, 0.49316053], 5008 [- 6.27267872, - 0.00062242, 0.00038141, 7.27205630, 0.99809833, 0.99899616, 0.49316060], 5009 [- 6.27267902, - 0.00062230, 0.00038134, 7.27205672, 0.99809871, 0.99899637, 0.49316061], 5010 [- 6.27267932, - 0.00062217, 0.00038126, 7.27205715, 0.99809910, 0.99899657, 0.49316068], 5011 [- 6.27267962, - 0.00062205, 0.00038118, 7.27205757, 0.99809948, 0.99899677, 0.49316072], 5012 [- 6.27267992, - 0.00062192, 0.00038111, 7.27205799, 0.99809986, 0.99899697, 0.49316074], 5013 [- 6.27268021, - 0.00062180, 0.00038103, 7.27205842, 0.99810024, 0.99899717, 0.49316079], 5014 [- 6.27268051, - 0.00062167, 0.00038095, 7.27205884, 0.99810062, 0.99899737, 0.49316083], 5015 [- 6.27268081, - 0.00062155, 0.00038088, 7.27205927, 0.99810100, 0.99899757, 0.49316088], 5016 [- 6.27268111, - 0.00062142, 0.00038080, 7.27205969, 0.99810139, 0.99899778, 0.49316090], 5017 [- 6.27268141, - 0.00062130, 0.00038072, 7.27206011, 0.99810177, 0.99899798, 0.49316099], 5018 [- 6.27268171, - 0.00062117, 0.00038065, 7.27206053, 0.99810215, 0.99899818, 0.49316102], 5019 [- 6.27268201, - 0.00062105, 0.00038057, 7.27206096, 0.99810253, 0.99899838, 0.49316107], 5020 [- 6.27268230, - 0.00062092, 0.00038050, 7.27206138, 0.99810291, 0.99899858, 0.49316107], 5021 [- 6.27268260, - 0.00062080, 0.00038042, 7.27206180, 0.99810329, 0.99899878, 0.49316112], 5022 [- 6.27268290, - 0.00062067, 0.00038034, 7.27206223, 0.99810367, 0.99899898, 0.49316121], 5023 [- 6.27268320, - 0.00062055, 0.00038027, 7.27206265, 0.99810405, 0.99899918, 0.49316122], 5024 [- 6.27268350, - 0.00062043, 0.00038019, 7.27206307, 0.99810443, 0.99899938, 0.49316127], 5025 [- 6.27268379, - 0.00062030, 0.00038011, 7.27206349, 0.99810481, 0.99899958, 0.49316133], 5026 [- 6.27268409, - 0.00062018, 0.00038004, 7.27206391, 0.99810519, 0.99899978, 0.49316137], 5027 [- 6.27268439, - 0.00062005, 0.00037996, 7.27206433, 0.99810557, 0.99899999, 0.49316141], 5028 [- 6.27268468, - 0.00061993, 0.00037989, 7.27206476, 0.99810595, 0.99900019, 0.49316145], 5029 [- 6.27268498, - 0.00061980, 0.00037981, 7.27206518, 0.99810633, 0.99900039, 0.49316150], 5030 [- 6.27268528, - 0.00061968, 0.00037973, 7.27206560, 0.99810671, 0.99900059, 0.49316152], 5031 [- 6.27268558, - 0.00061956, 0.00037966, 7.27206602, 0.99810709, 0.99900079, 0.49316158], 5032 [- 6.27268587, - 0.00061943, 0.00037958, 7.27206644, 0.99810747, 0.99900099, 0.49316160], 5033 [- 6.27268617, - 0.00061931, 0.00037951, 7.27206686, 0.99810785, 0.99900119, 0.49316174], 5034 [- 6.27268647, - 0.00061919, 0.00037943, 7.27206728, 0.99810823, 0.99900139, 0.49316174], 5035 [- 6.27268676, - 0.00061906, 0.00037935, 7.27206770, 0.99810860, 0.99900159, 0.49316173], 5036 [- 6.27268706, - 0.00061894, 0.00037928, 7.27206812, 0.99810898, 0.99900179, 0.49316182], 5037 [- 6.27268735, - 0.00061881, 0.00037920, 7.27206854, 0.99810936, 0.99900198, 0.49316185], 5038 [- 6.27268765, - 0.00061869, 0.00037913, 7.27206896, 0.99810974, 0.99900218, 0.49316190], 5039 [- 6.27268795, - 0.00061857, 0.00037905, 7.27206938, 0.99811012, 0.99900238, 0.49316194], 5040 [- 6.27268824, - 0.00061844, 0.00037897, 7.27206980, 0.99811049, 0.99900258, 0.49316199], 5041 [- 6.27268854, - 0.00061832, 0.00037890, 7.27207022, 0.99811087, 0.99900278, 0.49316201], 5042 [- 6.27268883, - 0.00061820, 0.00037882, 7.27207064, 0.99811125, 0.99900298, 0.49316207], 5043 [- 6.27268913, - 0.00061807, 0.00037875, 7.27207106, 0.99811163, 0.99900318, 0.49316215], 5044 [- 6.27268942, - 0.00061795, 0.00037867, 7.27207147, 0.99811200, 0.99900338, 0.49316215], 5045 [- 6.27268972, - 0.00061783, 0.00037860, 7.27207189, 0.99811238, 0.99900358, 0.49316222], 5046 [- 6.27269001, - 0.00061770, 0.00037852, 7.27207231, 0.99811276, 0.99900378, 0.49316225], 5047 [- 6.27269031, - 0.00061758, 0.00037844, 7.27207273, 0.99811313, 0.99900398, 0.49316226], 5048 [- 6.27269060, - 0.00061746, 0.00037837, 7.27207315, 0.99811351, 0.99900418, 0.49316232], 5049 [- 6.27269090, - 0.00061733, 0.00037829, 7.27207356, 0.99811389, 0.99900437, 0.49316241], 5050 [- 6.27269119, - 0.00061721, 0.00037822, 7.27207398, 0.99811426, 0.99900457, 0.49316240], 5051 [- 6.27269149, - 0.00061709, 0.00037814, 7.27207440, 0.99811464, 0.99900477, 0.49316244], 5052 [- 6.27269178, - 0.00061696, 0.00037807, 7.27207482, 0.99811502, 0.99900497, 0.49316250], 5053 [- 6.27269208, - 0.00061684, 0.00037799, 7.27207523, 0.99811539, 0.99900517, 0.49316255], 5054 [- 6.27269237, - 0.00061672, 0.00037792, 7.27207565, 0.99811577, 0.99900537, 0.49316260], 5055 [- 6.27269266, - 0.00061660, 0.00037784, 7.27207607, 0.99811614, 0.99900556, 0.49316268], 5056 [- 6.27269296, - 0.00061647, 0.00037777, 7.27207648, 0.99811652, 0.99900576, 0.49316264], 5057 [- 6.27269325, - 0.00061635, 0.00037769, 7.27207690, 0.99811689, 0.99900596, 0.49316274], 5058 [- 6.27269354, - 0.00061623, 0.00037762, 7.27207732, 0.99811727, 0.99900616, 0.49316275], 5059 [- 6.27269384, - 0.00061610, 0.00037754, 7.27207773, 0.99811764, 0.99900636, 0.49316280], 5060 [- 6.27269413, - 0.00061598, 0.00037746, 7.27207815, 0.99811802, 0.99900655, 0.49316280], 5061 [- 6.27269442, - 0.00061586, 0.00037739, 7.27207857, 0.99811839, 0.99900675, 0.49316288], 5062 [- 6.27269472, - 0.00061574, 0.00037731, 7.27207898, 0.99811877, 0.99900695, 0.49316293], 5063 [- 6.27269501, - 0.00061561, 0.00037724, 7.27207940, 0.99811914, 0.99900715, 0.49316299], 5064 [- 6.27269530, - 0.00061549, 0.00037716, 7.27207981, 0.99811952, 0.99900734, 0.49316305], 5065 [- 6.27269560, - 0.00061537, 0.00037709, 7.27208023, 0.99811989, 0.99900754, 0.49316305], 5066 [- 6.27269589, - 0.00061525, 0.00037701, 7.27208064, 0.99812026, 0.99900774, 0.49316309], 5067 [- 6.27269618, - 0.00061512, 0.00037694, 7.27208106, 0.99812064, 0.99900794, 0.49316319], 5068 [- 6.27269647, - 0.00061500, 0.00037686, 7.27208147, 0.99812101, 0.99900813, 0.49316320], 5069 [- 6.27269677, - 0.00061488, 0.00037679, 7.27208189, 0.99812138, 0.99900833, 0.49316326], 5070 [- 6.27269706, - 0.00061476, 0.00037671, 7.27208230, 0.99812176, 0.99900853, 0.49316331], 5071 [- 6.27269735, - 0.00061464, 0.00037664, 7.27208271, 0.99812213, 0.99900872, 0.49316334], 5072 [- 6.27269764, - 0.00061451, 0.00037656, 7.27208313, 0.99812250, 0.99900892, 0.49316337], 5073 [- 6.27269793, - 0.00061439, 0.00037649, 7.27208354, 0.99812288, 0.99900912, 0.49316343], 5074 [- 6.27269823, - 0.00061427, 0.00037642, 7.27208396, 0.99812325, 0.99900931, 0.49316350], 5075 [- 6.27269852, - 0.00061415, 0.00037634, 7.27208437, 0.99812362, 0.99900951, 0.49316348], 5076 [- 6.27269881, - 0.00061403, 0.00037627, 7.27208478, 0.99812399, 0.99900971, 0.49316356], 5077 [- 6.27269910, - 0.00061390, 0.00037619, 7.27208520, 0.99812437, 0.99900990, 0.49316359], 5078 [- 6.27269939, - 0.00061378, 0.00037612, 7.27208561, 0.99812474, 0.99901010, 0.49316364], 5079 [- 6.27269968, - 0.00061366, 0.00037604, 7.27208602, 0.99812511, 0.99901030, 0.49316368], 5080 [- 6.27269997, - 0.00061354, 0.00037597, 7.27208643, 0.99812548, 0.99901049, 0.49316372], 5081 [- 6.27270027, - 0.00061342, 0.00037589, 7.27208685, 0.99812585, 0.99901069, 0.49316379], 5082 [- 6.27270056, - 0.00061330, 0.00037582, 7.27208726, 0.99812623, 0.99901089, 0.49316380], 5083 [- 6.27270085, - 0.00061318, 0.00037574, 7.27208767, 0.99812660, 0.99901108, 0.49316383], 5084 [- 6.27270114, - 0.00061305, 0.00037567, 7.27208808, 0.99812697, 0.99901128, 0.49316392], 5085 [- 6.27270143, - 0.00061293, 0.00037559, 7.27208850, 0.99812734, 0.99901147, 0.49316393], 5086 [- 6.27270172, - 0.00061281, 0.00037552, 7.27208891, 0.99812771, 0.99901167, 0.49316398], 5087 [- 6.27270201, - 0.00061269, 0.00037545, 7.27208932, 0.99812808, 0.99901186, 0.49316403], 5088 [- 6.27270230, - 0.00061257, 0.00037537, 7.27208973, 0.99812845, 0.99901206, 0.49316407], 5089 [- 6.27270259, - 0.00061245, 0.00037530, 7.27209014, 0.99812882, 0.99901226, 0.49316411], 5090 [- 6.27270288, - 0.00061233, 0.00037522, 7.27209055, 0.99812919, 0.99901245, 0.49316419], 5091 [- 6.27270317, - 0.00061221, 0.00037515, 7.27209096, 0.99812956, 0.99901265, 0.49316420], 5092 [- 6.27270346, - 0.00061208, 0.00037507, 7.27209137, 0.99812993, 0.99901284, 0.49316424], 5093 [- 6.27270375, - 0.00061196, 0.00037500, 7.27209178, 0.99813030, 0.99901304, 0.49316431], 5094 [- 6.27270404, - 0.00061184, 0.00037493, 7.27209219, 0.99813067, 0.99901323, 0.49316432], 5095 [- 6.27270433, - 0.00061172, 0.00037485, 7.27209260, 0.99813104, 0.99901343, 0.49316435], 5096 [- 6.27270462, - 0.00061160, 0.00037478, 7.27209301, 0.99813141, 0.99901362, 0.49316437], 5097 [- 6.27270490, - 0.00061148, 0.00037470, 7.27209342, 0.99813178, 0.99901382, 0.49316447], 5098 [- 6.27270519, - 0.00061136, 0.00037463, 7.27209383, 0.99813215, 0.99901401, 0.49316452], 5099 [- 6.27270548, - 0.00061124, 0.00037456, 7.27209424, 0.99813252, 0.99901421, 0.49316453], 5100 [- 6.27270577, - 0.00061112, 0.00037448, 7.27209465, 0.99813289, 0.99901440, 0.49316460], 5101 [- 6.27270606, - 0.00061100, 0.00037441, 7.27209506, 0.99813326, 0.99901460, 0.49316462], 5102 [- 6.27270635, - 0.00061088, 0.00037433, 7.27209547, 0.99813362, 0.99901479, 0.49316468], 5103 [- 6.27270664, - 0.00061076, 0.00037426, 7.27209588, 0.99813399, 0.99901498, 0.49316472], 5104 [- 6.27270692, - 0.00061064, 0.00037419, 7.27209629, 0.99813436, 0.99901518, 0.49316476], 5105 [- 6.27270721, - 0.00061051, 0.00037411, 7.27209670, 0.99813473, 0.99901537, 0.49316483], 5106 [- 6.27270750, - 0.00061039, 0.00037404, 7.27209711, 0.99813510, 0.99901557, 0.49316482], 5107 [- 6.27270779, - 0.00061027, 0.00037396, 7.27209751, 0.99813547, 0.99901576, 0.49316493], 5108 [- 6.27270808, - 0.00061015, 0.00037389, 7.27209792, 0.99813583, 0.99901596, 0.49316495], 5109 [- 6.27270836, - 0.00061003, 0.00037382, 7.27209833, 0.99813620, 0.99901615, 0.49316498], 5110 [- 6.27270865, - 0.00060991, 0.00037374, 7.27209874, 0.99813657, 0.99901634, 0.49316501], 5111 [- 6.27270894, - 0.00060979, 0.00037367, 7.27209915, 0.99813694, 0.99901654, 0.49316504], 5112 [- 6.27270923, - 0.00060967, 0.00037360, 7.27209955, 0.99813730, 0.99901673, 0.49316509], 5113 [- 6.27270951, - 0.00060955, 0.00037352, 7.27209996, 0.99813767, 0.99901692, 0.49316516], 5114 [- 6.27270980, - 0.00060943, 0.00037345, 7.27210037, 0.99813804, 0.99901712, 0.49316521], 5115 [- 6.27271009, - 0.00060931, 0.00037338, 7.27210078, 0.99813840, 0.99901731, 0.49316522], 5116 [- 6.27271038, - 0.00060919, 0.00037330, 7.27210118, 0.99813877, 0.99901751, 0.49316529], 5117 [- 6.27271066, - 0.00060907, 0.00037323, 7.27210159, 0.99813914, 0.99901770, 0.49316533], 5118 [- 6.27271095, - 0.00060895, 0.00037315, 7.27210200, 0.99813950, 0.99901789, 0.49316538], 5119 [- 6.27271124, - 0.00060883, 0.00037308, 7.27210240, 0.99813987, 0.99901808, 0.49316545], 5120 [- 6.27271152, - 0.00060871, 0.00037301, 7.27210281, 0.99814023, 0.99901828, 0.49316550], 5121 [- 6.27271181, - 0.00060859, 0.00037293, 7.27210321, 0.99814060, 0.99901847, 0.49316550], 5122 [- 6.27271209, - 0.00060847, 0.00037286, 7.27210362, 0.99814097, 0.99901866, 0.49316554], 5123 [- 6.27271238, - 0.00060836, 0.00037279, 7.27210403, 0.99814133, 0.99901886, 0.49316555], 5124 [- 6.27271267, - 0.00060824, 0.00037271, 7.27210443, 0.99814170, 0.99901905, 0.49316564], 5125 [- 6.27271295, - 0.00060812, 0.00037264, 7.27210484, 0.99814206, 0.99901924, 0.49316569], 5126 [- 6.27271324, - 0.00060800, 0.00037257, 7.27210524, 0.99814243, 0.99901944, 0.49316569], 5127 [- 6.27271352, - 0.00060788, 0.00037249, 7.27210565, 0.99814279, 0.99901963, 0.49316572], 5128 [- 6.27271381, - 0.00060776, 0.00037242, 7.27210605, 0.99814316, 0.99901982, 0.49316582], 5129 [- 6.27271410, - 0.00060764, 0.00037235, 7.27210646, 0.99814352, 0.99902001, 0.49316585], 5130 [- 6.27271438, - 0.00060752, 0.00037228, 7.27210686, 0.99814389, 0.99902021, 0.49316587], 5131 [- 6.27271467, - 0.00060740, 0.00037220, 7.27210727, 0.99814425, 0.99902040, 0.49316592], 5132 [- 6.27271495, - 0.00060728, 0.00037213, 7.27210767, 0.99814461, 0.99902059, 0.49316598], 5133 [- 6.27271524, - 0.00060716, 0.00037206, 7.27210807, 0.99814498, 0.99902078, 0.49316599], 5134 [- 6.27271552, - 0.00060704, 0.00037198, 7.27210848, 0.99814534, 0.99902097, 0.49316604], 5135 [- 6.27271581, - 0.00060692, 0.00037191, 7.27210888, 0.99814571, 0.99902117, 0.49316608], 5136 [- 6.27271609, - 0.00060680, 0.00037184, 7.27210929, 0.99814607, 0.99902136, 0.49316611], 5137 [- 6.27271637, - 0.00060669, 0.00037176, 7.27210969, 0.99814643, 0.99902155, 0.49316616], 5138 [- 6.27271666, - 0.00060657, 0.00037169, 7.27211009, 0.99814680, 0.99902174, 0.49316618], 5139 [- 6.27271694, - 0.00060645, 0.00037162, 7.27211050, 0.99814716, 0.99902193, 0.49316624], 5140 [- 6.27271723, - 0.00060633, 0.00037155, 7.27211090, 0.99814752, 0.99902213, 0.49316630], 5141 [- 6.27271751, - 0.00060621, 0.00037147, 7.27211130, 0.99814789, 0.99902232, 0.49316633], 5142 [- 6.27271780, - 0.00060609, 0.00037140, 7.27211170, 0.99814825, 0.99902251, 0.49316640], 5143 [- 6.27271808, - 0.00060597, 0.00037133, 7.27211211, 0.99814861, 0.99902270, 0.49316642], 5144 [- 6.27271836, - 0.00060585, 0.00037125, 7.27211251, 0.99814897, 0.99902289, 0.49316649], 5145 [- 6.27271865, - 0.00060574, 0.00037118, 7.27211291, 0.99814934, 0.99902308, 0.49316653], 5146 [- 6.27271893, - 0.00060562, 0.00037111, 7.27211331, 0.99814970, 0.99902327, 0.49316657], 5147 [- 6.27271921, - 0.00060550, 0.00037104, 7.27211371, 0.99815006, 0.99902346, 0.49316659], 5148 [- 6.27271950, - 0.00060538, 0.00037096, 7.27211412, 0.99815042, 0.99902366, 0.49316664], 5149 [- 6.27271978, - 0.00060526, 0.00037089, 7.27211452, 0.99815079, 0.99902385, 0.49316670], 5150 [- 6.27272006, - 0.00060514, 0.00037082, 7.27211492, 0.99815115, 0.99902404, 0.49316670], 5151 [- 6.27272035, - 0.00060503, 0.00037075, 7.27211532, 0.99815151, 0.99902423, 0.49316673], 5152 [- 6.27272063, - 0.00060491, 0.00037067, 7.27211572, 0.99815187, 0.99902442, 0.49316679], 5153 [- 6.27272091, - 0.00060479, 0.00037060, 7.27211612, 0.99815223, 0.99902461, 0.49316685], 5154 [- 6.27272120, - 0.00060467, 0.00037053, 7.27211652, 0.99815259, 0.99902480, 0.49316688], 5155 [- 6.27272148, - 0.00060455, 0.00037046, 7.27211692, 0.99815295, 0.99902499, 0.49316692], 5156 [- 6.27272176, - 0.00060444, 0.00037038, 7.27211732, 0.99815331, 0.99902518, 0.49316699], 5157 [- 6.27272204, - 0.00060432, 0.00037031, 7.27211773, 0.99815367, 0.99902537, 0.49316698], 5158 [- 6.27272232, - 0.00060420, 0.00037024, 7.27211813, 0.99815404, 0.99902556, 0.49316707], 5159 [- 6.27272261, - 0.00060408, 0.00037017, 7.27211853, 0.99815440, 0.99902575, 0.49316710], 5160 [- 6.27272289, - 0.00060396, 0.00037009, 7.27211893, 0.99815476, 0.99902594, 0.49316715], 5161 [- 6.27272317, - 0.00060385, 0.00037002, 7.27211933, 0.99815512, 0.99902613, 0.49316718], 5162 [- 6.27272345, - 0.00060373, 0.00036995, 7.27211972, 0.99815548, 0.99902632, 0.49316722], 5163 [- 6.27272373, - 0.00060361, 0.00036988, 7.27212012, 0.99815584, 0.99902651, 0.49316726], 5164 [- 6.27272402, - 0.00060349, 0.00036981, 7.27212052, 0.99815620, 0.99902670, 0.49316729], 5165 [- 6.27272430, - 0.00060337, 0.00036973, 7.27212092, 0.99815656, 0.99902689, 0.49316735], 5166 [- 6.27272458, - 0.00060326, 0.00036966, 7.27212132, 0.99815691, 0.99902708, 0.49316741], 5167 [- 6.27272486, - 0.00060314, 0.00036959, 7.27212172, 0.99815727, 0.99902727, 0.49316741], 5168 [- 6.27272514, - 0.00060302, 0.00036952, 7.27212212, 0.99815763, 0.99902746, 0.49316748], 5169 [- 6.27272542, - 0.00060290, 0.00036945, 7.27212252, 0.99815799, 0.99902765, 0.49316753], 5170 [- 6.27272570, - 0.00060279, 0.00036937, 7.27212292, 0.99815835, 0.99902784, 0.49316756], 5171 [- 6.27272598, - 0.00060267, 0.00036930, 7.27212331, 0.99815871, 0.99902803, 0.49316761], 5172 [- 6.27272626, - 0.00060255, 0.00036923, 7.27212371, 0.99815907, 0.99902822, 0.49316767], 5173 [- 6.27272654, - 0.00060244, 0.00036916, 7.27212411, 0.99815943, 0.99902841, 0.49316768], 5174 [- 6.27272683, - 0.00060232, 0.00036909, 7.27212451, 0.99815978, 0.99902860, 0.49316772], 5175 [- 6.27272711, - 0.00060220, 0.00036901, 7.27212490, 0.99816014, 0.99902879, 0.49316778], 5176 [- 6.27272739, - 0.00060208, 0.00036894, 7.27212530, 0.99816050, 0.99902897, 0.49316778], 5177 [- 6.27272767, - 0.00060197, 0.00036887, 7.27212570, 0.99816086, 0.99902916, 0.49316783], 5178 [- 6.27272795, - 0.00060185, 0.00036880, 7.27212610, 0.99816122, 0.99902935, 0.49316788], 5179 [- 6.27272823, - 0.00060173, 0.00036873, 7.27212649, 0.99816157, 0.99902954, 0.49316787], 5180 [- 6.27272851, - 0.00060162, 0.00036865, 7.27212689, 0.99816193, 0.99902973, 0.49316799], 5181 [- 6.27272879, - 0.00060150, 0.00036858, 7.27212729, 0.99816229, 0.99902992, 0.49316801], 5182 [- 6.27272907, - 0.00060138, 0.00036851, 7.27212768, 0.99816265, 0.99903011, 0.49316805], 5183 [- 6.27272934, - 0.00060127, 0.00036844, 7.27212808, 0.99816300, 0.99903029, 0.49316810], 5184 [- 6.27272962, - 0.00060115, 0.00036837, 7.27212848, 0.99816336, 0.99903048, 0.49316812], 5185 [- 6.27272990, - 0.00060103, 0.00036830, 7.27212887, 0.99816372, 0.99903067, 0.49316815], 5186 [- 6.27273018, - 0.00060092, 0.00036823, 7.27212927, 0.99816407, 0.99903086, 0.49316824], 5187 [- 6.27273046, - 0.00060080, 0.00036815, 7.27212966, 0.99816443, 0.99903105, 0.49316825], 5188 [- 6.27273074, - 0.00060068, 0.00036808, 7.27213006, 0.99816479, 0.99903124, 0.49316832], 5189 [- 6.27273102, - 0.00060057, 0.00036801, 7.27213045, 0.99816514, 0.99903142, 0.49316835], 5190 [- 6.27273130, - 0.00060045, 0.00036794, 7.27213085, 0.99816550, 0.99903161, 0.49316839], 5191 [- 6.27273158, - 0.00060033, 0.00036787, 7.27213124, 0.99816585, 0.99903180, 0.49316844], 5192 [- 6.27273186, - 0.00060022, 0.00036780, 7.27213164, 0.99816621, 0.99903199, 0.49316848], 5193 [- 6.27273213, - 0.00060010, 0.00036773, 7.27213203, 0.99816657, 0.99903218, 0.49316850], 5194 [- 6.27273241, - 0.00059998, 0.00036765, 7.27213243, 0.99816692, 0.99903236, 0.49316856], 5195 [- 6.27273269, - 0.00059987, 0.00036758, 7.27213282, 0.99816728, 0.99903255, 0.49316861], 5196 [- 6.27273297, - 0.00059975, 0.00036751, 7.27213322, 0.99816763, 0.99903274, 0.49316864], 5197 [- 6.27273325, - 0.00059963, 0.00036744, 7.27213361, 0.99816799, 0.99903293, 0.49316869], 5198 [- 6.27273352, - 0.00059952, 0.00036737, 7.27213401, 0.99816834, 0.99903311, 0.49316872], 5199 [- 6.27273380, - 0.00059940, 0.00036730, 7.27213440, 0.99816870, 0.99903330, 0.49316876], 5200 [- 6.27273408, - 0.00059929, 0.00036723, 7.27213479, 0.99816905, 0.99903349, 0.49316877], 5201 [- 6.27273436, - 0.00059917, 0.00036716, 7.27213519, 0.99816941, 0.99903367, 0.49316887], 5202 [- 6.27273463, - 0.00059905, 0.00036708, 7.27213558, 0.99816976, 0.99903386, 0.49316888], 5203 [- 6.27273491, - 0.00059894, 0.00036701, 7.27213597, 0.99817012, 0.99903405, 0.49316895], 5204 [- 6.27273519, - 0.00059882, 0.00036694, 7.27213637, 0.99817047, 0.99903424, 0.49316897], 5205 [- 6.27273547, - 0.00059871, 0.00036687, 7.27213676, 0.99817082, 0.99903442, 0.49316901], 5206 [- 6.27273574, - 0.00059859, 0.00036680, 7.27213715, 0.99817118, 0.99903461, 0.49316906], 5207 [- 6.27273602, - 0.00059848, 0.00036673, 7.27213754, 0.99817153, 0.99903480, 0.49316911], 5208 [- 6.27273630, - 0.00059836, 0.00036666, 7.27213794, 0.99817189, 0.99903498, 0.49316913], 5209 [- 6.27273657, - 0.00059824, 0.00036659, 7.27213833, 0.99817224, 0.99903517, 0.49316914], 5210 [- 6.27273685, - 0.00059813, 0.00036652, 7.27213872, 0.99817259, 0.99903535, 0.49316924], 5211 [- 6.27273713, - 0.00059801, 0.00036645, 7.27213911, 0.99817295, 0.99903554, 0.49316926], 5212 [- 6.27273740, - 0.00059790, 0.00036637, 7.27213951, 0.99817330, 0.99903573, 0.49316930], 5213 [- 6.27273768, - 0.00059778, 0.00036630, 7.27213990, 0.99817365, 0.99903591, 0.49316938], 5214 [- 6.27273796, - 0.00059767, 0.00036623, 7.27214029, 0.99817400, 0.99903610, 0.49316938], 5215 [- 6.27273823, - 0.00059755, 0.00036616, 7.27214068, 0.99817436, 0.99903629, 0.49316938], 5216 [- 6.27273851, - 0.00059744, 0.00036609, 7.27214107, 0.99817471, 0.99903647, 0.49316946], 5217 [- 6.27273878, - 0.00059732, 0.00036602, 7.27214146, 0.99817506, 0.99903666, 0.49316948], 5218 [- 6.27273906, - 0.00059721, 0.00036595, 7.27214185, 0.99817541, 0.99903684, 0.49316954], 5219 [- 6.27273933, - 0.00059709, 0.00036588, 7.27214224, 0.99817577, 0.99903703, 0.49316961], 5220 [- 6.27273961, - 0.00059698, 0.00036581, 7.27214263, 0.99817612, 0.99903722, 0.49316964], 5221 [- 6.27273989, - 0.00059686, 0.00036574, 7.27214303, 0.99817647, 0.99903740, 0.49316966], 5222 [- 6.27274016, - 0.00059674, 0.00036567, 7.27214342, 0.99817682, 0.99903759, 0.49316973], 5223 [- 6.27274044, - 0.00059663, 0.00036560, 7.27214381, 0.99817717, 0.99903777, 0.49316976], 5224 [- 6.27274071, - 0.00059651, 0.00036553, 7.27214420, 0.99817752, 0.99903796, 0.49316978], 5225 [- 6.27274099, - 0.00059640, 0.00036546, 7.27214459, 0.99817788, 0.99903814, 0.49316985], 5226 [- 6.27274126, - 0.00059629, 0.00036539, 7.27214498, 0.99817823, 0.99903833, 0.49316985], 5227 [- 6.27274154, - 0.00059617, 0.00036532, 7.27214537, 0.99817858, 0.99903851, 0.49316990], 5228 [- 6.27274181, - 0.00059606, 0.00036525, 7.27214575, 0.99817893, 0.99903870, 0.49316996], 5229 [- 6.27274208, - 0.00059594, 0.00036517, 7.27214614, 0.99817928, 0.99903888, 0.49317001], 5230 [- 6.27274236, - 0.00059583, 0.00036510, 7.27214653, 0.99817963, 0.99903907, 0.49317000], 5231 [- 6.27274263, - 0.00059571, 0.00036503, 7.27214692, 0.99817998, 0.99903925, 0.49317004], 5232 [- 6.27274291, - 0.00059560, 0.00036496, 7.27214731, 0.99818033, 0.99903944, 0.49317008], 5233 [- 6.27274318, - 0.00059548, 0.00036489, 7.27214770, 0.99818068, 0.99903962, 0.49317014], 5234 [- 6.27274346, - 0.00059537, 0.00036482, 7.27214809, 0.99818103, 0.99903981, 0.49317022], 5235 [- 6.27274373, - 0.00059525, 0.00036475, 7.27214848, 0.99818138, 0.99903999, 0.49317024], 5236 [- 6.27274400, - 0.00059514, 0.00036468, 7.27214886, 0.99818173, 0.99904018, 0.49317029], 5237 [- 6.27274428, - 0.00059502, 0.00036461, 7.27214925, 0.99818208, 0.99904036, 0.49317032], 5238 [- 6.27274455, - 0.00059491, 0.00036454, 7.27214964, 0.99818243, 0.99904055, 0.49317037], 5239 [- 6.27274482, - 0.00059480, 0.00036447, 7.27215003, 0.99818278, 0.99904073, 0.49317042], 5240 [- 6.27274510, - 0.00059468, 0.00036440, 7.27215042, 0.99818313, 0.99904092, 0.49317048], 5241 [- 6.27274537, - 0.00059457, 0.00036433, 7.27215080, 0.99818348, 0.99904110, 0.49317047], 5242 [- 6.27274564, - 0.00059445, 0.00036426, 7.27215119, 0.99818383, 0.99904128, 0.49317056], 5243 [- 6.27274592, - 0.00059434, 0.00036419, 7.27215158, 0.99818418, 0.99904147, 0.49317055], 5244 [- 6.27274619, - 0.00059422, 0.00036412, 7.27215197, 0.99818452, 0.99904165, 0.49317062], 5245 [- 6.27274646, - 0.00059411, 0.00036405, 7.27215235, 0.99818487, 0.99904184, 0.49317064], 5246 [- 6.27274674, - 0.00059400, 0.00036398, 7.27215274, 0.99818522, 0.99904202, 0.49317066], 5247 [- 6.27274701, - 0.00059388, 0.00036391, 7.27215313, 0.99818557, 0.99904220, 0.49317073], 5248 [- 6.27274728, - 0.00059377, 0.00036384, 7.27215351, 0.99818592, 0.99904239, 0.49317076], 5249 [- 6.27274755, - 0.00059365, 0.00036377, 7.27215390, 0.99818627, 0.99904257, 0.49317082], 5250 [- 6.27274783, - 0.00059354, 0.00036370, 7.27215428, 0.99818661, 0.99904276, 0.49317086], 5251 [- 6.27274810, - 0.00059343, 0.00036363, 7.27215467, 0.99818696, 0.99904294, 0.49317091], 5252 [- 6.27274837, - 0.00059331, 0.00036356, 7.27215506, 0.99818731, 0.99904312, 0.49317096], 5253 [- 6.27274864, - 0.00059320, 0.00036349, 7.27215544, 0.99818766, 0.99904331, 0.49317092], 5254 [- 6.27274891, - 0.00059309, 0.00036342, 7.27215583, 0.99818800, 0.99904349, 0.49317097], 5255 [- 6.27274919, - 0.00059297, 0.00036335, 7.27215621, 0.99818835, 0.99904367, 0.49317108], 5256 [- 6.27274946, - 0.00059286, 0.00036329, 7.27215660, 0.99818870, 0.99904386, 0.49317108], 5257 [- 6.27274973, - 0.00059275, 0.00036322, 7.27215698, 0.99818905, 0.99904404, 0.49317113], 5258 [- 6.27275000, - 0.00059263, 0.00036315, 7.27215737, 0.99818939, 0.99904422, 0.49317119], 5259 [- 6.27275027, - 0.00059252, 0.00036308, 7.27215775, 0.99818974, 0.99904440, 0.49317125], 5260 [- 6.27275054, - 0.00059241, 0.00036301, 7.27215814, 0.99819009, 0.99904459, 0.49317124], 5261 [- 6.27275081, - 0.00059229, 0.00036294, 7.27215852, 0.99819043, 0.99904477, 0.49317130], 5262 [- 6.27275109, - 0.00059218, 0.00036287, 7.27215891, 0.99819078, 0.99904495, 0.49317131], 5263 [- 6.27275136, - 0.00059207, 0.00036280, 7.27215929, 0.99819113, 0.99904514, 0.49317136], 5264 [- 6.27275163, - 0.00059195, 0.00036273, 7.27215968, 0.99819147, 0.99904532, 0.49317137], 5265 [- 6.27275190, - 0.00059184, 0.00036266, 7.27216006, 0.99819182, 0.99904550, 0.49317148], 5266 [- 6.27275217, - 0.00059173, 0.00036259, 7.27216044, 0.99819216, 0.99904568, 0.49317152], 5267 [- 6.27275244, - 0.00059161, 0.00036252, 7.27216083, 0.99819251, 0.99904587, 0.49317157], 5268 [- 6.27275271, - 0.00059150, 0.00036245, 7.27216121, 0.99819285, 0.99904605, 0.49317157], 5269 [- 6.27275298, - 0.00059139, 0.00036238, 7.27216159, 0.99819320, 0.99904623, 0.49317163], 5270 [- 6.27275325, - 0.00059127, 0.00036231, 7.27216198, 0.99819355, 0.99904641, 0.49317168], 5271 [- 6.27275352, - 0.00059116, 0.00036224, 7.27216236, 0.99819389, 0.99904660, 0.49317166], 5272 [- 6.27275379, - 0.00059105, 0.00036217, 7.27216274, 0.99819424, 0.99904678, 0.49317177], 5273 [- 6.27275406, - 0.00059094, 0.00036211, 7.27216313, 0.99819458, 0.99904696, 0.49317179], 5274 [- 6.27275433, - 0.00059082, 0.00036204, 7.27216351, 0.99819493, 0.99904714, 0.49317185], 5275 [- 6.27275460, - 0.00059071, 0.00036197, 7.27216389, 0.99819527, 0.99904732, 0.49317189], 5276 [- 6.27275487, - 0.00059060, 0.00036190, 7.27216427, 0.99819561, 0.99904751, 0.49317188], 5277 [- 6.27275514, - 0.00059048, 0.00036183, 7.27216466, 0.99819596, 0.99904769, 0.49317197], 5278 [- 6.27275541, - 0.00059037, 0.00036176, 7.27216504, 0.99819630, 0.99904787, 0.49317199], 5279 [- 6.27275568, - 0.00059026, 0.00036169, 7.27216542, 0.99819665, 0.99904805, 0.49317206], 5280 [- 6.27275595, - 0.00059015, 0.00036162, 7.27216580, 0.99819699, 0.99904823, 0.49317206], 5281 [- 6.27275622, - 0.00059003, 0.00036155, 7.27216618, 0.99819733, 0.99904841, 0.49317210], 5282 [- 6.27275649, - 0.00058992, 0.00036148, 7.27216656, 0.99819768, 0.99904859, 0.49317215], 5283 [- 6.27275675, - 0.00058981, 0.00036141, 7.27216695, 0.99819802, 0.99904878, 0.49317218], 5284 [- 6.27275702, - 0.00058970, 0.00036135, 7.27216733, 0.99819837, 0.99904896, 0.49317220], 5285 [- 6.27275729, - 0.00058958, 0.00036128, 7.27216771, 0.99819871, 0.99904914, 0.49317224], 5286 [- 6.27275756, - 0.00058947, 0.00036121, 7.27216809, 0.99819905, 0.99904932, 0.49317231], 5287 [- 6.27275783, - 0.00058936, 0.00036114, 7.27216847, 0.99819939, 0.99904950, 0.49317228], 5288 [- 6.27275810, - 0.00058925, 0.00036107, 7.27216885, 0.99819974, 0.99904968, 0.49317238], 5289 [- 6.27275837, - 0.00058914, 0.00036100, 7.27216923, 0.99820008, 0.99904986, 0.49317241], 5290 [- 6.27275863, - 0.00058902, 0.00036093, 7.27216961, 0.99820042, 0.99905004, 0.49317245], 5291 [- 6.27275890, - 0.00058891, 0.00036086, 7.27216999, 0.99820077, 0.99905022, 0.49317253], 5292 [- 6.27275917, - 0.00058880, 0.00036080, 7.27217037, 0.99820111, 0.99905040, 0.49317256], 5293 [- 6.27275944, - 0.00058869, 0.00036073, 7.27217075, 0.99820145, 0.99905059, 0.49317260], 5294 [- 6.27275971, - 0.00058858, 0.00036066, 7.27217113, 0.99820179, 0.99905077, 0.49317263], 5295 [- 6.27275997, - 0.00058846, 0.00036059, 7.27217151, 0.99820213, 0.99905095, 0.49317270], 5296 [- 6.27276024, - 0.00058835, 0.00036052, 7.27217189, 0.99820248, 0.99905113, 0.49317272], 5297 [- 6.27276051, - 0.00058824, 0.00036045, 7.27217227, 0.99820282, 0.99905131, 0.49317275], 5298 [- 6.27276078, - 0.00058813, 0.00036038, 7.27217265, 0.99820316, 0.99905149, 0.49317277], 5299 [- 6.27276104, - 0.00058802, 0.00036032, 7.27217303, 0.99820350, 0.99905167, 0.49317281], 5300 [- 6.27276131, - 0.00058790, 0.00036025, 7.27217341, 0.99820384, 0.99905185, 0.49317287], 5301 [- 6.27276158, - 0.00058779, 0.00036018, 7.27217378, 0.99820418, 0.99905203, 0.49317289], 5302 [- 6.27276184, - 0.00058768, 0.00036011, 7.27217416, 0.99820453, 0.99905221, 0.49317299], 5303 [- 6.27276211, - 0.00058757, 0.00036004, 7.27217454, 0.99820487, 0.99905239, 0.49317296], 5304 [- 6.27276238, - 0.00058746, 0.00035997, 7.27217492, 0.99820521, 0.99905257, 0.49317302], 5305 [- 6.27276265, - 0.00058735, 0.00035991, 7.27217530, 0.99820555, 0.99905275, 0.49317307], 5306 [- 6.27276291, - 0.00058724, 0.00035984, 7.27217568, 0.99820589, 0.99905293, 0.49317310], 5307 [- 6.27276318, - 0.00058712, 0.00035977, 7.27217605, 0.99820623, 0.99905311, 0.49317316], 5308 [- 6.27276344, - 0.00058701, 0.00035970, 7.27217643, 0.99820657, 0.99905329, 0.49317319], 5309 [- 6.27276371, - 0.00058690, 0.00035963, 7.27217681, 0.99820691, 0.99905347, 0.49317321], 5310 [- 6.27276398, - 0.00058679, 0.00035956, 7.27217719, 0.99820725, 0.99905365, 0.49317328], 5311 [- 6.27276424, - 0.00058668, 0.00035950, 7.27217756, 0.99820759, 0.99905383, 0.49317329], 5312 [- 6.27276451, - 0.00058657, 0.00035943, 7.27217794, 0.99820793, 0.99905400, 0.49317335], 5313 [- 6.27276478, - 0.00058646, 0.00035936, 7.27217832, 0.99820827, 0.99905418, 0.49317337], 5314 [- 6.27276504, - 0.00058635, 0.00035929, 7.27217870, 0.99820861, 0.99905436, 0.49317339], 5315 [- 6.27276531, - 0.00058623, 0.00035922, 7.27217907, 0.99820895, 0.99905454, 0.49317346], 5316 [- 6.27276557, - 0.00058612, 0.00035916, 7.27217945, 0.99820929, 0.99905472, 0.49317350], 5317 [- 6.27276584, - 0.00058601, 0.00035909, 7.27217982, 0.99820963, 0.99905490, 0.49317354], 5318 [- 6.27276610, - 0.00058590, 0.00035902, 7.27218020, 0.99820997, 0.99905508, 0.49317358], 5319 [- 6.27276637, - 0.00058579, 0.00035895, 7.27218058, 0.99821030, 0.99905526, 0.49317361], 5320 [- 6.27276663, - 0.00058568, 0.00035888, 7.27218095, 0.99821064, 0.99905544, 0.49317361], 5321 [- 6.27276690, - 0.00058557, 0.00035882, 7.27218133, 0.99821098, 0.99905562, 0.49317370], 5322 [- 6.27276716, - 0.00058546, 0.00035875, 7.27218170, 0.99821132, 0.99905579, 0.49317372], 5323 [- 6.27276743, - 0.00058535, 0.00035868, 7.27218208, 0.99821166, 0.99905597, 0.49317378], 5324 [- 6.27276769, - 0.00058524, 0.00035861, 7.27218246, 0.99821200, 0.99905615, 0.49317376], 5325 [- 6.27276796, - 0.00058513, 0.00035854, 7.27218283, 0.99821233, 0.99905633, 0.49317387], 5326 [- 6.27276822, - 0.00058502, 0.00035848, 7.27218321, 0.99821267, 0.99905651, 0.49317387], 5327 [- 6.27276849, - 0.00058491, 0.00035841, 7.27218358, 0.99821301, 0.99905669, 0.49317394], 5328 [- 6.27276875, - 0.00058480, 0.00035834, 7.27218396, 0.99821335, 0.99905686, 0.49317397], 5329 [- 6.27276902, - 0.00058468, 0.00035827, 7.27218433, 0.99821369, 0.99905704, 0.49317398], 5330 [- 6.27276928, - 0.00058457, 0.00035820, 7.27218471, 0.99821402, 0.99905722, 0.49317402], 5331 [- 6.27276954, - 0.00058446, 0.00035814, 7.27218508, 0.99821436, 0.99905740, 0.49317408], 5332 [- 6.27276981, - 0.00058435, 0.00035807, 7.27218545, 0.99821470, 0.99905758, 0.49317410], 5333 [- 6.27277007, - 0.00058424, 0.00035800, 7.27218583, 0.99821504, 0.99905775, 0.49317417], 5334 [- 6.27277034, - 0.00058413, 0.00035793, 7.27218620, 0.99821537, 0.99905793, 0.49317422], 5335 [- 6.27277060, - 0.00058402, 0.00035787, 7.27218658, 0.99821571, 0.99905811, 0.49317425], 5336 [- 6.27277086, - 0.00058391, 0.00035780, 7.27218695, 0.99821605, 0.99905829, 0.49317429], 5337 [- 6.27277113, - 0.00058380, 0.00035773, 7.27218732, 0.99821638, 0.99905847, 0.49317428], 5338 [- 6.27277139, - 0.00058369, 0.00035766, 7.27218770, 0.99821672, 0.99905864, 0.49317437], 5339 [- 6.27277165, - 0.00058358, 0.00035760, 7.27218807, 0.99821706, 0.99905882, 0.49317446], 5340 [- 6.27277192, - 0.00058347, 0.00035753, 7.27218844, 0.99821739, 0.99905900, 0.49317445], 5341 [- 6.27277218, - 0.00058336, 0.00035746, 7.27218882, 0.99821773, 0.99905918, 0.49317449], 5342 [- 6.27277244, - 0.00058325, 0.00035739, 7.27218919, 0.99821806, 0.99905935, 0.49317453], 5343 [- 6.27277270, - 0.00058314, 0.00035733, 7.27218956, 0.99821840, 0.99905953, 0.49317457], 5344 [- 6.27277297, - 0.00058303, 0.00035726, 7.27218993, 0.99821874, 0.99905971, 0.49317458], 5345 [- 6.27277323, - 0.00058292, 0.00035719, 7.27219031, 0.99821907, 0.99905988, 0.49317467], 5346 [- 6.27277349, - 0.00058281, 0.00035712, 7.27219068, 0.99821941, 0.99906006, 0.49317464], 5347 [- 6.27277376, - 0.00058270, 0.00035706, 7.27219105, 0.99821974, 0.99906024, 0.49317472], 5348 [- 6.27277402, - 0.00058259, 0.00035699, 7.27219142, 0.99822008, 0.99906042, 0.49317476], 5349 [- 6.27277428, - 0.00058248, 0.00035692, 7.27219180, 0.99822041, 0.99906059, 0.49317478], 5350 [- 6.27277454, - 0.00058237, 0.00035686, 7.27219217, 0.99822075, 0.99906077, 0.49317481], 5351 [- 6.27277480, - 0.00058227, 0.00035679, 7.27219254, 0.99822108, 0.99906095, 0.49317486], 5352 [- 6.27277507, - 0.00058216, 0.00035672, 7.27219291, 0.99822142, 0.99906112, 0.49317492], 5353 [- 6.27277533, - 0.00058205, 0.00035665, 7.27219328, 0.99822175, 0.99906130, 0.49317497], 5354 [- 6.27277559, - 0.00058194, 0.00035659, 7.27219365, 0.99822209, 0.99906148, 0.49317500], 5355 [- 6.27277585, - 0.00058183, 0.00035652, 7.27219402, 0.99822242, 0.99906165, 0.49317504], 5356 [- 6.27277611, - 0.00058172, 0.00035645, 7.27219440, 0.99822275, 0.99906183, 0.49317502], 5357 [- 6.27277637, - 0.00058161, 0.00035639, 7.27219477, 0.99822309, 0.99906200, 0.49317510], 5358 [- 6.27277664, - 0.00058150, 0.00035632, 7.27219514, 0.99822342, 0.99906218, 0.49317515], 5359 [- 6.27277690, - 0.00058139, 0.00035625, 7.27219551, 0.99822376, 0.99906236, 0.49317515], 5360 [- 6.27277716, - 0.00058128, 0.00035619, 7.27219588, 0.99822409, 0.99906253, 0.49317527], 5361 [- 6.27277742, - 0.00058117, 0.00035612, 7.27219625, 0.99822442, 0.99906271, 0.49317521], 5362 [- 6.27277768, - 0.00058106, 0.00035605, 7.27219662, 0.99822476, 0.99906289, 0.49317533], 5363 [- 6.27277794, - 0.00058095, 0.00035598, 7.27219699, 0.99822509, 0.99906306, 0.49317536], 5364 [- 6.27277820, - 0.00058084, 0.00035592, 7.27219736, 0.99822542, 0.99906324, 0.49317532], 5365 [- 6.27277846, - 0.00058074, 0.00035585, 7.27219773, 0.99822576, 0.99906341, 0.49317542], 5366 [- 6.27277872, - 0.00058063, 0.00035578, 7.27219810, 0.99822609, 0.99906359, 0.49317544], 5367 [- 6.27277898, - 0.00058052, 0.00035572, 7.27219847, 0.99822642, 0.99906376, 0.49317549], 5368 [- 6.27277924, - 0.00058041, 0.00035565, 7.27219884, 0.99822675, 0.99906394, 0.49317552], 5369 [- 6.27277950, - 0.00058030, 0.00035558, 7.27219920, 0.99822709, 0.99906412, 0.49317558], 5370 [- 6.27277977, - 0.00058019, 0.00035552, 7.27219957, 0.99822742, 0.99906429, 0.49317562], 5371 [- 6.27278003, - 0.00058008, 0.00035545, 7.27219994, 0.99822775, 0.99906447, 0.49317566], 5372 [- 6.27278029, - 0.00057997, 0.00035538, 7.27220031, 0.99822808, 0.99906464, 0.49317568], 5373 [- 6.27278055, - 0.00057987, 0.00035532, 7.27220068, 0.99822842, 0.99906482, 0.49317573], 5374 [- 6.27278080, - 0.00057976, 0.00035525, 7.27220105, 0.99822875, 0.99906499, 0.49317574], 5375 [- 6.27278106, - 0.00057965, 0.00035518, 7.27220142, 0.99822908, 0.99906517, 0.49317581], 5376 [- 6.27278132, - 0.00057954, 0.00035512, 7.27220178, 0.99822941, 0.99906534, 0.49317584], 5377 [- 6.27278158, - 0.00057943, 0.00035505, 7.27220215, 0.99822974, 0.99906552, 0.49317591], 5378 [- 6.27278184, - 0.00057932, 0.00035498, 7.27220252, 0.99823008, 0.99906569, 0.49317591], 5379 [- 6.27278210, - 0.00057921, 0.00035492, 7.27220289, 0.99823041, 0.99906587, 0.49317595], 5380 [- 6.27278236, - 0.00057911, 0.00035485, 7.27220326, 0.99823074, 0.99906604, 0.49317597], 5381 [- 6.27278262, - 0.00057900, 0.00035479, 7.27220362, 0.99823107, 0.99906622, 0.49317601], 5382 [- 6.27278288, - 0.00057889, 0.00035472, 7.27220399, 0.99823140, 0.99906639, 0.49317609], 5383 [- 6.27278314, - 0.00057878, 0.00035465, 7.27220436, 0.99823173, 0.99906657, 0.49317610], 5384 [- 6.27278340, - 0.00057867, 0.00035459, 7.27220472, 0.99823206, 0.99906674, 0.49317615], 5385 [- 6.27278366, - 0.00057857, 0.00035452, 7.27220509, 0.99823239, 0.99906691, 0.49317621], 5386 [- 6.27278392, - 0.00057846, 0.00035445, 7.27220546, 0.99823272, 0.99906709, 0.49317622], 5387 [- 6.27278417, - 0.00057835, 0.00035439, 7.27220582, 0.99823305, 0.99906726, 0.49317632], 5388 [- 6.27278443, - 0.00057824, 0.00035432, 7.27220619, 0.99823338, 0.99906744, 0.49317629], 5389 [- 6.27278469, - 0.00057813, 0.00035425, 7.27220656, 0.99823371, 0.99906761, 0.49317636], 5390 [- 6.27278495, - 0.00057802, 0.00035419, 7.27220692, 0.99823404, 0.99906779, 0.49317638], 5391 [- 6.27278521, - 0.00057792, 0.00035412, 7.27220729, 0.99823437, 0.99906796, 0.49317641], 5392 [- 6.27278547, - 0.00057781, 0.00035406, 7.27220766, 0.99823470, 0.99906813, 0.49317644], 5393 [- 6.27278572, - 0.00057770, 0.00035399, 7.27220802, 0.99823503, 0.99906831, 0.49317646], 5394 [- 6.27278598, - 0.00057759, 0.00035392, 7.27220839, 0.99823536, 0.99906848, 0.49317651], 5395 [- 6.27278624, - 0.00057749, 0.00035386, 7.27220875, 0.99823569, 0.99906866, 0.49317654], 5396 [- 6.27278650, - 0.00057738, 0.00035379, 7.27220912, 0.99823602, 0.99906883, 0.49317660], 5397 [- 6.27278675, - 0.00057727, 0.00035373, 7.27220948, 0.99823635, 0.99906900, 0.49317666], 5398 [- 6.27278701, - 0.00057716, 0.00035366, 7.27220985, 0.99823668, 0.99906918, 0.49317668], 5399 [- 6.27278727, - 0.00057706, 0.00035359, 7.27221021, 0.99823701, 0.99906935, 0.49317676], 5400 [- 6.27278753, - 0.00057695, 0.00035353, 7.27221058, 0.99823734, 0.99906952, 0.49317676], 5401 [- 6.27278778, - 0.00057684, 0.00035346, 7.27221094, 0.99823766, 0.99906970, 0.49317678], 5402 [- 6.27278804, - 0.00057673, 0.00035340, 7.27221131, 0.99823799, 0.99906987, 0.49317683], 5403 [- 6.27278830, - 0.00057663, 0.00035333, 7.27221167, 0.99823832, 0.99907004, 0.49317687], 5404 [- 6.27278855, - 0.00057652, 0.00035326, 7.27221204, 0.99823865, 0.99907022, 0.49317691], 5405 [- 6.27278881, - 0.00057641, 0.00035320, 7.27221240, 0.99823898, 0.99907039, 0.49317697], 5406 [- 6.27278907, - 0.00057630, 0.00035313, 7.27221277, 0.99823931, 0.99907056, 0.49317699], 5407 [- 6.27278933, - 0.00057620, 0.00035307, 7.27221313, 0.99823963, 0.99907074, 0.49317702], 5408 [- 6.27278958, - 0.00057609, 0.00035300, 7.27221349, 0.99823996, 0.99907091, 0.49317708], 5409 [- 6.27278984, - 0.00057598, 0.00035294, 7.27221386, 0.99824029, 0.99907108, 0.49317710], 5410 [- 6.27279009, - 0.00057587, 0.00035287, 7.27221422, 0.99824062, 0.99907126, 0.49317717], 5411 [- 6.27279035, - 0.00057577, 0.00035280, 7.27221458, 0.99824094, 0.99907143, 0.49317720], 5412 [- 6.27279061, - 0.00057566, 0.00035274, 7.27221495, 0.99824127, 0.99907160, 0.49317720], 5413 [- 6.27279086, - 0.00057555, 0.00035267, 7.27221531, 0.99824160, 0.99907177, 0.49317727], 5414 [- 6.27279112, - 0.00057545, 0.00035261, 7.27221567, 0.99824193, 0.99907195, 0.49317735], 5415 [- 6.27279137, - 0.00057534, 0.00035254, 7.27221604, 0.99824225, 0.99907212, 0.49317732], 5416 [- 6.27279163, - 0.00057523, 0.00035248, 7.27221640, 0.99824258, 0.99907229, 0.49317739], 5417 [- 6.27279189, - 0.00057513, 0.00035241, 7.27221676, 0.99824291, 0.99907246, 0.49317738], 5418 [- 6.27279214, - 0.00057502, 0.00035235, 7.27221712, 0.99824323, 0.99907264, 0.49317745], 5419 [- 6.27279240, - 0.00057491, 0.00035228, 7.27221749, 0.99824356, 0.99907281, 0.49317748], 5420 [- 6.27279265, - 0.00057480, 0.00035221, 7.27221785, 0.99824389, 0.99907298, 0.49317752], 5421 [- 6.27279291, - 0.00057470, 0.00035215, 7.27221821, 0.99824421, 0.99907315, 0.49317757], 5422 [- 6.27279316, - 0.00057459, 0.00035208, 7.27221857, 0.99824454, 0.99907332, 0.49317760], 5423 [- 6.27279342, - 0.00057448, 0.00035202, 7.27221893, 0.99824486, 0.99907350, 0.49317764], 5424 [- 6.27279367, - 0.00057438, 0.00035195, 7.27221930, 0.99824519, 0.99907367, 0.49317766], 5425 [- 6.27279393, - 0.00057427, 0.00035189, 7.27221966, 0.99824551, 0.99907384, 0.49317770], 5426 [- 6.27279418, - 0.00057417, 0.00035182, 7.27222002, 0.99824584, 0.99907401, 0.49317777], 5427 [- 6.27279444, - 0.00057406, 0.00035176, 7.27222038, 0.99824617, 0.99907418, 0.49317774], 5428 [- 6.27279469, - 0.00057395, 0.00035169, 7.27222074, 0.99824649, 0.99907436, 0.49317781], 5429 [- 6.27279495, - 0.00057385, 0.00035163, 7.27222110, 0.99824682, 0.99907453, 0.49317792], 5430 [- 6.27279520, - 0.00057374, 0.00035156, 7.27222146, 0.99824714, 0.99907470, 0.49317788], 5431 [- 6.27279546, - 0.00057363, 0.00035150, 7.27222182, 0.99824747, 0.99907487, 0.49317793], 5432 [- 6.27279571, - 0.00057353, 0.00035143, 7.27222218, 0.99824779, 0.99907504, 0.49317800], 5433 [- 6.27279596, - 0.00057342, 0.00035137, 7.27222254, 0.99824812, 0.99907521, 0.49317798], 5434 [- 6.27279622, - 0.00057331, 0.00035130, 7.27222290, 0.99824844, 0.99907538, 0.49317810], 5435 [- 6.27279647, - 0.00057321, 0.00035124, 7.27222326, 0.99824877, 0.99907556, 0.49317811], 5436 [- 6.27279673, - 0.00057310, 0.00035117, 7.27222362, 0.99824909, 0.99907573, 0.49317808], 5437 [- 6.27279698, - 0.00057300, 0.00035111, 7.27222398, 0.99824941, 0.99907590, 0.49317818], 5438 [- 6.27279723, - 0.00057289, 0.00035104, 7.27222434, 0.99824974, 0.99907607, 0.49317820], 5439 [- 6.27279749, - 0.00057278, 0.00035098, 7.27222470, 0.99825006, 0.99907624, 0.49317824], 5440 [- 6.27279774, - 0.00057268, 0.00035091, 7.27222506, 0.99825039, 0.99907641, 0.49317828], 5441 [- 6.27279799, - 0.00057257, 0.00035085, 7.27222542, 0.99825071, 0.99907658, 0.49317828], 5442 [- 6.27279825, - 0.00057247, 0.00035078, 7.27222578, 0.99825103, 0.99907675, 0.49317836], 5443 [- 6.27279850, - 0.00057236, 0.00035072, 7.27222614, 0.99825136, 0.99907692, 0.49317841], 5444 [- 6.27279875, - 0.00057225, 0.00035065, 7.27222650, 0.99825168, 0.99907709, 0.49317844], 5445 [- 6.27279901, - 0.00057215, 0.00035059, 7.27222686, 0.99825200, 0.99907727, 0.49317846], 5446 [- 6.27279926, - 0.00057204, 0.00035052, 7.27222722, 0.99825233, 0.99907744, 0.49317853], 5447 [- 6.27279951, - 0.00057194, 0.00035046, 7.27222758, 0.99825265, 0.99907761, 0.49317855], 5448 [- 6.27279977, - 0.00057183, 0.00035039, 7.27222793, 0.99825297, 0.99907778, 0.49317862], 5449 [- 6.27280002, - 0.00057173, 0.00035033, 7.27222829, 0.99825330, 0.99907795, 0.49317862], 5450 [- 6.27280027, - 0.00057162, 0.00035026, 7.27222865, 0.99825362, 0.99907812, 0.49317865], 5451 [- 6.27280052, - 0.00057152, 0.00035020, 7.27222901, 0.99825394, 0.99907829, 0.49317872], 5452 [- 6.27280078, - 0.00057141, 0.00035013, 7.27222937, 0.99825426, 0.99907846, 0.49317874], 5453 [- 6.27280103, - 0.00057130, 0.00035007, 7.27222972, 0.99825459, 0.99907863, 0.49317875], 5454 [- 6.27280128, - 0.00057120, 0.00035000, 7.27223008, 0.99825491, 0.99907880, 0.49317879], 5455 [- 6.27280153, - 0.00057109, 0.00034994, 7.27223044, 0.99825523, 0.99907897, 0.49317885], 5456 [- 6.27280178, - 0.00057099, 0.00034987, 7.27223080, 0.99825555, 0.99907914, 0.49317886], 5457 [- 6.27280204, - 0.00057088, 0.00034981, 7.27223115, 0.99825587, 0.99907931, 0.49317891], 5458 [- 6.27280229, - 0.00057078, 0.00034974, 7.27223151, 0.99825620, 0.99907948, 0.49317896], 5459 [- 6.27280254, - 0.00057067, 0.00034968, 7.27223187, 0.99825652, 0.99907965, 0.49317901], 5460 [- 6.27280279, - 0.00057057, 0.00034962, 7.27223222, 0.99825684, 0.99907982, 0.49317904], 5461 [- 6.27280304, - 0.00057046, 0.00034955, 7.27223258, 0.99825716, 0.99907999, 0.49317904], 5462 [- 6.27280329, - 0.00057036, 0.00034949, 7.27223294, 0.99825748, 0.99908016, 0.49317910], 5463 [- 6.27280355, - 0.00057025, 0.00034942, 7.27223329, 0.99825780, 0.99908033, 0.49317919], 5464 [- 6.27280380, - 0.00057015, 0.00034936, 7.27223365, 0.99825812, 0.99908050, 0.49317919], 5465 [- 6.27280405, - 0.00057004, 0.00034929, 7.27223401, 0.99825844, 0.99908066, 0.49317919], 5466 [- 6.27280430, - 0.00056994, 0.00034923, 7.27223436, 0.99825877, 0.99908083, 0.49317929], 5467 [- 6.27280455, - 0.00056983, 0.00034916, 7.27223472, 0.99825909, 0.99908100, 0.49317932], 5468 [- 6.27280480, - 0.00056973, 0.00034910, 7.27223507, 0.99825941, 0.99908117, 0.49317933], 5469 [- 6.27280505, - 0.00056962, 0.00034904, 7.27223543, 0.99825973, 0.99908134, 0.49317936], 5470 [- 6.27280530, - 0.00056952, 0.00034897, 7.27223579, 0.99826005, 0.99908151, 0.49317942], 5471 [- 6.27280555, - 0.00056941, 0.00034891, 7.27223614, 0.99826037, 0.99908168, 0.49317941], 5472 [- 6.27280580, - 0.00056931, 0.00034884, 7.27223650, 0.99826069, 0.99908185, 0.49317944], 5473 [- 6.27280606, - 0.00056920, 0.00034878, 7.27223685, 0.99826101, 0.99908202, 0.49317951], 5474 [- 6.27280631, - 0.00056910, 0.00034872, 7.27223721, 0.99826133, 0.99908219, 0.49317958], 5475 [- 6.27280656, - 0.00056899, 0.00034865, 7.27223756, 0.99826165, 0.99908235, 0.49317962], 5476 [- 6.27280681, - 0.00056889, 0.00034859, 7.27223792, 0.99826197, 0.99908252, 0.49317961], 5477 [- 6.27280706, - 0.00056878, 0.00034852, 7.27223827, 0.99826229, 0.99908269, 0.49317963], 5478 [- 6.27280731, - 0.00056868, 0.00034846, 7.27223863, 0.99826261, 0.99908286, 0.49317970], 5479 [- 6.27280756, - 0.00056858, 0.00034839, 7.27223898, 0.99826293, 0.99908303, 0.49317974], 5480 [- 6.27280781, - 0.00056847, 0.00034833, 7.27223933, 0.99826324, 0.99908320, 0.49317978], 5481 [- 6.27280806, - 0.00056837, 0.00034827, 7.27223969, 0.99826356, 0.99908337, 0.49317977], 5482 [- 6.27280830, - 0.00056826, 0.00034820, 7.27224004, 0.99826388, 0.99908353, 0.49317984], 5483 [- 6.27280855, - 0.00056816, 0.00034814, 7.27224040, 0.99826420, 0.99908370, 0.49317991], 5484 [- 6.27280880, - 0.00056805, 0.00034807, 7.27224075, 0.99826452, 0.99908387, 0.49317993], 5485 [- 6.27280905, - 0.00056795, 0.00034801, 7.27224110, 0.99826484, 0.99908404, 0.49317997], 5486 [- 6.27280930, - 0.00056785, 0.00034795, 7.27224146, 0.99826516, 0.99908421, 0.49317999], 5487 [- 6.27280955, - 0.00056774, 0.00034788, 7.27224181, 0.99826547, 0.99908438, 0.49318004], 5488 [- 6.27280980, - 0.00056764, 0.00034782, 7.27224216, 0.99826579, 0.99908454, 0.49318009], 5489 [- 6.27281005, - 0.00056753, 0.00034776, 7.27224252, 0.99826611, 0.99908471, 0.49318013], 5490 [- 6.27281030, - 0.00056743, 0.00034769, 7.27224287, 0.99826643, 0.99908488, 0.49318014], 5491 [- 6.27281055, - 0.00056733, 0.00034763, 7.27224322, 0.99826675, 0.99908505, 0.49318020], 5492 [- 6.27281080, - 0.00056722, 0.00034756, 7.27224357, 0.99826706, 0.99908521, 0.49318023], 5493 [- 6.27281104, - 0.00056712, 0.00034750, 7.27224393, 0.99826738, 0.99908538, 0.49318021], 5494 [- 6.27281129, - 0.00056701, 0.00034744, 7.27224428, 0.99826770, 0.99908555, 0.49318033], 5495 [- 6.27281154, - 0.00056691, 0.00034737, 7.27224463, 0.99826802, 0.99908572, 0.49318033], 5496 [- 6.27281179, - 0.00056681, 0.00034731, 7.27224498, 0.99826833, 0.99908588, 0.49318036], 5497 [- 6.27281204, - 0.00056670, 0.00034725, 7.27224534, 0.99826865, 0.99908605, 0.49318042], 5498 [- 6.27281229, - 0.00056660, 0.00034718, 7.27224569, 0.99826897, 0.99908622, 0.49318046], 5499 [- 6.27281253, - 0.00056649, 0.00034712, 7.27224604, 0.99826929, 0.99908639, 0.49318048], 5500 [- 6.27281278, - 0.00056639, 0.00034706, 7.27224639, 0.99826960, 0.99908655, 0.49318053], 5501 [- 6.27281303, - 0.00056629, 0.00034699, 7.27224674, 0.99826992, 0.99908672, 0.49318056], 5502 [- 6.27281328, - 0.00056618, 0.00034693, 7.27224709, 0.99827024, 0.99908689, 0.49318059], 5503 [- 6.27281353, - 0.00056608, 0.00034686, 7.27224745, 0.99827055, 0.99908705, 0.49318066], 5504 [- 6.27281377, - 0.00056598, 0.00034680, 7.27224780, 0.99827087, 0.99908722, 0.49318067], 5505 [- 6.27281402, - 0.00056587, 0.00034674, 7.27224815, 0.99827119, 0.99908739, 0.49318073], 5506 [- 6.27281427, - 0.00056577, 0.00034667, 7.27224850, 0.99827150, 0.99908756, 0.49318072], 5507 [- 6.27281452, - 0.00056567, 0.00034661, 7.27224885, 0.99827182, 0.99908772, 0.49318077], 5508 [- 6.27281476, - 0.00056556, 0.00034655, 7.27224920, 0.99827213, 0.99908789, 0.49318079], 5509 [- 6.27281501, - 0.00056546, 0.00034648, 7.27224955, 0.99827245, 0.99908806, 0.49318086], 5510 [- 6.27281526, - 0.00056536, 0.00034642, 7.27224990, 0.99827276, 0.99908822, 0.49318086], 5511 [- 6.27281550, - 0.00056525, 0.00034636, 7.27225025, 0.99827308, 0.99908839, 0.49318091], 5512 [- 6.27281575, - 0.00056515, 0.00034629, 7.27225060, 0.99827340, 0.99908856, 0.49318093], 5513 [- 6.27281600, - 0.00056505, 0.00034623, 7.27225095, 0.99827371, 0.99908872, 0.49318097], 5514 [- 6.27281624, - 0.00056494, 0.00034617, 7.27225130, 0.99827403, 0.99908889, 0.49318102], 5515 [- 6.27281649, - 0.00056484, 0.00034610, 7.27225165, 0.99827434, 0.99908905, 0.49318109], 5516 [- 6.27281674, - 0.00056474, 0.00034604, 7.27225200, 0.99827466, 0.99908922, 0.49318111], 5517 [- 6.27281698, - 0.00056463, 0.00034598, 7.27225235, 0.99827497, 0.99908939, 0.49318114], 5518 [- 6.27281723, - 0.00056453, 0.00034592, 7.27225270, 0.99827529, 0.99908955, 0.49318118], 5519 [- 6.27281748, - 0.00056443, 0.00034585, 7.27225305, 0.99827560, 0.99908972, 0.49318122], 5520 [- 6.27281772, - 0.00056433, 0.00034579, 7.27225340, 0.99827591, 0.99908988, 0.49318124], 5521 [- 6.27281797, - 0.00056422, 0.00034573, 7.27225375, 0.99827623, 0.99909005, 0.49318128], 5522 [- 6.27281822, - 0.00056412, 0.00034566, 7.27225409, 0.99827654, 0.99909022, 0.49318131], 5523 [- 6.27281846, - 0.00056402, 0.00034560, 7.27225444, 0.99827686, 0.99909038, 0.49318135], 5524 [- 6.27281871, - 0.00056391, 0.00034554, 7.27225479, 0.99827717, 0.99909055, 0.49318140], 5525 [- 6.27281895, - 0.00056381, 0.00034547, 7.27225514, 0.99827749, 0.99909071, 0.49318139], 5526 [- 6.27281920, - 0.00056371, 0.00034541, 7.27225549, 0.99827780, 0.99909088, 0.49318148], 5527 [- 6.27281944, - 0.00056361, 0.00034535, 7.27225584, 0.99827811, 0.99909105, 0.49318152], 5528 [- 6.27281969, - 0.00056350, 0.00034528, 7.27225619, 0.99827843, 0.99909121, 0.49318156], 5529 [- 6.27281993, - 0.00056340, 0.00034522, 7.27225653, 0.99827874, 0.99909138, 0.49318159], 5530 [- 6.27282018, - 0.00056330, 0.00034516, 7.27225688, 0.99827905, 0.99909154, 0.49318163], 5531 [- 6.27282043, - 0.00056320, 0.00034510, 7.27225723, 0.99827937, 0.99909171, 0.49318166], 5532 [- 6.27282067, - 0.00056309, 0.00034503, 7.27225758, 0.99827968, 0.99909187, 0.49318168], 5533 [- 6.27282092, - 0.00056299, 0.00034497, 7.27225792, 0.99827999, 0.99909204, 0.49318179], 5534 [- 6.27282116, - 0.00056289, 0.00034491, 7.27225827, 0.99828031, 0.99909220, 0.49318171], 5535 [- 6.27282141, - 0.00056279, 0.00034485, 7.27225862, 0.99828062, 0.99909237, 0.49318177], 5536 [- 6.27282165, - 0.00056268, 0.00034478, 7.27225897, 0.99828093, 0.99909253, 0.49318188], 5537 [- 6.27282189, - 0.00056258, 0.00034472, 7.27225931, 0.99828124, 0.99909270, 0.49318185], 5538 [- 6.27282214, - 0.00056248, 0.00034466, 7.27225966, 0.99828156, 0.99909286, 0.49318190], 5539 [- 6.27282238, - 0.00056238, 0.00034459, 7.27226001, 0.99828187, 0.99909303, 0.49318196], 5540 [- 6.27282263, - 0.00056228, 0.00034453, 7.27226035, 0.99828218, 0.99909319, 0.49318197], 5541 [- 6.27282287, - 0.00056217, 0.00034447, 7.27226070, 0.99828249, 0.99909336, 0.49318203], 5542 [- 6.27282312, - 0.00056207, 0.00034441, 7.27226104, 0.99828281, 0.99909352, 0.49318204], 5543 [- 6.27282336, - 0.00056197, 0.00034434, 7.27226139, 0.99828312, 0.99909369, 0.49318210], 5544 [- 6.27282360, - 0.00056187, 0.00034428, 7.27226174, 0.99828343, 0.99909385, 0.49318213], 5545 [- 6.27282385, - 0.00056177, 0.00034422, 7.27226208, 0.99828374, 0.99909402, 0.49318217], 5546 [- 6.27282409, - 0.00056166, 0.00034416, 7.27226243, 0.99828405, 0.99909418, 0.49318219], 5547 [- 6.27282434, - 0.00056156, 0.00034409, 7.27226277, 0.99828436, 0.99909434, 0.49318217], 5548 [- 6.27282458, - 0.00056146, 0.00034403, 7.27226312, 0.99828467, 0.99909451, 0.49318229], 5549 [- 6.27282482, - 0.00056136, 0.00034397, 7.27226347, 0.99828499, 0.99909467, 0.49318235], 5550 [- 6.27282507, - 0.00056126, 0.00034391, 7.27226381, 0.99828530, 0.99909484, 0.49318234], 5551 [- 6.27282531, - 0.00056115, 0.00034384, 7.27226416, 0.99828561, 0.99909500, 0.49318238], 5552 [- 6.27282555, - 0.00056105, 0.00034378, 7.27226450, 0.99828592, 0.99909516, 0.49318244], 5553 [- 6.27282580, - 0.00056095, 0.00034372, 7.27226485, 0.99828623, 0.99909533, 0.49318245], 5554 [- 6.27282604, - 0.00056085, 0.00034366, 7.27226519, 0.99828654, 0.99909549, 0.49318251], 5555 [- 6.27282628, - 0.00056075, 0.00034360, 7.27226554, 0.99828685, 0.99909566, 0.49318249], 5556 [- 6.27282653, - 0.00056065, 0.00034353, 7.27226588, 0.99828716, 0.99909582, 0.49318260], 5557 [- 6.27282677, - 0.00056055, 0.00034347, 7.27226622, 0.99828747, 0.99909598, 0.49318256], 5558 [- 6.27282701, - 0.00056044, 0.00034341, 7.27226657, 0.99828778, 0.99909615, 0.49318268], 5559 [- 6.27282725, - 0.00056034, 0.00034335, 7.27226691, 0.99828809, 0.99909631, 0.49318269], 5560 [- 6.27282750, - 0.00056024, 0.00034328, 7.27226726, 0.99828840, 0.99909648, 0.49318273], 5561 [- 6.27282774, - 0.00056014, 0.00034322, 7.27226760, 0.99828871, 0.99909664, 0.49318276], 5562 [- 6.27282798, - 0.00056004, 0.00034316, 7.27226794, 0.99828902, 0.99909680, 0.49318278], 5563 [- 6.27282822, - 0.00055994, 0.00034310, 7.27226829, 0.99828933, 0.99909697, 0.49318281], 5564 [- 6.27282847, - 0.00055984, 0.00034304, 7.27226863, 0.99828964, 0.99909713, 0.49318285], 5565 [- 6.27282871, - 0.00055973, 0.00034297, 7.27226898, 0.99828995, 0.99909729, 0.49318289], 5566 [- 6.27282895, - 0.00055963, 0.00034291, 7.27226932, 0.99829026, 0.99909746, 0.49318294], 5567 [- 6.27282919, - 0.00055953, 0.00034285, 7.27226966, 0.99829057, 0.99909762, 0.49318296], 5568 [- 6.27282944, - 0.00055943, 0.00034279, 7.27227000, 0.99829088, 0.99909778, 0.49318295], 5569 [- 6.27282968, - 0.00055933, 0.00034273, 7.27227035, 0.99829119, 0.99909794, 0.49318302], 5570 [- 6.27282992, - 0.00055923, 0.00034266, 7.27227069, 0.99829150, 0.99909811, 0.49318310], 5571 [- 6.27283016, - 0.00055913, 0.00034260, 7.27227103, 0.99829180, 0.99909827, 0.49318311], 5572 [- 6.27283040, - 0.00055903, 0.00034254, 7.27227138, 0.99829211, 0.99909843, 0.49318314], 5573 [- 6.27283064, - 0.00055893, 0.00034248, 7.27227172, 0.99829242, 0.99909860, 0.49318318], 5574 [- 6.27283089, - 0.00055882, 0.00034242, 7.27227206, 0.99829273, 0.99909876, 0.49318320], 5575 [- 6.27283113, - 0.00055872, 0.00034235, 7.27227240, 0.99829304, 0.99909892, 0.49318320], 5576 [- 6.27283137, - 0.00055862, 0.00034229, 7.27227274, 0.99829335, 0.99909908, 0.49318327], 5577 [- 6.27283161, - 0.00055852, 0.00034223, 7.27227309, 0.99829365, 0.99909925, 0.49318333], 5578 [- 6.27283185, - 0.00055842, 0.00034217, 7.27227343, 0.99829396, 0.99909941, 0.49318333], 5579 [- 6.27283209, - 0.00055832, 0.00034211, 7.27227377, 0.99829427, 0.99909957, 0.49318336], 5580 [- 6.27283233, - 0.00055822, 0.00034204, 7.27227411, 0.99829458, 0.99909973, 0.49318343], 5581 [- 6.27283257, - 0.00055812, 0.00034198, 7.27227445, 0.99829489, 0.99909990, 0.49318344], 5582 [- 6.27283281, - 0.00055802, 0.00034192, 7.27227479, 0.99829519, 0.99910006, 0.49318351], 5583 [- 6.27283305, - 0.00055792, 0.00034186, 7.27227514, 0.99829550, 0.99910022, 0.49318353], 5584 [- 6.27283329, - 0.00055782, 0.00034180, 7.27227548, 0.99829581, 0.99910038, 0.49318358], 5585 [- 6.27283353, - 0.00055772, 0.00034174, 7.27227582, 0.99829611, 0.99910055, 0.49318362], 5586 [- 6.27283378, - 0.00055762, 0.00034168, 7.27227616, 0.99829642, 0.99910071, 0.49318360], 5587 [- 6.27283402, - 0.00055752, 0.00034161, 7.27227650, 0.99829673, 0.99910087, 0.49318367], 5588 [- 6.27283426, - 0.00055742, 0.00034155, 7.27227684, 0.99829704, 0.99910103, 0.49318371], 5589 [- 6.27283450, - 0.00055732, 0.00034149, 7.27227718, 0.99829734, 0.99910119, 0.49318374], 5590 [- 6.27283474, - 0.00055722, 0.00034143, 7.27227752, 0.99829765, 0.99910136, 0.49318380], 5591 [- 6.27283498, - 0.00055712, 0.00034137, 7.27227786, 0.99829796, 0.99910152, 0.49318376], 5592 [- 6.27283522, - 0.00055701, 0.00034131, 7.27227820, 0.99829826, 0.99910168, 0.49318386], 5593 [- 6.27283546, - 0.00055691, 0.00034124, 7.27227854, 0.99829857, 0.99910184, 0.49318389], 5594 [- 6.27283570, - 0.00055681, 0.00034118, 7.27227888, 0.99829887, 0.99910200, 0.49318390], 5595 [- 6.27283593, - 0.00055671, 0.00034112, 7.27227922, 0.99829918, 0.99910216, 0.49318396], 5596 [- 6.27283617, - 0.00055661, 0.00034106, 7.27227956, 0.99829949, 0.99910233, 0.49318401], 5597 [- 6.27283641, - 0.00055651, 0.00034100, 7.27227990, 0.99829979, 0.99910249, 0.49318410], 5598 [- 6.27283665, - 0.00055641, 0.00034094, 7.27228024, 0.99830010, 0.99910265, 0.49318407], 5599 [- 6.27283689, - 0.00055631, 0.00034088, 7.27228058, 0.99830040, 0.99910281, 0.49318407], 5600 [- 6.27283713, - 0.00055621, 0.00034081, 7.27228092, 0.99830071, 0.99910297, 0.49318414], 5601 [- 6.27283737, - 0.00055611, 0.00034075, 7.27228126, 0.99830101, 0.99910313, 0.49318415], 5602 [- 6.27283761, - 0.00055601, 0.00034069, 7.27228159, 0.99830132, 0.99910329, 0.49318423], 5603 [- 6.27283785, - 0.00055591, 0.00034063, 7.27228193, 0.99830163, 0.99910345, 0.49318423], 5604 [- 6.27283809, - 0.00055581, 0.00034057, 7.27228227, 0.99830193, 0.99910362, 0.49318427], 5605 [- 6.27283833, - 0.00055571, 0.00034051, 7.27228261, 0.99830224, 0.99910378, 0.49318428], 5606 [- 6.27283856, - 0.00055562, 0.00034045, 7.27228295, 0.99830254, 0.99910394, 0.49318433], 5607 [- 6.27283880, - 0.00055552, 0.00034039, 7.27228329, 0.99830285, 0.99910410, 0.49318443], 5608 [- 6.27283904, - 0.00055542, 0.00034033, 7.27228363, 0.99830315, 0.99910426, 0.49318443], 5609 [- 6.27283928, - 0.00055532, 0.00034026, 7.27228396, 0.99830345, 0.99910442, 0.49318449], 5610 [- 6.27283952, - 0.00055522, 0.00034020, 7.27228430, 0.99830376, 0.99910458, 0.49318449], 5611 [- 6.27283976, - 0.00055512, 0.00034014, 7.27228464, 0.99830406, 0.99910474, 0.49318454], 5612 [- 6.27283999, - 0.00055502, 0.00034008, 7.27228498, 0.99830437, 0.99910490, 0.49318457], 5613 [- 6.27284023, - 0.00055492, 0.00034002, 7.27228531, 0.99830467, 0.99910506, 0.49318459], 5614 [- 6.27284047, - 0.00055482, 0.00033996, 7.27228565, 0.99830498, 0.99910522, 0.49318460], 5615 [- 6.27284071, - 0.00055472, 0.00033990, 7.27228599, 0.99830528, 0.99910538, 0.49318465], 5616 [- 6.27284095, - 0.00055462, 0.00033984, 7.27228633, 0.99830558, 0.99910554, 0.49318472], 5617 [- 6.27284118, - 0.00055452, 0.00033978, 7.27228666, 0.99830589, 0.99910570, 0.49318477], 5618 [- 6.27284142, - 0.00055442, 0.00033972, 7.27228700, 0.99830619, 0.99910586, 0.49318479], 5619 [- 6.27284166, - 0.00055432, 0.00033965, 7.27228734, 0.99830649, 0.99910602, 0.49318483], 5620 [- 6.27284190, - 0.00055422, 0.00033959, 7.27228767, 0.99830680, 0.99910618, 0.49318487], 5621 [- 6.27284213, - 0.00055412, 0.00033953, 7.27228801, 0.99830710, 0.99910634, 0.49318489], 5622 [- 6.27284237, - 0.00055402, 0.00033947, 7.27228835, 0.99830740, 0.99910650, 0.49318490], 5623 [- 6.27284261, - 0.00055393, 0.00033941, 7.27228868, 0.99830771, 0.99910666, 0.49318496], 5624 [- 6.27284285, - 0.00055383, 0.00033935, 7.27228902, 0.99830801, 0.99910682, 0.49318499], 5625 [- 6.27284308, - 0.00055373, 0.00033929, 7.27228936, 0.99830831, 0.99910698, 0.49318499], 5626 [- 6.27284332, - 0.00055363, 0.00033923, 7.27228969, 0.99830861, 0.99910714, 0.49318509], 5627 [- 6.27284356, - 0.00055353, 0.00033917, 7.27229003, 0.99830892, 0.99910730, 0.49318511], 5628 [- 6.27284379, - 0.00055343, 0.00033911, 7.27229036, 0.99830922, 0.99910746, 0.49318515], 5629 [- 6.27284403, - 0.00055333, 0.00033905, 7.27229070, 0.99830952, 0.99910762, 0.49318516], 5630 [- 6.27284427, - 0.00055323, 0.00033899, 7.27229103, 0.99830982, 0.99910778, 0.49318524], 5631 [- 6.27284450, - 0.00055313, 0.00033893, 7.27229137, 0.99831013, 0.99910794, 0.49318524], 5632 [- 6.27284474, - 0.00055303, 0.00033887, 7.27229170, 0.99831043, 0.99910810, 0.49318528], 5633 [- 6.27284498, - 0.00055294, 0.00033880, 7.27229204, 0.99831073, 0.99910826, 0.49318529], 5634 [- 6.27284521, - 0.00055284, 0.00033874, 7.27229237, 0.99831103, 0.99910842, 0.49318533], 5635 [- 6.27284545, - 0.00055274, 0.00033868, 7.27229271, 0.99831133, 0.99910858, 0.49318539], 5636 [- 6.27284568, - 0.00055264, 0.00033862, 7.27229304, 0.99831164, 0.99910874, 0.49318542], 5637 [- 6.27284592, - 0.00055254, 0.00033856, 7.27229338, 0.99831194, 0.99910890, 0.49318543], 5638 [- 6.27284616, - 0.00055244, 0.00033850, 7.27229371, 0.99831224, 0.99910906, 0.49318547], 5639 [- 6.27284639, - 0.00055234, 0.00033844, 7.27229405, 0.99831254, 0.99910921, 0.49318555], 5640 [- 6.27284663, - 0.00055225, 0.00033838, 7.27229438, 0.99831284, 0.99910937, 0.49318557], 5641 [- 6.27284686, - 0.00055215, 0.00033832, 7.27229472, 0.99831314, 0.99910953, 0.49318561], 5642 [- 6.27284710, - 0.00055205, 0.00033826, 7.27229505, 0.99831344, 0.99910969, 0.49318565], 5643 [- 6.27284733, - 0.00055195, 0.00033820, 7.27229538, 0.99831374, 0.99910985, 0.49318570], 5644 [- 6.27284757, - 0.00055185, 0.00033814, 7.27229572, 0.99831404, 0.99911001, 0.49318569], 5645 [- 6.27284781, - 0.00055175, 0.00033808, 7.27229605, 0.99831435, 0.99911017, 0.49318574], 5646 [- 6.27284804, - 0.00055165, 0.00033802, 7.27229639, 0.99831465, 0.99911033, 0.49318575], 5647 [- 6.27284828, - 0.00055156, 0.00033796, 7.27229672, 0.99831495, 0.99911048, 0.49318581], 5648 [- 6.27284851, - 0.00055146, 0.00033790, 7.27229705, 0.99831525, 0.99911064, 0.49318582], 5649 [- 6.27284875, - 0.00055136, 0.00033784, 7.27229739, 0.99831555, 0.99911080, 0.49318586], 5650 [- 6.27284898, - 0.00055126, 0.00033778, 7.27229772, 0.99831585, 0.99911096, 0.49318588], 5651 [- 6.27284922, - 0.00055116, 0.00033772, 7.27229805, 0.99831615, 0.99911112, 0.49318595], 5652 [- 6.27284945, - 0.00055107, 0.00033766, 7.27229838, 0.99831645, 0.99911128, 0.49318599], 5653 [- 6.27284968, - 0.00055097, 0.00033760, 7.27229872, 0.99831675, 0.99911143, 0.49318604], 5654 [- 6.27284992, - 0.00055087, 0.00033754, 7.27229905, 0.99831705, 0.99911159, 0.49318604], 5655 [- 6.27285015, - 0.00055077, 0.00033748, 7.27229938, 0.99831735, 0.99911175, 0.49318612], 5656 [- 6.27285039, - 0.00055067, 0.00033742, 7.27229971, 0.99831765, 0.99911191, 0.49318613], 5657 [- 6.27285062, - 0.00055058, 0.00033736, 7.27230005, 0.99831794, 0.99911207, 0.49318622], 5658 [- 6.27285086, - 0.00055048, 0.00033730, 7.27230038, 0.99831824, 0.99911223, 0.49318623], 5659 [- 6.27285109, - 0.00055038, 0.00033724, 7.27230071, 0.99831854, 0.99911238, 0.49318626], 5660 [- 6.27285133, - 0.00055028, 0.00033718, 7.27230104, 0.99831884, 0.99911254, 0.49318626], 5661 [- 6.27285156, - 0.00055018, 0.00033712, 7.27230138, 0.99831914, 0.99911270, 0.49318628], 5662 [- 6.27285179, - 0.00055009, 0.00033706, 7.27230171, 0.99831944, 0.99911286, 0.49318633], 5663 [- 6.27285203, - 0.00054999, 0.00033700, 7.27230204, 0.99831974, 0.99911301, 0.49318637], 5664 [- 6.27285226, - 0.00054989, 0.00033694, 7.27230237, 0.99832004, 0.99911317, 0.49318637], 5665 [- 6.27285249, - 0.00054979, 0.00033688, 7.27230270, 0.99832034, 0.99911333, 0.49318644], 5666 [- 6.27285273, - 0.00054970, 0.00033682, 7.27230303, 0.99832063, 0.99911349, 0.49318645], 5667 [- 6.27285296, - 0.00054960, 0.00033676, 7.27230336, 0.99832093, 0.99911364, 0.49318646], 5668 [- 6.27285319, - 0.00054950, 0.00033670, 7.27230369, 0.99832123, 0.99911380, 0.49318651], 5669 [- 6.27285343, - 0.00054940, 0.00033664, 7.27230403, 0.99832153, 0.99911396, 0.49318650], 5670 [- 6.27285366, - 0.00054931, 0.00033658, 7.27230436, 0.99832183, 0.99911412, 0.49318659], 5671 [- 6.27285389, - 0.00054921, 0.00033652, 7.27230469, 0.99832212, 0.99911427, 0.49318666], 5672 [- 6.27285413, - 0.00054911, 0.00033646, 7.27230502, 0.99832242, 0.99911443, 0.49318665], 5673 [- 6.27285436, - 0.00054901, 0.00033640, 7.27230535, 0.99832272, 0.99911459, 0.49318670], 5674 [- 6.27285459, - 0.00054892, 0.00033634, 7.27230568, 0.99832302, 0.99911474, 0.49318673], 5675 [- 6.27285483, - 0.00054882, 0.00033628, 7.27230601, 0.99832332, 0.99911490, 0.49318677], 5676 [- 6.27285506, - 0.00054872, 0.00033622, 7.27230634, 0.99832361, 0.99911506, 0.49318685], 5677 [- 6.27285529, - 0.00054862, 0.00033616, 7.27230667, 0.99832391, 0.99911522, 0.49318683], 5678 [- 6.27285552, - 0.00054853, 0.00033610, 7.27230700, 0.99832421, 0.99911537, 0.49318692], 5679 [- 6.27285576, - 0.00054843, 0.00033604, 7.27230733, 0.99832450, 0.99911553, 0.49318690], 5680 [- 6.27285599, - 0.00054833, 0.00033598, 7.27230766, 0.99832480, 0.99911569, 0.49318694], 5681 [- 6.27285622, - 0.00054824, 0.00033592, 7.27230799, 0.99832510, 0.99911584, 0.49318700], 5682 [- 6.27285645, - 0.00054814, 0.00033586, 7.27230832, 0.99832539, 0.99911600, 0.49318701], 5683 [- 6.27285669, - 0.00054804, 0.00033580, 7.27230865, 0.99832569, 0.99911616, 0.49318705], 5684 [- 6.27285692, - 0.00054794, 0.00033574, 7.27230897, 0.99832599, 0.99911631, 0.49318711], 5685 [- 6.27285715, - 0.00054785, 0.00033568, 7.27230930, 0.99832628, 0.99911647, 0.49318708], 5686 [- 6.27285738, - 0.00054775, 0.00033563, 7.27230963, 0.99832658, 0.99911662, 0.49318719], 5687 [- 6.27285761, - 0.00054765, 0.00033557, 7.27230996, 0.99832688, 0.99911678, 0.49318717], 5688 [- 6.27285785, - 0.00054756, 0.00033551, 7.27231029, 0.99832717, 0.99911694, 0.49318724], 5689 [- 6.27285808, - 0.00054746, 0.00033545, 7.27231062, 0.99832747, 0.99911709, 0.49318723], 5690 [- 6.27285831, - 0.00054736, 0.00033539, 7.27231095, 0.99832776, 0.99911725, 0.49318729], 5691 [- 6.27285854, - 0.00054727, 0.00033533, 7.27231127, 0.99832806, 0.99911741, 0.49318737], 5692 [- 6.27285877, - 0.00054717, 0.00033527, 7.27231160, 0.99832836, 0.99911756, 0.49318736], 5693 [- 6.27285900, - 0.00054707, 0.00033521, 7.27231193, 0.99832865, 0.99911772, 0.49318737], 5694 [- 6.27285923, - 0.00054698, 0.00033515, 7.27231226, 0.99832895, 0.99911787, 0.49318744], 5695 [- 6.27285947, - 0.00054688, 0.00033509, 7.27231259, 0.99832924, 0.99911803, 0.49318747], 5696 [- 6.27285970, - 0.00054678, 0.00033503, 7.27231291, 0.99832954, 0.99911819, 0.49318750], 5697 [- 6.27285993, - 0.00054669, 0.00033497, 7.27231324, 0.99832983, 0.99911834, 0.49318752], 5698 [- 6.27286016, - 0.00054659, 0.00033491, 7.27231357, 0.99833013, 0.99911850, 0.49318756], 5699 [- 6.27286039, - 0.00054649, 0.00033485, 7.27231390, 0.99833042, 0.99911865, 0.49318760], 5700 [- 6.27286062, - 0.00054640, 0.00033480, 7.27231422, 0.99833072, 0.99911881, 0.49318765], 5701 [- 6.27286085, - 0.00054630, 0.00033474, 7.27231455, 0.99833101, 0.99911896, 0.49318766], 5702 [- 6.27286108, - 0.00054620, 0.00033468, 7.27231488, 0.99833131, 0.99911912, 0.49318767], 5703 [- 6.27286131, - 0.00054611, 0.00033462, 7.27231521, 0.99833160, 0.99911927, 0.49318769], 5704 [- 6.27286154, - 0.00054601, 0.00033456, 7.27231553, 0.99833190, 0.99911943, 0.49318777], 5705 [- 6.27286177, - 0.00054591, 0.00033450, 7.27231586, 0.99833219, 0.99911959, 0.49318778], 5706 [- 6.27286200, - 0.00054582, 0.00033444, 7.27231619, 0.99833248, 0.99911974, 0.49318783], 5707 [- 6.27286223, - 0.00054572, 0.00033438, 7.27231651, 0.99833278, 0.99911990, 0.49318785], 5708 [- 6.27286246, - 0.00054563, 0.00033432, 7.27231684, 0.99833307, 0.99912005, 0.49318790], 5709 [- 6.27286269, - 0.00054553, 0.00033426, 7.27231716, 0.99833337, 0.99912021, 0.49318796], 5710 [- 6.27286292, - 0.00054543, 0.00033420, 7.27231749, 0.99833366, 0.99912036, 0.49318798], 5711 [- 6.27286315, - 0.00054534, 0.00033415, 7.27231782, 0.99833395, 0.99912052, 0.49318802], 5712 [- 6.27286338, - 0.00054524, 0.00033409, 7.27231814, 0.99833425, 0.99912067, 0.49318801], 5713 [- 6.27286361, - 0.00054515, 0.00033403, 7.27231847, 0.99833454, 0.99912083, 0.49318810], 5714 [- 6.27286384, - 0.00054505, 0.00033397, 7.27231879, 0.99833483, 0.99912098, 0.49318815], 5715 [- 6.27286407, - 0.00054495, 0.00033391, 7.27231912, 0.99833513, 0.99912114, 0.49318815], 5716 [- 6.27286430, - 0.00054486, 0.00033385, 7.27231944, 0.99833542, 0.99912129, 0.49318821], 5717 [- 6.27286453, - 0.00054476, 0.00033379, 7.27231977, 0.99833571, 0.99912145, 0.49318820], 5718 [- 6.27286476, - 0.00054467, 0.00033373, 7.27232010, 0.99833601, 0.99912160, 0.49318828], 5719 [- 6.27286499, - 0.00054457, 0.00033368, 7.27232042, 0.99833630, 0.99912175, 0.49318827], 5720 [- 6.27286522, - 0.00054447, 0.00033362, 7.27232075, 0.99833659, 0.99912191, 0.49318830], 5721 [- 6.27286545, - 0.00054438, 0.00033356, 7.27232107, 0.99833689, 0.99912206, 0.49318834], 5722 [- 6.27286568, - 0.00054428, 0.00033350, 7.27232139, 0.99833718, 0.99912222, 0.49318840], 5723 [- 6.27286591, - 0.00054419, 0.00033344, 7.27232172, 0.99833747, 0.99912237, 0.49318849], 5724 [- 6.27286614, - 0.00054409, 0.00033338, 7.27232204, 0.99833776, 0.99912253, 0.49318845], 5725 [- 6.27286636, - 0.00054400, 0.00033332, 7.27232237, 0.99833805, 0.99912268, 0.49318852], 5726 [- 6.27286659, - 0.00054390, 0.00033326, 7.27232269, 0.99833835, 0.99912283, 0.49318851], 5727 [- 6.27286682, - 0.00054380, 0.00033321, 7.27232302, 0.99833864, 0.99912299, 0.49318855], 5728 [- 6.27286705, - 0.00054371, 0.00033315, 7.27232334, 0.99833893, 0.99912314, 0.49318857], 5729 [- 6.27286728, - 0.00054361, 0.00033309, 7.27232366, 0.99833922, 0.99912330, 0.49318863], 5730 [- 6.27286751, - 0.00054352, 0.00033303, 7.27232399, 0.99833951, 0.99912345, 0.49318865], 5731 [- 6.27286774, - 0.00054342, 0.00033297, 7.27232431, 0.99833981, 0.99912360, 0.49318871], 5732 [- 6.27286796, - 0.00054333, 0.00033291, 7.27232464, 0.99834010, 0.99912376, 0.49318871], 5733 [- 6.27286819, - 0.00054323, 0.00033286, 7.27232496, 0.99834039, 0.99912391, 0.49318882], 5734 [- 6.27286842, - 0.00054314, 0.00033280, 7.27232528, 0.99834068, 0.99912407, 0.49318885], 5735 [- 6.27286865, - 0.00054304, 0.00033274, 7.27232561, 0.99834097, 0.99912422, 0.49318882], 5736 [- 6.27286888, - 0.00054295, 0.00033268, 7.27232593, 0.99834126, 0.99912437, 0.49318888], 5737 [- 6.27286910, - 0.00054285, 0.00033262, 7.27232625, 0.99834155, 0.99912453, 0.49318890], 5738 [- 6.27286933, - 0.00054276, 0.00033256, 7.27232657, 0.99834184, 0.99912468, 0.49318892], 5739 [- 6.27286956, - 0.00054266, 0.00033250, 7.27232690, 0.99834214, 0.99912483, 0.49318896], 5740 [- 6.27286979, - 0.00054257, 0.00033245, 7.27232722, 0.99834243, 0.99912499, 0.49318900], 5741 [- 6.27287001, - 0.00054247, 0.00033239, 7.27232754, 0.99834272, 0.99912514, 0.49318899], 5742 [- 6.27287024, - 0.00054238, 0.00033233, 7.27232787, 0.99834301, 0.99912529, 0.49318908], 5743 [- 6.27287047, - 0.00054228, 0.00033227, 7.27232819, 0.99834330, 0.99912545, 0.49318910], 5744 [- 6.27287070, - 0.00054219, 0.00033221, 7.27232851, 0.99834359, 0.99912560, 0.49318913], 5745 [- 6.27287092, - 0.00054209, 0.00033216, 7.27232883, 0.99834388, 0.99912575, 0.49318913], 5746 [- 6.27287115, - 0.00054200, 0.00033210, 7.27232915, 0.99834417, 0.99912591, 0.49318919], 5747 [- 6.27287138, - 0.00054190, 0.00033204, 7.27232948, 0.99834446, 0.99912606, 0.49318918], 5748 [- 6.27287160, - 0.00054181, 0.00033198, 7.27232980, 0.99834475, 0.99912621, 0.49318924], 5749 [- 6.27287183, - 0.00054171, 0.00033192, 7.27233012, 0.99834504, 0.99912637, 0.49318928], 5750 [- 6.27287206, - 0.00054162, 0.00033186, 7.27233044, 0.99834533, 0.99912652, 0.49318937], 5751 [- 6.27287228, - 0.00054152, 0.00033181, 7.27233076, 0.99834562, 0.99912667, 0.49318939], 5752 [- 6.27287251, - 0.00054143, 0.00033175, 7.27233108, 0.99834591, 0.99912682, 0.49318942], 5753 [- 6.27287274, - 0.00054133, 0.00033169, 7.27233140, 0.99834620, 0.99912698, 0.49318944], 5754 [- 6.27287296, - 0.00054124, 0.00033163, 7.27233173, 0.99834649, 0.99912713, 0.49318945], 5755 [- 6.27287319, - 0.00054114, 0.00033157, 7.27233205, 0.99834677, 0.99912728, 0.49318948], 5756 [- 6.27287342, - 0.00054105, 0.00033152, 7.27233237, 0.99834706, 0.99912744, 0.49318948], 5757 [- 6.27287364, - 0.00054095, 0.00033146, 7.27233269, 0.99834735, 0.99912759, 0.49318960], 5758 [- 6.27287387, - 0.00054086, 0.00033140, 7.27233301, 0.99834764, 0.99912774, 0.49318965], 5759 [- 6.27287409, - 0.00054076, 0.00033134, 7.27233333, 0.99834793, 0.99912789, 0.49318963], 5760 [- 6.27287432, - 0.00054067, 0.00033128, 7.27233365, 0.99834822, 0.99912805, 0.49318967], 5761 [- 6.27287455, - 0.00054058, 0.00033123, 7.27233397, 0.99834851, 0.99912820, 0.49318974], 5762 [- 6.27287477, - 0.00054048, 0.00033117, 7.27233429, 0.99834880, 0.99912835, 0.49318975], 5763 [- 6.27287500, - 0.00054039, 0.00033111, 7.27233461, 0.99834908, 0.99912850, 0.49318982], 5764 [- 6.27287522, - 0.00054029, 0.00033105, 7.27233493, 0.99834937, 0.99912865, 0.49318976], 5765 [- 6.27287545, - 0.00054020, 0.00033100, 7.27233525, 0.99834966, 0.99912881, 0.49318982], 5766 [- 6.27287568, - 0.00054010, 0.00033094, 7.27233557, 0.99834995, 0.99912896, 0.49318990], 5767 [- 6.27287590, - 0.00054001, 0.00033088, 7.27233589, 0.99835024, 0.99912911, 0.49318991], 5768 [- 6.27287613, - 0.00053992, 0.00033082, 7.27233621, 0.99835052, 0.99912926, 0.49318988], 5769 [- 6.27287635, - 0.00053982, 0.00033076, 7.27233653, 0.99835081, 0.99912941, 0.49319001], 5770 [- 6.27287658, - 0.00053973, 0.00033071, 7.27233685, 0.99835110, 0.99912957, 0.49318998], 5771 [- 6.27287680, - 0.00053963, 0.00033065, 7.27233717, 0.99835139, 0.99912972, 0.49319007], 5772 [- 6.27287703, - 0.00053954, 0.00033059, 7.27233749, 0.99835168, 0.99912987, 0.49319009], 5773 [- 6.27287725, - 0.00053945, 0.00033053, 7.27233781, 0.99835196, 0.99913002, 0.49319013], 5774 [- 6.27287748, - 0.00053935, 0.00033048, 7.27233812, 0.99835225, 0.99913017, 0.49319012], 5775 [- 6.27287770, - 0.00053926, 0.00033042, 7.27233844, 0.99835254, 0.99913032, 0.49319022], 5776 [- 6.27287793, - 0.00053916, 0.00033036, 7.27233876, 0.99835282, 0.99913048, 0.49319019], 5777 [- 6.27287815, - 0.00053907, 0.00033030, 7.27233908, 0.99835311, 0.99913063, 0.49319021], 5778 [- 6.27287838, - 0.00053898, 0.00033025, 7.27233940, 0.99835340, 0.99913078, 0.49319029], 5779 [- 6.27287860, - 0.00053888, 0.00033019, 7.27233972, 0.99835368, 0.99913093, 0.49319029], 5780 [- 6.27287882, - 0.00053879, 0.00033013, 7.27234004, 0.99835397, 0.99913108, 0.49319033], 5781 [- 6.27287905, - 0.00053869, 0.00033007, 7.27234035, 0.99835426, 0.99913123, 0.49319038], 5782 [- 6.27287927, - 0.00053860, 0.00033002, 7.27234067, 0.99835454, 0.99913138, 0.49319044], 5783 [- 6.27287950, - 0.00053851, 0.00032996, 7.27234099, 0.99835483, 0.99913153, 0.49319044], 5784 [- 6.27287972, - 0.00053841, 0.00032990, 7.27234131, 0.99835512, 0.99913169, 0.49319052], 5785 [- 6.27287994, - 0.00053832, 0.00032984, 7.27234162, 0.99835540, 0.99913184, 0.49319053], 5786 [- 6.27288017, - 0.00053823, 0.00032979, 7.27234194, 0.99835569, 0.99913199, 0.49319055], 5787 [- 6.27288039, - 0.00053813, 0.00032973, 7.27234226, 0.99835598, 0.99913214, 0.49319059], 5788 [- 6.27288062, - 0.00053804, 0.00032967, 7.27234258, 0.99835626, 0.99913229, 0.49319064], 5789 [- 6.27288084, - 0.00053795, 0.00032961, 7.27234289, 0.99835655, 0.99913244, 0.49319065], 5790 [- 6.27288106, - 0.00053785, 0.00032956, 7.27234321, 0.99835683, 0.99913259, 0.49319063], 5791 [- 6.27288129, - 0.00053776, 0.00032950, 7.27234353, 0.99835712, 0.99913274, 0.49319073], 5792 [- 6.27288151, - 0.00053767, 0.00032944, 7.27234385, 0.99835740, 0.99913289, 0.49319071], 5793 [- 6.27288173, - 0.00053757, 0.00032938, 7.27234416, 0.99835769, 0.99913304, 0.49319080], 5794 [- 6.27288196, - 0.00053748, 0.00032933, 7.27234448, 0.99835797, 0.99913319, 0.49319079], 5795 [- 6.27288218, - 0.00053739, 0.00032927, 7.27234480, 0.99835826, 0.99913334, 0.49319084], 5796 [- 6.27288240, - 0.00053729, 0.00032921, 7.27234511, 0.99835854, 0.99913349, 0.49319094], 5797 [- 6.27288263, - 0.00053720, 0.00032916, 7.27234543, 0.99835883, 0.99913365, 0.49319090], 5798 [- 6.27288285, - 0.00053711, 0.00032910, 7.27234574, 0.99835911, 0.99913380, 0.49319093], 5799 [- 6.27288307, - 0.00053701, 0.00032904, 7.27234606, 0.99835940, 0.99913395, 0.49319095], 5800 [- 6.27288330, - 0.00053692, 0.00032898, 7.27234638, 0.99835968, 0.99913410, 0.49319102], 5801 [- 6.27288352, - 0.00053683, 0.00032893, 7.27234669, 0.99835997, 0.99913425, 0.49319110], 5802 [- 6.27288374, - 0.00053673, 0.00032887, 7.27234701, 0.99836025, 0.99913440, 0.49319107], 5803 [- 6.27288396, - 0.00053664, 0.00032881, 7.27234732, 0.99836054, 0.99913455, 0.49319115], 5804 [- 6.27288419, - 0.00053655, 0.00032876, 7.27234764, 0.99836082, 0.99913470, 0.49319113], 5805 [- 6.27288441, - 0.00053645, 0.00032870, 7.27234795, 0.99836111, 0.99913485, 0.49319119], 5806 [- 6.27288463, - 0.00053636, 0.00032864, 7.27234827, 0.99836139, 0.99913500, 0.49319119], 5807 [- 6.27288485, - 0.00053627, 0.00032859, 7.27234859, 0.99836167, 0.99913515, 0.49319124], 5808 [- 6.27288508, - 0.00053618, 0.00032853, 7.27234890, 0.99836196, 0.99913530, 0.49319131], 5809 [- 6.27288530, - 0.00053608, 0.00032847, 7.27234922, 0.99836224, 0.99913545, 0.49319132], 5810 [- 6.27288552, - 0.00053599, 0.00032841, 7.27234953, 0.99836253, 0.99913560, 0.49319134], 5811 [- 6.27288574, - 0.00053590, 0.00032836, 7.27234985, 0.99836281, 0.99913575, 0.49319141], 5812 [- 6.27288596, - 0.00053580, 0.00032830, 7.27235016, 0.99836309, 0.99913590, 0.49319142], 5813 [- 6.27288619, - 0.00053571, 0.00032824, 7.27235047, 0.99836338, 0.99913604, 0.49319138], 5814 [- 6.27288641, - 0.00053562, 0.00032819, 7.27235079, 0.99836366, 0.99913619, 0.49319145], 5815 [- 6.27288663, - 0.00053553, 0.00032813, 7.27235110, 0.99836394, 0.99913634, 0.49319149], 5816 [- 6.27288685, - 0.00053543, 0.00032807, 7.27235142, 0.99836423, 0.99913649, 0.49319155], 5817 [- 6.27288707, - 0.00053534, 0.00032802, 7.27235173, 0.99836451, 0.99913664, 0.49319156], 5818 [- 6.27288729, - 0.00053525, 0.00032796, 7.27235205, 0.99836479, 0.99913679, 0.49319156], 5819 [- 6.27288752, - 0.00053516, 0.00032790, 7.27235236, 0.99836507, 0.99913694, 0.49319162], 5820 [- 6.27288774, - 0.00053506, 0.00032785, 7.27235267, 0.99836536, 0.99913709, 0.49319169], 5821 [- 6.27288796, - 0.00053497, 0.00032779, 7.27235299, 0.99836564, 0.99913724, 0.49319169], 5822 [- 6.27288818, - 0.00053488, 0.00032773, 7.27235330, 0.99836592, 0.99913739, 0.49319176], 5823 [- 6.27288840, - 0.00053479, 0.00032768, 7.27235361, 0.99836620, 0.99913754, 0.49319177], 5824 [- 6.27288862, - 0.00053469, 0.00032762, 7.27235393, 0.99836649, 0.99913769, 0.49319182], 5825 [- 6.27288884, - 0.00053460, 0.00032756, 7.27235424, 0.99836677, 0.99913784, 0.49319183], 5826 [- 6.27288906, - 0.00053451, 0.00032751, 7.27235455, 0.99836705, 0.99913798, 0.49319186], 5827 [- 6.27288928, - 0.00053442, 0.00032745, 7.27235487, 0.99836733, 0.99913813, 0.49319195], 5828 [- 6.27288950, - 0.00053432, 0.00032739, 7.27235518, 0.99836762, 0.99913828, 0.49319191], 5829 [- 6.27288973, - 0.00053423, 0.00032734, 7.27235549, 0.99836790, 0.99913843, 0.49319195], 5830 [- 6.27288995, - 0.00053414, 0.00032728, 7.27235581, 0.99836818, 0.99913858, 0.49319198], 5831 [- 6.27289017, - 0.00053405, 0.00032722, 7.27235612, 0.99836846, 0.99913873, 0.49319204], 5832 [- 6.27289039, - 0.00053396, 0.00032717, 7.27235643, 0.99836874, 0.99913888, 0.49319208], 5833 [- 6.27289061, - 0.00053386, 0.00032711, 7.27235674, 0.99836902, 0.99913903, 0.49319213], 5834 [- 6.27289083, - 0.00053377, 0.00032705, 7.27235706, 0.99836931, 0.99913917, 0.49319212], 5835 [- 6.27289105, - 0.00053368, 0.00032700, 7.27235737, 0.99836959, 0.99913932, 0.49319218], 5836 [- 6.27289127, - 0.00053359, 0.00032694, 7.27235768, 0.99836987, 0.99913947, 0.49319222], 5837 [- 6.27289149, - 0.00053350, 0.00032689, 7.27235799, 0.99837015, 0.99913962, 0.49319223], 5838 [- 6.27289171, - 0.00053340, 0.00032683, 7.27235830, 0.99837043, 0.99913977, 0.49319229], 5839 [- 6.27289193, - 0.00053331, 0.00032677, 7.27235862, 0.99837071, 0.99913992, 0.49319228], 5840 [- 6.27289215, - 0.00053322, 0.00032672, 7.27235893, 0.99837099, 0.99914006, 0.49319230], 5841 [- 6.27289237, - 0.00053313, 0.00032666, 7.27235924, 0.99837127, 0.99914021, 0.49319236], 5842 [- 6.27289259, - 0.00053304, 0.00032660, 7.27235955, 0.99837155, 0.99914036, 0.49319240], 5843 [- 6.27289281, - 0.00053294, 0.00032655, 7.27235986, 0.99837183, 0.99914051, 0.49319244], 5844 [- 6.27289303, - 0.00053285, 0.00032649, 7.27236017, 0.99837211, 0.99914066, 0.49319243], 5845 [- 6.27289325, - 0.00053276, 0.00032643, 7.27236048, 0.99837239, 0.99914080, 0.49319249], 5846 [- 6.27289346, - 0.00053267, 0.00032638, 7.27236080, 0.99837267, 0.99914095, 0.49319257], 5847 [- 6.27289368, - 0.00053258, 0.00032632, 7.27236111, 0.99837295, 0.99914110, 0.49319253], 5848 [- 6.27289390, - 0.00053249, 0.00032627, 7.27236142, 0.99837323, 0.99914125, 0.49319261], 5849 [- 6.27289412, - 0.00053239, 0.00032621, 7.27236173, 0.99837351, 0.99914140, 0.49319263], 5850 [- 6.27289434, - 0.00053230, 0.00032615, 7.27236204, 0.99837379, 0.99914154, 0.49319267], 5851 [- 6.27289456, - 0.00053221, 0.00032610, 7.27236235, 0.99837407, 0.99914169, 0.49319271], 5852 [- 6.27289478, - 0.00053212, 0.00032604, 7.27236266, 0.99837435, 0.99914184, 0.49319271], 5853 [- 6.27289500, - 0.00053203, 0.00032599, 7.27236297, 0.99837463, 0.99914199, 0.49319270], 5854 [- 6.27289522, - 0.00053194, 0.00032593, 7.27236328, 0.99837491, 0.99914213, 0.49319278], 5855 [- 6.27289544, - 0.00053185, 0.00032587, 7.27236359, 0.99837519, 0.99914228, 0.49319281], 5856 [- 6.27289565, - 0.00053175, 0.00032582, 7.27236390, 0.99837547, 0.99914243, 0.49319284], 5857 [- 6.27289587, - 0.00053166, 0.00032576, 7.27236421, 0.99837575, 0.99914258, 0.49319286], 5858 [- 6.27289609, - 0.00053157, 0.00032571, 7.27236452, 0.99837603, 0.99914272, 0.49319287], 5859 [- 6.27289631, - 0.00053148, 0.00032565, 7.27236483, 0.99837631, 0.99914287, 0.49319297], 5860 [- 6.27289653, - 0.00053139, 0.00032559, 7.27236514, 0.99837659, 0.99914302, 0.49319300], 5861 [- 6.27289675, - 0.00053130, 0.00032554, 7.27236545, 0.99837687, 0.99914316, 0.49319302], 5862 [- 6.27289696, - 0.00053121, 0.00032548, 7.27236576, 0.99837714, 0.99914331, 0.49319305], 5863 [- 6.27289718, - 0.00053112, 0.00032543, 7.27236607, 0.99837742, 0.99914346, 0.49319306], 5864 [- 6.27289740, - 0.00053102, 0.00032537, 7.27236638, 0.99837770, 0.99914361, 0.49319318], 5865 [- 6.27289762, - 0.00053093, 0.00032531, 7.27236668, 0.99837798, 0.99914375, 0.49319313], 5866 [- 6.27289784, - 0.00053084, 0.00032526, 7.27236699, 0.99837826, 0.99914390, 0.49319318], 5867 [- 6.27289805, - 0.00053075, 0.00032520, 7.27236730, 0.99837854, 0.99914405, 0.49319320], 5868 [- 6.27289827, - 0.00053066, 0.00032515, 7.27236761, 0.99837881, 0.99914419, 0.49319315], 5869 [- 6.27289849, - 0.00053057, 0.00032509, 7.27236792, 0.99837909, 0.99914434, 0.49319329], 5870 [- 6.27289871, - 0.00053048, 0.00032504, 7.27236823, 0.99837937, 0.99914449, 0.49319329], 5871 [- 6.27289892, - 0.00053039, 0.00032498, 7.27236854, 0.99837965, 0.99914463, 0.49319336], 5872 [- 6.27289914, - 0.00053030, 0.00032492, 7.27236884, 0.99837993, 0.99914478, 0.49319338], 5873 [- 6.27289936, - 0.00053021, 0.00032487, 7.27236915, 0.99838020, 0.99914493, 0.49319340], 5874 [- 6.27289958, - 0.00053012, 0.00032481, 7.27236946, 0.99838048, 0.99914507, 0.49319339], 5875 [- 6.27289979, - 0.00053002, 0.00032476, 7.27236977, 0.99838076, 0.99914522, 0.49319350], 5876 [- 6.27290001, - 0.00052993, 0.00032470, 7.27237008, 0.99838104, 0.99914536, 0.49319352], 5877 [- 6.27290023, - 0.00052984, 0.00032465, 7.27237038, 0.99838131, 0.99914551, 0.49319359], 5878 [- 6.27290044, - 0.00052975, 0.00032459, 7.27237069, 0.99838159, 0.99914566, 0.49319354], 5879 [- 6.27290066, - 0.00052966, 0.00032453, 7.27237100, 0.99838187, 0.99914580, 0.49319355], 5880 [- 6.27290088, - 0.00052957, 0.00032448, 7.27237131, 0.99838214, 0.99914595, 0.49319365], 5881 [- 6.27290109, - 0.00052948, 0.00032442, 7.27237161, 0.99838242, 0.99914610, 0.49319372], 5882 [- 6.27290131, - 0.00052939, 0.00032437, 7.27237192, 0.99838270, 0.99914624, 0.49319371], 5883 [- 6.27290153, - 0.00052930, 0.00032431, 7.27237223, 0.99838297, 0.99914639, 0.49319369], 5884 [- 6.27290174, - 0.00052921, 0.00032426, 7.27237254, 0.99838325, 0.99914653, 0.49319379], 5885 [- 6.27290196, - 0.00052912, 0.00032420, 7.27237284, 0.99838353, 0.99914668, 0.49319379], 5886 [- 6.27290218, - 0.00052903, 0.00032415, 7.27237315, 0.99838380, 0.99914683, 0.49319387], 5887 [- 6.27290239, - 0.00052894, 0.00032409, 7.27237346, 0.99838408, 0.99914697, 0.49319384], 5888 [- 6.27290261, - 0.00052885, 0.00032404, 7.27237376, 0.99838436, 0.99914712, 0.49319390], 5889 [- 6.27290283, - 0.00052876, 0.00032398, 7.27237407, 0.99838463, 0.99914726, 0.49319391], 5890 [- 6.27290304, - 0.00052867, 0.00032392, 7.27237438, 0.99838491, 0.99914741, 0.49319397], 5891 [- 6.27290326, - 0.00052858, 0.00032387, 7.27237468, 0.99838518, 0.99914755, 0.49319399], 5892 [- 6.27290347, - 0.00052849, 0.00032381, 7.27237499, 0.99838546, 0.99914770, 0.49319399], 5893 [- 6.27290369, - 0.00052840, 0.00032376, 7.27237529, 0.99838574, 0.99914785, 0.49319402], 5894 [- 6.27290391, - 0.00052831, 0.00032370, 7.27237560, 0.99838601, 0.99914799, 0.49319410], 5895 [- 6.27290412, - 0.00052822, 0.00032365, 7.27237591, 0.99838629, 0.99914814, 0.49319411], 5896 [- 6.27290434, - 0.00052813, 0.00032359, 7.27237621, 0.99838656, 0.99914828, 0.49319417], 5897 [- 6.27290455, - 0.00052804, 0.00032354, 7.27237652, 0.99838684, 0.99914843, 0.49319421], 5898 [- 6.27290477, - 0.00052795, 0.00032348, 7.27237682, 0.99838711, 0.99914857, 0.49319423], 5899 [- 6.27290498, - 0.00052786, 0.00032343, 7.27237713, 0.99838739, 0.99914872, 0.49319424], 5900 [- 6.27290520, - 0.00052777, 0.00032337, 7.27237743, 0.99838766, 0.99914886, 0.49319429], 5901 [- 6.27290541, - 0.00052768, 0.00032332, 7.27237774, 0.99838794, 0.99914901, 0.49319426], 5902 [- 6.27290563, - 0.00052759, 0.00032326, 7.27237804, 0.99838821, 0.99914915, 0.49319434], 5903 [- 6.27290584, - 0.00052750, 0.00032321, 7.27237835, 0.99838849, 0.99914930, 0.49319436], 5904 [- 6.27290606, - 0.00052741, 0.00032315, 7.27237865, 0.99838876, 0.99914944, 0.49319441], 5905 [- 6.27290627, - 0.00052732, 0.00032310, 7.27237896, 0.99838904, 0.99914959, 0.49319443], 5906 [- 6.27290649, - 0.00052723, 0.00032304, 7.27237926, 0.99838931, 0.99914973, 0.49319450], 5907 [- 6.27290670, - 0.00052714, 0.00032299, 7.27237957, 0.99838959, 0.99914988, 0.49319447], 5908 [- 6.27290692, - 0.00052705, 0.00032293, 7.27237987, 0.99838986, 0.99915002, 0.49319454], 5909 [- 6.27290713, - 0.00052696, 0.00032288, 7.27238018, 0.99839013, 0.99915017, 0.49319453], 5910 [- 6.27290735, - 0.00052687, 0.00032282, 7.27238048, 0.99839041, 0.99915031, 0.49319457], 5911 [- 6.27290756, - 0.00052678, 0.00032277, 7.27238078, 0.99839068, 0.99915046, 0.49319463], 5912 [- 6.27290778, - 0.00052669, 0.00032271, 7.27238109, 0.99839096, 0.99915060, 0.49319468], 5913 [- 6.27290799, - 0.00052660, 0.00032266, 7.27238139, 0.99839123, 0.99915075, 0.49319471], 5914 [- 6.27290821, - 0.00052651, 0.00032260, 7.27238170, 0.99839150, 0.99915089, 0.49319472], 5915 [- 6.27290842, - 0.00052642, 0.00032255, 7.27238200, 0.99839178, 0.99915103, 0.49319477], 5916 [- 6.27290863, - 0.00052633, 0.00032249, 7.27238230, 0.99839205, 0.99915118, 0.49319479], 5917 [- 6.27290885, - 0.00052624, 0.00032244, 7.27238261, 0.99839232, 0.99915132, 0.49319479], 5918 [- 6.27290906, - 0.00052615, 0.00032238, 7.27238291, 0.99839260, 0.99915147, 0.49319486], 5919 [- 6.27290928, - 0.00052606, 0.00032233, 7.27238321, 0.99839287, 0.99915161, 0.49319496], 5920 [- 6.27290949, - 0.00052597, 0.00032227, 7.27238352, 0.99839314, 0.99915176, 0.49319494], 5921 [- 6.27290970, - 0.00052588, 0.00032222, 7.27238382, 0.99839342, 0.99915190, 0.49319490], 5922 [- 6.27290992, - 0.00052579, 0.00032216, 7.27238412, 0.99839369, 0.99915204, 0.49319495], 5923 [- 6.27291013, - 0.00052570, 0.00032211, 7.27238443, 0.99839396, 0.99915219, 0.49319503], 5924 [- 6.27291034, - 0.00052561, 0.00032205, 7.27238473, 0.99839424, 0.99915233, 0.49319499], 5925 [- 6.27291056, - 0.00052553, 0.00032200, 7.27238503, 0.99839451, 0.99915248, 0.49319506], 5926 [- 6.27291077, - 0.00052544, 0.00032194, 7.27238534, 0.99839478, 0.99915262, 0.49319516], 5927 [- 6.27291098, - 0.00052535, 0.00032189, 7.27238564, 0.99839505, 0.99915276, 0.49319515], 5928 [- 6.27291120, - 0.00052526, 0.00032183, 7.27238594, 0.99839533, 0.99915291, 0.49319519], 5929 [- 6.27291141, - 0.00052517, 0.00032178, 7.27238624, 0.99839560, 0.99915305, 0.49319519], 5930 [- 6.27291162, - 0.00052508, 0.00032173, 7.27238654, 0.99839587, 0.99915320, 0.49319522], 5931 [- 6.27291184, - 0.00052499, 0.00032167, 7.27238685, 0.99839614, 0.99915334, 0.49319528], 5932 [- 6.27291205, - 0.00052490, 0.00032162, 7.27238715, 0.99839642, 0.99915348, 0.49319533], 5933 [- 6.27291226, - 0.00052481, 0.00032156, 7.27238745, 0.99839669, 0.99915363, 0.49319536], 5934 [- 6.27291248, - 0.00052472, 0.00032151, 7.27238775, 0.99839696, 0.99915377, 0.49319537], 5935 [- 6.27291269, - 0.00052463, 0.00032145, 7.27238805, 0.99839723, 0.99915391, 0.49319544], 5936 [- 6.27291290, - 0.00052455, 0.00032140, 7.27238836, 0.99839750, 0.99915406, 0.49319545], 5937 [- 6.27291311, - 0.00052446, 0.00032134, 7.27238866, 0.99839777, 0.99915420, 0.49319547], 5938 [- 6.27291333, - 0.00052437, 0.00032129, 7.27238896, 0.99839805, 0.99915434, 0.49319547], 5939 [- 6.27291354, - 0.00052428, 0.00032123, 7.27238926, 0.99839832, 0.99915449, 0.49319552], 5940 [- 6.27291375, - 0.00052419, 0.00032118, 7.27238956, 0.99839859, 0.99915463, 0.49319555], 5941 [- 6.27291396, - 0.00052410, 0.00032113, 7.27238986, 0.99839886, 0.99915477, 0.49319555], 5942 [- 6.27291418, - 0.00052401, 0.00032107, 7.27239016, 0.99839913, 0.99915492, 0.49319565], 5943 [- 6.27291439, - 0.00052392, 0.00032102, 7.27239046, 0.99839940, 0.99915506, 0.49319563], 5944 [- 6.27291460, - 0.00052384, 0.00032096, 7.27239077, 0.99839967, 0.99915520, 0.49319565], 5945 [- 6.27291481, - 0.00052375, 0.00032091, 7.27239107, 0.99839994, 0.99915534, 0.49319571], 5946 [- 6.27291503, - 0.00052366, 0.00032085, 7.27239137, 0.99840021, 0.99915549, 0.49319576], 5947 [- 6.27291524, - 0.00052357, 0.00032080, 7.27239167, 0.99840049, 0.99915563, 0.49319577], 5948 [- 6.27291545, - 0.00052348, 0.00032075, 7.27239197, 0.99840076, 0.99915577, 0.49319579], 5949 [- 6.27291566, - 0.00052339, 0.00032069, 7.27239227, 0.99840103, 0.99915592, 0.49319582], 5950 [- 6.27291587, - 0.00052330, 0.00032064, 7.27239257, 0.99840130, 0.99915606, 0.49319587], 5951 [- 6.27291608, - 0.00052322, 0.00032058, 7.27239287, 0.99840157, 0.99915620, 0.49319592], 5952 [- 6.27291630, - 0.00052313, 0.00032053, 7.27239317, 0.99840184, 0.99915634, 0.49319593], 5953 [- 6.27291651, - 0.00052304, 0.00032047, 7.27239347, 0.99840211, 0.99915649, 0.49319594], 5954 [- 6.27291672, - 0.00052295, 0.00032042, 7.27239377, 0.99840238, 0.99915663, 0.49319596], 5955 [- 6.27291693, - 0.00052286, 0.00032037, 7.27239407, 0.99840265, 0.99915677, 0.49319602], 5956 [- 6.27291714, - 0.00052277, 0.00032031, 7.27239437, 0.99840292, 0.99915691, 0.49319607], 5957 [- 6.27291735, - 0.00052269, 0.00032026, 7.27239467, 0.99840319, 0.99915706, 0.49319609], 5958 [- 6.27291756, - 0.00052260, 0.00032020, 7.27239497, 0.99840346, 0.99915720, 0.49319609], 5959 [- 6.27291777, - 0.00052251, 0.00032015, 7.27239526, 0.99840373, 0.99915734, 0.49319619], 5960 [- 6.27291799, - 0.00052242, 0.00032010, 7.27239556, 0.99840400, 0.99915748, 0.49319624], 5961 [- 6.27291820, - 0.00052233, 0.00032004, 7.27239586, 0.99840427, 0.99915763, 0.49319616], 5962 [- 6.27291841, - 0.00052225, 0.00031999, 7.27239616, 0.99840453, 0.99915777, 0.49319625], 5963 [- 6.27291862, - 0.00052216, 0.00031993, 7.27239646, 0.99840480, 0.99915791, 0.49319632], 5964 [- 6.27291883, - 0.00052207, 0.00031988, 7.27239676, 0.99840507, 0.99915805, 0.49319625], 5965 [- 6.27291904, - 0.00052198, 0.00031983, 7.27239706, 0.99840534, 0.99915819, 0.49319634], 5966 [- 6.27291925, - 0.00052189, 0.00031977, 7.27239736, 0.99840561, 0.99915834, 0.49319638], 5967 [- 6.27291946, - 0.00052180, 0.00031972, 7.27239766, 0.99840588, 0.99915848, 0.49319640], 5968 [- 6.27291967, - 0.00052172, 0.00031966, 7.27239795, 0.99840615, 0.99915862, 0.49319643], 5969 [- 6.27291988, - 0.00052163, 0.00031961, 7.27239825, 0.99840642, 0.99915876, 0.49319646], 5970 [- 6.27292009, - 0.00052154, 0.00031956, 7.27239855, 0.99840669, 0.99915890, 0.49319643], 5971 [- 6.27292030, - 0.00052145, 0.00031950, 7.27239885, 0.99840695, 0.99915904, 0.49319651], 5972 [- 6.27292051, - 0.00052137, 0.00031945, 7.27239915, 0.99840722, 0.99915919, 0.49319652], 5973 [- 6.27292072, - 0.00052128, 0.00031939, 7.27239944, 0.99840749, 0.99915933, 0.49319657], 5974 [- 6.27292093, - 0.00052119, 0.00031934, 7.27239974, 0.99840776, 0.99915947, 0.49319663], 5975 [- 6.27292114, - 0.00052110, 0.00031929, 7.27240004, 0.99840803, 0.99915961, 0.49319665], 5976 [- 6.27292135, - 0.00052101, 0.00031923, 7.27240034, 0.99840830, 0.99915975, 0.49319671], 5977 [- 6.27292156, - 0.00052093, 0.00031918, 7.27240063, 0.99840856, 0.99915989, 0.49319676], 5978 [- 6.27292177, - 0.00052084, 0.00031913, 7.27240093, 0.99840883, 0.99916004, 0.49319677], 5979 [- 6.27292198, - 0.00052075, 0.00031907, 7.27240123, 0.99840910, 0.99916018, 0.49319672], 5980 [- 6.27292219, - 0.00052066, 0.00031902, 7.27240153, 0.99840937, 0.99916032, 0.49319676], 5981 [- 6.27292240, - 0.00052058, 0.00031896, 7.27240182, 0.99840964, 0.99916046, 0.49319684], 5982 [- 6.27292261, - 0.00052049, 0.00031891, 7.27240212, 0.99840990, 0.99916060, 0.49319683], 5983 [- 6.27292282, - 0.00052040, 0.00031886, 7.27240242, 0.99841017, 0.99916074, 0.49319688], 5984 [- 6.27292303, - 0.00052031, 0.00031880, 7.27240271, 0.99841044, 0.99916088, 0.49319696], 5985 [- 6.27292324, - 0.00052023, 0.00031875, 7.27240301, 0.99841070, 0.99916102, 0.49319696], 5986 [- 6.27292345, - 0.00052014, 0.00031870, 7.27240331, 0.99841097, 0.99916117, 0.49319698], 5987 [- 6.27292366, - 0.00052005, 0.00031864, 7.27240360, 0.99841124, 0.99916131, 0.49319702], 5988 [- 6.27292386, - 0.00051996, 0.00031859, 7.27240390, 0.99841151, 0.99916145, 0.49319705], 5989 [- 6.27292407, - 0.00051988, 0.00031854, 7.27240420, 0.99841177, 0.99916159, 0.49319708], 5990 [- 6.27292428, - 0.00051979, 0.00031848, 7.27240449, 0.99841204, 0.99916173, 0.49319705], 5991 [- 6.27292449, - 0.00051970, 0.00031843, 7.27240479, 0.99841231, 0.99916187, 0.49319715], 5992 [- 6.27292470, - 0.00051962, 0.00031837, 7.27240508, 0.99841257, 0.99916201, 0.49319716], 5993 [- 6.27292491, - 0.00051953, 0.00031832, 7.27240538, 0.99841284, 0.99916215, 0.49319722], 5994 [- 6.27292512, - 0.00051944, 0.00031827, 7.27240568, 0.99841311, 0.99916229, 0.49319725], 5995 [- 6.27292533, - 0.00051935, 0.00031821, 7.27240597, 0.99841337, 0.99916243, 0.49319725], 5996 [- 6.27292553, - 0.00051927, 0.00031816, 7.27240627, 0.99841364, 0.99916257, 0.49319734], 5997 [- 6.27292574, - 0.00051918, 0.00031811, 7.27240656, 0.99841390, 0.99916271, 0.49319744], 5998 [- 6.27292595, - 0.00051909, 0.00031805, 7.27240686, 0.99841417, 0.99916285, 0.49319739], 5999 [- 6.27292616, - 0.00051901, 0.00031800, 7.27240715, 0.99841444, 0.99916299, 0.49319736], 6000 [- 6.27292637, - 0.00051892, 0.00031795, 7.27240745, 0.99841470, 0.99916313, 0.49319748], 6001 [- 6.27292658, - 0.00051883, 0.00031789, 7.27240774, 0.99841497, 0.99916327, 0.49319747], 6002 [- 6.27292678, - 0.00051874, 0.00031784, 7.27240804, 0.99841523, 0.99916341, 0.49319748], 6003 [- 6.27292699, - 0.00051866, 0.00031779, 7.27240833, 0.99841550, 0.99916355, 0.49319753], 6004 [- 6.27292720, - 0.00051857, 0.00031773, 7.27240863, 0.99841577, 0.99916369, 0.49319759], 6005 [- 6.27292741, - 0.00051848, 0.00031768, 7.27240892, 0.99841603, 0.99916384, 0.49319759], 6006 [- 6.27292762, - 0.00051840, 0.00031763, 7.27240922, 0.99841630, 0.99916398, 0.49319759], 6007 [- 6.27292782, - 0.00051831, 0.00031757, 7.27240951, 0.99841656, 0.99916412, 0.49319764], 6008 [- 6.27292803, - 0.00051822, 0.00031752, 7.27240981, 0.99841683, 0.99916426, 0.49319769], 6009 [- 6.27292824, - 0.00051814, 0.00031747, 7.27241010, 0.99841709, 0.99916440, 0.49319768], 6010 [- 6.27292845, - 0.00051805, 0.00031742, 7.27241040, 0.99841736, 0.99916453, 0.49319773], 6011 [- 6.27292865, - 0.00051796, 0.00031736, 7.27241069, 0.99841762, 0.99916467, 0.49319777], 6012 [- 6.27292886, - 0.00051788, 0.00031731, 7.27241098, 0.99841789, 0.99916481, 0.49319789], 6013 [- 6.27292907, - 0.00051779, 0.00031726, 7.27241128, 0.99841815, 0.99916495, 0.49319781], 6014 [- 6.27292927, - 0.00051770, 0.00031720, 7.27241157, 0.99841842, 0.99916509, 0.49319785], 6015 [- 6.27292948, - 0.00051762, 0.00031715, 7.27241186, 0.99841868, 0.99916523, 0.49319784], 6016 [- 6.27292969, - 0.00051753, 0.00031710, 7.27241216, 0.99841895, 0.99916537, 0.49319795], 6017 [- 6.27292990, - 0.00051744, 0.00031704, 7.27241245, 0.99841921, 0.99916551, 0.49319794], 6018 [- 6.27293010, - 0.00051736, 0.00031699, 7.27241275, 0.99841947, 0.99916565, 0.49319797], 6019 [- 6.27293031, - 0.00051727, 0.00031694, 7.27241304, 0.99841974, 0.99916579, 0.49319807], 6020 [- 6.27293052, - 0.00051718, 0.00031688, 7.27241333, 0.99842000, 0.99916593, 0.49319800], 6021 [- 6.27293072, - 0.00051710, 0.00031683, 7.27241363, 0.99842027, 0.99916607, 0.49319809], 6022 [- 6.27293093, - 0.00051701, 0.00031678, 7.27241392, 0.99842053, 0.99916621, 0.49319811], 6023 [- 6.27293114, - 0.00051693, 0.00031673, 7.27241421, 0.99842079, 0.99916635, 0.49319811], 6024 [- 6.27293134, - 0.00051684, 0.00031667, 7.27241450, 0.99842106, 0.99916649, 0.49319817], 6025 [- 6.27293155, - 0.00051675, 0.00031662, 7.27241480, 0.99842132, 0.99916663, 0.49319820], 6026 [- 6.27293176, - 0.00051667, 0.00031657, 7.27241509, 0.99842159, 0.99916677, 0.49319821], 6027 [- 6.27293196, - 0.00051658, 0.00031651, 7.27241538, 0.99842185, 0.99916691, 0.49319833], 6028 [- 6.27293217, - 0.00051649, 0.00031646, 7.27241567, 0.99842211, 0.99916704, 0.49319829], 6029 [- 6.27293237, - 0.00051641, 0.00031641, 7.27241597, 0.99842238, 0.99916718, 0.49319831], 6030 [- 6.27293258, - 0.00051632, 0.00031636, 7.27241626, 0.99842264, 0.99916732, 0.49319838], 6031 [- 6.27293279, - 0.00051624, 0.00031630, 7.27241655, 0.99842290, 0.99916746, 0.49319843], 6032 [- 6.27293299, - 0.00051615, 0.00031625, 7.27241684, 0.99842316, 0.99916760, 0.49319840], 6033 [- 6.27293320, - 0.00051606, 0.00031620, 7.27241713, 0.99842343, 0.99916774, 0.49319841], 6034 [- 6.27293340, - 0.00051598, 0.00031614, 7.27241743, 0.99842369, 0.99916788, 0.49319849], 6035 [- 6.27293361, - 0.00051589, 0.00031609, 7.27241772, 0.99842395, 0.99916802, 0.49319850], 6036 [- 6.27293382, - 0.00051581, 0.00031604, 7.27241801, 0.99842422, 0.99916816, 0.49319856], 6037 [- 6.27293402, - 0.00051572, 0.00031599, 7.27241830, 0.99842448, 0.99916829, 0.49319860], 6038 [- 6.27293423, - 0.00051563, 0.00031593, 7.27241859, 0.99842474, 0.99916843, 0.49319855], 6039 [- 6.27293443, - 0.00051555, 0.00031588, 7.27241888, 0.99842500, 0.99916857, 0.49319861], 6040 [- 6.27293464, - 0.00051546, 0.00031583, 7.27241918, 0.99842527, 0.99916871, 0.49319870], 6041 [- 6.27293484, - 0.00051538, 0.00031578, 7.27241947, 0.99842553, 0.99916885, 0.49319866], 6042 [- 6.27293505, - 0.00051529, 0.00031572, 7.27241976, 0.99842579, 0.99916899, 0.49319873], 6043 [- 6.27293525, - 0.00051520, 0.00031567, 7.27242005, 0.99842605, 0.99916912, 0.49319872], 6044 [- 6.27293546, - 0.00051512, 0.00031562, 7.27242034, 0.99842632, 0.99916926, 0.49319875], 6045 [- 6.27293566, - 0.00051503, 0.00031557, 7.27242063, 0.99842658, 0.99916940, 0.49319885], 6046 [- 6.27293587, - 0.00051495, 0.00031551, 7.27242092, 0.99842684, 0.99916954, 0.49319881], 6047 [- 6.27293607, - 0.00051486, 0.00031546, 7.27242121, 0.99842710, 0.99916968, 0.49319885], 6048 [- 6.27293628, - 0.00051478, 0.00031541, 7.27242150, 0.99842736, 0.99916982, 0.49319897], 6049 [- 6.27293648, - 0.00051469, 0.00031536, 7.27242179, 0.99842762, 0.99916995, 0.49319898], 6050 [- 6.27293669, - 0.00051461, 0.00031530, 7.27242208, 0.99842789, 0.99917009, 0.49319895], 6051 [- 6.27293689, - 0.00051452, 0.00031525, 7.27242237, 0.99842815, 0.99917023, 0.49319902], 6052 [- 6.27293710, - 0.00051443, 0.00031520, 7.27242266, 0.99842841, 0.99917037, 0.49319899], 6053 [- 6.27293730, - 0.00051435, 0.00031515, 7.27242295, 0.99842867, 0.99917051, 0.49319907], 6054 [- 6.27293751, - 0.00051426, 0.00031509, 7.27242324, 0.99842893, 0.99917064, 0.49319910], 6055 [- 6.27293771, - 0.00051418, 0.00031504, 7.27242353, 0.99842919, 0.99917078, 0.49319911], 6056 [- 6.27293792, - 0.00051409, 0.00031499, 7.27242382, 0.99842945, 0.99917092, 0.49319911], 6057 [- 6.27293812, - 0.00051401, 0.00031494, 7.27242411, 0.99842971, 0.99917106, 0.49319918], 6058 [- 6.27293832, - 0.00051392, 0.00031488, 7.27242440, 0.99842997, 0.99917119, 0.49319923], 6059 [- 6.27293853, - 0.00051384, 0.00031483, 7.27242469, 0.99843024, 0.99917133, 0.49319919], 6060 [- 6.27293873, - 0.00051375, 0.00031478, 7.27242498, 0.99843050, 0.99917147, 0.49319924], 6061 [- 6.27293894, - 0.00051367, 0.00031473, 7.27242527, 0.99843076, 0.99917161, 0.49319925], 6062 [- 6.27293914, - 0.00051358, 0.00031467, 7.27242556, 0.99843102, 0.99917174, 0.49319934], 6063 [- 6.27293934, - 0.00051350, 0.00031462, 7.27242585, 0.99843128, 0.99917188, 0.49319932], 6064 [- 6.27293955, - 0.00051341, 0.00031457, 7.27242614, 0.99843154, 0.99917202, 0.49319938], 6065 [- 6.27293975, - 0.00051333, 0.00031452, 7.27242643, 0.99843180, 0.99917216, 0.49319942], 6066 [- 6.27293995, - 0.00051324, 0.00031447, 7.27242671, 0.99843206, 0.99917229, 0.49319947], 6067 [- 6.27294016, - 0.00051315, 0.00031441, 7.27242700, 0.99843232, 0.99917243, 0.49319948], 6068 [- 6.27294036, - 0.00051307, 0.00031436, 7.27242729, 0.99843258, 0.99917257, 0.49319954], 6069 [- 6.27294057, - 0.00051298, 0.00031431, 7.27242758, 0.99843284, 0.99917271, 0.49319956], 6070 [- 6.27294077, - 0.00051290, 0.00031426, 7.27242787, 0.99843310, 0.99917284, 0.49319957], 6071 [- 6.27294097, - 0.00051281, 0.00031421, 7.27242816, 0.99843336, 0.99917298, 0.49319962], 6072 [- 6.27294118, - 0.00051273, 0.00031415, 7.27242845, 0.99843362, 0.99917312, 0.49319969], 6073 [- 6.27294138, - 0.00051265, 0.00031410, 7.27242873, 0.99843388, 0.99917325, 0.49319972], 6074 [- 6.27294158, - 0.00051256, 0.00031405, 7.27242902, 0.99843414, 0.99917339, 0.49319967], 6075 [- 6.27294178, - 0.00051248, 0.00031400, 7.27242931, 0.99843439, 0.99917353, 0.49319971], 6076 [- 6.27294199, - 0.00051239, 0.00031395, 7.27242960, 0.99843465, 0.99917366, 0.49319975], 6077 [- 6.27294219, - 0.00051231, 0.00031389, 7.27242988, 0.99843491, 0.99917380, 0.49319976], 6078 [- 6.27294239, - 0.00051222, 0.00031384, 7.27243017, 0.99843517, 0.99917394, 0.49319985], 6079 [- 6.27294260, - 0.00051214, 0.00031379, 7.27243046, 0.99843543, 0.99917407, 0.49319980], 6080 [- 6.27294280, - 0.00051205, 0.00031374, 7.27243075, 0.99843569, 0.99917421, 0.49319987], 6081 [- 6.27294300, - 0.00051197, 0.00031369, 7.27243103, 0.99843595, 0.99917435, 0.49319991], 6082 [- 6.27294320, - 0.00051188, 0.00031363, 7.27243132, 0.99843621, 0.99917448, 0.49319996], 6083 [- 6.27294341, - 0.00051180, 0.00031358, 7.27243161, 0.99843647, 0.99917462, 0.49320001], 6084 [- 6.27294361, - 0.00051171, 0.00031353, 7.27243190, 0.99843673, 0.99917476, 0.49319998], 6085 [- 6.27294381, - 0.00051163, 0.00031348, 7.27243218, 0.99843698, 0.99917489, 0.49320000], 6086 [- 6.27294401, - 0.00051154, 0.00031343, 7.27243247, 0.99843724, 0.99917503, 0.49320003], 6087 [- 6.27294422, - 0.00051146, 0.00031337, 7.27243276, 0.99843750, 0.99917517, 0.49320007], 6088 [- 6.27294442, - 0.00051137, 0.00031332, 7.27243304, 0.99843776, 0.99917530, 0.49320006], 6089 [- 6.27294462, - 0.00051129, 0.00031327, 7.27243333, 0.99843802, 0.99917544, 0.49320012], 6090 [- 6.27294482, - 0.00051121, 0.00031322, 7.27243362, 0.99843827, 0.99917558, 0.49320018], 6091 [- 6.27294502, - 0.00051112, 0.00031317, 7.27243390, 0.99843853, 0.99917571, 0.49320018], 6092 [- 6.27294523, - 0.00051104, 0.00031312, 7.27243419, 0.99843879, 0.99917585, 0.49320017], 6093 [- 6.27294543, - 0.00051095, 0.00031306, 7.27243448, 0.99843905, 0.99917598, 0.49320022], 6094 [- 6.27294563, - 0.00051087, 0.00031301, 7.27243476, 0.99843931, 0.99917612, 0.49320033], 6095 [- 6.27294583, - 0.00051078, 0.00031296, 7.27243505, 0.99843956, 0.99917626, 0.49320035], 6096 [- 6.27294603, - 0.00051070, 0.00031291, 7.27243533, 0.99843982, 0.99917639, 0.49320035], 6097 [- 6.27294623, - 0.00051062, 0.00031286, 7.27243562, 0.99844008, 0.99917653, 0.49320037], 6098 [- 6.27294644, - 0.00051053, 0.00031281, 7.27243590, 0.99844034, 0.99917666, 0.49320040], 6099 [- 6.27294664, - 0.00051045, 0.00031275, 7.27243619, 0.99844059, 0.99917680, 0.49320046], 6100 [- 6.27294684, - 0.00051036, 0.00031270, 7.27243648, 0.99844085, 0.99917693, 0.49320050], 6101 [- 6.27294704, - 0.00051028, 0.00031265, 7.27243676, 0.99844111, 0.99917707, 0.49320049], 6102 [- 6.27294724, - 0.00051019, 0.00031260, 7.27243705, 0.99844136, 0.99917721, 0.49320054], 6103 [- 6.27294744, - 0.00051011, 0.00031255, 7.27243733, 0.99844162, 0.99917734, 0.49320055], 6104 [- 6.27294764, - 0.00051003, 0.00031250, 7.27243762, 0.99844188, 0.99917748, 0.49320064], 6105 [- 6.27294784, - 0.00050994, 0.00031244, 7.27243790, 0.99844214, 0.99917761, 0.49320065], 6106 [- 6.27294805, - 0.00050986, 0.00031239, 7.27243819, 0.99844239, 0.99917775, 0.49320067], 6107 [- 6.27294825, - 0.00050977, 0.00031234, 7.27243847, 0.99844265, 0.99917788, 0.49320073], 6108 [- 6.27294845, - 0.00050969, 0.00031229, 7.27243876, 0.99844291, 0.99917802, 0.49320072], 6109 [- 6.27294865, - 0.00050961, 0.00031224, 7.27243904, 0.99844316, 0.99917815, 0.49320076], 6110 [- 6.27294885, - 0.00050952, 0.00031219, 7.27243933, 0.99844342, 0.99917829, 0.49320077], 6111 [- 6.27294905, - 0.00050944, 0.00031214, 7.27243961, 0.99844367, 0.99917843, 0.49320076], 6112 [- 6.27294925, - 0.00050936, 0.00031208, 7.27243989, 0.99844393, 0.99917856, 0.49320084], 6113 [- 6.27294945, - 0.00050927, 0.00031203, 7.27244018, 0.99844419, 0.99917870, 0.49320087], 6114 [- 6.27294965, - 0.00050919, 0.00031198, 7.27244046, 0.99844444, 0.99917883, 0.49320088], 6115 [- 6.27294985, - 0.00050910, 0.00031193, 7.27244075, 0.99844470, 0.99917897, 0.49320097], 6116 [- 6.27295005, - 0.00050902, 0.00031188, 7.27244103, 0.99844495, 0.99917910, 0.49320091], 6117 [- 6.27295025, - 0.00050894, 0.00031183, 7.27244132, 0.99844521, 0.99917924, 0.49320097], 6118 [- 6.27295045, - 0.00050885, 0.00031178, 7.27244160, 0.99844547, 0.99917937, 0.49320101], 6119 [- 6.27295065, - 0.00050877, 0.00031173, 7.27244188, 0.99844572, 0.99917951, 0.49320102], 6120 [- 6.27295085, - 0.00050869, 0.00031167, 7.27244217, 0.99844598, 0.99917964, 0.49320101], 6121 [- 6.27295105, - 0.00050860, 0.00031162, 7.27244245, 0.99844623, 0.99917978, 0.49320112], 6122 [- 6.27295125, - 0.00050852, 0.00031157, 7.27244273, 0.99844649, 0.99917991, 0.49320117], 6123 [- 6.27295145, - 0.00050844, 0.00031152, 7.27244302, 0.99844674, 0.99918004, 0.49320117], 6124 [- 6.27295165, - 0.00050835, 0.00031147, 7.27244330, 0.99844700, 0.99918018, 0.49320119], 6125 [- 6.27295185, - 0.00050827, 0.00031142, 7.27244358, 0.99844725, 0.99918031, 0.49320122], 6126 [- 6.27295205, - 0.00050818, 0.00031137, 7.27244387, 0.99844751, 0.99918045, 0.49320128], 6127 [- 6.27295225, - 0.00050810, 0.00031132, 7.27244415, 0.99844776, 0.99918058, 0.49320130], 6128 [- 6.27295245, - 0.00050802, 0.00031126, 7.27244443, 0.99844802, 0.99918072, 0.49320132], 6129 [- 6.27295265, - 0.00050793, 0.00031121, 7.27244472, 0.99844827, 0.99918085, 0.49320130], 6130 [- 6.27295285, - 0.00050785, 0.00031116, 7.27244500, 0.99844853, 0.99918099, 0.49320137], 6131 [- 6.27295305, - 0.00050777, 0.00031111, 7.27244528, 0.99844878, 0.99918112, 0.49320141], 6132 [- 6.27295325, - 0.00050768, 0.00031106, 7.27244556, 0.99844904, 0.99918126, 0.49320145], 6133 [- 6.27295345, - 0.00050760, 0.00031101, 7.27244585, 0.99844929, 0.99918139, 0.49320144], 6134 [- 6.27295365, - 0.00050752, 0.00031096, 7.27244613, 0.99844955, 0.99918152, 0.49320149], 6135 [- 6.27295385, - 0.00050743, 0.00031091, 7.27244641, 0.99844980, 0.99918166, 0.49320154], 6136 [- 6.27295404, - 0.00050735, 0.00031086, 7.27244669, 0.99845005, 0.99918179, 0.49320156], 6137 [- 6.27295424, - 0.00050727, 0.00031081, 7.27244697, 0.99845031, 0.99918193, 0.49320161], 6138 [- 6.27295444, - 0.00050719, 0.00031075, 7.27244726, 0.99845056, 0.99918206, 0.49320163], 6139 [- 6.27295464, - 0.00050710, 0.00031070, 7.27244754, 0.99845082, 0.99918219, 0.49320168], 6140 [- 6.27295484, - 0.00050702, 0.00031065, 7.27244782, 0.99845107, 0.99918233, 0.49320163], 6141 [- 6.27295504, - 0.00050694, 0.00031060, 7.27244810, 0.99845132, 0.99918246, 0.49320171], 6142 [- 6.27295524, - 0.00050685, 0.00031055, 7.27244838, 0.99845158, 0.99918260, 0.49320174], 6143 [- 6.27295544, - 0.00050677, 0.00031050, 7.27244867, 0.99845183, 0.99918273, 0.49320177], 6144 [- 6.27295563, - 0.00050669, 0.00031045, 7.27244895, 0.99845208, 0.99918286, 0.49320176], 6145 [- 6.27295583, - 0.00050660, 0.00031040, 7.27244923, 0.99845234, 0.99918300, 0.49320182], 6146 [- 6.27295603, - 0.00050652, 0.00031035, 7.27244951, 0.99845259, 0.99918313, 0.49320186], 6147 [- 6.27295623, - 0.00050644, 0.00031030, 7.27244979, 0.99845284, 0.99918327, 0.49320185], 6148 [- 6.27295643, - 0.00050636, 0.00031025, 7.27245007, 0.99845310, 0.99918340, 0.49320186], 6149 [- 6.27295663, - 0.00050627, 0.00031019, 7.27245035, 0.99845335, 0.99918353, 0.49320197], 6150 [- 6.27295682, - 0.00050619, 0.00031014, 7.27245063, 0.99845360, 0.99918367, 0.49320197], 6151 [- 6.27295702, - 0.00050611, 0.00031009, 7.27245091, 0.99845386, 0.99918380, 0.49320194], 6152 [- 6.27295722, - 0.00050602, 0.00031004, 7.27245120, 0.99845411, 0.99918393, 0.49320202], 6153 [- 6.27295742, - 0.00050594, 0.00030999, 7.27245148, 0.99845436, 0.99918407, 0.49320205], 6154 [- 6.27295762, - 0.00050586, 0.00030994, 7.27245176, 0.99845462, 0.99918420, 0.49320207], 6155 [- 6.27295781, - 0.00050578, 0.00030989, 7.27245204, 0.99845487, 0.99918433, 0.49320207], 6156 [- 6.27295801, - 0.00050569, 0.00030984, 7.27245232, 0.99845512, 0.99918447, 0.49320217], 6157 [- 6.27295821, - 0.00050561, 0.00030979, 7.27245260, 0.99845537, 0.99918460, 0.49320221], 6158 [- 6.27295841, - 0.00050553, 0.00030974, 7.27245288, 0.99845563, 0.99918473, 0.49320219], 6159 [- 6.27295860, - 0.00050545, 0.00030969, 7.27245316, 0.99845588, 0.99918487, 0.49320222], 6160 [- 6.27295880, - 0.00050536, 0.00030964, 7.27245344, 0.99845613, 0.99918500, 0.49320228], 6161 [- 6.27295900, - 0.00050528, 0.00030959, 7.27245372, 0.99845638, 0.99918513, 0.49320230], 6162 [- 6.27295920, - 0.00050520, 0.00030954, 7.27245400, 0.99845663, 0.99918526, 0.49320235], 6163 [- 6.27295939, - 0.00050512, 0.00030949, 7.27245428, 0.99845689, 0.99918540, 0.49320231], 6164 [- 6.27295959, - 0.00050503, 0.00030944, 7.27245456, 0.99845714, 0.99918553, 0.49320239], 6165 [- 6.27295979, - 0.00050495, 0.00030938, 7.27245484, 0.99845739, 0.99918566, 0.49320239], 6166 [- 6.27295998, - 0.00050487, 0.00030933, 7.27245512, 0.99845764, 0.99918580, 0.49320243], 6167 [- 6.27296018, - 0.00050479, 0.00030928, 7.27245539, 0.99845789, 0.99918593, 0.49320240], 6168 [- 6.27296038, - 0.00050470, 0.00030923, 7.27245567, 0.99845814, 0.99918606, 0.49320248], 6169 [- 6.27296058, - 0.00050462, 0.00030918, 7.27245595, 0.99845840, 0.99918619, 0.49320254], 6170 [- 6.27296077, - 0.00050454, 0.00030913, 7.27245623, 0.99845865, 0.99918633, 0.49320254], 6171 [- 6.27296097, - 0.00050446, 0.00030908, 7.27245651, 0.99845890, 0.99918646, 0.49320257], 6172 [- 6.27296117, - 0.00050438, 0.00030903, 7.27245679, 0.99845915, 0.99918659, 0.49320260], 6173 [- 6.27296136, - 0.00050429, 0.00030898, 7.27245707, 0.99845940, 0.99918673, 0.49320260], 6174 [- 6.27296156, - 0.00050421, 0.00030893, 7.27245735, 0.99845965, 0.99918686, 0.49320264], 6175 [- 6.27296176, - 0.00050413, 0.00030888, 7.27245763, 0.99845990, 0.99918699, 0.49320270], 6176 [- 6.27296195, - 0.00050405, 0.00030883, 7.27245790, 0.99846015, 0.99918712, 0.49320271], 6177 [- 6.27296215, - 0.00050397, 0.00030878, 7.27245818, 0.99846040, 0.99918726, 0.49320271], 6178 [- 6.27296234, - 0.00050388, 0.00030873, 7.27245846, 0.99846066, 0.99918739, 0.49320279], 6179 [- 6.27296254, - 0.00050380, 0.00030868, 7.27245874, 0.99846091, 0.99918752, 0.49320285], 6180 [- 6.27296274, - 0.00050372, 0.00030863, 7.27245902, 0.99846116, 0.99918765, 0.49320278], 6181 [- 6.27296293, - 0.00050364, 0.00030858, 7.27245930, 0.99846141, 0.99918778, 0.49320286], 6182 [- 6.27296313, - 0.00050356, 0.00030853, 7.27245957, 0.99846166, 0.99918792, 0.49320284], 6183 [- 6.27296332, - 0.00050347, 0.00030848, 7.27245985, 0.99846191, 0.99918805, 0.49320294], 6184 [- 6.27296352, - 0.00050339, 0.00030843, 7.27246013, 0.99846216, 0.99918818, 0.49320297], 6185 [- 6.27296372, - 0.00050331, 0.00030838, 7.27246041, 0.99846241, 0.99918831, 0.49320295], 6186 [- 6.27296391, - 0.00050323, 0.00030833, 7.27246068, 0.99846266, 0.99918844, 0.49320301], 6187 [- 6.27296411, - 0.00050315, 0.00030828, 7.27246096, 0.99846291, 0.99918858, 0.49320303], 6188 [- 6.27296430, - 0.00050306, 0.00030823, 7.27246124, 0.99846316, 0.99918871, 0.49320305], 6189 [- 6.27296450, - 0.00050298, 0.00030818, 7.27246152, 0.99846341, 0.99918884, 0.49320310], 6190 [- 6.27296469, - 0.00050290, 0.00030813, 7.27246179, 0.99846366, 0.99918897, 0.49320314], 6191 [- 6.27296489, - 0.00050282, 0.00030808, 7.27246207, 0.99846391, 0.99918910, 0.49320318], 6192 [- 6.27296509, - 0.00050274, 0.00030803, 7.27246235, 0.99846416, 0.99918924, 0.49320319], 6193 [- 6.27296528, - 0.00050266, 0.00030798, 7.27246263, 0.99846441, 0.99918937, 0.49320326], 6194 [- 6.27296548, - 0.00050257, 0.00030793, 7.27246290, 0.99846466, 0.99918950, 0.49320325], 6195 [- 6.27296567, - 0.00050249, 0.00030788, 7.27246318, 0.99846490, 0.99918963, 0.49320329], 6196 [- 6.27296587, - 0.00050241, 0.00030783, 7.27246346, 0.99846515, 0.99918976, 0.49320330], 6197 [- 6.27296606, - 0.00050233, 0.00030778, 7.27246373, 0.99846540, 0.99918989, 0.49320333], 6198 [- 6.27296626, - 0.00050225, 0.00030773, 7.27246401, 0.99846565, 0.99919002, 0.49320339], 6199 [- 6.27296645, - 0.00050217, 0.00030768, 7.27246429, 0.99846590, 0.99919016, 0.49320339], 6200 [- 6.27296665, - 0.00050209, 0.00030763, 7.27246456, 0.99846615, 0.99919029, 0.49320338], 6201 [- 6.27296684, - 0.00050200, 0.00030758, 7.27246484, 0.99846640, 0.99919042, 0.49320344], 6202 [- 6.27296704, - 0.00050192, 0.00030753, 7.27246511, 0.99846665, 0.99919055, 0.49320353], 6203 [- 6.27296723, - 0.00050184, 0.00030748, 7.27246539, 0.99846690, 0.99919068, 0.49320349], 6204 [- 6.27296743, - 0.00050176, 0.00030743, 7.27246567, 0.99846715, 0.99919081, 0.49320357], 6205 [- 6.27296762, - 0.00050168, 0.00030738, 7.27246594, 0.99846739, 0.99919094, 0.49320354], 6206 [- 6.27296781, - 0.00050160, 0.00030733, 7.27246622, 0.99846764, 0.99919108, 0.49320360], 6207 [- 6.27296801, - 0.00050152, 0.00030728, 7.27246649, 0.99846789, 0.99919121, 0.49320366], 6208 [- 6.27296820, - 0.00050143, 0.00030723, 7.27246677, 0.99846814, 0.99919134, 0.49320363], 6209 [- 6.27296840, - 0.00050135, 0.00030718, 7.27246704, 0.99846839, 0.99919147, 0.49320369], 6210 [- 6.27296859, - 0.00050127, 0.00030713, 7.27246732, 0.99846864, 0.99919160, 0.49320376], 6211 [- 6.27296879, - 0.00050119, 0.00030708, 7.27246760, 0.99846888, 0.99919173, 0.49320377], 6212 [- 6.27296898, - 0.00050111, 0.00030703, 7.27246787, 0.99846913, 0.99919186, 0.49320381], 6213 [- 6.27296917, - 0.00050103, 0.00030698, 7.27246815, 0.99846938, 0.99919199, 0.49320377], 6214 [- 6.27296937, - 0.00050095, 0.00030693, 7.27246842, 0.99846963, 0.99919212, 0.49320384], 6215 [- 6.27296956, - 0.00050087, 0.00030688, 7.27246870, 0.99846987, 0.99919225, 0.49320380], 6216 [- 6.27296976, - 0.00050079, 0.00030683, 7.27246897, 0.99847012, 0.99919238, 0.49320387], 6217 [- 6.27296995, - 0.00050070, 0.00030678, 7.27246925, 0.99847037, 0.99919251, 0.49320387], 6218 [- 6.27297014, - 0.00050062, 0.00030673, 7.27246952, 0.99847062, 0.99919265, 0.49320397], 6219 [- 6.27297034, - 0.00050054, 0.00030668, 7.27246980, 0.99847086, 0.99919278, 0.49320397], 6220 [- 6.27297053, - 0.00050046, 0.00030663, 7.27247007, 0.99847111, 0.99919291, 0.49320399], 6221 [- 6.27297073, - 0.00050038, 0.00030658, 7.27247034, 0.99847136, 0.99919304, 0.49320405], 6222 [- 6.27297092, - 0.00050030, 0.00030653, 7.27247062, 0.99847161, 0.99919317, 0.49320409], 6223 [- 6.27297111, - 0.00050022, 0.00030648, 7.27247089, 0.99847185, 0.99919330, 0.49320412], 6224 [- 6.27297131, - 0.00050014, 0.00030643, 7.27247117, 0.99847210, 0.99919343, 0.49320414], 6225 [- 6.27297150, - 0.00050006, 0.00030638, 7.27247144, 0.99847235, 0.99919356, 0.49320414], 6226 [- 6.27297169, - 0.00049998, 0.00030633, 7.27247172, 0.99847259, 0.99919369, 0.49320417], 6227 [- 6.27297189, - 0.00049990, 0.00030629, 7.27247199, 0.99847284, 0.99919382, 0.49320418], 6228 [- 6.27297208, - 0.00049982, 0.00030624, 7.27247226, 0.99847309, 0.99919395, 0.49320420], 6229 [- 6.27297227, - 0.00049973, 0.00030619, 7.27247254, 0.99847333, 0.99919408, 0.49320426], 6230 [- 6.27297246, - 0.00049965, 0.00030614, 7.27247281, 0.99847358, 0.99919421, 0.49320420], 6231 [- 6.27297266, - 0.00049957, 0.00030609, 7.27247308, 0.99847383, 0.99919434, 0.49320435], 6232 [- 6.27297285, - 0.00049949, 0.00030604, 7.27247336, 0.99847407, 0.99919447, 0.49320431], 6233 [- 6.27297304, - 0.00049941, 0.00030599, 7.27247363, 0.99847432, 0.99919460, 0.49320437], 6234 [- 6.27297324, - 0.00049933, 0.00030594, 7.27247390, 0.99847457, 0.99919473, 0.49320437], 6235 [- 6.27297343, - 0.00049925, 0.00030589, 7.27247418, 0.99847481, 0.99919486, 0.49320443], 6236 [- 6.27297362, - 0.00049917, 0.00030584, 7.27247445, 0.99847506, 0.99919499, 0.49320448], 6237 [- 6.27297381, - 0.00049909, 0.00030579, 7.27247472, 0.99847530, 0.99919512, 0.49320448], 6238 [- 6.27297401, - 0.00049901, 0.00030574, 7.27247500, 0.99847555, 0.99919525, 0.49320449], 6239 [- 6.27297420, - 0.00049893, 0.00030569, 7.27247527, 0.99847580, 0.99919538, 0.49320451], 6240 [- 6.27297439, - 0.00049885, 0.00030564, 7.27247554, 0.99847604, 0.99919551, 0.49320453], 6241 [- 6.27297458, - 0.00049877, 0.00030559, 7.27247582, 0.99847629, 0.99919564, 0.49320461], 6242 [- 6.27297478, - 0.00049869, 0.00030554, 7.27247609, 0.99847653, 0.99919577, 0.49320461], 6243 [- 6.27297497, - 0.00049861, 0.00030550, 7.27247636, 0.99847678, 0.99919590, 0.49320465], 6244 [- 6.27297516, - 0.00049853, 0.00030545, 7.27247663, 0.99847702, 0.99919603, 0.49320475], 6245 [- 6.27297535, - 0.00049845, 0.00030540, 7.27247691, 0.99847727, 0.99919616, 0.49320473], 6246 [- 6.27297554, - 0.00049837, 0.00030535, 7.27247718, 0.99847751, 0.99919629, 0.49320474], 6247 [- 6.27297574, - 0.00049829, 0.00030530, 7.27247745, 0.99847776, 0.99919641, 0.49320475], 6248 [- 6.27297593, - 0.00049821, 0.00030525, 7.27247772, 0.99847800, 0.99919654, 0.49320486], 6249 [- 6.27297612, - 0.00049813, 0.00030520, 7.27247799, 0.99847825, 0.99919667, 0.49320483], 6250 [- 6.27297631, - 0.00049805, 0.00030515, 7.27247827, 0.99847849, 0.99919680, 0.49320494], 6251 [- 6.27297650, - 0.00049797, 0.00030510, 7.27247854, 0.99847874, 0.99919693, 0.49320494], 6252 [- 6.27297670, - 0.00049789, 0.00030505, 7.27247881, 0.99847898, 0.99919706, 0.49320488], 6253 [- 6.27297689, - 0.00049781, 0.00030500, 7.27247908, 0.99847923, 0.99919719, 0.49320497], 6254 [- 6.27297708, - 0.00049773, 0.00030495, 7.27247935, 0.99847947, 0.99919732, 0.49320498], 6255 [- 6.27297727, - 0.00049765, 0.00030491, 7.27247962, 0.99847972, 0.99919745, 0.49320504], 6256 [- 6.27297746, - 0.00049757, 0.00030486, 7.27247990, 0.99847996, 0.99919758, 0.49320498], 6257 [- 6.27297765, - 0.00049749, 0.00030481, 7.27248017, 0.99848021, 0.99919771, 0.49320508], 6258 [- 6.27297784, - 0.00049741, 0.00030476, 7.27248044, 0.99848045, 0.99919784, 0.49320506], 6259 [- 6.27297804, - 0.00049733, 0.00030471, 7.27248071, 0.99848070, 0.99919796, 0.49320512], 6260 [- 6.27297823, - 0.00049725, 0.00030466, 7.27248098, 0.99848094, 0.99919809, 0.49320520], 6261 [- 6.27297842, - 0.00049717, 0.00030461, 7.27248125, 0.99848118, 0.99919822, 0.49320518], 6262 [- 6.27297861, - 0.00049709, 0.00030456, 7.27248152, 0.99848143, 0.99919835, 0.49320519], 6263 [- 6.27297880, - 0.00049701, 0.00030451, 7.27248179, 0.99848167, 0.99919848, 0.49320524], 6264 [- 6.27297899, - 0.00049693, 0.00030446, 7.27248206, 0.99848192, 0.99919861, 0.49320527], 6265 [- 6.27297918, - 0.00049685, 0.00030442, 7.27248233, 0.99848216, 0.99919874, 0.49320529], 6266 [- 6.27297937, - 0.00049677, 0.00030437, 7.27248260, 0.99848240, 0.99919887, 0.49320530], 6267 [- 6.27297956, - 0.00049669, 0.00030432, 7.27248288, 0.99848265, 0.99919899, 0.49320533], 6268 [- 6.27297975, - 0.00049661, 0.00030427, 7.27248315, 0.99848289, 0.99919912, 0.49320533], 6269 [- 6.27297994, - 0.00049653, 0.00030422, 7.27248342, 0.99848313, 0.99919925, 0.49320545], 6270 [- 6.27298013, - 0.00049645, 0.00030417, 7.27248369, 0.99848338, 0.99919938, 0.49320550], 6271 [- 6.27298033, - 0.00049637, 0.00030412, 7.27248396, 0.99848362, 0.99919951, 0.49320544], 6272 [- 6.27298052, - 0.00049629, 0.00030407, 7.27248423, 0.99848386, 0.99919964, 0.49320542], 6273 [- 6.27298071, - 0.00049621, 0.00030403, 7.27248450, 0.99848411, 0.99919976, 0.49320549], 6274 [- 6.27298090, - 0.00049613, 0.00030398, 7.27248477, 0.99848435, 0.99919989, 0.49320553], 6275 [- 6.27298109, - 0.00049605, 0.00030393, 7.27248504, 0.99848459, 0.99920002, 0.49320549], 6276 [- 6.27298128, - 0.00049597, 0.00030388, 7.27248531, 0.99848484, 0.99920015, 0.49320559], 6277 [- 6.27298147, - 0.00049589, 0.00030383, 7.27248557, 0.99848508, 0.99920028, 0.49320560], 6278 [- 6.27298166, - 0.00049581, 0.00030378, 7.27248584, 0.99848532, 0.99920041, 0.49320562], 6279 [- 6.27298185, - 0.00049573, 0.00030373, 7.27248611, 0.99848556, 0.99920053, 0.49320572], 6280 [- 6.27298204, - 0.00049565, 0.00030368, 7.27248638, 0.99848581, 0.99920066, 0.49320570], 6281 [- 6.27298223, - 0.00049557, 0.00030364, 7.27248665, 0.99848605, 0.99920079, 0.49320571], 6282 [- 6.27298242, - 0.00049550, 0.00030359, 7.27248692, 0.99848629, 0.99920092, 0.49320573], 6283 [- 6.27298261, - 0.00049542, 0.00030354, 7.27248719, 0.99848653, 0.99920105, 0.49320576], 6284 [- 6.27298280, - 0.00049534, 0.00030349, 7.27248746, 0.99848678, 0.99920117, 0.49320585], 6285 [- 6.27298299, - 0.00049526, 0.00030344, 7.27248773, 0.99848702, 0.99920130, 0.49320584], 6286 [- 6.27298318, - 0.00049518, 0.00030339, 7.27248800, 0.99848726, 0.99920143, 0.49320590], 6287 [- 6.27298336, - 0.00049510, 0.00030334, 7.27248827, 0.99848750, 0.99920156, 0.49320592], 6288 [- 6.27298355, - 0.00049502, 0.00030330, 7.27248853, 0.99848774, 0.99920168, 0.49320594], 6289 [- 6.27298374, - 0.00049494, 0.00030325, 7.27248880, 0.99848799, 0.99920181, 0.49320595], 6290 [- 6.27298393, - 0.00049486, 0.00030320, 7.27248907, 0.99848823, 0.99920194, 0.49320597], 6291 [- 6.27298412, - 0.00049478, 0.00030315, 7.27248934, 0.99848847, 0.99920207, 0.49320596], 6292 [- 6.27298431, - 0.00049470, 0.00030310, 7.27248961, 0.99848871, 0.99920220, 0.49320603], 6293 [- 6.27298450, - 0.00049462, 0.00030305, 7.27248988, 0.99848895, 0.99920232, 0.49320613], 6294 [- 6.27298469, - 0.00049455, 0.00030300, 7.27249014, 0.99848919, 0.99920245, 0.49320607], 6295 [- 6.27298488, - 0.00049447, 0.00030296, 7.27249041, 0.99848944, 0.99920258, 0.49320616], 6296 [- 6.27298507, - 0.00049439, 0.00030291, 7.27249068, 0.99848968, 0.99920270, 0.49320618], 6297 [- 6.27298526, - 0.00049431, 0.00030286, 7.27249095, 0.99848992, 0.99920283, 0.49320613], 6298 [- 6.27298545, - 0.00049423, 0.00030281, 7.27249122, 0.99849016, 0.99920296, 0.49320620], 6299 [- 6.27298563, - 0.00049415, 0.00030276, 7.27249148, 0.99849040, 0.99920309, 0.49320622], 6300 [- 6.27298582, - 0.00049407, 0.00030271, 7.27249175, 0.99849064, 0.99920321, 0.49320626], 6301 [- 6.27298601, - 0.00049399, 0.00030267, 7.27249202, 0.99849088, 0.99920334, 0.49320625], 6302 [- 6.27298620, - 0.00049391, 0.00030262, 7.27249229, 0.99849112, 0.99920347, 0.49320640], 6303 [- 6.27298639, - 0.00049384, 0.00030257, 7.27249255, 0.99849136, 0.99920360, 0.49320640], 6304 [- 6.27298658, - 0.00049376, 0.00030252, 7.27249282, 0.99849161, 0.99920372, 0.49320636], 6305 [- 6.27298677, - 0.00049368, 0.00030247, 7.27249309, 0.99849185, 0.99920385, 0.49320641], 6306 [- 6.27298695, - 0.00049360, 0.00030242, 7.27249336, 0.99849209, 0.99920398, 0.49320644], 6307 [- 6.27298714, - 0.00049352, 0.00030238, 7.27249362, 0.99849233, 0.99920410, 0.49320643], 6308 [- 6.27298733, - 0.00049344, 0.00030233, 7.27249389, 0.99849257, 0.99920423, 0.49320647], 6309 [- 6.27298752, - 0.00049336, 0.00030228, 7.27249416, 0.99849281, 0.99920436, 0.49320649], 6310 [- 6.27298771, - 0.00049328, 0.00030223, 7.27249442, 0.99849305, 0.99920448, 0.49320659], 6311 [- 6.27298790, - 0.00049321, 0.00030218, 7.27249469, 0.99849329, 0.99920461, 0.49320657], 6312 [- 6.27298808, - 0.00049313, 0.00030214, 7.27249496, 0.99849353, 0.99920474, 0.49320661], 6313 [- 6.27298827, - 0.00049305, 0.00030209, 7.27249522, 0.99849377, 0.99920486, 0.49320660], 6314 [- 6.27298846, - 0.00049297, 0.00030204, 7.27249549, 0.99849401, 0.99920499, 0.49320663], 6315 [- 6.27298865, - 0.00049289, 0.00030199, 7.27249576, 0.99849425, 0.99920512, 0.49320673], 6316 [- 6.27298883, - 0.00049281, 0.00030194, 7.27249602, 0.99849449, 0.99920524, 0.49320673], 6317 [- 6.27298902, - 0.00049273, 0.00030189, 7.27249629, 0.99849473, 0.99920537, 0.49320669], 6318 [- 6.27298921, - 0.00049266, 0.00030185, 7.27249655, 0.99849497, 0.99920550, 0.49320677], 6319 [- 6.27298940, - 0.00049258, 0.00030180, 7.27249682, 0.99849521, 0.99920562, 0.49320680], 6320 [- 6.27298959, - 0.00049250, 0.00030175, 7.27249709, 0.99849545, 0.99920575, 0.49320687], 6321 [- 6.27298977, - 0.00049242, 0.00030170, 7.27249735, 0.99849569, 0.99920588, 0.49320693], 6322 [- 6.27298996, - 0.00049234, 0.00030165, 7.27249762, 0.99849593, 0.99920600, 0.49320681], 6323 [- 6.27299015, - 0.00049226, 0.00030161, 7.27249788, 0.99849616, 0.99920613, 0.49320699], 6324 [- 6.27299033, - 0.00049219, 0.00030156, 7.27249815, 0.99849640, 0.99920626, 0.49320687], 6325 [- 6.27299052, - 0.00049211, 0.00030151, 7.27249841, 0.99849664, 0.99920638, 0.49320699], 6326 [- 6.27299071, - 0.00049203, 0.00030146, 7.27249868, 0.99849688, 0.99920651, 0.49320705], 6327 [- 6.27299090, - 0.00049195, 0.00030141, 7.27249894, 0.99849712, 0.99920663, 0.49320709], 6328 [- 6.27299108, - 0.00049187, 0.00030137, 7.27249921, 0.99849736, 0.99920676, 0.49320704], 6329 [- 6.27299127, - 0.00049180, 0.00030132, 7.27249948, 0.99849760, 0.99920689, 0.49320700], 6330 [- 6.27299146, - 0.00049172, 0.00030127, 7.27249974, 0.99849784, 0.99920701, 0.49320709], 6331 [- 6.27299164, - 0.00049164, 0.00030122, 7.27250001, 0.99849808, 0.99920714, 0.49320722], 6332 [- 6.27299183, - 0.00049156, 0.00030118, 7.27250027, 0.99849831, 0.99920726, 0.49320713], 6333 [- 6.27299202, - 0.00049148, 0.00030113, 7.27250053, 0.99849855, 0.99920739, 0.49320717], 6334 [- 6.27299220, - 0.00049140, 0.00030108, 7.27250080, 0.99849879, 0.99920752, 0.49320720], 6335 [- 6.27299239, - 0.00049133, 0.00030103, 7.27250106, 0.99849903, 0.99920764, 0.49320724], 6336 [- 6.27299258, - 0.00049125, 0.00030098, 7.27250133, 0.99849927, 0.99920777, 0.49320731], 6337 [- 6.27299276, - 0.00049117, 0.00030094, 7.27250159, 0.99849951, 0.99920789, 0.49320733], 6338 [- 6.27299295, - 0.00049109, 0.00030089, 7.27250186, 0.99849974, 0.99920802, 0.49320736], 6339 [- 6.27299314, - 0.00049102, 0.00030084, 7.27250212, 0.99849998, 0.99920814, 0.49320742], 6340 [- 6.27299332, - 0.00049094, 0.00030079, 7.27250239, 0.99850022, 0.99920827, 0.49320737], 6341 [- 6.27299351, - 0.00049086, 0.00030075, 7.27250265, 0.99850046, 0.99920840, 0.49320741], 6342 [- 6.27299370, - 0.00049078, 0.00030070, 7.27250291, 0.99850070, 0.99920852, 0.49320747], 6343 [- 6.27299388, - 0.00049070, 0.00030065, 7.27250318, 0.99850093, 0.99920865, 0.49320746], 6344 [- 6.27299407, - 0.00049063, 0.00030060, 7.27250344, 0.99850117, 0.99920877, 0.49320747], 6345 [- 6.27299425, - 0.00049055, 0.00030055, 7.27250371, 0.99850141, 0.99920890, 0.49320753], 6346 [- 6.27299444, - 0.00049047, 0.00030051, 7.27250397, 0.99850165, 0.99920902, 0.49320754], 6347 [- 6.27299463, - 0.00049039, 0.00030046, 7.27250423, 0.99850188, 0.99920915, 0.49320761], 6348 [- 6.27299481, - 0.00049032, 0.00030041, 7.27250450, 0.99850212, 0.99920927, 0.49320761], 6349 [- 6.27299500, - 0.00049024, 0.00030036, 7.27250476, 0.99850236, 0.99920940, 0.49320763], 6350 [- 6.27299518, - 0.00049016, 0.00030032, 7.27250502, 0.99850260, 0.99920952, 0.49320763], 6351 [- 6.27299537, - 0.00049008, 0.00030027, 7.27250529, 0.99850283, 0.99920965, 0.49320764], 6352 [- 6.27299556, - 0.00049000, 0.00030022, 7.27250555, 0.99850307, 0.99920977, 0.49320768], 6353 [- 6.27299574, - 0.00048993, 0.00030017, 7.27250581, 0.99850331, 0.99920990, 0.49320774], 6354 [- 6.27299593, - 0.00048985, 0.00030013, 7.27250608, 0.99850354, 0.99921002, 0.49320770], 6355 [- 6.27299611, - 0.00048977, 0.00030008, 7.27250634, 0.99850378, 0.99921015, 0.49320782], 6356 [- 6.27299630, - 0.00048969, 0.00030003, 7.27250660, 0.99850402, 0.99921027, 0.49320781], 6357 [- 6.27299648, - 0.00048962, 0.00029998, 7.27250687, 0.99850426, 0.99921040, 0.49320784], 6358 [- 6.27299667, - 0.00048954, 0.00029994, 7.27250713, 0.99850449, 0.99921052, 0.49320787], 6359 [- 6.27299685, - 0.00048946, 0.00029989, 7.27250739, 0.99850473, 0.99921065, 0.49320791], 6360 [- 6.27299704, - 0.00048938, 0.00029984, 7.27250765, 0.99850496, 0.99921077, 0.49320794], 6361 [- 6.27299722, - 0.00048931, 0.00029979, 7.27250792, 0.99850520, 0.99921090, 0.49320795], 6362 [- 6.27299741, - 0.00048923, 0.00029975, 7.27250818, 0.99850544, 0.99921102, 0.49320801], 6363 [- 6.27299759, - 0.00048915, 0.00029970, 7.27250844, 0.99850567, 0.99921115, 0.49320802], 6364 [- 6.27299778, - 0.00048908, 0.00029965, 7.27250870, 0.99850591, 0.99921127, 0.49320805], 6365 [- 6.27299796, - 0.00048900, 0.00029960, 7.27250896, 0.99850615, 0.99921140, 0.49320810], 6366 [- 6.27299815, - 0.00048892, 0.00029956, 7.27250923, 0.99850638, 0.99921152, 0.49320806], 6367 [- 6.27299833, - 0.00048884, 0.00029951, 7.27250949, 0.99850662, 0.99921165, 0.49320815], 6368 [- 6.27299852, - 0.00048877, 0.00029946, 7.27250975, 0.99850685, 0.99921177, 0.49320816], 6369 [- 6.27299870, - 0.00048869, 0.00029941, 7.27251001, 0.99850709, 0.99921190, 0.49320817], 6370 [- 6.27299889, - 0.00048861, 0.00029937, 7.27251027, 0.99850733, 0.99921202, 0.49320820], 6371 [- 6.27299907, - 0.00048854, 0.00029932, 7.27251054, 0.99850756, 0.99921214, 0.49320826], 6372 [- 6.27299926, - 0.00048846, 0.00029927, 7.27251080, 0.99850780, 0.99921227, 0.49320827], 6373 [- 6.27299944, - 0.00048838, 0.00029923, 7.27251106, 0.99850803, 0.99921239, 0.49320823], 6374 [- 6.27299962, - 0.00048830, 0.00029918, 7.27251132, 0.99850827, 0.99921252, 0.49320833], 6375 [- 6.27299981, - 0.00048823, 0.00029913, 7.27251158, 0.99850850, 0.99921264, 0.49320833], 6376 [- 6.27299999, - 0.00048815, 0.00029908, 7.27251184, 0.99850874, 0.99921277, 0.49320839], 6377 [- 6.27300018, - 0.00048807, 0.00029904, 7.27251210, 0.99850897, 0.99921289, 0.49320841], 6378 [- 6.27300036, - 0.00048800, 0.00029899, 7.27251236, 0.99850921, 0.99921301, 0.49320850], 6379 [- 6.27300055, - 0.00048792, 0.00029894, 7.27251263, 0.99850944, 0.99921314, 0.49320846], 6380 [- 6.27300073, - 0.00048784, 0.00029890, 7.27251289, 0.99850968, 0.99921326, 0.49320848], 6381 [- 6.27300091, - 0.00048777, 0.00029885, 7.27251315, 0.99850991, 0.99921339, 0.49320847], 6382 [- 6.27300110, - 0.00048769, 0.00029880, 7.27251341, 0.99851015, 0.99921351, 0.49320858], 6383 [- 6.27300128, - 0.00048761, 0.00029875, 7.27251367, 0.99851038, 0.99921363, 0.49320864], 6384 [- 6.27300146, - 0.00048754, 0.00029871, 7.27251393, 0.99851062, 0.99921376, 0.49320855], 6385 [- 6.27300165, - 0.00048746, 0.00029866, 7.27251419, 0.99851085, 0.99921388, 0.49320856], 6386 [- 6.27300183, - 0.00048738, 0.00029861, 7.27251445, 0.99851109, 0.99921401, 0.49320863], 6387 [- 6.27300202, - 0.00048730, 0.00029857, 7.27251471, 0.99851132, 0.99921413, 0.49320867], 6388 [- 6.27300220, - 0.00048723, 0.00029852, 7.27251497, 0.99851156, 0.99921425, 0.49320861], 6389 [- 6.27300238, - 0.00048715, 0.00029847, 7.27251523, 0.99851179, 0.99921438, 0.49320874], 6390 [- 6.27300257, - 0.00048707, 0.00029842, 7.27251549, 0.99851202, 0.99921450, 0.49320874], 6391 [- 6.27300275, - 0.00048700, 0.00029838, 7.27251575, 0.99851226, 0.99921462, 0.49320881], 6392 [- 6.27300293, - 0.00048692, 0.00029833, 7.27251601, 0.99851249, 0.99921475, 0.49320880], 6393 [- 6.27300312, - 0.00048685, 0.00029828, 7.27251627, 0.99851273, 0.99921487, 0.49320887], 6394 [- 6.27300330, - 0.00048677, 0.00029824, 7.27251653, 0.99851296, 0.99921499, 0.49320886], 6395 [- 6.27300348, - 0.00048669, 0.00029819, 7.27251679, 0.99851320, 0.99921512, 0.49320893], 6396 [- 6.27300367, - 0.00048662, 0.00029814, 7.27251705, 0.99851343, 0.99921524, 0.49320893], 6397 [- 6.27300385, - 0.00048654, 0.00029810, 7.27251731, 0.99851366, 0.99921536, 0.49320895], 6398 [- 6.27300403, - 0.00048646, 0.00029805, 7.27251757, 0.99851390, 0.99921549, 0.49320892], 6399 [- 6.27300421, - 0.00048639, 0.00029800, 7.27251783, 0.99851413, 0.99921561, 0.49320898], 6400 [- 6.27300440, - 0.00048631, 0.00029796, 7.27251809, 0.99851436, 0.99921573, 0.49320901], 6401 [- 6.27300458, - 0.00048623, 0.00029791, 7.27251835, 0.99851460, 0.99921586, 0.49320901], 6402 [- 6.27300476, - 0.00048616, 0.00029786, 7.27251861, 0.99851483, 0.99921598, 0.49320912], 6403 [- 6.27300495, - 0.00048608, 0.00029782, 7.27251886, 0.99851506, 0.99921610, 0.49320910], 6404 [- 6.27300513, - 0.00048600, 0.00029777, 7.27251912, 0.99851530, 0.99921623, 0.49320913], 6405 [- 6.27300531, - 0.00048593, 0.00029772, 7.27251938, 0.99851553, 0.99921635, 0.49320917], 6406 [- 6.27300549, - 0.00048585, 0.00029768, 7.27251964, 0.99851576, 0.99921647, 0.49320916], 6407 [- 6.27300568, - 0.00048578, 0.00029763, 7.27251990, 0.99851600, 0.99921660, 0.49320920], 6408 [- 6.27300586, - 0.00048570, 0.00029758, 7.27252016, 0.99851623, 0.99921672, 0.49320924], 6409 [- 6.27300604, - 0.00048562, 0.00029753, 7.27252042, 0.99851646, 0.99921684, 0.49320926], 6410 [- 6.27300622, - 0.00048555, 0.00029749, 7.27252068, 0.99851669, 0.99921696, 0.49320930], 6411 [- 6.27300640, - 0.00048547, 0.00029744, 7.27252093, 0.99851693, 0.99921709, 0.49320931], 6412 [- 6.27300659, - 0.00048539, 0.00029739, 7.27252119, 0.99851716, 0.99921721, 0.49320938], 6413 [- 6.27300677, - 0.00048532, 0.00029735, 7.27252145, 0.99851739, 0.99921733, 0.49320939], 6414 [- 6.27300695, - 0.00048524, 0.00029730, 7.27252171, 0.99851763, 0.99921746, 0.49320948], 6415 [- 6.27300713, - 0.00048517, 0.00029725, 7.27252197, 0.99851786, 0.99921758, 0.49320954], 6416 [- 6.27300732, - 0.00048509, 0.00029721, 7.27252222, 0.99851809, 0.99921770, 0.49320950], 6417 [- 6.27300750, - 0.00048501, 0.00029716, 7.27252248, 0.99851832, 0.99921782, 0.49320952], 6418 [- 6.27300768, - 0.00048494, 0.00029712, 7.27252274, 0.99851855, 0.99921795, 0.49320954], 6419 [- 6.27300786, - 0.00048486, 0.00029707, 7.27252300, 0.99851879, 0.99921807, 0.49320960], 6420 [- 6.27300804, - 0.00048479, 0.00029702, 7.27252326, 0.99851902, 0.99921819, 0.49320959], 6421 [- 6.27300822, - 0.00048471, 0.00029698, 7.27252351, 0.99851925, 0.99921831, 0.49320958], 6422 [- 6.27300841, - 0.00048463, 0.00029693, 7.27252377, 0.99851948, 0.99921844, 0.49320965], 6423 [- 6.27300859, - 0.00048456, 0.00029688, 7.27252403, 0.99851971, 0.99921856, 0.49320967], 6424 [- 6.27300877, - 0.00048448, 0.00029684, 7.27252429, 0.99851995, 0.99921868, 0.49320972], 6425 [- 6.27300895, - 0.00048441, 0.00029679, 7.27252454, 0.99852018, 0.99921880, 0.49320973], 6426 [- 6.27300913, - 0.00048433, 0.00029674, 7.27252480, 0.99852041, 0.99921893, 0.49320972], 6427 [- 6.27300931, - 0.00048426, 0.00029670, 7.27252506, 0.99852064, 0.99921905, 0.49320980], 6428 [- 6.27300949, - 0.00048418, 0.00029665, 7.27252531, 0.99852087, 0.99921917, 0.49320981], 6429 [- 6.27300968, - 0.00048410, 0.00029660, 7.27252557, 0.99852110, 0.99921929, 0.49320974], 6430 [- 6.27300986, - 0.00048403, 0.00029656, 7.27252583, 0.99852134, 0.99921941, 0.49320985], 6431 [- 6.27301004, - 0.00048395, 0.00029651, 7.27252608, 0.99852157, 0.99921954, 0.49320992], 6432 [- 6.27301022, - 0.00048388, 0.00029646, 7.27252634, 0.99852180, 0.99921966, 0.49320992], 6433 [- 6.27301040, - 0.00048380, 0.00029642, 7.27252660, 0.99852203, 0.99921978, 0.49320993], 6434 [- 6.27301058, - 0.00048373, 0.00029637, 7.27252685, 0.99852226, 0.99921990, 0.49320993], 6435 [- 6.27301076, - 0.00048365, 0.00029633, 7.27252711, 0.99852249, 0.99922002, 0.49321001], 6436 [- 6.27301094, - 0.00048357, 0.00029628, 7.27252737, 0.99852272, 0.99922015, 0.49321003], 6437 [- 6.27301112, - 0.00048350, 0.00029623, 7.27252762, 0.99852295, 0.99922027, 0.49321005], 6438 [- 6.27301130, - 0.00048342, 0.00029619, 7.27252788, 0.99852318, 0.99922039, 0.49321008], 6439 [- 6.27301148, - 0.00048335, 0.00029614, 7.27252814, 0.99852341, 0.99922051, 0.49321008], 6440 [- 6.27301166, - 0.00048327, 0.00029609, 7.27252839, 0.99852364, 0.99922063, 0.49321010], 6441 [- 6.27301185, - 0.00048320, 0.00029605, 7.27252865, 0.99852388, 0.99922075, 0.49321017], 6442 [- 6.27301203, - 0.00048312, 0.00029600, 7.27252890, 0.99852411, 0.99922088, 0.49321023], 6443 [- 6.27301221, - 0.00048305, 0.00029596, 7.27252916, 0.99852434, 0.99922100, 0.49321020], 6444 [- 6.27301239, - 0.00048297, 0.00029591, 7.27252942, 0.99852457, 0.99922112, 0.49321023], 6445 [- 6.27301257, - 0.00048290, 0.00029586, 7.27252967, 0.99852480, 0.99922124, 0.49321024], 6446 [- 6.27301275, - 0.00048282, 0.00029582, 7.27252993, 0.99852503, 0.99922136, 0.49321030], 6447 [- 6.27301293, - 0.00048275, 0.00029577, 7.27253018, 0.99852526, 0.99922148, 0.49321031], 6448 [- 6.27301311, - 0.00048267, 0.00029572, 7.27253044, 0.99852549, 0.99922161, 0.49321030], 6449 [- 6.27301329, - 0.00048259, 0.00029568, 7.27253069, 0.99852572, 0.99922173, 0.49321030], 6450 [- 6.27301347, - 0.00048252, 0.00029563, 7.27253095, 0.99852595, 0.99922185, 0.49321039], 6451 [- 6.27301365, - 0.00048244, 0.00029559, 7.27253120, 0.99852618, 0.99922197, 0.49321037], 6452 [- 6.27301383, - 0.00048237, 0.00029554, 7.27253146, 0.99852641, 0.99922209, 0.49321046], 6453 [- 6.27301401, - 0.00048229, 0.00029549, 7.27253171, 0.99852664, 0.99922221, 0.49321048], 6454 [- 6.27301419, - 0.00048222, 0.00029545, 7.27253197, 0.99852687, 0.99922233, 0.49321049], 6455 [- 6.27301437, - 0.00048214, 0.00029540, 7.27253222, 0.99852710, 0.99922245, 0.49321046], 6456 [- 6.27301455, - 0.00048207, 0.00029536, 7.27253248, 0.99852732, 0.99922258, 0.49321053], 6457 [- 6.27301473, - 0.00048199, 0.00029531, 7.27253273, 0.99852755, 0.99922270, 0.49321060], 6458 [- 6.27301491, - 0.00048192, 0.00029526, 7.27253299, 0.99852778, 0.99922282, 0.49321066], 6459 [- 6.27301509, - 0.00048184, 0.00029522, 7.27253324, 0.99852801, 0.99922294, 0.49321062], 6460 [- 6.27301526, - 0.00048177, 0.00029517, 7.27253350, 0.99852824, 0.99922306, 0.49321065], 6461 [- 6.27301544, - 0.00048169, 0.00029513, 7.27253375, 0.99852847, 0.99922318, 0.49321069], 6462 [- 6.27301562, - 0.00048162, 0.00029508, 7.27253400, 0.99852870, 0.99922330, 0.49321066], 6463 [- 6.27301580, - 0.00048154, 0.00029503, 7.27253426, 0.99852893, 0.99922342, 0.49321075], 6464 [- 6.27301598, - 0.00048147, 0.00029499, 7.27253451, 0.99852916, 0.99922354, 0.49321074], 6465 [- 6.27301616, - 0.00048139, 0.00029494, 7.27253477, 0.99852939, 0.99922366, 0.49321082], 6466 [- 6.27301634, - 0.00048132, 0.00029490, 7.27253502, 0.99852962, 0.99922378, 0.49321081], 6467 [- 6.27301652, - 0.00048124, 0.00029485, 7.27253528, 0.99852984, 0.99922391, 0.49321083], 6468 [- 6.27301670, - 0.00048117, 0.00029480, 7.27253553, 0.99853007, 0.99922403, 0.49321094], 6469 [- 6.27301688, - 0.00048109, 0.00029476, 7.27253578, 0.99853030, 0.99922415, 0.49321096], 6470 [- 6.27301706, - 0.00048102, 0.00029471, 7.27253604, 0.99853053, 0.99922427, 0.49321093], 6471 [- 6.27301724, - 0.00048095, 0.00029467, 7.27253629, 0.99853076, 0.99922439, 0.49321094], 6472 [- 6.27301741, - 0.00048087, 0.00029462, 7.27253654, 0.99853099, 0.99922451, 0.49321098], 6473 [- 6.27301759, - 0.00048080, 0.00029458, 7.27253680, 0.99853121, 0.99922463, 0.49321102], 6474 [- 6.27301777, - 0.00048072, 0.00029453, 7.27253705, 0.99853144, 0.99922475, 0.49321101], 6475 [- 6.27301795, - 0.00048065, 0.00029448, 7.27253730, 0.99853167, 0.99922487, 0.49321109], 6476 [- 6.27301813, - 0.00048057, 0.00029444, 7.27253756, 0.99853190, 0.99922499, 0.49321107], 6477 [- 6.27301831, - 0.00048050, 0.00029439, 7.27253781, 0.99853213, 0.99922511, 0.49321107], 6478 [- 6.27301849, - 0.00048042, 0.00029435, 7.27253806, 0.99853235, 0.99922523, 0.49321110], 6479 [- 6.27301866, - 0.00048035, 0.00029430, 7.27253832, 0.99853258, 0.99922535, 0.49321118], 6480 [- 6.27301884, - 0.00048027, 0.00029426, 7.27253857, 0.99853281, 0.99922547, 0.49321119], 6481 [- 6.27301902, - 0.00048020, 0.00029421, 7.27253882, 0.99853304, 0.99922559, 0.49321116], 6482 [- 6.27301920, - 0.00048012, 0.00029416, 7.27253907, 0.99853327, 0.99922571, 0.49321127], 6483 [- 6.27301938, - 0.00048005, 0.00029412, 7.27253933, 0.99853349, 0.99922583, 0.49321123], 6484 [- 6.27301956, - 0.00047998, 0.00029407, 7.27253958, 0.99853372, 0.99922595, 0.49321129], 6485 [- 6.27301973, - 0.00047990, 0.00029403, 7.27253983, 0.99853395, 0.99922607, 0.49321135], 6486 [- 6.27301991, - 0.00047983, 0.00029398, 7.27254008, 0.99853418, 0.99922619, 0.49321135], 6487 [- 6.27302009, - 0.00047975, 0.00029394, 7.27254034, 0.99853440, 0.99922631, 0.49321139], 6488 [- 6.27302027, - 0.00047968, 0.00029389, 7.27254059, 0.99853463, 0.99922643, 0.49321146], 6489 [- 6.27302044, - 0.00047960, 0.00029384, 7.27254084, 0.99853486, 0.99922655, 0.49321142], 6490 [- 6.27302062, - 0.00047953, 0.00029380, 7.27254109, 0.99853508, 0.99922667, 0.49321144], 6491 [- 6.27302080, - 0.00047946, 0.00029375, 7.27254135, 0.99853531, 0.99922679, 0.49321144], 6492 [- 6.27302098, - 0.00047938, 0.00029371, 7.27254160, 0.99853554, 0.99922691, 0.49321157], 6493 [- 6.27302116, - 0.00047931, 0.00029366, 7.27254185, 0.99853577, 0.99922703, 0.49321152], 6494 [- 6.27302133, - 0.00047923, 0.00029362, 7.27254210, 0.99853599, 0.99922715, 0.49321153], 6495 [- 6.27302151, - 0.00047916, 0.00029357, 7.27254235, 0.99853622, 0.99922727, 0.49321157], 6496 [- 6.27302169, - 0.00047908, 0.00029353, 7.27254260, 0.99853645, 0.99922739, 0.49321160], 6497 [- 6.27302187, - 0.00047901, 0.00029348, 7.27254286, 0.99853667, 0.99922751, 0.49321170], 6498 [- 6.27302204, - 0.00047894, 0.00029344, 7.27254311, 0.99853690, 0.99922763, 0.49321172], 6499 [- 6.27302222, - 0.00047886, 0.00029339, 7.27254336, 0.99853712, 0.99922775, 0.49321163], 6500 [- 6.27302240, - 0.00047879, 0.00029334, 7.27254361, 0.99853735, 0.99922787, 0.49321166], 6501 [- 6.27302257, - 0.00047871, 0.00029330, 7.27254386, 0.99853758, 0.99922799, 0.49321175], 6502 [- 6.27302275, - 0.00047864, 0.00029325, 7.27254411, 0.99853780, 0.99922811, 0.49321177], 6503 [- 6.27302293, - 0.00047857, 0.00029321, 7.27254436, 0.99853803, 0.99922823, 0.49321185], 6504 [- 6.27302311, - 0.00047849, 0.00029316, 7.27254461, 0.99853826, 0.99922834, 0.49321182], 6505 [- 6.27302328, - 0.00047842, 0.00029312, 7.27254486, 0.99853848, 0.99922846, 0.49321190], 6506 [- 6.27302346, - 0.00047834, 0.00029307, 7.27254512, 0.99853871, 0.99922858, 0.49321191], 6507 [- 6.27302364, - 0.00047827, 0.00029303, 7.27254537, 0.99853893, 0.99922870, 0.49321187], 6508 [- 6.27302381, - 0.00047820, 0.00029298, 7.27254562, 0.99853916, 0.99922882, 0.49321186], 6509 [- 6.27302399, - 0.00047812, 0.00029294, 7.27254587, 0.99853939, 0.99922894, 0.49321193], 6510 [- 6.27302417, - 0.00047805, 0.00029289, 7.27254612, 0.99853961, 0.99922906, 0.49321201], 6511 [- 6.27302434, - 0.00047797, 0.00029285, 7.27254637, 0.99853984, 0.99922918, 0.49321205], 6512 [- 6.27302452, - 0.00047790, 0.00029280, 7.27254662, 0.99854006, 0.99922930, 0.49321210], 6513 [- 6.27302470, - 0.00047783, 0.00029276, 7.27254687, 0.99854029, 0.99922942, 0.49321211], 6514 [- 6.27302487, - 0.00047775, 0.00029271, 7.27254712, 0.99854051, 0.99922954, 0.49321206], 6515 [- 6.27302505, - 0.00047768, 0.00029267, 7.27254737, 0.99854074, 0.99922965, 0.49321212], 6516 [- 6.27302523, - 0.00047761, 0.00029262, 7.27254762, 0.99854096, 0.99922977, 0.49321212], 6517 [- 6.27302540, - 0.00047753, 0.00029257, 7.27254787, 0.99854119, 0.99922989, 0.49321221], 6518 [- 6.27302558, - 0.00047746, 0.00029253, 7.27254812, 0.99854141, 0.99923001, 0.49321218], 6519 [- 6.27302575, - 0.00047739, 0.00029248, 7.27254837, 0.99854164, 0.99923013, 0.49321223], 6520 [- 6.27302593, - 0.00047731, 0.00029244, 7.27254862, 0.99854186, 0.99923025, 0.49321227], 6521 [- 6.27302611, - 0.00047724, 0.00029239, 7.27254887, 0.99854209, 0.99923037, 0.49321227], 6522 [- 6.27302628, - 0.00047716, 0.00029235, 7.27254912, 0.99854231, 0.99923049, 0.49321226], 6523 [- 6.27302646, - 0.00047709, 0.00029230, 7.27254937, 0.99854254, 0.99923060, 0.49321229], 6524 [- 6.27302664, - 0.00047702, 0.00029226, 7.27254962, 0.99854276, 0.99923072, 0.49321232], 6525 [- 6.27302681, - 0.00047694, 0.00029221, 7.27254987, 0.99854299, 0.99923084, 0.49321239], 6526 [- 6.27302699, - 0.00047687, 0.00029217, 7.27255012, 0.99854321, 0.99923096, 0.49321240], 6527 [- 6.27302716, - 0.00047680, 0.00029212, 7.27255037, 0.99854344, 0.99923108, 0.49321246], 6528 [- 6.27302734, - 0.00047672, 0.00029208, 7.27255061, 0.99854366, 0.99923120, 0.49321244], 6529 [- 6.27302751, - 0.00047665, 0.00029203, 7.27255086, 0.99854388, 0.99923132, 0.49321242], 6530 [- 6.27302769, - 0.00047658, 0.00029199, 7.27255111, 0.99854411, 0.99923143, 0.49321242], 6531 [- 6.27302787, - 0.00047650, 0.00029194, 7.27255136, 0.99854433, 0.99923155, 0.49321258], 6532 [- 6.27302804, - 0.00047643, 0.00029190, 7.27255161, 0.99854456, 0.99923167, 0.49321251], 6533 [- 6.27302822, - 0.00047636, 0.00029185, 7.27255186, 0.99854478, 0.99923179, 0.49321261], 6534 [- 6.27302839, - 0.00047628, 0.00029181, 7.27255211, 0.99854501, 0.99923191, 0.49321264], 6535 [- 6.27302857, - 0.00047621, 0.00029176, 7.27255236, 0.99854523, 0.99923203, 0.49321265], 6536 [- 6.27302874, - 0.00047614, 0.00029172, 7.27255261, 0.99854545, 0.99923214, 0.49321268], 6537 [- 6.27302892, - 0.00047606, 0.00029167, 7.27255285, 0.99854568, 0.99923226, 0.49321269], 6538 [- 6.27302909, - 0.00047599, 0.00029163, 7.27255310, 0.99854590, 0.99923238, 0.49321277], 6539 [- 6.27302927, - 0.00047592, 0.00029158, 7.27255335, 0.99854612, 0.99923250, 0.49321272], 6540 [- 6.27302944, - 0.00047584, 0.00029154, 7.27255360, 0.99854635, 0.99923262, 0.49321278], 6541 [- 6.27302962, - 0.00047577, 0.00029150, 7.27255385, 0.99854657, 0.99923273, 0.49321287], 6542 [- 6.27302979, - 0.00047570, 0.00029145, 7.27255410, 0.99854679, 0.99923285, 0.49321280], 6543 [- 6.27302997, - 0.00047562, 0.00029141, 7.27255434, 0.99854702, 0.99923297, 0.49321291], 6544 [- 6.27303014, - 0.00047555, 0.00029136, 7.27255459, 0.99854724, 0.99923309, 0.49321279], 6545 [- 6.27303032, - 0.00047548, 0.00029132, 7.27255484, 0.99854746, 0.99923321, 0.49321284], 6546 [- 6.27303049, - 0.00047541, 0.00029127, 7.27255509, 0.99854769, 0.99923332, 0.49321288], 6547 [- 6.27303067, - 0.00047533, 0.00029123, 7.27255533, 0.99854791, 0.99923344, 0.49321294], 6548 [- 6.27303084, - 0.00047526, 0.00029118, 7.27255558, 0.99854813, 0.99923356, 0.49321292], 6549 [- 6.27303102, - 0.00047519, 0.00029114, 7.27255583, 0.99854836, 0.99923368, 0.49321300], 6550 [- 6.27303119, - 0.00047511, 0.00029109, 7.27255608, 0.99854858, 0.99923379, 0.49321302], 6551 [- 6.27303137, - 0.00047504, 0.00029105, 7.27255632, 0.99854880, 0.99923391, 0.49321303], 6552 [- 6.27303154, - 0.00047497, 0.00029100, 7.27255657, 0.99854903, 0.99923403, 0.49321311], 6553 [- 6.27303171, - 0.00047490, 0.00029096, 7.27255682, 0.99854925, 0.99923415, 0.49321311], 6554 [- 6.27303189, - 0.00047482, 0.00029091, 7.27255707, 0.99854947, 0.99923426, 0.49321315], 6555 [- 6.27303206, - 0.00047475, 0.00029087, 7.27255731, 0.99854969, 0.99923438, 0.49321319], 6556 [- 6.27303224, - 0.00047468, 0.00029082, 7.27255756, 0.99854992, 0.99923450, 0.49321317], 6557 [- 6.27303241, - 0.00047460, 0.00029078, 7.27255781, 0.99855014, 0.99923462, 0.49321321], 6558 [- 6.27303259, - 0.00047453, 0.00029073, 7.27255805, 0.99855036, 0.99923473, 0.49321326], 6559 [- 6.27303276, - 0.00047446, 0.00029069, 7.27255830, 0.99855058, 0.99923485, 0.49321318], 6560 [- 6.27303293, - 0.00047439, 0.00029065, 7.27255855, 0.99855081, 0.99923497, 0.49321326], 6561 [- 6.27303311, - 0.00047431, 0.00029060, 7.27255879, 0.99855103, 0.99923509, 0.49321333], 6562 [- 6.27303328, - 0.00047424, 0.00029056, 7.27255904, 0.99855125, 0.99923520, 0.49321333], 6563 [- 6.27303345, - 0.00047417, 0.00029051, 7.27255929, 0.99855147, 0.99923532, 0.49321344], 6564 [- 6.27303363, - 0.00047410, 0.00029047, 7.27255953, 0.99855169, 0.99923544, 0.49321337], 6565 [- 6.27303380, - 0.00047402, 0.00029042, 7.27255978, 0.99855192, 0.99923555, 0.49321345], 6566 [- 6.27303398, - 0.00047395, 0.00029038, 7.27256003, 0.99855214, 0.99923567, 0.49321337], 6567 [- 6.27303415, - 0.00047388, 0.00029033, 7.27256027, 0.99855236, 0.99923579, 0.49321344], 6568 [- 6.27303432, - 0.00047380, 0.00029029, 7.27256052, 0.99855258, 0.99923591, 0.49321346], 6569 [- 6.27303450, - 0.00047373, 0.00029025, 7.27256076, 0.99855280, 0.99923602, 0.49321354], 6570 [- 6.27303467, - 0.00047366, 0.00029020, 7.27256101, 0.99855302, 0.99923614, 0.49321353], 6571 [- 6.27303484, - 0.00047359, 0.00029016, 7.27256126, 0.99855325, 0.99923626, 0.49321361], 6572 [- 6.27303502, - 0.00047351, 0.00029011, 7.27256150, 0.99855347, 0.99923637, 0.49321358], 6573 [- 6.27303519, - 0.00047344, 0.00029007, 7.27256175, 0.99855369, 0.99923649, 0.49321363], 6574 [- 6.27303536, - 0.00047337, 0.00029002, 7.27256199, 0.99855391, 0.99923661, 0.49321367], 6575 [- 6.27303554, - 0.00047330, 0.00028998, 7.27256224, 0.99855413, 0.99923672, 0.49321364], 6576 [- 6.27303571, - 0.00047323, 0.00028993, 7.27256248, 0.99855435, 0.99923684, 0.49321377], 6577 [- 6.27303588, - 0.00047315, 0.00028989, 7.27256273, 0.99855457, 0.99923696, 0.49321375], 6578 [- 6.27303606, - 0.00047308, 0.00028985, 7.27256298, 0.99855479, 0.99923707, 0.49321379], 6579 [- 6.27303623, - 0.00047301, 0.00028980, 7.27256322, 0.99855501, 0.99923719, 0.49321377], 6580 [- 6.27303640, - 0.00047294, 0.00028976, 7.27256347, 0.99855524, 0.99923731, 0.49321372], 6581 [- 6.27303658, - 0.00047286, 0.00028971, 7.27256371, 0.99855546, 0.99923742, 0.49321383], 6582 [- 6.27303675, - 0.00047279, 0.00028967, 7.27256396, 0.99855568, 0.99923754, 0.49321384], 6583 [- 6.27303692, - 0.00047272, 0.00028962, 7.27256420, 0.99855590, 0.99923766, 0.49321394], 6584 [- 6.27303709, - 0.00047265, 0.00028958, 7.27256445, 0.99855612, 0.99923777, 0.49321386], 6585 [- 6.27303727, - 0.00047258, 0.00028954, 7.27256469, 0.99855634, 0.99923789, 0.49321390], 6586 [- 6.27303744, - 0.00047250, 0.00028949, 7.27256494, 0.99855656, 0.99923801, 0.49321401], 6587 [- 6.27303761, - 0.00047243, 0.00028945, 7.27256518, 0.99855678, 0.99923812, 0.49321394], 6588 [- 6.27303778, - 0.00047236, 0.00028940, 7.27256543, 0.99855700, 0.99923824, 0.49321395], 6589 [- 6.27303796, - 0.00047229, 0.00028936, 7.27256567, 0.99855722, 0.99923835, 0.49321400], 6590 [- 6.27303813, - 0.00047221, 0.00028931, 7.27256591, 0.99855744, 0.99923847, 0.49321392], 6591 [- 6.27303830, - 0.00047214, 0.00028927, 7.27256616, 0.99855766, 0.99923859, 0.49321409], 6592 [- 6.27303847, - 0.00047207, 0.00028923, 7.27256640, 0.99855788, 0.99923870, 0.49321404], 6593 [- 6.27303865, - 0.00047200, 0.00028918, 7.27256665, 0.99855810, 0.99923882, 0.49321416], 6594 [- 6.27303882, - 0.00047193, 0.00028914, 7.27256689, 0.99855832, 0.99923893, 0.49321409], 6595 [- 6.27303899, - 0.00047185, 0.00028909, 7.27256714, 0.99855854, 0.99923905, 0.49321418], 6596 [- 6.27303916, - 0.00047178, 0.00028905, 7.27256738, 0.99855876, 0.99923917, 0.49321418], 6597 [- 6.27303933, - 0.00047171, 0.00028901, 7.27256762, 0.99855898, 0.99923928, 0.49321424], 6598 [- 6.27303951, - 0.00047164, 0.00028896, 7.27256787, 0.99855920, 0.99923940, 0.49321434], 6599 [- 6.27303968, - 0.00047157, 0.00028892, 7.27256811, 0.99855942, 0.99923951, 0.49321431], 6600 [- 6.27303985, - 0.00047150, 0.00028887, 7.27256835, 0.99855964, 0.99923963, 0.49321429], 6601 [- 6.27304002, - 0.00047142, 0.00028883, 7.27256860, 0.99855986, 0.99923975, 0.49321428], 6602 [- 6.27304019, - 0.00047135, 0.00028879, 7.27256884, 0.99856008, 0.99923986, 0.49321434], 6603 [- 6.27304037, - 0.00047128, 0.00028874, 7.27256909, 0.99856030, 0.99923998, 0.49321435], 6604 [- 6.27304054, - 0.00047121, 0.00028870, 7.27256933, 0.99856052, 0.99924009, 0.49321437], 6605 [- 6.27304071, - 0.00047114, 0.00028865, 7.27256957, 0.99856073, 0.99924021, 0.49321446], 6606 [- 6.27304088, - 0.00047106, 0.00028861, 7.27256982, 0.99856095, 0.99924032, 0.49321442], 6607 [- 6.27304105, - 0.00047099, 0.00028857, 7.27257006, 0.99856117, 0.99924044, 0.49321442], 6608 [- 6.27304122, - 0.00047092, 0.00028852, 7.27257030, 0.99856139, 0.99924056, 0.49321451], 6609 [- 6.27304139, - 0.00047085, 0.00028848, 7.27257054, 0.99856161, 0.99924067, 0.49321455], 6610 [- 6.27304157, - 0.00047078, 0.00028843, 7.27257079, 0.99856183, 0.99924079, 0.49321455], 6611 [- 6.27304174, - 0.00047071, 0.00028839, 7.27257103, 0.99856205, 0.99924090, 0.49321459], 6612 [- 6.27304191, - 0.00047064, 0.00028835, 7.27257127, 0.99856227, 0.99924102, 0.49321464], 6613 [- 6.27304208, - 0.00047056, 0.00028830, 7.27257152, 0.99856249, 0.99924113, 0.49321460], 6614 [- 6.27304225, - 0.00047049, 0.00028826, 7.27257176, 0.99856270, 0.99924125, 0.49321463], 6615 [- 6.27304242, - 0.00047042, 0.00028822, 7.27257200, 0.99856292, 0.99924136, 0.49321476], 6616 [- 6.27304259, - 0.00047035, 0.00028817, 7.27257224, 0.99856314, 0.99924148, 0.49321475], 6617 [- 6.27304276, - 0.00047028, 0.00028813, 7.27257249, 0.99856336, 0.99924159, 0.49321471], 6618 [- 6.27304294, - 0.00047021, 0.00028808, 7.27257273, 0.99856358, 0.99924171, 0.49321475], 6619 [- 6.27304311, - 0.00047013, 0.00028804, 7.27257297, 0.99856380, 0.99924183, 0.49321476], 6620 [- 6.27304328, - 0.00047006, 0.00028800, 7.27257321, 0.99856401, 0.99924194, 0.49321484], 6621 [- 6.27304345, - 0.00046999, 0.00028795, 7.27257346, 0.99856423, 0.99924206, 0.49321477], 6622 [- 6.27304362, - 0.00046992, 0.00028791, 7.27257370, 0.99856445, 0.99924217, 0.49321483], 6623 [- 6.27304379, - 0.00046985, 0.00028787, 7.27257394, 0.99856467, 0.99924229, 0.49321495], 6624 [- 6.27304396, - 0.00046978, 0.00028782, 7.27257418, 0.99856489, 0.99924240, 0.49321491], 6625 [- 6.27304413, - 0.00046971, 0.00028778, 7.27257442, 0.99856510, 0.99924252, 0.49321493], 6626 [- 6.27304430, - 0.00046964, 0.00028773, 7.27257467, 0.99856532, 0.99924263, 0.49321498], 6627 [- 6.27304447, - 0.00046956, 0.00028769, 7.27257491, 0.99856554, 0.99924275, 0.49321496], 6628 [- 6.27304464, - 0.00046949, 0.00028765, 7.27257515, 0.99856576, 0.99924286, 0.49321502], 6629 [- 6.27304481, - 0.00046942, 0.00028760, 7.27257539, 0.99856597, 0.99924298, 0.49321503], 6630 [- 6.27304498, - 0.00046935, 0.00028756, 7.27257563, 0.99856619, 0.99924309, 0.49321507], 6631 [- 6.27304515, - 0.00046928, 0.00028752, 7.27257587, 0.99856641, 0.99924320, 0.49321515], 6632 [- 6.27304532, - 0.00046921, 0.00028747, 7.27257611, 0.99856663, 0.99924332, 0.49321508], 6633 [- 6.27304549, - 0.00046914, 0.00028743, 7.27257636, 0.99856684, 0.99924343, 0.49321514], 6634 [- 6.27304566, - 0.00046907, 0.00028738, 7.27257660, 0.99856706, 0.99924355, 0.49321526], 6635 [- 6.27304583, - 0.00046900, 0.00028734, 7.27257684, 0.99856728, 0.99924366, 0.49321521], 6636 [- 6.27304600, - 0.00046892, 0.00028730, 7.27257708, 0.99856750, 0.99924378, 0.49321521], 6637 [- 6.27304617, - 0.00046885, 0.00028725, 7.27257732, 0.99856771, 0.99924389, 0.49321523], 6638 [- 6.27304634, - 0.00046878, 0.00028721, 7.27257756, 0.99856793, 0.99924401, 0.49321526], 6639 [- 6.27304651, - 0.00046871, 0.00028717, 7.27257780, 0.99856815, 0.99924412, 0.49321530], 6640 [- 6.27304668, - 0.00046864, 0.00028712, 7.27257804, 0.99856836, 0.99924424, 0.49321535], 6641 [- 6.27304685, - 0.00046857, 0.00028708, 7.27257828, 0.99856858, 0.99924435, 0.49321541], 6642 [- 6.27304702, - 0.00046850, 0.00028704, 7.27257852, 0.99856880, 0.99924446, 0.49321529], 6643 [- 6.27304719, - 0.00046843, 0.00028699, 7.27257876, 0.99856901, 0.99924458, 0.49321541], 6644 [- 6.27304736, - 0.00046836, 0.00028695, 7.27257901, 0.99856923, 0.99924469, 0.49321535], 6645 [- 6.27304753, - 0.00046829, 0.00028691, 7.27257925, 0.99856945, 0.99924481, 0.49321543], 6646 [- 6.27304770, - 0.00046821, 0.00028686, 7.27257949, 0.99856966, 0.99924492, 0.49321548], 6647 [- 6.27304787, - 0.00046814, 0.00028682, 7.27257973, 0.99856988, 0.99924504, 0.49321551], 6648 [- 6.27304804, - 0.00046807, 0.00028678, 7.27257997, 0.99857010, 0.99924515, 0.49321545], 6649 [- 6.27304821, - 0.00046800, 0.00028673, 7.27258021, 0.99857031, 0.99924526, 0.49321554], 6650 [- 6.27304838, - 0.00046793, 0.00028669, 7.27258045, 0.99857053, 0.99924538, 0.49321557], 6651 [- 6.27304855, - 0.00046786, 0.00028665, 7.27258069, 0.99857074, 0.99924549, 0.49321561], 6652 [- 6.27304872, - 0.00046779, 0.00028660, 7.27258093, 0.99857096, 0.99924561, 0.49321567], 6653 [- 6.27304889, - 0.00046772, 0.00028656, 7.27258117, 0.99857118, 0.99924572, 0.49321567], 6654 [- 6.27304906, - 0.00046765, 0.00028652, 7.27258141, 0.99857139, 0.99924583, 0.49321571], 6655 [- 6.27304922, - 0.00046758, 0.00028647, 7.27258165, 0.99857161, 0.99924595, 0.49321566], 6656 [- 6.27304939, - 0.00046751, 0.00028643, 7.27258189, 0.99857182, 0.99924606, 0.49321576], 6657 [- 6.27304956, - 0.00046744, 0.00028639, 7.27258213, 0.99857204, 0.99924618, 0.49321567], 6658 [- 6.27304973, - 0.00046737, 0.00028634, 7.27258236, 0.99857226, 0.99924629, 0.49321585], 6659 [- 6.27304990, - 0.00046730, 0.00028630, 7.27258260, 0.99857247, 0.99924640, 0.49321576], 6660 [- 6.27305007, - 0.00046723, 0.00028626, 7.27258284, 0.99857269, 0.99924652, 0.49321581], 6661 [- 6.27305024, - 0.00046715, 0.00028621, 7.27258308, 0.99857290, 0.99924663, 0.49321580], 6662 [- 6.27305041, - 0.00046708, 0.00028617, 7.27258332, 0.99857312, 0.99924675, 0.49321590], 6663 [- 6.27305057, - 0.00046701, 0.00028613, 7.27258356, 0.99857333, 0.99924686, 0.49321582], 6664 [- 6.27305074, - 0.00046694, 0.00028608, 7.27258380, 0.99857355, 0.99924697, 0.49321587], 6665 [- 6.27305091, - 0.00046687, 0.00028604, 7.27258404, 0.99857376, 0.99924709, 0.49321595], 6666 [- 6.27305108, - 0.00046680, 0.00028600, 7.27258428, 0.99857398, 0.99924720, 0.49321595], 6667 [- 6.27305125, - 0.00046673, 0.00028595, 7.27258452, 0.99857419, 0.99924731, 0.49321600], 6668 [- 6.27305142, - 0.00046666, 0.00028591, 7.27258476, 0.99857441, 0.99924743, 0.49321598], 6669 [- 6.27305159, - 0.00046659, 0.00028587, 7.27258499, 0.99857462, 0.99924754, 0.49321613], 6670 [- 6.27305175, - 0.00046652, 0.00028582, 7.27258523, 0.99857484, 0.99924765, 0.49321611], 6671 [- 6.27305192, - 0.00046645, 0.00028578, 7.27258547, 0.99857505, 0.99924777, 0.49321600], 6672 [- 6.27305209, - 0.00046638, 0.00028574, 7.27258571, 0.99857527, 0.99924788, 0.49321621], 6673 [- 6.27305226, - 0.00046631, 0.00028570, 7.27258595, 0.99857548, 0.99924799, 0.49321615], 6674 [- 6.27305243, - 0.00046624, 0.00028565, 7.27258619, 0.99857570, 0.99924811, 0.49321620], 6675 [- 6.27305259, - 0.00046617, 0.00028561, 7.27258642, 0.99857591, 0.99924822, 0.49321625], 6676 [- 6.27305276, - 0.00046610, 0.00028557, 7.27258666, 0.99857613, 0.99924833, 0.49321621], 6677 [- 6.27305293, - 0.00046603, 0.00028552, 7.27258690, 0.99857634, 0.99924845, 0.49321630], 6678 [- 6.27305310, - 0.00046596, 0.00028548, 7.27258714, 0.99857656, 0.99924856, 0.49321623], 6679 [- 6.27305327, - 0.00046589, 0.00028544, 7.27258738, 0.99857677, 0.99924867, 0.49321633], 6680 [- 6.27305343, - 0.00046582, 0.00028539, 7.27258761, 0.99857698, 0.99924879, 0.49321637], 6681 [- 6.27305360, - 0.00046575, 0.00028535, 7.27258785, 0.99857720, 0.99924890, 0.49321640], 6682 [- 6.27305377, - 0.00046568, 0.00028531, 7.27258809, 0.99857741, 0.99924901, 0.49321641], 6683 [- 6.27305394, - 0.00046561, 0.00028527, 7.27258833, 0.99857763, 0.99924913, 0.49321644], 6684 [- 6.27305410, - 0.00046554, 0.00028522, 7.27258857, 0.99857784, 0.99924924, 0.49321640], 6685 [- 6.27305427, - 0.00046547, 0.00028518, 7.27258880, 0.99857805, 0.99924935, 0.49321644], 6686 [- 6.27305444, - 0.00046540, 0.00028514, 7.27258904, 0.99857827, 0.99924946, 0.49321647], 6687 [- 6.27305461, - 0.00046533, 0.00028509, 7.27258928, 0.99857848, 0.99924958, 0.49321655], 6688 [- 6.27305477, - 0.00046526, 0.00028505, 7.27258952, 0.99857870, 0.99924969, 0.49321652], 6689 [- 6.27305494, - 0.00046519, 0.00028501, 7.27258975, 0.99857891, 0.99924980, 0.49321651], 6690 [- 6.27305511, - 0.00046512, 0.00028497, 7.27258999, 0.99857912, 0.99924992, 0.49321656], 6691 [- 6.27305528, - 0.00046505, 0.00028492, 7.27259023, 0.99857934, 0.99925003, 0.49321656], 6692 [- 6.27305544, - 0.00046498, 0.00028488, 7.27259046, 0.99857955, 0.99925014, 0.49321665], 6693 [- 6.27305561, - 0.00046491, 0.00028484, 7.27259070, 0.99857976, 0.99925025, 0.49321668], 6694 [- 6.27305578, - 0.00046484, 0.00028479, 7.27259094, 0.99857998, 0.99925037, 0.49321665], 6695 [- 6.27305594, - 0.00046477, 0.00028475, 7.27259117, 0.99858019, 0.99925048, 0.49321672], 6696 [- 6.27305611, - 0.00046470, 0.00028471, 7.27259141, 0.99858040, 0.99925059, 0.49321675], 6697 [- 6.27305628, - 0.00046463, 0.00028467, 7.27259165, 0.99858062, 0.99925070, 0.49321677], 6698 [- 6.27305645, - 0.00046456, 0.00028462, 7.27259188, 0.99858083, 0.99925082, 0.49321675], 6699 [- 6.27305661, - 0.00046449, 0.00028458, 7.27259212, 0.99858104, 0.99925093, 0.49321677], 6700 [- 6.27305678, - 0.00046442, 0.00028454, 7.27259236, 0.99858126, 0.99925104, 0.49321687], 6701 [- 6.27305695, - 0.00046435, 0.00028449, 7.27259259, 0.99858147, 0.99925115, 0.49321692], 6702 [- 6.27305711, - 0.00046428, 0.00028445, 7.27259283, 0.99858168, 0.99925127, 0.49321690], 6703 [- 6.27305728, - 0.00046421, 0.00028441, 7.27259307, 0.99858189, 0.99925138, 0.49321690], 6704 [- 6.27305745, - 0.00046414, 0.00028437, 7.27259330, 0.99858211, 0.99925149, 0.49321703], 6705 [- 6.27305761, - 0.00046407, 0.00028432, 7.27259354, 0.99858232, 0.99925160, 0.49321695], 6706 [- 6.27305778, - 0.00046400, 0.00028428, 7.27259377, 0.99858253, 0.99925171, 0.49321702], 6707 [- 6.27305795, - 0.00046393, 0.00028424, 7.27259401, 0.99858275, 0.99925183, 0.49321702], 6708 [- 6.27305811, - 0.00046386, 0.00028420, 7.27259425, 0.99858296, 0.99925194, 0.49321707], 6709 [- 6.27305828, - 0.00046380, 0.00028415, 7.27259448, 0.99858317, 0.99925205, 0.49321711], 6710 [- 6.27305844, - 0.00046373, 0.00028411, 7.27259472, 0.99858338, 0.99925216, 0.49321702], 6711 [- 6.27305861, - 0.00046366, 0.00028407, 7.27259495, 0.99858359, 0.99925227, 0.49321714], 6712 [- 6.27305878, - 0.00046359, 0.00028403, 7.27259519, 0.99858381, 0.99925239, 0.49321714], 6713 [- 6.27305894, - 0.00046352, 0.00028398, 7.27259543, 0.99858402, 0.99925250, 0.49321712], 6714 [- 6.27305911, - 0.00046345, 0.00028394, 7.27259566, 0.99858423, 0.99925261, 0.49321724], 6715 [- 6.27305927, - 0.00046338, 0.00028390, 7.27259590, 0.99858444, 0.99925272, 0.49321723], 6716 [- 6.27305944, - 0.00046331, 0.00028386, 7.27259613, 0.99858465, 0.99925283, 0.49321718], 6717 [- 6.27305961, - 0.00046324, 0.00028381, 7.27259637, 0.99858487, 0.99925295, 0.49321725], 6718 [- 6.27305977, - 0.00046317, 0.00028377, 7.27259660, 0.99858508, 0.99925306, 0.49321729], 6719 [- 6.27305994, - 0.00046310, 0.00028373, 7.27259684, 0.99858529, 0.99925317, 0.49321728], 6720 [- 6.27306010, - 0.00046303, 0.00028369, 7.27259707, 0.99858550, 0.99925328, 0.49321728], 6721 [- 6.27306027, - 0.00046296, 0.00028364, 7.27259731, 0.99858571, 0.99925339, 0.49321738], 6722 [- 6.27306044, - 0.00046289, 0.00028360, 7.27259754, 0.99858593, 0.99925351, 0.49321730], 6723 [- 6.27306060, - 0.00046282, 0.00028356, 7.27259778, 0.99858614, 0.99925362, 0.49321736], 6724 [- 6.27306077, - 0.00046276, 0.00028352, 7.27259801, 0.99858635, 0.99925373, 0.49321743], 6725 [- 6.27306093, - 0.00046269, 0.00028347, 7.27259825, 0.99858656, 0.99925384, 0.49321740], 6726 [- 6.27306110, - 0.00046262, 0.00028343, 7.27259848, 0.99858677, 0.99925395, 0.49321757], 6727 [- 6.27306126, - 0.00046255, 0.00028339, 7.27259872, 0.99858698, 0.99925406, 0.49321754], 6728 [- 6.27306143, - 0.00046248, 0.00028335, 7.27259895, 0.99858719, 0.99925417, 0.49321760], 6729 [- 6.27306159, - 0.00046241, 0.00028330, 7.27259918, 0.99858740, 0.99925429, 0.49321757], 6730 [- 6.27306176, - 0.00046234, 0.00028326, 7.27259942, 0.99858762, 0.99925440, 0.49321761], 6731 [- 6.27306192, - 0.00046227, 0.00028322, 7.27259965, 0.99858783, 0.99925451, 0.49321757], 6732 [- 6.27306209, - 0.00046220, 0.00028318, 7.27259989, 0.99858804, 0.99925462, 0.49321764], 6733 [- 6.27306225, - 0.00046213, 0.00028314, 7.27260012, 0.99858825, 0.99925473, 0.49321769], 6734 [- 6.27306242, - 0.00046206, 0.00028309, 7.27260036, 0.99858846, 0.99925484, 0.49321767], 6735 [- 6.27306259, - 0.00046200, 0.00028305, 7.27260059, 0.99858867, 0.99925495, 0.49321773], 6736 [- 6.27306275, - 0.00046193, 0.00028301, 7.27260082, 0.99858888, 0.99925506, 0.49321772], 6737 [- 6.27306292, - 0.00046186, 0.00028297, 7.27260106, 0.99858909, 0.99925518, 0.49321771], 6738 [- 6.27306308, - 0.00046179, 0.00028292, 7.27260129, 0.99858930, 0.99925529, 0.49321779], 6739 [- 6.27306324, - 0.00046172, 0.00028288, 7.27260152, 0.99858951, 0.99925540, 0.49321779], 6740 [- 6.27306341, - 0.00046165, 0.00028284, 7.27260176, 0.99858972, 0.99925551, 0.49321780], 6741 [- 6.27306357, - 0.00046158, 0.00028280, 7.27260199, 0.99858993, 0.99925562, 0.49321791], 6742 [- 6.27306374, - 0.00046151, 0.00028275, 7.27260223, 0.99859014, 0.99925573, 0.49321791], 6743 [- 6.27306390, - 0.00046144, 0.00028271, 7.27260246, 0.99859035, 0.99925584, 0.49321788], 6744 [- 6.27306407, - 0.00046138, 0.00028267, 7.27260269, 0.99859056, 0.99925595, 0.49321791], 6745 [- 6.27306423, - 0.00046131, 0.00028263, 7.27260293, 0.99859077, 0.99925606, 0.49321799], 6746 [- 6.27306440, - 0.00046124, 0.00028259, 7.27260316, 0.99859098, 0.99925618, 0.49321795], 6747 [- 6.27306456, - 0.00046117, 0.00028254, 7.27260339, 0.99859119, 0.99925629, 0.49321797], 6748 [- 6.27306473, - 0.00046110, 0.00028250, 7.27260363, 0.99859140, 0.99925640, 0.49321800], 6749 [- 6.27306489, - 0.00046103, 0.00028246, 7.27260386, 0.99859161, 0.99925651, 0.49321804], 6750 [- 6.27306505, - 0.00046096, 0.00028242, 7.27260409, 0.99859182, 0.99925662, 0.49321800], 6751 [- 6.27306522, - 0.00046090, 0.00028238, 7.27260432, 0.99859203, 0.99925673, 0.49321804], 6752 [- 6.27306538, - 0.00046083, 0.00028233, 7.27260456, 0.99859224, 0.99925684, 0.49321806], 6753 [- 6.27306555, - 0.00046076, 0.00028229, 7.27260479, 0.99859245, 0.99925695, 0.49321814], 6754 [- 6.27306571, - 0.00046069, 0.00028225, 7.27260502, 0.99859266, 0.99925706, 0.49321818], 6755 [- 6.27306588, - 0.00046062, 0.00028221, 7.27260525, 0.99859287, 0.99925717, 0.49321811], 6756 [- 6.27306604, - 0.00046055, 0.00028217, 7.27260549, 0.99859308, 0.99925728, 0.49321821], 6757 [- 6.27306620, - 0.00046048, 0.00028212, 7.27260572, 0.99859329, 0.99925739, 0.49321828], 6758 [- 6.27306637, - 0.00046042, 0.00028208, 7.27260595, 0.99859350, 0.99925750, 0.49321829], 6759 [- 6.27306653, - 0.00046035, 0.00028204, 7.27260618, 0.99859371, 0.99925761, 0.49321826], 6760 [- 6.27306670, - 0.00046028, 0.00028200, 7.27260642, 0.99859392, 0.99925772, 0.49321833], 6761 [- 6.27306686, - 0.00046021, 0.00028196, 7.27260665, 0.99859413, 0.99925783, 0.49321833], 6762 [- 6.27306702, - 0.00046014, 0.00028191, 7.27260688, 0.99859434, 0.99925794, 0.49321830], 6763 [- 6.27306719, - 0.00046007, 0.00028187, 7.27260711, 0.99859455, 0.99925805, 0.49321842], 6764 [- 6.27306735, - 0.00046000, 0.00028183, 7.27260735, 0.99859475, 0.99925817, 0.49321838], 6765 [- 6.27306751, - 0.00045994, 0.00028179, 7.27260758, 0.99859496, 0.99925828, 0.49321849], 6766 [- 6.27306768, - 0.00045987, 0.00028175, 7.27260781, 0.99859517, 0.99925839, 0.49321848], 6767 [- 6.27306784, - 0.00045980, 0.00028170, 7.27260804, 0.99859538, 0.99925850, 0.49321848], 6768 [- 6.27306800, - 0.00045973, 0.00028166, 7.27260827, 0.99859559, 0.99925861, 0.49321852], 6769 [- 6.27306817, - 0.00045966, 0.00028162, 7.27260850, 0.99859580, 0.99925872, 0.49321855], 6770 [- 6.27306833, - 0.00045959, 0.00028158, 7.27260874, 0.99859601, 0.99925883, 0.49321849], 6771 [- 6.27306849, - 0.00045953, 0.00028154, 7.27260897, 0.99859622, 0.99925894, 0.49321861], 6772 [- 6.27306866, - 0.00045946, 0.00028150, 7.27260920, 0.99859642, 0.99925905, 0.49321858], 6773 [- 6.27306882, - 0.00045939, 0.00028145, 7.27260943, 0.99859663, 0.99925916, 0.49321869], 6774 [- 6.27306898, - 0.00045932, 0.00028141, 7.27260966, 0.99859684, 0.99925927, 0.49321873], 6775 [- 6.27306915, - 0.00045925, 0.00028137, 7.27260989, 0.99859705, 0.99925938, 0.49321868], 6776 [- 6.27306931, - 0.00045919, 0.00028133, 7.27261012, 0.99859726, 0.99925949, 0.49321872], 6777 [- 6.27306947, - 0.00045912, 0.00028129, 7.27261035, 0.99859746, 0.99925960, 0.49321879], 6778 [- 6.27306964, - 0.00045905, 0.00028124, 7.27261059, 0.99859767, 0.99925971, 0.49321873], 6779 [- 6.27306980, - 0.00045898, 0.00028120, 7.27261082, 0.99859788, 0.99925982, 0.49321881], 6780 [- 6.27306996, - 0.00045891, 0.00028116, 7.27261105, 0.99859809, 0.99925993, 0.49321869], 6781 [- 6.27307012, - 0.00045885, 0.00028112, 7.27261128, 0.99859830, 0.99926003, 0.49321889], 6782 [- 6.27307029, - 0.00045878, 0.00028108, 7.27261151, 0.99859850, 0.99926014, 0.49321883], 6783 [- 6.27307045, - 0.00045871, 0.00028104, 7.27261174, 0.99859871, 0.99926025, 0.49321889], 6784 [- 6.27307061, - 0.00045864, 0.00028099, 7.27261197, 0.99859892, 0.99926036, 0.49321886], 6785 [- 6.27307078, - 0.00045857, 0.00028095, 7.27261220, 0.99859913, 0.99926047, 0.49321894], 6786 [- 6.27307094, - 0.00045851, 0.00028091, 7.27261243, 0.99859934, 0.99926058, 0.49321894], 6787 [- 6.27307110, - 0.00045844, 0.00028087, 7.27261266, 0.99859954, 0.99926069, 0.49321891], 6788 [- 6.27307126, - 0.00045837, 0.00028083, 7.27261289, 0.99859975, 0.99926080, 0.49321907], 6789 [- 6.27307142, - 0.00045830, 0.00028079, 7.27261312, 0.99859996, 0.99926091, 0.49321892], 6790 [- 6.27307159, - 0.00045823, 0.00028074, 7.27261335, 0.99860016, 0.99926102, 0.49321904], 6791 [- 6.27307175, - 0.00045817, 0.00028070, 7.27261358, 0.99860037, 0.99926113, 0.49321907], 6792 [- 6.27307191, - 0.00045810, 0.00028066, 7.27261381, 0.99860058, 0.99926124, 0.49321903], 6793 [- 6.27307207, - 0.00045803, 0.00028062, 7.27261404, 0.99860079, 0.99926135, 0.49321912], 6794 [- 6.27307224, - 0.00045796, 0.00028058, 7.27261427, 0.99860099, 0.99926146, 0.49321912], 6795 [- 6.27307240, - 0.00045790, 0.00028054, 7.27261450, 0.99860120, 0.99926157, 0.49321912], 6796 [- 6.27307256, - 0.00045783, 0.00028050, 7.27261473, 0.99860141, 0.99926168, 0.49321924], 6797 [- 6.27307272, - 0.00045776, 0.00028045, 7.27261496, 0.99860161, 0.99926179, 0.49321924], 6798 [- 6.27307288, - 0.00045769, 0.00028041, 7.27261519, 0.99860182, 0.99926190, 0.49321921], 6799 [- 6.27307305, - 0.00045762, 0.00028037, 7.27261542, 0.99860203, 0.99926200, 0.49321927], 6800 [- 6.27307321, - 0.00045756, 0.00028033, 7.27261565, 0.99860223, 0.99926211, 0.49321925], 6801 [- 6.27307337, - 0.00045749, 0.00028029, 7.27261588, 0.99860244, 0.99926222, 0.49321926], 6802 [- 6.27307353, - 0.00045742, 0.00028025, 7.27261611, 0.99860265, 0.99926233, 0.49321932], 6803 [- 6.27307369, - 0.00045735, 0.00028021, 7.27261634, 0.99860285, 0.99926244, 0.49321935], 6804 [- 6.27307386, - 0.00045729, 0.00028016, 7.27261657, 0.99860306, 0.99926255, 0.49321931], 6805 [- 6.27307402, - 0.00045722, 0.00028012, 7.27261680, 0.99860327, 0.99926266, 0.49321940], 6806 [- 6.27307418, - 0.00045715, 0.00028008, 7.27261703, 0.99860347, 0.99926277, 0.49321940], 6807 [- 6.27307434, - 0.00045708, 0.00028004, 7.27261726, 0.99860368, 0.99926288, 0.49321938], 6808 [- 6.27307450, - 0.00045702, 0.00028000, 7.27261749, 0.99860389, 0.99926299, 0.49321955], 6809 [- 6.27307466, - 0.00045695, 0.00027996, 7.27261771, 0.99860409, 0.99926309, 0.49321946], 6810 [- 6.27307482, - 0.00045688, 0.00027992, 7.27261794, 0.99860430, 0.99926320, 0.49321952], 6811 [- 6.27307499, - 0.00045681, 0.00027987, 7.27261817, 0.99860450, 0.99926331, 0.49321956], 6812 [- 6.27307515, - 0.00045675, 0.00027983, 7.27261840, 0.99860471, 0.99926342, 0.49321950], 6813 [- 6.27307531, - 0.00045668, 0.00027979, 7.27261863, 0.99860492, 0.99926353, 0.49321959], 6814 [- 6.27307547, - 0.00045661, 0.00027975, 7.27261886, 0.99860512, 0.99926364, 0.49321954], 6815 [- 6.27307563, - 0.00045654, 0.00027971, 7.27261909, 0.99860533, 0.99926375, 0.49321964], 6816 [- 6.27307579, - 0.00045648, 0.00027967, 7.27261931, 0.99860553, 0.99926385, 0.49321960], 6817 [- 6.27307595, - 0.00045641, 0.00027963, 7.27261954, 0.99860574, 0.99926396, 0.49321972], 6818 [- 6.27307611, - 0.00045634, 0.00027959, 7.27261977, 0.99860595, 0.99926407, 0.49321973], 6819 [- 6.27307628, - 0.00045628, 0.00027954, 7.27262000, 0.99860615, 0.99926418, 0.49321968], 6820 [- 6.27307644, - 0.00045621, 0.00027950, 7.27262023, 0.99860636, 0.99926429, 0.49321967], 6821 [- 6.27307660, - 0.00045614, 0.00027946, 7.27262046, 0.99860656, 0.99926440, 0.49321972], 6822 [- 6.27307676, - 0.00045607, 0.00027942, 7.27262068, 0.99860677, 0.99926451, 0.49321981], 6823 [- 6.27307692, - 0.00045601, 0.00027938, 7.27262091, 0.99860697, 0.99926461, 0.49321979], 6824 [- 6.27307708, - 0.00045594, 0.00027934, 7.27262114, 0.99860718, 0.99926472, 0.49321986], 6825 [- 6.27307724, - 0.00045587, 0.00027930, 7.27262137, 0.99860738, 0.99926483, 0.49321988], 6826 [- 6.27307740, - 0.00045581, 0.00027926, 7.27262160, 0.99860759, 0.99926494, 0.49321990], 6827 [- 6.27307756, - 0.00045574, 0.00027921, 7.27262182, 0.99860779, 0.99926505, 0.49321998], 6828 [- 6.27307772, - 0.00045567, 0.00027917, 7.27262205, 0.99860800, 0.99926516, 0.49322003], 6829 [- 6.27307788, - 0.00045560, 0.00027913, 7.27262228, 0.99860820, 0.99926526, 0.49321994], 6830 [- 6.27307804, - 0.00045554, 0.00027909, 7.27262251, 0.99860841, 0.99926537, 0.49322002], 6831 [- 6.27307820, - 0.00045547, 0.00027905, 7.27262273, 0.99860861, 0.99926548, 0.49321999], 6832 [- 6.27307836, - 0.00045540, 0.00027901, 7.27262296, 0.99860882, 0.99926559, 0.49322005], 6833 [- 6.27307852, - 0.00045534, 0.00027897, 7.27262319, 0.99860902, 0.99926570, 0.49322007], 6834 [- 6.27307868, - 0.00045527, 0.00027893, 7.27262342, 0.99860923, 0.99926580, 0.49322002], 6835 [- 6.27307884, - 0.00045520, 0.00027889, 7.27262364, 0.99860943, 0.99926591, 0.49322013], 6836 [- 6.27307900, - 0.00045514, 0.00027884, 7.27262387, 0.99860964, 0.99926602, 0.49322009], 6837 [- 6.27307916, - 0.00045507, 0.00027880, 7.27262410, 0.99860984, 0.99926613, 0.49322010], 6838 [- 6.27307932, - 0.00045500, 0.00027876, 7.27262432, 0.99861004, 0.99926624, 0.49322020], 6839 [- 6.27307949, - 0.00045493, 0.00027872, 7.27262455, 0.99861025, 0.99926634, 0.49322020], 6840 [- 6.27307964, - 0.00045487, 0.00027868, 7.27262478, 0.99861045, 0.99926645, 0.49322021], 6841 [- 6.27307980, - 0.00045480, 0.00027864, 7.27262500, 0.99861066, 0.99926656, 0.49322031], 6842 [- 6.27307996, - 0.00045473, 0.00027860, 7.27262523, 0.99861086, 0.99926667, 0.49322031], 6843 [- 6.27308012, - 0.00045467, 0.00027856, 7.27262546, 0.99861107, 0.99926677, 0.49322033], 6844 [- 6.27308028, - 0.00045460, 0.00027852, 7.27262568, 0.99861127, 0.99926688, 0.49322029], 6845 [- 6.27308044, - 0.00045453, 0.00027848, 7.27262591, 0.99861147, 0.99926699, 0.49322034], 6846 [- 6.27308060, - 0.00045447, 0.00027844, 7.27262614, 0.99861168, 0.99926710, 0.49322033], 6847 [- 6.27308076, - 0.00045440, 0.00027839, 7.27262636, 0.99861188, 0.99926721, 0.49322036], 6848 [- 6.27308092, - 0.00045433, 0.00027835, 7.27262659, 0.99861209, 0.99926731, 0.49322047], 6849 [- 6.27308108, - 0.00045427, 0.00027831, 7.27262682, 0.99861229, 0.99926742, 0.49322045], 6850 [- 6.27308124, - 0.00045420, 0.00027827, 7.27262704, 0.99861249, 0.99926753, 0.49322049], 6851 [- 6.27308140, - 0.00045413, 0.00027823, 7.27262727, 0.99861270, 0.99926764, 0.49322055], 6852 [- 6.27308156, - 0.00045407, 0.00027819, 7.27262749, 0.99861290, 0.99926774, 0.49322054], 6853 [- 6.27308172, - 0.00045400, 0.00027815, 7.27262772, 0.99861310, 0.99926785, 0.49322056], 6854 [- 6.27308188, - 0.00045393, 0.00027811, 7.27262795, 0.99861331, 0.99926796, 0.49322059], 6855 [- 6.27308204, - 0.00045387, 0.00027807, 7.27262817, 0.99861351, 0.99926807, 0.49322050], 6856 [- 6.27308220, - 0.00045380, 0.00027803, 7.27262840, 0.99861371, 0.99926817, 0.49322063], 6857 [- 6.27308236, - 0.00045373, 0.00027799, 7.27262862, 0.99861392, 0.99926828, 0.49322066], 6858 [- 6.27308252, - 0.00045367, 0.00027795, 7.27262885, 0.99861412, 0.99926839, 0.49322063], 6859 [- 6.27308268, - 0.00045360, 0.00027790, 7.27262907, 0.99861432, 0.99926849, 0.49322070], 6860 [- 6.27308284, - 0.00045353, 0.00027786, 7.27262930, 0.99861453, 0.99926860, 0.49322066], 6861 [- 6.27308299, - 0.00045347, 0.00027782, 7.27262953, 0.99861473, 0.99926871, 0.49322073], 6862 [- 6.27308315, - 0.00045340, 0.00027778, 7.27262975, 0.99861493, 0.99926882, 0.49322074], 6863 [- 6.27308331, - 0.00045334, 0.00027774, 7.27262998, 0.99861514, 0.99926892, 0.49322073], 6864 [- 6.27308347, - 0.00045327, 0.00027770, 7.27263020, 0.99861534, 0.99926903, 0.49322080], 6865 [- 6.27308363, - 0.00045320, 0.00027766, 7.27263043, 0.99861554, 0.99926914, 0.49322087], 6866 [- 6.27308379, - 0.00045314, 0.00027762, 7.27263065, 0.99861574, 0.99926924, 0.49322079], 6867 [- 6.27308395, - 0.00045307, 0.00027758, 7.27263088, 0.99861595, 0.99926935, 0.49322088], 6868 [- 6.27308411, - 0.00045300, 0.00027754, 7.27263110, 0.99861615, 0.99926946, 0.49322089], 6869 [- 6.27308426, - 0.00045294, 0.00027750, 7.27263133, 0.99861635, 0.99926956, 0.49322091], 6870 [- 6.27308442, - 0.00045287, 0.00027746, 7.27263155, 0.99861655, 0.99926967, 0.49322099], 6871 [- 6.27308458, - 0.00045281, 0.00027742, 7.27263178, 0.99861676, 0.99926978, 0.49322093], 6872 [- 6.27308474, - 0.00045274, 0.00027738, 7.27263200, 0.99861696, 0.99926989, 0.49322094], 6873 [- 6.27308490, - 0.00045267, 0.00027734, 7.27263223, 0.99861716, 0.99926999, 0.49322104], 6874 [- 6.27308506, - 0.00045261, 0.00027729, 7.27263245, 0.99861736, 0.99927010, 0.49322101], 6875 [- 6.27308522, - 0.00045254, 0.00027725, 7.27263268, 0.99861757, 0.99927021, 0.49322100], 6876 [- 6.27308537, - 0.00045247, 0.00027721, 7.27263290, 0.99861777, 0.99927031, 0.49322109], 6877 [- 6.27308553, - 0.00045241, 0.00027717, 7.27263312, 0.99861797, 0.99927042, 0.49322112], 6878 [- 6.27308569, - 0.00045234, 0.00027713, 7.27263335, 0.99861817, 0.99927053, 0.49322118], 6879 [- 6.27308585, - 0.00045228, 0.00027709, 7.27263357, 0.99861837, 0.99927063, 0.49322108], 6880 [- 6.27308601, - 0.00045221, 0.00027705, 7.27263380, 0.99861858, 0.99927074, 0.49322119], 6881 [- 6.27308616, - 0.00045214, 0.00027701, 7.27263402, 0.99861878, 0.99927085, 0.49322124], 6882 [- 6.27308632, - 0.00045208, 0.00027697, 7.27263424, 0.99861898, 0.99927095, 0.49322120], 6883 [- 6.27308648, - 0.00045201, 0.00027693, 7.27263447, 0.99861918, 0.99927106, 0.49322125], 6884 [- 6.27308664, - 0.00045195, 0.00027689, 7.27263469, 0.99861938, 0.99927116, 0.49322131], 6885 [- 6.27308680, - 0.00045188, 0.00027685, 7.27263492, 0.99861959, 0.99927127, 0.49322139], 6886 [- 6.27308695, - 0.00045181, 0.00027681, 7.27263514, 0.99861979, 0.99927138, 0.49322128], 6887 [- 6.27308711, - 0.00045175, 0.00027677, 7.27263536, 0.99861999, 0.99927148, 0.49322133], 6888 [- 6.27308727, - 0.00045168, 0.00027673, 7.27263559, 0.99862019, 0.99927159, 0.49322134], 6889 [- 6.27308743, - 0.00045162, 0.00027669, 7.27263581, 0.99862039, 0.99927170, 0.49322141], 6890 [- 6.27308759, - 0.00045155, 0.00027665, 7.27263604, 0.99862059, 0.99927180, 0.49322137], 6891 [- 6.27308774, - 0.00045148, 0.00027661, 7.27263626, 0.99862079, 0.99927191, 0.49322148], 6892 [- 6.27308790, - 0.00045142, 0.00027657, 7.27263648, 0.99862099, 0.99927202, 0.49322145], 6893 [- 6.27308806, - 0.00045135, 0.00027653, 7.27263671, 0.99862120, 0.99927212, 0.49322138], 6894 [- 6.27308822, - 0.00045129, 0.00027649, 7.27263693, 0.99862140, 0.99927223, 0.49322155], 6895 [- 6.27308837, - 0.00045122, 0.00027645, 7.27263715, 0.99862160, 0.99927233, 0.49322147], 6896 [- 6.27308853, - 0.00045116, 0.00027641, 7.27263737, 0.99862180, 0.99927244, 0.49322164], 6897 [- 6.27308869, - 0.00045109, 0.00027636, 7.27263760, 0.99862200, 0.99927255, 0.49322155], 6898 [- 6.27308884, - 0.00045102, 0.00027632, 7.27263782, 0.99862220, 0.99927265, 0.49322156], 6899 [- 6.27308900, - 0.00045096, 0.00027628, 7.27263804, 0.99862240, 0.99927276, 0.49322154], 6900 [- 6.27308916, - 0.00045089, 0.00027624, 7.27263827, 0.99862260, 0.99927286, 0.49322167], 6901 [- 6.27308932, - 0.00045083, 0.00027620, 7.27263849, 0.99862280, 0.99927297, 0.49322165], 6902 [- 6.27308947, - 0.00045076, 0.00027616, 7.27263871, 0.99862300, 0.99927308, 0.49322177], 6903 [- 6.27308963, - 0.00045070, 0.00027612, 7.27263894, 0.99862320, 0.99927318, 0.49322172], 6904 [- 6.27308979, - 0.00045063, 0.00027608, 7.27263916, 0.99862340, 0.99927329, 0.49322177], 6905 [- 6.27308994, - 0.00045056, 0.00027604, 7.27263938, 0.99862360, 0.99927339, 0.49322171], 6906 [- 6.27309010, - 0.00045050, 0.00027600, 7.27263960, 0.99862381, 0.99927350, 0.49322172], 6907 [- 6.27309026, - 0.00045043, 0.00027596, 7.27263983, 0.99862401, 0.99927360, 0.49322182], 6908 [- 6.27309042, - 0.00045037, 0.00027592, 7.27264005, 0.99862421, 0.99927371, 0.49322183], 6909 [- 6.27309057, - 0.00045030, 0.00027588, 7.27264027, 0.99862441, 0.99927382, 0.49322187], 6910 [- 6.27309073, - 0.00045024, 0.00027584, 7.27264049, 0.99862461, 0.99927392, 0.49322184], 6911 [- 6.27309089, - 0.00045017, 0.00027580, 7.27264071, 0.99862481, 0.99927403, 0.49322189], 6912 [- 6.27309104, - 0.00045011, 0.00027576, 7.27264094, 0.99862501, 0.99927413, 0.49322190], 6913 [- 6.27309120, - 0.00045004, 0.00027572, 7.27264116, 0.99862521, 0.99927424, 0.49322188], 6914 [- 6.27309136, - 0.00044997, 0.00027568, 7.27264138, 0.99862541, 0.99927434, 0.49322197], 6915 [- 6.27309151, - 0.00044991, 0.00027564, 7.27264160, 0.99862561, 0.99927445, 0.49322195], 6916 [- 6.27309167, - 0.00044984, 0.00027560, 7.27264182, 0.99862581, 0.99927455, 0.49322198], 6917 [- 6.27309183, - 0.00044978, 0.00027556, 7.27264205, 0.99862601, 0.99927466, 0.49322195], 6918 [- 6.27309198, - 0.00044971, 0.00027552, 7.27264227, 0.99862621, 0.99927477, 0.49322211], 6919 [- 6.27309214, - 0.00044965, 0.00027548, 7.27264249, 0.99862641, 0.99927487, 0.49322215], 6920 [- 6.27309229, - 0.00044958, 0.00027544, 7.27264271, 0.99862660, 0.99927498, 0.49322209], 6921 [- 6.27309245, - 0.00044952, 0.00027540, 7.27264293, 0.99862680, 0.99927508, 0.49322211], 6922 [- 6.27309261, - 0.00044945, 0.00027536, 7.27264315, 0.99862700, 0.99927519, 0.49322213], 6923 [- 6.27309276, - 0.00044939, 0.00027532, 7.27264338, 0.99862720, 0.99927529, 0.49322220], 6924 [- 6.27309292, - 0.00044932, 0.00027528, 7.27264360, 0.99862740, 0.99927540, 0.49322206], 6925 [- 6.27309307, - 0.00044926, 0.00027524, 7.27264382, 0.99862760, 0.99927550, 0.49322222], 6926 [- 6.27309323, - 0.00044919, 0.00027520, 7.27264404, 0.99862780, 0.99927561, 0.49322230], 6927 [- 6.27309339, - 0.00044913, 0.00027516, 7.27264426, 0.99862800, 0.99927571, 0.49322233], 6928 [- 6.27309354, - 0.00044906, 0.00027512, 7.27264448, 0.99862820, 0.99927582, 0.49322226], 6929 [- 6.27309370, - 0.00044900, 0.00027508, 7.27264470, 0.99862840, 0.99927592, 0.49322237], 6930 [- 6.27309385, - 0.00044893, 0.00027504, 7.27264492, 0.99862860, 0.99927603, 0.49322238], 6931 [- 6.27309401, - 0.00044887, 0.00027500, 7.27264514, 0.99862880, 0.99927613, 0.49322229], 6932 [- 6.27309417, - 0.00044880, 0.00027496, 7.27264537, 0.99862899, 0.99927624, 0.49322245], 6933 [- 6.27309432, - 0.00044874, 0.00027492, 7.27264559, 0.99862919, 0.99927634, 0.49322245], 6934 [- 6.27309448, - 0.00044867, 0.00027488, 7.27264581, 0.99862939, 0.99927645, 0.49322246], 6935 [- 6.27309463, - 0.00044861, 0.00027484, 7.27264603, 0.99862959, 0.99927655, 0.49322247], 6936 [- 6.27309479, - 0.00044854, 0.00027480, 7.27264625, 0.99862979, 0.99927666, 0.49322254], 6937 [- 6.27309494, - 0.00044848, 0.00027476, 7.27264647, 0.99862999, 0.99927676, 0.49322253], 6938 [- 6.27309510, - 0.00044841, 0.00027472, 7.27264669, 0.99863019, 0.99927687, 0.49322258], 6939 [- 6.27309526, - 0.00044835, 0.00027468, 7.27264691, 0.99863039, 0.99927697, 0.49322250], 6940 [- 6.27309541, - 0.00044828, 0.00027464, 7.27264713, 0.99863058, 0.99927708, 0.49322253], 6941 [- 6.27309557, - 0.00044822, 0.00027460, 7.27264735, 0.99863078, 0.99927718, 0.49322260], 6942 [- 6.27309572, - 0.00044815, 0.00027456, 7.27264757, 0.99863098, 0.99927729, 0.49322265], 6943 [- 6.27309588, - 0.00044809, 0.00027452, 7.27264779, 0.99863118, 0.99927739, 0.49322261], 6944 [- 6.27309603, - 0.00044802, 0.00027448, 7.27264801, 0.99863138, 0.99927750, 0.49322265], 6945 [- 6.27309619, - 0.00044796, 0.00027444, 7.27264823, 0.99863158, 0.99927760, 0.49322274], 6946 [- 6.27309634, - 0.00044789, 0.00027440, 7.27264845, 0.99863177, 0.99927770, 0.49322271], 6947 [- 6.27309650, - 0.00044783, 0.00027436, 7.27264867, 0.99863197, 0.99927781, 0.49322271], 6948 [- 6.27309665, - 0.00044776, 0.00027432, 7.27264889, 0.99863217, 0.99927791, 0.49322277], 6949 [- 6.27309681, - 0.00044770, 0.00027429, 7.27264911, 0.99863237, 0.99927802, 0.49322282], 6950 [- 6.27309696, - 0.00044763, 0.00027425, 7.27264933, 0.99863256, 0.99927812, 0.49322277], 6951 [- 6.27309712, - 0.00044757, 0.00027421, 7.27264955, 0.99863276, 0.99927823, 0.49322279], 6952 [- 6.27309727, - 0.00044750, 0.00027417, 7.27264977, 0.99863296, 0.99927833, 0.49322290], 6953 [- 6.27309743, - 0.00044744, 0.00027413, 7.27264999, 0.99863316, 0.99927844, 0.49322286], 6954 [- 6.27309758, - 0.00044737, 0.00027409, 7.27265021, 0.99863336, 0.99927854, 0.49322289], 6955 [- 6.27309774, - 0.00044731, 0.00027405, 7.27265043, 0.99863355, 0.99927864, 0.49322292], 6956 [- 6.27309789, - 0.00044724, 0.00027401, 7.27265065, 0.99863375, 0.99927875, 0.49322303], 6957 [- 6.27309805, - 0.00044718, 0.00027397, 7.27265087, 0.99863395, 0.99927885, 0.49322297], 6958 [- 6.27309820, - 0.00044712, 0.00027393, 7.27265108, 0.99863415, 0.99927896, 0.49322299], 6959 [- 6.27309835, - 0.00044705, 0.00027389, 7.27265130, 0.99863434, 0.99927906, 0.49322300], 6960 [- 6.27309851, - 0.00044699, 0.00027385, 7.27265152, 0.99863454, 0.99927916, 0.49322302], 6961 [- 6.27309866, - 0.00044692, 0.00027381, 7.27265174, 0.99863474, 0.99927927, 0.49322302], 6962 [- 6.27309882, - 0.00044686, 0.00027377, 7.27265196, 0.99863493, 0.99927937, 0.49322309], 6963 [- 6.27309897, - 0.00044679, 0.00027373, 7.27265218, 0.99863513, 0.99927948, 0.49322304], 6964 [- 6.27309913, - 0.00044673, 0.00027369, 7.27265240, 0.99863533, 0.99927958, 0.49322317], 6965 [- 6.27309928, - 0.00044666, 0.00027365, 7.27265262, 0.99863553, 0.99927968, 0.49322317], 6966 [- 6.27309944, - 0.00044660, 0.00027361, 7.27265284, 0.99863572, 0.99927979, 0.49322320], 6967 [- 6.27309959, - 0.00044653, 0.00027357, 7.27265305, 0.99863592, 0.99927989, 0.49322325], 6968 [- 6.27309974, - 0.00044647, 0.00027353, 7.27265327, 0.99863612, 0.99928000, 0.49322322], 6969 [- 6.27309990, - 0.00044641, 0.00027349, 7.27265349, 0.99863631, 0.99928010, 0.49322331], 6970 [- 6.27310005, - 0.00044634, 0.00027345, 7.27265371, 0.99863651, 0.99928020, 0.49322327], 6971 [- 6.27310021, - 0.00044628, 0.00027341, 7.27265393, 0.99863671, 0.99928031, 0.49322319], 6972 [- 6.27310036, - 0.00044621, 0.00027338, 7.27265415, 0.99863690, 0.99928041, 0.49322336], 6973 [- 6.27310051, - 0.00044615, 0.00027334, 7.27265436, 0.99863710, 0.99928052, 0.49322341], 6974 [- 6.27310067, - 0.00044608, 0.00027330, 7.27265458, 0.99863730, 0.99928062, 0.49322335], 6975 [- 6.27310082, - 0.00044602, 0.00027326, 7.27265480, 0.99863749, 0.99928072, 0.49322336], 6976 [- 6.27310097, - 0.00044596, 0.00027322, 7.27265502, 0.99863769, 0.99928083, 0.49322343], 6977 [- 6.27310113, - 0.00044589, 0.00027318, 7.27265524, 0.99863789, 0.99928093, 0.49322345], 6978 [- 6.27310128, - 0.00044583, 0.00027314, 7.27265546, 0.99863808, 0.99928103, 0.49322341], 6979 [- 6.27310144, - 0.00044576, 0.00027310, 7.27265567, 0.99863828, 0.99928114, 0.49322343], 6980 [- 6.27310159, - 0.00044570, 0.00027306, 7.27265589, 0.99863847, 0.99928124, 0.49322353], 6981 [- 6.27310174, - 0.00044563, 0.00027302, 7.27265611, 0.99863867, 0.99928134, 0.49322355], 6982 [- 6.27310190, - 0.00044557, 0.00027298, 7.27265633, 0.99863887, 0.99928145, 0.49322359], 6983 [- 6.27310205, - 0.00044551, 0.00027294, 7.27265654, 0.99863906, 0.99928155, 0.49322357], 6984 [- 6.27310220, - 0.00044544, 0.00027290, 7.27265676, 0.99863926, 0.99928165, 0.49322365], 6985 [- 6.27310236, - 0.00044538, 0.00027286, 7.27265698, 0.99863945, 0.99928176, 0.49322365], 6986 [- 6.27310251, - 0.00044531, 0.00027282, 7.27265720, 0.99863965, 0.99928186, 0.49322366], 6987 [- 6.27310266, - 0.00044525, 0.00027279, 7.27265741, 0.99863984, 0.99928196, 0.49322350], 6988 [- 6.27310282, - 0.00044519, 0.00027275, 7.27265763, 0.99864004, 0.99928207, 0.49322363], 6989 [- 6.27310297, - 0.00044512, 0.00027271, 7.27265785, 0.99864024, 0.99928217, 0.49322376], 6990 [- 6.27310312, - 0.00044506, 0.00027267, 7.27265807, 0.99864043, 0.99928227, 0.49322376], 6991 [- 6.27310328, - 0.00044499, 0.00027263, 7.27265828, 0.99864063, 0.99928238, 0.49322386], 6992 [- 6.27310343, - 0.00044493, 0.00027259, 7.27265850, 0.99864082, 0.99928248, 0.49322387], 6993 [- 6.27310358, - 0.00044487, 0.00027255, 7.27265872, 0.99864102, 0.99928258, 0.49322377], 6994 [- 6.27310374, - 0.00044480, 0.00027251, 7.27265893, 0.99864121, 0.99928269, 0.49322371], 6995 [- 6.27310389, - 0.00044474, 0.00027247, 7.27265915, 0.99864141, 0.99928279, 0.49322385], 6996 [- 6.27310404, - 0.00044467, 0.00027243, 7.27265937, 0.99864160, 0.99928289, 0.49322391], 6997 [- 6.27310419, - 0.00044461, 0.00027239, 7.27265958, 0.99864180, 0.99928300, 0.49322388], 6998 [- 6.27310435, - 0.00044455, 0.00027235, 7.27265980, 0.99864199, 0.99928310, 0.49322387], 6999 [- 6.27310450, - 0.00044448, 0.00027231, 7.27266002, 0.99864219, 0.99928320, 0.49322394], 7000 [- 6.27310465, - 0.00044442, 0.00027228, 7.27266023, 0.99864238, 0.99928330, 0.49322403], 7001 [- 6.27310481, - 0.00044436, 0.00027224, 7.27266045, 0.99864258, 0.99928341, 0.49322393], 7002 [- 6.27310496, - 0.00044429, 0.00027220, 7.27266067, 0.99864277, 0.99928351, 0.49322396], 7003 [- 6.27310511, - 0.00044423, 0.00027216, 7.27266088, 0.99864297, 0.99928361, 0.49322397], 7004 [- 6.27310526, - 0.00044416, 0.00027212, 7.27266110, 0.99864316, 0.99928372, 0.49322408], 7005 [- 6.27310542, - 0.00044410, 0.00027208, 7.27266132, 0.99864336, 0.99928382, 0.49322399], 7006 [- 6.27310557, - 0.00044404, 0.00027204, 7.27266153, 0.99864355, 0.99928392, 0.49322405], 7007 [- 6.27310572, - 0.00044397, 0.00027200, 7.27266175, 0.99864375, 0.99928402, 0.49322411], 7008 [- 6.27310587, - 0.00044391, 0.00027196, 7.27266196, 0.99864394, 0.99928413, 0.49322415], 7009 [- 6.27310603, - 0.00044385, 0.00027192, 7.27266218, 0.99864414, 0.99928423, 0.49322414], 7010 [- 6.27310618, - 0.00044378, 0.00027189, 7.27266240, 0.99864433, 0.99928433, 0.49322429], 7011 [- 6.27310633, - 0.00044372, 0.00027185, 7.27266261, 0.99864453, 0.99928444, 0.49322422], 7012 [- 6.27310648, - 0.00044365, 0.00027181, 7.27266283, 0.99864472, 0.99928454, 0.49322422], 7013 [- 6.27310663, - 0.00044359, 0.00027177, 7.27266304, 0.99864491, 0.99928464, 0.49322418], 7014 [- 6.27310679, - 0.00044353, 0.00027173, 7.27266326, 0.99864511, 0.99928474, 0.49322426], 7015 [- 6.27310694, - 0.00044346, 0.00027169, 7.27266347, 0.99864530, 0.99928485, 0.49322432], 7016 [- 6.27310709, - 0.00044340, 0.00027165, 7.27266369, 0.99864550, 0.99928495, 0.49322429], 7017 [- 6.27310724, - 0.00044334, 0.00027161, 7.27266391, 0.99864569, 0.99928505, 0.49322440], 7018 [- 6.27310739, - 0.00044327, 0.00027157, 7.27266412, 0.99864589, 0.99928515, 0.49322431], 7019 [- 6.27310755, - 0.00044321, 0.00027153, 7.27266434, 0.99864608, 0.99928526, 0.49322435], 7020 [- 6.27310770, - 0.00044315, 0.00027150, 7.27266455, 0.99864627, 0.99928536, 0.49322446], 7021 [- 6.27310785, - 0.00044308, 0.00027146, 7.27266477, 0.99864647, 0.99928546, 0.49322440], 7022 [- 6.27310800, - 0.00044302, 0.00027142, 7.27266498, 0.99864666, 0.99928556, 0.49322441], 7023 [- 6.27310815, - 0.00044296, 0.00027138, 7.27266520, 0.99864685, 0.99928566, 0.49322447], 7024 [- 6.27310831, - 0.00044289, 0.00027134, 7.27266541, 0.99864705, 0.99928577, 0.49322449], 7025 [- 6.27310846, - 0.00044283, 0.00027130, 7.27266563, 0.99864724, 0.99928587, 0.49322455], 7026 [- 6.27310861, - 0.00044277, 0.00027126, 7.27266584, 0.99864744, 0.99928597, 0.49322455], 7027 [- 6.27310876, - 0.00044270, 0.00027122, 7.27266606, 0.99864763, 0.99928607, 0.49322448], 7028 [- 6.27310891, - 0.00044264, 0.00027119, 7.27266627, 0.99864782, 0.99928618, 0.49322460], 7029 [- 6.27310906, - 0.00044258, 0.00027115, 7.27266649, 0.99864802, 0.99928628, 0.49322463], 7030 [- 6.27310921, - 0.00044251, 0.00027111, 7.27266670, 0.99864821, 0.99928638, 0.49322466], 7031 [- 6.27310937, - 0.00044245, 0.00027107, 7.27266692, 0.99864840, 0.99928648, 0.49322476], 7032 [- 6.27310952, - 0.00044239, 0.00027103, 7.27266713, 0.99864860, 0.99928658, 0.49322465], 7033 [- 6.27310967, - 0.00044232, 0.00027099, 7.27266735, 0.99864879, 0.99928669, 0.49322471], 7034 [- 6.27310982, - 0.00044226, 0.00027095, 7.27266756, 0.99864898, 0.99928679, 0.49322475], 7035 [- 6.27310997, - 0.00044220, 0.00027091, 7.27266777, 0.99864917, 0.99928689, 0.49322474], 7036 [- 6.27311012, - 0.00044213, 0.00027088, 7.27266799, 0.99864937, 0.99928699, 0.49322474], 7037 [- 6.27311027, - 0.00044207, 0.00027084, 7.27266820, 0.99864956, 0.99928709, 0.49322480], 7038 [- 6.27311042, - 0.00044201, 0.00027080, 7.27266842, 0.99864975, 0.99928719, 0.49322485], 7039 [- 6.27311058, - 0.00044194, 0.00027076, 7.27266863, 0.99864995, 0.99928730, 0.49322481], 7040 [- 6.27311073, - 0.00044188, 0.00027072, 7.27266884, 0.99865014, 0.99928740, 0.49322488], 7041 [- 6.27311088, - 0.00044182, 0.00027068, 7.27266906, 0.99865033, 0.99928750, 0.49322485], 7042 [- 6.27311103, - 0.00044176, 0.00027064, 7.27266927, 0.99865052, 0.99928760, 0.49322488], 7043 [- 6.27311118, - 0.00044169, 0.00027060, 7.27266949, 0.99865072, 0.99928770, 0.49322494], 7044 [- 6.27311133, - 0.00044163, 0.00027057, 7.27266970, 0.99865091, 0.99928780, 0.49322492], 7045 [- 6.27311148, - 0.00044157, 0.00027053, 7.27266991, 0.99865110, 0.99928791, 0.49322499], 7046 [- 6.27311163, - 0.00044150, 0.00027049, 7.27267013, 0.99865129, 0.99928801, 0.49322490], 7047 [- 6.27311178, - 0.00044144, 0.00027045, 7.27267034, 0.99865149, 0.99928811, 0.49322494], 7048 [- 6.27311193, - 0.00044138, 0.00027041, 7.27267056, 0.99865168, 0.99928821, 0.49322503], 7049 [- 6.27311208, - 0.00044131, 0.00027037, 7.27267077, 0.99865187, 0.99928831, 0.49322507], 7050 [- 6.27311223, - 0.00044125, 0.00027033, 7.27267098, 0.99865206, 0.99928841, 0.49322506], 7051 [- 6.27311238, - 0.00044119, 0.00027030, 7.27267120, 0.99865226, 0.99928852, 0.49322507], 7052 [- 6.27311253, - 0.00044113, 0.00027026, 7.27267141, 0.99865245, 0.99928862, 0.49322511], 7053 [- 6.27311269, - 0.00044106, 0.00027022, 7.27267162, 0.99865264, 0.99928872, 0.49322515], 7054 [- 6.27311284, - 0.00044100, 0.00027018, 7.27267184, 0.99865283, 0.99928882, 0.49322525], 7055 [- 6.27311299, - 0.00044094, 0.00027014, 7.27267205, 0.99865302, 0.99928892, 0.49322511], 7056 [- 6.27311314, - 0.00044087, 0.00027010, 7.27267226, 0.99865322, 0.99928902, 0.49322518], 7057 [- 6.27311329, - 0.00044081, 0.00027006, 7.27267247, 0.99865341, 0.99928912, 0.49322526], 7058 [- 6.27311344, - 0.00044075, 0.00027003, 7.27267269, 0.99865360, 0.99928922, 0.49322521], 7059 [- 6.27311359, - 0.00044069, 0.00026999, 7.27267290, 0.99865379, 0.99928933, 0.49322528], 7060 [- 6.27311374, - 0.00044062, 0.00026995, 7.27267311, 0.99865398, 0.99928943, 0.49322529], 7061 [- 6.27311389, - 0.00044056, 0.00026991, 7.27267333, 0.99865418, 0.99928953, 0.49322527], 7062 [- 6.27311404, - 0.00044050, 0.00026987, 7.27267354, 0.99865437, 0.99928963, 0.49322539], 7063 [- 6.27311419, - 0.00044044, 0.00026983, 7.27267375, 0.99865456, 0.99928973, 0.49322538], 7064 [- 6.27311434, - 0.00044037, 0.00026980, 7.27267396, 0.99865475, 0.99928983, 0.49322547], 7065 [- 6.27311449, - 0.00044031, 0.00026976, 7.27267418, 0.99865494, 0.99928993, 0.49322544], 7066 [- 6.27311464, - 0.00044025, 0.00026972, 7.27267439, 0.99865513, 0.99929003, 0.49322545], 7067 [- 6.27311479, - 0.00044018, 0.00026968, 7.27267460, 0.99865532, 0.99929013, 0.49322545], 7068 [- 6.27311494, - 0.00044012, 0.00026964, 7.27267481, 0.99865551, 0.99929024, 0.49322537], 7069 [- 6.27311509, - 0.00044006, 0.00026960, 7.27267503, 0.99865571, 0.99929034, 0.49322549], 7070 [- 6.27311524, - 0.00044000, 0.00026957, 7.27267524, 0.99865590, 0.99929044, 0.49322552], 7071 [- 6.27311539, - 0.00043993, 0.00026953, 7.27267545, 0.99865609, 0.99929054, 0.49322561], 7072 [- 6.27311554, - 0.00043987, 0.00026949, 7.27267566, 0.99865628, 0.99929064, 0.49322551], 7073 [- 6.27311569, - 0.00043981, 0.00026945, 7.27267588, 0.99865647, 0.99929074, 0.49322559], 7074 [- 6.27311583, - 0.00043975, 0.00026941, 7.27267609, 0.99865666, 0.99929084, 0.49322564], 7075 [- 6.27311598, - 0.00043968, 0.00026937, 7.27267630, 0.99865685, 0.99929094, 0.49322558], 7076 [- 6.27311613, - 0.00043962, 0.00026934, 7.27267651, 0.99865704, 0.99929104, 0.49322567], 7077 [- 6.27311628, - 0.00043956, 0.00026930, 7.27267672, 0.99865723, 0.99929114, 0.49322564], 7078 [- 6.27311643, - 0.00043950, 0.00026926, 7.27267693, 0.99865742, 0.99929124, 0.49322573], 7079 [- 6.27311658, - 0.00043944, 0.00026922, 7.27267715, 0.99865762, 0.99929134, 0.49322571], 7080 [- 6.27311673, - 0.00043937, 0.00026918, 7.27267736, 0.99865781, 0.99929144, 0.49322569], 7081 [- 6.27311688, - 0.00043931, 0.00026914, 7.27267757, 0.99865800, 0.99929155, 0.49322578], 7082 [- 6.27311703, - 0.00043925, 0.00026911, 7.27267778, 0.99865819, 0.99929165, 0.49322578], 7083 [- 6.27311718, - 0.00043919, 0.00026907, 7.27267799, 0.99865838, 0.99929175, 0.49322584], 7084 [- 6.27311733, - 0.00043912, 0.00026903, 7.27267820, 0.99865857, 0.99929185, 0.49322586], 7085 [- 6.27311748, - 0.00043906, 0.00026899, 7.27267842, 0.99865876, 0.99929195, 0.49322590], 7086 [- 6.27311763, - 0.00043900, 0.00026895, 7.27267863, 0.99865895, 0.99929205, 0.49322588], 7087 [- 6.27311777, - 0.00043894, 0.00026892, 7.27267884, 0.99865914, 0.99929215, 0.49322594], 7088 [- 6.27311792, - 0.00043887, 0.00026888, 7.27267905, 0.99865933, 0.99929225, 0.49322584], 7089 [- 6.27311807, - 0.00043881, 0.00026884, 7.27267926, 0.99865952, 0.99929235, 0.49322593], 7090 [- 6.27311822, - 0.00043875, 0.00026880, 7.27267947, 0.99865971, 0.99929245, 0.49322593], 7091 [- 6.27311837, - 0.00043869, 0.00026876, 7.27267968, 0.99865990, 0.99929255, 0.49322599], 7092 [- 6.27311852, - 0.00043863, 0.00026872, 7.27267989, 0.99866009, 0.99929265, 0.49322601], 7093 [- 6.27311867, - 0.00043856, 0.00026869, 7.27268010, 0.99866028, 0.99929275, 0.49322609], 7094 [- 6.27311882, - 0.00043850, 0.00026865, 7.27268032, 0.99866047, 0.99929285, 0.49322605], 7095 [- 6.27311897, - 0.00043844, 0.00026861, 7.27268053, 0.99866066, 0.99929295, 0.49322609], 7096 [- 6.27311911, - 0.00043838, 0.00026857, 7.27268074, 0.99866085, 0.99929305, 0.49322609], 7097 [- 6.27311926, - 0.00043832, 0.00026853, 7.27268095, 0.99866104, 0.99929315, 0.49322617], 7098 [- 6.27311941, - 0.00043825, 0.00026850, 7.27268116, 0.99866123, 0.99929325, 0.49322622], 7099 [- 6.27311956, - 0.00043819, 0.00026846, 7.27268137, 0.99866142, 0.99929335, 0.49322614], 7100 [- 6.27311971, - 0.00043813, 0.00026842, 7.27268158, 0.99866161, 0.99929345, 0.49322631], 7101 [- 6.27311986, - 0.00043807, 0.00026838, 7.27268179, 0.99866180, 0.99929355, 0.49322620], 7102 [- 6.27312000, - 0.00043800, 0.00026834, 7.27268200, 0.99866199, 0.99929365, 0.49322616], 7103 [- 6.27312015, - 0.00043794, 0.00026831, 7.27268221, 0.99866217, 0.99929375, 0.49322624], 7104 [- 6.27312030, - 0.00043788, 0.00026827, 7.27268242, 0.99866236, 0.99929385, 0.49322623], 7105 [- 6.27312045, - 0.00043782, 0.00026823, 7.27268263, 0.99866255, 0.99929395, 0.49322635], 7106 [- 6.27312060, - 0.00043776, 0.00026819, 7.27268284, 0.99866274, 0.99929405, 0.49322632], 7107 [- 6.27312075, - 0.00043770, 0.00026815, 7.27268305, 0.99866293, 0.99929415, 0.49322635], 7108 [- 6.27312089, - 0.00043763, 0.00026812, 7.27268326, 0.99866312, 0.99929425, 0.49322639], 7109 [- 6.27312104, - 0.00043757, 0.00026808, 7.27268347, 0.99866331, 0.99929435, 0.49322639], 7110 [- 6.27312119, - 0.00043751, 0.00026804, 7.27268368, 0.99866350, 0.99929445, 0.49322638], 7111 [- 6.27312134, - 0.00043745, 0.00026800, 7.27268389, 0.99866369, 0.99929455, 0.49322647], 7112 [- 6.27312149, - 0.00043739, 0.00026796, 7.27268410, 0.99866388, 0.99929465, 0.49322642], 7113 [- 6.27312163, - 0.00043732, 0.00026793, 7.27268431, 0.99866407, 0.99929475, 0.49322644], 7114 [- 6.27312178, - 0.00043726, 0.00026789, 7.27268452, 0.99866425, 0.99929485, 0.49322646], 7115 [- 6.27312193, - 0.00043720, 0.00026785, 7.27268473, 0.99866444, 0.99929495, 0.49322653], 7116 [- 6.27312208, - 0.00043714, 0.00026781, 7.27268494, 0.99866463, 0.99929505, 0.49322663], 7117 [- 6.27312223, - 0.00043708, 0.00026778, 7.27268515, 0.99866482, 0.99929515, 0.49322655], 7118 [- 6.27312237, - 0.00043702, 0.00026774, 7.27268536, 0.99866501, 0.99929525, 0.49322658], 7119 [- 6.27312252, - 0.00043695, 0.00026770, 7.27268557, 0.99866520, 0.99929535, 0.49322660], 7120 [- 6.27312267, - 0.00043689, 0.00026766, 7.27268578, 0.99866539, 0.99929545, 0.49322666], 7121 [- 6.27312282, - 0.00043683, 0.00026762, 7.27268599, 0.99866557, 0.99929555, 0.49322663], 7122 [- 6.27312296, - 0.00043677, 0.00026759, 7.27268619, 0.99866576, 0.99929564, 0.49322672], 7123 [- 6.27312311, - 0.00043671, 0.00026755, 7.27268640, 0.99866595, 0.99929574, 0.49322669], 7124 [- 6.27312326, - 0.00043665, 0.00026751, 7.27268661, 0.99866614, 0.99929584, 0.49322667], 7125 [- 6.27312341, - 0.00043658, 0.00026747, 7.27268682, 0.99866633, 0.99929594, 0.49322665], 7126 [- 6.27312355, - 0.00043652, 0.00026744, 7.27268703, 0.99866652, 0.99929604, 0.49322678], 7127 [- 6.27312370, - 0.00043646, 0.00026740, 7.27268724, 0.99866670, 0.99929614, 0.49322680], 7128 [- 6.27312385, - 0.00043640, 0.00026736, 7.27268745, 0.99866689, 0.99929624, 0.49322677], 7129 [- 6.27312399, - 0.00043634, 0.00026732, 7.27268766, 0.99866708, 0.99929634, 0.49322687], 7130 [- 6.27312414, - 0.00043628, 0.00026728, 7.27268787, 0.99866727, 0.99929644, 0.49322695], 7131 [- 6.27312429, - 0.00043622, 0.00026725, 7.27268807, 0.99866746, 0.99929654, 0.49322684], 7132 [- 6.27312444, - 0.00043615, 0.00026721, 7.27268828, 0.99866764, 0.99929664, 0.49322695], 7133 [- 6.27312458, - 0.00043609, 0.00026717, 7.27268849, 0.99866783, 0.99929674, 0.49322694], 7134 [- 6.27312473, - 0.00043603, 0.00026713, 7.27268870, 0.99866802, 0.99929684, 0.49322694], 7135 [- 6.27312488, - 0.00043597, 0.00026710, 7.27268891, 0.99866821, 0.99929693, 0.49322692], 7136 [- 6.27312502, - 0.00043591, 0.00026706, 7.27268912, 0.99866839, 0.99929703, 0.49322694], 7137 [- 6.27312517, - 0.00043585, 0.00026702, 7.27268932, 0.99866858, 0.99929713, 0.49322699], 7138 [- 6.27312532, - 0.00043579, 0.00026698, 7.27268953, 0.99866877, 0.99929723, 0.49322697], 7139 [- 6.27312546, - 0.00043572, 0.00026695, 7.27268974, 0.99866896, 0.99929733, 0.49322709], 7140 [- 6.27312561, - 0.00043566, 0.00026691, 7.27268995, 0.99866914, 0.99929743, 0.49322698], 7141 [- 6.27312576, - 0.00043560, 0.00026687, 7.27269016, 0.99866933, 0.99929753, 0.49322713], 7142 [- 6.27312590, - 0.00043554, 0.00026683, 7.27269037, 0.99866952, 0.99929763, 0.49322708], 7143 [- 6.27312605, - 0.00043548, 0.00026680, 7.27269057, 0.99866971, 0.99929773, 0.49322723], 7144 [- 6.27312620, - 0.00043542, 0.00026676, 7.27269078, 0.99866989, 0.99929782, 0.49322717], 7145 [- 6.27312634, - 0.00043536, 0.00026672, 7.27269099, 0.99867008, 0.99929792, 0.49322722], 7146 [- 6.27312649, - 0.00043529, 0.00026668, 7.27269120, 0.99867027, 0.99929802, 0.49322714], 7147 [- 6.27312664, - 0.00043523, 0.00026665, 7.27269140, 0.99867045, 0.99929812, 0.49322725], 7148 [- 6.27312678, - 0.00043517, 0.00026661, 7.27269161, 0.99867064, 0.99929822, 0.49322739], 7149 [- 6.27312693, - 0.00043511, 0.00026657, 7.27269182, 0.99867083, 0.99929832, 0.49322721], 7150 [- 6.27312708, - 0.00043505, 0.00026653, 7.27269203, 0.99867101, 0.99929842, 0.49322728], 7151 [- 6.27312722, - 0.00043499, 0.00026650, 7.27269223, 0.99867120, 0.99929852, 0.49322731], 7152 [- 6.27312737, - 0.00043493, 0.00026646, 7.27269244, 0.99867139, 0.99929861, 0.49322735], 7153 [- 6.27312752, - 0.00043487, 0.00026642, 7.27269265, 0.99867158, 0.99929871, 0.49322737], 7154 [- 6.27312766, - 0.00043481, 0.00026638, 7.27269286, 0.99867176, 0.99929881, 0.49322735], 7155 [- 6.27312781, - 0.00043474, 0.00026635, 7.27269306, 0.99867195, 0.99929891, 0.49322744], 7156 [- 6.27312795, - 0.00043468, 0.00026631, 7.27269327, 0.99867214, 0.99929901, 0.49322745], 7157 [- 6.27312810, - 0.00043462, 0.00026627, 7.27269348, 0.99867232, 0.99929911, 0.49322747], 7158 [- 6.27312825, - 0.00043456, 0.00026623, 7.27269368, 0.99867251, 0.99929920, 0.49322750], 7159 [- 6.27312839, - 0.00043450, 0.00026620, 7.27269389, 0.99867269, 0.99929930, 0.49322745], 7160 [- 6.27312854, - 0.00043444, 0.00026616, 7.27269410, 0.99867288, 0.99929940, 0.49322761], 7161 [- 6.27312868, - 0.00043438, 0.00026612, 7.27269431, 0.99867307, 0.99929950, 0.49322746], 7162 [- 6.27312883, - 0.00043432, 0.00026608, 7.27269451, 0.99867325, 0.99929960, 0.49322757], 7163 [- 6.27312898, - 0.00043426, 0.00026605, 7.27269472, 0.99867344, 0.99929970, 0.49322765], 7164 [- 6.27312912, - 0.00043420, 0.00026601, 7.27269493, 0.99867363, 0.99929979, 0.49322763], 7165 [- 6.27312927, - 0.00043413, 0.00026597, 7.27269513, 0.99867381, 0.99929989, 0.49322751], 7166 [- 6.27312941, - 0.00043407, 0.00026593, 7.27269534, 0.99867400, 0.99929999, 0.49322758], 7167 [- 6.27312956, - 0.00043401, 0.00026590, 7.27269555, 0.99867418, 0.99930009, 0.49322771], 7168 [- 6.27312970, - 0.00043395, 0.00026586, 7.27269575, 0.99867437, 0.99930019, 0.49322770], 7169 [- 6.27312985, - 0.00043389, 0.00026582, 7.27269596, 0.99867456, 0.99930029, 0.49322772], 7170 [- 6.27313000, - 0.00043383, 0.00026579, 7.27269616, 0.99867474, 0.99930038, 0.49322775], 7171 [- 6.27313014, - 0.00043377, 0.00026575, 7.27269637, 0.99867493, 0.99930048, 0.49322776], 7172 [- 6.27313029, - 0.00043371, 0.00026571, 7.27269658, 0.99867511, 0.99930058, 0.49322779], 7173 [- 6.27313043, - 0.00043365, 0.00026567, 7.27269678, 0.99867530, 0.99930068, 0.49322775], 7174 [- 6.27313058, - 0.00043359, 0.00026564, 7.27269699, 0.99867548, 0.99930078, 0.49322782], 7175 [- 6.27313072, - 0.00043353, 0.00026560, 7.27269720, 0.99867567, 0.99930087, 0.49322777], 7176 [- 6.27313087, - 0.00043347, 0.00026556, 7.27269740, 0.99867586, 0.99930097, 0.49322785], 7177 [- 6.27313101, - 0.00043341, 0.00026552, 7.27269761, 0.99867604, 0.99930107, 0.49322785], 7178 [- 6.27313116, - 0.00043335, 0.00026549, 7.27269781, 0.99867623, 0.99930117, 0.49322792], 7179 [- 6.27313130, - 0.00043328, 0.00026545, 7.27269802, 0.99867641, 0.99930127, 0.49322802], 7180 [- 6.27313145, - 0.00043322, 0.00026541, 7.27269823, 0.99867660, 0.99930136, 0.49322800], 7181 [- 6.27313159, - 0.00043316, 0.00026538, 7.27269843, 0.99867678, 0.99930146, 0.49322801], 7182 [- 6.27313174, - 0.00043310, 0.00026534, 7.27269864, 0.99867697, 0.99930156, 0.49322793], 7183 [- 6.27313188, - 0.00043304, 0.00026530, 7.27269884, 0.99867715, 0.99930166, 0.49322797], 7184 [- 6.27313203, - 0.00043298, 0.00026526, 7.27269905, 0.99867734, 0.99930175, 0.49322808], 7185 [- 6.27313217, - 0.00043292, 0.00026523, 7.27269925, 0.99867752, 0.99930185, 0.49322805], 7186 [- 6.27313232, - 0.00043286, 0.00026519, 7.27269946, 0.99867771, 0.99930195, 0.49322811], 7187 [- 6.27313246, - 0.00043280, 0.00026515, 7.27269966, 0.99867789, 0.99930205, 0.49322809], 7188 [- 6.27313261, - 0.00043274, 0.00026512, 7.27269987, 0.99867808, 0.99930214, 0.49322806], 7189 [- 6.27313275, - 0.00043268, 0.00026508, 7.27270007, 0.99867826, 0.99930224, 0.49322819], 7190 [- 6.27313290, - 0.00043262, 0.00026504, 7.27270028, 0.99867845, 0.99930234, 0.49322820], 7191 [- 6.27313304, - 0.00043256, 0.00026501, 7.27270049, 0.99867863, 0.99930244, 0.49322821], 7192 [- 6.27313319, - 0.00043250, 0.00026497, 7.27270069, 0.99867882, 0.99930253, 0.49322826], 7193 [- 6.27313333, - 0.00043244, 0.00026493, 7.27270090, 0.99867900, 0.99930263, 0.49322825], 7194 [- 6.27313348, - 0.00043238, 0.00026489, 7.27270110, 0.99867919, 0.99930273, 0.49322828], 7195 [- 6.27313362, - 0.00043232, 0.00026486, 7.27270131, 0.99867937, 0.99930283, 0.49322824], 7196 [- 6.27313377, - 0.00043226, 0.00026482, 7.27270151, 0.99867955, 0.99930292, 0.49322829], 7197 [- 6.27313391, - 0.00043220, 0.00026478, 7.27270171, 0.99867974, 0.99930302, 0.49322833], 7198 [- 6.27313405, - 0.00043214, 0.00026475, 7.27270192, 0.99867992, 0.99930312, 0.49322832], 7199 [- 6.27313420, - 0.00043207, 0.00026471, 7.27270212, 0.99868011, 0.99930322, 0.49322832], 7200 [- 6.27313434, - 0.00043201, 0.00026467, 7.27270233, 0.99868029, 0.99930331, 0.49322841], 7201 [- 6.27313449, - 0.00043195, 0.00026464, 7.27270253, 0.99868048, 0.99930341, 0.49322842], 7202 [- 6.27313463, - 0.00043189, 0.00026460, 7.27270274, 0.99868066, 0.99930351, 0.49322850], 7203 [- 6.27313478, - 0.00043183, 0.00026456, 7.27270294, 0.99868084, 0.99930360, 0.49322849], 7204 [- 6.27313492, - 0.00043177, 0.00026452, 7.27270315, 0.99868103, 0.99930370, 0.49322832], 7205 [- 6.27313506, - 0.00043171, 0.00026449, 7.27270335, 0.99868121, 0.99930380, 0.49322850], 7206 [- 6.27313521, - 0.00043165, 0.00026445, 7.27270356, 0.99868140, 0.99930390, 0.49322849], 7207 [- 6.27313535, - 0.00043159, 0.00026441, 7.27270376, 0.99868158, 0.99930399, 0.49322851], 7208 [- 6.27313550, - 0.00043153, 0.00026438, 7.27270396, 0.99868176, 0.99930409, 0.49322842], 7209 [- 6.27313564, - 0.00043147, 0.00026434, 7.27270417, 0.99868195, 0.99930419, 0.49322856], 7210 [- 6.27313578, - 0.00043141, 0.00026430, 7.27270437, 0.99868213, 0.99930428, 0.49322852], 7211 [- 6.27313593, - 0.00043135, 0.00026427, 7.27270458, 0.99868232, 0.99930438, 0.49322857], 7212 [- 6.27313607, - 0.00043129, 0.00026423, 7.27270478, 0.99868250, 0.99930448, 0.49322857], 7213 [- 6.27313622, - 0.00043123, 0.00026419, 7.27270498, 0.99868268, 0.99930458, 0.49322862], 7214 [- 6.27313636, - 0.00043117, 0.00026416, 7.27270519, 0.99868287, 0.99930467, 0.49322867], 7215 [- 6.27313650, - 0.00043111, 0.00026412, 7.27270539, 0.99868305, 0.99930477, 0.49322876], 7216 [- 6.27313665, - 0.00043105, 0.00026408, 7.27270560, 0.99868323, 0.99930487, 0.49322877], 7217 [- 6.27313679, - 0.00043099, 0.00026405, 7.27270580, 0.99868342, 0.99930496, 0.49322873], 7218 [- 6.27313693, - 0.00043093, 0.00026401, 7.27270600, 0.99868360, 0.99930506, 0.49322870], 7219 [- 6.27313708, - 0.00043087, 0.00026397, 7.27270621, 0.99868378, 0.99930516, 0.49322877], 7220 [- 6.27313722, - 0.00043081, 0.00026394, 7.27270641, 0.99868397, 0.99930525, 0.49322879], 7221 [- 6.27313737, - 0.00043075, 0.00026390, 7.27270661, 0.99868415, 0.99930535, 0.49322891], 7222 [- 6.27313751, - 0.00043069, 0.00026386, 7.27270682, 0.99868433, 0.99930545, 0.49322887], 7223 [- 6.27313765, - 0.00043063, 0.00026382, 7.27270702, 0.99868452, 0.99930554, 0.49322881], 7224 [- 6.27313780, - 0.00043057, 0.00026379, 7.27270722, 0.99868470, 0.99930564, 0.49322892], 7225 [- 6.27313794, - 0.00043051, 0.00026375, 7.27270743, 0.99868488, 0.99930574, 0.49322891], 7226 [- 6.27313808, - 0.00043045, 0.00026371, 7.27270763, 0.99868507, 0.99930583, 0.49322891], 7227 [- 6.27313823, - 0.00043039, 0.00026368, 7.27270783, 0.99868525, 0.99930593, 0.49322893], 7228 [- 6.27313837, - 0.00043033, 0.00026364, 7.27270804, 0.99868543, 0.99930603, 0.49322886], 7229 [- 6.27313851, - 0.00043027, 0.00026360, 7.27270824, 0.99868561, 0.99930612, 0.49322902], 7230 [- 6.27313865, - 0.00043021, 0.00026357, 7.27270844, 0.99868580, 0.99930622, 0.49322900], 7231 [- 6.27313880, - 0.00043015, 0.00026353, 7.27270864, 0.99868598, 0.99930632, 0.49322904], 7232 [- 6.27313894, - 0.00043009, 0.00026349, 7.27270885, 0.99868616, 0.99930641, 0.49322903], 7233 [- 6.27313908, - 0.00043003, 0.00026346, 7.27270905, 0.99868634, 0.99930651, 0.49322900], 7234 [- 6.27313923, - 0.00042997, 0.00026342, 7.27270925, 0.99868653, 0.99930660, 0.49322904], 7235 [- 6.27313937, - 0.00042991, 0.00026338, 7.27270946, 0.99868671, 0.99930670, 0.49322912], 7236 [- 6.27313951, - 0.00042985, 0.00026335, 7.27270966, 0.99868689, 0.99930680, 0.49322917], 7237 [- 6.27313966, - 0.00042980, 0.00026331, 7.27270986, 0.99868707, 0.99930689, 0.49322903], 7238 [- 6.27313980, - 0.00042974, 0.00026328, 7.27271006, 0.99868726, 0.99930699, 0.49322919], 7239 [- 6.27313994, - 0.00042968, 0.00026324, 7.27271027, 0.99868744, 0.99930709, 0.49322915], 7240 [- 6.27314008, - 0.00042962, 0.00026320, 7.27271047, 0.99868762, 0.99930718, 0.49322921], 7241 [- 6.27314023, - 0.00042956, 0.00026317, 7.27271067, 0.99868780, 0.99930728, 0.49322918], 7242 [- 6.27314037, - 0.00042950, 0.00026313, 7.27271087, 0.99868799, 0.99930737, 0.49322930], 7243 [- 6.27314051, - 0.00042944, 0.00026309, 7.27271107, 0.99868817, 0.99930747, 0.49322927], 7244 [- 6.27314065, - 0.00042938, 0.00026306, 7.27271128, 0.99868835, 0.99930757, 0.49322931], 7245 [- 6.27314080, - 0.00042932, 0.00026302, 7.27271148, 0.99868853, 0.99930766, 0.49322934], 7246 [- 6.27314094, - 0.00042926, 0.00026298, 7.27271168, 0.99868871, 0.99930776, 0.49322928], 7247 [- 6.27314108, - 0.00042920, 0.00026295, 7.27271188, 0.99868890, 0.99930785, 0.49322942], 7248 [- 6.27314122, - 0.00042914, 0.00026291, 7.27271208, 0.99868908, 0.99930795, 0.49322942], 7249 [- 6.27314137, - 0.00042908, 0.00026287, 7.27271229, 0.99868926, 0.99930805, 0.49322944], 7250 [- 6.27314151, - 0.00042902, 0.00026284, 7.27271249, 0.99868944, 0.99930814, 0.49322951], 7251 [- 6.27314165, - 0.00042896, 0.00026280, 7.27271269, 0.99868962, 0.99930824, 0.49322944], 7252 [- 6.27314179, - 0.00042890, 0.00026276, 7.27271289, 0.99868980, 0.99930833, 0.49322951], 7253 [- 6.27314194, - 0.00042884, 0.00026273, 7.27271309, 0.99868999, 0.99930843, 0.49322954], 7254 [- 6.27314208, - 0.00042878, 0.00026269, 7.27271329, 0.99869017, 0.99930853, 0.49322961], 7255 [- 6.27314222, - 0.00042872, 0.00026265, 7.27271350, 0.99869035, 0.99930862, 0.49322958], 7256 [- 6.27314236, - 0.00042866, 0.00026262, 7.27271370, 0.99869053, 0.99930872, 0.49322958], 7257 [- 6.27314250, - 0.00042861, 0.00026258, 7.27271390, 0.99869071, 0.99930881, 0.49322960], 7258 [- 6.27314265, - 0.00042855, 0.00026255, 7.27271410, 0.99869089, 0.99930891, 0.49322954], 7259 [- 6.27314279, - 0.00042849, 0.00026251, 7.27271430, 0.99869107, 0.99930900, 0.49322960], 7260 [- 6.27314293, - 0.00042843, 0.00026247, 7.27271450, 0.99869125, 0.99930910, 0.49322964], 7261 [- 6.27314307, - 0.00042837, 0.00026244, 7.27271470, 0.99869144, 0.99930920, 0.49322967], 7262 [- 6.27314321, - 0.00042831, 0.00026240, 7.27271491, 0.99869162, 0.99930929, 0.49322963], 7263 [- 6.27314336, - 0.00042825, 0.00026236, 7.27271511, 0.99869180, 0.99930939, 0.49322972], 7264 [- 6.27314350, - 0.00042819, 0.00026233, 7.27271531, 0.99869198, 0.99930948, 0.49322962], 7265 [- 6.27314364, - 0.00042813, 0.00026229, 7.27271551, 0.99869216, 0.99930958, 0.49322977], 7266 [- 6.27314378, - 0.00042807, 0.00026226, 7.27271571, 0.99869234, 0.99930967, 0.49322982], 7267 [- 6.27314392, - 0.00042801, 0.00026222, 7.27271591, 0.99869252, 0.99930977, 0.49322974], 7268 [- 6.27314406, - 0.00042795, 0.00026218, 7.27271611, 0.99869270, 0.99930986, 0.49322983], 7269 [- 6.27314421, - 0.00042789, 0.00026215, 7.27271631, 0.99869288, 0.99930996, 0.49322981], 7270 [- 6.27314435, - 0.00042783, 0.00026211, 7.27271651, 0.99869306, 0.99931005, 0.49322987], 7271 [- 6.27314449, - 0.00042778, 0.00026207, 7.27271671, 0.99869325, 0.99931015, 0.49322991], 7272 [- 6.27314463, - 0.00042772, 0.00026204, 7.27271691, 0.99869343, 0.99931025, 0.49322985], 7273 [- 6.27314477, - 0.00042766, 0.00026200, 7.27271711, 0.99869361, 0.99931034, 0.49322989], 7274 [- 6.27314491, - 0.00042760, 0.00026197, 7.27271731, 0.99869379, 0.99931044, 0.49322995], 7275 [- 6.27314505, - 0.00042754, 0.00026193, 7.27271752, 0.99869397, 0.99931053, 0.49322998], 7276 [- 6.27314520, - 0.00042748, 0.00026189, 7.27271772, 0.99869415, 0.99931063, 0.49322992], 7277 [- 6.27314534, - 0.00042742, 0.00026186, 7.27271792, 0.99869433, 0.99931072, 0.49322999], 7278 [- 6.27314548, - 0.00042736, 0.00026182, 7.27271812, 0.99869451, 0.99931082, 0.49323014], 7279 [- 6.27314562, - 0.00042730, 0.00026178, 7.27271832, 0.99869469, 0.99931091, 0.49323001], 7280 [- 6.27314576, - 0.00042724, 0.00026175, 7.27271852, 0.99869487, 0.99931101, 0.49323007], 7281 [- 6.27314590, - 0.00042719, 0.00026171, 7.27271872, 0.99869505, 0.99931110, 0.49323010], 7282 [- 6.27314604, - 0.00042713, 0.00026168, 7.27271892, 0.99869523, 0.99931120, 0.49323018], 7283 [- 6.27314618, - 0.00042707, 0.00026164, 7.27271912, 0.99869541, 0.99931129, 0.49323018], 7284 [- 6.27314633, - 0.00042701, 0.00026160, 7.27271932, 0.99869559, 0.99931139, 0.49323016], 7285 [- 6.27314647, - 0.00042695, 0.00026157, 7.27271952, 0.99869577, 0.99931148, 0.49323007], 7286 [- 6.27314661, - 0.00042689, 0.00026153, 7.27271972, 0.99869595, 0.99931158, 0.49323022], 7287 [- 6.27314675, - 0.00042683, 0.00026150, 7.27271992, 0.99869613, 0.99931167, 0.49323025], 7288 [- 6.27314689, - 0.00042677, 0.00026146, 7.27272012, 0.99869631, 0.99931177, 0.49323030], 7289 [- 6.27314703, - 0.00042671, 0.00026142, 7.27272032, 0.99869649, 0.99931186, 0.49323027], 7290 [- 6.27314717, - 0.00042666, 0.00026139, 7.27272051, 0.99869667, 0.99931196, 0.49323031], 7291 [- 6.27314731, - 0.00042660, 0.00026135, 7.27272071, 0.99869685, 0.99931205, 0.49323029], 7292 [- 6.27314745, - 0.00042654, 0.00026132, 7.27272091, 0.99869703, 0.99931215, 0.49323033], 7293 [- 6.27314759, - 0.00042648, 0.00026128, 7.27272111, 0.99869721, 0.99931224, 0.49323043], 7294 [- 6.27314773, - 0.00042642, 0.00026124, 7.27272131, 0.99869739, 0.99931234, 0.49323035], 7295 [- 6.27314787, - 0.00042636, 0.00026121, 7.27272151, 0.99869757, 0.99931243, 0.49323032], 7296 [- 6.27314801, - 0.00042630, 0.00026117, 7.27272171, 0.99869775, 0.99931253, 0.49323043], 7297 [- 6.27314815, - 0.00042624, 0.00026114, 7.27272191, 0.99869792, 0.99931262, 0.49323038], 7298 [- 6.27314830, - 0.00042619, 0.00026110, 7.27272211, 0.99869810, 0.99931272, 0.49323055], 7299 [- 6.27314844, - 0.00042613, 0.00026106, 7.27272231, 0.99869828, 0.99931281, 0.49323047], 7300 [- 6.27314858, - 0.00042607, 0.00026103, 7.27272251, 0.99869846, 0.99931290, 0.49323039], 7301 [- 6.27314872, - 0.00042601, 0.00026099, 7.27272271, 0.99869864, 0.99931300, 0.49323039], 7302 [- 6.27314886, - 0.00042595, 0.00026096, 7.27272291, 0.99869882, 0.99931309, 0.49323057], 7303 [- 6.27314900, - 0.00042589, 0.00026092, 7.27272310, 0.99869900, 0.99931319, 0.49323051], 7304 [- 6.27314914, - 0.00042583, 0.00026088, 7.27272330, 0.99869918, 0.99931328, 0.49323056], 7305 [- 6.27314928, - 0.00042578, 0.00026085, 7.27272350, 0.99869936, 0.99931338, 0.49323064], 7306 [- 6.27314942, - 0.00042572, 0.00026081, 7.27272370, 0.99869954, 0.99931347, 0.49323065], 7307 [- 6.27314956, - 0.00042566, 0.00026078, 7.27272390, 0.99869972, 0.99931357, 0.49323065], 7308 [- 6.27314970, - 0.00042560, 0.00026074, 7.27272410, 0.99869989, 0.99931366, 0.49323070], 7309 [- 6.27314984, - 0.00042554, 0.00026070, 7.27272430, 0.99870007, 0.99931375, 0.49323062], 7310 [- 6.27314998, - 0.00042548, 0.00026067, 7.27272450, 0.99870025, 0.99931385, 0.49323063], 7311 [- 6.27315012, - 0.00042542, 0.00026063, 7.27272469, 0.99870043, 0.99931394, 0.49323075], 7312 [- 6.27315026, - 0.00042537, 0.00026060, 7.27272489, 0.99870061, 0.99931404, 0.49323074], 7313 [- 6.27315040, - 0.00042531, 0.00026056, 7.27272509, 0.99870079, 0.99931413, 0.49323081], 7314 [- 6.27315054, - 0.00042525, 0.00026052, 7.27272529, 0.99870097, 0.99931423, 0.49323082], 7315 [- 6.27315068, - 0.00042519, 0.00026049, 7.27272549, 0.99870115, 0.99931432, 0.49323079], 7316 [- 6.27315082, - 0.00042513, 0.00026045, 7.27272569, 0.99870132, 0.99931441, 0.49323072], 7317 [- 6.27315096, - 0.00042507, 0.00026042, 7.27272588, 0.99870150, 0.99931451, 0.49323088], 7318 [- 6.27315110, - 0.00042502, 0.00026038, 7.27272608, 0.99870168, 0.99931460, 0.49323096], 7319 [- 6.27315124, - 0.00042496, 0.00026035, 7.27272628, 0.99870186, 0.99931470, 0.49323088], 7320 [- 6.27315138, - 0.00042490, 0.00026031, 7.27272648, 0.99870204, 0.99931479, 0.49323085], 7321 [- 6.27315152, - 0.00042484, 0.00026027, 7.27272668, 0.99870222, 0.99931489, 0.49323089], 7322 [- 6.27315165, - 0.00042478, 0.00026024, 7.27272687, 0.99870239, 0.99931498, 0.49323085], 7323 [- 6.27315179, - 0.00042472, 0.00026020, 7.27272707, 0.99870257, 0.99931507, 0.49323101], 7324 [- 6.27315193, - 0.00042467, 0.00026017, 7.27272727, 0.99870275, 0.99931517, 0.49323094], 7325 [- 6.27315207, - 0.00042461, 0.00026013, 7.27272747, 0.99870293, 0.99931526, 0.49323104], 7326 [- 6.27315221, - 0.00042455, 0.00026010, 7.27272766, 0.99870311, 0.99931535, 0.49323100], 7327 [- 6.27315235, - 0.00042449, 0.00026006, 7.27272786, 0.99870328, 0.99931545, 0.49323105], 7328 [- 6.27315249, - 0.00042443, 0.00026002, 7.27272806, 0.99870346, 0.99931554, 0.49323112], 7329 [- 6.27315263, - 0.00042437, 0.00025999, 7.27272826, 0.99870364, 0.99931564, 0.49323100], 7330 [- 6.27315277, - 0.00042432, 0.00025995, 7.27272845, 0.99870382, 0.99931573, 0.49323104], 7331 [- 6.27315291, - 0.00042426, 0.00025992, 7.27272865, 0.99870399, 0.99931582, 0.49323113], 7332 [- 6.27315305, - 0.00042420, 0.00025988, 7.27272885, 0.99870417, 0.99931592, 0.49323100], 7333 [- 6.27315319, - 0.00042414, 0.00025985, 7.27272905, 0.99870435, 0.99931601, 0.49323118], 7334 [- 6.27315333, - 0.00042408, 0.00025981, 7.27272924, 0.99870453, 0.99931611, 0.49323122], 7335 [- 6.27315347, - 0.00042403, 0.00025978, 7.27272944, 0.99870470, 0.99931620, 0.49323123], 7336 [- 6.27315360, - 0.00042397, 0.00025974, 7.27272964, 0.99870488, 0.99931629, 0.49323124], 7337 [- 6.27315374, - 0.00042391, 0.00025970, 7.27272983, 0.99870506, 0.99931639, 0.49323127], 7338 [- 6.27315388, - 0.00042385, 0.00025967, 7.27273003, 0.99870524, 0.99931648, 0.49323133], 7339 [- 6.27315402, - 0.00042379, 0.00025963, 7.27273023, 0.99870541, 0.99931657, 0.49323140], 7340 [- 6.27315416, - 0.00042374, 0.00025960, 7.27273042, 0.99870559, 0.99931667, 0.49323133], 7341 [- 6.27315430, - 0.00042368, 0.00025956, 7.27273062, 0.99870577, 0.99931676, 0.49323138], 7342 [- 6.27315444, - 0.00042362, 0.00025953, 7.27273082, 0.99870595, 0.99931685, 0.49323140], 7343 [- 6.27315458, - 0.00042356, 0.00025949, 7.27273101, 0.99870612, 0.99931695, 0.49323145], 7344 [- 6.27315472, - 0.00042350, 0.00025946, 7.27273121, 0.99870630, 0.99931704, 0.49323139], 7345 [- 6.27315485, - 0.00042345, 0.00025942, 7.27273141, 0.99870648, 0.99931713, 0.49323136], 7346 [- 6.27315499, - 0.00042339, 0.00025938, 7.27273160, 0.99870665, 0.99931723, 0.49323144], 7347 [- 6.27315513, - 0.00042333, 0.00025935, 7.27273180, 0.99870683, 0.99931732, 0.49323141], 7348 [- 6.27315527, - 0.00042327, 0.00025931, 7.27273200, 0.99870701, 0.99931741, 0.49323140], 7349 [- 6.27315541, - 0.00042321, 0.00025928, 7.27273219, 0.99870719, 0.99931751, 0.49323155], 7350 [- 6.27315555, - 0.00042316, 0.00025924, 7.27273239, 0.99870736, 0.99931760, 0.49323157], 7351 [- 6.27315569, - 0.00042310, 0.00025921, 7.27273259, 0.99870754, 0.99931769, 0.49323161], 7352 [- 6.27315582, - 0.00042304, 0.00025917, 7.27273278, 0.99870772, 0.99931779, 0.49323157], 7353 [- 6.27315596, - 0.00042298, 0.00025914, 7.27273298, 0.99870789, 0.99931788, 0.49323162], 7354 [- 6.27315610, - 0.00042292, 0.00025910, 7.27273318, 0.99870807, 0.99931797, 0.49323164], 7355 [- 6.27315624, - 0.00042287, 0.00025907, 7.27273337, 0.99870825, 0.99931807, 0.49323172], 7356 [- 6.27315638, - 0.00042281, 0.00025903, 7.27273357, 0.99870842, 0.99931816, 0.49323163], 7357 [- 6.27315652, - 0.00042275, 0.00025899, 7.27273376, 0.99870860, 0.99931825, 0.49323158], 7358 [- 6.27315665, - 0.00042269, 0.00025896, 7.27273396, 0.99870877, 0.99931835, 0.49323168], 7359 [- 6.27315679, - 0.00042264, 0.00025892, 7.27273416, 0.99870895, 0.99931844, 0.49323175], 7360 [- 6.27315693, - 0.00042258, 0.00025889, 7.27273435, 0.99870913, 0.99931853, 0.49323172], 7361 [- 6.27315707, - 0.00042252, 0.00025885, 7.27273455, 0.99870930, 0.99931863, 0.49323175], 7362 [- 6.27315721, - 0.00042246, 0.00025882, 7.27273474, 0.99870948, 0.99931872, 0.49323179], 7363 [- 6.27315734, - 0.00042241, 0.00025878, 7.27273494, 0.99870966, 0.99931881, 0.49323178], 7364 [- 6.27315748, - 0.00042235, 0.00025875, 7.27273513, 0.99870983, 0.99931891, 0.49323183], 7365 [- 6.27315762, - 0.00042229, 0.00025871, 7.27273533, 0.99871001, 0.99931900, 0.49323180], 7366 [- 6.27315776, - 0.00042223, 0.00025868, 7.27273552, 0.99871018, 0.99931909, 0.49323181], 7367 [- 6.27315790, - 0.00042218, 0.00025864, 7.27273572, 0.99871036, 0.99931918, 0.49323188], 7368 [- 6.27315803, - 0.00042212, 0.00025861, 7.27273592, 0.99871054, 0.99931928, 0.49323197], 7369 [- 6.27315817, - 0.00042206, 0.00025857, 7.27273611, 0.99871071, 0.99931937, 0.49323190], 7370 [- 6.27315831, - 0.00042200, 0.00025854, 7.27273631, 0.99871089, 0.99931946, 0.49323185], 7371 [- 6.27315845, - 0.00042194, 0.00025850, 7.27273650, 0.99871106, 0.99931956, 0.49323199], 7372 [- 6.27315858, - 0.00042189, 0.00025846, 7.27273670, 0.99871124, 0.99931965, 0.49323204], 7373 [- 6.27315872, - 0.00042183, 0.00025843, 7.27273689, 0.99871141, 0.99931974, 0.49323191], 7374 [- 6.27315886, - 0.00042177, 0.00025839, 7.27273709, 0.99871159, 0.99931983, 0.49323202], 7375 [- 6.27315900, - 0.00042171, 0.00025836, 7.27273728, 0.99871177, 0.99931993, 0.49323199], 7376 [- 6.27315913, - 0.00042166, 0.00025832, 7.27273748, 0.99871194, 0.99932002, 0.49323200], 7377 [- 6.27315927, - 0.00042160, 0.00025829, 7.27273767, 0.99871212, 0.99932011, 0.49323212], 7378 [- 6.27315941, - 0.00042154, 0.00025825, 7.27273787, 0.99871229, 0.99932020, 0.49323215], 7379 [- 6.27315955, - 0.00042149, 0.00025822, 7.27273806, 0.99871247, 0.99932030, 0.49323211], 7380 [- 6.27315968, - 0.00042143, 0.00025818, 7.27273826, 0.99871264, 0.99932039, 0.49323217], 7381 [- 6.27315982, - 0.00042137, 0.00025815, 7.27273845, 0.99871282, 0.99932048, 0.49323219], 7382 [- 6.27315996, - 0.00042131, 0.00025811, 7.27273864, 0.99871299, 0.99932057, 0.49323223], 7383 [- 6.27316010, - 0.00042126, 0.00025808, 7.27273884, 0.99871317, 0.99932067, 0.49323224], 7384 [- 6.27316023, - 0.00042120, 0.00025804, 7.27273903, 0.99871334, 0.99932076, 0.49323221], 7385 [- 6.27316037, - 0.00042114, 0.00025801, 7.27273923, 0.99871352, 0.99932085, 0.49323224], 7386 [- 6.27316051, - 0.00042108, 0.00025797, 7.27273942, 0.99871369, 0.99932094, 0.49323220], 7387 [- 6.27316064, - 0.00042103, 0.00025794, 7.27273962, 0.99871387, 0.99932104, 0.49323229], 7388 [- 6.27316078, - 0.00042097, 0.00025790, 7.27273981, 0.99871404, 0.99932113, 0.49323228], 7389 [- 6.27316092, - 0.00042091, 0.00025787, 7.27274001, 0.99871422, 0.99932122, 0.49323228], 7390 [- 6.27316105, - 0.00042085, 0.00025783, 7.27274020, 0.99871439, 0.99932131, 0.49323234], 7391 [- 6.27316119, - 0.00042080, 0.00025780, 7.27274039, 0.99871457, 0.99932141, 0.49323243], 7392 [- 6.27316133, - 0.00042074, 0.00025776, 7.27274059, 0.99871474, 0.99932150, 0.49323241], 7393 [- 6.27316147, - 0.00042068, 0.00025773, 7.27274078, 0.99871492, 0.99932159, 0.49323242], 7394 [- 6.27316160, - 0.00042063, 0.00025769, 7.27274098, 0.99871509, 0.99932168, 0.49323234], 7395 [- 6.27316174, - 0.00042057, 0.00025766, 7.27274117, 0.99871527, 0.99932177, 0.49323243], 7396 [- 6.27316188, - 0.00042051, 0.00025762, 7.27274136, 0.99871544, 0.99932187, 0.49323249], 7397 [- 6.27316201, - 0.00042045, 0.00025759, 7.27274156, 0.99871562, 0.99932196, 0.49323249], 7398 [- 6.27316215, - 0.00042040, 0.00025755, 7.27274175, 0.99871579, 0.99932205, 0.49323255], 7399 [- 6.27316229, - 0.00042034, 0.00025752, 7.27274195, 0.99871597, 0.99932214, 0.49323261], 7400 [- 6.27316242, - 0.00042028, 0.00025748, 7.27274214, 0.99871614, 0.99932223, 0.49323266], 7401 [- 6.27316256, - 0.00042023, 0.00025745, 7.27274233, 0.99871631, 0.99932233, 0.49323261], 7402 [- 6.27316270, - 0.00042017, 0.00025741, 7.27274253, 0.99871649, 0.99932242, 0.49323265], 7403 [- 6.27316283, - 0.00042011, 0.00025738, 7.27274272, 0.99871666, 0.99932251, 0.49323261], 7404 [- 6.27316297, - 0.00042006, 0.00025734, 7.27274291, 0.99871684, 0.99932260, 0.49323268], 7405 [- 6.27316311, - 0.00042000, 0.00025731, 7.27274311, 0.99871701, 0.99932269, 0.49323261], 7406 [- 6.27316324, - 0.00041994, 0.00025727, 7.27274330, 0.99871719, 0.99932279, 0.49323277], 7407 [- 6.27316338, - 0.00041988, 0.00025724, 7.27274349, 0.99871736, 0.99932288, 0.49323278], 7408 [- 6.27316351, - 0.00041983, 0.00025720, 7.27274369, 0.99871753, 0.99932297, 0.49323270], 7409 [- 6.27316365, - 0.00041977, 0.00025717, 7.27274388, 0.99871771, 0.99932306, 0.49323262], 7410 [- 6.27316379, - 0.00041971, 0.00025713, 7.27274407, 0.99871788, 0.99932315, 0.49323267], 7411 [- 6.27316392, - 0.00041966, 0.00025710, 7.27274427, 0.99871806, 0.99932325, 0.49323282], 7412 [- 6.27316406, - 0.00041960, 0.00025706, 7.27274446, 0.99871823, 0.99932334, 0.49323274], 7413 [- 6.27316420, - 0.00041954, 0.00025703, 7.27274465, 0.99871840, 0.99932343, 0.49323276], 7414 [- 6.27316433, - 0.00041949, 0.00025699, 7.27274485, 0.99871858, 0.99932352, 0.49323279], 7415 [- 6.27316447, - 0.00041943, 0.00025696, 7.27274504, 0.99871875, 0.99932361, 0.49323285], 7416 [- 6.27316460, - 0.00041937, 0.00025692, 7.27274523, 0.99871892, 0.99932370, 0.49323286], 7417 [- 6.27316474, - 0.00041932, 0.00025689, 7.27274542, 0.99871910, 0.99932380, 0.49323296], 7418 [- 6.27316488, - 0.00041926, 0.00025685, 7.27274562, 0.99871927, 0.99932389, 0.49323294], 7419 [- 6.27316501, - 0.00041920, 0.00025682, 7.27274581, 0.99871944, 0.99932398, 0.49323292], 7420 [- 6.27316515, - 0.00041915, 0.00025678, 7.27274600, 0.99871962, 0.99932407, 0.49323285], 7421 [- 6.27316528, - 0.00041909, 0.00025675, 7.27274619, 0.99871979, 0.99932416, 0.49323292], 7422 [- 6.27316542, - 0.00041903, 0.00025671, 7.27274639, 0.99871996, 0.99932425, 0.49323303], 7423 [- 6.27316555, - 0.00041898, 0.00025668, 7.27274658, 0.99872014, 0.99932435, 0.49323312], 7424 [- 6.27316569, - 0.00041892, 0.00025664, 7.27274677, 0.99872031, 0.99932444, 0.49323326], 7425 [- 6.27316583, - 0.00041886, 0.00025661, 7.27274696, 0.99872048, 0.99932453, 0.49323308], 7426 [- 6.27316596, - 0.00041881, 0.00025658, 7.27274716, 0.99872066, 0.99932462, 0.49323307], 7427 [- 6.27316610, - 0.00041875, 0.00025654, 7.27274735, 0.99872083, 0.99932471, 0.49323314], 7428 [- 6.27316623, - 0.00041869, 0.00025651, 7.27274754, 0.99872100, 0.99932480, 0.49323312], 7429 [- 6.27316637, - 0.00041864, 0.00025647, 7.27274773, 0.99872118, 0.99932489, 0.49323320], 7430 [- 6.27316650, - 0.00041858, 0.00025644, 7.27274793, 0.99872135, 0.99932498, 0.49323311], 7431 [- 6.27316664, - 0.00041852, 0.00025640, 7.27274812, 0.99872152, 0.99932508, 0.49323311], 7432 [- 6.27316677, - 0.00041847, 0.00025637, 7.27274831, 0.99872170, 0.99932517, 0.49323317], 7433 [- 6.27316691, - 0.00041841, 0.00025633, 7.27274850, 0.99872187, 0.99932526, 0.49323323], 7434 [- 6.27316705, - 0.00041835, 0.00025630, 7.27274869, 0.99872204, 0.99932535, 0.49323325], 7435 [- 6.27316718, - 0.00041830, 0.00025626, 7.27274888, 0.99872221, 0.99932544, 0.49323334], 7436 [- 6.27316732, - 0.00041824, 0.00025623, 7.27274908, 0.99872239, 0.99932553, 0.49323332], 7437 [- 6.27316745, - 0.00041818, 0.00025619, 7.27274927, 0.99872256, 0.99932562, 0.49323331], 7438 [- 6.27316759, - 0.00041813, 0.00025616, 7.27274946, 0.99872273, 0.99932571, 0.49323331], 7439 [- 6.27316772, - 0.00041807, 0.00025612, 7.27274965, 0.99872290, 0.99932581, 0.49323346], 7440 [- 6.27316786, - 0.00041801, 0.00025609, 7.27274984, 0.99872308, 0.99932590, 0.49323331], 7441 [- 6.27316799, - 0.00041796, 0.00025606, 7.27275003, 0.99872325, 0.99932599, 0.49323339], 7442 [- 6.27316813, - 0.00041790, 0.00025602, 7.27275023, 0.99872342, 0.99932608, 0.49323343], 7443 [- 6.27316826, - 0.00041784, 0.00025599, 7.27275042, 0.99872359, 0.99932617, 0.49323337], 7444 [- 6.27316840, - 0.00041779, 0.00025595, 7.27275061, 0.99872377, 0.99932626, 0.49323342], 7445 [- 6.27316853, - 0.00041773, 0.00025592, 7.27275080, 0.99872394, 0.99932635, 0.49323347], 7446 [- 6.27316867, - 0.00041768, 0.00025588, 7.27275099, 0.99872411, 0.99932644, 0.49323353], 7447 [- 6.27316880, - 0.00041762, 0.00025585, 7.27275118, 0.99872428, 0.99932653, 0.49323349], 7448 [- 6.27316894, - 0.00041756, 0.00025581, 7.27275137, 0.99872446, 0.99932662, 0.49323358], 7449 [- 6.27316907, - 0.00041751, 0.00025578, 7.27275157, 0.99872463, 0.99932671, 0.49323354], 7450 [- 6.27316921, - 0.00041745, 0.00025574, 7.27275176, 0.99872480, 0.99932681, 0.49323350], 7451 [- 6.27316934, - 0.00041739, 0.00025571, 7.27275195, 0.99872497, 0.99932690, 0.49323356], 7452 [- 6.27316948, - 0.00041734, 0.00025568, 7.27275214, 0.99872514, 0.99932699, 0.49323355], 7453 [- 6.27316961, - 0.00041728, 0.00025564, 7.27275233, 0.99872532, 0.99932708, 0.49323359], 7454 [- 6.27316974, - 0.00041722, 0.00025561, 7.27275252, 0.99872549, 0.99932717, 0.49323360], 7455 [- 6.27316988, - 0.00041717, 0.00025557, 7.27275271, 0.99872566, 0.99932726, 0.49323362], 7456 [- 6.27317001, - 0.00041711, 0.00025554, 7.27275290, 0.99872583, 0.99932735, 0.49323369], 7457 [- 6.27317015, - 0.00041706, 0.00025550, 7.27275309, 0.99872600, 0.99932744, 0.49323369], 7458 [- 6.27317028, - 0.00041700, 0.00025547, 7.27275328, 0.99872617, 0.99932753, 0.49323368], 7459 [- 6.27317042, - 0.00041694, 0.00025543, 7.27275347, 0.99872635, 0.99932762, 0.49323375], 7460 [- 6.27317055, - 0.00041689, 0.00025540, 7.27275366, 0.99872652, 0.99932771, 0.49323378], 7461 [- 6.27317069, - 0.00041683, 0.00025537, 7.27275385, 0.99872669, 0.99932780, 0.49323373], 7462 [- 6.27317082, - 0.00041678, 0.00025533, 7.27275405, 0.99872686, 0.99932789, 0.49323370], 7463 [- 6.27317095, - 0.00041672, 0.00025530, 7.27275424, 0.99872703, 0.99932798, 0.49323379], 7464 [- 6.27317109, - 0.00041666, 0.00025526, 7.27275443, 0.99872720, 0.99932807, 0.49323375], 7465 [- 6.27317122, - 0.00041661, 0.00025523, 7.27275462, 0.99872738, 0.99932816, 0.49323392], 7466 [- 6.27317136, - 0.00041655, 0.00025519, 7.27275481, 0.99872755, 0.99932826, 0.49323391], 7467 [- 6.27317149, - 0.00041649, 0.00025516, 7.27275500, 0.99872772, 0.99932835, 0.49323391], 7468 [- 6.27317163, - 0.00041644, 0.00025512, 7.27275519, 0.99872789, 0.99932844, 0.49323388], 7469 [- 6.27317176, - 0.00041638, 0.00025509, 7.27275538, 0.99872806, 0.99932853, 0.49323395], 7470 [- 6.27317189, - 0.00041633, 0.00025506, 7.27275557, 0.99872823, 0.99932862, 0.49323385], 7471 [- 6.27317203, - 0.00041627, 0.00025502, 7.27275576, 0.99872840, 0.99932871, 0.49323392], 7472 [- 6.27317216, - 0.00041621, 0.00025499, 7.27275595, 0.99872857, 0.99932880, 0.49323402], 7473 [- 6.27317230, - 0.00041616, 0.00025495, 7.27275614, 0.99872874, 0.99932889, 0.49323405], 7474 [- 6.27317243, - 0.00041610, 0.00025492, 7.27275633, 0.99872892, 0.99932898, 0.49323405], 7475 [- 6.27317256, - 0.00041605, 0.00025488, 7.27275652, 0.99872909, 0.99932907, 0.49323408], 7476 [- 6.27317270, - 0.00041599, 0.00025485, 7.27275671, 0.99872926, 0.99932916, 0.49323410], 7477 [- 6.27317283, - 0.00041594, 0.00025482, 7.27275690, 0.99872943, 0.99932925, 0.49323410], 7478 [- 6.27317297, - 0.00041588, 0.00025478, 7.27275709, 0.99872960, 0.99932934, 0.49323416], 7479 [- 6.27317310, - 0.00041582, 0.00025475, 7.27275728, 0.99872977, 0.99932943, 0.49323413], 7480 [- 6.27317323, - 0.00041577, 0.00025471, 7.27275746, 0.99872994, 0.99932952, 0.49323409], 7481 [- 6.27317337, - 0.00041571, 0.00025468, 7.27275765, 0.99873011, 0.99932961, 0.49323425], 7482 [- 6.27317350, - 0.00041566, 0.00025465, 7.27275784, 0.99873028, 0.99932970, 0.49323426], 7483 [- 6.27317363, - 0.00041560, 0.00025461, 7.27275803, 0.99873045, 0.99932979, 0.49323421], 7484 [- 6.27317377, - 0.00041554, 0.00025458, 7.27275822, 0.99873062, 0.99932988, 0.49323430], 7485 [- 6.27317390, - 0.00041549, 0.00025454, 7.27275841, 0.99873079, 0.99932997, 0.49323422], 7486 [- 6.27317403, - 0.00041543, 0.00025451, 7.27275860, 0.99873096, 0.99933006, 0.49323429], 7487 [- 6.27317417, - 0.00041538, 0.00025447, 7.27275879, 0.99873113, 0.99933015, 0.49323420], 7488 [- 6.27317430, - 0.00041532, 0.00025444, 7.27275898, 0.99873130, 0.99933024, 0.49323427], 7489 [- 6.27317443, - 0.00041527, 0.00025441, 7.27275917, 0.99873147, 0.99933033, 0.49323431], 7490 [- 6.27317457, - 0.00041521, 0.00025437, 7.27275936, 0.99873164, 0.99933042, 0.49323443], 7491 [- 6.27317470, - 0.00041515, 0.00025434, 7.27275955, 0.99873181, 0.99933051, 0.49323428], 7492 [- 6.27317483, - 0.00041510, 0.00025430, 7.27275974, 0.99873198, 0.99933060, 0.49323443], 7493 [- 6.27317497, - 0.00041504, 0.00025427, 7.27275992, 0.99873215, 0.99933069, 0.49323437], 7494 [- 6.27317510, - 0.00041499, 0.00025424, 7.27276011, 0.99873232, 0.99933078, 0.49323454], 7495 [- 6.27317523, - 0.00041493, 0.00025420, 7.27276030, 0.99873249, 0.99933087, 0.49323446], 7496 [- 6.27317537, - 0.00041488, 0.00025417, 7.27276049, 0.99873266, 0.99933096, 0.49323436], 7497 [- 6.27317550, - 0.00041482, 0.00025413, 7.27276068, 0.99873283, 0.99933105, 0.49323455], 7498 [- 6.27317563, - 0.00041476, 0.00025410, 7.27276087, 0.99873300, 0.99933114, 0.49323443], 7499 [- 6.27317577, - 0.00041471, 0.00025406, 7.27276106, 0.99873317, 0.99933123, 0.49323444], 7500 [- 6.27317590, - 0.00041465, 0.00025403, 7.27276124, 0.99873334, 0.99933132, 0.49323452], 7501 [- 6.27317603, - 0.00041460, 0.00025400, 7.27276143, 0.99873351, 0.99933140, 0.49323465], 7502 [- 6.27317616, - 0.00041454, 0.00025396, 7.27276162, 0.99873368, 0.99933149, 0.49323452], 7503 [- 6.27317630, - 0.00041449, 0.00025393, 7.27276181, 0.99873385, 0.99933158, 0.49323459], 7504 [- 6.27317643, - 0.00041443, 0.00025389, 7.27276200, 0.99873402, 0.99933167, 0.49323462], 7505 [- 6.27317656, - 0.00041438, 0.00025386, 7.27276219, 0.99873419, 0.99933176, 0.49323457], 7506 [- 6.27317670, - 0.00041432, 0.00025383, 7.27276237, 0.99873436, 0.99933185, 0.49323468], 7507 [- 6.27317683, - 0.00041427, 0.00025379, 7.27276256, 0.99873453, 0.99933194, 0.49323479], 7508 [- 6.27317696, - 0.00041421, 0.00025376, 7.27276275, 0.99873470, 0.99933203, 0.49323481], 7509 [- 6.27317709, - 0.00041415, 0.00025372, 7.27276294, 0.99873487, 0.99933212, 0.49323465], 7510 [- 6.27317723, - 0.00041410, 0.00025369, 7.27276313, 0.99873504, 0.99933221, 0.49323467], 7511 [- 6.27317736, - 0.00041404, 0.00025366, 7.27276332, 0.99873521, 0.99933230, 0.49323474], 7512 [- 6.27317749, - 0.00041399, 0.00025362, 7.27276350, 0.99873538, 0.99933239, 0.49323475], 7513 [- 6.27317762, - 0.00041393, 0.00025359, 7.27276369, 0.99873555, 0.99933248, 0.49323489], 7514 [- 6.27317776, - 0.00041388, 0.00025355, 7.27276388, 0.99873572, 0.99933257, 0.49323478], 7515 [- 6.27317789, - 0.00041382, 0.00025352, 7.27276407, 0.99873588, 0.99933266, 0.49323490], 7516 [- 6.27317802, - 0.00041377, 0.00025349, 7.27276425, 0.99873605, 0.99933275, 0.49323500], 7517 [- 6.27317815, - 0.00041371, 0.00025345, 7.27276444, 0.99873622, 0.99933283, 0.49323486], 7518 [- 6.27317829, - 0.00041366, 0.00025342, 7.27276463, 0.99873639, 0.99933292, 0.49323491], 7519 [- 6.27317842, - 0.00041360, 0.00025339, 7.27276482, 0.99873656, 0.99933301, 0.49323473], 7520 [- 6.27317855, - 0.00041355, 0.00025335, 7.27276500, 0.99873673, 0.99933310, 0.49323495], 7521 [- 6.27317868, - 0.00041349, 0.00025332, 7.27276519, 0.99873690, 0.99933319, 0.49323495], 7522 [- 6.27317882, - 0.00041344, 0.00025328, 7.27276538, 0.99873707, 0.99933328, 0.49323487], 7523 [- 6.27317895, - 0.00041338, 0.00025325, 7.27276557, 0.99873724, 0.99933337, 0.49323500], 7524 [- 6.27317908, - 0.00041333, 0.00025322, 7.27276575, 0.99873740, 0.99933346, 0.49323493], 7525 [- 6.27317921, - 0.00041327, 0.00025318, 7.27276594, 0.99873757, 0.99933355, 0.49323497], 7526 [- 6.27317934, - 0.00041321, 0.00025315, 7.27276613, 0.99873774, 0.99933364, 0.49323507], 7527 [- 6.27317948, - 0.00041316, 0.00025311, 7.27276632, 0.99873791, 0.99933373, 0.49323512], 7528 [- 6.27317961, - 0.00041310, 0.00025308, 7.27276650, 0.99873808, 0.99933381, 0.49323500], 7529 [- 6.27317974, - 0.00041305, 0.00025305, 7.27276669, 0.99873825, 0.99933390, 0.49323510], 7530 [- 6.27317987, - 0.00041299, 0.00025301, 7.27276688, 0.99873842, 0.99933399, 0.49323520], 7531 [- 6.27318000, - 0.00041294, 0.00025298, 7.27276706, 0.99873858, 0.99933408, 0.49323515], 7532 [- 6.27318014, - 0.00041288, 0.00025295, 7.27276725, 0.99873875, 0.99933417, 0.49323523], 7533 [- 6.27318027, - 0.00041283, 0.00025291, 7.27276744, 0.99873892, 0.99933426, 0.49323516], 7534 [- 6.27318040, - 0.00041277, 0.00025288, 7.27276762, 0.99873909, 0.99933435, 0.49323517], 7535 [- 6.27318053, - 0.00041272, 0.00025284, 7.27276781, 0.99873926, 0.99933444, 0.49323519], 7536 [- 6.27318066, - 0.00041266, 0.00025281, 7.27276800, 0.99873942, 0.99933453, 0.49323515], 7537 [- 6.27318079, - 0.00041261, 0.00025278, 7.27276818, 0.99873959, 0.99933461, 0.49323538], 7538 [- 6.27318093, - 0.00041255, 0.00025274, 7.27276837, 0.99873976, 0.99933470, 0.49323529], 7539 [- 6.27318106, - 0.00041250, 0.00025271, 7.27276856, 0.99873993, 0.99933479, 0.49323537], 7540 [- 6.27318119, - 0.00041244, 0.00025268, 7.27276874, 0.99874010, 0.99933488, 0.49323534], 7541 [- 6.27318132, - 0.00041239, 0.00025264, 7.27276893, 0.99874026, 0.99933497, 0.49323537], 7542 [- 6.27318145, - 0.00041233, 0.00025261, 7.27276912, 0.99874043, 0.99933506, 0.49323540], 7543 [- 6.27318158, - 0.00041228, 0.00025258, 7.27276930, 0.99874060, 0.99933515, 0.49323539], 7544 [- 6.27318171, - 0.00041222, 0.00025254, 7.27276949, 0.99874077, 0.99933523, 0.49323536], 7545 [- 6.27318185, - 0.00041217, 0.00025251, 7.27276968, 0.99874094, 0.99933532, 0.49323541], 7546 [- 6.27318198, - 0.00041211, 0.00025247, 7.27276986, 0.99874110, 0.99933541, 0.49323529], 7547 [- 6.27318211, - 0.00041206, 0.00025244, 7.27277005, 0.99874127, 0.99933550, 0.49323554], 7548 [- 6.27318224, - 0.00041200, 0.00025241, 7.27277023, 0.99874144, 0.99933559, 0.49323556], 7549 [- 6.27318237, - 0.00041195, 0.00025237, 7.27277042, 0.99874161, 0.99933568, 0.49323548], 7550 [- 6.27318250, - 0.00041190, 0.00025234, 7.27277061, 0.99874177, 0.99933577, 0.49323555], 7551 [- 6.27318263, - 0.00041184, 0.00025231, 7.27277079, 0.99874194, 0.99933585, 0.49323555], 7552 [- 6.27318276, - 0.00041179, 0.00025227, 7.27277098, 0.99874211, 0.99933594, 0.49323566], 7553 [- 6.27318290, - 0.00041173, 0.00025224, 7.27277117, 0.99874228, 0.99933603, 0.49323552], 7554 [- 6.27318303, - 0.00041168, 0.00025221, 7.27277135, 0.99874244, 0.99933612, 0.49323561], 7555 [- 6.27318316, - 0.00041162, 0.00025217, 7.27277154, 0.99874261, 0.99933621, 0.49323566], 7556 [- 6.27318329, - 0.00041157, 0.00025214, 7.27277172, 0.99874278, 0.99933630, 0.49323555], 7557 [- 6.27318342, - 0.00041151, 0.00025210, 7.27277191, 0.99874294, 0.99933638, 0.49323560], 7558 [- 6.27318355, - 0.00041146, 0.00025207, 7.27277209, 0.99874311, 0.99933647, 0.49323570], 7559 [- 6.27318368, - 0.00041140, 0.00025204, 7.27277228, 0.99874328, 0.99933656, 0.49323566], 7560 [- 6.27318381, - 0.00041135, 0.00025200, 7.27277246, 0.99874345, 0.99933665, 0.49323580], 7561 [- 6.27318394, - 0.00041129, 0.00025197, 7.27277265, 0.99874361, 0.99933674, 0.49323573], 7562 [- 6.27318407, - 0.00041124, 0.00025194, 7.27277284, 0.99874378, 0.99933682, 0.49323588], 7563 [- 6.27318420, - 0.00041118, 0.00025190, 7.27277302, 0.99874395, 0.99933691, 0.49323574], 7564 [- 6.27318434, - 0.00041113, 0.00025187, 7.27277321, 0.99874411, 0.99933700, 0.49323584], 7565 [- 6.27318447, - 0.00041107, 0.00025184, 7.27277339, 0.99874428, 0.99933709, 0.49323574], 7566 [- 6.27318460, - 0.00041102, 0.00025180, 7.27277358, 0.99874445, 0.99933718, 0.49323586], 7567 [- 6.27318473, - 0.00041097, 0.00025177, 7.27277376, 0.99874461, 0.99933726, 0.49323593], 7568 [- 6.27318486, - 0.00041091, 0.00025174, 7.27277395, 0.99874478, 0.99933735, 0.49323592], 7569 [- 6.27318499, - 0.00041086, 0.00025170, 7.27277413, 0.99874495, 0.99933744, 0.49323598], 7570 [- 6.27318512, - 0.00041080, 0.00025167, 7.27277432, 0.99874511, 0.99933753, 0.49323589], 7571 [- 6.27318525, - 0.00041075, 0.00025164, 7.27277450, 0.99874528, 0.99933762, 0.49323587], 7572 [- 6.27318538, - 0.00041069, 0.00025160, 7.27277469, 0.99874545, 0.99933770, 0.49323605], 7573 [- 6.27318551, - 0.00041064, 0.00025157, 7.27277487, 0.99874561, 0.99933779, 0.49323594], 7574 [- 6.27318564, - 0.00041058, 0.00025154, 7.27277506, 0.99874578, 0.99933788, 0.49323599], 7575 [- 6.27318577, - 0.00041053, 0.00025150, 7.27277524, 0.99874595, 0.99933797, 0.49323604], 7576 [- 6.27318590, - 0.00041048, 0.00025147, 7.27277543, 0.99874611, 0.99933806, 0.49323602], 7577 [- 6.27318603, - 0.00041042, 0.00025144, 7.27277561, 0.99874628, 0.99933814, 0.49323601], 7578 [- 6.27318616, - 0.00041037, 0.00025140, 7.27277580, 0.99874645, 0.99933823, 0.49323601], 7579 [- 6.27318629, - 0.00041031, 0.00025137, 7.27277598, 0.99874661, 0.99933832, 0.49323608], 7580 [- 6.27318642, - 0.00041026, 0.00025134, 7.27277616, 0.99874678, 0.99933841, 0.49323616], 7581 [- 6.27318655, - 0.00041020, 0.00025130, 7.27277635, 0.99874694, 0.99933849, 0.49323617], 7582 [- 6.27318668, - 0.00041015, 0.00025127, 7.27277653, 0.99874711, 0.99933858, 0.49323615], 7583 [- 6.27318681, - 0.00041009, 0.00025124, 7.27277672, 0.99874728, 0.99933867, 0.49323614], 7584 [- 6.27318694, - 0.00041004, 0.00025120, 7.27277690, 0.99874744, 0.99933876, 0.49323615], 7585 [- 6.27318707, - 0.00040999, 0.00025117, 7.27277709, 0.99874761, 0.99933884, 0.49323610], 7586 [- 6.27318720, - 0.00040993, 0.00025114, 7.27277727, 0.99874777, 0.99933893, 0.49323628], 7587 [- 6.27318733, - 0.00040988, 0.00025110, 7.27277746, 0.99874794, 0.99933902, 0.49323634], 7588 [- 6.27318746, - 0.00040982, 0.00025107, 7.27277764, 0.99874811, 0.99933911, 0.49323627], 7589 [- 6.27318759, - 0.00040977, 0.00025104, 7.27277782, 0.99874827, 0.99933919, 0.49323622], 7590 [- 6.27318772, - 0.00040971, 0.00025100, 7.27277801, 0.99874844, 0.99933928, 0.49323631], 7591 [- 6.27318785, - 0.00040966, 0.00025097, 7.27277819, 0.99874860, 0.99933937, 0.49323628], 7592 [- 6.27318798, - 0.00040961, 0.00025094, 7.27277838, 0.99874877, 0.99933946, 0.49323627], 7593 [- 6.27318811, - 0.00040955, 0.00025090, 7.27277856, 0.99874893, 0.99933954, 0.49323637], 7594 [- 6.27318824, - 0.00040950, 0.00025087, 7.27277874, 0.99874910, 0.99933963, 0.49323632], 7595 [- 6.27318837, - 0.00040944, 0.00025084, 7.27277893, 0.99874927, 0.99933972, 0.49323640], 7596 [- 6.27318850, - 0.00040939, 0.00025080, 7.27277911, 0.99874943, 0.99933981, 0.49323651], 7597 [- 6.27318863, - 0.00040934, 0.00025077, 7.27277929, 0.99874960, 0.99933989, 0.49323644], 7598 [- 6.27318876, - 0.00040928, 0.00025074, 7.27277948, 0.99874976, 0.99933998, 0.49323637], 7599 [- 6.27318889, - 0.00040923, 0.00025070, 7.27277966, 0.99874993, 0.99934007, 0.49323647], 7600 [- 6.27318902, - 0.00040917, 0.00025067, 7.27277985, 0.99875009, 0.99934016, 0.49323644], 7601 [- 6.27318915, - 0.00040912, 0.00025064, 7.27278003, 0.99875026, 0.99934024, 0.49323643], 7602 [- 6.27318928, - 0.00040906, 0.00025060, 7.27278021, 0.99875042, 0.99934033, 0.49323648], 7603 [- 6.27318941, - 0.00040901, 0.00025057, 7.27278040, 0.99875059, 0.99934042, 0.49323655], 7604 [- 6.27318954, - 0.00040896, 0.00025054, 7.27278058, 0.99875075, 0.99934050, 0.49323657], 7605 [- 6.27318967, - 0.00040890, 0.00025051, 7.27278076, 0.99875092, 0.99934059, 0.49323664], 7606 [- 6.27318979, - 0.00040885, 0.00025047, 7.27278095, 0.99875108, 0.99934068, 0.49323657], 7607 [- 6.27318992, - 0.00040879, 0.00025044, 7.27278113, 0.99875125, 0.99934077, 0.49323666], 7608 [- 6.27319005, - 0.00040874, 0.00025041, 7.27278131, 0.99875141, 0.99934085, 0.49323663], 7609 [- 6.27319018, - 0.00040869, 0.00025037, 7.27278150, 0.99875158, 0.99934094, 0.49323672], 7610 [- 6.27319031, - 0.00040863, 0.00025034, 7.27278168, 0.99875174, 0.99934103, 0.49323665], 7611 [- 6.27319044, - 0.00040858, 0.00025031, 7.27278186, 0.99875191, 0.99934111, 0.49323670], 7612 [- 6.27319057, - 0.00040852, 0.00025027, 7.27278204, 0.99875207, 0.99934120, 0.49323671], 7613 [- 6.27319070, - 0.00040847, 0.00025024, 7.27278223, 0.99875224, 0.99934129, 0.49323673], 7614 [- 6.27319083, - 0.00040842, 0.00025021, 7.27278241, 0.99875240, 0.99934137, 0.49323684], 7615 [- 6.27319096, - 0.00040836, 0.00025017, 7.27278259, 0.99875257, 0.99934146, 0.49323687], 7616 [- 6.27319109, - 0.00040831, 0.00025014, 7.27278278, 0.99875273, 0.99934155, 0.49323685], 7617 [- 6.27319121, - 0.00040826, 0.00025011, 7.27278296, 0.99875290, 0.99934164, 0.49323688], 7618 [- 6.27319134, - 0.00040820, 0.00025008, 7.27278314, 0.99875306, 0.99934172, 0.49323675], 7619 [- 6.27319147, - 0.00040815, 0.00025004, 7.27278332, 0.99875322, 0.99934181, 0.49323678], 7620 [- 6.27319160, - 0.00040809, 0.00025001, 7.27278351, 0.99875339, 0.99934190, 0.49323687], 7621 [- 6.27319173, - 0.00040804, 0.00024998, 7.27278369, 0.99875355, 0.99934198, 0.49323686], 7622 [- 6.27319186, - 0.00040799, 0.00024994, 7.27278387, 0.99875372, 0.99934207, 0.49323698], 7623 [- 6.27319199, - 0.00040793, 0.00024991, 7.27278405, 0.99875388, 0.99934216, 0.49323692], 7624 [- 6.27319212, - 0.00040788, 0.00024988, 7.27278424, 0.99875405, 0.99934224, 0.49323708], 7625 [- 6.27319224, - 0.00040783, 0.00024985, 7.27278442, 0.99875421, 0.99934233, 0.49323704], 7626 [- 6.27319237, - 0.00040777, 0.00024981, 7.27278460, 0.99875437, 0.99934242, 0.49323700], 7627 [- 6.27319250, - 0.00040772, 0.00024978, 7.27278478, 0.99875454, 0.99934250, 0.49323693], 7628 [- 6.27319263, - 0.00040766, 0.00024975, 7.27278497, 0.99875470, 0.99934259, 0.49323702], 7629 [- 6.27319276, - 0.00040761, 0.00024971, 7.27278515, 0.99875487, 0.99934268, 0.49323716], 7630 [- 6.27319289, - 0.00040756, 0.00024968, 7.27278533, 0.99875503, 0.99934276, 0.49323703], 7631 [- 6.27319302, - 0.00040750, 0.00024965, 7.27278551, 0.99875519, 0.99934285, 0.49323706], 7632 [- 6.27319314, - 0.00040745, 0.00024961, 7.27278569, 0.99875536, 0.99934294, 0.49323706], 7633 [- 6.27319327, - 0.00040740, 0.00024958, 7.27278588, 0.99875552, 0.99934302, 0.49323714], 7634 [- 6.27319340, - 0.00040734, 0.00024955, 7.27278606, 0.99875569, 0.99934311, 0.49323706], 7635 [- 6.27319353, - 0.00040729, 0.00024952, 7.27278624, 0.99875585, 0.99934320, 0.49323708], 7636 [- 6.27319366, - 0.00040724, 0.00024948, 7.27278642, 0.99875601, 0.99934328, 0.49323729], 7637 [- 6.27319379, - 0.00040718, 0.00024945, 7.27278660, 0.99875618, 0.99934337, 0.49323724], 7638 [- 6.27319391, - 0.00040713, 0.00024942, 7.27278679, 0.99875634, 0.99934345, 0.49323721], 7639 [- 6.27319404, - 0.00040707, 0.00024938, 7.27278697, 0.99875650, 0.99934354, 0.49323728], 7640 [- 6.27319417, - 0.00040702, 0.00024935, 7.27278715, 0.99875667, 0.99934363, 0.49323732], 7641 [- 6.27319430, - 0.00040697, 0.00024932, 7.27278733, 0.99875683, 0.99934371, 0.49323735], 7642 [- 6.27319443, - 0.00040691, 0.00024929, 7.27278751, 0.99875700, 0.99934380, 0.49323736], 7643 [- 6.27319455, - 0.00040686, 0.00024925, 7.27278769, 0.99875716, 0.99934389, 0.49323725], 7644 [- 6.27319468, - 0.00040681, 0.00024922, 7.27278788, 0.99875732, 0.99934397, 0.49323738], 7645 [- 6.27319481, - 0.00040675, 0.00024919, 7.27278806, 0.99875749, 0.99934406, 0.49323735], 7646 [- 6.27319494, - 0.00040670, 0.00024916, 7.27278824, 0.99875765, 0.99934414, 0.49323731], 7647 [- 6.27319507, - 0.00040665, 0.00024912, 7.27278842, 0.99875781, 0.99934423, 0.49323743], 7648 [- 6.27319519, - 0.00040659, 0.00024909, 7.27278860, 0.99875798, 0.99934432, 0.49323750], 7649 [- 6.27319532, - 0.00040654, 0.00024906, 7.27278878, 0.99875814, 0.99934440, 0.49323738], 7650 [- 6.27319545, - 0.00040649, 0.00024902, 7.27278896, 0.99875830, 0.99934449, 0.49323751], 7651 [- 6.27319558, - 0.00040643, 0.00024899, 7.27278914, 0.99875846, 0.99934457, 0.49323752], 7652 [- 6.27319571, - 0.00040638, 0.00024896, 7.27278933, 0.99875863, 0.99934466, 0.49323741], 7653 [- 6.27319583, - 0.00040633, 0.00024893, 7.27278951, 0.99875879, 0.99934475, 0.49323749], 7654 [- 6.27319596, - 0.00040627, 0.00024889, 7.27278969, 0.99875895, 0.99934483, 0.49323755], 7655 [- 6.27319609, - 0.00040622, 0.00024886, 7.27278987, 0.99875912, 0.99934492, 0.49323762], 7656 [- 6.27319622, - 0.00040617, 0.00024883, 7.27279005, 0.99875928, 0.99934501, 0.49323759], 7657 [- 6.27319634, - 0.00040611, 0.00024880, 7.27279023, 0.99875944, 0.99934509, 0.49323760], 7658 [- 6.27319647, - 0.00040606, 0.00024876, 7.27279041, 0.99875960, 0.99934518, 0.49323757], 7659 [- 6.27319660, - 0.00040601, 0.00024873, 7.27279059, 0.99875977, 0.99934526, 0.49323761], 7660 [- 6.27319673, - 0.00040595, 0.00024870, 7.27279077, 0.99875993, 0.99934535, 0.49323762], 7661 [- 6.27319685, - 0.00040590, 0.00024867, 7.27279095, 0.99876009, 0.99934543, 0.49323771], 7662 [- 6.27319698, - 0.00040585, 0.00024863, 7.27279113, 0.99876026, 0.99934552, 0.49323775], 7663 [- 6.27319711, - 0.00040579, 0.00024860, 7.27279131, 0.99876042, 0.99934561, 0.49323777], 7664 [- 6.27319724, - 0.00040574, 0.00024857, 7.27279149, 0.99876058, 0.99934569, 0.49323761], 7665 [- 6.27319736, - 0.00040569, 0.00024853, 7.27279168, 0.99876074, 0.99934578, 0.49323772], 7666 [- 6.27319749, - 0.00040563, 0.00024850, 7.27279186, 0.99876091, 0.99934586, 0.49323767], 7667 [- 6.27319762, - 0.00040558, 0.00024847, 7.27279204, 0.99876107, 0.99934595, 0.49323779], 7668 [- 6.27319774, - 0.00040553, 0.00024844, 7.27279222, 0.99876123, 0.99934603, 0.49323782], 7669 [- 6.27319787, - 0.00040547, 0.00024840, 7.27279240, 0.99876139, 0.99934612, 0.49323776], 7670 [- 6.27319800, - 0.00040542, 0.00024837, 7.27279258, 0.99876156, 0.99934621, 0.49323782], 7671 [- 6.27319813, - 0.00040537, 0.00024834, 7.27279276, 0.99876172, 0.99934629, 0.49323787], 7672 [- 6.27319825, - 0.00040532, 0.00024831, 7.27279294, 0.99876188, 0.99934638, 0.49323783], 7673 [- 6.27319838, - 0.00040526, 0.00024827, 7.27279312, 0.99876204, 0.99934646, 0.49323795], 7674 [- 6.27319851, - 0.00040521, 0.00024824, 7.27279330, 0.99876220, 0.99934655, 0.49323788], 7675 [- 6.27319863, - 0.00040516, 0.00024821, 7.27279348, 0.99876237, 0.99934663, 0.49323798], 7676 [- 6.27319876, - 0.00040510, 0.00024818, 7.27279366, 0.99876253, 0.99934672, 0.49323799], 7677 [- 6.27319889, - 0.00040505, 0.00024814, 7.27279384, 0.99876269, 0.99934681, 0.49323794], 7678 [- 6.27319901, - 0.00040500, 0.00024811, 7.27279402, 0.99876285, 0.99934689, 0.49323812], 7679 [- 6.27319914, - 0.00040494, 0.00024808, 7.27279420, 0.99876301, 0.99934698, 0.49323800], 7680 [- 6.27319927, - 0.00040489, 0.00024805, 7.27279438, 0.99876318, 0.99934706, 0.49323799], 7681 [- 6.27319939, - 0.00040484, 0.00024801, 7.27279456, 0.99876334, 0.99934715, 0.49323807], 7682 [- 6.27319952, - 0.00040479, 0.00024798, 7.27279474, 0.99876350, 0.99934723, 0.49323804], 7683 [- 6.27319965, - 0.00040473, 0.00024795, 7.27279492, 0.99876366, 0.99934732, 0.49323807], 7684 [- 6.27319977, - 0.00040468, 0.00024792, 7.27279510, 0.99876382, 0.99934740, 0.49323796], 7685 [- 6.27319990, - 0.00040463, 0.00024788, 7.27279527, 0.99876398, 0.99934749, 0.49323820], 7686 [- 6.27320003, - 0.00040457, 0.00024785, 7.27279545, 0.99876415, 0.99934757, 0.49323815], 7687 [- 6.27320015, - 0.00040452, 0.00024782, 7.27279563, 0.99876431, 0.99934766, 0.49323813], 7688 [- 6.27320028, - 0.00040447, 0.00024779, 7.27279581, 0.99876447, 0.99934774, 0.49323819], 7689 [- 6.27320041, - 0.00040442, 0.00024776, 7.27279599, 0.99876463, 0.99934783, 0.49323817], 7690 [- 6.27320053, - 0.00040436, 0.00024772, 7.27279617, 0.99876479, 0.99934791, 0.49323809], 7691 [- 6.27320066, - 0.00040431, 0.00024769, 7.27279635, 0.99876495, 0.99934800, 0.49323823], 7692 [- 6.27320079, - 0.00040426, 0.00024766, 7.27279653, 0.99876511, 0.99934809, 0.49323818], 7693 [- 6.27320091, - 0.00040420, 0.00024763, 7.27279671, 0.99876528, 0.99934817, 0.49323822], 7694 [- 6.27320104, - 0.00040415, 0.00024759, 7.27279689, 0.99876544, 0.99934826, 0.49323828], 7695 [- 6.27320117, - 0.00040410, 0.00024756, 7.27279707, 0.99876560, 0.99934834, 0.49323852], 7696 [- 6.27320129, - 0.00040405, 0.00024753, 7.27279725, 0.99876576, 0.99934843, 0.49323826], 7697 [- 6.27320142, - 0.00040399, 0.00024750, 7.27279743, 0.99876592, 0.99934851, 0.49323833], 7698 [- 6.27320154, - 0.00040394, 0.00024746, 7.27279760, 0.99876608, 0.99934860, 0.49323832], 7699 [- 6.27320167, - 0.00040389, 0.00024743, 7.27279778, 0.99876624, 0.99934868, 0.49323839], 7700 [- 6.27320180, - 0.00040383, 0.00024740, 7.27279796, 0.99876640, 0.99934877, 0.49323831], 7701 [- 6.27320192, - 0.00040378, 0.00024737, 7.27279814, 0.99876656, 0.99934885, 0.49323847], 7702 [- 6.27320205, - 0.00040373, 0.00024733, 7.27279832, 0.99876673, 0.99934894, 0.49323846], 7703 [- 6.27320217, - 0.00040368, 0.00024730, 7.27279850, 0.99876689, 0.99934902, 0.49323853], 7704 [- 6.27320230, - 0.00040362, 0.00024727, 7.27279868, 0.99876705, 0.99934911, 0.49323849], 7705 [- 6.27320243, - 0.00040357, 0.00024724, 7.27279886, 0.99876721, 0.99934919, 0.49323847], 7706 [- 6.27320255, - 0.00040352, 0.00024721, 7.27279903, 0.99876737, 0.99934928, 0.49323843], 7707 [- 6.27320268, - 0.00040347, 0.00024717, 7.27279921, 0.99876753, 0.99934936, 0.49323854], 7708 [- 6.27320280, - 0.00040341, 0.00024714, 7.27279939, 0.99876769, 0.99934944, 0.49323862], 7709 [- 6.27320293, - 0.00040336, 0.00024711, 7.27279957, 0.99876785, 0.99934953, 0.49323861], 7710 [- 6.27320306, - 0.00040331, 0.00024708, 7.27279975, 0.99876801, 0.99934961, 0.49323862], 7711 [- 6.27320318, - 0.00040326, 0.00024704, 7.27279993, 0.99876817, 0.99934970, 0.49323859], 7712 [- 6.27320331, - 0.00040320, 0.00024701, 7.27280010, 0.99876833, 0.99934978, 0.49323864], 7713 [- 6.27320343, - 0.00040315, 0.00024698, 7.27280028, 0.99876849, 0.99934987, 0.49323872], 7714 [- 6.27320356, - 0.00040310, 0.00024695, 7.27280046, 0.99876865, 0.99934995, 0.49323853], 7715 [- 6.27320368, - 0.00040305, 0.00024692, 7.27280064, 0.99876881, 0.99935004, 0.49323874], 7716 [- 6.27320381, - 0.00040299, 0.00024688, 7.27280082, 0.99876897, 0.99935012, 0.49323866], 7717 [- 6.27320394, - 0.00040294, 0.00024685, 7.27280099, 0.99876913, 0.99935021, 0.49323878], 7718 [- 6.27320406, - 0.00040289, 0.00024682, 7.27280117, 0.99876929, 0.99935029, 0.49323872], 7719 [- 6.27320419, - 0.00040284, 0.00024679, 7.27280135, 0.99876945, 0.99935038, 0.49323872], 7720 [- 6.27320431, - 0.00040278, 0.00024676, 7.27280153, 0.99876961, 0.99935046, 0.49323876], 7721 [- 6.27320444, - 0.00040273, 0.00024672, 7.27280171, 0.99876978, 0.99935055, 0.49323884], 7722 [- 6.27320456, - 0.00040268, 0.00024669, 7.27280188, 0.99876994, 0.99935063, 0.49323875], 7723 [- 6.27320469, - 0.00040263, 0.00024666, 7.27280206, 0.99877010, 0.99935071, 0.49323881], 7724 [- 6.27320481, - 0.00040257, 0.00024663, 7.27280224, 0.99877026, 0.99935080, 0.49323883], 7725 [- 6.27320494, - 0.00040252, 0.00024659, 7.27280242, 0.99877042, 0.99935088, 0.49323893], 7726 [- 6.27320506, - 0.00040247, 0.00024656, 7.27280259, 0.99877058, 0.99935097, 0.49323897], 7727 [- 6.27320519, - 0.00040242, 0.00024653, 7.27280277, 0.99877073, 0.99935105, 0.49323888], 7728 [- 6.27320532, - 0.00040237, 0.00024650, 7.27280295, 0.99877089, 0.99935114, 0.49323894], 7729 [- 6.27320544, - 0.00040231, 0.00024647, 7.27280313, 0.99877105, 0.99935122, 0.49323891], 7730 [- 6.27320557, - 0.00040226, 0.00024643, 7.27280330, 0.99877121, 0.99935130, 0.49323883], 7731 [- 6.27320569, - 0.00040221, 0.00024640, 7.27280348, 0.99877137, 0.99935139, 0.49323900], 7732 [- 6.27320582, - 0.00040216, 0.00024637, 7.27280366, 0.99877153, 0.99935147, 0.49323894], 7733 [- 6.27320594, - 0.00040210, 0.00024634, 7.27280384, 0.99877169, 0.99935156, 0.49323913], 7734 [- 6.27320607, - 0.00040205, 0.00024631, 7.27280401, 0.99877185, 0.99935164, 0.49323892], 7735 [- 6.27320619, - 0.00040200, 0.00024627, 7.27280419, 0.99877201, 0.99935173, 0.49323905], 7736 [- 6.27320632, - 0.00040195, 0.00024624, 7.27280437, 0.99877217, 0.99935181, 0.49323908], 7737 [- 6.27320644, - 0.00040190, 0.00024621, 7.27280455, 0.99877233, 0.99935189, 0.49323912], 7738 [- 6.27320657, - 0.00040184, 0.00024618, 7.27280472, 0.99877249, 0.99935198, 0.49323907], 7739 [- 6.27320669, - 0.00040179, 0.00024615, 7.27280490, 0.99877265, 0.99935206, 0.49323901], 7740 [- 6.27320682, - 0.00040174, 0.00024611, 7.27280508, 0.99877281, 0.99935215, 0.49323923], 7741 [- 6.27320694, - 0.00040169, 0.00024608, 7.27280525, 0.99877297, 0.99935223, 0.49323914], 7742 [- 6.27320706, - 0.00040163, 0.00024605, 7.27280543, 0.99877313, 0.99935231, 0.49323921], 7743 [- 6.27320719, - 0.00040158, 0.00024602, 7.27280561, 0.99877329, 0.99935240, 0.49323926], 7744 [- 6.27320731, - 0.00040153, 0.00024599, 7.27280578, 0.99877345, 0.99935248, 0.49323926], 7745 [- 6.27320744, - 0.00040148, 0.00024595, 7.27280596, 0.99877361, 0.99935257, 0.49323918], 7746 [- 6.27320756, - 0.00040143, 0.00024592, 7.27280614, 0.99877376, 0.99935265, 0.49323936], 7747 [- 6.27320769, - 0.00040137, 0.00024589, 7.27280631, 0.99877392, 0.99935273, 0.49323929], 7748 [- 6.27320781, - 0.00040132, 0.00024586, 7.27280649, 0.99877408, 0.99935282, 0.49323934], 7749 [- 6.27320794, - 0.00040127, 0.00024583, 7.27280667, 0.99877424, 0.99935290, 0.49323932], 7750 [- 6.27320806, - 0.00040122, 0.00024580, 7.27280684, 0.99877440, 0.99935299, 0.49323931], 7751 [- 6.27320819, - 0.00040117, 0.00024576, 7.27280702, 0.99877456, 0.99935307, 0.49323926], 7752 [- 6.27320831, - 0.00040111, 0.00024573, 7.27280720, 0.99877472, 0.99935315, 0.49323938], 7753 [- 6.27320843, - 0.00040106, 0.00024570, 7.27280737, 0.99877488, 0.99935324, 0.49323939], 7754 [- 6.27320856, - 0.00040101, 0.00024567, 7.27280755, 0.99877504, 0.99935332, 0.49323934], 7755 [- 6.27320868, - 0.00040096, 0.00024564, 7.27280773, 0.99877519, 0.99935341, 0.49323939], 7756 [- 6.27320881, - 0.00040091, 0.00024560, 7.27280790, 0.99877535, 0.99935349, 0.49323943], 7757 [- 6.27320893, - 0.00040085, 0.00024557, 7.27280808, 0.99877551, 0.99935357, 0.49323942], 7758 [- 6.27320906, - 0.00040080, 0.00024554, 7.27280825, 0.99877567, 0.99935366, 0.49323947], 7759 [- 6.27320918, - 0.00040075, 0.00024551, 7.27280843, 0.99877583, 0.99935374, 0.49323951], 7760 [- 6.27320930, - 0.00040070, 0.00024548, 7.27280861, 0.99877599, 0.99935382, 0.49323953], 7761 [- 6.27320943, - 0.00040065, 0.00024545, 7.27280878, 0.99877615, 0.99935391, 0.49323955], 7762 [- 6.27320955, - 0.00040059, 0.00024541, 7.27280896, 0.99877630, 0.99935399, 0.49323962], 7763 [- 6.27320968, - 0.00040054, 0.00024538, 7.27280913, 0.99877646, 0.99935408, 0.49323956], 7764 [- 6.27320980, - 0.00040049, 0.00024535, 7.27280931, 0.99877662, 0.99935416, 0.49323962], 7765 [- 6.27320993, - 0.00040044, 0.00024532, 7.27280949, 0.99877678, 0.99935424, 0.49323958], 7766 [- 6.27321005, - 0.00040039, 0.00024529, 7.27280966, 0.99877694, 0.99935433, 0.49323965], 7767 [- 6.27321017, - 0.00040034, 0.00024525, 7.27280984, 0.99877710, 0.99935441, 0.49323969], 7768 [- 6.27321030, - 0.00040028, 0.00024522, 7.27281001, 0.99877725, 0.99935449, 0.49323976], 7769 [- 6.27321042, - 0.00040023, 0.00024519, 7.27281019, 0.99877741, 0.99935458, 0.49323970], 7770 [- 6.27321054, - 0.00040018, 0.00024516, 7.27281036, 0.99877757, 0.99935466, 0.49323974], 7771 [- 6.27321067, - 0.00040013, 0.00024513, 7.27281054, 0.99877773, 0.99935474, 0.49323974], 7772 [- 6.27321079, - 0.00040008, 0.00024510, 7.27281072, 0.99877789, 0.99935483, 0.49323966], 7773 [- 6.27321092, - 0.00040003, 0.00024506, 7.27281089, 0.99877804, 0.99935491, 0.49323980], 7774 [- 6.27321104, - 0.00039997, 0.00024503, 7.27281107, 0.99877820, 0.99935499, 0.49323982], 7775 [- 6.27321116, - 0.00039992, 0.00024500, 7.27281124, 0.99877836, 0.99935508, 0.49323984], 7776 [- 6.27321129, - 0.00039987, 0.00024497, 7.27281142, 0.99877852, 0.99935516, 0.49323979], 7777 [- 6.27321141, - 0.00039982, 0.00024494, 7.27281159, 0.99877868, 0.99935524, 0.49323984], 7778 [- 6.27321153, - 0.00039977, 0.00024491, 7.27281177, 0.99877883, 0.99935533, 0.49323987], 7779 [- 6.27321166, - 0.00039972, 0.00024487, 7.27281194, 0.99877899, 0.99935541, 0.49323994], 7780 [- 6.27321178, - 0.00039966, 0.00024484, 7.27281212, 0.99877915, 0.99935549, 0.49323989], 7781 [- 6.27321191, - 0.00039961, 0.00024481, 7.27281229, 0.99877931, 0.99935558, 0.49323986], 7782 [- 6.27321203, - 0.00039956, 0.00024478, 7.27281247, 0.99877946, 0.99935566, 0.49323995], 7783 [- 6.27321215, - 0.00039951, 0.00024475, 7.27281264, 0.99877962, 0.99935574, 0.49323997], 7784 [- 6.27321228, - 0.00039946, 0.00024472, 7.27281282, 0.99877978, 0.99935583, 0.49323996], 7785 [- 6.27321240, - 0.00039941, 0.00024468, 7.27281299, 0.99877994, 0.99935591, 0.49323998], 7786 [- 6.27321252, - 0.00039935, 0.00024465, 7.27281317, 0.99878009, 0.99935599, 0.49323996], 7787 [- 6.27321265, - 0.00039930, 0.00024462, 7.27281334, 0.99878025, 0.99935608, 0.49324002], 7788 [- 6.27321277, - 0.00039925, 0.00024459, 7.27281352, 0.99878041, 0.99935616, 0.49323998], 7789 [- 6.27321289, - 0.00039920, 0.00024456, 7.27281369, 0.99878057, 0.99935624, 0.49324001], 7790 [- 6.27321302, - 0.00039915, 0.00024453, 7.27281387, 0.99878072, 0.99935632, 0.49324014], 7791 [- 6.27321314, - 0.00039910, 0.00024450, 7.27281404, 0.99878088, 0.99935641, 0.49324019], 7792 [- 6.27321326, - 0.00039905, 0.00024446, 7.27281422, 0.99878104, 0.99935649, 0.49324012], 7793 [- 6.27321338, - 0.00039899, 0.00024443, 7.27281439, 0.99878120, 0.99935657, 0.49324003], 7794 [- 6.27321351, - 0.00039894, 0.00024440, 7.27281457, 0.99878135, 0.99935666, 0.49324013], 7795 [- 6.27321363, - 0.00039889, 0.00024437, 7.27281474, 0.99878151, 0.99935674, 0.49324013], 7796 [- 6.27321375, - 0.00039884, 0.00024434, 7.27281491, 0.99878167, 0.99935682, 0.49324017], 7797 [- 6.27321388, - 0.00039879, 0.00024431, 7.27281509, 0.99878182, 0.99935690, 0.49324022], 7798 [- 6.27321400, - 0.00039874, 0.00024427, 7.27281526, 0.99878198, 0.99935699, 0.49324015], 7799 [- 6.27321412, - 0.00039869, 0.00024424, 7.27281544, 0.99878214, 0.99935707, 0.49324036], 7800 [- 6.27321425, - 0.00039863, 0.00024421, 7.27281561, 0.99878229, 0.99935715, 0.49324026], 7801 [- 6.27321437, - 0.00039858, 0.00024418, 7.27281579, 0.99878245, 0.99935724, 0.49324022], 7802 [- 6.27321449, - 0.00039853, 0.00024415, 7.27281596, 0.99878261, 0.99935732, 0.49324031], 7803 [- 6.27321461, - 0.00039848, 0.00024412, 7.27281613, 0.99878277, 0.99935740, 0.49324028], 7804 [- 6.27321474, - 0.00039843, 0.00024409, 7.27281631, 0.99878292, 0.99935748, 0.49324030], 7805 [- 6.27321486, - 0.00039838, 0.00024405, 7.27281648, 0.99878308, 0.99935757, 0.49324023], 7806 [- 6.27321498, - 0.00039833, 0.00024402, 7.27281666, 0.99878324, 0.99935765, 0.49324037], 7807 [- 6.27321511, - 0.00039828, 0.00024399, 7.27281683, 0.99878339, 0.99935773, 0.49324036], 7808 [- 6.27321523, - 0.00039822, 0.00024396, 7.27281700, 0.99878355, 0.99935782, 0.49324044], 7809 [- 6.27321535, - 0.00039817, 0.00024393, 7.27281718, 0.99878370, 0.99935790, 0.49324039], 7810 [- 6.27321547, - 0.00039812, 0.00024390, 7.27281735, 0.99878386, 0.99935798, 0.49324042], 7811 [- 6.27321560, - 0.00039807, 0.00024387, 7.27281752, 0.99878402, 0.99935806, 0.49324055], 7812 [- 6.27321572, - 0.00039802, 0.00024383, 7.27281770, 0.99878417, 0.99935815, 0.49324042], 7813 [- 6.27321584, - 0.00039797, 0.00024380, 7.27281787, 0.99878433, 0.99935823, 0.49324044], 7814 [- 6.27321596, - 0.00039792, 0.00024377, 7.27281805, 0.99878449, 0.99935831, 0.49324041], 7815 [- 6.27321609, - 0.00039787, 0.00024374, 7.27281822, 0.99878464, 0.99935839, 0.49324060], 7816 [- 6.27321621, - 0.00039781, 0.00024371, 7.27281839, 0.99878480, 0.99935848, 0.49324044], 7817 [- 6.27321633, - 0.00039776, 0.00024368, 7.27281857, 0.99878496, 0.99935856, 0.49324054], 7818 [- 6.27321645, - 0.00039771, 0.00024365, 7.27281874, 0.99878511, 0.99935864, 0.49324046], 7819 [- 6.27321658, - 0.00039766, 0.00024362, 7.27281891, 0.99878527, 0.99935872, 0.49324052], 7820 [- 6.27321670, - 0.00039761, 0.00024358, 7.27281909, 0.99878542, 0.99935881, 0.49324063], 7821 [- 6.27321682, - 0.00039756, 0.00024355, 7.27281926, 0.99878558, 0.99935889, 0.49324081], 7822 [- 6.27321694, - 0.00039751, 0.00024352, 7.27281943, 0.99878574, 0.99935897, 0.49324067], 7823 [- 6.27321706, - 0.00039746, 0.00024349, 7.27281961, 0.99878589, 0.99935905, 0.49324080], 7824 [- 6.27321719, - 0.00039741, 0.00024346, 7.27281978, 0.99878605, 0.99935913, 0.49324070], 7825 [- 6.27321731, - 0.00039736, 0.00024343, 7.27281995, 0.99878620, 0.99935922, 0.49324061], 7826 [- 6.27321743, - 0.00039730, 0.00024340, 7.27282013, 0.99878636, 0.99935930, 0.49324072], 7827 [- 6.27321755, - 0.00039725, 0.00024337, 7.27282030, 0.99878652, 0.99935938, 0.49324071], 7828 [- 6.27321767, - 0.00039720, 0.00024333, 7.27282047, 0.99878667, 0.99935946, 0.49324076], 7829 [- 6.27321780, - 0.00039715, 0.00024330, 7.27282064, 0.99878683, 0.99935955, 0.49324084], 7830 [- 6.27321792, - 0.00039710, 0.00024327, 7.27282082, 0.99878698, 0.99935963, 0.49324086], 7831 [- 6.27321804, - 0.00039705, 0.00024324, 7.27282099, 0.99878714, 0.99935971, 0.49324068], 7832 [- 6.27321816, - 0.00039700, 0.00024321, 7.27282116, 0.99878729, 0.99935979, 0.49324078], 7833 [- 6.27321828, - 0.00039695, 0.00024318, 7.27282134, 0.99878745, 0.99935987, 0.49324088], 7834 [- 6.27321841, - 0.00039690, 0.00024315, 7.27282151, 0.99878760, 0.99935996, 0.49324077], 7835 [- 6.27321853, - 0.00039685, 0.00024312, 7.27282168, 0.99878776, 0.99936004, 0.49324091], 7836 [- 6.27321865, - 0.00039680, 0.00024308, 7.27282185, 0.99878792, 0.99936012, 0.49324089], 7837 [- 6.27321877, - 0.00039674, 0.00024305, 7.27282203, 0.99878807, 0.99936020, 0.49324098], 7838 [- 6.27321889, - 0.00039669, 0.00024302, 7.27282220, 0.99878823, 0.99936028, 0.49324089], 7839 [- 6.27321901, - 0.00039664, 0.00024299, 7.27282237, 0.99878838, 0.99936037, 0.49324096], 7840 [- 6.27321914, - 0.00039659, 0.00024296, 7.27282254, 0.99878854, 0.99936045, 0.49324110], 7841 [- 6.27321926, - 0.00039654, 0.00024293, 7.27282272, 0.99878869, 0.99936053, 0.49324104], 7842 [- 6.27321938, - 0.00039649, 0.00024290, 7.27282289, 0.99878885, 0.99936061, 0.49324115], 7843 [- 6.27321950, - 0.00039644, 0.00024287, 7.27282306, 0.99878900, 0.99936069, 0.49324105], 7844 [- 6.27321962, - 0.00039639, 0.00024284, 7.27282323, 0.99878916, 0.99936078, 0.49324108], 7845 [- 6.27321974, - 0.00039634, 0.00024280, 7.27282341, 0.99878931, 0.99936086, 0.49324101], 7846 [- 6.27321987, - 0.00039629, 0.00024277, 7.27282358, 0.99878947, 0.99936094, 0.49324102], 7847 [- 6.27321999, - 0.00039624, 0.00024274, 7.27282375, 0.99878962, 0.99936102, 0.49324113], 7848 [- 6.27322011, - 0.00039619, 0.00024271, 7.27282392, 0.99878978, 0.99936110, 0.49324108], 7849 [- 6.27322023, - 0.00039613, 0.00024268, 7.27282409, 0.99878993, 0.99936119, 0.49324117], 7850 [- 6.27322035, - 0.00039608, 0.00024265, 7.27282427, 0.99879009, 0.99936127, 0.49324125], 7851 [- 6.27322047, - 0.00039603, 0.00024262, 7.27282444, 0.99879024, 0.99936135, 0.49324106], 7852 [- 6.27322059, - 0.00039598, 0.00024259, 7.27282461, 0.99879040, 0.99936143, 0.49324119], 7853 [- 6.27322071, - 0.00039593, 0.00024256, 7.27282478, 0.99879055, 0.99936151, 0.49324110], 7854 [- 6.27322084, - 0.00039588, 0.00024252, 7.27282495, 0.99879071, 0.99936159, 0.49324126], 7855 [- 6.27322096, - 0.00039583, 0.00024249, 7.27282513, 0.99879086, 0.99936168, 0.49324122], 7856 [- 6.27322108, - 0.00039578, 0.00024246, 7.27282530, 0.99879102, 0.99936176, 0.49324129], 7857 [- 6.27322120, - 0.00039573, 0.00024243, 7.27282547, 0.99879117, 0.99936184, 0.49324129], 7858 [- 6.27322132, - 0.00039568, 0.00024240, 7.27282564, 0.99879133, 0.99936192, 0.49324124], 7859 [- 6.27322144, - 0.00039563, 0.00024237, 7.27282581, 0.99879148, 0.99936200, 0.49324135], 7860 [- 6.27322156, - 0.00039558, 0.00024234, 7.27282598, 0.99879163, 0.99936208, 0.49324138], 7861 [- 6.27322168, - 0.00039553, 0.00024231, 7.27282616, 0.99879179, 0.99936216, 0.49324133], 7862 [- 6.27322180, - 0.00039548, 0.00024228, 7.27282633, 0.99879194, 0.99936225, 0.49324140], 7863 [- 6.27322193, - 0.00039543, 0.00024225, 7.27282650, 0.99879210, 0.99936233, 0.49324130], 7864 [- 6.27322205, - 0.00039538, 0.00024221, 7.27282667, 0.99879225, 0.99936241, 0.49324149], 7865 [- 6.27322217, - 0.00039533, 0.00024218, 7.27282684, 0.99879241, 0.99936249, 0.49324143], 7866 [- 6.27322229, - 0.00039528, 0.00024215, 7.27282701, 0.99879256, 0.99936257, 0.49324140], 7867 [- 6.27322241, - 0.00039522, 0.00024212, 7.27282718, 0.99879271, 0.99936265, 0.49324158], 7868 [- 6.27322253, - 0.00039517, 0.00024209, 7.27282736, 0.99879287, 0.99936273, 0.49324147], 7869 [- 6.27322265, - 0.00039512, 0.00024206, 7.27282753, 0.99879302, 0.99936282, 0.49324156], 7870 [- 6.27322277, - 0.00039507, 0.00024203, 7.27282770, 0.99879318, 0.99936290, 0.49324153], 7871 [- 6.27322289, - 0.00039502, 0.00024200, 7.27282787, 0.99879333, 0.99936298, 0.49324143], 7872 [- 6.27322301, - 0.00039497, 0.00024197, 7.27282804, 0.99879349, 0.99936306, 0.49324134], 7873 [- 6.27322313, - 0.00039492, 0.00024194, 7.27282821, 0.99879364, 0.99936314, 0.49324161], 7874 [- 6.27322325, - 0.00039487, 0.00024191, 7.27282838, 0.99879379, 0.99936322, 0.49324161], 7875 [- 6.27322337, - 0.00039482, 0.00024187, 7.27282855, 0.99879395, 0.99936330, 0.49324164], 7876 [- 6.27322349, - 0.00039477, 0.00024184, 7.27282872, 0.99879410, 0.99936339, 0.49324176], 7877 [- 6.27322362, - 0.00039472, 0.00024181, 7.27282889, 0.99879425, 0.99936347, 0.49324160], 7878 [- 6.27322374, - 0.00039467, 0.00024178, 7.27282907, 0.99879441, 0.99936355, 0.49324157], 7879 [- 6.27322386, - 0.00039462, 0.00024175, 7.27282924, 0.99879456, 0.99936363, 0.49324158], 7880 [- 6.27322398, - 0.00039457, 0.00024172, 7.27282941, 0.99879472, 0.99936371, 0.49324166], 7881 [- 6.27322410, - 0.00039452, 0.00024169, 7.27282958, 0.99879487, 0.99936379, 0.49324172], 7882 [- 6.27322422, - 0.00039447, 0.00024166, 7.27282975, 0.99879502, 0.99936387, 0.49324177], 7883 [- 6.27322434, - 0.00039442, 0.00024163, 7.27282992, 0.99879518, 0.99936395, 0.49324175], 7884 [- 6.27322446, - 0.00039437, 0.00024160, 7.27283009, 0.99879533, 0.99936403, 0.49324173], 7885 [- 6.27322458, - 0.00039432, 0.00024157, 7.27283026, 0.99879548, 0.99936412, 0.49324183], 7886 [- 6.27322470, - 0.00039427, 0.00024154, 7.27283043, 0.99879564, 0.99936420, 0.49324189], 7887 [- 6.27322482, - 0.00039422, 0.00024150, 7.27283060, 0.99879579, 0.99936428, 0.49324183], 7888 [- 6.27322494, - 0.00039417, 0.00024147, 7.27283077, 0.99879594, 0.99936436, 0.49324176], 7889 [- 6.27322506, - 0.00039412, 0.00024144, 7.27283094, 0.99879610, 0.99936444, 0.49324183], 7890 [- 6.27322518, - 0.00039407, 0.00024141, 7.27283111, 0.99879625, 0.99936452, 0.49324186], 7891 [- 6.27322530, - 0.00039402, 0.00024138, 7.27283128, 0.99879640, 0.99936460, 0.49324198], 7892 [- 6.27322542, - 0.00039397, 0.00024135, 7.27283145, 0.99879656, 0.99936468, 0.49324210], 7893 [- 6.27322554, - 0.00039392, 0.00024132, 7.27283162, 0.99879671, 0.99936476, 0.49324198], 7894 [- 6.27322566, - 0.00039387, 0.00024129, 7.27283179, 0.99879686, 0.99936484, 0.49324205], 7895 [- 6.27322578, - 0.00039382, 0.00024126, 7.27283196, 0.99879702, 0.99936492, 0.49324207], 7896 [- 6.27322590, - 0.00039377, 0.00024123, 7.27283213, 0.99879717, 0.99936501, 0.49324191], 7897 [- 6.27322602, - 0.00039372, 0.00024120, 7.27283230, 0.99879732, 0.99936509, 0.49324201], 7898 [- 6.27322614, - 0.00039367, 0.00024117, 7.27283247, 0.99879748, 0.99936517, 0.49324194], 7899 [- 6.27322626, - 0.00039362, 0.00024114, 7.27283264, 0.99879763, 0.99936525, 0.49324211], 7900 [- 6.27322638, - 0.00039357, 0.00024111, 7.27283281, 0.99879778, 0.99936533, 0.49324210], 7901 [- 6.27322650, - 0.00039352, 0.00024107, 7.27283298, 0.99879793, 0.99936541, 0.49324195], 7902 [- 6.27322662, - 0.00039347, 0.00024104, 7.27283315, 0.99879809, 0.99936549, 0.49324205], 7903 [- 6.27322674, - 0.00039342, 0.00024101, 7.27283332, 0.99879824, 0.99936557, 0.49324210], 7904 [- 6.27322686, - 0.00039337, 0.00024098, 7.27283349, 0.99879839, 0.99936565, 0.49324214], 7905 [- 6.27322698, - 0.00039332, 0.00024095, 7.27283366, 0.99879855, 0.99936573, 0.49324202], 7906 [- 6.27322710, - 0.00039327, 0.00024092, 7.27283383, 0.99879870, 0.99936581, 0.49324209], 7907 [- 6.27322722, - 0.00039322, 0.00024089, 7.27283400, 0.99879885, 0.99936589, 0.49324208], 7908 [- 6.27322734, - 0.00039317, 0.00024086, 7.27283417, 0.99879900, 0.99936597, 0.49324207], 7909 [- 6.27322746, - 0.00039312, 0.00024083, 7.27283434, 0.99879916, 0.99936605, 0.49324215], 7910 [- 6.27322757, - 0.00039307, 0.00024080, 7.27283451, 0.99879931, 0.99936613, 0.49324220], 7911 [- 6.27322769, - 0.00039302, 0.00024077, 7.27283468, 0.99879946, 0.99936621, 0.49324229], 7912 [- 6.27322781, - 0.00039297, 0.00024074, 7.27283485, 0.99879961, 0.99936630, 0.49324226], 7913 [- 6.27322793, - 0.00039292, 0.00024071, 7.27283502, 0.99879977, 0.99936638, 0.49324230], 7914 [- 6.27322805, - 0.00039287, 0.00024068, 7.27283519, 0.99879992, 0.99936646, 0.49324236], 7915 [- 6.27322817, - 0.00039282, 0.00024065, 7.27283535, 0.99880007, 0.99936654, 0.49324229], 7916 [- 6.27322829, - 0.00039277, 0.00024062, 7.27283552, 0.99880022, 0.99936662, 0.49324245], 7917 [- 6.27322841, - 0.00039272, 0.00024059, 7.27283569, 0.99880038, 0.99936670, 0.49324230], 7918 [- 6.27322853, - 0.00039267, 0.00024055, 7.27283586, 0.99880053, 0.99936678, 0.49324241], 7919 [- 6.27322865, - 0.00039262, 0.00024052, 7.27283603, 0.99880068, 0.99936686, 0.49324234], 7920 [- 6.27322877, - 0.00039257, 0.00024049, 7.27283620, 0.99880083, 0.99936694, 0.49324231], 7921 [- 6.27322889, - 0.00039252, 0.00024046, 7.27283637, 0.99880098, 0.99936702, 0.49324244], 7922 [- 6.27322901, - 0.00039247, 0.00024043, 7.27283654, 0.99880114, 0.99936710, 0.49324243], 7923 [- 6.27322913, - 0.00039242, 0.00024040, 7.27283671, 0.99880129, 0.99936718, 0.49324251], 7924 [- 6.27322924, - 0.00039237, 0.00024037, 7.27283688, 0.99880144, 0.99936726, 0.49324242], 7925 [- 6.27322936, - 0.00039232, 0.00024034, 7.27283704, 0.99880159, 0.99936734, 0.49324245], 7926 [- 6.27322948, - 0.00039227, 0.00024031, 7.27283721, 0.99880174, 0.99936742, 0.49324248], 7927 [- 6.27322960, - 0.00039222, 0.00024028, 7.27283738, 0.99880190, 0.99936750, 0.49324240], 7928 [- 6.27322972, - 0.00039217, 0.00024025, 7.27283755, 0.99880205, 0.99936758, 0.49324256], 7929 [- 6.27322984, - 0.00039212, 0.00024022, 7.27283772, 0.99880220, 0.99936766, 0.49324270], 7930 [- 6.27322996, - 0.00039207, 0.00024019, 7.27283789, 0.99880235, 0.99936774, 0.49324265], 7931 [- 6.27323008, - 0.00039202, 0.00024016, 7.27283806, 0.99880250, 0.99936782, 0.49324254], 7932 [- 6.27323020, - 0.00039197, 0.00024013, 7.27283822, 0.99880265, 0.99936790, 0.49324268], 7933 [- 6.27323032, - 0.00039192, 0.00024010, 7.27283839, 0.99880281, 0.99936798, 0.49324263], 7934 [- 6.27323043, - 0.00039187, 0.00024007, 7.27283856, 0.99880296, 0.99936806, 0.49324257], 7935 [- 6.27323055, - 0.00039182, 0.00024004, 7.27283873, 0.99880311, 0.99936814, 0.49324271], 7936 [- 6.27323067, - 0.00039177, 0.00024001, 7.27283890, 0.99880326, 0.99936822, 0.49324263], 7937 [- 6.27323079, - 0.00039172, 0.00023998, 7.27283907, 0.99880341, 0.99936830, 0.49324259], 7938 [- 6.27323091, - 0.00039167, 0.00023995, 7.27283923, 0.99880356, 0.99936838, 0.49324272], 7939 [- 6.27323103, - 0.00039162, 0.00023992, 7.27283940, 0.99880372, 0.99936846, 0.49324266], 7940 [- 6.27323115, - 0.00039158, 0.00023989, 7.27283957, 0.99880387, 0.99936854, 0.49324277], 7941 [- 6.27323126, - 0.00039153, 0.00023985, 7.27283974, 0.99880402, 0.99936862, 0.49324283], 7942 [- 6.27323138, - 0.00039148, 0.00023982, 7.27283991, 0.99880417, 0.99936870, 0.49324288], 7943 [- 6.27323150, - 0.00039143, 0.00023979, 7.27284008, 0.99880432, 0.99936878, 0.49324274], 7944 [- 6.27323162, - 0.00039138, 0.00023976, 7.27284024, 0.99880447, 0.99936886, 0.49324289], 7945 [- 6.27323174, - 0.00039133, 0.00023973, 7.27284041, 0.99880462, 0.99936894, 0.49324287], 7946 [- 6.27323186, - 0.00039128, 0.00023970, 7.27284058, 0.99880477, 0.99936902, 0.49324285], 7947 [- 6.27323198, - 0.00039123, 0.00023967, 7.27284075, 0.99880493, 0.99936910, 0.49324283], 7948 [- 6.27323209, - 0.00039118, 0.00023964, 7.27284091, 0.99880508, 0.99936918, 0.49324290], 7949 [- 6.27323221, - 0.00039113, 0.00023961, 7.27284108, 0.99880523, 0.99936926, 0.49324280], 7950 [- 6.27323233, - 0.00039108, 0.00023958, 7.27284125, 0.99880538, 0.99936934, 0.49324296], 7951 [- 6.27323245, - 0.00039103, 0.00023955, 7.27284142, 0.99880553, 0.99936942, 0.49324284], 7952 [- 6.27323257, - 0.00039098, 0.00023952, 7.27284159, 0.99880568, 0.99936950, 0.49324285], 7953 [- 6.27323268, - 0.00039093, 0.00023949, 7.27284175, 0.99880583, 0.99936958, 0.49324302], 7954 [- 6.27323280, - 0.00039088, 0.00023946, 7.27284192, 0.99880598, 0.99936966, 0.49324295], 7955 [- 6.27323292, - 0.00039083, 0.00023943, 7.27284209, 0.99880613, 0.99936974, 0.49324320], 7956 [- 6.27323304, - 0.00039078, 0.00023940, 7.27284226, 0.99880628, 0.99936982, 0.49324315], 7957 [- 6.27323316, - 0.00039073, 0.00023937, 7.27284242, 0.99880643, 0.99936990, 0.49324296], 7958 [- 6.27323328, - 0.00039069, 0.00023934, 7.27284259, 0.99880658, 0.99936997, 0.49324298], 7959 [- 6.27323339, - 0.00039064, 0.00023931, 7.27284276, 0.99880674, 0.99937005, 0.49324310], 7960 [- 6.27323351, - 0.00039059, 0.00023928, 7.27284292, 0.99880689, 0.99937013, 0.49324316], 7961 [- 6.27323363, - 0.00039054, 0.00023925, 7.27284309, 0.99880704, 0.99937021, 0.49324305], 7962 [- 6.27323375, - 0.00039049, 0.00023922, 7.27284326, 0.99880719, 0.99937029, 0.49324317], 7963 [- 6.27323387, - 0.00039044, 0.00023919, 7.27284343, 0.99880734, 0.99937037, 0.49324316], 7964 [- 6.27323398, - 0.00039039, 0.00023916, 7.27284359, 0.99880749, 0.99937045, 0.49324322], 7965 [- 6.27323410, - 0.00039034, 0.00023913, 7.27284376, 0.99880764, 0.99937053, 0.49324310], 7966 [- 6.27323422, - 0.00039029, 0.00023910, 7.27284393, 0.99880779, 0.99937061, 0.49324325], 7967 [- 6.27323434, - 0.00039024, 0.00023907, 7.27284409, 0.99880794, 0.99937069, 0.49324319], 7968 [- 6.27323445, - 0.00039019, 0.00023904, 7.27284426, 0.99880809, 0.99937077, 0.49324326], 7969 [- 6.27323457, - 0.00039014, 0.00023901, 7.27284443, 0.99880824, 0.99937085, 0.49324329], 7970 [- 6.27323469, - 0.00039009, 0.00023898, 7.27284460, 0.99880839, 0.99937093, 0.49324333], 7971 [- 6.27323481, - 0.00039005, 0.00023895, 7.27284476, 0.99880854, 0.99937101, 0.49324318], 7972 [- 6.27323493, - 0.00039000, 0.00023892, 7.27284493, 0.99880869, 0.99937109, 0.49324318], 7973 [- 6.27323504, - 0.00038995, 0.00023889, 7.27284510, 0.99880884, 0.99937117, 0.49324337], 7974 [- 6.27323516, - 0.00038990, 0.00023886, 7.27284526, 0.99880899, 0.99937124, 0.49324337], 7975 [- 6.27323528, - 0.00038985, 0.00023883, 7.27284543, 0.99880914, 0.99937132, 0.49324350], 7976 [- 6.27323540, - 0.00038980, 0.00023880, 7.27284560, 0.99880929, 0.99937140, 0.49324334], 7977 [- 6.27323551, - 0.00038975, 0.00023877, 7.27284576, 0.99880944, 0.99937148, 0.49324341], 7978 [- 6.27323563, - 0.00038970, 0.00023874, 7.27284593, 0.99880959, 0.99937156, 0.49324338], 7979 [- 6.27323575, - 0.00038965, 0.00023871, 7.27284609, 0.99880974, 0.99937164, 0.49324344], 7980 [- 6.27323587, - 0.00038960, 0.00023868, 7.27284626, 0.99880989, 0.99937172, 0.49324362], 7981 [- 6.27323598, - 0.00038955, 0.00023865, 7.27284643, 0.99881004, 0.99937180, 0.49324347], 7982 [- 6.27323610, - 0.00038951, 0.00023862, 7.27284659, 0.99881019, 0.99937188, 0.49324345], 7983 [- 6.27323622, - 0.00038946, 0.00023859, 7.27284676, 0.99881034, 0.99937196, 0.49324353], 7984 [- 6.27323633, - 0.00038941, 0.00023856, 7.27284693, 0.99881049, 0.99937204, 0.49324361], 7985 [- 6.27323645, - 0.00038936, 0.00023853, 7.27284709, 0.99881064, 0.99937211, 0.49324364], 7986 [- 6.27323657, - 0.00038931, 0.00023850, 7.27284726, 0.99881079, 0.99937219, 0.49324360], 7987 [- 6.27323669, - 0.00038926, 0.00023847, 7.27284743, 0.99881094, 0.99937227, 0.49324354], 7988 [- 6.27323680, - 0.00038921, 0.00023844, 7.27284759, 0.99881109, 0.99937235, 0.49324359], 7989 [- 6.27323692, - 0.00038916, 0.00023841, 7.27284776, 0.99881124, 0.99937243, 0.49324355], 7990 [- 6.27323704, - 0.00038911, 0.00023838, 7.27284792, 0.99881139, 0.99937251, 0.49324369], 7991 [- 6.27323715, - 0.00038907, 0.00023835, 7.27284809, 0.99881154, 0.99937259, 0.49324366], 7992 [- 6.27323727, - 0.00038902, 0.00023832, 7.27284826, 0.99881169, 0.99937267, 0.49324363], 7993 [- 6.27323739, - 0.00038897, 0.00023829, 7.27284842, 0.99881184, 0.99937275, 0.49324368], 7994 [- 6.27323751, - 0.00038892, 0.00023826, 7.27284859, 0.99881198, 0.99937282, 0.49324385], 7995 [- 6.27323762, - 0.00038887, 0.00023823, 7.27284875, 0.99881213, 0.99937290, 0.49324375], 7996 [- 6.27323774, - 0.00038882, 0.00023820, 7.27284892, 0.99881228, 0.99937298, 0.49324381], 7997 [- 6.27323786, - 0.00038877, 0.00023817, 7.27284908, 0.99881243, 0.99937306, 0.49324383], 7998 [- 6.27323797, - 0.00038872, 0.00023814, 7.27284925, 0.99881258, 0.99937314, 0.49324389], 7999 [- 6.27323809, - 0.00038867, 0.00023811, 7.27284942, 0.99881273, 0.99937322, 0.49324387], 8000 [- 6.27323821, - 0.00038863, 0.00023808, 7.27284958, 0.99881288, 0.99937330, 0.49324385], 8001 [- 6.27323832, - 0.00038858, 0.00023805, 7.27284975, 0.99881303, 0.99937338, 0.49324378], 8002 [- 6.27323844, - 0.00038853, 0.00023802, 7.27284991, 0.99881318, 0.99937345, 0.49324377], 8003 [- 6.27323856, - 0.00038848, 0.00023799, 7.27285008, 0.99881333, 0.99937353, 0.49324388], 8004 [- 6.27323867, - 0.00038843, 0.00023796, 7.27285024, 0.99881348, 0.99937361, 0.49324392], 8005 [- 6.27323879, - 0.00038838, 0.00023793, 7.27285041, 0.99881362, 0.99937369, 0.49324396], 8006 [- 6.27323891, - 0.00038833, 0.00023790, 7.27285057, 0.99881377, 0.99937377, 0.49324387], 8007 [- 6.27323902, - 0.00038828, 0.00023787, 7.27285074, 0.99881392, 0.99937385, 0.49324395], 8008 [- 6.27323914, - 0.00038824, 0.00023784, 7.27285090, 0.99881407, 0.99937393, 0.49324401], 8009 [- 6.27323926, - 0.00038819, 0.00023781, 7.27285107, 0.99881422, 0.99937400, 0.49324397], 8010 [- 6.27323937, - 0.00038814, 0.00023778, 7.27285124, 0.99881437, 0.99937408, 0.49324409], 8011 [- 6.27323949, - 0.00038809, 0.00023775, 7.27285140, 0.99881452, 0.99937416, 0.49324390], 8012 [- 6.27323961, - 0.00038804, 0.00023772, 7.27285157, 0.99881467, 0.99937424, 0.49324412], 8013 [- 6.27323972, - 0.00038799, 0.00023769, 7.27285173, 0.99881481, 0.99937432, 0.49324405], 8014 [- 6.27323984, - 0.00038794, 0.00023766, 7.27285190, 0.99881496, 0.99937440, 0.49324413], 8015 [- 6.27323996, - 0.00038789, 0.00023763, 7.27285206, 0.99881511, 0.99937448, 0.49324398], 8016 [- 6.27324007, - 0.00038785, 0.00023760, 7.27285223, 0.99881526, 0.99937455, 0.49324408], 8017 [- 6.27324019, - 0.00038780, 0.00023757, 7.27285239, 0.99881541, 0.99937463, 0.49324411], 8018 [- 6.27324030, - 0.00038775, 0.00023754, 7.27285256, 0.99881556, 0.99937471, 0.49324404], 8019 [- 6.27324042, - 0.00038770, 0.00023751, 7.27285272, 0.99881571, 0.99937479, 0.49324417], 8020 [- 6.27324054, - 0.00038765, 0.00023748, 7.27285289, 0.99881585, 0.99937487, 0.49324417], 8021 [- 6.27324065, - 0.00038760, 0.00023745, 7.27285305, 0.99881600, 0.99937495, 0.49324417], 8022 [- 6.27324077, - 0.00038755, 0.00023742, 7.27285321, 0.99881615, 0.99937502, 0.49324410], 8023 [- 6.27324089, - 0.00038751, 0.00023739, 7.27285338, 0.99881630, 0.99937510, 0.49324415], 8024 [- 6.27324100, - 0.00038746, 0.00023736, 7.27285354, 0.99881645, 0.99937518, 0.49324415], 8025 [- 6.27324112, - 0.00038741, 0.00023733, 7.27285371, 0.99881660, 0.99937526, 0.49324428], 8026 [- 6.27324123, - 0.00038736, 0.00023730, 7.27285387, 0.99881674, 0.99937534, 0.49324427], 8027 [- 6.27324135, - 0.00038731, 0.00023727, 7.27285404, 0.99881689, 0.99937541, 0.49324429], 8028 [- 6.27324147, - 0.00038726, 0.00023724, 7.27285420, 0.99881704, 0.99937549, 0.49324429], 8029 [- 6.27324158, - 0.00038722, 0.00023721, 7.27285437, 0.99881719, 0.99937557, 0.49324431], 8030 [- 6.27324170, - 0.00038717, 0.00023718, 7.27285453, 0.99881734, 0.99937565, 0.49324418], 8031 [- 6.27324181, - 0.00038712, 0.00023715, 7.27285469, 0.99881748, 0.99937573, 0.49324436], 8032 [- 6.27324193, - 0.00038707, 0.00023712, 7.27285486, 0.99881763, 0.99937581, 0.49324427], 8033 [- 6.27324205, - 0.00038702, 0.00023709, 7.27285502, 0.99881778, 0.99937588, 0.49324438], 8034 [- 6.27324216, - 0.00038697, 0.00023706, 7.27285519, 0.99881793, 0.99937596, 0.49324441], 8035 [- 6.27324228, - 0.00038693, 0.00023704, 7.27285535, 0.99881807, 0.99937604, 0.49324425], 8036 [- 6.27324239, - 0.00038688, 0.00023701, 7.27285552, 0.99881822, 0.99937612, 0.49324444], 8037 [- 6.27324251, - 0.00038683, 0.00023698, 7.27285568, 0.99881837, 0.99937620, 0.49324437], 8038 [- 6.27324262, - 0.00038678, 0.00023695, 7.27285584, 0.99881852, 0.99937627, 0.49324451], 8039 [- 6.27324274, - 0.00038673, 0.00023692, 7.27285601, 0.99881867, 0.99937635, 0.49324443], 8040 [- 6.27324286, - 0.00038668, 0.00023689, 7.27285617, 0.99881881, 0.99937643, 0.49324463], 8041 [- 6.27324297, - 0.00038664, 0.00023686, 7.27285634, 0.99881896, 0.99937651, 0.49324464], 8042 [- 6.27324309, - 0.00038659, 0.00023683, 7.27285650, 0.99881911, 0.99937659, 0.49324460], 8043 [- 6.27324320, - 0.00038654, 0.00023680, 7.27285666, 0.99881926, 0.99937666, 0.49324474], 8044 [- 6.27324332, - 0.00038649, 0.00023677, 7.27285683, 0.99881940, 0.99937674, 0.49324457], 8045 [- 6.27324343, - 0.00038644, 0.00023674, 7.27285699, 0.99881955, 0.99937682, 0.49324464], 8046 [- 6.27324355, - 0.00038639, 0.00023671, 7.27285716, 0.99881970, 0.99937690, 0.49324452], 8047 [- 6.27324366, - 0.00038635, 0.00023668, 7.27285732, 0.99881985, 0.99937697, 0.49324451], 8048 [- 6.27324378, - 0.00038630, 0.00023665, 7.27285748, 0.99881999, 0.99937705, 0.49324463], 8049 [- 6.27324390, - 0.00038625, 0.00023662, 7.27285765, 0.99882014, 0.99937713, 0.49324460], 8050 [- 6.27324401, - 0.00038620, 0.00023659, 7.27285781, 0.99882029, 0.99937721, 0.49324461], 8051 [- 6.27324413, - 0.00038615, 0.00023656, 7.27285797, 0.99882043, 0.99937729, 0.49324473], 8052 [- 6.27324424, - 0.00038610, 0.00023653, 7.27285814, 0.99882058, 0.99937736, 0.49324474], 8053 [- 6.27324436, - 0.00038606, 0.00023650, 7.27285830, 0.99882073, 0.99937744, 0.49324465], 8054 [- 6.27324447, - 0.00038601, 0.00023647, 7.27285846, 0.99882088, 0.99937752, 0.49324475], 8055 [- 6.27324459, - 0.00038596, 0.00023644, 7.27285863, 0.99882102, 0.99937760, 0.49324482], 8056 [- 6.27324470, - 0.00038591, 0.00023641, 7.27285879, 0.99882117, 0.99937767, 0.49324468], 8057 [- 6.27324482, - 0.00038586, 0.00023638, 7.27285895, 0.99882132, 0.99937775, 0.49324472], 8058 [- 6.27324493, - 0.00038582, 0.00023636, 7.27285912, 0.99882146, 0.99937783, 0.49324478], 8059 [- 6.27324505, - 0.00038577, 0.00023633, 7.27285928, 0.99882161, 0.99937791, 0.49324486], 8060 [- 6.27324516, - 0.00038572, 0.00023630, 7.27285944, 0.99882176, 0.99937798, 0.49324500], 8061 [- 6.27324528, - 0.00038567, 0.00023627, 7.27285961, 0.99882190, 0.99937806, 0.49324482], 8062 [- 6.27324539, - 0.00038562, 0.00023624, 7.27285977, 0.99882205, 0.99937814, 0.49324496], 8063 [- 6.27324551, - 0.00038558, 0.00023621, 7.27285993, 0.99882220, 0.99937822, 0.49324495], 8064 [- 6.27324562, - 0.00038553, 0.00023618, 7.27286009, 0.99882234, 0.99937829, 0.49324492], 8065 [- 6.27324574, - 0.00038548, 0.00023615, 7.27286026, 0.99882249, 0.99937837, 0.49324476], 8066 [- 6.27324585, - 0.00038543, 0.00023612, 7.27286042, 0.99882264, 0.99937845, 0.49324499], 8067 [- 6.27324597, - 0.00038538, 0.00023609, 7.27286058, 0.99882278, 0.99937853, 0.49324495], 8068 [- 6.27324608, - 0.00038534, 0.00023606, 7.27286075, 0.99882293, 0.99937860, 0.49324497], 8069 [- 6.27324620, - 0.00038529, 0.00023603, 7.27286091, 0.99882308, 0.99937868, 0.49324499], 8070 [- 6.27324631, - 0.00038524, 0.00023600, 7.27286107, 0.99882322, 0.99937876, 0.49324496], 8071 [- 6.27324643, - 0.00038519, 0.00023597, 7.27286123, 0.99882337, 0.99937884, 0.49324507], 8072 [- 6.27324654, - 0.00038514, 0.00023594, 7.27286140, 0.99882352, 0.99937891, 0.49324506], 8073 [- 6.27324666, - 0.00038510, 0.00023591, 7.27286156, 0.99882366, 0.99937899, 0.49324519], 8074 [- 6.27324677, - 0.00038505, 0.00023588, 7.27286172, 0.99882381, 0.99937907, 0.49324510], 8075 [- 6.27324689, - 0.00038500, 0.00023586, 7.27286188, 0.99882396, 0.99937914, 0.49324509], 8076 [- 6.27324700, - 0.00038495, 0.00023583, 7.27286205, 0.99882410, 0.99937922, 0.49324510], 8077 [- 6.27324711, - 0.00038490, 0.00023580, 7.27286221, 0.99882425, 0.99937930, 0.49324517], 8078 [- 6.27324723, - 0.00038486, 0.00023577, 7.27286237, 0.99882440, 0.99937938, 0.49324527], 8079 [- 6.27324734, - 0.00038481, 0.00023574, 7.27286253, 0.99882454, 0.99937945, 0.49324519], 8080 [- 6.27324746, - 0.00038476, 0.00023571, 7.27286270, 0.99882469, 0.99937953, 0.49324516], 8081 [- 6.27324757, - 0.00038471, 0.00023568, 7.27286286, 0.99882483, 0.99937961, 0.49324513], 8082 [- 6.27324769, - 0.00038467, 0.00023565, 7.27286302, 0.99882498, 0.99937968, 0.49324519], 8083 [- 6.27324780, - 0.00038462, 0.00023562, 7.27286318, 0.99882513, 0.99937976, 0.49324509], 8084 [- 6.27324792, - 0.00038457, 0.00023559, 7.27286335, 0.99882527, 0.99937984, 0.49324532], 8085 [- 6.27324803, - 0.00038452, 0.00023556, 7.27286351, 0.99882542, 0.99937992, 0.49324518], 8086 [- 6.27324814, - 0.00038447, 0.00023553, 7.27286367, 0.99882556, 0.99937999, 0.49324537], 8087 [- 6.27324826, - 0.00038443, 0.00023550, 7.27286383, 0.99882571, 0.99938007, 0.49324536], 8088 [- 6.27324837, - 0.00038438, 0.00023547, 7.27286399, 0.99882586, 0.99938015, 0.49324540], 8089 [- 6.27324849, - 0.00038433, 0.00023545, 7.27286416, 0.99882600, 0.99938022, 0.49324531], 8090 [- 6.27324860, - 0.00038428, 0.00023542, 7.27286432, 0.99882615, 0.99938030, 0.49324544], 8091 [- 6.27324872, - 0.00038424, 0.00023539, 7.27286448, 0.99882629, 0.99938038, 0.49324534], 8092 [- 6.27324883, - 0.00038419, 0.00023536, 7.27286464, 0.99882644, 0.99938045, 0.49324551], 8093 [- 6.27324894, - 0.00038414, 0.00023533, 7.27286480, 0.99882658, 0.99938053, 0.49324541], 8094 [- 6.27324906, - 0.00038409, 0.00023530, 7.27286497, 0.99882673, 0.99938061, 0.49324551], 8095 [- 6.27324917, - 0.00038405, 0.00023527, 7.27286513, 0.99882688, 0.99938068, 0.49324541], 8096 [- 6.27324929, - 0.00038400, 0.00023524, 7.27286529, 0.99882702, 0.99938076, 0.49324543], 8097 [- 6.27324940, - 0.00038395, 0.00023521, 7.27286545, 0.99882717, 0.99938084, 0.49324548], 8098 [- 6.27324951, - 0.00038390, 0.00023518, 7.27286561, 0.99882731, 0.99938092, 0.49324547], 8099 [- 6.27324963, - 0.00038385, 0.00023515, 7.27286577, 0.99882746, 0.99938099, 0.49324552], 8100 [- 6.27324974, - 0.00038381, 0.00023512, 7.27286594, 0.99882760, 0.99938107, 0.49324561], 8101 [- 6.27324986, - 0.00038376, 0.00023509, 7.27286610, 0.99882775, 0.99938115, 0.49324575], 8102 [- 6.27324997, - 0.00038371, 0.00023507, 7.27286626, 0.99882789, 0.99938122, 0.49324555], 8103 [- 6.27325008, - 0.00038366, 0.00023504, 7.27286642, 0.99882804, 0.99938130, 0.49324561], 8104 [- 6.27325020, - 0.00038362, 0.00023501, 7.27286658, 0.99882818, 0.99938138, 0.49324560], 8105 [- 6.27325031, - 0.00038357, 0.00023498, 7.27286674, 0.99882833, 0.99938145, 0.49324567], 8106 [- 6.27325043, - 0.00038352, 0.00023495, 7.27286690, 0.99882847, 0.99938153, 0.49324557], 8107 [- 6.27325054, - 0.00038347, 0.00023492, 7.27286706, 0.99882862, 0.99938161, 0.49324572], 8108 [- 6.27325065, - 0.00038343, 0.00023489, 7.27286723, 0.99882877, 0.99938168, 0.49324570], 8109 [- 6.27325077, - 0.00038338, 0.00023486, 7.27286739, 0.99882891, 0.99938176, 0.49324576], 8110 [- 6.27325088, - 0.00038333, 0.00023483, 7.27286755, 0.99882906, 0.99938184, 0.49324591], 8111 [- 6.27325099, - 0.00038328, 0.00023480, 7.27286771, 0.99882920, 0.99938191, 0.49324569], 8112 [- 6.27325111, - 0.00038324, 0.00023477, 7.27286787, 0.99882935, 0.99938199, 0.49324559], 8113 [- 6.27325122, - 0.00038319, 0.00023475, 7.27286803, 0.99882949, 0.99938207, 0.49324564], 8114 [- 6.27325133, - 0.00038314, 0.00023472, 7.27286819, 0.99882964, 0.99938214, 0.49324576], 8115 [- 6.27325145, - 0.00038309, 0.00023469, 7.27286835, 0.99882978, 0.99938222, 0.49324581], 8116 [- 6.27325156, - 0.00038305, 0.00023466, 7.27286851, 0.99882993, 0.99938229, 0.49324590], 8117 [- 6.27325168, - 0.00038300, 0.00023463, 7.27286868, 0.99883007, 0.99938237, 0.49324573], 8118 [- 6.27325179, - 0.00038295, 0.00023460, 7.27286884, 0.99883021, 0.99938245, 0.49324578], 8119 [- 6.27325190, - 0.00038291, 0.00023457, 7.27286900, 0.99883036, 0.99938252, 0.49324585], 8120 [- 6.27325202, - 0.00038286, 0.00023454, 7.27286916, 0.99883050, 0.99938260, 0.49324579], 8121 [- 6.27325213, - 0.00038281, 0.00023451, 7.27286932, 0.99883065, 0.99938268, 0.49324589], 8122 [- 6.27325224, - 0.00038276, 0.00023448, 7.27286948, 0.99883079, 0.99938275, 0.49324588], 8123 [- 6.27325236, - 0.00038272, 0.00023446, 7.27286964, 0.99883094, 0.99938283, 0.49324586], 8124 [- 6.27325247, - 0.00038267, 0.00023443, 7.27286980, 0.99883108, 0.99938291, 0.49324588], 8125 [- 6.27325258, - 0.00038262, 0.00023440, 7.27286996, 0.99883123, 0.99938298, 0.49324600], 8126 [- 6.27325269, - 0.00038257, 0.00023437, 7.27287012, 0.99883137, 0.99938306, 0.49324602], 8127 [- 6.27325281, - 0.00038253, 0.00023434, 7.27287028, 0.99883152, 0.99938313, 0.49324593], 8128 [- 6.27325292, - 0.00038248, 0.00023431, 7.27287044, 0.99883166, 0.99938321, 0.49324600], 8129 [- 6.27325303, - 0.00038243, 0.00023428, 7.27287060, 0.99883180, 0.99938329, 0.49324594], 8130 [- 6.27325315, - 0.00038238, 0.00023425, 7.27287076, 0.99883195, 0.99938336, 0.49324594], 8131 [- 6.27325326, - 0.00038234, 0.00023422, 7.27287092, 0.99883209, 0.99938344, 0.49324616], 8132 [- 6.27325337, - 0.00038229, 0.00023419, 7.27287108, 0.99883224, 0.99938352, 0.49324609], 8133 [- 6.27325349, - 0.00038224, 0.00023417, 7.27287124, 0.99883238, 0.99938359, 0.49324615], 8134 [- 6.27325360, - 0.00038220, 0.00023414, 7.27287140, 0.99883253, 0.99938367, 0.49324616], 8135 [- 6.27325371, - 0.00038215, 0.00023411, 7.27287156, 0.99883267, 0.99938374, 0.49324616], 8136 [- 6.27325383, - 0.00038210, 0.00023408, 7.27287172, 0.99883281, 0.99938382, 0.49324603], 8137 [- 6.27325394, - 0.00038205, 0.00023405, 7.27287188, 0.99883296, 0.99938390, 0.49324614], 8138 [- 6.27325405, - 0.00038201, 0.00023402, 7.27287204, 0.99883310, 0.99938397, 0.49324629], 8139 [- 6.27325416, - 0.00038196, 0.00023399, 7.27287220, 0.99883325, 0.99938405, 0.49324628], 8140 [- 6.27325428, - 0.00038191, 0.00023396, 7.27287236, 0.99883339, 0.99938412, 0.49324634], 8141 [- 6.27325439, - 0.00038187, 0.00023393, 7.27287252, 0.99883353, 0.99938420, 0.49324618], 8142 [- 6.27325450, - 0.00038182, 0.00023391, 7.27287268, 0.99883368, 0.99938428, 0.49324620], 8143 [- 6.27325462, - 0.00038177, 0.00023388, 7.27287284, 0.99883382, 0.99938435, 0.49324621], 8144 [- 6.27325473, - 0.00038172, 0.00023385, 7.27287300, 0.99883397, 0.99938443, 0.49324620], 8145 [- 6.27325484, - 0.00038168, 0.00023382, 7.27287316, 0.99883411, 0.99938450, 0.49324631], 8146 [- 6.27325495, - 0.00038163, 0.00023379, 7.27287332, 0.99883425, 0.99938458, 0.49324616], 8147 [- 6.27325507, - 0.00038158, 0.00023376, 7.27287348, 0.99883440, 0.99938466, 0.49324629], 8148 [- 6.27325518, - 0.00038154, 0.00023373, 7.27287364, 0.99883454, 0.99938473, 0.49324635], 8149 [- 6.27325529, - 0.00038149, 0.00023370, 7.27287380, 0.99883469, 0.99938481, 0.49324648], 8150 [- 6.27325540, - 0.00038144, 0.00023367, 7.27287396, 0.99883483, 0.99938488, 0.49324638], 8151 [- 6.27325552, - 0.00038140, 0.00023365, 7.27287412, 0.99883497, 0.99938496, 0.49324637], 8152 [- 6.27325563, - 0.00038135, 0.00023362, 7.27287428, 0.99883512, 0.99938503, 0.49324641], 8153 [- 6.27325574, - 0.00038130, 0.00023359, 7.27287444, 0.99883526, 0.99938511, 0.49324645], 8154 [- 6.27325585, - 0.00038125, 0.00023356, 7.27287460, 0.99883540, 0.99938519, 0.49324647], 8155 [- 6.27325597, - 0.00038121, 0.00023353, 7.27287476, 0.99883555, 0.99938526, 0.49324642], 8156 [- 6.27325608, - 0.00038116, 0.00023350, 7.27287492, 0.99883569, 0.99938534, 0.49324651], 8157 [- 6.27325619, - 0.00038111, 0.00023347, 7.27287508, 0.99883583, 0.99938541, 0.49324649], 8158 [- 6.27325630, - 0.00038107, 0.00023344, 7.27287524, 0.99883598, 0.99938549, 0.49324647], 8159 [- 6.27325642, - 0.00038102, 0.00023342, 7.27287540, 0.99883612, 0.99938556, 0.49324658], 8160 [- 6.27325653, - 0.00038097, 0.00023339, 7.27287555, 0.99883626, 0.99938564, 0.49324664], 8161 [- 6.27325664, - 0.00038093, 0.00023336, 7.27287571, 0.99883641, 0.99938572, 0.49324649], 8162 [- 6.27325675, - 0.00038088, 0.00023333, 7.27287587, 0.99883655, 0.99938579, 0.49324658], 8163 [- 6.27325686, - 0.00038083, 0.00023330, 7.27287603, 0.99883669, 0.99938587, 0.49324653], 8164 [- 6.27325698, - 0.00038079, 0.00023327, 7.27287619, 0.99883684, 0.99938594, 0.49324658], 8165 [- 6.27325709, - 0.00038074, 0.00023324, 7.27287635, 0.99883698, 0.99938602, 0.49324649], 8166 [- 6.27325720, - 0.00038069, 0.00023321, 7.27287651, 0.99883712, 0.99938609, 0.49324663], 8167 [- 6.27325731, - 0.00038065, 0.00023319, 7.27287667, 0.99883727, 0.99938617, 0.49324670], 8168 [- 6.27325742, - 0.00038060, 0.00023316, 7.27287683, 0.99883741, 0.99938624, 0.49324665], 8169 [- 6.27325754, - 0.00038055, 0.00023313, 7.27287699, 0.99883755, 0.99938632, 0.49324681], 8170 [- 6.27325765, - 0.00038050, 0.00023310, 7.27287714, 0.99883769, 0.99938640, 0.49324678], 8171 [- 6.27325776, - 0.00038046, 0.00023307, 7.27287730, 0.99883784, 0.99938647, 0.49324668], 8172 [- 6.27325787, - 0.00038041, 0.00023304, 7.27287746, 0.99883798, 0.99938655, 0.49324676], 8173 [- 6.27325798, - 0.00038036, 0.00023301, 7.27287762, 0.99883812, 0.99938662, 0.49324679], 8174 [- 6.27325810, - 0.00038032, 0.00023299, 7.27287778, 0.99883827, 0.99938670, 0.49324680], 8175 [- 6.27325821, - 0.00038027, 0.00023296, 7.27287794, 0.99883841, 0.99938677, 0.49324686], 8176 [- 6.27325832, - 0.00038022, 0.00023293, 7.27287810, 0.99883855, 0.99938685, 0.49324703], 8177 [- 6.27325843, - 0.00038018, 0.00023290, 7.27287825, 0.99883869, 0.99938692, 0.49324683], 8178 [- 6.27325854, - 0.00038013, 0.00023287, 7.27287841, 0.99883884, 0.99938700, 0.49324688], 8179 [- 6.27325866, - 0.00038008, 0.00023284, 7.27287857, 0.99883898, 0.99938707, 0.49324687], 8180 [- 6.27325877, - 0.00038004, 0.00023281, 7.27287873, 0.99883912, 0.99938715, 0.49324692], 8181 [- 6.27325888, - 0.00037999, 0.00023279, 7.27287889, 0.99883926, 0.99938722, 0.49324678], 8182 [- 6.27325899, - 0.00037994, 0.00023276, 7.27287905, 0.99883941, 0.99938730, 0.49324693], 8183 [- 6.27325910, - 0.00037990, 0.00023273, 7.27287920, 0.99883955, 0.99938737, 0.49324693], 8184 [- 6.27325921, - 0.00037985, 0.00023270, 7.27287936, 0.99883969, 0.99938745, 0.49324695], 8185 [- 6.27325932, - 0.00037980, 0.00023267, 7.27287952, 0.99883983, 0.99938752, 0.49324704], 8186 [- 6.27325944, - 0.00037976, 0.00023264, 7.27287968, 0.99883998, 0.99938760, 0.49324699], 8187 [- 6.27325955, - 0.00037971, 0.00023261, 7.27287984, 0.99884012, 0.99938768, 0.49324702], 8188 [- 6.27325966, - 0.00037966, 0.00023259, 7.27287999, 0.99884026, 0.99938775, 0.49324694], 8189 [- 6.27325977, - 0.00037962, 0.00023256, 7.27288015, 0.99884040, 0.99938783, 0.49324708], 8190 [- 6.27325988, - 0.00037957, 0.00023253, 7.27288031, 0.99884055, 0.99938790, 0.49324716], 8191 [- 6.27325999, - 0.00037953, 0.00023250, 7.27288047, 0.99884069, 0.99938798, 0.49324712], 8192 [- 6.27326011, - 0.00037948, 0.00023247, 7.27288063, 0.99884083, 0.99938805, 0.49324715], 8193 [- 6.27326022, - 0.00037943, 0.00023244, 7.27288078, 0.99884097, 0.99938813, 0.49324707], 8194 [- 6.27326033, - 0.00037939, 0.00023241, 7.27288094, 0.99884111, 0.99938820, 0.49324704], 8195 [- 6.27326044, - 0.00037934, 0.00023239, 7.27288110, 0.99884126, 0.99938828, 0.49324718], 8196 [- 6.27326055, - 0.00037929, 0.00023236, 7.27288126, 0.99884140, 0.99938835, 0.49324714], 8197 [- 6.27326066, - 0.00037925, 0.00023233, 7.27288142, 0.99884154, 0.99938843, 0.49324726], 8198 [- 6.27326077, - 0.00037920, 0.00023230, 7.27288157, 0.99884168, 0.99938850, 0.49324702], 8199 [- 6.27326088, - 0.00037915, 0.00023227, 7.27288173, 0.99884182, 0.99938858, 0.49324721], 8200 [- 6.27326100, - 0.00037911, 0.00023224, 7.27288189, 0.99884197, 0.99938865, 0.49324723], 8201 [- 6.27326111, - 0.00037906, 0.00023221, 7.27288205, 0.99884211, 0.99938873, 0.49324718], 8202 [- 6.27326122, - 0.00037901, 0.00023219, 7.27288220, 0.99884225, 0.99938880, 0.49324712], 8203 [- 6.27326133, - 0.00037897, 0.00023216, 7.27288236, 0.99884239, 0.99938887, 0.49324742], 8204 [- 6.27326144, - 0.00037892, 0.00023213, 7.27288252, 0.99884253, 0.99938895, 0.49324731], 8205 [- 6.27326155, - 0.00037887, 0.00023210, 7.27288268, 0.99884267, 0.99938902, 0.49324731], 8206 [- 6.27326166, - 0.00037883, 0.00023207, 7.27288283, 0.99884282, 0.99938910, 0.49324735], 8207 [- 6.27326177, - 0.00037878, 0.00023204, 7.27288299, 0.99884296, 0.99938917, 0.49324724], 8208 [- 6.27326188, - 0.00037874, 0.00023202, 7.27288315, 0.99884310, 0.99938925, 0.49324733], 8209 [- 6.27326199, - 0.00037869, 0.00023199, 7.27288331, 0.99884324, 0.99938932, 0.49324726], 8210 [- 6.27326211, - 0.00037864, 0.00023196, 7.27288346, 0.99884338, 0.99938940, 0.49324734], 8211 [- 6.27326222, - 0.00037860, 0.00023193, 7.27288362, 0.99884352, 0.99938947, 0.49324737], 8212 [- 6.27326233, - 0.00037855, 0.00023190, 7.27288378, 0.99884367, 0.99938955, 0.49324746], 8213 [- 6.27326244, - 0.00037850, 0.00023187, 7.27288393, 0.99884381, 0.99938962, 0.49324742], 8214 [- 6.27326255, - 0.00037846, 0.00023185, 7.27288409, 0.99884395, 0.99938970, 0.49324750], 8215 [- 6.27326266, - 0.00037841, 0.00023182, 7.27288425, 0.99884409, 0.99938977, 0.49324754], 8216 [- 6.27326277, - 0.00037837, 0.00023179, 7.27288441, 0.99884423, 0.99938985, 0.49324741], 8217 [- 6.27326288, - 0.00037832, 0.00023176, 7.27288456, 0.99884437, 0.99938992, 0.49324760], 8218 [- 6.27326299, - 0.00037827, 0.00023173, 7.27288472, 0.99884451, 0.99939000, 0.49324751], 8219 [- 6.27326310, - 0.00037823, 0.00023170, 7.27288488, 0.99884466, 0.99939007, 0.49324747], 8220 [- 6.27326321, - 0.00037818, 0.00023168, 7.27288503, 0.99884480, 0.99939014, 0.49324756], 8221 [- 6.27326332, - 0.00037813, 0.00023165, 7.27288519, 0.99884494, 0.99939022, 0.49324744], 8222 [- 6.27326343, - 0.00037809, 0.00023162, 7.27288535, 0.99884508, 0.99939029, 0.49324765], 8223 [- 6.27326354, - 0.00037804, 0.00023159, 7.27288550, 0.99884522, 0.99939037, 0.49324755], 8224 [- 6.27326366, - 0.00037800, 0.00023156, 7.27288566, 0.99884536, 0.99939044, 0.49324760], 8225 [- 6.27326377, - 0.00037795, 0.00023153, 7.27288582, 0.99884550, 0.99939052, 0.49324764], 8226 [- 6.27326388, - 0.00037790, 0.00023151, 7.27288597, 0.99884564, 0.99939059, 0.49324764], 8227 [- 6.27326399, - 0.00037786, 0.00023148, 7.27288613, 0.99884578, 0.99939067, 0.49324768], 8228 [- 6.27326410, - 0.00037781, 0.00023145, 7.27288629, 0.99884592, 0.99939074, 0.49324772], 8229 [- 6.27326421, - 0.00037777, 0.00023142, 7.27288644, 0.99884607, 0.99939081, 0.49324775], 8230 [- 6.27326432, - 0.00037772, 0.00023139, 7.27288660, 0.99884621, 0.99939089, 0.49324763], 8231 [- 6.27326443, - 0.00037767, 0.00023136, 7.27288676, 0.99884635, 0.99939096, 0.49324773], 8232 [- 6.27326454, - 0.00037763, 0.00023134, 7.27288691, 0.99884649, 0.99939104, 0.49324770], 8233 [- 6.27326465, - 0.00037758, 0.00023131, 7.27288707, 0.99884663, 0.99939111, 0.49324772], 8234 [- 6.27326476, - 0.00037753, 0.00023128, 7.27288722, 0.99884677, 0.99939119, 0.49324778], 8235 [- 6.27326487, - 0.00037749, 0.00023125, 7.27288738, 0.99884691, 0.99939126, 0.49324783], 8236 [- 6.27326498, - 0.00037744, 0.00023122, 7.27288754, 0.99884705, 0.99939133, 0.49324780], 8237 [- 6.27326509, - 0.00037740, 0.00023120, 7.27288769, 0.99884719, 0.99939141, 0.49324776], 8238 [- 6.27326520, - 0.00037735, 0.00023117, 7.27288785, 0.99884733, 0.99939148, 0.49324786], 8239 [- 6.27326531, - 0.00037730, 0.00023114, 7.27288801, 0.99884747, 0.99939156, 0.49324788], 8240 [- 6.27326542, - 0.00037726, 0.00023111, 7.27288816, 0.99884761, 0.99939163, 0.49324776], 8241 [- 6.27326553, - 0.00037721, 0.00023108, 7.27288832, 0.99884775, 0.99939171, 0.49324788], 8242 [- 6.27326564, - 0.00037717, 0.00023105, 7.27288847, 0.99884789, 0.99939178, 0.49324801], 8243 [- 6.27326575, - 0.00037712, 0.00023103, 7.27288863, 0.99884803, 0.99939185, 0.49324790], 8244 [- 6.27326586, - 0.00037707, 0.00023100, 7.27288879, 0.99884817, 0.99939193, 0.49324783], 8245 [- 6.27326597, - 0.00037703, 0.00023097, 7.27288894, 0.99884831, 0.99939200, 0.49324795], 8246 [- 6.27326608, - 0.00037698, 0.00023094, 7.27288910, 0.99884846, 0.99939208, 0.49324808], 8247 [- 6.27326619, - 0.00037694, 0.00023091, 7.27288925, 0.99884860, 0.99939215, 0.49324796], 8248 [- 6.27326630, - 0.00037689, 0.00023089, 7.27288941, 0.99884874, 0.99939222, 0.49324802], 8249 [- 6.27326641, - 0.00037685, 0.00023086, 7.27288956, 0.99884888, 0.99939230, 0.49324786], 8250 [- 6.27326652, - 0.00037680, 0.00023083, 7.27288972, 0.99884902, 0.99939237, 0.49324795], 8251 [- 6.27326663, - 0.00037675, 0.00023080, 7.27288988, 0.99884916, 0.99939245, 0.49324822], 8252 [- 6.27326674, - 0.00037671, 0.00023077, 7.27289003, 0.99884930, 0.99939252, 0.49324803], 8253 [- 6.27326685, - 0.00037666, 0.00023074, 7.27289019, 0.99884944, 0.99939259, 0.49324799], 8254 [- 6.27326696, - 0.00037662, 0.00023072, 7.27289034, 0.99884958, 0.99939267, 0.49324798], 8255 [- 6.27326707, - 0.00037657, 0.00023069, 7.27289050, 0.99884972, 0.99939274, 0.49324802], 8256 [- 6.27326718, - 0.00037652, 0.00023066, 7.27289065, 0.99884986, 0.99939282, 0.49324803], 8257 [- 6.27326729, - 0.00037648, 0.00023063, 7.27289081, 0.99885000, 0.99939289, 0.49324811], 8258 [- 6.27326740, - 0.00037643, 0.00023060, 7.27289096, 0.99885014, 0.99939296, 0.49324817], 8259 [- 6.27326751, - 0.00037639, 0.00023058, 7.27289112, 0.99885028, 0.99939304, 0.49324821], 8260 [- 6.27326762, - 0.00037634, 0.00023055, 7.27289127, 0.99885042, 0.99939311, 0.49324821], 8261 [- 6.27326773, - 0.00037630, 0.00023052, 7.27289143, 0.99885056, 0.99939318, 0.49324827], 8262 [- 6.27326783, - 0.00037625, 0.00023049, 7.27289159, 0.99885070, 0.99939326, 0.49324820], 8263 [- 6.27326794, - 0.00037620, 0.00023046, 7.27289174, 0.99885084, 0.99939333, 0.49324832], 8264 [- 6.27326805, - 0.00037616, 0.00023044, 7.27289190, 0.99885097, 0.99939341, 0.49324834], 8265 [- 6.27326816, - 0.00037611, 0.00023041, 7.27289205, 0.99885111, 0.99939348, 0.49324841], 8266 [- 6.27326827, - 0.00037607, 0.00023038, 7.27289221, 0.99885125, 0.99939355, 0.49324834], 8267 [- 6.27326838, - 0.00037602, 0.00023035, 7.27289236, 0.99885139, 0.99939363, 0.49324834], 8268 [- 6.27326849, - 0.00037598, 0.00023032, 7.27289252, 0.99885153, 0.99939370, 0.49324836], 8269 [- 6.27326860, - 0.00037593, 0.00023030, 7.27289267, 0.99885167, 0.99939377, 0.49324838], 8270 [- 6.27326871, - 0.00037588, 0.00023027, 7.27289283, 0.99885181, 0.99939385, 0.49324843], 8271 [- 6.27326882, - 0.00037584, 0.00023024, 7.27289298, 0.99885195, 0.99939392, 0.49324818], 8272 [- 6.27326893, - 0.00037579, 0.00023021, 7.27289314, 0.99885209, 0.99939399, 0.49324852], 8273 [- 6.27326904, - 0.00037575, 0.00023018, 7.27289329, 0.99885223, 0.99939407, 0.49324850], 8274 [- 6.27326915, - 0.00037570, 0.00023016, 7.27289345, 0.99885237, 0.99939414, 0.49324851], 8275 [- 6.27326926, - 0.00037566, 0.00023013, 7.27289360, 0.99885251, 0.99939422, 0.49324838], 8276 [- 6.27326937, - 0.00037561, 0.00023010, 7.27289375, 0.99885265, 0.99939429, 0.49324847], 8277 [- 6.27326947, - 0.00037557, 0.00023007, 7.27289391, 0.99885279, 0.99939436, 0.49324849], 8278 [- 6.27326958, - 0.00037552, 0.00023004, 7.27289406, 0.99885293, 0.99939444, 0.49324851], 8279 [- 6.27326969, - 0.00037547, 0.00023002, 7.27289422, 0.99885307, 0.99939451, 0.49324844], 8280 [- 6.27326980, - 0.00037543, 0.00022999, 7.27289437, 0.99885321, 0.99939458, 0.49324862], 8281 [- 6.27326991, - 0.00037538, 0.00022996, 7.27289453, 0.99885334, 0.99939466, 0.49324845], 8282 [- 6.27327002, - 0.00037534, 0.00022993, 7.27289468, 0.99885348, 0.99939473, 0.49324866], 8283 [- 6.27327013, - 0.00037529, 0.00022991, 7.27289484, 0.99885362, 0.99939480, 0.49324850], 8284 [- 6.27327024, - 0.00037525, 0.00022988, 7.27289499, 0.99885376, 0.99939488, 0.49324874], 8285 [- 6.27327035, - 0.00037520, 0.00022985, 7.27289514, 0.99885390, 0.99939495, 0.49324863], 8286 [- 6.27327045, - 0.00037516, 0.00022982, 7.27289530, 0.99885404, 0.99939502, 0.49324861], 8287 [- 6.27327056, - 0.00037511, 0.00022979, 7.27289545, 0.99885418, 0.99939510, 0.49324863], 8288 [- 6.27327067, - 0.00037506, 0.00022977, 7.27289561, 0.99885432, 0.99939517, 0.49324878], 8289 [- 6.27327078, - 0.00037502, 0.00022974, 7.27289576, 0.99885446, 0.99939524, 0.49324852], 8290 [- 6.27327089, - 0.00037497, 0.00022971, 7.27289592, 0.99885459, 0.99939532, 0.49324868], 8291 [- 6.27327100, - 0.00037493, 0.00022968, 7.27289607, 0.99885473, 0.99939539, 0.49324870], 8292 [- 6.27327111, - 0.00037488, 0.00022965, 7.27289622, 0.99885487, 0.99939546, 0.49324867], 8293 [- 6.27327122, - 0.00037484, 0.00022963, 7.27289638, 0.99885501, 0.99939554, 0.49324861], 8294 [- 6.27327132, - 0.00037479, 0.00022960, 7.27289653, 0.99885515, 0.99939561, 0.49324879], 8295 [- 6.27327143, - 0.00037475, 0.00022957, 7.27289669, 0.99885529, 0.99939568, 0.49324878], 8296 [- 6.27327154, - 0.00037470, 0.00022954, 7.27289684, 0.99885543, 0.99939576, 0.49324873], 8297 [- 6.27327165, - 0.00037466, 0.00022952, 7.27289699, 0.99885557, 0.99939583, 0.49324877], 8298 [- 6.27327176, - 0.00037461, 0.00022949, 7.27289715, 0.99885570, 0.99939590, 0.49324893], 8299 [- 6.27327187, - 0.00037457, 0.00022946, 7.27289730, 0.99885584, 0.99939597, 0.49324876], 8300 [- 6.27327198, - 0.00037452, 0.00022943, 7.27289746, 0.99885598, 0.99939605, 0.49324876], 8301 [- 6.27327208, - 0.00037447, 0.00022940, 7.27289761, 0.99885612, 0.99939612, 0.49324883], 8302 [- 6.27327219, - 0.00037443, 0.00022938, 7.27289776, 0.99885626, 0.99939619, 0.49324897], 8303 [- 6.27327230, - 0.00037438, 0.00022935, 7.27289792, 0.99885640, 0.99939627, 0.49324903], 8304 [- 6.27327241, - 0.00037434, 0.00022932, 7.27289807, 0.99885653, 0.99939634, 0.49324897], 8305 [- 6.27327252, - 0.00037429, 0.00022929, 7.27289822, 0.99885667, 0.99939641, 0.49324915], 8306 [- 6.27327263, - 0.00037425, 0.00022927, 7.27289838, 0.99885681, 0.99939649, 0.49324899], 8307 [- 6.27327273, - 0.00037420, 0.00022924, 7.27289853, 0.99885695, 0.99939656, 0.49324895], 8308 [- 6.27327284, - 0.00037416, 0.00022921, 7.27289869, 0.99885709, 0.99939663, 0.49324901], 8309 [- 6.27327295, - 0.00037411, 0.00022918, 7.27289884, 0.99885723, 0.99939671, 0.49324899], 8310 [- 6.27327306, - 0.00037407, 0.00022915, 7.27289899, 0.99885736, 0.99939678, 0.49324910], 8311 [- 6.27327317, - 0.00037402, 0.00022913, 7.27289915, 0.99885750, 0.99939685, 0.49324893], 8312 [- 6.27327328, - 0.00037398, 0.00022910, 7.27289930, 0.99885764, 0.99939692, 0.49324897], 8313 [- 6.27327338, - 0.00037393, 0.00022907, 7.27289945, 0.99885778, 0.99939700, 0.49324903], 8314 [- 6.27327349, - 0.00037389, 0.00022904, 7.27289961, 0.99885792, 0.99939707, 0.49324907], 8315 [- 6.27327360, - 0.00037384, 0.00022902, 7.27289976, 0.99885805, 0.99939714, 0.49324912], 8316 [- 6.27327371, - 0.00037380, 0.00022899, 7.27289991, 0.99885819, 0.99939722, 0.49324911], 8317 [- 6.27327382, - 0.00037375, 0.00022896, 7.27290007, 0.99885833, 0.99939729, 0.49324918], 8318 [- 6.27327392, - 0.00037371, 0.00022893, 7.27290022, 0.99885847, 0.99939736, 0.49324911], 8319 [- 6.27327403, - 0.00037366, 0.00022891, 7.27290037, 0.99885861, 0.99939743, 0.49324922], 8320 [- 6.27327414, - 0.00037362, 0.00022888, 7.27290052, 0.99885874, 0.99939751, 0.49324912], 8321 [- 6.27327425, - 0.00037357, 0.00022885, 7.27290068, 0.99885888, 0.99939758, 0.49324914], 8322 [- 6.27327436, - 0.00037353, 0.00022882, 7.27290083, 0.99885902, 0.99939765, 0.49324919], 8323 [- 6.27327446, - 0.00037348, 0.00022880, 7.27290098, 0.99885916, 0.99939772, 0.49324915], 8324 [- 6.27327457, - 0.00037344, 0.00022877, 7.27290114, 0.99885929, 0.99939780, 0.49324920], 8325 [- 6.27327468, - 0.00037339, 0.00022874, 7.27290129, 0.99885943, 0.99939787, 0.49324914], 8326 [- 6.27327479, - 0.00037335, 0.00022871, 7.27290144, 0.99885957, 0.99939794, 0.49324927], 8327 [- 6.27327490, - 0.00037330, 0.00022868, 7.27290160, 0.99885971, 0.99939801, 0.49324924], 8328 [- 6.27327500, - 0.00037326, 0.00022866, 7.27290175, 0.99885984, 0.99939809, 0.49324926], 8329 [- 6.27327511, - 0.00037321, 0.00022863, 7.27290190, 0.99885998, 0.99939816, 0.49324920], 8330 [- 6.27327522, - 0.00037317, 0.00022860, 7.27290205, 0.99886012, 0.99939823, 0.49324932], 8331 [- 6.27327533, - 0.00037312, 0.00022857, 7.27290221, 0.99886026, 0.99939831, 0.49324939], 8332 [- 6.27327543, - 0.00037308, 0.00022855, 7.27290236, 0.99886039, 0.99939838, 0.49324946], 8333 [- 6.27327554, - 0.00037303, 0.00022852, 7.27290251, 0.99886053, 0.99939845, 0.49324935], 8334 [- 6.27327565, - 0.00037299, 0.00022849, 7.27290266, 0.99886067, 0.99939852, 0.49324930], 8335 [- 6.27327576, - 0.00037294, 0.00022846, 7.27290282, 0.99886081, 0.99939860, 0.49324950], 8336 [- 6.27327586, - 0.00037290, 0.00022844, 7.27290297, 0.99886094, 0.99939867, 0.49324938], 8337 [- 6.27327597, - 0.00037285, 0.00022841, 7.27290312, 0.99886108, 0.99939874, 0.49324942], 8338 [- 6.27327608, - 0.00037281, 0.00022838, 7.27290327, 0.99886122, 0.99939881, 0.49324944], 8339 [- 6.27327619, - 0.00037276, 0.00022835, 7.27290343, 0.99886136, 0.99939888, 0.49324942], 8340 [- 6.27327629, - 0.00037272, 0.00022833, 7.27290358, 0.99886149, 0.99939896, 0.49324940], 8341 [- 6.27327640, - 0.00037267, 0.00022830, 7.27290373, 0.99886163, 0.99939903, 0.49324954], 8342 [- 6.27327651, - 0.00037263, 0.00022827, 7.27290388, 0.99886177, 0.99939910, 0.49324936], 8343 [- 6.27327662, - 0.00037258, 0.00022824, 7.27290404, 0.99886190, 0.99939917, 0.49324945], 8344 [- 6.27327672, - 0.00037254, 0.00022822, 7.27290419, 0.99886204, 0.99939925, 0.49324953], 8345 [- 6.27327683, - 0.00037249, 0.00022819, 7.27290434, 0.99886218, 0.99939932, 0.49324957], 8346 [- 6.27327694, - 0.00037245, 0.00022816, 7.27290449, 0.99886231, 0.99939939, 0.49324952], 8347 [- 6.27327705, - 0.00037240, 0.00022813, 7.27290464, 0.99886245, 0.99939946, 0.49324959], 8348 [- 6.27327715, - 0.00037236, 0.00022811, 7.27290480, 0.99886259, 0.99939954, 0.49324957], 8349 [- 6.27327726, - 0.00037231, 0.00022808, 7.27290495, 0.99886273, 0.99939961, 0.49324964], 8350 [- 6.27327737, - 0.00037227, 0.00022805, 7.27290510, 0.99886286, 0.99939968, 0.49324963], 8351 [- 6.27327747, - 0.00037222, 0.00022802, 7.27290525, 0.99886300, 0.99939975, 0.49324974], 8352 [- 6.27327758, - 0.00037218, 0.00022800, 7.27290540, 0.99886314, 0.99939982, 0.49324966], 8353 [- 6.27327769, - 0.00037213, 0.00022797, 7.27290556, 0.99886327, 0.99939990, 0.49324952], 8354 [- 6.27327780, - 0.00037209, 0.00022794, 7.27290571, 0.99886341, 0.99939997, 0.49324969], 8355 [- 6.27327790, - 0.00037204, 0.00022791, 7.27290586, 0.99886355, 0.99940004, 0.49324970], 8356 [- 6.27327801, - 0.00037200, 0.00022789, 7.27290601, 0.99886368, 0.99940011, 0.49324976], 8357 [- 6.27327812, - 0.00037195, 0.00022786, 7.27290616, 0.99886382, 0.99940019, 0.49324984], 8358 [- 6.27327822, - 0.00037191, 0.00022783, 7.27290631, 0.99886396, 0.99940026, 0.49324963], 8359 [- 6.27327833, - 0.00037187, 0.00022781, 7.27290647, 0.99886409, 0.99940033, 0.49324968], 8360 [- 6.27327844, - 0.00037182, 0.00022778, 7.27290662, 0.99886423, 0.99940040, 0.49324978], 8361 [- 6.27327855, - 0.00037178, 0.00022775, 7.27290677, 0.99886436, 0.99940047, 0.49324985], 8362 [- 6.27327865, - 0.00037173, 0.00022772, 7.27290692, 0.99886450, 0.99940055, 0.49325000], 8363 [- 6.27327876, - 0.00037169, 0.00022770, 7.27290707, 0.99886464, 0.99940062, 0.49324984], 8364 [- 6.27327887, - 0.00037164, 0.00022767, 7.27290722, 0.99886477, 0.99940069, 0.49324982], 8365 [- 6.27327897, - 0.00037160, 0.00022764, 7.27290737, 0.99886491, 0.99940076, 0.49324988], 8366 [- 6.27327908, - 0.00037155, 0.00022761, 7.27290753, 0.99886505, 0.99940083, 0.49325015], 8367 [- 6.27327919, - 0.00037151, 0.00022759, 7.27290768, 0.99886518, 0.99940091, 0.49324977], 8368 [- 6.27327929, - 0.00037146, 0.00022756, 7.27290783, 0.99886532, 0.99940098, 0.49324993], 8369 [- 6.27327940, - 0.00037142, 0.00022753, 7.27290798, 0.99886546, 0.99940105, 0.49325002], 8370 [- 6.27327951, - 0.00037137, 0.00022750, 7.27290813, 0.99886559, 0.99940112, 0.49324999], 8371 [- 6.27327961, - 0.00037133, 0.00022748, 7.27290828, 0.99886573, 0.99940119, 0.49325000], 8372 [- 6.27327972, - 0.00037129, 0.00022745, 7.27290843, 0.99886586, 0.99940126, 0.49325006], 8373 [- 6.27327983, - 0.00037124, 0.00022742, 7.27290858, 0.99886600, 0.99940134, 0.49324994], 8374 [- 6.27327993, - 0.00037120, 0.00022740, 7.27290874, 0.99886614, 0.99940141, 0.49324986], 8375 [- 6.27328004, - 0.00037115, 0.00022737, 7.27290889, 0.99886627, 0.99940148, 0.49325009], 8376 [- 6.27328015, - 0.00037111, 0.00022734, 7.27290904, 0.99886641, 0.99940155, 0.49325012], 8377 [- 6.27328025, - 0.00037106, 0.00022731, 7.27290919, 0.99886654, 0.99940162, 0.49325015], 8378 [- 6.27328036, - 0.00037102, 0.00022729, 7.27290934, 0.99886668, 0.99940170, 0.49325010], 8379 [- 6.27328047, - 0.00037097, 0.00022726, 7.27290949, 0.99886682, 0.99940177, 0.49325020], 8380 [- 6.27328057, - 0.00037093, 0.00022723, 7.27290964, 0.99886695, 0.99940184, 0.49325004], 8381 [- 6.27328068, - 0.00037089, 0.00022720, 7.27290979, 0.99886709, 0.99940191, 0.49325014], 8382 [- 6.27328078, - 0.00037084, 0.00022718, 7.27290994, 0.99886722, 0.99940198, 0.49325025], 8383 [- 6.27328089, - 0.00037080, 0.00022715, 7.27291009, 0.99886736, 0.99940205, 0.49325008], 8384 [- 6.27328100, - 0.00037075, 0.00022712, 7.27291024, 0.99886749, 0.99940213, 0.49325032], 8385 [- 6.27328110, - 0.00037071, 0.00022710, 7.27291040, 0.99886763, 0.99940220, 0.49325016], 8386 [- 6.27328121, - 0.00037066, 0.00022707, 7.27291055, 0.99886777, 0.99940227, 0.49325010], 8387 [- 6.27328132, - 0.00037062, 0.00022704, 7.27291070, 0.99886790, 0.99940234, 0.49325006], 8388 [- 6.27328142, - 0.00037057, 0.00022701, 7.27291085, 0.99886804, 0.99940241, 0.49325022], 8389 [- 6.27328153, - 0.00037053, 0.00022699, 7.27291100, 0.99886817, 0.99940248, 0.49325031], 8390 [- 6.27328163, - 0.00037049, 0.00022696, 7.27291115, 0.99886831, 0.99940255, 0.49325037], 8391 [- 6.27328174, - 0.00037044, 0.00022693, 7.27291130, 0.99886844, 0.99940263, 0.49325027], 8392 [- 6.27328185, - 0.00037040, 0.00022691, 7.27291145, 0.99886858, 0.99940270, 0.49325034], 8393 [- 6.27328195, - 0.00037035, 0.00022688, 7.27291160, 0.99886871, 0.99940277, 0.49325020], 8394 [- 6.27328206, - 0.00037031, 0.00022685, 7.27291175, 0.99886885, 0.99940284, 0.49325035], 8395 [- 6.27328217, - 0.00037026, 0.00022682, 7.27291190, 0.99886898, 0.99940291, 0.49325022], 8396 [- 6.27328227, - 0.00037022, 0.00022680, 7.27291205, 0.99886912, 0.99940298, 0.49325038], 8397 [- 6.27328238, - 0.00037018, 0.00022677, 7.27291220, 0.99886926, 0.99940305, 0.49325045], 8398 [- 6.27328248, - 0.00037013, 0.00022674, 7.27291235, 0.99886939, 0.99940313, 0.49325055], 8399 [- 6.27328259, - 0.00037009, 0.00022672, 7.27291250, 0.99886953, 0.99940320, 0.49325042], 8400 [- 6.27328269, - 0.00037004, 0.00022669, 7.27291265, 0.99886966, 0.99940327, 0.49325036], 8401 [- 6.27328280, - 0.00037000, 0.00022666, 7.27291280, 0.99886980, 0.99940334, 0.49325057], 8402 [- 6.27328291, - 0.00036995, 0.00022663, 7.27291295, 0.99886993, 0.99940341, 0.49325047], 8403 [- 6.27328301, - 0.00036991, 0.00022661, 7.27291310, 0.99887007, 0.99940348, 0.49325050], 8404 [- 6.27328312, - 0.00036987, 0.00022658, 7.27291325, 0.99887020, 0.99940355, 0.49325044], 8405 [- 6.27328322, - 0.00036982, 0.00022655, 7.27291340, 0.99887034, 0.99940363, 0.49325060], 8406 [- 6.27328333, - 0.00036978, 0.00022653, 7.27291355, 0.99887047, 0.99940370, 0.49325046], 8407 [- 6.27328344, - 0.00036973, 0.00022650, 7.27291370, 0.99887061, 0.99940377, 0.49325049], 8408 [- 6.27328354, - 0.00036969, 0.00022647, 7.27291385, 0.99887074, 0.99940384, 0.49325054], 8409 [- 6.27328365, - 0.00036965, 0.00022644, 7.27291400, 0.99887088, 0.99940391, 0.49325051], 8410 [- 6.27328375, - 0.00036960, 0.00022642, 7.27291415, 0.99887101, 0.99940398, 0.49325068], 8411 [- 6.27328386, - 0.00036956, 0.00022639, 7.27291430, 0.99887115, 0.99940405, 0.49325059], 8412 [- 6.27328396, - 0.00036951, 0.00022636, 7.27291445, 0.99887128, 0.99940412, 0.49325082], 8413 [- 6.27328407, - 0.00036947, 0.00022634, 7.27291460, 0.99887142, 0.99940419, 0.49325077], 8414 [- 6.27328418, - 0.00036942, 0.00022631, 7.27291475, 0.99887155, 0.99940427, 0.49325076], 8415 [- 6.27328428, - 0.00036938, 0.00022628, 7.27291490, 0.99887168, 0.99940434, 0.49325073], 8416 [- 6.27328439, - 0.00036934, 0.00022626, 7.27291505, 0.99887182, 0.99940441, 0.49325073], 8417 [- 6.27328449, - 0.00036929, 0.00022623, 7.27291520, 0.99887195, 0.99940448, 0.49325059], 8418 [- 6.27328460, - 0.00036925, 0.00022620, 7.27291535, 0.99887209, 0.99940455, 0.49325071], 8419 [- 6.27328470, - 0.00036920, 0.00022617, 7.27291550, 0.99887222, 0.99940462, 0.49325075], 8420 [- 6.27328481, - 0.00036916, 0.00022615, 7.27291565, 0.99887236, 0.99940469, 0.49325074], 8421 [- 6.27328491, - 0.00036912, 0.00022612, 7.27291580, 0.99887249, 0.99940476, 0.49325076], 8422 [- 6.27328502, - 0.00036907, 0.00022609, 7.27291595, 0.99887263, 0.99940483, 0.49325069], 8423 [- 6.27328512, - 0.00036903, 0.00022607, 7.27291610, 0.99887276, 0.99940491, 0.49325089], 8424 [- 6.27328523, - 0.00036898, 0.00022604, 7.27291624, 0.99887290, 0.99940498, 0.49325087], 8425 [- 6.27328533, - 0.00036894, 0.00022601, 7.27291639, 0.99887303, 0.99940505, 0.49325089], 8426 [- 6.27328544, - 0.00036890, 0.00022599, 7.27291654, 0.99887316, 0.99940512, 0.49325087], 8427 [- 6.27328555, - 0.00036885, 0.00022596, 7.27291669, 0.99887330, 0.99940519, 0.49325085], 8428 [- 6.27328565, - 0.00036881, 0.00022593, 7.27291684, 0.99887343, 0.99940526, 0.49325080], 8429 [- 6.27328576, - 0.00036876, 0.00022590, 7.27291699, 0.99887357, 0.99940533, 0.49325071], 8430 [- 6.27328586, - 0.00036872, 0.00022588, 7.27291714, 0.99887370, 0.99940540, 0.49325095], 8431 [- 6.27328597, - 0.00036868, 0.00022585, 7.27291729, 0.99887384, 0.99940547, 0.49325080], 8432 [- 6.27328607, - 0.00036863, 0.00022582, 7.27291744, 0.99887397, 0.99940554, 0.49325088], 8433 [- 6.27328618, - 0.00036859, 0.00022580, 7.27291759, 0.99887410, 0.99940561, 0.49325100], 8434 [- 6.27328628, - 0.00036855, 0.00022577, 7.27291774, 0.99887424, 0.99940568, 0.49325106], 8435 [- 6.27328639, - 0.00036850, 0.00022574, 7.27291789, 0.99887437, 0.99940576, 0.49325085], 8436 [- 6.27328649, - 0.00036846, 0.00022572, 7.27291803, 0.99887451, 0.99940583, 0.49325087], 8437 [- 6.27328660, - 0.00036841, 0.00022569, 7.27291818, 0.99887464, 0.99940590, 0.49325084], 8438 [- 6.27328670, - 0.00036837, 0.00022566, 7.27291833, 0.99887477, 0.99940597, 0.49325118], 8439 [- 6.27328681, - 0.00036833, 0.00022564, 7.27291848, 0.99887491, 0.99940604, 0.49325112], 8440 [- 6.27328691, - 0.00036828, 0.00022561, 7.27291863, 0.99887504, 0.99940611, 0.49325104], 8441 [- 6.27328702, - 0.00036824, 0.00022558, 7.27291878, 0.99887518, 0.99940618, 0.49325104], 8442 [- 6.27328712, - 0.00036819, 0.00022556, 7.27291893, 0.99887531, 0.99940625, 0.49325116], 8443 [- 6.27328723, - 0.00036815, 0.00022553, 7.27291907, 0.99887544, 0.99940632, 0.49325111], 8444 [- 6.27328733, - 0.00036811, 0.00022550, 7.27291922, 0.99887558, 0.99940639, 0.49325116], 8445 [- 6.27328744, - 0.00036806, 0.00022547, 7.27291937, 0.99887571, 0.99940646, 0.49325108], 8446 [- 6.27328754, - 0.00036802, 0.00022545, 7.27291952, 0.99887584, 0.99940653, 0.49325111], 8447 [- 6.27328764, - 0.00036798, 0.00022542, 7.27291967, 0.99887598, 0.99940660, 0.49325113], 8448 [- 6.27328775, - 0.00036793, 0.00022539, 7.27291982, 0.99887611, 0.99940667, 0.49325130], 8449 [- 6.27328785, - 0.00036789, 0.00022537, 7.27291997, 0.99887625, 0.99940674, 0.49325114], 8450 [- 6.27328796, - 0.00036784, 0.00022534, 7.27292011, 0.99887638, 0.99940681, 0.49325125], 8451 [- 6.27328806, - 0.00036780, 0.00022531, 7.27292026, 0.99887651, 0.99940689, 0.49325120], 8452 [- 6.27328817, - 0.00036776, 0.00022529, 7.27292041, 0.99887665, 0.99940696, 0.49325118], 8453 [- 6.27328827, - 0.00036771, 0.00022526, 7.27292056, 0.99887678, 0.99940703, 0.49325120], 8454 [- 6.27328838, - 0.00036767, 0.00022523, 7.27292071, 0.99887691, 0.99940710, 0.49325135], 8455 [- 6.27328848, - 0.00036763, 0.00022521, 7.27292086, 0.99887705, 0.99940717, 0.49325134], 8456 [- 6.27328859, - 0.00036758, 0.00022518, 7.27292100, 0.99887718, 0.99940724, 0.49325139], 8457 [- 6.27328869, - 0.00036754, 0.00022515, 7.27292115, 0.99887731, 0.99940731, 0.49325135], 8458 [- 6.27328880, - 0.00036749, 0.00022513, 7.27292130, 0.99887745, 0.99940738, 0.49325126], 8459 [- 6.27328890, - 0.00036745, 0.00022510, 7.27292145, 0.99887758, 0.99940745, 0.49325131], 8460 [- 6.27328900, - 0.00036741, 0.00022507, 7.27292160, 0.99887771, 0.99940752, 0.49325136], 8461 [- 6.27328911, - 0.00036736, 0.00022505, 7.27292174, 0.99887785, 0.99940759, 0.49325152], 8462 [- 6.27328921, - 0.00036732, 0.00022502, 7.27292189, 0.99887798, 0.99940766, 0.49325159], 8463 [- 6.27328932, - 0.00036728, 0.00022499, 7.27292204, 0.99887811, 0.99940773, 0.49325140], 8464 [- 6.27328942, - 0.00036723, 0.00022497, 7.27292219, 0.99887825, 0.99940780, 0.49325141], 8465 [- 6.27328953, - 0.00036719, 0.00022494, 7.27292234, 0.99887838, 0.99940787, 0.49325131], 8466 [- 6.27328963, - 0.00036715, 0.00022491, 7.27292248, 0.99887851, 0.99940794, 0.49325145], 8467 [- 6.27328973, - 0.00036710, 0.00022489, 7.27292263, 0.99887864, 0.99940801, 0.49325145], 8468 [- 6.27328984, - 0.00036706, 0.00022486, 7.27292278, 0.99887878, 0.99940808, 0.49325157], 8469 [- 6.27328994, - 0.00036702, 0.00022483, 7.27292293, 0.99887891, 0.99940815, 0.49325149], 8470 [- 6.27329005, - 0.00036697, 0.00022481, 7.27292307, 0.99887904, 0.99940822, 0.49325164], 8471 [- 6.27329015, - 0.00036693, 0.00022478, 7.27292322, 0.99887918, 0.99940829, 0.49325155], 8472 [- 6.27329025, - 0.00036689, 0.00022475, 7.27292337, 0.99887931, 0.99940836, 0.49325164], 8473 [- 6.27329036, - 0.00036684, 0.00022473, 7.27292352, 0.99887944, 0.99940843, 0.49325151], 8474 [- 6.27329046, - 0.00036680, 0.00022470, 7.27292366, 0.99887958, 0.99940850, 0.49325168], 8475 [- 6.27329057, - 0.00036675, 0.00022467, 7.27292381, 0.99887971, 0.99940857, 0.49325138], 8476 [- 6.27329067, - 0.00036671, 0.00022465, 7.27292396, 0.99887984, 0.99940864, 0.49325171], 8477 [- 6.27329078, - 0.00036667, 0.00022462, 7.27292411, 0.99887997, 0.99940871, 0.49325159], 8478 [- 6.27329088, - 0.00036662, 0.00022459, 7.27292425, 0.99888011, 0.99940878, 0.49325160], 8479 [- 6.27329098, - 0.00036658, 0.00022457, 7.27292440, 0.99888024, 0.99940885, 0.49325177], 8480 [- 6.27329109, - 0.00036654, 0.00022454, 7.27292455, 0.99888037, 0.99940892, 0.49325177], 8481 [- 6.27329119, - 0.00036649, 0.00022451, 7.27292470, 0.99888050, 0.99940899, 0.49325164], 8482 [- 6.27329129, - 0.00036645, 0.00022449, 7.27292484, 0.99888064, 0.99940906, 0.49325172], 8483 [- 6.27329140, - 0.00036641, 0.00022446, 7.27292499, 0.99888077, 0.99940913, 0.49325179], 8484 [- 6.27329150, - 0.00036636, 0.00022443, 7.27292514, 0.99888090, 0.99940920, 0.49325181], 8485 [- 6.27329161, - 0.00036632, 0.00022441, 7.27292529, 0.99888103, 0.99940927, 0.49325178], 8486 [- 6.27329171, - 0.00036628, 0.00022438, 7.27292543, 0.99888117, 0.99940934, 0.49325178], 8487 [- 6.27329181, - 0.00036623, 0.00022435, 7.27292558, 0.99888130, 0.99940941, 0.49325183], 8488 [- 6.27329192, - 0.00036619, 0.00022433, 7.27292573, 0.99888143, 0.99940948, 0.49325179], 8489 [- 6.27329202, - 0.00036615, 0.00022430, 7.27292587, 0.99888156, 0.99940955, 0.49325183], 8490 [- 6.27329212, - 0.00036610, 0.00022427, 7.27292602, 0.99888170, 0.99940962, 0.49325178], 8491 [- 6.27329223, - 0.00036606, 0.00022425, 7.27292617, 0.99888183, 0.99940969, 0.49325167], 8492 [- 6.27329233, - 0.00036602, 0.00022422, 7.27292631, 0.99888196, 0.99940976, 0.49325180], 8493 [- 6.27329244, - 0.00036597, 0.00022419, 7.27292646, 0.99888209, 0.99940983, 0.49325201], 8494 [- 6.27329254, - 0.00036593, 0.00022417, 7.27292661, 0.99888222, 0.99940990, 0.49325190], 8495 [- 6.27329264, - 0.00036589, 0.00022414, 7.27292675, 0.99888236, 0.99940997, 0.49325201], 8496 [- 6.27329275, - 0.00036584, 0.00022412, 7.27292690, 0.99888249, 0.99941004, 0.49325203], 8497 [- 6.27329285, - 0.00036580, 0.00022409, 7.27292705, 0.99888262, 0.99941011, 0.49325195], 8498 [- 6.27329295, - 0.00036576, 0.00022406, 7.27292720, 0.99888275, 0.99941018, 0.49325194], 8499 [- 6.27329306, - 0.00036571, 0.00022404, 7.27292734, 0.99888289, 0.99941025, 0.49325187], 8500 [- 6.27329316, - 0.00036567, 0.00022401, 7.27292749, 0.99888302, 0.99941032, 0.49325203], 8501 [- 6.27329326, - 0.00036563, 0.00022398, 7.27292764, 0.99888315, 0.99941039, 0.49325193], 8502 [- 6.27329337, - 0.00036559, 0.00022396, 7.27292778, 0.99888328, 0.99941046, 0.49325192], 8503 [- 6.27329347, - 0.00036554, 0.00022393, 7.27292793, 0.99888341, 0.99941053, 0.49325212], 8504 [- 6.27329357, - 0.00036550, 0.00022390, 7.27292807, 0.99888355, 0.99941060, 0.49325192], 8505 [- 6.27329368, - 0.00036546, 0.00022388, 7.27292822, 0.99888368, 0.99941067, 0.49325204], 8506 [- 6.27329378, - 0.00036541, 0.00022385, 7.27292837, 0.99888381, 0.99941074, 0.49325210], 8507 [- 6.27329388, - 0.00036537, 0.00022382, 7.27292851, 0.99888394, 0.99941081, 0.49325200], 8508 [- 6.27329399, - 0.00036533, 0.00022380, 7.27292866, 0.99888407, 0.99941088, 0.49325216], 8509 [- 6.27329409, - 0.00036528, 0.00022377, 7.27292881, 0.99888420, 0.99941095, 0.49325212], 8510 [- 6.27329419, - 0.00036524, 0.00022374, 7.27292895, 0.99888434, 0.99941102, 0.49325214], 8511 [- 6.27329430, - 0.00036520, 0.00022372, 7.27292910, 0.99888447, 0.99941108, 0.49325208], 8512 [- 6.27329440, - 0.00036515, 0.00022369, 7.27292925, 0.99888460, 0.99941115, 0.49325230], 8513 [- 6.27329450, - 0.00036511, 0.00022367, 7.27292939, 0.99888473, 0.99941122, 0.49325225], 8514 [- 6.27329461, - 0.00036507, 0.00022364, 7.27292954, 0.99888486, 0.99941129, 0.49325212], 8515 [- 6.27329471, - 0.00036502, 0.00022361, 7.27292968, 0.99888499, 0.99941136, 0.49325221], 8516 [- 6.27329481, - 0.00036498, 0.00022359, 7.27292983, 0.99888513, 0.99941143, 0.49325215], 8517 [- 6.27329491, - 0.00036494, 0.00022356, 7.27292998, 0.99888526, 0.99941150, 0.49325228], 8518 [- 6.27329502, - 0.00036490, 0.00022353, 7.27293012, 0.99888539, 0.99941157, 0.49325236], 8519 [- 6.27329512, - 0.00036485, 0.00022351, 7.27293027, 0.99888552, 0.99941164, 0.49325238], 8520 [- 6.27329522, - 0.00036481, 0.00022348, 7.27293041, 0.99888565, 0.99941171, 0.49325230], 8521 [- 6.27329533, - 0.00036477, 0.00022345, 7.27293056, 0.99888578, 0.99941178, 0.49325233], 8522 [- 6.27329543, - 0.00036472, 0.00022343, 7.27293071, 0.99888591, 0.99941185, 0.49325243], 8523 [- 6.27329553, - 0.00036468, 0.00022340, 7.27293085, 0.99888605, 0.99941192, 0.49325248], 8524 [- 6.27329564, - 0.00036464, 0.00022338, 7.27293100, 0.99888618, 0.99941199, 0.49325226], 8525 [- 6.27329574, - 0.00036460, 0.00022335, 7.27293114, 0.99888631, 0.99941206, 0.49325247], 8526 [- 6.27329584, - 0.00036455, 0.00022332, 7.27293129, 0.99888644, 0.99941213, 0.49325235], 8527 [- 6.27329594, - 0.00036451, 0.00022330, 7.27293143, 0.99888657, 0.99941219, 0.49325238], 8528 [- 6.27329605, - 0.00036447, 0.00022327, 7.27293158, 0.99888670, 0.99941226, 0.49325236], 8529 [- 6.27329615, - 0.00036442, 0.00022324, 7.27293173, 0.99888683, 0.99941233, 0.49325251], 8530 [- 6.27329625, - 0.00036438, 0.00022322, 7.27293187, 0.99888696, 0.99941240, 0.49325244], 8531 [- 6.27329635, - 0.00036434, 0.00022319, 7.27293202, 0.99888709, 0.99941247, 0.49325243], 8532 [- 6.27329646, - 0.00036429, 0.00022317, 7.27293216, 0.99888723, 0.99941254, 0.49325235], 8533 [- 6.27329656, - 0.00036425, 0.00022314, 7.27293231, 0.99888736, 0.99941261, 0.49325265], 8534 [- 6.27329666, - 0.00036421, 0.00022311, 7.27293245, 0.99888749, 0.99941268, 0.49325266], 8535 [- 6.27329677, - 0.00036417, 0.00022309, 7.27293260, 0.99888762, 0.99941275, 0.49325241], 8536 [- 6.27329687, - 0.00036412, 0.00022306, 7.27293274, 0.99888775, 0.99941282, 0.49325251], 8537 [- 6.27329697, - 0.00036408, 0.00022303, 7.27293289, 0.99888788, 0.99941289, 0.49325244], 8538 [- 6.27329707, - 0.00036404, 0.00022301, 7.27293304, 0.99888801, 0.99941295, 0.49325256], 8539 [- 6.27329718, - 0.00036399, 0.00022298, 7.27293318, 0.99888814, 0.99941302, 0.49325261], 8540 [- 6.27329728, - 0.00036395, 0.00022296, 7.27293333, 0.99888827, 0.99941309, 0.49325262], 8541 [- 6.27329738, - 0.00036391, 0.00022293, 7.27293347, 0.99888840, 0.99941316, 0.49325272], 8542 [- 6.27329748, - 0.00036387, 0.00022290, 7.27293362, 0.99888853, 0.99941323, 0.49325264], 8543 [- 6.27329758, - 0.00036382, 0.00022288, 7.27293376, 0.99888866, 0.99941330, 0.49325271], 8544 [- 6.27329769, - 0.00036378, 0.00022285, 7.27293391, 0.99888879, 0.99941337, 0.49325250], 8545 [- 6.27329779, - 0.00036374, 0.00022282, 7.27293405, 0.99888893, 0.99941344, 0.49325276], 8546 [- 6.27329789, - 0.00036370, 0.00022280, 7.27293420, 0.99888906, 0.99941351, 0.49325279], 8547 [- 6.27329799, - 0.00036365, 0.00022277, 7.27293434, 0.99888919, 0.99941358, 0.49325256], 8548 [- 6.27329810, - 0.00036361, 0.00022275, 7.27293449, 0.99888932, 0.99941364, 0.49325269], 8549 [- 6.27329820, - 0.00036357, 0.00022272, 7.27293463, 0.99888945, 0.99941371, 0.49325274], 8550 [- 6.27329830, - 0.00036352, 0.00022269, 7.27293478, 0.99888958, 0.99941378, 0.49325276], 8551 [- 6.27329840, - 0.00036348, 0.00022267, 7.27293492, 0.99888971, 0.99941385, 0.49325275], 8552 [- 6.27329851, - 0.00036344, 0.00022264, 7.27293507, 0.99888984, 0.99941392, 0.49325266], 8553 [- 6.27329861, - 0.00036340, 0.00022261, 7.27293521, 0.99888997, 0.99941399, 0.49325274], 8554 [- 6.27329871, - 0.00036335, 0.00022259, 7.27293536, 0.99889010, 0.99941406, 0.49325275], 8555 [- 6.27329881, - 0.00036331, 0.00022256, 7.27293550, 0.99889023, 0.99941413, 0.49325279], 8556 [- 6.27329891, - 0.00036327, 0.00022254, 7.27293565, 0.99889036, 0.99941420, 0.49325277], 8557 [- 6.27329902, - 0.00036323, 0.00022251, 7.27293579, 0.99889049, 0.99941426, 0.49325299], 8558 [- 6.27329912, - 0.00036318, 0.00022248, 7.27293593, 0.99889062, 0.99941433, 0.49325298], 8559 [- 6.27329922, - 0.00036314, 0.00022246, 7.27293608, 0.99889075, 0.99941440, 0.49325274], 8560 [- 6.27329932, - 0.00036310, 0.00022243, 7.27293622, 0.99889088, 0.99941447, 0.49325294], 8561 [- 6.27329942, - 0.00036306, 0.00022241, 7.27293637, 0.99889101, 0.99941454, 0.49325297], 8562 [- 6.27329953, - 0.00036301, 0.00022238, 7.27293651, 0.99889114, 0.99941461, 0.49325278], 8563 [- 6.27329963, - 0.00036297, 0.00022235, 7.27293666, 0.99889127, 0.99941468, 0.49325281], 8564 [- 6.27329973, - 0.00036293, 0.00022233, 7.27293680, 0.99889140, 0.99941474, 0.49325304], 8565 [- 6.27329983, - 0.00036289, 0.00022230, 7.27293695, 0.99889153, 0.99941481, 0.49325295], 8566 [- 6.27329993, - 0.00036284, 0.00022228, 7.27293709, 0.99889166, 0.99941488, 0.49325311], 8567 [- 6.27330004, - 0.00036280, 0.00022225, 7.27293723, 0.99889179, 0.99941495, 0.49325291], 8568 [- 6.27330014, - 0.00036276, 0.00022222, 7.27293738, 0.99889192, 0.99941502, 0.49325317], 8569 [- 6.27330024, - 0.00036272, 0.00022220, 7.27293752, 0.99889205, 0.99941509, 0.49325298], 8570 [- 6.27330034, - 0.00036267, 0.00022217, 7.27293767, 0.99889218, 0.99941516, 0.49325316], 8571 [- 6.27330044, - 0.00036263, 0.00022215, 7.27293781, 0.99889231, 0.99941522, 0.49325310], 8572 [- 6.27330054, - 0.00036259, 0.00022212, 7.27293796, 0.99889244, 0.99941529, 0.49325314], 8573 [- 6.27330065, - 0.00036255, 0.00022209, 7.27293810, 0.99889257, 0.99941536, 0.49325310], 8574 [- 6.27330075, - 0.00036250, 0.00022207, 7.27293824, 0.99889270, 0.99941543, 0.49325300], 8575 [- 6.27330085, - 0.00036246, 0.00022204, 7.27293839, 0.99889283, 0.99941550, 0.49325323], 8576 [- 6.27330095, - 0.00036242, 0.00022202, 7.27293853, 0.99889296, 0.99941557, 0.49325313], 8577 [- 6.27330105, - 0.00036238, 0.00022199, 7.27293868, 0.99889309, 0.99941564, 0.49325318], 8578 [- 6.27330115, - 0.00036233, 0.00022196, 7.27293882, 0.99889322, 0.99941570, 0.49325325], 8579 [- 6.27330126, - 0.00036229, 0.00022194, 7.27293896, 0.99889335, 0.99941577, 0.49325315], 8580 [- 6.27330136, - 0.00036225, 0.00022191, 7.27293911, 0.99889348, 0.99941584, 0.49325312], 8581 [- 6.27330146, - 0.00036221, 0.00022189, 7.27293925, 0.99889361, 0.99941591, 0.49325327], 8582 [- 6.27330156, - 0.00036216, 0.00022186, 7.27293940, 0.99889374, 0.99941598, 0.49325334], 8583 [- 6.27330166, - 0.00036212, 0.00022183, 7.27293954, 0.99889387, 0.99941605, 0.49325318], 8584 [- 6.27330176, - 0.00036208, 0.00022181, 7.27293968, 0.99889400, 0.99941611, 0.49325339], 8585 [- 6.27330186, - 0.00036204, 0.00022178, 7.27293983, 0.99889412, 0.99941618, 0.49325320], 8586 [- 6.27330197, - 0.00036199, 0.00022176, 7.27293997, 0.99889425, 0.99941625, 0.49325327], 8587 [- 6.27330207, - 0.00036195, 0.00022173, 7.27294011, 0.99889438, 0.99941632, 0.49325329], 8588 [- 6.27330217, - 0.00036191, 0.00022170, 7.27294026, 0.99889451, 0.99941639, 0.49325333], 8589 [- 6.27330227, - 0.00036187, 0.00022168, 7.27294040, 0.99889464, 0.99941646, 0.49325330], 8590 [- 6.27330237, - 0.00036182, 0.00022165, 7.27294055, 0.99889477, 0.99941652, 0.49325321], 8591 [- 6.27330247, - 0.00036178, 0.00022163, 7.27294069, 0.99889490, 0.99941659, 0.49325343], 8592 [- 6.27330257, - 0.00036174, 0.00022160, 7.27294083, 0.99889503, 0.99941666, 0.49325334], 8593 [- 6.27330267, - 0.00036170, 0.00022157, 7.27294098, 0.99889516, 0.99941673, 0.49325333], 8594 [- 6.27330278, - 0.00036166, 0.00022155, 7.27294112, 0.99889529, 0.99941680, 0.49325328], 8595 [- 6.27330288, - 0.00036161, 0.00022152, 7.27294126, 0.99889542, 0.99941686, 0.49325344], 8596 [- 6.27330298, - 0.00036157, 0.00022150, 7.27294141, 0.99889555, 0.99941693, 0.49325340], 8597 [- 6.27330308, - 0.00036153, 0.00022147, 7.27294155, 0.99889568, 0.99941700, 0.49325337], 8598 [- 6.27330318, - 0.00036149, 0.00022144, 7.27294169, 0.99889580, 0.99941707, 0.49325346], 8599 [- 6.27330328, - 0.00036144, 0.00022142, 7.27294184, 0.99889593, 0.99941714, 0.49325350], 8600 [- 6.27330338, - 0.00036140, 0.00022139, 7.27294198, 0.99889606, 0.99941720, 0.49325355], 8601 [- 6.27330348, - 0.00036136, 0.00022137, 7.27294212, 0.99889619, 0.99941727, 0.49325362], 8602 [- 6.27330358, - 0.00036132, 0.00022134, 7.27294227, 0.99889632, 0.99941734, 0.49325356], 8603 [- 6.27330368, - 0.00036128, 0.00022132, 7.27294241, 0.99889645, 0.99941741, 0.49325360], 8604 [- 6.27330379, - 0.00036123, 0.00022129, 7.27294255, 0.99889658, 0.99941748, 0.49325348], 8605 [- 6.27330389, - 0.00036119, 0.00022126, 7.27294269, 0.99889671, 0.99941754, 0.49325378], 8606 [- 6.27330399, - 0.00036115, 0.00022124, 7.27294284, 0.99889684, 0.99941761, 0.49325364], 8607 [- 6.27330409, - 0.00036111, 0.00022121, 7.27294298, 0.99889696, 0.99941768, 0.49325361], 8608 [- 6.27330419, - 0.00036107, 0.00022119, 7.27294312, 0.99889709, 0.99941775, 0.49325386], 8609 [- 6.27330429, - 0.00036102, 0.00022116, 7.27294327, 0.99889722, 0.99941782, 0.49325359], 8610 [- 6.27330439, - 0.00036098, 0.00022113, 7.27294341, 0.99889735, 0.99941788, 0.49325371], 8611 [- 6.27330449, - 0.00036094, 0.00022111, 7.27294355, 0.99889748, 0.99941795, 0.49325375], 8612 [- 6.27330459, - 0.00036090, 0.00022108, 7.27294370, 0.99889761, 0.99941802, 0.49325371], 8613 [- 6.27330469, - 0.00036085, 0.00022106, 7.27294384, 0.99889774, 0.99941809, 0.49325378], 8614 [- 6.27330479, - 0.00036081, 0.00022103, 7.27294398, 0.99889786, 0.99941816, 0.49325370], 8615 [- 6.27330489, - 0.00036077, 0.00022101, 7.27294412, 0.99889799, 0.99941822, 0.49325364], 8616 [- 6.27330499, - 0.00036073, 0.00022098, 7.27294427, 0.99889812, 0.99941829, 0.49325373], 8617 [- 6.27330510, - 0.00036069, 0.00022095, 7.27294441, 0.99889825, 0.99941836, 0.49325372], 8618 [- 6.27330520, - 0.00036064, 0.00022093, 7.27294455, 0.99889838, 0.99941843, 0.49325391], 8619 [- 6.27330530, - 0.00036060, 0.00022090, 7.27294469, 0.99889851, 0.99941849, 0.49325378], 8620 [- 6.27330540, - 0.00036056, 0.00022088, 7.27294484, 0.99889863, 0.99941856, 0.49325387], 8621 [- 6.27330550, - 0.00036052, 0.00022085, 7.27294498, 0.99889876, 0.99941863, 0.49325370], 8622 [- 6.27330560, - 0.00036048, 0.00022083, 7.27294512, 0.99889889, 0.99941870, 0.49325386], 8623 [- 6.27330570, - 0.00036043, 0.00022080, 7.27294526, 0.99889902, 0.99941877, 0.49325387], 8624 [- 6.27330580, - 0.00036039, 0.00022077, 7.27294541, 0.99889915, 0.99941883, 0.49325384], 8625 [- 6.27330590, - 0.00036035, 0.00022075, 7.27294555, 0.99889928, 0.99941890, 0.49325392], 8626 [- 6.27330600, - 0.00036031, 0.00022072, 7.27294569, 0.99889940, 0.99941897, 0.49325387], 8627 [- 6.27330610, - 0.00036027, 0.00022070, 7.27294583, 0.99889953, 0.99941904, 0.49325390], 8628 [- 6.27330620, - 0.00036023, 0.00022067, 7.27294598, 0.99889966, 0.99941910, 0.49325400], 8629 [- 6.27330630, - 0.00036018, 0.00022065, 7.27294612, 0.99889979, 0.99941917, 0.49325409], 8630 [- 6.27330640, - 0.00036014, 0.00022062, 7.27294626, 0.99889992, 0.99941924, 0.49325386], 8631 [- 6.27330650, - 0.00036010, 0.00022059, 7.27294640, 0.99890004, 0.99941931, 0.49325408], 8632 [- 6.27330660, - 0.00036006, 0.00022057, 7.27294654, 0.99890017, 0.99941937, 0.49325391], 8633 [- 6.27330670, - 0.00036002, 0.00022054, 7.27294669, 0.99890030, 0.99941944, 0.49325389], 8634 [- 6.27330680, - 0.00035997, 0.00022052, 7.27294683, 0.99890043, 0.99941951, 0.49325379], 8635 [- 6.27330690, - 0.00035993, 0.00022049, 7.27294697, 0.99890056, 0.99941958, 0.49325409], 8636 [- 6.27330700, - 0.00035989, 0.00022047, 7.27294711, 0.99890068, 0.99941964, 0.49325388], 8637 [- 6.27330710, - 0.00035985, 0.00022044, 7.27294726, 0.99890081, 0.99941971, 0.49325402], 8638 [- 6.27330720, - 0.00035981, 0.00022041, 7.27294740, 0.99890094, 0.99941978, 0.49325423], 8639 [- 6.27330730, - 0.00035976, 0.00022039, 7.27294754, 0.99890107, 0.99941985, 0.49325405], 8640 [- 6.27330740, - 0.00035972, 0.00022036, 7.27294768, 0.99890119, 0.99941991, 0.49325402], 8641 [- 6.27330750, - 0.00035968, 0.00022034, 7.27294782, 0.99890132, 0.99941998, 0.49325409], 8642 [- 6.27330760, - 0.00035964, 0.00022031, 7.27294796, 0.99890145, 0.99942005, 0.49325408], 8643 [- 6.27330770, - 0.00035960, 0.00022029, 7.27294811, 0.99890158, 0.99942012, 0.49325430], 8644 [- 6.27330780, - 0.00035956, 0.00022026, 7.27294825, 0.99890171, 0.99942018, 0.49325412], 8645 [- 6.27330790, - 0.00035951, 0.00022024, 7.27294839, 0.99890183, 0.99942025, 0.49325410], 8646 [- 6.27330800, - 0.00035947, 0.00022021, 7.27294853, 0.99890196, 0.99942032, 0.49325444], 8647 [- 6.27330810, - 0.00035943, 0.00022018, 7.27294867, 0.99890209, 0.99942039, 0.49325431], 8648 [- 6.27330820, - 0.00035939, 0.00022016, 7.27294882, 0.99890222, 0.99942045, 0.49325422], 8649 [- 6.27330830, - 0.00035935, 0.00022013, 7.27294896, 0.99890234, 0.99942052, 0.49325435], 8650 [- 6.27330840, - 0.00035931, 0.00022011, 7.27294910, 0.99890247, 0.99942059, 0.49325426], 8651 [- 6.27330850, - 0.00035926, 0.00022008, 7.27294924, 0.99890260, 0.99942065, 0.49325433], 8652 [- 6.27330860, - 0.00035922, 0.00022006, 7.27294938, 0.99890273, 0.99942072, 0.49325432], 8653 [- 6.27330870, - 0.00035918, 0.00022003, 7.27294952, 0.99890285, 0.99942079, 0.49325444], 8654 [- 6.27330880, - 0.00035914, 0.00022001, 7.27294966, 0.99890298, 0.99942086, 0.49325435], 8655 [- 6.27330890, - 0.00035910, 0.00021998, 7.27294981, 0.99890311, 0.99942092, 0.49325422], 8656 [- 6.27330900, - 0.00035906, 0.00021995, 7.27294995, 0.99890323, 0.99942099, 0.49325439], 8657 [- 6.27330910, - 0.00035901, 0.00021993, 7.27295009, 0.99890336, 0.99942106, 0.49325438], 8658 [- 6.27330920, - 0.00035897, 0.00021990, 7.27295023, 0.99890349, 0.99942113, 0.49325454], 8659 [- 6.27330930, - 0.00035893, 0.00021988, 7.27295037, 0.99890362, 0.99942119, 0.49325448], 8660 [- 6.27330940, - 0.00035889, 0.00021985, 7.27295051, 0.99890374, 0.99942126, 0.49325441], 8661 [- 6.27330950, - 0.00035885, 0.00021983, 7.27295065, 0.99890387, 0.99942133, 0.49325438], 8662 [- 6.27330960, - 0.00035881, 0.00021980, 7.27295079, 0.99890400, 0.99942139, 0.49325444], 8663 [- 6.27330970, - 0.00035876, 0.00021978, 7.27295094, 0.99890412, 0.99942146, 0.49325455], 8664 [- 6.27330980, - 0.00035872, 0.00021975, 7.27295108, 0.99890425, 0.99942153, 0.49325435], 8665 [- 6.27330990, - 0.00035868, 0.00021972, 7.27295122, 0.99890438, 0.99942159, 0.49325446], 8666 [- 6.27331000, - 0.00035864, 0.00021970, 7.27295136, 0.99890451, 0.99942166, 0.49325463], 8667 [- 6.27331010, - 0.00035860, 0.00021967, 7.27295150, 0.99890463, 0.99942173, 0.49325459], 8668 [- 6.27331020, - 0.00035856, 0.00021965, 7.27295164, 0.99890476, 0.99942180, 0.49325444], 8669 [- 6.27331030, - 0.00035851, 0.00021962, 7.27295178, 0.99890489, 0.99942186, 0.49325446], 8670 [- 6.27331040, - 0.00035847, 0.00021960, 7.27295192, 0.99890501, 0.99942193, 0.49325470], 8671 [- 6.27331050, - 0.00035843, 0.00021957, 7.27295206, 0.99890514, 0.99942200, 0.49325447], 8672 [- 6.27331059, - 0.00035839, 0.00021955, 7.27295220, 0.99890527, 0.99942206, 0.49325451], 8673 [- 6.27331069, - 0.00035835, 0.00021952, 7.27295235, 0.99890539, 0.99942213, 0.49325471], 8674 [- 6.27331079, - 0.00035831, 0.00021950, 7.27295249, 0.99890552, 0.99942220, 0.49325479], 8675 [- 6.27331089, - 0.00035827, 0.00021947, 7.27295263, 0.99890565, 0.99942226, 0.49325465], 8676 [- 6.27331099, - 0.00035822, 0.00021944, 7.27295277, 0.99890577, 0.99942233, 0.49325460], 8677 [- 6.27331109, - 0.00035818, 0.00021942, 7.27295291, 0.99890590, 0.99942240, 0.49325463], 8678 [- 6.27331119, - 0.00035814, 0.00021939, 7.27295305, 0.99890603, 0.99942246, 0.49325475], 8679 [- 6.27331129, - 0.00035810, 0.00021937, 7.27295319, 0.99890615, 0.99942253, 0.49325484], 8680 [- 6.27331139, - 0.00035806, 0.00021934, 7.27295333, 0.99890628, 0.99942260, 0.49325478], 8681 [- 6.27331149, - 0.00035802, 0.00021932, 7.27295347, 0.99890641, 0.99942267, 0.49325476], 8682 [- 6.27331159, - 0.00035798, 0.00021929, 7.27295361, 0.99890653, 0.99942273, 0.49325474], 8683 [- 6.27331169, - 0.00035793, 0.00021927, 7.27295375, 0.99890666, 0.99942280, 0.49325471], 8684 [- 6.27331179, - 0.00035789, 0.00021924, 7.27295389, 0.99890679, 0.99942287, 0.49325479], 8685 [- 6.27331188, - 0.00035785, 0.00021922, 7.27295403, 0.99890691, 0.99942293, 0.49325475], 8686 [- 6.27331198, - 0.00035781, 0.00021919, 7.27295417, 0.99890704, 0.99942300, 0.49325483], 8687 [- 6.27331208, - 0.00035777, 0.00021917, 7.27295431, 0.99890717, 0.99942307, 0.49325488], 8688 [- 6.27331218, - 0.00035773, 0.00021914, 7.27295445, 0.99890729, 0.99942313, 0.49325468], 8689 [- 6.27331228, - 0.00035769, 0.00021911, 7.27295459, 0.99890742, 0.99942320, 0.49325487], 8690 [- 6.27331238, - 0.00035764, 0.00021909, 7.27295473, 0.99890754, 0.99942327, 0.49325491], 8691 [- 6.27331248, - 0.00035760, 0.00021906, 7.27295487, 0.99890767, 0.99942333, 0.49325485], 8692 [- 6.27331258, - 0.00035756, 0.00021904, 7.27295501, 0.99890780, 0.99942340, 0.49325494], 8693 [- 6.27331268, - 0.00035752, 0.00021901, 7.27295515, 0.99890792, 0.99942347, 0.49325489], 8694 [- 6.27331277, - 0.00035748, 0.00021899, 7.27295529, 0.99890805, 0.99942353, 0.49325507], 8695 [- 6.27331287, - 0.00035744, 0.00021896, 7.27295544, 0.99890818, 0.99942360, 0.49325487], 8696 [- 6.27331297, - 0.00035740, 0.00021894, 7.27295558, 0.99890830, 0.99942367, 0.49325485], 8697 [- 6.27331307, - 0.00035736, 0.00021891, 7.27295572, 0.99890843, 0.99942373, 0.49325494], 8698 [- 6.27331317, - 0.00035731, 0.00021889, 7.27295586, 0.99890855, 0.99942380, 0.49325502], 8699 [- 6.27331327, - 0.00035727, 0.00021886, 7.27295600, 0.99890868, 0.99942386, 0.49325506], 8700 [- 6.27331337, - 0.00035723, 0.00021884, 7.27295614, 0.99890881, 0.99942393, 0.49325501], 8701 [- 6.27331347, - 0.00035719, 0.00021881, 7.27295628, 0.99890893, 0.99942400, 0.49325503], 8702 [- 6.27331356, - 0.00035715, 0.00021879, 7.27295642, 0.99890906, 0.99942406, 0.49325490], 8703 [- 6.27331366, - 0.00035711, 0.00021876, 7.27295655, 0.99890918, 0.99942413, 0.49325500], 8704 [- 6.27331376, - 0.00035707, 0.00021874, 7.27295669, 0.99890931, 0.99942420, 0.49325510], 8705 [- 6.27331386, - 0.00035703, 0.00021871, 7.27295683, 0.99890943, 0.99942426, 0.49325499], 8706 [- 6.27331396, - 0.00035698, 0.00021869, 7.27295697, 0.99890956, 0.99942433, 0.49325505], 8707 [- 6.27331406, - 0.00035694, 0.00021866, 7.27295711, 0.99890969, 0.99942440, 0.49325506], 8708 [- 6.27331416, - 0.00035690, 0.00021863, 7.27295725, 0.99890981, 0.99942446, 0.49325523], 8709 [- 6.27331425, - 0.00035686, 0.00021861, 7.27295739, 0.99890994, 0.99942453, 0.49325511], 8710 [- 6.27331435, - 0.00035682, 0.00021858, 7.27295753, 0.99891006, 0.99942460, 0.49325502], 8711 [- 6.27331445, - 0.00035678, 0.00021856, 7.27295767, 0.99891019, 0.99942466, 0.49325512], 8712 [- 6.27331455, - 0.00035674, 0.00021853, 7.27295781, 0.99891032, 0.99942473, 0.49325535], 8713 [- 6.27331465, - 0.00035670, 0.00021851, 7.27295795, 0.99891044, 0.99942479, 0.49325526], 8714 [- 6.27331475, - 0.00035666, 0.00021848, 7.27295809, 0.99891057, 0.99942486, 0.49325504], 8715 [- 6.27331485, - 0.00035661, 0.00021846, 7.27295823, 0.99891069, 0.99942493, 0.49325512], 8716 [- 6.27331494, - 0.00035657, 0.00021843, 7.27295837, 0.99891082, 0.99942499, 0.49325533], 8717 [- 6.27331504, - 0.00035653, 0.00021841, 7.27295851, 0.99891094, 0.99942506, 0.49325523], 8718 [- 6.27331514, - 0.00035649, 0.00021838, 7.27295865, 0.99891107, 0.99942513, 0.49325528], 8719 [- 6.27331524, - 0.00035645, 0.00021836, 7.27295879, 0.99891119, 0.99942519, 0.49325526], 8720 [- 6.27331534, - 0.00035641, 0.00021833, 7.27295893, 0.99891132, 0.99942526, 0.49325527], 8721 [- 6.27331543, - 0.00035637, 0.00021831, 7.27295907, 0.99891144, 0.99942532, 0.49325541], 8722 [- 6.27331553, - 0.00035633, 0.00021828, 7.27295921, 0.99891157, 0.99942539, 0.49325526], 8723 [- 6.27331563, - 0.00035629, 0.00021826, 7.27295935, 0.99891169, 0.99942546, 0.49325518], 8724 [- 6.27331573, - 0.00035625, 0.00021823, 7.27295948, 0.99891182, 0.99942552, 0.49325527], 8725 [- 6.27331583, - 0.00035620, 0.00021821, 7.27295962, 0.99891195, 0.99942559, 0.49325543], 8726 [- 6.27331593, - 0.00035616, 0.00021818, 7.27295976, 0.99891207, 0.99942566, 0.49325535], 8727 [- 6.27331602, - 0.00035612, 0.00021816, 7.27295990, 0.99891220, 0.99942572, 0.49325531], 8728 [- 6.27331612, - 0.00035608, 0.00021813, 7.27296004, 0.99891232, 0.99942579, 0.49325537], 8729 [- 6.27331622, - 0.00035604, 0.00021811, 7.27296018, 0.99891245, 0.99942585, 0.49325536], 8730 [- 6.27331632, - 0.00035600, 0.00021808, 7.27296032, 0.99891257, 0.99942592, 0.49325546], 8731 [- 6.27331642, - 0.00035596, 0.00021806, 7.27296046, 0.99891270, 0.99942599, 0.49325549], 8732 [- 6.27331651, - 0.00035592, 0.00021803, 7.27296060, 0.99891282, 0.99942605, 0.49325546], 8733 [- 6.27331661, - 0.00035588, 0.00021801, 7.27296074, 0.99891295, 0.99942612, 0.49325542], 8734 [- 6.27331671, - 0.00035584, 0.00021798, 7.27296087, 0.99891307, 0.99942618, 0.49325537], 8735 [- 6.27331681, - 0.00035579, 0.00021796, 7.27296101, 0.99891320, 0.99942625, 0.49325535], 8736 [- 6.27331691, - 0.00035575, 0.00021793, 7.27296115, 0.99891332, 0.99942632, 0.49325540], 8737 [- 6.27331700, - 0.00035571, 0.00021791, 7.27296129, 0.99891345, 0.99942638, 0.49325546], 8738 [- 6.27331710, - 0.00035567, 0.00021788, 7.27296143, 0.99891357, 0.99942645, 0.49325545], 8739 [- 6.27331720, - 0.00035563, 0.00021786, 7.27296157, 0.99891370, 0.99942651, 0.49325569], 8740 [- 6.27331730, - 0.00035559, 0.00021783, 7.27296171, 0.99891382, 0.99942658, 0.49325550], 8741 [- 6.27331740, - 0.00035555, 0.00021781, 7.27296185, 0.99891395, 0.99942664, 0.49325563], 8742 [- 6.27331749, - 0.00035551, 0.00021778, 7.27296198, 0.99891407, 0.99942671, 0.49325568], 8743 [- 6.27331759, - 0.00035547, 0.00021776, 7.27296212, 0.99891420, 0.99942678, 0.49325547], 8744 [- 6.27331769, - 0.00035543, 0.00021773, 7.27296226, 0.99891432, 0.99942684, 0.49325550], 8745 [- 6.27331779, - 0.00035539, 0.00021771, 7.27296240, 0.99891444, 0.99942691, 0.49325571], 8746 [- 6.27331788, - 0.00035535, 0.00021768, 7.27296254, 0.99891457, 0.99942697, 0.49325568], 8747 [- 6.27331798, - 0.00035530, 0.00021766, 7.27296268, 0.99891469, 0.99942704, 0.49325562], 8748 [- 6.27331808, - 0.00035526, 0.00021763, 7.27296281, 0.99891482, 0.99942711, 0.49325569], 8749 [- 6.27331818, - 0.00035522, 0.00021761, 7.27296295, 0.99891494, 0.99942717, 0.49325576], 8750 [- 6.27331827, - 0.00035518, 0.00021758, 7.27296309, 0.99891507, 0.99942724, 0.49325584], 8751 [- 6.27331837, - 0.00035514, 0.00021756, 7.27296323, 0.99891519, 0.99942730, 0.49325572], 8752 [- 6.27331847, - 0.00035510, 0.00021753, 7.27296337, 0.99891532, 0.99942737, 0.49325557], 8753 [- 6.27331857, - 0.00035506, 0.00021751, 7.27296351, 0.99891544, 0.99942743, 0.49325555], 8754 [- 6.27331866, - 0.00035502, 0.00021748, 7.27296364, 0.99891557, 0.99942750, 0.49325590], 8755 [- 6.27331876, - 0.00035498, 0.00021746, 7.27296378, 0.99891569, 0.99942757, 0.49325582], 8756 [- 6.27331886, - 0.00035494, 0.00021743, 7.27296392, 0.99891581, 0.99942763, 0.49325599], 8757 [- 6.27331896, - 0.00035490, 0.00021741, 7.27296406, 0.99891594, 0.99942770, 0.49325596], 8758 [- 6.27331905, - 0.00035486, 0.00021738, 7.27296420, 0.99891606, 0.99942776, 0.49325600], 8759 [- 6.27331915, - 0.00035482, 0.00021736, 7.27296434, 0.99891619, 0.99942783, 0.49325578], 8760 [- 6.27331925, - 0.00035478, 0.00021733, 7.27296447, 0.99891631, 0.99942789, 0.49325597], 8761 [- 6.27331935, - 0.00035473, 0.00021731, 7.27296461, 0.99891644, 0.99942796, 0.49325578], 8762 [- 6.27331944, - 0.00035469, 0.00021728, 7.27296475, 0.99891656, 0.99942802, 0.49325601], 8763 [- 6.27331954, - 0.00035465, 0.00021726, 7.27296489, 0.99891668, 0.99942809, 0.49325574], 8764 [- 6.27331964, - 0.00035461, 0.00021723, 7.27296503, 0.99891681, 0.99942816, 0.49325598], 8765 [- 6.27331974, - 0.00035457, 0.00021721, 7.27296516, 0.99891693, 0.99942822, 0.49325602], 8766 [- 6.27331983, - 0.00035453, 0.00021718, 7.27296530, 0.99891706, 0.99942829, 0.49325595], 8767 [- 6.27331993, - 0.00035449, 0.00021716, 7.27296544, 0.99891718, 0.99942835, 0.49325608], 8768 [- 6.27332003, - 0.00035445, 0.00021713, 7.27296558, 0.99891730, 0.99942842, 0.49325597], 8769 [- 6.27332012, - 0.00035441, 0.00021711, 7.27296571, 0.99891743, 0.99942848, 0.49325598], 8770 [- 6.27332022, - 0.00035437, 0.00021708, 7.27296585, 0.99891755, 0.99942855, 0.49325613], 8771 [- 6.27332032, - 0.00035433, 0.00021706, 7.27296599, 0.99891768, 0.99942861, 0.49325588], 8772 [- 6.27332042, - 0.00035429, 0.00021703, 7.27296613, 0.99891780, 0.99942868, 0.49325598], 8773 [- 6.27332051, - 0.00035425, 0.00021701, 7.27296626, 0.99891792, 0.99942874, 0.49325592], 8774 [- 6.27332061, - 0.00035421, 0.00021698, 7.27296640, 0.99891805, 0.99942881, 0.49325612], 8775 [- 6.27332071, - 0.00035417, 0.00021696, 7.27296654, 0.99891817, 0.99942888, 0.49325620], 8776 [- 6.27332080, - 0.00035413, 0.00021693, 7.27296668, 0.99891830, 0.99942894, 0.49325610], 8777 [- 6.27332090, - 0.00035409, 0.00021691, 7.27296681, 0.99891842, 0.99942901, 0.49325614], 8778 [- 6.27332100, - 0.00035405, 0.00021688, 7.27296695, 0.99891854, 0.99942907, 0.49325612], 8779 [- 6.27332109, - 0.00035400, 0.00021686, 7.27296709, 0.99891867, 0.99942914, 0.49325613], 8780 [- 6.27332119, - 0.00035396, 0.00021683, 7.27296723, 0.99891879, 0.99942920, 0.49325604], 8781 [- 6.27332129, - 0.00035392, 0.00021681, 7.27296736, 0.99891891, 0.99942927, 0.49325626], 8782 [- 6.27332139, - 0.00035388, 0.00021678, 7.27296750, 0.99891904, 0.99942933, 0.49325625], 8783 [- 6.27332148, - 0.00035384, 0.00021676, 7.27296764, 0.99891916, 0.99942940, 0.49325605], 8784 [- 6.27332158, - 0.00035380, 0.00021673, 7.27296778, 0.99891928, 0.99942946, 0.49325626], 8785 [- 6.27332168, - 0.00035376, 0.00021671, 7.27296791, 0.99891941, 0.99942953, 0.49325629], 8786 [- 6.27332177, - 0.00035372, 0.00021669, 7.27296805, 0.99891953, 0.99942959, 0.49325630], 8787 [- 6.27332187, - 0.00035368, 0.00021666, 7.27296819, 0.99891966, 0.99942966, 0.49325628], 8788 [- 6.27332197, - 0.00035364, 0.00021664, 7.27296833, 0.99891978, 0.99942972, 0.49325635], 8789 [- 6.27332206, - 0.00035360, 0.00021661, 7.27296846, 0.99891990, 0.99942979, 0.49325625], 8790 [- 6.27332216, - 0.00035356, 0.00021659, 7.27296860, 0.99892003, 0.99942985, 0.49325617], 8791 [- 6.27332226, - 0.00035352, 0.00021656, 7.27296874, 0.99892015, 0.99942992, 0.49325641], 8792 [- 6.27332235, - 0.00035348, 0.00021654, 7.27296887, 0.99892027, 0.99942998, 0.49325636], 8793 [- 6.27332245, - 0.00035344, 0.00021651, 7.27296901, 0.99892040, 0.99943005, 0.49325630], 8794 [- 6.27332255, - 0.00035340, 0.00021649, 7.27296915, 0.99892052, 0.99943011, 0.49325637], 8795 [- 6.27332264, - 0.00035336, 0.00021646, 7.27296928, 0.99892064, 0.99943018, 0.49325631], 8796 [- 6.27332274, - 0.00035332, 0.00021644, 7.27296942, 0.99892077, 0.99943024, 0.49325656], 8797 [- 6.27332284, - 0.00035328, 0.00021641, 7.27296956, 0.99892089, 0.99943031, 0.49325631], 8798 [- 6.27332293, - 0.00035324, 0.00021639, 7.27296970, 0.99892101, 0.99943037, 0.49325638], 8799 [- 6.27332303, - 0.00035320, 0.00021636, 7.27296983, 0.99892114, 0.99943044, 0.49325647], 8800 [- 6.27332313, - 0.00035316, 0.00021634, 7.27296997, 0.99892126, 0.99943050, 0.49325639], 8801 [- 6.27332322, - 0.00035312, 0.00021631, 7.27297011, 0.99892138, 0.99943057, 0.49325638], 8802 [- 6.27332332, - 0.00035308, 0.00021629, 7.27297024, 0.99892150, 0.99943063, 0.49325638], 8803 [- 6.27332341, - 0.00035304, 0.00021626, 7.27297038, 0.99892163, 0.99943070, 0.49325643], 8804 [- 6.27332351, - 0.00035300, 0.00021624, 7.27297052, 0.99892175, 0.99943076, 0.49325659], 8805 [- 6.27332361, - 0.00035296, 0.00021622, 7.27297065, 0.99892187, 0.99943083, 0.49325672], 8806 [- 6.27332370, - 0.00035291, 0.00021619, 7.27297079, 0.99892200, 0.99943089, 0.49325654], 8807 [- 6.27332380, - 0.00035287, 0.00021617, 7.27297093, 0.99892212, 0.99943096, 0.49325642], 8808 [- 6.27332390, - 0.00035283, 0.00021614, 7.27297106, 0.99892224, 0.99943102, 0.49325660], 8809 [- 6.27332399, - 0.00035279, 0.00021612, 7.27297120, 0.99892237, 0.99943109, 0.49325667], 8810 [- 6.27332409, - 0.00035275, 0.00021609, 7.27297133, 0.99892249, 0.99943115, 0.49325649], 8811 [- 6.27332418, - 0.00035271, 0.00021607, 7.27297147, 0.99892261, 0.99943122, 0.49325655], 8812 [- 6.27332428, - 0.00035267, 0.00021604, 7.27297161, 0.99892273, 0.99943128, 0.49325662], 8813 [- 6.27332438, - 0.00035263, 0.00021602, 7.27297174, 0.99892286, 0.99943135, 0.49325664], 8814 [- 6.27332447, - 0.00035259, 0.00021599, 7.27297188, 0.99892298, 0.99943141, 0.49325657], 8815 [- 6.27332457, - 0.00035255, 0.00021597, 7.27297202, 0.99892310, 0.99943148, 0.49325670], 8816 [- 6.27332467, - 0.00035251, 0.00021594, 7.27297215, 0.99892322, 0.99943154, 0.49325664], 8817 [- 6.27332476, - 0.00035247, 0.00021592, 7.27297229, 0.99892335, 0.99943161, 0.49325680], 8818 [- 6.27332486, - 0.00035243, 0.00021590, 7.27297243, 0.99892347, 0.99943167, 0.49325677], 8819 [- 6.27332495, - 0.00035239, 0.00021587, 7.27297256, 0.99892359, 0.99943174, 0.49325674], 8820 [- 6.27332505, - 0.00035235, 0.00021585, 7.27297270, 0.99892371, 0.99943180, 0.49325673], 8821 [- 6.27332515, - 0.00035231, 0.00021582, 7.27297283, 0.99892384, 0.99943187, 0.49325687], 8822 [- 6.27332524, - 0.00035227, 0.00021580, 7.27297297, 0.99892396, 0.99943193, 0.49325676], 8823 [- 6.27332534, - 0.00035223, 0.00021577, 7.27297311, 0.99892408, 0.99943200, 0.49325694], 8824 [- 6.27332543, - 0.00035219, 0.00021575, 7.27297324, 0.99892420, 0.99943206, 0.49325684], 8825 [- 6.27332553, - 0.00035215, 0.00021572, 7.27297338, 0.99892433, 0.99943212, 0.49325673], 8826 [- 6.27332563, - 0.00035211, 0.00021570, 7.27297351, 0.99892445, 0.99943219, 0.49325679], 8827 [- 6.27332572, - 0.00035207, 0.00021567, 7.27297365, 0.99892457, 0.99943225, 0.49325687], 8828 [- 6.27332582, - 0.00035203, 0.00021565, 7.27297379, 0.99892469, 0.99943232, 0.49325682], 8829 [- 6.27332591, - 0.00035199, 0.00021563, 7.27297392, 0.99892482, 0.99943238, 0.49325693], 8830 [- 6.27332601, - 0.00035195, 0.00021560, 7.27297406, 0.99892494, 0.99943245, 0.49325706], 8831 [- 6.27332611, - 0.00035191, 0.00021558, 7.27297419, 0.99892506, 0.99943251, 0.49325679], 8832 [- 6.27332620, - 0.00035187, 0.00021555, 7.27297433, 0.99892518, 0.99943258, 0.49325693], 8833 [- 6.27332630, - 0.00035183, 0.00021553, 7.27297446, 0.99892531, 0.99943264, 0.49325690], 8834 [- 6.27332639, - 0.00035179, 0.00021550, 7.27297460, 0.99892543, 0.99943271, 0.49325679], 8835 [- 6.27332649, - 0.00035175, 0.00021548, 7.27297474, 0.99892555, 0.99943277, 0.49325703], 8836 [- 6.27332658, - 0.00035171, 0.00021545, 7.27297487, 0.99892567, 0.99943283, 0.49325709], 8837 [- 6.27332668, - 0.00035167, 0.00021543, 7.27297501, 0.99892579, 0.99943290, 0.49325716], 8838 [- 6.27332678, - 0.00035163, 0.00021540, 7.27297514, 0.99892592, 0.99943296, 0.49325688], 8839 [- 6.27332687, - 0.00035159, 0.00021538, 7.27297528, 0.99892604, 0.99943303, 0.49325701], 8840 [- 6.27332697, - 0.00035155, 0.00021536, 7.27297541, 0.99892616, 0.99943309, 0.49325699], 8841 [- 6.27332706, - 0.00035151, 0.00021533, 7.27297555, 0.99892628, 0.99943316, 0.49325716], 8842 [- 6.27332716, - 0.00035147, 0.00021531, 7.27297569, 0.99892640, 0.99943322, 0.49325705], 8843 [- 6.27332725, - 0.00035143, 0.00021528, 7.27297582, 0.99892653, 0.99943329, 0.49325714], 8844 [- 6.27332735, - 0.00035139, 0.00021526, 7.27297596, 0.99892665, 0.99943335, 0.49325697], 8845 [- 6.27332744, - 0.00035135, 0.00021523, 7.27297609, 0.99892677, 0.99943341, 0.49325706], 8846 [- 6.27332754, - 0.00035131, 0.00021521, 7.27297623, 0.99892689, 0.99943348, 0.49325710], 8847 [- 6.27332763, - 0.00035127, 0.00021518, 7.27297636, 0.99892701, 0.99943354, 0.49325718], 8848 [- 6.27332773, - 0.00035123, 0.00021516, 7.27297650, 0.99892714, 0.99943361, 0.49325714], 8849 [- 6.27332783, - 0.00035119, 0.00021514, 7.27297663, 0.99892726, 0.99943367, 0.49325704], 8850 [- 6.27332792, - 0.00035115, 0.00021511, 7.27297677, 0.99892738, 0.99943374, 0.49325724], 8851 [- 6.27332802, - 0.00035111, 0.00021509, 7.27297690, 0.99892750, 0.99943380, 0.49325727], 8852 [- 6.27332811, - 0.00035107, 0.00021506, 7.27297704, 0.99892762, 0.99943386, 0.49325718], 8853 [- 6.27332821, - 0.00035103, 0.00021504, 7.27297717, 0.99892774, 0.99943393, 0.49325715], 8854 [- 6.27332830, - 0.00035099, 0.00021501, 7.27297731, 0.99892787, 0.99943399, 0.49325736], 8855 [- 6.27332840, - 0.00035095, 0.00021499, 7.27297744, 0.99892799, 0.99943406, 0.49325725], 8856 [- 6.27332849, - 0.00035091, 0.00021496, 7.27297758, 0.99892811, 0.99943412, 0.49325737], 8857 [- 6.27332859, - 0.00035087, 0.00021494, 7.27297771, 0.99892823, 0.99943418, 0.49325733], 8858 [- 6.27332868, - 0.00035084, 0.00021492, 7.27297785, 0.99892835, 0.99943425, 0.49325727], 8859 [- 6.27332878, - 0.00035080, 0.00021489, 7.27297798, 0.99892847, 0.99943431, 0.49325722], 8860 [- 6.27332887, - 0.00035076, 0.00021487, 7.27297812, 0.99892859, 0.99943438, 0.49325726], 8861 [- 6.27332897, - 0.00035072, 0.00021484, 7.27297825, 0.99892872, 0.99943444, 0.49325746], 8862 [- 6.27332906, - 0.00035068, 0.00021482, 7.27297839, 0.99892884, 0.99943451, 0.49325735], 8863 [- 6.27332916, - 0.00035064, 0.00021479, 7.27297852, 0.99892896, 0.99943457, 0.49325729], 8864 [- 6.27332925, - 0.00035060, 0.00021477, 7.27297866, 0.99892908, 0.99943463, 0.49325733], 8865 [- 6.27332935, - 0.00035056, 0.00021475, 7.27297879, 0.99892920, 0.99943470, 0.49325743], 8866 [- 6.27332944, - 0.00035052, 0.00021472, 7.27297893, 0.99892932, 0.99943476, 0.49325745], 8867 [- 6.27332954, - 0.00035048, 0.00021470, 7.27297906, 0.99892944, 0.99943483, 0.49325763], 8868 [- 6.27332963, - 0.00035044, 0.00021467, 7.27297920, 0.99892956, 0.99943489, 0.49325734], 8869 [- 6.27332973, - 0.00035040, 0.00021465, 7.27297933, 0.99892969, 0.99943495, 0.49325743], 8870 [- 6.27332982, - 0.00035036, 0.00021462, 7.27297947, 0.99892981, 0.99943502, 0.49325746], 8871 [- 6.27332992, - 0.00035032, 0.00021460, 7.27297960, 0.99892993, 0.99943508, 0.49325750], 8872 [- 6.27333001, - 0.00035028, 0.00021458, 7.27297973, 0.99893005, 0.99943515, 0.49325754], 8873 [- 6.27333011, - 0.00035024, 0.00021455, 7.27297987, 0.99893017, 0.99943521, 0.49325751], 8874 [- 6.27333020, - 0.00035020, 0.00021453, 7.27298000, 0.99893029, 0.99943527, 0.49325761], 8875 [- 6.27333030, - 0.00035016, 0.00021450, 7.27298014, 0.99893041, 0.99943534, 0.49325752], 8876 [- 6.27333039, - 0.00035012, 0.00021448, 7.27298027, 0.99893053, 0.99943540, 0.49325748], 8877 [- 6.27333049, - 0.00035008, 0.00021445, 7.27298041, 0.99893065, 0.99943546, 0.49325770], 8878 [- 6.27333058, - 0.00035004, 0.00021443, 7.27298054, 0.99893078, 0.99943553, 0.49325749], 8879 [- 6.27333068, - 0.00035000, 0.00021441, 7.27298068, 0.99893090, 0.99943559, 0.49325754], 8880 [- 6.27333077, - 0.00034996, 0.00021438, 7.27298081, 0.99893102, 0.99943566, 0.49325757], 8881 [- 6.27333087, - 0.00034992, 0.00021436, 7.27298094, 0.99893114, 0.99943572, 0.49325772], 8882 [- 6.27333096, - 0.00034988, 0.00021433, 7.27298108, 0.99893126, 0.99943578, 0.49325749], 8883 [- 6.27333106, - 0.00034984, 0.00021431, 7.27298121, 0.99893138, 0.99943585, 0.49325746], 8884 [- 6.27333115, - 0.00034980, 0.00021428, 7.27298135, 0.99893150, 0.99943591, 0.49325763], 8885 [- 6.27333125, - 0.00034976, 0.00021426, 7.27298148, 0.99893162, 0.99943597, 0.49325780], 8886 [- 6.27333134, - 0.00034973, 0.00021424, 7.27298162, 0.99893174, 0.99943604, 0.49325773], 8887 [- 6.27333144, - 0.00034969, 0.00021421, 7.27298175, 0.99893186, 0.99943610, 0.49325774], 8888 [- 6.27333153, - 0.00034965, 0.00021419, 7.27298188, 0.99893198, 0.99943617, 0.49325768], 8889 [- 6.27333162, - 0.00034961, 0.00021416, 7.27298202, 0.99893210, 0.99943623, 0.49325772], 8890 [- 6.27333172, - 0.00034957, 0.00021414, 7.27298215, 0.99893223, 0.99943629, 0.49325780], 8891 [- 6.27333181, - 0.00034953, 0.00021412, 7.27298229, 0.99893235, 0.99943636, 0.49325790], 8892 [- 6.27333191, - 0.00034949, 0.00021409, 7.27298242, 0.99893247, 0.99943642, 0.49325769], 8893 [- 6.27333200, - 0.00034945, 0.00021407, 7.27298255, 0.99893259, 0.99943648, 0.49325784], 8894 [- 6.27333210, - 0.00034941, 0.00021404, 7.27298269, 0.99893271, 0.99943655, 0.49325781], 8895 [- 6.27333219, - 0.00034937, 0.00021402, 7.27298282, 0.99893283, 0.99943661, 0.49325781], 8896 [- 6.27333229, - 0.00034933, 0.00021399, 7.27298296, 0.99893295, 0.99943668, 0.49325775], 8897 [- 6.27333238, - 0.00034929, 0.00021397, 7.27298309, 0.99893307, 0.99943674, 0.49325777], 8898 [- 6.27333247, - 0.00034925, 0.00021395, 7.27298322, 0.99893319, 0.99943680, 0.49325794], 8899 [- 6.27333257, - 0.00034921, 0.00021392, 7.27298336, 0.99893331, 0.99943687, 0.49325786], 8900 [- 6.27333266, - 0.00034917, 0.00021390, 7.27298349, 0.99893343, 0.99943693, 0.49325783], 8901 [- 6.27333276, - 0.00034913, 0.00021387, 7.27298362, 0.99893355, 0.99943699, 0.49325777], 8902 [- 6.27333285, - 0.00034909, 0.00021385, 7.27298376, 0.99893367, 0.99943706, 0.49325800], 8903 [- 6.27333295, - 0.00034905, 0.00021383, 7.27298389, 0.99893379, 0.99943712, 0.49325788], 8904 [- 6.27333304, - 0.00034902, 0.00021380, 7.27298402, 0.99893391, 0.99943718, 0.49325796], 8905 [- 6.27333313, - 0.00034898, 0.00021378, 7.27298416, 0.99893403, 0.99943725, 0.49325777], 8906 [- 6.27333323, - 0.00034894, 0.00021375, 7.27298429, 0.99893415, 0.99943731, 0.49325803], 8907 [- 6.27333332, - 0.00034890, 0.00021373, 7.27298443, 0.99893427, 0.99943737, 0.49325799], 8908 [- 6.27333342, - 0.00034886, 0.00021370, 7.27298456, 0.99893439, 0.99943744, 0.49325815], 8909 [- 6.27333351, - 0.00034882, 0.00021368, 7.27298469, 0.99893451, 0.99943750, 0.49325810], 8910 [- 6.27333360, - 0.00034878, 0.00021366, 7.27298483, 0.99893463, 0.99943756, 0.49325805], 8911 [- 6.27333370, - 0.00034874, 0.00021363, 7.27298496, 0.99893475, 0.99943763, 0.49325805], 8912 [- 6.27333379, - 0.00034870, 0.00021361, 7.27298509, 0.99893487, 0.99943769, 0.49325810], 8913 [- 6.27333389, - 0.00034866, 0.00021358, 7.27298523, 0.99893499, 0.99943775, 0.49325812], 8914 [- 6.27333398, - 0.00034862, 0.00021356, 7.27298536, 0.99893511, 0.99943782, 0.49325800], 8915 [- 6.27333408, - 0.00034858, 0.00021354, 7.27298549, 0.99893523, 0.99943788, 0.49325798], 8916 [- 6.27333417, - 0.00034854, 0.00021351, 7.27298563, 0.99893535, 0.99943794, 0.49325819], 8917 [- 6.27333426, - 0.00034850, 0.00021349, 7.27298576, 0.99893547, 0.99943801, 0.49325809], 8918 [- 6.27333436, - 0.00034847, 0.00021346, 7.27298589, 0.99893559, 0.99943807, 0.49325811], 8919 [- 6.27333445, - 0.00034843, 0.00021344, 7.27298602, 0.99893571, 0.99943813, 0.49325804], 8920 [- 6.27333454, - 0.00034839, 0.00021342, 7.27298616, 0.99893583, 0.99943820, 0.49325814], 8921 [- 6.27333464, - 0.00034835, 0.00021339, 7.27298629, 0.99893595, 0.99943826, 0.49325817], 8922 [- 6.27333473, - 0.00034831, 0.00021337, 7.27298642, 0.99893607, 0.99943832, 0.49325810], 8923 [- 6.27333483, - 0.00034827, 0.00021334, 7.27298656, 0.99893619, 0.99943839, 0.49325810], 8924 [- 6.27333492, - 0.00034823, 0.00021332, 7.27298669, 0.99893631, 0.99943845, 0.49325813], 8925 [- 6.27333501, - 0.00034819, 0.00021330, 7.27298682, 0.99893643, 0.99943851, 0.49325821], 8926 [- 6.27333511, - 0.00034815, 0.00021327, 7.27298696, 0.99893655, 0.99943858, 0.49325825], 8927 [- 6.27333520, - 0.00034811, 0.00021325, 7.27298709, 0.99893667, 0.99943864, 0.49325802], 8928 [- 6.27333530, - 0.00034807, 0.00021322, 7.27298722, 0.99893679, 0.99943870, 0.49325839], 8929 [- 6.27333539, - 0.00034803, 0.00021320, 7.27298735, 0.99893691, 0.99943877, 0.49325824], 8930 [- 6.27333548, - 0.00034800, 0.00021318, 7.27298749, 0.99893703, 0.99943883, 0.49325827], 8931 [- 6.27333558, - 0.00034796, 0.00021315, 7.27298762, 0.99893715, 0.99943889, 0.49325830], 8932 [- 6.27333567, - 0.00034792, 0.00021313, 7.27298775, 0.99893727, 0.99943895, 0.49325817], 8933 [- 6.27333576, - 0.00034788, 0.00021310, 7.27298789, 0.99893739, 0.99943902, 0.49325841], 8934 [- 6.27333586, - 0.00034784, 0.00021308, 7.27298802, 0.99893751, 0.99943908, 0.49325836], 8935 [- 6.27333595, - 0.00034780, 0.00021306, 7.27298815, 0.99893763, 0.99943914, 0.49325836], 8936 [- 6.27333604, - 0.00034776, 0.00021303, 7.27298828, 0.99893774, 0.99943921, 0.49325838], 8937 [- 6.27333614, - 0.00034772, 0.00021301, 7.27298842, 0.99893786, 0.99943927, 0.49325845], 8938 [- 6.27333623, - 0.00034768, 0.00021298, 7.27298855, 0.99893798, 0.99943933, 0.49325848], 8939 [- 6.27333632, - 0.00034764, 0.00021296, 7.27298868, 0.99893810, 0.99943940, 0.49325833], 8940 [- 6.27333642, - 0.00034760, 0.00021294, 7.27298881, 0.99893822, 0.99943946, 0.49325843], 8941 [- 6.27333651, - 0.00034757, 0.00021291, 7.27298895, 0.99893834, 0.99943952, 0.49325849], 8942 [- 6.27333661, - 0.00034753, 0.00021289, 7.27298908, 0.99893846, 0.99943958, 0.49325841], 8943 [- 6.27333670, - 0.00034749, 0.00021286, 7.27298921, 0.99893858, 0.99943965, 0.49325856], 8944 [- 6.27333679, - 0.00034745, 0.00021284, 7.27298934, 0.99893870, 0.99943971, 0.49325841], 8945 [- 6.27333689, - 0.00034741, 0.00021282, 7.27298948, 0.99893882, 0.99943977, 0.49325845], 8946 [- 6.27333698, - 0.00034737, 0.00021279, 7.27298961, 0.99893894, 0.99943984, 0.49325852], 8947 [- 6.27333707, - 0.00034733, 0.00021277, 7.27298974, 0.99893906, 0.99943990, 0.49325863], 8948 [- 6.27333717, - 0.00034729, 0.00021275, 7.27298987, 0.99893918, 0.99943996, 0.49325866], 8949 [- 6.27333726, - 0.00034725, 0.00021272, 7.27299000, 0.99893929, 0.99944002, 0.49325856], 8950 [- 6.27333735, - 0.00034721, 0.00021270, 7.27299014, 0.99893941, 0.99944009, 0.49325854], 8951 [- 6.27333745, - 0.00034718, 0.00021267, 7.27299027, 0.99893953, 0.99944015, 0.49325858], 8952 [- 6.27333754, - 0.00034714, 0.00021265, 7.27299040, 0.99893965, 0.99944021, 0.49325856], 8953 [- 6.27333763, - 0.00034710, 0.00021263, 7.27299053, 0.99893977, 0.99944028, 0.49325873], 8954 [- 6.27333772, - 0.00034706, 0.00021260, 7.27299067, 0.99893989, 0.99944034, 0.49325877], 8955 [- 6.27333782, - 0.00034702, 0.00021258, 7.27299080, 0.99894001, 0.99944040, 0.49325864], 8956 [- 6.27333791, - 0.00034698, 0.00021255, 7.27299093, 0.99894013, 0.99944046, 0.49325857], 8957 [- 6.27333800, - 0.00034694, 0.00021253, 7.27299106, 0.99894025, 0.99944053, 0.49325852], 8958 [- 6.27333810, - 0.00034690, 0.00021251, 7.27299119, 0.99894036, 0.99944059, 0.49325872], 8959 [- 6.27333819, - 0.00034686, 0.00021248, 7.27299133, 0.99894048, 0.99944065, 0.49325865], 8960 [- 6.27333828, - 0.00034683, 0.00021246, 7.27299146, 0.99894060, 0.99944072, 0.49325884], 8961 [- 6.27333838, - 0.00034679, 0.00021244, 7.27299159, 0.99894072, 0.99944078, 0.49325864], 8962 [- 6.27333847, - 0.00034675, 0.00021241, 7.27299172, 0.99894084, 0.99944084, 0.49325865], 8963 [- 6.27333856, - 0.00034671, 0.00021239, 7.27299185, 0.99894096, 0.99944090, 0.49325871], 8964 [- 6.27333866, - 0.00034667, 0.00021236, 7.27299199, 0.99894108, 0.99944097, 0.49325862], 8965 [- 6.27333875, - 0.00034663, 0.00021234, 7.27299212, 0.99894120, 0.99944103, 0.49325892], 8966 [- 6.27333884, - 0.00034659, 0.00021232, 7.27299225, 0.99894131, 0.99944109, 0.49325886], 8967 [- 6.27333893, - 0.00034655, 0.00021229, 7.27299238, 0.99894143, 0.99944115, 0.49325892], 8968 [- 6.27333903, - 0.00034652, 0.00021227, 7.27299251, 0.99894155, 0.99944122, 0.49325878], 8969 [- 6.27333912, - 0.00034648, 0.00021225, 7.27299264, 0.99894167, 0.99944128, 0.49325893], 8970 [- 6.27333921, - 0.00034644, 0.00021222, 7.27299278, 0.99894179, 0.99944134, 0.49325882], 8971 [- 6.27333931, - 0.00034640, 0.00021220, 7.27299291, 0.99894191, 0.99944140, 0.49325880], 8972 [- 6.27333940, - 0.00034636, 0.00021217, 7.27299304, 0.99894202, 0.99944147, 0.49325884], 8973 [- 6.27333949, - 0.00034632, 0.00021215, 7.27299317, 0.99894214, 0.99944153, 0.49325871], 8974 [- 6.27333958, - 0.00034628, 0.00021213, 7.27299330, 0.99894226, 0.99944159, 0.49325888], 8975 [- 6.27333968, - 0.00034624, 0.00021210, 7.27299343, 0.99894238, 0.99944165, 0.49325907], 8976 [- 6.27333977, - 0.00034620, 0.00021208, 7.27299356, 0.99894250, 0.99944172, 0.49325884], 8977 [- 6.27333986, - 0.00034617, 0.00021206, 7.27299370, 0.99894262, 0.99944178, 0.49325906], 8978 [- 6.27333995, - 0.00034613, 0.00021203, 7.27299383, 0.99894273, 0.99944184, 0.49325903], 8979 [- 6.27334005, - 0.00034609, 0.00021201, 7.27299396, 0.99894285, 0.99944190, 0.49325895], 8980 [- 6.27334014, - 0.00034605, 0.00021198, 7.27299409, 0.99894297, 0.99944197, 0.49325883], 8981 [- 6.27334023, - 0.00034601, 0.00021196, 7.27299422, 0.99894309, 0.99944203, 0.49325893], 8982 [- 6.27334033, - 0.00034597, 0.00021194, 7.27299435, 0.99894321, 0.99944209, 0.49325903], 8983 [- 6.27334042, - 0.00034593, 0.00021191, 7.27299448, 0.99894333, 0.99944215, 0.49325919], 8984 [- 6.27334051, - 0.00034590, 0.00021189, 7.27299461, 0.99894344, 0.99944222, 0.49325911], 8985 [- 6.27334060, - 0.00034586, 0.00021187, 7.27299475, 0.99894356, 0.99944228, 0.49325916], 8986 [- 6.27334070, - 0.00034582, 0.00021184, 7.27299488, 0.99894368, 0.99944234, 0.49325910], 8987 [- 6.27334079, - 0.00034578, 0.00021182, 7.27299501, 0.99894380, 0.99944240, 0.49325905], 8988 [- 6.27334088, - 0.00034574, 0.00021179, 7.27299514, 0.99894392, 0.99944246, 0.49325907], 8989 [- 6.27334097, - 0.00034570, 0.00021177, 7.27299527, 0.99894403, 0.99944253, 0.49325918], 8990 [- 6.27334107, - 0.00034566, 0.00021175, 7.27299540, 0.99894415, 0.99944259, 0.49325910], 8991 [- 6.27334116, - 0.00034563, 0.00021172, 7.27299553, 0.99894427, 0.99944265, 0.49325909], 8992 [- 6.27334125, - 0.00034559, 0.00021170, 7.27299566, 0.99894439, 0.99944271, 0.49325903], 8993 [- 6.27334134, - 0.00034555, 0.00021168, 7.27299579, 0.99894451, 0.99944278, 0.49325934], 8994 [- 6.27334143, - 0.00034551, 0.00021165, 7.27299593, 0.99894462, 0.99944284, 0.49325921], 8995 [- 6.27334153, - 0.00034547, 0.00021163, 7.27299606, 0.99894474, 0.99944290, 0.49325916], 8996 [- 6.27334162, - 0.00034543, 0.00021161, 7.27299619, 0.99894486, 0.99944296, 0.49325905], 8997 [- 6.27334171, - 0.00034539, 0.00021158, 7.27299632, 0.99894498, 0.99944302, 0.49325932], 8998 [- 6.27334180, - 0.00034536, 0.00021156, 7.27299645, 0.99894509, 0.99944309, 0.49325918], 8999 [- 6.27334190, - 0.00034532, 0.00021153, 7.27299658, 0.99894521, 0.99944315, 0.49325928], 9000 [- 6.27334199, - 0.00034528, 0.00021151, 7.27299671, 0.99894533, 0.99944321, 0.49325927], 9001 [- 6.27334208, - 0.00034524, 0.00021149, 7.27299684, 0.99894545, 0.99944327, 0.49325910], 9002 [- 6.27334217, - 0.00034520, 0.00021146, 7.27299697, 0.99894557, 0.99944334, 0.49325933], 9003 [- 6.27334226, - 0.00034516, 0.00021144, 7.27299710, 0.99894568, 0.99944340, 0.49325931], 9004 [- 6.27334236, - 0.00034512, 0.00021142, 7.27299723, 0.99894580, 0.99944346, 0.49325913], 9005 [- 6.27334245, - 0.00034509, 0.00021139, 7.27299736, 0.99894592, 0.99944352, 0.49325935], 9006 [- 6.27334254, - 0.00034505, 0.00021137, 7.27299749, 0.99894604, 0.99944358, 0.49325926], 9007 [- 6.27334263, - 0.00034501, 0.00021135, 7.27299762, 0.99894615, 0.99944365, 0.49325931], 9008 [- 6.27334273, - 0.00034497, 0.00021132, 7.27299776, 0.99894627, 0.99944371, 0.49325923], 9009 [- 6.27334282, - 0.00034493, 0.00021130, 7.27299789, 0.99894639, 0.99944377, 0.49325932], 9010 [- 6.27334291, - 0.00034489, 0.00021128, 7.27299802, 0.99894651, 0.99944383, 0.49325937], 9011 [- 6.27334300, - 0.00034486, 0.00021125, 7.27299815, 0.99894662, 0.99944389, 0.49325925], 9012 [- 6.27334309, - 0.00034482, 0.00021123, 7.27299828, 0.99894674, 0.99944396, 0.49325938], 9013 [- 6.27334319, - 0.00034478, 0.00021120, 7.27299841, 0.99894686, 0.99944402, 0.49325937], 9014 [- 6.27334328, - 0.00034474, 0.00021118, 7.27299854, 0.99894697, 0.99944408, 0.49325933], 9015 [- 6.27334337, - 0.00034470, 0.00021116, 7.27299867, 0.99894709, 0.99944414, 0.49325964], 9016 [- 6.27334346, - 0.00034466, 0.00021113, 7.27299880, 0.99894721, 0.99944420, 0.49325932], 9017 [- 6.27334355, - 0.00034462, 0.00021111, 7.27299893, 0.99894733, 0.99944426, 0.49325939], 9018 [- 6.27334364, - 0.00034459, 0.00021109, 7.27299906, 0.99894744, 0.99944433, 0.49325953], 9019 [- 6.27334374, - 0.00034455, 0.00021106, 7.27299919, 0.99894756, 0.99944439, 0.49325955], 9020 [- 6.27334383, - 0.00034451, 0.00021104, 7.27299932, 0.99894768, 0.99944445, 0.49325952], 9021 [- 6.27334392, - 0.00034447, 0.00021102, 7.27299945, 0.99894780, 0.99944451, 0.49325957], 9022 [- 6.27334401, - 0.00034443, 0.00021099, 7.27299958, 0.99894791, 0.99944457, 0.49325952], 9023 [- 6.27334410, - 0.00034439, 0.00021097, 7.27299971, 0.99894803, 0.99944464, 0.49325948], 9024 [- 6.27334420, - 0.00034436, 0.00021095, 7.27299984, 0.99894815, 0.99944470, 0.49325953], 9025 [- 6.27334429, - 0.00034432, 0.00021092, 7.27299997, 0.99894826, 0.99944476, 0.49325969], 9026 [- 6.27334438, - 0.00034428, 0.00021090, 7.27300010, 0.99894838, 0.99944482, 0.49325951], 9027 [- 6.27334447, - 0.00034424, 0.00021088, 7.27300023, 0.99894850, 0.99944488, 0.49325964], 9028 [- 6.27334456, - 0.00034420, 0.00021085, 7.27300036, 0.99894861, 0.99944494, 0.49325959], 9029 [- 6.27334465, - 0.00034417, 0.00021083, 7.27300049, 0.99894873, 0.99944501, 0.49325984], 9030 [- 6.27334475, - 0.00034413, 0.00021081, 7.27300062, 0.99894885, 0.99944507, 0.49325961], 9031 [- 6.27334484, - 0.00034409, 0.00021078, 7.27300075, 0.99894897, 0.99944513, 0.49325970], 9032 [- 6.27334493, - 0.00034405, 0.00021076, 7.27300088, 0.99894908, 0.99944519, 0.49325973], 9033 [- 6.27334502, - 0.00034401, 0.00021073, 7.27300101, 0.99894920, 0.99944525, 0.49325965], 9034 [- 6.27334511, - 0.00034397, 0.00021071, 7.27300114, 0.99894932, 0.99944531, 0.49325961], 9035 [- 6.27334520, - 0.00034394, 0.00021069, 7.27300127, 0.99894943, 0.99944538, 0.49325970], 9036 [- 6.27334529, - 0.00034390, 0.00021066, 7.27300140, 0.99894955, 0.99944544, 0.49325947], 9037 [- 6.27334539, - 0.00034386, 0.00021064, 7.27300153, 0.99894967, 0.99944550, 0.49325970], 9038 [- 6.27334548, - 0.00034382, 0.00021062, 7.27300166, 0.99894978, 0.99944556, 0.49325986], 9039 [- 6.27334557, - 0.00034378, 0.00021059, 7.27300179, 0.99894990, 0.99944562, 0.49325975], 9040 [- 6.27334566, - 0.00034374, 0.00021057, 7.27300192, 0.99895002, 0.99944568, 0.49325973], 9041 [- 6.27334575, - 0.00034371, 0.00021055, 7.27300205, 0.99895013, 0.99944575, 0.49325990], 9042 [- 6.27334584, - 0.00034367, 0.00021052, 7.27300217, 0.99895025, 0.99944581, 0.49325987], 9043 [- 6.27334593, - 0.00034363, 0.00021050, 7.27300230, 0.99895037, 0.99944587, 0.49325975], 9044 [- 6.27334603, - 0.00034359, 0.00021048, 7.27300243, 0.99895048, 0.99944593, 0.49325986], 9045 [- 6.27334612, - 0.00034355, 0.00021045, 7.27300256, 0.99895060, 0.99944599, 0.49325980], 9046 [- 6.27334621, - 0.00034352, 0.00021043, 7.27300269, 0.99895072, 0.99944605, 0.49325999], 9047 [- 6.27334630, - 0.00034348, 0.00021041, 7.27300282, 0.99895083, 0.99944611, 0.49326005], 9048 [- 6.27334639, - 0.00034344, 0.00021038, 7.27300295, 0.99895095, 0.99944618, 0.49325989], 9049 [- 6.27334648, - 0.00034340, 0.00021036, 7.27300308, 0.99895106, 0.99944624, 0.49325982], 9050 [- 6.27334657, - 0.00034336, 0.00021034, 7.27300321, 0.99895118, 0.99944630, 0.49326004], 9051 [- 6.27334666, - 0.00034333, 0.00021031, 7.27300334, 0.99895130, 0.99944636, 0.49325987], 9052 [- 6.27334676, - 0.00034329, 0.00021029, 7.27300347, 0.99895141, 0.99944642, 0.49326003], 9053 [- 6.27334685, - 0.00034325, 0.00021027, 7.27300360, 0.99895153, 0.99944648, 0.49325986], 9054 [- 6.27334694, - 0.00034321, 0.00021024, 7.27300373, 0.99895165, 0.99944654, 0.49326013], 9055 [- 6.27334703, - 0.00034317, 0.00021022, 7.27300386, 0.99895176, 0.99944661, 0.49326001], 9056 [- 6.27334712, - 0.00034313, 0.00021020, 7.27300399, 0.99895188, 0.99944667, 0.49325997], 9057 [- 6.27334721, - 0.00034310, 0.00021017, 7.27300411, 0.99895199, 0.99944673, 0.49325982], 9058 [- 6.27334730, - 0.00034306, 0.00021015, 7.27300424, 0.99895211, 0.99944679, 0.49326004], 9059 [- 6.27334739, - 0.00034302, 0.00021013, 7.27300437, 0.99895223, 0.99944685, 0.49326000], 9060 [- 6.27334748, - 0.00034298, 0.00021010, 7.27300450, 0.99895234, 0.99944691, 0.49326002], 9061 [- 6.27334758, - 0.00034294, 0.00021008, 7.27300463, 0.99895246, 0.99944697, 0.49326019], 9062 [- 6.27334767, - 0.00034291, 0.00021006, 7.27300476, 0.99895258, 0.99944704, 0.49326022], 9063 [- 6.27334776, - 0.00034287, 0.00021003, 7.27300489, 0.99895269, 0.99944710, 0.49325991], 9064 [- 6.27334785, - 0.00034283, 0.00021001, 7.27300502, 0.99895281, 0.99944716, 0.49326017], 9065 [- 6.27334794, - 0.00034279, 0.00020999, 7.27300515, 0.99895292, 0.99944722, 0.49326012], 9066 [- 6.27334803, - 0.00034276, 0.00020996, 7.27300527, 0.99895304, 0.99944728, 0.49326022], 9067 [- 6.27334812, - 0.00034272, 0.00020994, 7.27300540, 0.99895316, 0.99944734, 0.49326001], 9068 [- 6.27334821, - 0.00034268, 0.00020992, 7.27300553, 0.99895327, 0.99944740, 0.49326024], 9069 [- 6.27334830, - 0.00034264, 0.00020989, 7.27300566, 0.99895339, 0.99944746, 0.49326021], 9070 [- 6.27334839, - 0.00034260, 0.00020987, 7.27300579, 0.99895350, 0.99944753, 0.49326029], 9071 [- 6.27334848, - 0.00034257, 0.00020985, 7.27300592, 0.99895362, 0.99944759, 0.49326016], 9072 [- 6.27334857, - 0.00034253, 0.00020983, 7.27300605, 0.99895373, 0.99944765, 0.49326016], 9073 [- 6.27334867, - 0.00034249, 0.00020980, 7.27300618, 0.99895385, 0.99944771, 0.49326045], 9074 [- 6.27334876, - 0.00034245, 0.00020978, 7.27300630, 0.99895397, 0.99944777, 0.49326011], 9075 [- 6.27334885, - 0.00034241, 0.00020976, 7.27300643, 0.99895408, 0.99944783, 0.49326023], 9076 [- 6.27334894, - 0.00034238, 0.00020973, 7.27300656, 0.99895420, 0.99944789, 0.49326007], 9077 [- 6.27334903, - 0.00034234, 0.00020971, 7.27300669, 0.99895431, 0.99944795, 0.49326021], 9078 [- 6.27334912, - 0.00034230, 0.00020969, 7.27300682, 0.99895443, 0.99944801, 0.49326027], 9079 [- 6.27334921, - 0.00034226, 0.00020966, 7.27300695, 0.99895454, 0.99944807, 0.49326040], 9080 [- 6.27334930, - 0.00034222, 0.00020964, 7.27300708, 0.99895466, 0.99944814, 0.49326032], 9081 [- 6.27334939, - 0.00034219, 0.00020962, 7.27300720, 0.99895478, 0.99944820, 0.49326028], 9082 [- 6.27334948, - 0.00034215, 0.00020959, 7.27300733, 0.99895489, 0.99944826, 0.49326022], 9083 [- 6.27334957, - 0.00034211, 0.00020957, 7.27300746, 0.99895501, 0.99944832, 0.49326044], 9084 [- 6.27334966, - 0.00034207, 0.00020955, 7.27300759, 0.99895512, 0.99944838, 0.49326036], 9085 [- 6.27334975, - 0.00034204, 0.00020952, 7.27300772, 0.99895524, 0.99944844, 0.49326052], 9086 [- 6.27334984, - 0.00034200, 0.00020950, 7.27300785, 0.99895535, 0.99944850, 0.49326050], 9087 [- 6.27334993, - 0.00034196, 0.00020948, 7.27300797, 0.99895547, 0.99944856, 0.49326047], 9088 [- 6.27335002, - 0.00034192, 0.00020945, 7.27300810, 0.99895558, 0.99944862, 0.49326049], 9089 [- 6.27335011, - 0.00034188, 0.00020943, 7.27300823, 0.99895570, 0.99944868, 0.49326038], 9090 [- 6.27335021, - 0.00034185, 0.00020941, 7.27300836, 0.99895582, 0.99944875, 0.49326054], 9091 [- 6.27335030, - 0.00034181, 0.00020938, 7.27300849, 0.99895593, 0.99944881, 0.49326041], 9092 [- 6.27335039, - 0.00034177, 0.00020936, 7.27300861, 0.99895605, 0.99944887, 0.49326059], 9093 [- 6.27335048, - 0.00034173, 0.00020934, 7.27300874, 0.99895616, 0.99944893, 0.49326058], 9094 [- 6.27335057, - 0.00034170, 0.00020932, 7.27300887, 0.99895628, 0.99944899, 0.49326043], 9095 [- 6.27335066, - 0.00034166, 0.00020929, 7.27300900, 0.99895639, 0.99944905, 0.49326062], 9096 [- 6.27335075, - 0.00034162, 0.00020927, 7.27300913, 0.99895651, 0.99944911, 0.49326067], 9097 [- 6.27335084, - 0.00034158, 0.00020925, 7.27300925, 0.99895662, 0.99944917, 0.49326078], 9098 [- 6.27335093, - 0.00034154, 0.00020922, 7.27300938, 0.99895674, 0.99944923, 0.49326065], 9099 [- 6.27335102, - 0.00034151, 0.00020920, 7.27300951, 0.99895685, 0.99944929, 0.49326059], 9100 [- 6.27335111, - 0.00034147, 0.00020918, 7.27300964, 0.99895697, 0.99944935, 0.49326055], 9101 [- 6.27335120, - 0.00034143, 0.00020915, 7.27300977, 0.99895708, 0.99944941, 0.49326066], 9102 [- 6.27335129, - 0.00034139, 0.00020913, 7.27300989, 0.99895720, 0.99944948, 0.49326077], 9103 [- 6.27335138, - 0.00034136, 0.00020911, 7.27301002, 0.99895731, 0.99944954, 0.49326066], 9104 [- 6.27335147, - 0.00034132, 0.00020908, 7.27301015, 0.99895743, 0.99944960, 0.49326075], 9105 [- 6.27335156, - 0.00034128, 0.00020906, 7.27301028, 0.99895754, 0.99944966, 0.49326055], 9106 [- 6.27335165, - 0.00034124, 0.00020904, 7.27301040, 0.99895766, 0.99944972, 0.49326086], 9107 [- 6.27335174, - 0.00034121, 0.00020902, 7.27301053, 0.99895777, 0.99944978, 0.49326055], 9108 [- 6.27335183, - 0.00034117, 0.00020899, 7.27301066, 0.99895789, 0.99944984, 0.49326069], 9109 [- 6.27335192, - 0.00034113, 0.00020897, 7.27301079, 0.99895800, 0.99944990, 0.49326076], 9110 [- 6.27335201, - 0.00034109, 0.00020895, 7.27301092, 0.99895812, 0.99944996, 0.49326064], 9111 [- 6.27335210, - 0.00034106, 0.00020892, 7.27301104, 0.99895823, 0.99945002, 0.49326064], 9112 [- 6.27335219, - 0.00034102, 0.00020890, 7.27301117, 0.99895835, 0.99945008, 0.49326079], 9113 [- 6.27335228, - 0.00034098, 0.00020888, 7.27301130, 0.99895846, 0.99945014, 0.49326094], 9114 [- 6.27335237, - 0.00034094, 0.00020885, 7.27301143, 0.99895858, 0.99945020, 0.49326073], 9115 [- 6.27335246, - 0.00034091, 0.00020883, 7.27301155, 0.99895869, 0.99945026, 0.49326067], 9116 [- 6.27335255, - 0.00034087, 0.00020881, 7.27301168, 0.99895881, 0.99945032, 0.49326096], 9117 [- 6.27335264, - 0.00034083, 0.00020878, 7.27301181, 0.99895892, 0.99945038, 0.49326074], 9118 [- 6.27335273, - 0.00034079, 0.00020876, 7.27301194, 0.99895903, 0.99945045, 0.49326072], 9119 [- 6.27335282, - 0.00034076, 0.00020874, 7.27301206, 0.99895915, 0.99945051, 0.49326097], 9120 [- 6.27335291, - 0.00034072, 0.00020872, 7.27301219, 0.99895926, 0.99945057, 0.49326095], 9121 [- 6.27335300, - 0.00034068, 0.00020869, 7.27301232, 0.99895938, 0.99945063, 0.49326083], 9122 [- 6.27335309, - 0.00034064, 0.00020867, 7.27301244, 0.99895949, 0.99945069, 0.49326094], 9123 [- 6.27335318, - 0.00034061, 0.00020865, 7.27301257, 0.99895961, 0.99945075, 0.49326071], 9124 [- 6.27335327, - 0.00034057, 0.00020862, 7.27301270, 0.99895972, 0.99945081, 0.49326094], 9125 [- 6.27335336, - 0.00034053, 0.00020860, 7.27301283, 0.99895984, 0.99945087, 0.49326119], 9126 [- 6.27335345, - 0.00034049, 0.00020858, 7.27301295, 0.99895995, 0.99945093, 0.49326102], 9127 [- 6.27335354, - 0.00034046, 0.00020856, 7.27301308, 0.99896007, 0.99945099, 0.49326095], 9128 [- 6.27335363, - 0.00034042, 0.00020853, 7.27301321, 0.99896018, 0.99945105, 0.49326111], 9129 [- 6.27335372, - 0.00034038, 0.00020851, 7.27301333, 0.99896029, 0.99945111, 0.49326093], 9130 [- 6.27335380, - 0.00034034, 0.00020849, 7.27301346, 0.99896041, 0.99945117, 0.49326092], 9131 [- 6.27335389, - 0.00034031, 0.00020846, 7.27301359, 0.99896052, 0.99945123, 0.49326086], 9132 [- 6.27335398, - 0.00034027, 0.00020844, 7.27301372, 0.99896064, 0.99945129, 0.49326111], 9133 [- 6.27335407, - 0.00034023, 0.00020842, 7.27301384, 0.99896075, 0.99945135, 0.49326085], 9134 [- 6.27335416, - 0.00034019, 0.00020839, 7.27301397, 0.99896087, 0.99945141, 0.49326107], 9135 [- 6.27335425, - 0.00034016, 0.00020837, 7.27301410, 0.99896098, 0.99945147, 0.49326138], 9136 [- 6.27335434, - 0.00034012, 0.00020835, 7.27301422, 0.99896109, 0.99945153, 0.49326107], 9137 [- 6.27335443, - 0.00034008, 0.00020833, 7.27301435, 0.99896121, 0.99945159, 0.49326110], 9138 [- 6.27335452, - 0.00034004, 0.00020830, 7.27301448, 0.99896132, 0.99945165, 0.49326107], 9139 [- 6.27335461, - 0.00034001, 0.00020828, 7.27301460, 0.99896144, 0.99945171, 0.49326111], 9140 [- 6.27335470, - 0.00033997, 0.00020826, 7.27301473, 0.99896155, 0.99945177, 0.49326094], 9141 [- 6.27335479, - 0.00033993, 0.00020823, 7.27301486, 0.99896166, 0.99945183, 0.49326116], 9142 [- 6.27335488, - 0.00033989, 0.00020821, 7.27301498, 0.99896178, 0.99945189, 0.49326119], 9143 [- 6.27335497, - 0.00033986, 0.00020819, 7.27301511, 0.99896189, 0.99945195, 0.49326130], 9144 [- 6.27335506, - 0.00033982, 0.00020817, 7.27301524, 0.99896201, 0.99945201, 0.49326119], 9145 [- 6.27335515, - 0.00033978, 0.00020814, 7.27301536, 0.99896212, 0.99945207, 0.49326105], 9146 [- 6.27335524, - 0.00033975, 0.00020812, 7.27301549, 0.99896223, 0.99945213, 0.49326119], 9147 [- 6.27335533, - 0.00033971, 0.00020810, 7.27301562, 0.99896235, 0.99945219, 0.49326118], 9148 [- 6.27335541, - 0.00033967, 0.00020807, 7.27301574, 0.99896246, 0.99945225, 0.49326126], 9149 [- 6.27335550, - 0.00033963, 0.00020805, 7.27301587, 0.99896258, 0.99945231, 0.49326104], 9150 [- 6.27335559, - 0.00033960, 0.00020803, 7.27301600, 0.99896269, 0.99945237, 0.49326124], 9151 [- 6.27335568, - 0.00033956, 0.00020801, 7.27301612, 0.99896280, 0.99945243, 0.49326121], 9152 [- 6.27335577, - 0.00033952, 0.00020798, 7.27301625, 0.99896292, 0.99945249, 0.49326126], 9153 [- 6.27335586, - 0.00033948, 0.00020796, 7.27301638, 0.99896303, 0.99945255, 0.49326146], 9154 [- 6.27335595, - 0.00033945, 0.00020794, 7.27301650, 0.99896315, 0.99945261, 0.49326123], 9155 [- 6.27335604, - 0.00033941, 0.00020791, 7.27301663, 0.99896326, 0.99945267, 0.49326137], 9156 [- 6.27335613, - 0.00033937, 0.00020789, 7.27301675, 0.99896337, 0.99945274, 0.49326124], 9157 [- 6.27335622, - 0.00033934, 0.00020787, 7.27301688, 0.99896349, 0.99945279, 0.49326144], 9158 [- 6.27335631, - 0.00033930, 0.00020785, 7.27301701, 0.99896360, 0.99945286, 0.49326118], 9159 [- 6.27335639, - 0.00033926, 0.00020782, 7.27301713, 0.99896371, 0.99945291, 0.49326131], 9160 [- 6.27335648, - 0.00033922, 0.00020780, 7.27301726, 0.99896383, 0.99945297, 0.49326131], 9161 [- 6.27335657, - 0.00033919, 0.00020778, 7.27301739, 0.99896394, 0.99945303, 0.49326137], 9162 [- 6.27335666, - 0.00033915, 0.00020776, 7.27301751, 0.99896405, 0.99945309, 0.49326160], 9163 [- 6.27335675, - 0.00033911, 0.00020773, 7.27301764, 0.99896417, 0.99945315, 0.49326160], 9164 [- 6.27335684, - 0.00033908, 0.00020771, 7.27301776, 0.99896428, 0.99945321, 0.49326123], 9165 [- 6.27335693, - 0.00033904, 0.00020769, 7.27301789, 0.99896439, 0.99945327, 0.49326161], 9166 [- 6.27335702, - 0.00033900, 0.00020766, 7.27301802, 0.99896451, 0.99945333, 0.49326152], 9167 [- 6.27335711, - 0.00033896, 0.00020764, 7.27301814, 0.99896462, 0.99945339, 0.49326143], 9168 [- 6.27335720, - 0.00033893, 0.00020762, 7.27301827, 0.99896473, 0.99945345, 0.49326145], 9169 [- 6.27335728, - 0.00033889, 0.00020760, 7.27301839, 0.99896485, 0.99945351, 0.49326173], 9170 [- 6.27335737, - 0.00033885, 0.00020757, 7.27301852, 0.99896496, 0.99945357, 0.49326144], 9171 [- 6.27335746, - 0.00033882, 0.00020755, 7.27301865, 0.99896507, 0.99945363, 0.49326151], 9172 [- 6.27335755, - 0.00033878, 0.00020753, 7.27301877, 0.99896519, 0.99945369, 0.49326137], 9173 [- 6.27335764, - 0.00033874, 0.00020751, 7.27301890, 0.99896530, 0.99945375, 0.49326159], 9174 [- 6.27335773, - 0.00033870, 0.00020748, 7.27301902, 0.99896541, 0.99945381, 0.49326170], 9175 [- 6.27335782, - 0.00033867, 0.00020746, 7.27301915, 0.99896553, 0.99945387, 0.49326167], 9176 [- 6.27335791, - 0.00033863, 0.00020744, 7.27301927, 0.99896564, 0.99945393, 0.49326166], 9177 [- 6.27335799, - 0.00033859, 0.00020741, 7.27301940, 0.99896575, 0.99945399, 0.49326169], 9178 [- 6.27335808, - 0.00033856, 0.00020739, 7.27301953, 0.99896587, 0.99945405, 0.49326162], 9179 [- 6.27335817, - 0.00033852, 0.00020737, 7.27301965, 0.99896598, 0.99945411, 0.49326183], 9180 [- 6.27335826, - 0.00033848, 0.00020735, 7.27301978, 0.99896609, 0.99945417, 0.49326173], 9181 [- 6.27335835, - 0.00033845, 0.00020732, 7.27301990, 0.99896621, 0.99945423, 0.49326171], 9182 [- 6.27335844, - 0.00033841, 0.00020730, 7.27302003, 0.99896632, 0.99945429, 0.49326166], 9183 [- 6.27335853, - 0.00033837, 0.00020728, 7.27302015, 0.99896643, 0.99945435, 0.49326165], 9184 [- 6.27335861, - 0.00033833, 0.00020726, 7.27302028, 0.99896655, 0.99945441, 0.49326181], 9185 [- 6.27335870, - 0.00033830, 0.00020723, 7.27302041, 0.99896666, 0.99945447, 0.49326156], 9186 [- 6.27335879, - 0.00033826, 0.00020721, 7.27302053, 0.99896677, 0.99945453, 0.49326193], 9187 [- 6.27335888, - 0.00033822, 0.00020719, 7.27302066, 0.99896688, 0.99945459, 0.49326181], 9188 [- 6.27335897, - 0.00033819, 0.00020716, 7.27302078, 0.99896700, 0.99945465, 0.49326163], 9189 [- 6.27335906, - 0.00033815, 0.00020714, 7.27302091, 0.99896711, 0.99945471, 0.49326173], 9190 [- 6.27335915, - 0.00033811, 0.00020712, 7.27302103, 0.99896722, 0.99945477, 0.49326188], 9191 [- 6.27335923, - 0.00033808, 0.00020710, 7.27302116, 0.99896734, 0.99945483, 0.49326193], 9192 [- 6.27335932, - 0.00033804, 0.00020707, 7.27302128, 0.99896745, 0.99945489, 0.49326203], 9193 [- 6.27335941, - 0.00033800, 0.00020705, 7.27302141, 0.99896756, 0.99945495, 0.49326181], 9194 [- 6.27335950, - 0.00033797, 0.00020703, 7.27302153, 0.99896767, 0.99945501, 0.49326178], 9195 [- 6.27335959, - 0.00033793, 0.00020701, 7.27302166, 0.99896779, 0.99945507, 0.49326183], 9196 [- 6.27335968, - 0.00033789, 0.00020698, 7.27302178, 0.99896790, 0.99945512, 0.49326183], 9197 [- 6.27335976, - 0.00033785, 0.00020696, 7.27302191, 0.99896801, 0.99945518, 0.49326190], 9198 [- 6.27335985, - 0.00033782, 0.00020694, 7.27302203, 0.99896813, 0.99945524, 0.49326204], 9199 [- 6.27335994, - 0.00033778, 0.00020692, 7.27302216, 0.99896824, 0.99945530, 0.49326197], 9200 [- 6.27336003, - 0.00033774, 0.00020689, 7.27302228, 0.99896835, 0.99945536, 0.49326200], 9201 [- 6.27336012, - 0.00033771, 0.00020687, 7.27302241, 0.99896846, 0.99945542, 0.49326187], 9202 [- 6.27336021, - 0.00033767, 0.00020685, 7.27302253, 0.99896858, 0.99945548, 0.49326214], 9203 [- 6.27336029, - 0.00033763, 0.00020683, 7.27302266, 0.99896869, 0.99945554, 0.49326210], 9204 [- 6.27336038, - 0.00033760, 0.00020680, 7.27302278, 0.99896880, 0.99945560, 0.49326210], 9205 [- 6.27336047, - 0.00033756, 0.00020678, 7.27302291, 0.99896891, 0.99945566, 0.49326201], 9206 [- 6.27336056, - 0.00033752, 0.00020676, 7.27302303, 0.99896903, 0.99945572, 0.49326223], 9207 [- 6.27336065, - 0.00033749, 0.00020674, 7.27302316, 0.99896914, 0.99945578, 0.49326214], 9208 [- 6.27336073, - 0.00033745, 0.00020671, 7.27302328, 0.99896925, 0.99945584, 0.49326184], 9209 [- 6.27336082, - 0.00033741, 0.00020669, 7.27302341, 0.99896936, 0.99945590, 0.49326190], 9210 [- 6.27336091, - 0.00033738, 0.00020667, 7.27302353, 0.99896948, 0.99945596, 0.49326192], 9211 [- 6.27336100, - 0.00033734, 0.00020665, 7.27302366, 0.99896959, 0.99945602, 0.49326215], 9212 [- 6.27336109, - 0.00033730, 0.00020662, 7.27302378, 0.99896970, 0.99945607, 0.49326198], 9213 [- 6.27336117, - 0.00033727, 0.00020660, 7.27302391, 0.99896981, 0.99945613, 0.49326211], 9214 [- 6.27336126, - 0.00033723, 0.00020658, 7.27302403, 0.99896992, 0.99945619, 0.49326202], 9215 [- 6.27336135, - 0.00033719, 0.00020656, 7.27302416, 0.99897004, 0.99945625, 0.49326208], 9216 [- 6.27336144, - 0.00033716, 0.00020653, 7.27302428, 0.99897015, 0.99945631, 0.49326216], 9217 [- 6.27336153, - 0.00033712, 0.00020651, 7.27302441, 0.99897026, 0.99945637, 0.49326199], 9218 [- 6.27336161, - 0.00033708, 0.00020649, 7.27302453, 0.99897037, 0.99945643, 0.49326218], 9219 [- 6.27336170, - 0.00033705, 0.00020647, 7.27302466, 0.99897049, 0.99945649, 0.49326214], 9220 [- 6.27336179, - 0.00033701, 0.00020644, 7.27302478, 0.99897060, 0.99945655, 0.49326240], 9221 [- 6.27336188, - 0.00033697, 0.00020642, 7.27302491, 0.99897071, 0.99945661, 0.49326199], 9222 [- 6.27336197, - 0.00033694, 0.00020640, 7.27302503, 0.99897082, 0.99945667, 0.49326203], 9223 [- 6.27336205, - 0.00033690, 0.00020638, 7.27302515, 0.99897093, 0.99945673, 0.49326224], 9224 [- 6.27336214, - 0.00033686, 0.00020635, 7.27302528, 0.99897105, 0.99945679, 0.49326220], 9225 [- 6.27336223, - 0.00033683, 0.00020633, 7.27302540, 0.99897116, 0.99945684, 0.49326222], 9226 [- 6.27336232, - 0.00033679, 0.00020631, 7.27302553, 0.99897127, 0.99945690, 0.49326242], 9227 [- 6.27336240, - 0.00033675, 0.00020629, 7.27302565, 0.99897138, 0.99945696, 0.49326213], 9228 [- 6.27336249, - 0.00033672, 0.00020626, 7.27302578, 0.99897149, 0.99945702, 0.49326219], 9229 [- 6.27336258, - 0.00033668, 0.00020624, 7.27302590, 0.99897161, 0.99945708, 0.49326219], 9230 [- 6.27336267, - 0.00033664, 0.00020622, 7.27302603, 0.99897172, 0.99945714, 0.49326250], 9231 [- 6.27336275, - 0.00033661, 0.00020620, 7.27302615, 0.99897183, 0.99945720, 0.49326244], 9232 [- 6.27336284, - 0.00033657, 0.00020617, 7.27302627, 0.99897194, 0.99945726, 0.49326221], 9233 [- 6.27336293, - 0.00033653, 0.00020615, 7.27302640, 0.99897205, 0.99945732, 0.49326264], 9234 [- 6.27336302, - 0.00033650, 0.00020613, 7.27302652, 0.99897216, 0.99945738, 0.49326232], 9235 [- 6.27336311, - 0.00033646, 0.00020611, 7.27302665, 0.99897228, 0.99945743, 0.49326230], 9236 [- 6.27336319, - 0.00033642, 0.00020608, 7.27302677, 0.99897239, 0.99945749, 0.49326227], 9237 [- 6.27336328, - 0.00033639, 0.00020606, 7.27302689, 0.99897250, 0.99945755, 0.49326245], 9238 [- 6.27336337, - 0.00033635, 0.00020604, 7.27302702, 0.99897261, 0.99945761, 0.49326242], 9239 [- 6.27336346, - 0.00033631, 0.00020602, 7.27302714, 0.99897272, 0.99945767, 0.49326246], 9240 [- 6.27336354, - 0.00033628, 0.00020599, 7.27302727, 0.99897283, 0.99945773, 0.49326241], 9241 [- 6.27336363, - 0.00033624, 0.00020597, 7.27302739, 0.99897295, 0.99945779, 0.49326240], 9242 [- 6.27336372, - 0.00033620, 0.00020595, 7.27302751, 0.99897306, 0.99945785, 0.49326249], 9243 [- 6.27336381, - 0.00033617, 0.00020593, 7.27302764, 0.99897317, 0.99945791, 0.49326270], 9244 [- 6.27336389, - 0.00033613, 0.00020590, 7.27302776, 0.99897328, 0.99945797, 0.49326235], 9245 [- 6.27336398, - 0.00033609, 0.00020588, 7.27302789, 0.99897339, 0.99945802, 0.49326239], 9246 [- 6.27336407, - 0.00033606, 0.00020586, 7.27302801, 0.99897350, 0.99945808, 0.49326248], 9247 [- 6.27336415, - 0.00033602, 0.00020584, 7.27302813, 0.99897362, 0.99945814, 0.49326264], 9248 [- 6.27336424, - 0.00033598, 0.00020582, 7.27302826, 0.99897373, 0.99945820, 0.49326263], 9249 [- 6.27336433, - 0.00033595, 0.00020579, 7.27302838, 0.99897384, 0.99945826, 0.49326243], 9250 [- 6.27336442, - 0.00033591, 0.00020577, 7.27302851, 0.99897395, 0.99945832, 0.49326267], 9251 [- 6.27336450, - 0.00033587, 0.00020575, 7.27302863, 0.99897406, 0.99945838, 0.49326234], 9252 [- 6.27336459, - 0.00033584, 0.00020573, 7.27302875, 0.99897417, 0.99945844, 0.49326251], 9253 [- 6.27336468, - 0.00033580, 0.00020570, 7.27302888, 0.99897428, 0.99945849, 0.49326259], 9254 [- 6.27336477, - 0.00033577, 0.00020568, 7.27302900, 0.99897439, 0.99945855, 0.49326266], 9255 [- 6.27336485, - 0.00033573, 0.00020566, 7.27302912, 0.99897451, 0.99945861, 0.49326257], 9256 [- 6.27336494, - 0.00033569, 0.00020564, 7.27302925, 0.99897462, 0.99945867, 0.49326257], 9257 [- 6.27336503, - 0.00033566, 0.00020561, 7.27302937, 0.99897473, 0.99945873, 0.49326264], 9258 [- 6.27336511, - 0.00033562, 0.00020559, 7.27302949, 0.99897484, 0.99945879, 0.49326274], 9259 [- 6.27336520, - 0.00033558, 0.00020557, 7.27302962, 0.99897495, 0.99945885, 0.49326286], 9260 [- 6.27336529, - 0.00033555, 0.00020555, 7.27302974, 0.99897506, 0.99945891, 0.49326289], 9261 [- 6.27336538, - 0.00033551, 0.00020553, 7.27302986, 0.99897517, 0.99945896, 0.49326274], 9262 [- 6.27336546, - 0.00033547, 0.00020550, 7.27302999, 0.99897528, 0.99945902, 0.49326267], 9263 [- 6.27336555, - 0.00033544, 0.00020548, 7.27303011, 0.99897540, 0.99945908, 0.49326282], 9264 [- 6.27336564, - 0.00033540, 0.00020546, 7.27303023, 0.99897551, 0.99945914, 0.49326268], 9265 [- 6.27336572, - 0.00033537, 0.00020544, 7.27303036, 0.99897562, 0.99945920, 0.49326305], 9266 [- 6.27336581, - 0.00033533, 0.00020541, 7.27303048, 0.99897573, 0.99945926, 0.49326276], 9267 [- 6.27336590, - 0.00033529, 0.00020539, 7.27303060, 0.99897584, 0.99945932, 0.49326281], 9268 [- 6.27336598, - 0.00033526, 0.00020537, 7.27303073, 0.99897595, 0.99945937, 0.49326294], 9269 [- 6.27336607, - 0.00033522, 0.00020535, 7.27303085, 0.99897606, 0.99945943, 0.49326286], 9270 [- 6.27336616, - 0.00033518, 0.00020532, 7.27303097, 0.99897617, 0.99945949, 0.49326281], 9271 [- 6.27336625, - 0.00033515, 0.00020530, 7.27303110, 0.99897628, 0.99945955, 0.49326286], 9272 [- 6.27336633, - 0.00033511, 0.00020528, 7.27303122, 0.99897639, 0.99945961, 0.49326297], 9273 [- 6.27336642, - 0.00033508, 0.00020526, 7.27303134, 0.99897650, 0.99945967, 0.49326279], 9274 [- 6.27336651, - 0.00033504, 0.00020524, 7.27303147, 0.99897662, 0.99945973, 0.49326311], 9275 [- 6.27336659, - 0.00033500, 0.00020521, 7.27303159, 0.99897673, 0.99945978, 0.49326289], 9276 [- 6.27336668, - 0.00033497, 0.00020519, 7.27303171, 0.99897684, 0.99945984, 0.49326305], 9277 [- 6.27336677, - 0.00033493, 0.00020517, 7.27303184, 0.99897695, 0.99945990, 0.49326297], 9278 [- 6.27336685, - 0.00033489, 0.00020515, 7.27303196, 0.99897706, 0.99945996, 0.49326277], 9279 [- 6.27336694, - 0.00033486, 0.00020512, 7.27303208, 0.99897717, 0.99946002, 0.49326308], 9280 [- 6.27336703, - 0.00033482, 0.00020510, 7.27303221, 0.99897728, 0.99946008, 0.49326289], 9281 [- 6.27336711, - 0.00033479, 0.00020508, 7.27303233, 0.99897739, 0.99946013, 0.49326298], 9282 [- 6.27336720, - 0.00033475, 0.00020506, 7.27303245, 0.99897750, 0.99946019, 0.49326300], 9283 [- 6.27336729, - 0.00033471, 0.00020504, 7.27303257, 0.99897761, 0.99946025, 0.49326304], 9284 [- 6.27336737, - 0.00033468, 0.00020501, 7.27303270, 0.99897772, 0.99946031, 0.49326311], 9285 [- 6.27336746, - 0.00033464, 0.00020499, 7.27303282, 0.99897783, 0.99946037, 0.49326309], 9286 [- 6.27336755, - 0.00033460, 0.00020497, 7.27303294, 0.99897794, 0.99946043, 0.49326303], 9287 [- 6.27336763, - 0.00033457, 0.00020495, 7.27303306, 0.99897805, 0.99946048, 0.49326308], 9288 [- 6.27336772, - 0.00033453, 0.00020493, 7.27303319, 0.99897816, 0.99946054, 0.49326287], 9289 [- 6.27336781, - 0.00033450, 0.00020490, 7.27303331, 0.99897827, 0.99946060, 0.49326314], 9290 [- 6.27336789, - 0.00033446, 0.00020488, 7.27303343, 0.99897839, 0.99946066, 0.49326307], 9291 [- 6.27336798, - 0.00033442, 0.00020486, 7.27303356, 0.99897850, 0.99946072, 0.49326307], 9292 [- 6.27336807, - 0.00033439, 0.00020484, 7.27303368, 0.99897861, 0.99946078, 0.49326322], 9293 [- 6.27336815, - 0.00033435, 0.00020481, 7.27303380, 0.99897872, 0.99946083, 0.49326311], 9294 [- 6.27336824, - 0.00033432, 0.00020479, 7.27303392, 0.99897883, 0.99946089, 0.49326322], 9295 [- 6.27336833, - 0.00033428, 0.00020477, 7.27303405, 0.99897894, 0.99946095, 0.49326339], 9296 [- 6.27336841, - 0.00033424, 0.00020475, 7.27303417, 0.99897905, 0.99946101, 0.49326319], 9297 [- 6.27336850, - 0.00033421, 0.00020473, 7.27303429, 0.99897916, 0.99946107, 0.49326315], 9298 [- 6.27336858, - 0.00033417, 0.00020470, 7.27303441, 0.99897927, 0.99946113, 0.49326326], 9299 [- 6.27336867, - 0.00033413, 0.00020468, 7.27303454, 0.99897938, 0.99946118, 0.49326320], 9300 [- 6.27336876, - 0.00033410, 0.00020466, 7.27303466, 0.99897949, 0.99946124, 0.49326335], 9301 [- 6.27336884, - 0.00033406, 0.00020464, 7.27303478, 0.99897960, 0.99946130, 0.49326321], 9302 [- 6.27336893, - 0.00033403, 0.00020462, 7.27303490, 0.99897971, 0.99946136, 0.49326341], 9303 [- 6.27336902, - 0.00033399, 0.00020459, 7.27303503, 0.99897982, 0.99946142, 0.49326319], 9304 [- 6.27336910, - 0.00033395, 0.00020457, 7.27303515, 0.99897993, 0.99946147, 0.49326349], 9305 [- 6.27336919, - 0.00033392, 0.00020455, 7.27303527, 0.99898004, 0.99946153, 0.49326330], 9306 [- 6.27336927, - 0.00033388, 0.00020453, 7.27303539, 0.99898015, 0.99946159, 0.49326316], 9307 [- 6.27336936, - 0.00033385, 0.00020451, 7.27303551, 0.99898026, 0.99946165, 0.49326319], 9308 [- 6.27336945, - 0.00033381, 0.00020448, 7.27303564, 0.99898037, 0.99946171, 0.49326337], 9309 [- 6.27336953, - 0.00033377, 0.00020446, 7.27303576, 0.99898048, 0.99946176, 0.49326350], 9310 [- 6.27336962, - 0.00033374, 0.00020444, 7.27303588, 0.99898059, 0.99946182, 0.49326333], 9311 [- 6.27336971, - 0.00033370, 0.00020442, 7.27303600, 0.99898070, 0.99946188, 0.49326343], 9312 [- 6.27336979, - 0.00033367, 0.00020439, 7.27303613, 0.99898081, 0.99946194, 0.49326342], 9313 [- 6.27336988, - 0.00033363, 0.00020437, 7.27303625, 0.99898092, 0.99946200, 0.49326348], 9314 [- 6.27336996, - 0.00033359, 0.00020435, 7.27303637, 0.99898103, 0.99946205, 0.49326358], 9315 [- 6.27337005, - 0.00033356, 0.00020433, 7.27303649, 0.99898114, 0.99946211, 0.49326344], 9316 [- 6.27337014, - 0.00033352, 0.00020431, 7.27303661, 0.99898125, 0.99946217, 0.49326333], 9317 [- 6.27337022, - 0.00033349, 0.00020428, 7.27303674, 0.99898136, 0.99946223, 0.49326344], 9318 [- 6.27337031, - 0.00033345, 0.00020426, 7.27303686, 0.99898147, 0.99946229, 0.49326346], 9319 [- 6.27337039, - 0.00033342, 0.00020424, 7.27303698, 0.99898158, 0.99946234, 0.49326354], 9320 [- 6.27337048, - 0.00033338, 0.00020422, 7.27303710, 0.99898169, 0.99946240, 0.49326336], 9321 [- 6.27337057, - 0.00033334, 0.00020420, 7.27303722, 0.99898180, 0.99946246, 0.49326349], 9322 [- 6.27337065, - 0.00033331, 0.00020417, 7.27303734, 0.99898191, 0.99946252, 0.49326348], 9323 [- 6.27337074, - 0.00033327, 0.00020415, 7.27303747, 0.99898202, 0.99946258, 0.49326342], 9324 [- 6.27337082, - 0.00033324, 0.00020413, 7.27303759, 0.99898213, 0.99946263, 0.49326343], 9325 [- 6.27337091, - 0.00033320, 0.00020411, 7.27303771, 0.99898224, 0.99946269, 0.49326362], 9326 [- 6.27337100, - 0.00033316, 0.00020409, 7.27303783, 0.99898234, 0.99946275, 0.49326356], 9327 [- 6.27337108, - 0.00033313, 0.00020406, 7.27303795, 0.99898245, 0.99946281, 0.49326362], 9328 [- 6.27337117, - 0.00033309, 0.00020404, 7.27303808, 0.99898256, 0.99946287, 0.49326353], 9329 [- 6.27337125, - 0.00033306, 0.00020402, 7.27303820, 0.99898267, 0.99946292, 0.49326384], 9330 [- 6.27337134, - 0.00033302, 0.00020400, 7.27303832, 0.99898278, 0.99946298, 0.49326355], 9331 [- 6.27337142, - 0.00033298, 0.00020398, 7.27303844, 0.99898289, 0.99946304, 0.49326361], 9332 [- 6.27337151, - 0.00033295, 0.00020395, 7.27303856, 0.99898300, 0.99946310, 0.49326362], 9333 [- 6.27337160, - 0.00033291, 0.00020393, 7.27303868, 0.99898311, 0.99946315, 0.49326349], 9334 [- 6.27337168, - 0.00033288, 0.00020391, 7.27303880, 0.99898322, 0.99946321, 0.49326369], 9335 [- 6.27337177, - 0.00033284, 0.00020389, 7.27303893, 0.99898333, 0.99946327, 0.49326369], 9336 [- 6.27337185, - 0.00033281, 0.00020387, 7.27303905, 0.99898344, 0.99946333, 0.49326369], 9337 [- 6.27337194, - 0.00033277, 0.00020385, 7.27303917, 0.99898355, 0.99946338, 0.49326367], 9338 [- 6.27337202, - 0.00033273, 0.00020382, 7.27303929, 0.99898366, 0.99946344, 0.49326359], 9339 [- 6.27337211, - 0.00033270, 0.00020380, 7.27303941, 0.99898377, 0.99946350, 0.49326376], 9340 [- 6.27337220, - 0.00033266, 0.00020378, 7.27303953, 0.99898388, 0.99946356, 0.49326382], 9341 [- 6.27337228, - 0.00033263, 0.00020376, 7.27303965, 0.99898399, 0.99946362, 0.49326384], 9342 [- 6.27337237, - 0.00033259, 0.00020374, 7.27303978, 0.99898409, 0.99946367, 0.49326379], 9343 [- 6.27337245, - 0.00033256, 0.00020371, 7.27303990, 0.99898420, 0.99946373, 0.49326389], 9344 [- 6.27337254, - 0.00033252, 0.00020369, 7.27304002, 0.99898431, 0.99946379, 0.49326390], 9345 [- 6.27337262, - 0.00033248, 0.00020367, 7.27304014, 0.99898442, 0.99946385, 0.49326379], 9346 [- 6.27337271, - 0.00033245, 0.00020365, 7.27304026, 0.99898453, 0.99946390, 0.49326384], 9347 [- 6.27337279, - 0.00033241, 0.00020363, 7.27304038, 0.99898464, 0.99946396, 0.49326381], 9348 [- 6.27337288, - 0.00033238, 0.00020360, 7.27304050, 0.99898475, 0.99946402, 0.49326372], 9349 [- 6.27337297, - 0.00033234, 0.00020358, 7.27304062, 0.99898486, 0.99946408, 0.49326377], 9350 [- 6.27337305, - 0.00033231, 0.00020356, 7.27304075, 0.99898497, 0.99946413, 0.49326406], 9351 [- 6.27337314, - 0.00033227, 0.00020354, 7.27304087, 0.99898508, 0.99946419, 0.49326380], 9352 [- 6.27337322, - 0.00033223, 0.00020352, 7.27304099, 0.99898519, 0.99946425, 0.49326407], 9353 [- 6.27337331, - 0.00033220, 0.00020350, 7.27304111, 0.99898529, 0.99946431, 0.49326377], 9354 [- 6.27337339, - 0.00033216, 0.00020347, 7.27304123, 0.99898540, 0.99946436, 0.49326399], 9355 [- 6.27337348, - 0.00033213, 0.00020345, 7.27304135, 0.99898551, 0.99946442, 0.49326392], 9356 [- 6.27337356, - 0.00033209, 0.00020343, 7.27304147, 0.99898562, 0.99946448, 0.49326402], 9357 [- 6.27337365, - 0.00033206, 0.00020341, 7.27304159, 0.99898573, 0.99946454, 0.49326407], 9358 [- 6.27337373, - 0.00033202, 0.00020339, 7.27304171, 0.99898584, 0.99946459, 0.49326397], 9359 [- 6.27337382, - 0.00033198, 0.00020336, 7.27304183, 0.99898595, 0.99946465, 0.49326388], 9360 [- 6.27337390, - 0.00033195, 0.00020334, 7.27304196, 0.99898606, 0.99946471, 0.49326400], 9361 [- 6.27337399, - 0.00033191, 0.00020332, 7.27304208, 0.99898616, 0.99946477, 0.49326405], 9362 [- 6.27337407, - 0.00033188, 0.00020330, 7.27304220, 0.99898627, 0.99946482, 0.49326405], 9363 [- 6.27337416, - 0.00033184, 0.00020328, 7.27304232, 0.99898638, 0.99946488, 0.49326395], 9364 [- 6.27337425, - 0.00033181, 0.00020326, 7.27304244, 0.99898649, 0.99946494, 0.49326406], 9365 [- 6.27337433, - 0.00033177, 0.00020323, 7.27304256, 0.99898660, 0.99946500, 0.49326412], 9366 [- 6.27337442, - 0.00033174, 0.00020321, 7.27304268, 0.99898671, 0.99946505, 0.49326418], 9367 [- 6.27337450, - 0.00033170, 0.00020319, 7.27304280, 0.99898682, 0.99946511, 0.49326405], 9368 [- 6.27337459, - 0.00033166, 0.00020317, 7.27304292, 0.99898693, 0.99946517, 0.49326394], 9369 [- 6.27337467, - 0.00033163, 0.00020315, 7.27304304, 0.99898703, 0.99946522, 0.49326407], 9370 [- 6.27337476, - 0.00033159, 0.00020312, 7.27304316, 0.99898714, 0.99946528, 0.49326381], 9371 [- 6.27337484, - 0.00033156, 0.00020310, 7.27304328, 0.99898725, 0.99946534, 0.49326400], 9372 [- 6.27337493, - 0.00033152, 0.00020308, 7.27304340, 0.99898736, 0.99946540, 0.49326414], 9373 [- 6.27337501, - 0.00033149, 0.00020306, 7.27304352, 0.99898747, 0.99946545, 0.49326426], 9374 [- 6.27337510, - 0.00033145, 0.00020304, 7.27304364, 0.99898758, 0.99946551, 0.49326422], 9375 [- 6.27337518, - 0.00033142, 0.00020302, 7.27304376, 0.99898768, 0.99946557, 0.49326412], 9376 [- 6.27337527, - 0.00033138, 0.00020299, 7.27304389, 0.99898779, 0.99946563, 0.49326410], 9377 [- 6.27337535, - 0.00033135, 0.00020297, 7.27304401, 0.99898790, 0.99946568, 0.49326415], 9378 [- 6.27337544, - 0.00033131, 0.00020295, 7.27304413, 0.99898801, 0.99946574, 0.49326422], 9379 [- 6.27337552, - 0.00033127, 0.00020293, 7.27304425, 0.99898812, 0.99946580, 0.49326416], 9380 [- 6.27337561, - 0.00033124, 0.00020291, 7.27304437, 0.99898823, 0.99946585, 0.49326449], 9381 [- 6.27337569, - 0.00033120, 0.00020289, 7.27304449, 0.99898833, 0.99946591, 0.49326425], 9382 [- 6.27337578, - 0.00033117, 0.00020286, 7.27304461, 0.99898844, 0.99946597, 0.49326435], 9383 [- 6.27337586, - 0.00033113, 0.00020284, 7.27304473, 0.99898855, 0.99946603, 0.49326445], 9384 [- 6.27337594, - 0.00033110, 0.00020282, 7.27304485, 0.99898866, 0.99946608, 0.49326455], 9385 [- 6.27337603, - 0.00033106, 0.00020280, 7.27304497, 0.99898877, 0.99946614, 0.49326433], 9386 [- 6.27337611, - 0.00033103, 0.00020278, 7.27304509, 0.99898888, 0.99946620, 0.49326418], 9387 [- 6.27337620, - 0.00033099, 0.00020275, 7.27304521, 0.99898898, 0.99946625, 0.49326429], 9388 [- 6.27337628, - 0.00033096, 0.00020273, 7.27304533, 0.99898909, 0.99946631, 0.49326433], 9389 [- 6.27337637, - 0.00033092, 0.00020271, 7.27304545, 0.99898920, 0.99946637, 0.49326438], 9390 [- 6.27337645, - 0.00033088, 0.00020269, 7.27304557, 0.99898931, 0.99946643, 0.49326440], 9391 [- 6.27337654, - 0.00033085, 0.00020267, 7.27304569, 0.99898942, 0.99946648, 0.49326448], 9392 [- 6.27337662, - 0.00033081, 0.00020265, 7.27304581, 0.99898952, 0.99946654, 0.49326440], 9393 [- 6.27337671, - 0.00033078, 0.00020262, 7.27304593, 0.99898963, 0.99946660, 0.49326441], 9394 [- 6.27337679, - 0.00033074, 0.00020260, 7.27304605, 0.99898974, 0.99946665, 0.49326439], 9395 [- 6.27337688, - 0.00033071, 0.00020258, 7.27304617, 0.99898985, 0.99946671, 0.49326444], 9396 [- 6.27337696, - 0.00033067, 0.00020256, 7.27304629, 0.99898996, 0.99946677, 0.49326437], 9397 [- 6.27337705, - 0.00033064, 0.00020254, 7.27304641, 0.99899006, 0.99946682, 0.49326463], 9398 [- 6.27337713, - 0.00033060, 0.00020252, 7.27304653, 0.99899017, 0.99946688, 0.49326433], 9399 [- 6.27337721, - 0.00033057, 0.00020250, 7.27304665, 0.99899028, 0.99946694, 0.49326452], 9400 [- 6.27337730, - 0.00033053, 0.00020247, 7.27304677, 0.99899039, 0.99946700, 0.49326464], 9401 [- 6.27337738, - 0.00033050, 0.00020245, 7.27304689, 0.99899050, 0.99946705, 0.49326462], 9402 [- 6.27337747, - 0.00033046, 0.00020243, 7.27304701, 0.99899060, 0.99946711, 0.49326446], 9403 [- 6.27337755, - 0.00033043, 0.00020241, 7.27304713, 0.99899071, 0.99946717, 0.49326448], 9404 [- 6.27337764, - 0.00033039, 0.00020239, 7.27304725, 0.99899082, 0.99946722, 0.49326479], 9405 [- 6.27337772, - 0.00033035, 0.00020237, 7.27304737, 0.99899093, 0.99946728, 0.49326445], 9406 [- 6.27337781, - 0.00033032, 0.00020234, 7.27304749, 0.99899103, 0.99946734, 0.49326446], 9407 [- 6.27337789, - 0.00033028, 0.00020232, 7.27304761, 0.99899114, 0.99946739, 0.49326446], 9408 [- 6.27337797, - 0.00033025, 0.00020230, 7.27304773, 0.99899125, 0.99946745, 0.49326456], 9409 [- 6.27337806, - 0.00033021, 0.00020228, 7.27304785, 0.99899136, 0.99946751, 0.49326462], 9410 [- 6.27337814, - 0.00033018, 0.00020226, 7.27304796, 0.99899146, 0.99946756, 0.49326466], 9411 [- 6.27337823, - 0.00033014, 0.00020224, 7.27304808, 0.99899157, 0.99946762, 0.49326469], 9412 [- 6.27337831, - 0.00033011, 0.00020221, 7.27304820, 0.99899168, 0.99946768, 0.49326455], 9413 [- 6.27337840, - 0.00033007, 0.00020219, 7.27304832, 0.99899179, 0.99946773, 0.49326445], 9414 [- 6.27337848, - 0.00033004, 0.00020217, 7.27304844, 0.99899190, 0.99946779, 0.49326466], 9415 [- 6.27337856, - 0.00033000, 0.00020215, 7.27304856, 0.99899200, 0.99946785, 0.49326467], 9416 [- 6.27337865, - 0.00032997, 0.00020213, 7.27304868, 0.99899211, 0.99946790, 0.49326472], 9417 [- 6.27337873, - 0.00032993, 0.00020211, 7.27304880, 0.99899222, 0.99946796, 0.49326465], 9418 [- 6.27337882, - 0.00032990, 0.00020208, 7.27304892, 0.99899233, 0.99946802, 0.49326487], 9419 [- 6.27337890, - 0.00032986, 0.00020206, 7.27304904, 0.99899243, 0.99946807, 0.49326453], 9420 [- 6.27337899, - 0.00032983, 0.00020204, 7.27304916, 0.99899254, 0.99946813, 0.49326462], 9421 [- 6.27337907, - 0.00032979, 0.00020202, 7.27304928, 0.99899265, 0.99946819, 0.49326466], 9422 [- 6.27337915, - 0.00032976, 0.00020200, 7.27304940, 0.99899275, 0.99946824, 0.49326470], 9423 [- 6.27337924, - 0.00032972, 0.00020198, 7.27304952, 0.99899286, 0.99946830, 0.49326485], 9424 [- 6.27337932, - 0.00032969, 0.00020196, 7.27304964, 0.99899297, 0.99946836, 0.49326493], 9425 [- 6.27337941, - 0.00032965, 0.00020193, 7.27304976, 0.99899308, 0.99946841, 0.49326472], 9426 [- 6.27337949, - 0.00032962, 0.00020191, 7.27304987, 0.99899318, 0.99946847, 0.49326466], 9427 [- 6.27337957, - 0.00032958, 0.00020189, 7.27304999, 0.99899329, 0.99946853, 0.49326475], 9428 [- 6.27337966, - 0.00032955, 0.00020187, 7.27305011, 0.99899340, 0.99946858, 0.49326474], 9429 [- 6.27337974, - 0.00032951, 0.00020185, 7.27305023, 0.99899351, 0.99946864, 0.49326494], 9430 [- 6.27337983, - 0.00032948, 0.00020183, 7.27305035, 0.99899361, 0.99946870, 0.49326475], 9431 [- 6.27337991, - 0.00032944, 0.00020181, 7.27305047, 0.99899372, 0.99946875, 0.49326504], 9432 [- 6.27337999, - 0.00032941, 0.00020178, 7.27305059, 0.99899383, 0.99946881, 0.49326510], 9433 [- 6.27338008, - 0.00032937, 0.00020176, 7.27305071, 0.99899393, 0.99946887, 0.49326506], 9434 [- 6.27338016, - 0.00032934, 0.00020174, 7.27305083, 0.99899404, 0.99946892, 0.49326491], 9435 [- 6.27338025, - 0.00032930, 0.00020172, 7.27305095, 0.99899415, 0.99946898, 0.49326495], 9436 [- 6.27338033, - 0.00032927, 0.00020170, 7.27305106, 0.99899425, 0.99946904, 0.49326488], 9437 [- 6.27338041, - 0.00032923, 0.00020168, 7.27305118, 0.99899436, 0.99946909, 0.49326492], 9438 [- 6.27338050, - 0.00032920, 0.00020165, 7.27305130, 0.99899447, 0.99946915, 0.49326492], 9439 [- 6.27338058, - 0.00032916, 0.00020163, 7.27305142, 0.99899458, 0.99946921, 0.49326493], 9440 [- 6.27338067, - 0.00032913, 0.00020161, 7.27305154, 0.99899468, 0.99946926, 0.49326498], 9441 [- 6.27338075, - 0.00032909, 0.00020159, 7.27305166, 0.99899479, 0.99946932, 0.49326509], 9442 [- 6.27338083, - 0.00032906, 0.00020157, 7.27305178, 0.99899490, 0.99946938, 0.49326511], 9443 [- 6.27338092, - 0.00032902, 0.00020155, 7.27305190, 0.99899500, 0.99946943, 0.49326491], 9444 [- 6.27338100, - 0.00032899, 0.00020153, 7.27305201, 0.99899511, 0.99946949, 0.49326497], 9445 [- 6.27338108, - 0.00032895, 0.00020150, 7.27305213, 0.99899522, 0.99946954, 0.49326517], 9446 [- 6.27338117, - 0.00032892, 0.00020148, 7.27305225, 0.99899532, 0.99946960, 0.49326501], 9447 [- 6.27338125, - 0.00032888, 0.00020146, 7.27305237, 0.99899543, 0.99946966, 0.49326506], 9448 [- 6.27338134, - 0.00032885, 0.00020144, 7.27305249, 0.99899554, 0.99946971, 0.49326507], 9449 [- 6.27338142, - 0.00032881, 0.00020142, 7.27305261, 0.99899564, 0.99946977, 0.49326497], 9450 [- 6.27338150, - 0.00032878, 0.00020140, 7.27305273, 0.99899575, 0.99946983, 0.49326508], 9451 [- 6.27338159, - 0.00032874, 0.00020138, 7.27305284, 0.99899586, 0.99946988, 0.49326522], 9452 [- 6.27338167, - 0.00032871, 0.00020135, 7.27305296, 0.99899596, 0.99946994, 0.49326525], 9453 [- 6.27338175, - 0.00032867, 0.00020133, 7.27305308, 0.99899607, 0.99946999, 0.49326527], 9454 [- 6.27338184, - 0.00032864, 0.00020131, 7.27305320, 0.99899618, 0.99947005, 0.49326512], 9455 [- 6.27338192, - 0.00032860, 0.00020129, 7.27305332, 0.99899628, 0.99947011, 0.49326544], 9456 [- 6.27338200, - 0.00032857, 0.00020127, 7.27305344, 0.99899639, 0.99947016, 0.49326511], 9457 [- 6.27338209, - 0.00032853, 0.00020125, 7.27305356, 0.99899650, 0.99947022, 0.49326525], 9458 [- 6.27338217, - 0.00032850, 0.00020123, 7.27305367, 0.99899660, 0.99947028, 0.49326517], 9459 [- 6.27338225, - 0.00032846, 0.00020121, 7.27305379, 0.99899671, 0.99947033, 0.49326515], 9460 [- 6.27338234, - 0.00032843, 0.00020118, 7.27305391, 0.99899682, 0.99947039, 0.49326512], 9461 [- 6.27338242, - 0.00032839, 0.00020116, 7.27305403, 0.99899692, 0.99947045, 0.49326510], 9462 [- 6.27338250, - 0.00032836, 0.00020114, 7.27305415, 0.99899703, 0.99947050, 0.49326538], 9463 [- 6.27338259, - 0.00032832, 0.00020112, 7.27305427, 0.99899714, 0.99947056, 0.49326526], 9464 [- 6.27338267, - 0.00032829, 0.00020110, 7.27305438, 0.99899724, 0.99947061, 0.49326555], 9465 [- 6.27338275, - 0.00032825, 0.00020108, 7.27305450, 0.99899735, 0.99947067, 0.49326559], 9466 [- 6.27338284, - 0.00032822, 0.00020106, 7.27305462, 0.99899745, 0.99947073, 0.49326528], 9467 [- 6.27338292, - 0.00032818, 0.00020103, 7.27305474, 0.99899756, 0.99947078, 0.49326542], 9468 [- 6.27338300, - 0.00032815, 0.00020101, 7.27305486, 0.99899767, 0.99947084, 0.49326519], 9469 [- 6.27338309, - 0.00032811, 0.00020099, 7.27305497, 0.99899777, 0.99947089, 0.49326536], 9470 [- 6.27338317, - 0.00032808, 0.00020097, 7.27305509, 0.99899788, 0.99947095, 0.49326533], 9471 [- 6.27338325, - 0.00032804, 0.00020095, 7.27305521, 0.99899799, 0.99947101, 0.49326540], 9472 [- 6.27338334, - 0.00032801, 0.00020093, 7.27305533, 0.99899809, 0.99947106, 0.49326552], 9473 [- 6.27338342, - 0.00032797, 0.00020091, 7.27305545, 0.99899820, 0.99947112, 0.49326543], 9474 [- 6.27338350, - 0.00032794, 0.00020089, 7.27305556, 0.99899830, 0.99947117, 0.49326548], 9475 [- 6.27338359, - 0.00032791, 0.00020086, 7.27305568, 0.99899841, 0.99947123, 0.49326555], 9476 [- 6.27338367, - 0.00032787, 0.00020084, 7.27305580, 0.99899852, 0.99947129, 0.49326550], 9477 [- 6.27338375, - 0.00032784, 0.00020082, 7.27305592, 0.99899862, 0.99947134, 0.49326539], 9478 [- 6.27338384, - 0.00032780, 0.00020080, 7.27305604, 0.99899873, 0.99947140, 0.49326537], 9479 [- 6.27338392, - 0.00032777, 0.00020078, 7.27305615, 0.99899884, 0.99947145, 0.49326540], 9480 [- 6.27338400, - 0.00032773, 0.00020076, 7.27305627, 0.99899894, 0.99947151, 0.49326552], 9481 [- 6.27338409, - 0.00032770, 0.00020074, 7.27305639, 0.99899905, 0.99947157, 0.49326544], 9482 [- 6.27338417, - 0.00032766, 0.00020072, 7.27305651, 0.99899915, 0.99947162, 0.49326541], 9483 [- 6.27338425, - 0.00032763, 0.00020069, 7.27305662, 0.99899926, 0.99947168, 0.49326544], 9484 [- 6.27338433, - 0.00032759, 0.00020067, 7.27305674, 0.99899937, 0.99947173, 0.49326555], 9485 [- 6.27338442, - 0.00032756, 0.00020065, 7.27305686, 0.99899947, 0.99947179, 0.49326592], 9486 [- 6.27338450, - 0.00032752, 0.00020063, 7.27305698, 0.99899958, 0.99947185, 0.49326555], 9487 [- 6.27338458, - 0.00032749, 0.00020061, 7.27305709, 0.99899968, 0.99947190, 0.49326556], 9488 [- 6.27338467, - 0.00032745, 0.00020059, 7.27305721, 0.99899979, 0.99947196, 0.49326577], 9489 [- 6.27338475, - 0.00032742, 0.00020057, 7.27305733, 0.99899989, 0.99947201, 0.49326572], 9490 [- 6.27338483, - 0.00032739, 0.00020055, 7.27305745, 0.99900000, 0.99947207, 0.49326564], 9491 [- 6.27338492, - 0.00032735, 0.00020052, 7.27305756, 0.99900011, 0.99947213, 0.49326574], 9492 [- 6.27338500, - 0.00032732, 0.00020050, 7.27305768, 0.99900021, 0.99947218, 0.49326570], 9493 [- 6.27338508, - 0.00032728, 0.00020048, 7.27305780, 0.99900032, 0.99947224, 0.49326585], 9494 [- 6.27338516, - 0.00032725, 0.00020046, 7.27305792, 0.99900042, 0.99947229, 0.49326561], 9495 [- 6.27338525, - 0.00032721, 0.00020044, 7.27305804, 0.99900053, 0.99947235, 0.49326554], 9496 [- 6.27338533, - 0.00032718, 0.00020042, 7.27305815, 0.99900063, 0.99947240, 0.49326565], 9497 [- 6.27338541, - 0.00032714, 0.00020040, 7.27305827, 0.99900074, 0.99947246, 0.49326560], 9498 [- 6.27338550, - 0.00032711, 0.00020038, 7.27305839, 0.99900085, 0.99947252, 0.49326561], 9499 [- 6.27338558, - 0.00032707, 0.00020035, 7.27305850, 0.99900095, 0.99947257, 0.49326588], 9500 [- 6.27338566, - 0.00032704, 0.00020033, 7.27305862, 0.99900106, 0.99947263, 0.49326567], 9501 [- 6.27338574, - 0.00032700, 0.00020031, 7.27305874, 0.99900116, 0.99947268, 0.49326573], 9502 [- 6.27338583, - 0.00032697, 0.00020029, 7.27305886, 0.99900127, 0.99947274, 0.49326588], 9503 [- 6.27338591, - 0.00032694, 0.00020027, 7.27305897, 0.99900137, 0.99947279, 0.49326587], 9504 [- 6.27338599, - 0.00032690, 0.00020025, 7.27305909, 0.99900148, 0.99947285, 0.49326591], 9505 [- 6.27338607, - 0.00032687, 0.00020023, 7.27305921, 0.99900158, 0.99947291, 0.49326568], 9506 [- 6.27338616, - 0.00032683, 0.00020021, 7.27305932, 0.99900169, 0.99947296, 0.49326586], 9507 [- 6.27338624, - 0.00032680, 0.00020019, 7.27305944, 0.99900180, 0.99947302, 0.49326595], 9508 [- 6.27338632, - 0.00032676, 0.00020016, 7.27305956, 0.99900190, 0.99947307, 0.49326594], 9509 [- 6.27338640, - 0.00032673, 0.00020014, 7.27305968, 0.99900201, 0.99947313, 0.49326576], 9510 [- 6.27338649, - 0.00032669, 0.00020012, 7.27305979, 0.99900211, 0.99947318, 0.49326600], 9511 [- 6.27338657, - 0.00032666, 0.00020010, 7.27305991, 0.99900222, 0.99947324, 0.49326567], 9512 [- 6.27338665, - 0.00032663, 0.00020008, 7.27306003, 0.99900232, 0.99947330, 0.49326591], 9513 [- 6.27338674, - 0.00032659, 0.00020006, 7.27306014, 0.99900243, 0.99947335, 0.49326584], 9514 [- 6.27338682, - 0.00032656, 0.00020004, 7.27306026, 0.99900253, 0.99947341, 0.49326591], 9515 [- 6.27338690, - 0.00032652, 0.00020002, 7.27306038, 0.99900264, 0.99947346, 0.49326598], 9516 [- 6.27338698, - 0.00032649, 0.00020000, 7.27306050, 0.99900274, 0.99947352, 0.49326605], 9517 [- 6.27338706, - 0.00032645, 0.00019997, 7.27306061, 0.99900285, 0.99947357, 0.49326584], 9518 [- 6.27338715, - 0.00032642, 0.00019995, 7.27306073, 0.99900295, 0.99947363, 0.49326610], 9519 [- 6.27338723, - 0.00032638, 0.00019993, 7.27306085, 0.99900306, 0.99947368, 0.49326584], 9520 [- 6.27338731, - 0.00032635, 0.00019991, 7.27306096, 0.99900316, 0.99947374, 0.49326595], 9521 [- 6.27338739, - 0.00032632, 0.00019989, 7.27306108, 0.99900327, 0.99947379, 0.49326574], 9522 [- 6.27338748, - 0.00032628, 0.00019987, 7.27306120, 0.99900337, 0.99947385, 0.49326593], 9523 [- 6.27338756, - 0.00032625, 0.00019985, 7.27306131, 0.99900348, 0.99947391, 0.49326617], 9524 [- 6.27338764, - 0.00032621, 0.00019983, 7.27306143, 0.99900358, 0.99947396, 0.49326608], 9525 [- 6.27338772, - 0.00032618, 0.00019981, 7.27306155, 0.99900369, 0.99947402, 0.49326601], 9526 [- 6.27338781, - 0.00032614, 0.00019978, 7.27306166, 0.99900379, 0.99947407, 0.49326595], 9527 [- 6.27338789, - 0.00032611, 0.00019976, 7.27306178, 0.99900390, 0.99947413, 0.49326615], 9528 [- 6.27338797, - 0.00032607, 0.00019974, 7.27306190, 0.99900400, 0.99947418, 0.49326594], 9529 [- 6.27338805, - 0.00032604, 0.00019972, 7.27306201, 0.99900411, 0.99947424, 0.49326623], 9530 [- 6.27338814, - 0.00032601, 0.00019970, 7.27306213, 0.99900421, 0.99947429, 0.49326628], 9531 [- 6.27338822, - 0.00032597, 0.00019968, 7.27306225, 0.99900432, 0.99947435, 0.49326618], 9532 [- 6.27338830, - 0.00032594, 0.00019966, 7.27306236, 0.99900442, 0.99947440, 0.49326621], 9533 [- 6.27338838, - 0.00032590, 0.00019964, 7.27306248, 0.99900453, 0.99947446, 0.49326598], 9534 [- 6.27338846, - 0.00032587, 0.00019962, 7.27306260, 0.99900463, 0.99947452, 0.49326615], 9535 [- 6.27338855, - 0.00032583, 0.00019960, 7.27306271, 0.99900474, 0.99947457, 0.49326647], 9536 [- 6.27338863, - 0.00032580, 0.00019957, 7.27306283, 0.99900484, 0.99947463, 0.49326621], 9537 [- 6.27338871, - 0.00032577, 0.00019955, 7.27306294, 0.99900495, 0.99947468, 0.49326643], 9538 [- 6.27338879, - 0.00032573, 0.00019953, 7.27306306, 0.99900505, 0.99947474, 0.49326629], 9539 [- 6.27338887, - 0.00032570, 0.00019951, 7.27306318, 0.99900516, 0.99947479, 0.49326635], 9540 [- 6.27338896, - 0.00032566, 0.00019949, 7.27306329, 0.99900526, 0.99947485, 0.49326632], 9541 [- 6.27338904, - 0.00032563, 0.00019947, 7.27306341, 0.99900537, 0.99947490, 0.49326626], 9542 [- 6.27338912, - 0.00032559, 0.00019945, 7.27306353, 0.99900547, 0.99947496, 0.49326639], 9543 [- 6.27338920, - 0.00032556, 0.00019943, 7.27306364, 0.99900558, 0.99947501, 0.49326627], 9544 [- 6.27338928, - 0.00032553, 0.00019941, 7.27306376, 0.99900568, 0.99947507, 0.49326645], 9545 [- 6.27338937, - 0.00032549, 0.00019939, 7.27306387, 0.99900578, 0.99947512, 0.49326623], 9546 [- 6.27338945, - 0.00032546, 0.00019936, 7.27306399, 0.99900589, 0.99947518, 0.49326607], 9547 [- 6.27338953, - 0.00032542, 0.00019934, 7.27306411, 0.99900599, 0.99947523, 0.49326641], 9548 [- 6.27338961, - 0.00032539, 0.00019932, 7.27306422, 0.99900610, 0.99947529, 0.49326644], 9549 [- 6.27338969, - 0.00032536, 0.00019930, 7.27306434, 0.99900620, 0.99947534, 0.49326635], 9550 [- 6.27338978, - 0.00032532, 0.00019928, 7.27306446, 0.99900631, 0.99947540, 0.49326617], 9551 [- 6.27338986, - 0.00032529, 0.00019926, 7.27306457, 0.99900641, 0.99947545, 0.49326647], 9552 [- 6.27338994, - 0.00032525, 0.00019924, 7.27306469, 0.99900652, 0.99947551, 0.49326638], 9553 [- 6.27339002, - 0.00032522, 0.00019922, 7.27306480, 0.99900662, 0.99947556, 0.49326625], 9554 [- 6.27339010, - 0.00032518, 0.00019920, 7.27306492, 0.99900673, 0.99947562, 0.49326654], 9555 [- 6.27339019, - 0.00032515, 0.00019918, 7.27306504, 0.99900683, 0.99947567, 0.49326643], 9556 [- 6.27339027, - 0.00032512, 0.00019915, 7.27306515, 0.99900693, 0.99947573, 0.49326639], 9557 [- 6.27339035, - 0.00032508, 0.00019913, 7.27306527, 0.99900704, 0.99947578, 0.49326643], 9558 [- 6.27339043, - 0.00032505, 0.00019911, 7.27306538, 0.99900714, 0.99947584, 0.49326613], 9559 [- 6.27339051, - 0.00032501, 0.00019909, 7.27306550, 0.99900725, 0.99947589, 0.49326635], 9560 [- 6.27339059, - 0.00032498, 0.00019907, 7.27306561, 0.99900735, 0.99947595, 0.49326654], 9561 [- 6.27339068, - 0.00032495, 0.00019905, 7.27306573, 0.99900746, 0.99947600, 0.49326649], 9562 [- 6.27339076, - 0.00032491, 0.00019903, 7.27306585, 0.99900756, 0.99947606, 0.49326645], 9563 [- 6.27339084, - 0.00032488, 0.00019901, 7.27306596, 0.99900766, 0.99947611, 0.49326635], 9564 [- 6.27339092, - 0.00032484, 0.00019899, 7.27306608, 0.99900777, 0.99947617, 0.49326646], 9565 [- 6.27339100, - 0.00032481, 0.00019897, 7.27306619, 0.99900787, 0.99947622, 0.49326660], 9566 [- 6.27339108, - 0.00032477, 0.00019895, 7.27306631, 0.99900798, 0.99947628, 0.49326653], 9567 [- 6.27339117, - 0.00032474, 0.00019892, 7.27306642, 0.99900808, 0.99947633, 0.49326655], 9568 [- 6.27339125, - 0.00032471, 0.00019890, 7.27306654, 0.99900818, 0.99947639, 0.49326642], 9569 [- 6.27339133, - 0.00032467, 0.00019888, 7.27306666, 0.99900829, 0.99947644, 0.49326648], 9570 [- 6.27339141, - 0.00032464, 0.00019886, 7.27306677, 0.99900839, 0.99947650, 0.49326679], 9571 [- 6.27339149, - 0.00032460, 0.00019884, 7.27306689, 0.99900850, 0.99947655, 0.49326686], 9572 [- 6.27339157, - 0.00032457, 0.00019882, 7.27306700, 0.99900860, 0.99947661, 0.49326656], 9573 [- 6.27339165, - 0.00032454, 0.00019880, 7.27306712, 0.99900870, 0.99947666, 0.49326662], 9574 [- 6.27339174, - 0.00032450, 0.00019878, 7.27306723, 0.99900881, 0.99947672, 0.49326679], 9575 [- 6.27339182, - 0.00032447, 0.00019876, 7.27306735, 0.99900891, 0.99947677, 0.49326673], 9576 [- 6.27339190, - 0.00032443, 0.00019874, 7.27306746, 0.99900902, 0.99947683, 0.49326675], 9577 [- 6.27339198, - 0.00032440, 0.00019872, 7.27306758, 0.99900912, 0.99947688, 0.49326682], 9578 [- 6.27339206, - 0.00032437, 0.00019870, 7.27306770, 0.99900922, 0.99947694, 0.49326647], 9579 [- 6.27339214, - 0.00032433, 0.00019867, 7.27306781, 0.99900933, 0.99947699, 0.49326653], 9580 [- 6.27339222, - 0.00032430, 0.00019865, 7.27306793, 0.99900943, 0.99947705, 0.49326669], 9581 [- 6.27339231, - 0.00032426, 0.00019863, 7.27306804, 0.99900954, 0.99947710, 0.49326657], 9582 [- 6.27339239, - 0.00032423, 0.00019861, 7.27306816, 0.99900964, 0.99947716, 0.49326679], 9583 [- 6.27339247, - 0.00032420, 0.00019859, 7.27306827, 0.99900974, 0.99947721, 0.49326690], 9584 [- 6.27339255, - 0.00032416, 0.00019857, 7.27306839, 0.99900985, 0.99947727, 0.49326680], 9585 [- 6.27339263, - 0.00032413, 0.00019855, 7.27306850, 0.99900995, 0.99947732, 0.49326670], 9586 [- 6.27339271, - 0.00032409, 0.00019853, 7.27306862, 0.99901005, 0.99947738, 0.49326690], 9587 [- 6.27339279, - 0.00032406, 0.00019851, 7.27306873, 0.99901016, 0.99947743, 0.49326682], 9588 [- 6.27339287, - 0.00032403, 0.00019849, 7.27306885, 0.99901026, 0.99947749, 0.49326670], 9589 [- 6.27339296, - 0.00032399, 0.00019847, 7.27306896, 0.99901036, 0.99947754, 0.49326689], 9590 [- 6.27339304, - 0.00032396, 0.00019845, 7.27306908, 0.99901047, 0.99947760, 0.49326683], 9591 [- 6.27339312, - 0.00032393, 0.00019843, 7.27306919, 0.99901057, 0.99947765, 0.49326682], 9592 [- 6.27339320, - 0.00032389, 0.00019840, 7.27306931, 0.99901068, 0.99947770, 0.49326694], 9593 [- 6.27339328, - 0.00032386, 0.00019838, 7.27306942, 0.99901078, 0.99947776, 0.49326682], 9594 [- 6.27339336, - 0.00032382, 0.00019836, 7.27306954, 0.99901088, 0.99947781, 0.49326696], 9595 [- 6.27339344, - 0.00032379, 0.00019834, 7.27306965, 0.99901099, 0.99947787, 0.49326703], 9596 [- 6.27339352, - 0.00032376, 0.00019832, 7.27306977, 0.99901109, 0.99947792, 0.49326705], 9597 [- 6.27339360, - 0.00032372, 0.00019830, 7.27306988, 0.99901119, 0.99947798, 0.49326683], 9598 [- 6.27339369, - 0.00032369, 0.00019828, 7.27307000, 0.99901130, 0.99947803, 0.49326692], 9599 [- 6.27339377, - 0.00032365, 0.00019826, 7.27307011, 0.99901140, 0.99947809, 0.49326694], 9600 [- 6.27339385, - 0.00032362, 0.00019824, 7.27307023, 0.99901150, 0.99947814, 0.49326688], 9601 [- 6.27339393, - 0.00032359, 0.00019822, 7.27307034, 0.99901161, 0.99947820, 0.49326687], 9602 [- 6.27339401, - 0.00032355, 0.00019820, 7.27307046, 0.99901171, 0.99947825, 0.49326697], 9603 [- 6.27339409, - 0.00032352, 0.00019818, 7.27307057, 0.99901181, 0.99947830, 0.49326717], 9604 [- 6.27339417, - 0.00032349, 0.00019816, 7.27307069, 0.99901192, 0.99947836, 0.49326712], 9605 [- 6.27339425, - 0.00032345, 0.00019813, 7.27307080, 0.99901202, 0.99947841, 0.49326703], 9606 [- 6.27339433, - 0.00032342, 0.00019811, 7.27307092, 0.99901212, 0.99947847, 0.49326706], 9607 [- 6.27339441, - 0.00032338, 0.00019809, 7.27307103, 0.99901223, 0.99947852, 0.49326716], 9608 [- 6.27339450, - 0.00032335, 0.00019807, 7.27307115, 0.99901233, 0.99947858, 0.49326689], 9609 [- 6.27339458, - 0.00032332, 0.00019805, 7.27307126, 0.99901243, 0.99947863, 0.49326699], 9610 [- 6.27339466, - 0.00032328, 0.00019803, 7.27307137, 0.99901254, 0.99947869, 0.49326696], 9611 [- 6.27339474, - 0.00032325, 0.00019801, 7.27307149, 0.99901264, 0.99947874, 0.49326718], 9612 [- 6.27339482, - 0.00032321, 0.00019799, 7.27307160, 0.99901274, 0.99947880, 0.49326717], 9613 [- 6.27339490, - 0.00032318, 0.00019797, 7.27307172, 0.99901285, 0.99947885, 0.49326705], 9614 [- 6.27339498, - 0.00032315, 0.00019795, 7.27307183, 0.99901295, 0.99947890, 0.49326716], 9615 [- 6.27339506, - 0.00032311, 0.00019793, 7.27307195, 0.99901305, 0.99947896, 0.49326730], 9616 [- 6.27339514, - 0.00032308, 0.00019791, 7.27307206, 0.99901315, 0.99947901, 0.49326718], 9617 [- 6.27339522, - 0.00032305, 0.00019789, 7.27307218, 0.99901326, 0.99947907, 0.49326722], 9618 [- 6.27339530, - 0.00032301, 0.00019787, 7.27307229, 0.99901336, 0.99947912, 0.49326715], 9619 [- 6.27339538, - 0.00032298, 0.00019785, 7.27307241, 0.99901346, 0.99947918, 0.49326728], 9620 [- 6.27339546, - 0.00032295, 0.00019782, 7.27307252, 0.99901357, 0.99947923, 0.49326724], 9621 [- 6.27339555, - 0.00032291, 0.00019780, 7.27307263, 0.99901367, 0.99947928, 0.49326701], 9622 [- 6.27339563, - 0.00032288, 0.00019778, 7.27307275, 0.99901377, 0.99947934, 0.49326708], 9623 [- 6.27339571, - 0.00032284, 0.00019776, 7.27307286, 0.99901388, 0.99947939, 0.49326726], 9624 [- 6.27339579, - 0.00032281, 0.00019774, 7.27307298, 0.99901398, 0.99947945, 0.49326720], 9625 [- 6.27339587, - 0.00032278, 0.00019772, 7.27307309, 0.99901408, 0.99947950, 0.49326714], 9626 [- 6.27339595, - 0.00032274, 0.00019770, 7.27307321, 0.99901418, 0.99947956, 0.49326729], 9627 [- 6.27339603, - 0.00032271, 0.00019768, 7.27307332, 0.99901429, 0.99947961, 0.49326744], 9628 [- 6.27339611, - 0.00032268, 0.00019766, 7.27307343, 0.99901439, 0.99947966, 0.49326726], 9629 [- 6.27339619, - 0.00032264, 0.00019764, 7.27307355, 0.99901449, 0.99947972, 0.49326746], 9630 [- 6.27339627, - 0.00032261, 0.00019762, 7.27307366, 0.99901459, 0.99947977, 0.49326747], 9631 [- 6.27339635, - 0.00032258, 0.00019760, 7.27307378, 0.99901470, 0.99947983, 0.49326746], 9632 [- 6.27339643, - 0.00032254, 0.00019758, 7.27307389, 0.99901480, 0.99947988, 0.49326737], 9633 [- 6.27339651, - 0.00032251, 0.00019756, 7.27307400, 0.99901490, 0.99947994, 0.49326725], 9634 [- 6.27339659, - 0.00032247, 0.00019754, 7.27307412, 0.99901501, 0.99947999, 0.49326744], 9635 [- 6.27339667, - 0.00032244, 0.00019752, 7.27307423, 0.99901511, 0.99948004, 0.49326734], 9636 [- 6.27339675, - 0.00032241, 0.00019749, 7.27307435, 0.99901521, 0.99948010, 0.49326748], 9637 [- 6.27339683, - 0.00032237, 0.00019747, 7.27307446, 0.99901531, 0.99948015, 0.49326735], 9638 [- 6.27339691, - 0.00032234, 0.00019745, 7.27307457, 0.99901542, 0.99948021, 0.49326718], 9639 [- 6.27339699, - 0.00032231, 0.00019743, 7.27307469, 0.99901552, 0.99948026, 0.49326726], 9640 [- 6.27339708, - 0.00032227, 0.00019741, 7.27307480, 0.99901562, 0.99948031, 0.49326739], 9641 [- 6.27339716, - 0.00032224, 0.00019739, 7.27307492, 0.99901572, 0.99948037, 0.49326736], 9642 [- 6.27339724, - 0.00032221, 0.00019737, 7.27307503, 0.99901583, 0.99948042, 0.49326751], 9643 [- 6.27339732, - 0.00032217, 0.00019735, 7.27307514, 0.99901593, 0.99948048, 0.49326746], 9644 [- 6.27339740, - 0.00032214, 0.00019733, 7.27307526, 0.99901603, 0.99948053, 0.49326750], 9645 [- 6.27339748, - 0.00032210, 0.00019731, 7.27307537, 0.99901613, 0.99948059, 0.49326720], 9646 [- 6.27339756, - 0.00032207, 0.00019729, 7.27307549, 0.99901624, 0.99948064, 0.49326742], 9647 [- 6.27339764, - 0.00032204, 0.00019727, 7.27307560, 0.99901634, 0.99948069, 0.49326770], 9648 [- 6.27339772, - 0.00032200, 0.00019725, 7.27307571, 0.99901644, 0.99948075, 0.49326757], 9649 [- 6.27339780, - 0.00032197, 0.00019723, 7.27307583, 0.99901654, 0.99948080, 0.49326750], 9650 [- 6.27339788, - 0.00032194, 0.00019721, 7.27307594, 0.99901664, 0.99948086, 0.49326781], 9651 [- 6.27339796, - 0.00032190, 0.00019719, 7.27307605, 0.99901675, 0.99948091, 0.49326776], 9652 [- 6.27339804, - 0.00032187, 0.00019717, 7.27307617, 0.99901685, 0.99948096, 0.49326747], 9653 [- 6.27339812, - 0.00032184, 0.00019715, 7.27307628, 0.99901695, 0.99948102, 0.49326778], 9654 [- 6.27339820, - 0.00032180, 0.00019713, 7.27307639, 0.99901705, 0.99948107, 0.49326749], 9655 [- 6.27339828, - 0.00032177, 0.00019710, 7.27307651, 0.99901716, 0.99948113, 0.49326751], 9656 [- 6.27339836, - 0.00032174, 0.00019708, 7.27307662, 0.99901726, 0.99948118, 0.49326780], 9657 [- 6.27339844, - 0.00032170, 0.00019706, 7.27307674, 0.99901736, 0.99948123, 0.49326747], 9658 [- 6.27339852, - 0.00032167, 0.00019704, 7.27307685, 0.99901746, 0.99948129, 0.49326772], 9659 [- 6.27339860, - 0.00032164, 0.00019702, 7.27307696, 0.99901756, 0.99948134, 0.49326768], 9660 [- 6.27339868, - 0.00032160, 0.00019700, 7.27307708, 0.99901767, 0.99948139, 0.49326756], 9661 [- 6.27339876, - 0.00032157, 0.00019698, 7.27307719, 0.99901777, 0.99948145, 0.49326753], 9662 [- 6.27339884, - 0.00032154, 0.00019696, 7.27307730, 0.99901787, 0.99948150, 0.49326754], 9663 [- 6.27339892, - 0.00032150, 0.00019694, 7.27307742, 0.99901797, 0.99948156, 0.49326763], 9664 [- 6.27339900, - 0.00032147, 0.00019692, 7.27307753, 0.99901807, 0.99948161, 0.49326773], 9665 [- 6.27339908, - 0.00032144, 0.00019690, 7.27307764, 0.99901818, 0.99948166, 0.49326760], 9666 [- 6.27339916, - 0.00032140, 0.00019688, 7.27307776, 0.99901828, 0.99948172, 0.49326795], 9667 [- 6.27339924, - 0.00032137, 0.00019686, 7.27307787, 0.99901838, 0.99948177, 0.49326781], 9668 [- 6.27339932, - 0.00032134, 0.00019684, 7.27307798, 0.99901848, 0.99948183, 0.49326791], 9669 [- 6.27339940, - 0.00032130, 0.00019682, 7.27307810, 0.99901858, 0.99948188, 0.49326782], 9670 [- 6.27339948, - 0.00032127, 0.00019680, 7.27307821, 0.99901869, 0.99948193, 0.49326774], 9671 [- 6.27339956, - 0.00032124, 0.00019678, 7.27307832, 0.99901879, 0.99948199, 0.49326801], 9672 [- 6.27339964, - 0.00032120, 0.00019676, 7.27307843, 0.99901889, 0.99948204, 0.49326796], 9673 [- 6.27339972, - 0.00032117, 0.00019674, 7.27307855, 0.99901899, 0.99948209, 0.49326796], 9674 [- 6.27339980, - 0.00032114, 0.00019672, 7.27307866, 0.99901909, 0.99948215, 0.49326764], 9675 [- 6.27339988, - 0.00032110, 0.00019670, 7.27307877, 0.99901920, 0.99948220, 0.49326786], 9676 [- 6.27339996, - 0.00032107, 0.00019668, 7.27307889, 0.99901930, 0.99948226, 0.49326797], 9677 [- 6.27340004, - 0.00032104, 0.00019665, 7.27307900, 0.99901940, 0.99948231, 0.49326772], 9678 [- 6.27340012, - 0.00032100, 0.00019663, 7.27307911, 0.99901950, 0.99948236, 0.49326808], 9679 [- 6.27340020, - 0.00032097, 0.00019661, 7.27307923, 0.99901960, 0.99948242, 0.49326793], 9680 [- 6.27340028, - 0.00032094, 0.00019659, 7.27307934, 0.99901970, 0.99948247, 0.49326800], 9681 [- 6.27340036, - 0.00032090, 0.00019657, 7.27307945, 0.99901981, 0.99948252, 0.49326818], 9682 [- 6.27340043, - 0.00032087, 0.00019655, 7.27307956, 0.99901991, 0.99948258, 0.49326800], 9683 [- 6.27340051, - 0.00032084, 0.00019653, 7.27307968, 0.99902001, 0.99948263, 0.49326833], 9684 [- 6.27340059, - 0.00032080, 0.00019651, 7.27307979, 0.99902011, 0.99948268, 0.49326799], 9685 [- 6.27340067, - 0.00032077, 0.00019649, 7.27307990, 0.99902021, 0.99948274, 0.49326805], 9686 [- 6.27340075, - 0.00032074, 0.00019647, 7.27308002, 0.99902031, 0.99948279, 0.49326790], 9687 [- 6.27340083, - 0.00032070, 0.00019645, 7.27308013, 0.99902042, 0.99948285, 0.49326822], 9688 [- 6.27340091, - 0.00032067, 0.00019643, 7.27308024, 0.99902052, 0.99948290, 0.49326817], 9689 [- 6.27340099, - 0.00032064, 0.00019641, 7.27308035, 0.99902062, 0.99948295, 0.49326820], 9690 [- 6.27340107, - 0.00032060, 0.00019639, 7.27308047, 0.99902072, 0.99948301, 0.49326814], 9691 [- 6.27340115, - 0.00032057, 0.00019637, 7.27308058, 0.99902082, 0.99948306, 0.49326794], 9692 [- 6.27340123, - 0.00032054, 0.00019635, 7.27308069, 0.99902092, 0.99948311, 0.49326788], 9693 [- 6.27340131, - 0.00032050, 0.00019633, 7.27308081, 0.99902102, 0.99948317, 0.49326824], 9694 [- 6.27340139, - 0.00032047, 0.00019631, 7.27308092, 0.99902113, 0.99948322, 0.49326821], 9695 [- 6.27340147, - 0.00032044, 0.00019629, 7.27308103, 0.99902123, 0.99948327, 0.49326804], 9696 [- 6.27340155, - 0.00032040, 0.00019627, 7.27308114, 0.99902133, 0.99948333, 0.49326826], 9697 [- 6.27340163, - 0.00032037, 0.00019625, 7.27308126, 0.99902143, 0.99948338, 0.49326837], 9698 [- 6.27340171, - 0.00032034, 0.00019623, 7.27308137, 0.99902153, 0.99948343, 0.49326808], 9699 [- 6.27340179, - 0.00032031, 0.00019621, 7.27308148, 0.99902163, 0.99948349, 0.49326814], 9700 [- 6.27340187, - 0.00032027, 0.00019619, 7.27308159, 0.99902173, 0.99948354, 0.49326823], 9701 [- 6.27340194, - 0.00032024, 0.00019617, 7.27308171, 0.99902183, 0.99948359, 0.49326820], 9702 [- 6.27340202, - 0.00032021, 0.00019615, 7.27308182, 0.99902194, 0.99948365, 0.49326819], 9703 [- 6.27340210, - 0.00032017, 0.00019613, 7.27308193, 0.99902204, 0.99948370, 0.49326828], 9704 [- 6.27340218, - 0.00032014, 0.00019611, 7.27308204, 0.99902214, 0.99948376, 0.49326815], 9705 [- 6.27340226, - 0.00032011, 0.00019608, 7.27308216, 0.99902224, 0.99948381, 0.49326833], 9706 [- 6.27340234, - 0.00032007, 0.00019606, 7.27308227, 0.99902234, 0.99948386, 0.49326820], 9707 [- 6.27340242, - 0.00032004, 0.00019604, 7.27308238, 0.99902244, 0.99948392, 0.49326839], 9708 [- 6.27340250, - 0.00032001, 0.00019602, 7.27308249, 0.99902254, 0.99948397, 0.49326825], 9709 [- 6.27340258, - 0.00031997, 0.00019600, 7.27308261, 0.99902264, 0.99948402, 0.49326820], 9710 [- 6.27340266, - 0.00031994, 0.00019598, 7.27308272, 0.99902274, 0.99948408, 0.49326829], 9711 [- 6.27340274, - 0.00031991, 0.00019596, 7.27308283, 0.99902285, 0.99948413, 0.49326838], 9712 [- 6.27340282, - 0.00031987, 0.00019594, 7.27308294, 0.99902295, 0.99948418, 0.49326829], 9713 [- 6.27340290, - 0.00031984, 0.00019592, 7.27308305, 0.99902305, 0.99948424, 0.49326812], 9714 [- 6.27340297, - 0.00031981, 0.00019590, 7.27308317, 0.99902315, 0.99948429, 0.49326825], 9715 [- 6.27340305, - 0.00031978, 0.00019588, 7.27308328, 0.99902325, 0.99948434, 0.49326844], 9716 [- 6.27340313, - 0.00031974, 0.00019586, 7.27308339, 0.99902335, 0.99948440, 0.49326822], 9717 [- 6.27340321, - 0.00031971, 0.00019584, 7.27308350, 0.99902345, 0.99948445, 0.49326848], 9718 [- 6.27340329, - 0.00031968, 0.00019582, 7.27308361, 0.99902355, 0.99948450, 0.49326823], 9719 [- 6.27340337, - 0.00031964, 0.00019580, 7.27308373, 0.99902365, 0.99948455, 0.49326831], 9720 [- 6.27340345, - 0.00031961, 0.00019578, 7.27308384, 0.99902375, 0.99948461, 0.49326842], 9721 [- 6.27340353, - 0.00031958, 0.00019576, 7.27308395, 0.99902385, 0.99948466, 0.49326833], 9722 [- 6.27340361, - 0.00031954, 0.00019574, 7.27308406, 0.99902396, 0.99948471, 0.49326844], 9723 [- 6.27340369, - 0.00031951, 0.00019572, 7.27308417, 0.99902406, 0.99948477, 0.49326841], 9724 [- 6.27340377, - 0.00031948, 0.00019570, 7.27308429, 0.99902416, 0.99948482, 0.49326813], 9725 [- 6.27340384, - 0.00031945, 0.00019568, 7.27308440, 0.99902426, 0.99948487, 0.49326861], 9726 [- 6.27340392, - 0.00031941, 0.00019566, 7.27308451, 0.99902436, 0.99948493, 0.49326836], 9727 [- 6.27340400, - 0.00031938, 0.00019564, 7.27308462, 0.99902446, 0.99948498, 0.49326869], 9728 [- 6.27340408, - 0.00031935, 0.00019562, 7.27308473, 0.99902456, 0.99948503, 0.49326883], 9729 [- 6.27340416, - 0.00031931, 0.00019560, 7.27308485, 0.99902466, 0.99948509, 0.49326857], 9730 [- 6.27340424, - 0.00031928, 0.00019558, 7.27308496, 0.99902476, 0.99948514, 0.49326861], 9731 [- 6.27340432, - 0.00031925, 0.00019556, 7.27308507, 0.99902486, 0.99948519, 0.49326841], 9732 [- 6.27340440, - 0.00031922, 0.00019554, 7.27308518, 0.99902496, 0.99948525, 0.49326856], 9733 [- 6.27340448, - 0.00031918, 0.00019552, 7.27308529, 0.99902506, 0.99948530, 0.49326867], 9734 [- 6.27340455, - 0.00031915, 0.00019550, 7.27308540, 0.99902516, 0.99948535, 0.49326859], 9735 [- 6.27340463, - 0.00031912, 0.00019548, 7.27308552, 0.99902526, 0.99948541, 0.49326854], 9736 [- 6.27340471, - 0.00031908, 0.00019546, 7.27308563, 0.99902536, 0.99948546, 0.49326869], 9737 [- 6.27340479, - 0.00031905, 0.00019544, 7.27308574, 0.99902546, 0.99948551, 0.49326853], 9738 [- 6.27340487, - 0.00031902, 0.00019542, 7.27308585, 0.99902557, 0.99948556, 0.49326880], 9739 [- 6.27340495, - 0.00031899, 0.00019540, 7.27308596, 0.99902567, 0.99948562, 0.49326872], 9740 [- 6.27340503, - 0.00031895, 0.00019538, 7.27308607, 0.99902577, 0.99948567, 0.49326861], 9741 [- 6.27340511, - 0.00031892, 0.00019536, 7.27308619, 0.99902587, 0.99948572, 0.49326878], 9742 [- 6.27340518, - 0.00031889, 0.00019534, 7.27308630, 0.99902597, 0.99948578, 0.49326876], 9743 [- 6.27340526, - 0.00031885, 0.00019532, 7.27308641, 0.99902607, 0.99948583, 0.49326873], 9744 [- 6.27340534, - 0.00031882, 0.00019530, 7.27308652, 0.99902617, 0.99948588, 0.49326869], 9745 [- 6.27340542, - 0.00031879, 0.00019528, 7.27308663, 0.99902627, 0.99948594, 0.49326868], 9746 [- 6.27340550, - 0.00031876, 0.00019526, 7.27308674, 0.99902637, 0.99948599, 0.49326886], 9747 [- 6.27340558, - 0.00031872, 0.00019524, 7.27308685, 0.99902647, 0.99948604, 0.49326868], 9748 [- 6.27340566, - 0.00031869, 0.00019522, 7.27308697, 0.99902657, 0.99948609, 0.49326883], 9749 [- 6.27340573, - 0.00031866, 0.00019520, 7.27308708, 0.99902667, 0.99948615, 0.49326876], 9750 [- 6.27340581, - 0.00031862, 0.00019518, 7.27308719, 0.99902677, 0.99948620, 0.49326874], 9751 [- 6.27340589, - 0.00031859, 0.00019516, 7.27308730, 0.99902687, 0.99948625, 0.49326882], 9752 [- 6.27340597, - 0.00031856, 0.00019514, 7.27308741, 0.99902697, 0.99948631, 0.49326866], 9753 [- 6.27340605, - 0.00031853, 0.00019512, 7.27308752, 0.99902707, 0.99948636, 0.49326860], 9754 [- 6.27340613, - 0.00031849, 0.00019510, 7.27308763, 0.99902717, 0.99948641, 0.49326865], 9755 [- 6.27340621, - 0.00031846, 0.00019508, 7.27308775, 0.99902727, 0.99948646, 0.49326872], 9756 [- 6.27340628, - 0.00031843, 0.00019506, 7.27308786, 0.99902737, 0.99948652, 0.49326863], 9757 [- 6.27340636, - 0.00031839, 0.00019504, 7.27308797, 0.99902747, 0.99948657, 0.49326869], 9758 [- 6.27340644, - 0.00031836, 0.00019502, 7.27308808, 0.99902757, 0.99948662, 0.49326888], 9759 [- 6.27340652, - 0.00031833, 0.00019500, 7.27308819, 0.99902767, 0.99948668, 0.49326895], 9760 [- 6.27340660, - 0.00031830, 0.00019498, 7.27308830, 0.99902777, 0.99948673, 0.49326876], 9761 [- 6.27340668, - 0.00031826, 0.00019496, 7.27308841, 0.99902787, 0.99948678, 0.49326889], 9762 [- 6.27340675, - 0.00031823, 0.00019494, 7.27308852, 0.99902797, 0.99948683, 0.49326878], 9763 [- 6.27340683, - 0.00031820, 0.00019492, 7.27308863, 0.99902807, 0.99948689, 0.49326887], 9764 [- 6.27340691, - 0.00031817, 0.00019490, 7.27308875, 0.99902817, 0.99948694, 0.49326916], 9765 [- 6.27340699, - 0.00031813, 0.00019488, 7.27308886, 0.99902827, 0.99948699, 0.49326908], 9766 [- 6.27340707, - 0.00031810, 0.00019486, 7.27308897, 0.99902837, 0.99948704, 0.49326893], 9767 [- 6.27340715, - 0.00031807, 0.00019484, 7.27308908, 0.99902847, 0.99948710, 0.49326890], 9768 [- 6.27340722, - 0.00031803, 0.00019482, 7.27308919, 0.99902857, 0.99948715, 0.49326887], 9769 [- 6.27340730, - 0.00031800, 0.00019480, 7.27308930, 0.99902867, 0.99948720, 0.49326878], 9770 [- 6.27340738, - 0.00031797, 0.00019478, 7.27308941, 0.99902877, 0.99948726, 0.49326894], 9771 [- 6.27340746, - 0.00031794, 0.00019476, 7.27308952, 0.99902887, 0.99948731, 0.49326894], 9772 [- 6.27340754, - 0.00031790, 0.00019474, 7.27308963, 0.99902897, 0.99948736, 0.49326908], 9773 [- 6.27340761, - 0.00031787, 0.00019472, 7.27308974, 0.99902907, 0.99948741, 0.49326876], 9774 [- 6.27340769, - 0.00031784, 0.00019470, 7.27308985, 0.99902917, 0.99948747, 0.49326912], 9775 [- 6.27340777, - 0.00031781, 0.00019468, 7.27308996, 0.99902927, 0.99948752, 0.49326904], 9776 [- 6.27340785, - 0.00031777, 0.00019466, 7.27309008, 0.99902937, 0.99948757, 0.49326901], 9777 [- 6.27340793, - 0.00031774, 0.00019464, 7.27309019, 0.99902947, 0.99948762, 0.49326930], 9778 [- 6.27340801, - 0.00031771, 0.00019462, 7.27309030, 0.99902957, 0.99948768, 0.49326907], 9779 [- 6.27340808, - 0.00031768, 0.00019460, 7.27309041, 0.99902967, 0.99948773, 0.49326924], 9780 [- 6.27340816, - 0.00031764, 0.00019458, 7.27309052, 0.99902977, 0.99948778, 0.49326904], 9781 [- 6.27340824, - 0.00031761, 0.00019456, 7.27309063, 0.99902987, 0.99948783, 0.49326893], 9782 [- 6.27340832, - 0.00031758, 0.00019454, 7.27309074, 0.99902997, 0.99948789, 0.49326909], 9783 [- 6.27340840, - 0.00031755, 0.00019452, 7.27309085, 0.99903006, 0.99948794, 0.49326930], 9784 [- 6.27340847, - 0.00031751, 0.00019450, 7.27309096, 0.99903016, 0.99948799, 0.49326922], 9785 [- 6.27340855, - 0.00031748, 0.00019448, 7.27309107, 0.99903026, 0.99948804, 0.49326913], 9786 [- 6.27340863, - 0.00031745, 0.00019446, 7.27309118, 0.99903036, 0.99948810, 0.49326905], 9787 [- 6.27340871, - 0.00031742, 0.00019444, 7.27309129, 0.99903046, 0.99948815, 0.49326923], 9788 [- 6.27340879, - 0.00031738, 0.00019442, 7.27309140, 0.99903056, 0.99948820, 0.49326938], 9789 [- 6.27340886, - 0.00031735, 0.00019440, 7.27309151, 0.99903066, 0.99948825, 0.49326909], 9790 [- 6.27340894, - 0.00031732, 0.00019438, 7.27309162, 0.99903076, 0.99948831, 0.49326912], 9791 [- 6.27340902, - 0.00031728, 0.00019436, 7.27309173, 0.99903086, 0.99948836, 0.49326920], 9792 [- 6.27340910, - 0.00031725, 0.00019434, 7.27309184, 0.99903096, 0.99948841, 0.49326917], 9793 [- 6.27340917, - 0.00031722, 0.00019432, 7.27309196, 0.99903106, 0.99948846, 0.49326921], 9794 [- 6.27340925, - 0.00031719, 0.00019430, 7.27309207, 0.99903116, 0.99948852, 0.49326919], 9795 [- 6.27340933, - 0.00031715, 0.00019428, 7.27309218, 0.99903126, 0.99948857, 0.49326928], 9796 [- 6.27340941, - 0.00031712, 0.00019426, 7.27309229, 0.99903136, 0.99948862, 0.49326918], 9797 [- 6.27340949, - 0.00031709, 0.00019424, 7.27309240, 0.99903146, 0.99948867, 0.49326958], 9798 [- 6.27340956, - 0.00031706, 0.00019422, 7.27309251, 0.99903156, 0.99948873, 0.49326936], 9799 [- 6.27340964, - 0.00031702, 0.00019420, 7.27309262, 0.99903165, 0.99948878, 0.49326927], 9800 [- 6.27340972, - 0.00031699, 0.00019418, 7.27309273, 0.99903175, 0.99948883, 0.49326942], 9801 [- 6.27340980, - 0.00031696, 0.00019416, 7.27309284, 0.99903185, 0.99948888, 0.49326912], 9802 [- 6.27340987, - 0.00031693, 0.00019414, 7.27309295, 0.99903195, 0.99948894, 0.49326924], 9803 [- 6.27340995, - 0.00031690, 0.00019412, 7.27309306, 0.99903205, 0.99948899, 0.49326951], 9804 [- 6.27341003, - 0.00031686, 0.00019410, 7.27309317, 0.99903215, 0.99948904, 0.49326942], 9805 [- 6.27341011, - 0.00031683, 0.00019408, 7.27309328, 0.99903225, 0.99948909, 0.49326925], 9806 [- 6.27341019, - 0.00031680, 0.00019406, 7.27309339, 0.99903235, 0.99948914, 0.49326927], 9807 [- 6.27341026, - 0.00031677, 0.00019404, 7.27309350, 0.99903245, 0.99948920, 0.49326936], 9808 [- 6.27341034, - 0.00031673, 0.00019402, 7.27309361, 0.99903255, 0.99948925, 0.49326944], 9809 [- 6.27341042, - 0.00031670, 0.00019400, 7.27309372, 0.99903265, 0.99948930, 0.49326949], 9810 [- 6.27341050, - 0.00031667, 0.00019398, 7.27309383, 0.99903274, 0.99948935, 0.49326915], 9811 [- 6.27341057, - 0.00031664, 0.00019396, 7.27309394, 0.99903284, 0.99948941, 0.49326929], 9812 [- 6.27341065, - 0.00031660, 0.00019394, 7.27309405, 0.99903294, 0.99948946, 0.49326955], 9813 [- 6.27341073, - 0.00031657, 0.00019392, 7.27309416, 0.99903304, 0.99948951, 0.49326921], 9814 [- 6.27341081, - 0.00031654, 0.00019390, 7.27309427, 0.99903314, 0.99948956, 0.49326941], 9815 [- 6.27341088, - 0.00031651, 0.00019388, 7.27309438, 0.99903324, 0.99948961, 0.49326954], 9816 [- 6.27341096, - 0.00031647, 0.00019386, 7.27309449, 0.99903334, 0.99948967, 0.49326935], 9817 [- 6.27341104, - 0.00031644, 0.00019384, 7.27309460, 0.99903344, 0.99948972, 0.49326969], 9818 [- 6.27341112, - 0.00031641, 0.00019382, 7.27309471, 0.99903354, 0.99948977, 0.49326971], 9819 [- 6.27341119, - 0.00031638, 0.00019380, 7.27309482, 0.99903363, 0.99948982, 0.49326945], 9820 [- 6.27341127, - 0.00031634, 0.00019378, 7.27309493, 0.99903373, 0.99948988, 0.49326964], 9821 [- 6.27341135, - 0.00031631, 0.00019376, 7.27309504, 0.99903383, 0.99948993, 0.49326955], 9822 [- 6.27341143, - 0.00031628, 0.00019374, 7.27309515, 0.99903393, 0.99948998, 0.49326931], 9823 [- 6.27341150, - 0.00031625, 0.00019372, 7.27309526, 0.99903403, 0.99949003, 0.49326939], 9824 [- 6.27341158, - 0.00031622, 0.00019370, 7.27309537, 0.99903413, 0.99949008, 0.49326953], 9825 [- 6.27341166, - 0.00031618, 0.00019368, 7.27309547, 0.99903423, 0.99949014, 0.49326974], 9826 [- 6.27341173, - 0.00031615, 0.00019366, 7.27309558, 0.99903433, 0.99949019, 0.49326980], 9827 [- 6.27341181, - 0.00031612, 0.00019364, 7.27309569, 0.99903442, 0.99949024, 0.49326965], 9828 [- 6.27341189, - 0.00031609, 0.00019362, 7.27309580, 0.99903452, 0.99949029, 0.49326969], 9829 [- 6.27341197, - 0.00031605, 0.00019360, 7.27309591, 0.99903462, 0.99949034, 0.49326954], 9830 [- 6.27341204, - 0.00031602, 0.00019358, 7.27309602, 0.99903472, 0.99949040, 0.49326953], 9831 [- 6.27341212, - 0.00031599, 0.00019356, 7.27309613, 0.99903482, 0.99949045, 0.49326986], 9832 [- 6.27341220, - 0.00031596, 0.00019354, 7.27309624, 0.99903492, 0.99949050, 0.49326990], 9833 [- 6.27341228, - 0.00031592, 0.00019352, 7.27309635, 0.99903502, 0.99949055, 0.49326950], 9834 [- 6.27341235, - 0.00031589, 0.00019350, 7.27309646, 0.99903511, 0.99949060, 0.49326968], 9835 [- 6.27341243, - 0.00031586, 0.00019348, 7.27309657, 0.99903521, 0.99949066, 0.49326946], 9836 [- 6.27341251, - 0.00031583, 0.00019346, 7.27309668, 0.99903531, 0.99949071, 0.49326958], 9837 [- 6.27341258, - 0.00031580, 0.00019344, 7.27309679, 0.99903541, 0.99949076, 0.49326990], 9838 [- 6.27341266, - 0.00031576, 0.00019342, 7.27309690, 0.99903551, 0.99949081, 0.49326972], 9839 [- 6.27341274, - 0.00031573, 0.00019340, 7.27309701, 0.99903561, 0.99949086, 0.49326980], 9840 [- 6.27341282, - 0.00031570, 0.00019338, 7.27309712, 0.99903570, 0.99949092, 0.49327001], 9841 [- 6.27341289, - 0.00031567, 0.00019336, 7.27309723, 0.99903580, 0.99949097, 0.49326985], 9842 [- 6.27341297, - 0.00031563, 0.00019334, 7.27309734, 0.99903590, 0.99949102, 0.49326983], 9843 [- 6.27341305, - 0.00031560, 0.00019333, 7.27309744, 0.99903600, 0.99949107, 0.49326985], 9844 [- 6.27341312, - 0.00031557, 0.00019331, 7.27309755, 0.99903610, 0.99949112, 0.49327005], 9845 [- 6.27341320, - 0.00031554, 0.00019329, 7.27309766, 0.99903620, 0.99949118, 0.49326985], 9846 [- 6.27341328, - 0.00031551, 0.00019327, 7.27309777, 0.99903629, 0.99949123, 0.49326980], 9847 [- 6.27341336, - 0.00031547, 0.00019325, 7.27309788, 0.99903639, 0.99949128, 0.49326990], 9848 [- 6.27341343, - 0.00031544, 0.00019323, 7.27309799, 0.99903649, 0.99949133, 0.49326985], 9849 [- 6.27341351, - 0.00031541, 0.00019321, 7.27309810, 0.99903659, 0.99949138, 0.49326999], 9850 [- 6.27341359, - 0.00031538, 0.00019319, 7.27309821, 0.99903669, 0.99949144, 0.49326989], 9851 [- 6.27341366, - 0.00031535, 0.00019317, 7.27309832, 0.99903679, 0.99949149, 0.49326987], 9852 [- 6.27341374, - 0.00031531, 0.00019315, 7.27309843, 0.99903688, 0.99949154, 0.49327012], 9853 [- 6.27341382, - 0.00031528, 0.00019313, 7.27309854, 0.99903698, 0.99949159, 0.49326994], 9854 [- 6.27341389, - 0.00031525, 0.00019311, 7.27309864, 0.99903708, 0.99949164, 0.49327001], 9855 [- 6.27341397, - 0.00031522, 0.00019309, 7.27309875, 0.99903718, 0.99949169, 0.49327008], 9856 [- 6.27341405, - 0.00031519, 0.00019307, 7.27309886, 0.99903728, 0.99949175, 0.49327008], 9857 [- 6.27341412, - 0.00031515, 0.00019305, 7.27309897, 0.99903737, 0.99949180, 0.49326970], 9858 [- 6.27341420, - 0.00031512, 0.00019303, 7.27309908, 0.99903747, 0.99949185, 0.49326989], 9859 [- 6.27341428, - 0.00031509, 0.00019301, 7.27309919, 0.99903757, 0.99949190, 0.49326992], 9860 [- 6.27341435, - 0.00031506, 0.00019299, 7.27309930, 0.99903767, 0.99949195, 0.49327000], 9861 [- 6.27341443, - 0.00031502, 0.00019297, 7.27309941, 0.99903777, 0.99949200, 0.49327006], 9862 [- 6.27341451, - 0.00031499, 0.00019295, 7.27309952, 0.99903786, 0.99949206, 0.49327023], 9863 [- 6.27341459, - 0.00031496, 0.00019293, 7.27309962, 0.99903796, 0.99949211, 0.49327002], 9864 [- 6.27341466, - 0.00031493, 0.00019291, 7.27309973, 0.99903806, 0.99949216, 0.49327004], 9865 [- 6.27341474, - 0.00031490, 0.00019289, 7.27309984, 0.99903816, 0.99949221, 0.49327010], 9866 [- 6.27341482, - 0.00031486, 0.00019287, 7.27309995, 0.99903826, 0.99949226, 0.49327000], 9867 [- 6.27341489, - 0.00031483, 0.00019285, 7.27310006, 0.99903835, 0.99949231, 0.49326994], 9868 [- 6.27341497, - 0.00031480, 0.00019283, 7.27310017, 0.99903845, 0.99949237, 0.49327008], 9869 [- 6.27341505, - 0.00031477, 0.00019281, 7.27310028, 0.99903855, 0.99949242, 0.49327002], 9870 [- 6.27341512, - 0.00031474, 0.00019279, 7.27310039, 0.99903865, 0.99949247, 0.49327015], 9871 [- 6.27341520, - 0.00031470, 0.00019277, 7.27310049, 0.99903874, 0.99949252, 0.49326998], 9872 [- 6.27341528, - 0.00031467, 0.00019275, 7.27310060, 0.99903884, 0.99949257, 0.49327030], 9873 [- 6.27341535, - 0.00031464, 0.00019274, 7.27310071, 0.99903894, 0.99949262, 0.49326995], 9874 [- 6.27341543, - 0.00031461, 0.00019272, 7.27310082, 0.99903904, 0.99949268, 0.49327013], 9875 [- 6.27341550, - 0.00031458, 0.00019270, 7.27310093, 0.99903914, 0.99949273, 0.49327030], 9876 [- 6.27341558, - 0.00031454, 0.00019268, 7.27310104, 0.99903923, 0.99949278, 0.49327016], 9877 [- 6.27341566, - 0.00031451, 0.00019266, 7.27310115, 0.99903933, 0.99949283, 0.49327003], 9878 [- 6.27341573, - 0.00031448, 0.00019264, 7.27310125, 0.99903943, 0.99949288, 0.49327020], 9879 [- 6.27341581, - 0.00031445, 0.00019262, 7.27310136, 0.99903953, 0.99949293, 0.49327016], 9880 [- 6.27341589, - 0.00031442, 0.00019260, 7.27310147, 0.99903962, 0.99949298, 0.49327038], 9881 [- 6.27341596, - 0.00031438, 0.00019258, 7.27310158, 0.99903972, 0.99949304, 0.49327020], 9882 [- 6.27341604, - 0.00031435, 0.00019256, 7.27310169, 0.99903982, 0.99949309, 0.49326989], 9883 [- 6.27341612, - 0.00031432, 0.00019254, 7.27310180, 0.99903992, 0.99949314, 0.49327033], 9884 [- 6.27341619, - 0.00031429, 0.00019252, 7.27310190, 0.99904001, 0.99949319, 0.49327021], 9885 [- 6.27341627, - 0.00031426, 0.00019250, 7.27310201, 0.99904011, 0.99949324, 0.49327047], 9886 [- 6.27341635, - 0.00031423, 0.00019248, 7.27310212, 0.99904021, 0.99949329, 0.49327024], 9887 [- 6.27341642, - 0.00031419, 0.00019246, 7.27310223, 0.99904031, 0.99949335, 0.49327034], 9888 [- 6.27341650, - 0.00031416, 0.00019244, 7.27310234, 0.99904040, 0.99949340, 0.49327024], 9889 [- 6.27341658, - 0.00031413, 0.00019242, 7.27310245, 0.99904050, 0.99949345, 0.49327049], 9890 [- 6.27341665, - 0.00031410, 0.00019240, 7.27310255, 0.99904060, 0.99949350, 0.49327029], 9891 [- 6.27341673, - 0.00031407, 0.00019238, 7.27310266, 0.99904070, 0.99949355, 0.49327027], 9892 [- 6.27341680, - 0.00031403, 0.00019236, 7.27310277, 0.99904079, 0.99949360, 0.49327052], 9893 [- 6.27341688, - 0.00031400, 0.00019234, 7.27310288, 0.99904089, 0.99949365, 0.49327062], 9894 [- 6.27341696, - 0.00031397, 0.00019232, 7.27310299, 0.99904099, 0.99949370, 0.49327051], 9895 [- 6.27341703, - 0.00031394, 0.00019231, 7.27310309, 0.99904108, 0.99949376, 0.49327035], 9896 [- 6.27341711, - 0.00031391, 0.00019229, 7.27310320, 0.99904118, 0.99949381, 0.49327029], 9897 [- 6.27341719, - 0.00031387, 0.00019227, 7.27310331, 0.99904128, 0.99949386, 0.49327040], 9898 [- 6.27341726, - 0.00031384, 0.00019225, 7.27310342, 0.99904138, 0.99949391, 0.49327054], 9899 [- 6.27341734, - 0.00031381, 0.00019223, 7.27310353, 0.99904147, 0.99949396, 0.49327057], 9900 [- 6.27341741, - 0.00031378, 0.00019221, 7.27310363, 0.99904157, 0.99949401, 0.49327065], 9901 [- 6.27341749, - 0.00031375, 0.00019219, 7.27310374, 0.99904167, 0.99949406, 0.49327055], 9902 [- 6.27341757, - 0.00031372, 0.00019217, 7.27310385, 0.99904177, 0.99949412, 0.49327044], 9903 [- 6.27341764, - 0.00031368, 0.00019215, 7.27310396, 0.99904186, 0.99949417, 0.49327060], 9904 [- 6.27341772, - 0.00031365, 0.00019213, 7.27310407, 0.99904196, 0.99949422, 0.49327062], 9905 [- 6.27341779, - 0.00031362, 0.00019211, 7.27310417, 0.99904206, 0.99949427, 0.49327057], 9906 [- 6.27341787, - 0.00031359, 0.00019209, 7.27310428, 0.99904215, 0.99949432, 0.49327068], 9907 [- 6.27341795, - 0.00031356, 0.00019207, 7.27310439, 0.99904225, 0.99949437, 0.49327087], 9908 [- 6.27341802, - 0.00031353, 0.00019205, 7.27310450, 0.99904235, 0.99949442, 0.49327065], 9909 [- 6.27341810, - 0.00031349, 0.00019203, 7.27310461, 0.99904244, 0.99949447, 0.49327040], 9910 [- 6.27341817, - 0.00031346, 0.00019201, 7.27310471, 0.99904254, 0.99949453, 0.49327056], 9911 [- 6.27341825, - 0.00031343, 0.00019199, 7.27310482, 0.99904264, 0.99949458, 0.49327057], 9912 [- 6.27341833, - 0.00031340, 0.00019197, 7.27310493, 0.99904274, 0.99949463, 0.49327059], 9913 [- 6.27341840, - 0.00031337, 0.00019195, 7.27310504, 0.99904283, 0.99949468, 0.49327075], 9914 [- 6.27341848, - 0.00031333, 0.00019194, 7.27310514, 0.99904293, 0.99949473, 0.49327058], 9915 [- 6.27341855, - 0.00031330, 0.00019192, 7.27310525, 0.99904303, 0.99949478, 0.49327073], 9916 [- 6.27341863, - 0.00031327, 0.00019190, 7.27310536, 0.99904312, 0.99949483, 0.49327054], 9917 [- 6.27341871, - 0.00031324, 0.00019188, 7.27310547, 0.99904322, 0.99949488, 0.49327048], 9918 [- 6.27341878, - 0.00031321, 0.00019186, 7.27310557, 0.99904332, 0.99949493, 0.49327086], 9919 [- 6.27341886, - 0.00031318, 0.00019184, 7.27310568, 0.99904341, 0.99949499, 0.49327056], 9920 [- 6.27341893, - 0.00031314, 0.00019182, 7.27310579, 0.99904351, 0.99949504, 0.49327071], 9921 [- 6.27341901, - 0.00031311, 0.00019180, 7.27310590, 0.99904361, 0.99949509, 0.49327045], 9922 [- 6.27341909, - 0.00031308, 0.00019178, 7.27310600, 0.99904370, 0.99949514, 0.49327067], 9923 [- 6.27341916, - 0.00031305, 0.00019176, 7.27310611, 0.99904380, 0.99949519, 0.49327067], 9924 [- 6.27341924, - 0.00031302, 0.00019174, 7.27310622, 0.99904390, 0.99949524, 0.49327074], 9925 [- 6.27341931, - 0.00031299, 0.00019172, 7.27310633, 0.99904399, 0.99949529, 0.49327107], 9926 [- 6.27341939, - 0.00031295, 0.00019170, 7.27310643, 0.99904409, 0.99949534, 0.49327064], 9927 [- 6.27341946, - 0.00031292, 0.00019168, 7.27310654, 0.99904419, 0.99949539, 0.49327063], 9928 [- 6.27341954, - 0.00031289, 0.00019166, 7.27310665, 0.99904428, 0.99949545, 0.49327050], 9929 [- 6.27341962, - 0.00031286, 0.00019164, 7.27310676, 0.99904438, 0.99949550, 0.49327069], 9930 [- 6.27341969, - 0.00031283, 0.00019162, 7.27310686, 0.99904448, 0.99949555, 0.49327081], 9931 [- 6.27341977, - 0.00031280, 0.00019161, 7.27310697, 0.99904457, 0.99949560, 0.49327077], 9932 [- 6.27341984, - 0.00031276, 0.00019159, 7.27310708, 0.99904467, 0.99949565, 0.49327081], 9933 [- 6.27341992, - 0.00031273, 0.00019157, 7.27310719, 0.99904477, 0.99949570, 0.49327088], 9934 [- 6.27341999, - 0.00031270, 0.00019155, 7.27310729, 0.99904486, 0.99949575, 0.49327082], 9935 [- 6.27342007, - 0.00031267, 0.00019153, 7.27310740, 0.99904496, 0.99949580, 0.49327067], 9936 [- 6.27342015, - 0.00031264, 0.00019151, 7.27310751, 0.99904506, 0.99949585, 0.49327061], 9937 [- 6.27342022, - 0.00031261, 0.00019149, 7.27310761, 0.99904515, 0.99949590, 0.49327079], 9938 [- 6.27342030, - 0.00031258, 0.00019147, 7.27310772, 0.99904525, 0.99949595, 0.49327103], 9939 [- 6.27342037, - 0.00031254, 0.00019145, 7.27310783, 0.99904535, 0.99949601, 0.49327107], 9940 [- 6.27342045, - 0.00031251, 0.00019143, 7.27310794, 0.99904544, 0.99949606, 0.49327084], 9941 [- 6.27342052, - 0.00031248, 0.00019141, 7.27310804, 0.99904554, 0.99949611, 0.49327096], 9942 [- 6.27342060, - 0.00031245, 0.00019139, 7.27310815, 0.99904563, 0.99949616, 0.49327062], 9943 [- 6.27342067, - 0.00031242, 0.00019137, 7.27310826, 0.99904573, 0.99949621, 0.49327088], 9944 [- 6.27342075, - 0.00031239, 0.00019135, 7.27310836, 0.99904583, 0.99949626, 0.49327094], 9945 [- 6.27342083, - 0.00031235, 0.00019133, 7.27310847, 0.99904592, 0.99949631, 0.49327095], 9946 [- 6.27342090, - 0.00031232, 0.00019132, 7.27310858, 0.99904602, 0.99949636, 0.49327111], 9947 [- 6.27342098, - 0.00031229, 0.00019130, 7.27310869, 0.99904612, 0.99949641, 0.49327066], 9948 [- 6.27342105, - 0.00031226, 0.00019128, 7.27310879, 0.99904621, 0.99949646, 0.49327112], 9949 [- 6.27342113, - 0.00031223, 0.00019126, 7.27310890, 0.99904631, 0.99949651, 0.49327094], 9950 [- 6.27342120, - 0.00031220, 0.00019124, 7.27310901, 0.99904641, 0.99949656, 0.49327097], 9951 [- 6.27342128, - 0.00031217, 0.00019122, 7.27310911, 0.99904650, 0.99949662, 0.49327094], 9952 [- 6.27342135, - 0.00031213, 0.00019120, 7.27310922, 0.99904660, 0.99949667, 0.49327120], 9953 [- 6.27342143, - 0.00031210, 0.00019118, 7.27310933, 0.99904669, 0.99949672, 0.49327123], 9954 [- 6.27342150, - 0.00031207, 0.00019116, 7.27310943, 0.99904679, 0.99949677, 0.49327124], 9955 [- 6.27342158, - 0.00031204, 0.00019114, 7.27310954, 0.99904689, 0.99949682, 0.49327089], 9956 [- 6.27342166, - 0.00031201, 0.00019112, 7.27310965, 0.99904698, 0.99949687, 0.49327096], 9957 [- 6.27342173, - 0.00031198, 0.00019110, 7.27310975, 0.99904708, 0.99949692, 0.49327093], 9958 [- 6.27342181, - 0.00031195, 0.00019108, 7.27310986, 0.99904717, 0.99949697, 0.49327128], 9959 [- 6.27342188, - 0.00031191, 0.00019106, 7.27310997, 0.99904727, 0.99949702, 0.49327122], 9960 [- 6.27342196, - 0.00031188, 0.00019105, 7.27311007, 0.99904737, 0.99949707, 0.49327128], 9961 [- 6.27342203, - 0.00031185, 0.00019103, 7.27311018, 0.99904746, 0.99949712, 0.49327113], 9962 [- 6.27342211, - 0.00031182, 0.00019101, 7.27311029, 0.99904756, 0.99949717, 0.49327121], 9963 [- 6.27342218, - 0.00031179, 0.00019099, 7.27311039, 0.99904765, 0.99949722, 0.49327115], 9964 [- 6.27342226, - 0.00031176, 0.00019097, 7.27311050, 0.99904775, 0.99949727, 0.49327114], 9965 [- 6.27342233, - 0.00031173, 0.00019095, 7.27311061, 0.99904785, 0.99949733, 0.49327102], 9966 [- 6.27342241, - 0.00031169, 0.00019093, 7.27311071, 0.99904794, 0.99949738, 0.49327120], 9967 [- 6.27342248, - 0.00031166, 0.00019091, 7.27311082, 0.99904804, 0.99949743, 0.49327130], 9968 [- 6.27342256, - 0.00031163, 0.00019089, 7.27311093, 0.99904813, 0.99949748, 0.49327109], 9969 [- 6.27342263, - 0.00031160, 0.00019087, 7.27311103, 0.99904823, 0.99949753, 0.49327132], 9970 [- 6.27342271, - 0.00031157, 0.00019085, 7.27311114, 0.99904833, 0.99949758, 0.49327146], 9971 [- 6.27342278, - 0.00031154, 0.00019083, 7.27311125, 0.99904842, 0.99949763, 0.49327090], 9972 [- 6.27342286, - 0.00031151, 0.00019081, 7.27311135, 0.99904852, 0.99949768, 0.49327123], 9973 [- 6.27342293, - 0.00031147, 0.00019080, 7.27311146, 0.99904861, 0.99949773, 0.49327134], 9974 [- 6.27342301, - 0.00031144, 0.00019078, 7.27311156, 0.99904871, 0.99949778, 0.49327133], 9975 [- 6.27342308, - 0.00031141, 0.00019076, 7.27311167, 0.99904880, 0.99949783, 0.49327117], 9976 [- 6.27342316, - 0.00031138, 0.00019074, 7.27311178, 0.99904890, 0.99949788, 0.49327124], 9977 [- 6.27342323, - 0.00031135, 0.00019072, 7.27311188, 0.99904900, 0.99949793, 0.49327116], 9978 [- 6.27342331, - 0.00031132, 0.00019070, 7.27311199, 0.99904909, 0.99949798, 0.49327125], 9979 [- 6.27342338, - 0.00031129, 0.00019068, 7.27311210, 0.99904919, 0.99949803, 0.49327132], 9980 [- 6.27342346, - 0.00031126, 0.00019066, 7.27311220, 0.99904928, 0.99949808, 0.49327161], 9981 [- 6.27342353, - 0.00031122, 0.00019064, 7.27311231, 0.99904938, 0.99949813, 0.49327137], 9982 [- 6.27342361, - 0.00031119, 0.00019062, 7.27311242, 0.99904947, 0.99949818, 0.49327141], 9983 [- 6.27342368, - 0.00031116, 0.00019060, 7.27311252, 0.99904957, 0.99949824, 0.49327151], 9984 [- 6.27342376, - 0.00031113, 0.00019058, 7.27311263, 0.99904966, 0.99949829, 0.49327147], 9985 [- 6.27342383, - 0.00031110, 0.00019057, 7.27311273, 0.99904976, 0.99949834, 0.49327157], 9986 [- 6.27342391, - 0.00031107, 0.00019055, 7.27311284, 0.99904986, 0.99949839, 0.49327158], 9987 [- 6.27342398, - 0.00031104, 0.00019053, 7.27311295, 0.99904995, 0.99949844, 0.49327140], 9988 [- 6.27342406, - 0.00031101, 0.00019051, 7.27311305, 0.99905005, 0.99949849, 0.49327149], 9989 [- 6.27342413, - 0.00031097, 0.00019049, 7.27311316, 0.99905014, 0.99949854, 0.49327130], 9990 [- 6.27342421, - 0.00031094, 0.00019047, 7.27311326, 0.99905024, 0.99949859, 0.49327138], 9991 [- 6.27342428, - 0.00031091, 0.00019045, 7.27311337, 0.99905033, 0.99949864, 0.49327154], 9992 [- 6.27342436, - 0.00031088, 0.00019043, 7.27311348, 0.99905043, 0.99949869, 0.49327144], 9993 [- 6.27342443, - 0.00031085, 0.00019041, 7.27311358, 0.99905052, 0.99949874, 0.49327149], 9994 [- 6.27342451, - 0.00031082, 0.00019039, 7.27311369, 0.99905062, 0.99949879, 0.49327160], 9995 [- 6.27342458, - 0.00031079, 0.00019037, 7.27311379, 0.99905071, 0.99949884, 0.49327162], 9996 [- 6.27342466, - 0.00031076, 0.00019035, 7.27311390, 0.99905081, 0.99949889, 0.49327146], 9997 [- 6.27342473, - 0.00031072, 0.00019034, 7.27311401, 0.99905091, 0.99949894, 0.49327178], 9998 [- 6.27342480, - 0.00031069, 0.00019032, 7.27311411, 0.99905100, 0.99949899, 0.49327156], 9999 [- 6.27342488, - 0.00031066, 0.00019030, 7.27311422, 0.99905110, 0.99949904, 0.49327151], 10000 [- 6.27342495, - 0.00031063, 0.00019028, 7.27311432, 0.99905119, 0.99949909, 0.49327157], 10001 [- 6.27342503, - 0.00031060, 0.00019026, 7.27311443, 0.99905129, 0.99949914, 0.49327162], 10002 [- 6.27342510, - 0.00031057, 0.00019024, 7.27311453, 0.99905138, 0.99949919, 0.49327180], 10003 [- 6.27342518, - 0.00031054, 0.00019022, 7.27311464, 0.99905148, 0.99949924, 0.49327153], 10004 [- 6.27342525, - 0.00031051, 0.00019020, 7.27311475, 0.99905157, 0.99949929, 0.49327170], 10005 [- 6.27342533, - 0.00031047, 0.00019018, 7.27311485, 0.99905167, 0.99949934, 0.49327164], 10006 [- 6.27342540, - 0.00031044, 0.00019016, 7.27311496, 0.99905176, 0.99949939, 0.49327177], 10007 [- 6.27342548, - 0.00031041, 0.00019014, 7.27311506, 0.99905186, 0.99949944, 0.49327171], 10008 [- 6.27342555, - 0.00031038, 0.00019013, 7.27311517, 0.99905195, 0.99949949, 0.49327163], 10009 [- 6.27342563, - 0.00031035, 0.00019011, 7.27311527, 0.99905205, 0.99949954, 0.49327148], 10010 [- 6.27342570, - 0.00031032, 0.00019009, 7.27311538, 0.99905214, 0.99949959, 0.49327177], 10011 [- 6.27342577, - 0.00031029, 0.00019007, 7.27311549, 0.99905224, 0.99949964, 0.49327190], 10012 [- 6.27342585, - 0.00031026, 0.00019005, 7.27311559, 0.99905233, 0.99949969, 0.49327174], 10013 [- 6.27342592, - 0.00031023, 0.00019003, 7.27311570, 0.99905243, 0.99949974, 0.49327179], 10014 [- 6.27342600, - 0.00031019, 0.00019001, 7.27311580, 0.99905252, 0.99949979, 0.49327165], 10015 [- 6.27342607, - 0.00031016, 0.00018999, 7.27311591, 0.99905262, 0.99949984, 0.49327180], 10016 [- 6.27342615, - 0.00031013, 0.00018997, 7.27311601, 0.99905271, 0.99949989, 0.49327176], 10017 [- 6.27342622, - 0.00031010, 0.00018995, 7.27311612, 0.99905281, 0.99949994, 0.49327155], 10018 [- 6.27342630, - 0.00031007, 0.00018993, 7.27311622, 0.99905290, 0.99949999, 0.49327169], 10019 [- 6.27342637, - 0.00031004, 0.00018992, 7.27311633, 0.99905300, 0.99950004, 0.49327184], 10020 [- 6.27342644, - 0.00031001, 0.00018990, 7.27311644, 0.99905309, 0.99950009, 0.49327184], 10021 [- 6.27342652, - 0.00030998, 0.00018988, 7.27311654, 0.99905319, 0.99950014, 0.49327176], 10022 [- 6.27342659, - 0.00030995, 0.00018986, 7.27311665, 0.99905328, 0.99950019, 0.49327184], 10023 [- 6.27342667, - 0.00030992, 0.00018984, 7.27311675, 0.99905338, 0.99950024, 0.49327166], 10024 [- 6.27342674, - 0.00030988, 0.00018982, 7.27311686, 0.99905347, 0.99950029, 0.49327222], 10025 [- 6.27342682, - 0.00030985, 0.00018980, 7.27311696, 0.99905357, 0.99950034, 0.49327211], 10026 [- 6.27342689, - 0.00030982, 0.00018978, 7.27311707, 0.99905366, 0.99950039, 0.49327202], 10027 [- 6.27342696, - 0.00030979, 0.00018976, 7.27311717, 0.99905376, 0.99950044, 0.49327179], 10028 [- 6.27342704, - 0.00030976, 0.00018974, 7.27311728, 0.99905385, 0.99950049, 0.49327176], 10029 [- 6.27342711, - 0.00030973, 0.00018973, 7.27311738, 0.99905394, 0.99950054, 0.49327202], 10030 [- 6.27342719, - 0.00030970, 0.00018971, 7.27311749, 0.99905404, 0.99950059, 0.49327184], 10031 [- 6.27342726, - 0.00030967, 0.00018969, 7.27311759, 0.99905413, 0.99950064, 0.49327198], 10032 [- 6.27342733, - 0.00030964, 0.00018967, 7.27311770, 0.99905423, 0.99950069, 0.49327205], 10033 [- 6.27342741, - 0.00030961, 0.00018965, 7.27311780, 0.99905432, 0.99950074, 0.49327200], 10034 [- 6.27342748, - 0.00030957, 0.00018963, 7.27311791, 0.99905442, 0.99950079, 0.49327197], 10035 [- 6.27342756, - 0.00030954, 0.00018961, 7.27311801, 0.99905451, 0.99950084, 0.49327183], 10036 [- 6.27342763, - 0.00030951, 0.00018959, 7.27311812, 0.99905461, 0.99950089, 0.49327208], 10037 [- 6.27342771, - 0.00030948, 0.00018957, 7.27311822, 0.99905470, 0.99950094, 0.49327205], 10038 [- 6.27342778, - 0.00030945, 0.00018956, 7.27311833, 0.99905480, 0.99950099, 0.49327194]]) 10039 10040 if value == 'h': 10041 series = love_numbers[:, 0] 10042 elif value == 'k': 10043 series = love_numbers[:, 1] 10044 elif value == 'l': 10045 series = love_numbers[:, 2] 10046 elif value == 'gamma': 10047 series = love_numbers[:, 3] 10048 elif value == 'lambda': 10049 series = love_numbers[:, 4] 10050 10050 else: 10051 10051 raise RuntimeError(['love_numbers error message: unknow value:', value]) 10052 10053 # choose degree 1 term for CF reference system 10054 if frame =='CF': # from Blewitt, 2003, JGR10055 if value =='h':10056 series[1] = - 0.269;10057 elif value =='k':10058 series[1] = 0.021 ;10059 elif value =='l':10060 series[1] = 0.134 ;10052 10053 # choose degree 1 term for CF reference system 10054 if frame == 'CF': # from Blewitt, 2003, JGR 10055 if value == 'h': 10056 series[1] = - 0.269 10057 elif value == 'k': 10058 series[1] = 0.021 10059 elif value == 'l': 10060 series[1] = 0.134 10061 10061 10062 10062 return series 10063 -
issm/trunk-jpl/src/m/classes/SMBcomponents.py
r23833 r24213 3 3 from project3d import * 4 4 from WriteData import * 5 5 6 6 7 class SMBcomponents(object): … … 9 10 10 11 Usage: 11 SMBcomponents =SMBcomponents();12 SMBcomponents = SMBcomponents() 12 13 """ 13 14 14 def __init__(self): # {{{15 def __init__(self): # {{{ 15 16 self.accumulation = float('NaN') 16 17 self.runoff = float('NaN') 17 18 self.evaporation = float('NaN') 18 19 self.isclimatology = 0 19 self.requested_outputs = [] 20 #}}} 21 def __repr__(self): # {{{ 22 string=" surface forcings parameters (SMB=accumulation-runoff-evaporation) :" 23 string="%s\n%s"%(string,fielddisplay(self,'accumulation','accumulated snow [m/yr ice eq]')) 24 string="%s\n%s"%(string,fielddisplay(self,'runoff','amount of ice melt lost from the ice column [m/yr ice eq]')) 25 string="%s\n%s"%(string,fielddisplay(self,'evaporation','mount of ice lost to evaporative processes [m/yr ice eq]')) 26 string="%s\n%s"%(string,fielddisplay(self,'isclimatology','repeat all forcings when past last forcing time (default false)')) 27 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 20 self.requested_outputs = [] 21 #}}} 22 23 def __repr__(self): # {{{ 24 string = " surface forcings parameters (SMB = accumulation - runoff - evaporation) :" 25 string = "%s\n%s" % (string, fielddisplay(self, 'accumulation', 'accumulated snow [m / yr ice eq]')) 26 string = "%s\n%s" % (string, fielddisplay(self, 'runoff', 'amount of ice melt lost from the ice column [m / yr ice eq]')) 27 string = "%s\n%s" % (string, fielddisplay(self, 'evaporation', 'mount of ice lost to evaporative processes [m / yr ice eq]')) 28 string = "%s\n%s" % (string, fielddisplay(self, 'isclimatology', 'repeat all forcings when past last forcing time (default false)')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 28 30 return string 29 #}}} 30 def extrude(self,md): # {{{ 31 #}}} 31 32 32 self.mass_balance=project3d(md,'vector',self.accumulation,'type','node'); 33 self.mass_balance=project3d(md,'vector',self.runoff,'type','node'); 34 self.mass_balance=project3d(md,'vector',self.evaporation,'type','node'); 33 def extrude(self, md): # {{{ 34 self.mass_balance = project3d(md, 'vector', self.accumulation, 'type', 'node') 35 self.mass_balance = project3d(md, 'vector', self.runoff, 'type', 'node') 36 self.mass_balance = project3d(md, 'vector', self.evaporation, 'type', 'node') 35 37 return self 36 38 #}}} 37 def defaultoutputs(self,md): # {{{ 39 40 def defaultoutputs(self, md): # {{{ 38 41 return [] 39 42 #}}} 40 def initialize(self,md): # {{{41 43 44 def initialize(self, md): # {{{ 42 45 if np.all(np.isnan(self.accumulation)): 43 self.accumulation =np.zeros((md.mesh.numberofvertices))46 self.accumulation = np.zeros((md.mesh.numberofvertices)) 44 47 print(" no SMB.accumulation specified: values set as zero") 45 48 46 49 if np.all(np.isnan(self.runoff)): 47 self.runoff =np.zeros((md.mesh.numberofvertices))50 self.runoff = np.zeros((md.mesh.numberofvertices)) 48 51 print(" no SMB.runoff specified: values set as zero") 49 52 50 53 if np.all(np.isnan(self.evaporation)): 51 self.evaporation =np.zeros((md.mesh.numberofvertices))54 self.evaporation = np.zeros((md.mesh.numberofvertices)) 52 55 print(" no SMB.evaporation specified: values set as zero") 53 56 54 57 return self 55 58 #}}} 56 def checkconsistency(self,md,solution,analyses): # {{{ 59 60 def checkconsistency(self, md, solution, analyses): # {{{ 61 if 'MasstransportAnalysis' in analyses: 62 md = checkfield(md, 'fieldname', 'smb.accumulation', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 63 64 if 'BalancethicknessAnalysis' in analyses: 65 md = checkfield(md, 'fieldname', 'smb.accumulation', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 57 66 58 67 if 'MasstransportAnalysis' in analyses: 59 md = checkfield(md, 'fieldname','smb.accumulation','timeseries',1,'NaN',1,'Inf',1)68 md = checkfield(md, 'fieldname', 'smb.runoff', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 60 69 61 70 if 'BalancethicknessAnalysis' in analyses: 62 md = checkfield(md, 'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)71 md = checkfield(md, 'fieldname', 'smb.runoff', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 63 72 64 73 if 'MasstransportAnalysis' in analyses: 65 md = checkfield(md, 'fieldname','smb.runoff','timeseries',1,'NaN',1,'Inf',1)74 md = checkfield(md, 'fieldname', 'smb.evaporation', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 66 75 67 76 if 'BalancethicknessAnalysis' in analyses: 68 md = checkfield(md, 'fieldname','smb.runoff','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)77 md = checkfield(md, 'fieldname', 'smb.evaporation', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 69 78 70 if 'MasstransportAnalysis' in analyses: 71 md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1,'Inf',1) 72 73 if 'BalancethicknessAnalysis' in analyses: 74 md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 75 76 md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1) 77 md = checkfield(md,'fieldname','smb.isclimatology','values',[0,1]) 79 md = checkfield(md, 'fieldname', 'masstransport.requested_outputs', 'stringrow', 1) 80 md = checkfield(md, 'fieldname', 'smb.isclimatology', 'values', [0, 1]) 78 81 79 82 return md 80 83 # }}} 81 def marshall(self,prefix,md,fid): # {{{82 84 83 yts=md.constants.yts 85 def marshall(self, prefix, md, fid): # {{{ 86 yts = md.constants.yts 84 87 85 WriteData(fid, prefix,'name','md.smb.model','data',2,'format','Integer');86 WriteData(fid, prefix,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)87 WriteData(fid, prefix,'object',self,'class','smb','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)88 WriteData(fid, prefix,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)89 90 88 WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 2, 'format', 'Integer') 89 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accumulation', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 90 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoff', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 91 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'evaporation', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 92 93 #process requested outputs 91 94 outputs = self.requested_outputs 92 95 indices = [i for i, x in enumerate(outputs) if x == 'default'] 93 96 if len(indices) > 0: 94 outputscopy =outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]95 outputs =outputscopy96 WriteData(fid, prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray')97 WriteData(fid, prefix,'object',self,'class','smb','fieldname','isclimatology','format','Boolean')98 if (self.isclimatology >0):99 md = checkfield(md, 'fieldname', 'smb.accumulation', 'size',[md.mesh.numberofvertices+1],'message','accumulation must have md.mesh.numberofvertices+1 rows in order to force a climatology')100 md = checkfield(md, 'fieldname', 'smb.runoff', 'size',[md.mesh.numberofvertices+1],'message','runoff must have md.mesh.numberofvertices+1 rows in order to force a climatology')101 md = checkfield(md, 'fieldname', 'smb.evaporation', 'size',[md.mesh.numberofvertices+1],'message','evaporation must have md.mesh.numberofvertices+1 rows in order to force a climatology')97 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 98 outputs = outputscopy 99 WriteData(fid, prefix, 'data', outputs, 'name', 'md.smb.requested_outputs', 'format', 'StringArray') 100 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isclimatology', 'format', 'Boolean') 101 if (self.isclimatology > 0): 102 md = checkfield(md, 'fieldname', 'smb.accumulation', 'size', [md.mesh.numberofvertices + 1], 'message', 'accumulation must have md.mesh.numberofvertices + 1 rows in order to force a climatology') 103 md = checkfield(md, 'fieldname', 'smb.runoff', 'size', [md.mesh.numberofvertices + 1], 'message', 'runoff must have md.mesh.numberofvertices + 1 rows in order to force a climatology') 104 md = checkfield(md, 'fieldname', 'smb.evaporation', 'size', [md.mesh.numberofvertices + 1], 'message', 'evaporation must have md.mesh.numberofvertices + 1 rows in order to force a climatology') 102 105 103 106 # }}} -
issm/trunk-jpl/src/m/classes/SMBd18opdd.py
r23716 r24213 5 5 from project3d import project3d 6 6 7 7 8 class SMBd18opdd(object): 8 """ 9 SMBd18opdd Class definition 10 11 Usage: 12 SMBd18opdd=SMBd18opdd(); 13 """ 14 15 def __init__(self): # {{{ 16 self.desfac = 0. 17 self.s0p = float('NaN') 18 self.s0t = float('NaN') 19 self.rlaps = 0. 20 self.rlapslgm = 0. 21 self.dpermil = 0. 22 self.f = 0. 23 self.Tdiff = float('NaN') 24 self.sealev = float('NaN') 25 self.ismungsm = 0 26 self.isd18opd = 0 27 self.issetpddfac = 0 28 self.istemperaturescaled = 0 29 self.isprecipscaled = 0 30 self.delta18o = float('NaN') 31 self.delta18o_surface = float('NaN') 32 self.temperatures_presentday = float('NaN') 33 self.precipitations_presentday = float('NaN') 34 self.temperatures_reconstructed = float('NaN') 35 self.precipitations_reconstructed = float('NaN') 36 self.pddfac_snow = float('NaN') 37 self.pddfac_ice = float('NaN') 38 39 #set defaults 40 self.setdefaultparameters() 41 self.requested_outputs = [] 42 #}}} 43 def __repr__(self): # {{{ 44 string=" surface forcings parameters:" 45 46 string="%s\n%s"%(string,fielddisplay(self,'isd18opd','is delta18o parametrisation from present day temperature and precipitation activated (0 or 1, default is 0)')) 47 string="%s\n%s"%(string,fielddisplay(self,'issetpddfac','is user passing in defined pdd factors at each vertex (0 or 1, default is 0)')) 48 string="%s\n%s"%(string,fielddisplay(self,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]')) 49 string="%s\n%s"%(string,fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]')) 50 string="%s\n%s"%(string,fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]')) 51 string="%s\n%s"%(string,fielddisplay(self,'rlaps','present day lapse rate [degree/km]')) 52 if self.isd18opd: 53 string="%s\n%s"%(string,fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated')) 54 string="%s\n%s"%(string,fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated')) 55 string="%s\n%s"%(string,fielddisplay(self,'istemperaturescaled','if delta18o parametrisation from present day temperature and precipitation is activated, is temperature scaled to delta18o value? (0 or 1, default is 1)')) 56 string="%s\n%s"%(string,fielddisplay(self,'isprecipscaled','if delta18o parametrisation from present day temperature and precipitation is activated, is precipitation scaled to delta18o value? (0 or 1, default is 1)')) 57 58 if self.istemperaturescaled==0: 59 string="%s\n%s"%(string,fielddisplay(self,'temperatures_reconstructed','monthly historical surface temperatures [K], required if delta18o/mungsm/d18opd is activated and istemperaturescaled is not activated')) 60 61 if self.isprecipscaled==0: 62 string="%s\n%s"%(string,fielddisplay(self,'precipitations_reconstructed','monthly historical precipitation [m/yr water eq], required if delta18o/mungsm/d18opd is activated and isprecipscaled is not activated')) 63 64 string="%s\n%s"%(string,fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated')) 65 string="%s\n%s"%(string,fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated')) 66 string="%s\n%s"%(string,fielddisplay(self,'f','precip/temperature scaling factor, required if d18opd is activated')) 67 68 if self.issetpddfac==1: 69 string="%s\n%s"%(string,fielddisplay(self,'pddfac_snow','Pdd factor for snow, at each vertex [mm ice equiv/day/degree C]')) 70 string="%s\n%s"%(string,fielddisplay(self,'pddfac_ice','Pdd factor for ice, at each vertex [mm ice equiv/day/degree C]')) 71 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 72 73 return string 74 #}}} 75 def extrude(self,md): # {{{ 76 77 if self.isd18opd: self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node') 78 if self.isd18opd: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node') 79 if self.istemperaturescaled==0: self.temperatures_reconstructed=project3d(md,'vector',self.temperatures_reconstructed,'type','node') 80 if self.isprecipscaled==0: self.temperatures_reconstructed=project3d(md,'vector',self.precipitations_reconstructed,'type','node') 81 if self.isd18opd: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node') 82 if self.issetpddfac: self.pddfac_snow=project3d(md,'vector',self.pddfac_snow,'type','node') 83 if self.issetpddfac: self.pddfac_ice=project3d(md,'vector',self.pddfac_ice,'type','node') 84 self.s0p=project3d(md,'vector',self.s0p,'type','node') 85 self.s0t=project3d(md,'vector',self.s0t,'type','node') 86 87 return self 88 #}}} 89 def defaultoutputs(self,md): # {{{ 90 return [] 91 #}}} 92 def initialize(self,md): # {{{ 93 94 if np.all(np.isnan(self.s0p)): 95 self.s0p=np.zeros((md.mesh.numberofvertices)) 96 print(" no SMBd18opdd.s0p specified: values set as zero") 97 98 if np.all(np.isnan(self.s0t)): 99 self.s0t=np.zeros((md.mesh.numberofvertices)) 100 print(" no SMBd18opdd.s0t specified: values set as zero") 101 102 return self 103 # }}} 104 def setdefaultparameters(self): # {{{ 105 106 #pdd method not used in default mode 107 self.ismungsm = 0 108 self.isd18opd = 1 109 self.istemperaturescaled = 1 110 self.isprecipscaled = 1 111 self.desfac = 0.5 112 self.rlaps = 6.5 113 self.rlapslgm = 6.5 114 self.dpermil = 2.4 115 self.f = 0.169 116 self.issetpddfac = 0 117 return self 118 #}}} 119 def checkconsistency(self,md,solution,analyses): # {{{ 120 121 if 'MasstransportAnalysis' in analyses: 122 md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1]) 123 md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 124 md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 125 md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1]) 126 md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1]) 127 128 if self.isd18opd: 129 lent=float(np.size(self.temperatures_presentday,1)) 130 lenp=float(np.size(self.precipitations_presentday,1)) 131 multt=np.ceil(lent/12.)*12. 132 multp=np.ceil(lenp/12.)*12. 133 md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1) 134 md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1) 135 136 if self.istemperaturescaled==0: 137 lent=float(np.size(self.temperatures_reconstructed,1)) 138 multt=np.ceil(lent/12.)*12. 139 md = checkfield(md,'fieldname','smb.temperatures_reconstructed','size',[md.mesh.numberofvertices+1,multt],'NaN',1,'Inf',1,'timeseries',1) 140 141 if self.isprecipscaled==0: 142 lenp=float(np.size(self.precipitations_reconstructed,1)) 143 multp=np.ceil(lent/12.)*12. 144 md = checkfield(md,'fieldname','smb.precipitations_reconstructed','size',[md.mesh.numberofvertices+1,multt],'NaN',1,'Inf',1,'timeseries',1) 145 146 md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'Inf',1,'size',[2,np.nan],'singletimeseries',1) 147 md = checkfield(md,'fieldname','smb.dpermil','>=',0,'numel',[1]) 148 md = checkfield(md,'fieldname','smb.f','>=',0,'numel',[1]) 149 150 if self.issetpddfac: 151 md = checkfield(md,'fieldname','smb.pddfac_snow','>=',0,'NaN',1,'Inf',1) 152 md = checkfield(md,'fieldname','smb.pddfac_ice','>=',0,'NaN',1,'Inf',1) 153 154 md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1) 155 156 return md 157 # }}} 158 def marshall(self,prefix,md,fid): # {{{ 159 160 yts=md.constants.yts 161 162 WriteData(fid,prefix,'name','md.smb.model','data',5,'format','Integer') 163 164 WriteData(fid,prefix,'object',self,'class','smb','fieldname','ismungsm','format','Boolean') 165 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isd18opd','format','Boolean') 166 WriteData(fid,prefix,'object',self,'class','smb','fieldname','issetpddfac','format','Boolean'); 167 WriteData(fid,prefix,'object',self,'class','smb','fieldname','desfac','format','Double') 168 WriteData(fid,prefix,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1); 169 WriteData(fid,prefix,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1); 170 WriteData(fid,prefix,'object',self,'class','smb','fieldname','rlaps','format','Double') 171 WriteData(fid,prefix,'object',self,'class','smb','fieldname','rlapslgm','format','Double') 172 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts) 173 WriteData(fid,prefix,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts) 174 175 if self.isd18opd: 176 WriteData(fid,prefix,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 177 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 178 WriteData(fid,prefix,'object',self,'class','smb','fieldname','istemperaturescaled','format','Boolean') 179 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isprecipscaled','format','Boolean') 180 181 if self.istemperaturescaled==0: 182 WriteData(fid,prefix,'object',self,'class','smb','fieldname','temperatures_reconstructed','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 183 184 if self.isprecipscaled==0: 185 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitations_reconstructed','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 186 187 WriteData(fid,prefix,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts) 188 WriteData(fid,prefix,'object',self,'class','smb','fieldname','dpermil','format','Double') 189 WriteData(fid,prefix,'object',self,'class','smb','fieldname','f','format','Double') 190 191 if self.issetpddfac: 192 WriteData(fid,prefix,'object',self,'class','smb','fieldname','pddfac_snow','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 193 WriteData(fid,prefix,'object',self,'class','smb','fieldname','pddfac_ice','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 194 195 #process requested outputs 196 outputs = self.requested_outputs 197 indices = [i for i, x in enumerate(outputs) if x == 'default'] 198 if len(indices) > 0: 199 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 200 outputs =outputscopy 201 WriteData(fid,prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray') 202 203 # }}} 9 """ 10 SMBd18opdd Class definition 11 12 Usage: 13 SMBd18opdd = SMBd18opdd() 14 """ 15 16 def __init__(self): # {{{ 17 self.desfac = 0. 18 self.s0p = float('NaN') 19 self.s0t = float('NaN') 20 self.rlaps = 0. 21 self.rlapslgm = 0. 22 self.dpermil = 0. 23 self.f = 0. 24 self.Tdiff = float('NaN') 25 self.sealev = float('NaN') 26 self.ismungsm = 0 27 self.isd18opd = 0 28 self.issetpddfac = 0 29 self.istemperaturescaled = 0 30 self.isprecipscaled = 0 31 self.delta18o = float('NaN') 32 self.delta18o_surface = float('NaN') 33 self.temperatures_presentday = float('NaN') 34 self.precipitations_presentday = float('NaN') 35 self.temperatures_reconstructed = float('NaN') 36 self.precipitations_reconstructed = float('NaN') 37 self.pddfac_snow = float('NaN') 38 self.pddfac_ice = float('NaN') 39 40 #set defaults 41 self.setdefaultparameters() 42 self.requested_outputs = [] 43 #}}} 44 45 def __repr__(self): # {{{ 46 string = " surface forcings parameters:" 47 48 string = "%s\n%s" % (string, fielddisplay(self, 'isd18opd', 'is delta18o parametrisation from present day temperature and precipitation activated (0 or 1, default is 0)')) 49 string = "%s\n%s" % (string, fielddisplay(self, 'issetpddfac', 'is user passing in defined pdd factors at each vertex (0 or 1, default is 0)')) 50 string = "%s\n%s" % (string, fielddisplay(self, 'desfac', 'desertification elevation factor (between 0 and 1, default is 0.5) [m]')) 51 string = "%s\n%s" % (string, fielddisplay(self, 's0p', 'should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]')) 52 string = "%s\n%s" % (string, fielddisplay(self, 's0t', 'should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]')) 53 string = "%s\n%s" % (string, fielddisplay(self, 'rlaps', 'present day lapse rate [degree / km]')) 54 if self.isd18opd: 55 string = "%s\n%s" % (string, fielddisplay(self, 'temperatures_presentday', 'monthly present day surface temperatures [K], required if delta18o / mungsm is activated')) 56 string = "%s\n%s" % (string, fielddisplay(self, 'precipitations_presentday', 'monthly surface precipitation [m / yr water eq], required if delta18o or mungsm is activated')) 57 string = "%s\n%s" % (string, fielddisplay(self, 'istemperaturescaled', 'if delta18o parametrisation from present day temperature and precipitation is activated, is temperature scaled to delta18o value? (0 or 1, default is 1)')) 58 string = "%s\n%s" % (string, fielddisplay(self, 'isprecipscaled', 'if delta18o parametrisation from present day temperature and precipitation is activated, is precipitation scaled to delta18o value? (0 or 1, default is 1)')) 59 60 if self.istemperaturescaled == 0: 61 string = "%s\n%s" % (string, fielddisplay(self, 'temperatures_reconstructed', 'monthly historical surface temperatures [K], required if delta18o / mungsm / d18opd is activated and istemperaturescaled is not activated')) 62 63 if self.isprecipscaled == 0: 64 string = "%s\n%s" % (string, fielddisplay(self, 'precipitations_reconstructed', 'monthly historical precipitation [m / yr water eq], required if delta18o / mungsm / d18opd is activated and isprecipscaled is not activated')) 65 66 string = "%s\n%s" % (string, fielddisplay(self, 'delta18o', 'delta18o [per mil], required if pdd is activated and delta18o activated')) 67 string = "%s\n%s" % (string, fielddisplay(self, 'dpermil', 'degree per mil, required if d18opd is activated')) 68 string = "%s\n%s" % (string, fielddisplay(self, 'f', 'precip/temperature scaling factor, required if d18opd is activated')) 69 70 if self.issetpddfac == 1: 71 string = "%s\n%s" % (string, fielddisplay(self, 'pddfac_snow', 'Pdd factor for snow, at each vertex [mm ice equiv / day / degree C]')) 72 string = "%s\n%s" % (string, fielddisplay(self, 'pddfac_ice', 'Pdd factor for ice, at each vertex [mm ice equiv / day / degree C]')) 73 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 74 75 return string 76 #}}} 77 78 def extrude(self, md): # {{{ 79 if self.isd18opd: 80 self.temperatures_presentday = project3d(md, 'vector', self.temperatures_presentday, 'type', 'node') 81 if self.isd18opd: 82 self.precipitations_presentday = project3d(md, 'vector', self.precipitations_presentday, 'type', 'node') 83 if self.istemperaturescaled == 0: 84 self.temperatures_reconstructed = project3d(md, 'vector', self.temperatures_reconstructed, 'type', 'node') 85 if self.isprecipscaled == 0: 86 self.temperatures_reconstructed = project3d(md, 'vector', self.precipitations_reconstructed, 'type', 'node') 87 if self.isd18opd: 88 self.precipitations_presentday = project3d(md, 'vector', self.precipitations_presentday, 'type', 'node') 89 if self.issetpddfac: 90 self.pddfac_snow = project3d(md, 'vector', self.pddfac_snow, 'type', 'node') 91 if self.issetpddfac: 92 self.pddfac_ice = project3d(md, 'vector', self.pddfac_ice, 'type', 'node') 93 self.s0p = project3d(md, 'vector', self.s0p, 'type', 'node') 94 self.s0t = project3d(md, 'vector', self.s0t, 'type', 'node') 95 96 return self 97 #}}} 98 99 def defaultoutputs(self, md): # {{{ 100 return [] 101 #}}} 102 103 def initialize(self, md): # {{{ 104 if np.all(np.isnan(self.s0p)): 105 self.s0p = np.zeros((md.mesh.numberofvertices)) 106 print(" no SMBd18opdd.s0p specified: values set as zero") 107 108 if np.all(np.isnan(self.s0t)): 109 self.s0t = np.zeros((md.mesh.numberofvertices)) 110 print(" no SMBd18opdd.s0t specified: values set as zero") 111 112 return self 113 # }}} 114 115 def setdefaultparameters(self): # {{{ 116 #pdd method not used in default mode 117 self.ismungsm = 0 118 self.isd18opd = 1 119 self.istemperaturescaled = 1 120 self.isprecipscaled = 1 121 self.desfac = 0.5 122 self.rlaps = 6.5 123 self.rlapslgm = 6.5 124 self.dpermil = 2.4 125 self.f = 0.169 126 self.issetpddfac = 0 127 return self 128 #}}} 129 130 def checkconsistency(self, md, solution, analyses): # {{{ 131 if 'MasstransportAnalysis' in analyses: 132 md = checkfield(md, 'fieldname', 'smb.desfac', '<=', 1, 'numel', [1]) 133 md = checkfield(md, 'fieldname', 'smb.s0p', '>=', 0, 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 134 md = checkfield(md, 'fieldname', 'smb.s0t', '>=', 0, 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 135 md = checkfield(md, 'fieldname', 'smb.rlaps', '>=', 0, 'numel', [1]) 136 md = checkfield(md, 'fieldname', 'smb.rlapslgm', '>=', 0, 'numel', [1]) 137 138 if self.isd18opd: 139 lent = float(np.size(self.temperatures_presentday, 1)) 140 lenp = float(np.size(self.precipitations_presentday, 1)) 141 multt = np.ceil(lent / 12.) * 12. 142 multp = np.ceil(lenp / 12.) * 12. 143 md = checkfield(md, 'fieldname', 'smb.temperatures_presentday', 'size', [md.mesh.numberofvertices + 1, 12], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 144 md = checkfield(md, 'fieldname', 'smb.precipitations_presentday', 'size', [md.mesh.numberofvertices + 1, 12], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 145 146 if self.istemperaturescaled == 0: 147 lent = float(np.size(self.temperatures_reconstructed, 1)) 148 multt = np.ceil(lent / 12.) * 12. 149 md = checkfield(md, 'fieldname', 'smb.temperatures_reconstructed', 'size', [md.mesh.numberofvertices + 1, multt], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 150 151 if self.isprecipscaled == 0: 152 lenp = float(np.size(self.precipitations_reconstructed, 1)) 153 multp = np.ceil(lent / 12.) * 12. 154 md = checkfield(md, 'fieldname', 'smb.precipitations_reconstructed', 'size', [md.mesh.numberofvertices + 1, multp], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 155 156 md = checkfield(md, 'fieldname', 'smb.delta18o', 'NaN', 1, 'Inf', 1, 'size', [2, np.nan], 'singletimeseries', 1) 157 md = checkfield(md, 'fieldname', 'smb.dpermil', '>=', 0, 'numel', [1]) 158 md = checkfield(md, 'fieldname', 'smb.f', '>=', 0, 'numel', [1]) 159 160 if self.issetpddfac: 161 md = checkfield(md, 'fieldname', 'smb.pddfac_snow', '>=', 0, 'NaN', 1, 'Inf', 1) 162 md = checkfield(md, 'fieldname', 'smb.pddfac_ice', '>=', 0, 'NaN', 1, 'Inf', 1) 163 164 md = checkfield(md, 'fieldname', 'masstransport.requested_outputs', 'stringrow', 1) 165 166 return md 167 # }}} 168 169 def marshall(self, prefix, md, fid): # {{{ 170 yts = md.constants.yts 171 172 WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 5, 'format', 'Integer') 173 174 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'ismungsm', 'format', 'Boolean') 175 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isd18opd', 'format', 'Boolean') 176 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'issetpddfac', 'format', 'Boolean') 177 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'desfac', 'format', 'Double') 178 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 's0p', 'format', 'DoubleMat', 'mattype', 1) 179 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 's0t', 'format', 'DoubleMat', 'mattype', 1) 180 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'rlaps', 'format', 'Double') 181 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'rlapslgm', 'format', 'Double') 182 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Tdiff', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', md.constants.yts) 183 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'sealev', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', md.constants.yts) 184 185 if self.isd18opd: 186 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'temperatures_presentday', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 187 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'precipitations_presentday', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 188 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'istemperaturescaled', 'format', 'Boolean') 189 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isprecipscaled', 'format', 'Boolean') 190 191 if self.istemperaturescaled == 0: 192 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'temperatures_reconstructed', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 193 194 if self.isprecipscaled == 0: 195 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'precipitations_reconstructed', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 196 197 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'delta18o', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', md.constants.yts) 198 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'dpermil', 'format', 'Double') 199 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'f', 'format', 'Double') 200 201 if self.issetpddfac: 202 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'pddfac_snow', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 203 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'pddfac_ice', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 204 205 #process requested outputs 206 outputs = self.requested_outputs 207 indices = [i for i, x in enumerate(outputs) if x == 'default'] 208 if len(indices) > 0: 209 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 210 outputs = outputscopy 211 WriteData(fid, prefix, 'data', outputs, 'name', 'md.smb.requested_outputs', 'format', 'StringArray') 212 213 # }}} -
issm/trunk-jpl/src/m/classes/SMBforcing.py
r23833 r24213 5 5 from project3d import project3d 6 6 7 7 8 class SMBforcing(object): 8 9 """ … … 10 11 11 12 Usage: 12 SMB =SMBforcing();13 SMB = SMBforcing() 13 14 """ 14 15 15 def __init__(self): # {{{16 def __init__(self): # {{{ 16 17 self.mass_balance = float('NaN') 17 self.requested_outputs 18 self.requested_outputs = [] 18 19 self.isclimatology = 0 19 #}}} 20 def __repr__(self): # {{{ 21 string=" surface forcings parameters:" 22 string="%s\n%s"%(string,fielddisplay(self,'mass_balance','surface mass balance [m/yr ice eq]')) 23 string="%s\n%s"%(string,fielddisplay(self,'isclimatology','repeat all forcings when past last forcing time (default false)')) 24 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 20 #}}} 21 22 def __repr__(self): # {{{ 23 string = " surface forcings parameters:" 24 string = "%s\n%s" % (string, fielddisplay(self, 'mass_balance', 'surface mass balance [m / yr ice eq]')) 25 string = "%s\n%s" % (string, fielddisplay(self, 'isclimatology', 'repeat all forcings when past last forcing time (default false)')) 26 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 25 27 return string 26 #}}} 27 def extrude(self,md): # {{{ 28 #}}} 28 29 29 self.mass_balance=project3d(md,'vector',self.mass_balance,'type','node'); 30 def extrude(self, md): # {{{ 31 32 self.mass_balance = project3d(md, 'vector', self.mass_balance, 'type', 'node') 30 33 return self 31 34 #}}} 32 def defaultoutputs(self,md): # {{{ 35 36 def defaultoutputs(self, md): # {{{ 33 37 return [] 34 38 #}}} 35 def initialize(self,md): # {{{36 39 40 def initialize(self, md): # {{{ 37 41 if np.all(np.isnan(self.mass_balance)): 38 self.mass_balance =np.zeros((md.mesh.numberofvertices))42 self.mass_balance = np.zeros((md.mesh.numberofvertices)) 39 43 print(" no SMBforcing.mass_balance specified: values set as zero") 40 44 41 45 return self 42 46 #}}} 43 def checkconsistency(self,md,solution,analyses): # {{{44 47 48 def checkconsistency(self, md, solution, analyses): # {{{ 45 49 if 'MasstransportAnalysis' in analyses: 46 md = checkfield(md, 'fieldname','smb.mass_balance','timeseries',1,'NaN',1,'Inf',1)50 md = checkfield(md, 'fieldname', 'smb.mass_balance', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 47 51 48 52 if 'BalancethicknessAnalysis' in analyses: 49 md = checkfield(md, 'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)53 md = checkfield(md, 'fieldname', 'smb.mass_balance', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 50 54 51 md = checkfield(md, 'fieldname','masstransport.requested_outputs','stringrow',1)52 md = checkfield(md, 'fieldname','smb.isclimatology','values',[0,1])53 if (self.isclimatology >0):54 md = checkfield(md, 'fieldname', 'smb.mass_balance', 'size',[md.mesh.numberofvertices+1],'message','mass_balance must have md.mesh.numberofvertices+1 rows in order to force a climatology')55 md = checkfield(md, 'fieldname', 'masstransport.requested_outputs', 'stringrow', 1) 56 md = checkfield(md, 'fieldname', 'smb.isclimatology', 'values', [0, 1]) 57 if (self.isclimatology > 0): 58 md = checkfield(md, 'fieldname', 'smb.mass_balance', 'size', [md.mesh.numberofvertices + 1], 'message', 'mass_balance must have md.mesh.numberofvertices + 1 rows in order to force a climatology') 55 59 56 60 return md 57 61 # }}} 58 def marshall(self,prefix,md,fid): # {{{59 62 60 yts=md.constants.yts 63 def marshall(self, prefix, md, fid): # {{{ 64 yts = md.constants.yts 61 65 62 WriteData(fid,prefix,'name','md.smb.model','data',1,'format','Integer'); 63 WriteData(fid,prefix,'object',self,'class','smb','fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 64 #WriteData(fid,prefix,'object',self,'class','smb','fieldname','mass_balance','format','CompressedMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 65 66 WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 1, 'format', 'Integer') 67 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'mass_balance', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 68 66 69 #process requested outputs 67 70 outputs = self.requested_outputs 68 71 indices = [i for i, x in enumerate(outputs) if x == 'default'] 69 72 if len(indices) > 0: 70 outputscopy =outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]71 outputs =outputscopy72 WriteData(fid, prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray')73 WriteData(fid, prefix,'object',self,'class','smb','fieldname','isclimatology','format','Boolean')73 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 74 outputs = outputscopy 75 WriteData(fid, prefix, 'data', outputs, 'name', 'md.smb.requested_outputs', 'format', 'StringArray') 76 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isclimatology', 'format', 'Boolean') 74 77 75 78 # }}} -
issm/trunk-jpl/src/m/classes/SMBgemb.py
r24194 r24213 5 5 from project3d import project3d 6 6 7 7 8 class SMBgemb(object): 8 """ 9 SMBgemb Class definition 10 11 Usage: 12 SMB = SMBgemb() 13 """ 14 15 def __init__(self): # {{{ 16 #each one of these properties is a transient forcing to the GEMB model, loaded from meteorological data derived 17 #from an automatic weather stations (AWS). Each property is therefore a matrix, of size (numberofvertices x number 18 #of time steps. ) 19 20 #solution choices 21 #check these: 22 #isgraingrowth 23 #isalbedo 24 #isshortwave 25 #isthermal 26 #isaccumulation 27 #ismelt 28 #isdensification 29 #isturbulentflux 30 31 #inputs: 32 Ta = float('NaN') #2 m air temperature, in Kelvin 33 V = float('NaN') #wind speed (m/s-1) 34 dswrf = float('NaN') #downward shortwave radiation flux [W/m^2] 35 dlwrf = float('NaN') #downward longwave radiation flux [W/m^2] 36 P = float('NaN') #precipitation [mm w.e. / m^2] 37 eAir = float('NaN') #screen level vapor pressure [Pa] 38 pAir = float('NaN') #surface pressure [Pa] 39 Tmean = float('NaN') #mean annual temperature [K] 40 Vmean = float('NaN') #mean annual wind velocity [m s-1] 41 C = float('NaN') #mean annual snow accumulation [kg m-2 yr-1] 42 Tz = float('NaN') #height above ground at which temperature (T) was sampled [m] 43 Vz = float('NaN') #height above ground at which wind (V) was sampled [m] 44 45 #optional inputs: 46 aValue = float('NaN') #Albedo forcing at every element. Used only if aIdx == 0. 47 teValue = float('NaN') #Outward longwave radiation thermal emissivity forcing at every element (default in code is 1) 48 49 # Initialization of snow properties 50 Dzini = float('NaN') #cell depth (m) 51 Dini = float('NaN') #snow density (kg m-3) 52 Reini = float('NaN') #effective grain size (mm) 53 Gdnini = float('NaN') #grain dricity (0-1) 54 Gspini = float('NaN') #grain sphericity (0-1) 55 ECini = float('NaN') #evaporation/condensation (kg m-2) 56 Wini = float('NaN') #Water content (kg m-2) 57 Aini = float('NaN') #albedo (0-1) 58 Tini = float('NaN') #snow temperature (K) 59 Sizeini = float('NaN') #Number of layers 60 61 #settings: 62 aIdx = float('NaN') #method for calculating albedo and subsurface absorption (default is 1) 63 # 0: direct input from aValue parameter 64 # 1: effective grain radius [Gardner & Sharp, 2009] 65 # 2: effective grain radius [Brun et al., 2009] 66 # 3: density and cloud amount [Greuell & Konzelmann, 1994] 67 # 4: exponential time decay & wetness [Bougamont & Bamber, 2005] 68 # 5: ingest MODIS mode, direct input from aValue parameter applied to surface ice only 69 swIdx = float('NaN') # apply all SW to top grid cell (0) or allow SW to penetrate surface (1) (default 1) 70 denIdx = float('NaN') #densification model to use (default is 2): 71 # 1 = emperical model of Herron and Langway (1980) 72 # 2 = semi-emperical model of Anthern et al. (2010) 73 # 3 = DO NOT USE: physical model from Appix B of Anthern et al. (2010) 74 # 4 = DO NOT USE: emperical model of Li and Zwally (2004) 75 # 5 = DO NOT USE: modified emperical model (4) by Helsen et al. (2008) 76 # 6 = Antarctica semi-emperical model of Ligtenberg et al. (2011) 77 # 7 = Greenland semi-emperical model of Kuipers Munneke et al. (2015) 78 dsnowIdx = float('NaN') #model for fresh snow accumulation density (default is 1): 79 # 0 = Original GEMB value, 150 kg/m^3 80 # 1 = Antarctica value of fresh snow density, 350 kg/m^3 81 # 2 = Greenland value of fresh snow density, 315 kg/m^3, Fausto et al. (2008) 82 # 3 = Antarctica model of Kaspers et al. (2004) 83 # 4 = Greenland model of Kuipers Munneke et al. (2015) 84 85 zTop = float('NaN') # depth over which grid length is constant at the top of the snopack (default 10) [m] 86 dzTop = float('NaN') # initial top vertical grid spacing (default .05) [m] 87 dzMin = float('NaN') # initial min vertical allowable grid spacing (default dzTop/2) [m] 88 zY = float('NaN') # strech grid cells bellow top_z by a [top_dz * y ^ (cells bellow top_z)] 89 zMax = float('NaN') #initial max model depth (default is min(thickness,250)) [m] 90 zMin = float('NaN') #initial min model depth (default is min(thickness,130)) [m] 91 outputFreq = float('NaN') #output frequency in days (default is monthly, 30) 92 93 #specific albedo parameters: 94 #Method 1 and 2: 95 aSnow = float('NaN') # new snow albedo (0.64 - 0.89) 96 aIce = float('NaN') # range 0.27-0.58 for old snow 97 #Method 3: Radiation Correction Factors -> only used for met station data and Greuell & Konzelmann, 1994 albedo 98 cldFrac = float('NaN') # average cloud amount 99 #Method 4: additonal tuning parameters albedo as a funtion of age and water content (Bougamont et al., 2005) 100 t0wet = float('NaN') # time scale for wet snow (15-21.9) 101 t0dry = float('NaN') # warm snow timescale (30) 102 K = float('NaN') # time scale temperature coef. (7) 103 adThresh = float('NaN') # Apply aIdx method to all areas with densities below this value, 104 # or else apply direct input value from aValue, allowing albedo to be altered. 105 # Default value is rho water (1023 kg m-3). 106 107 #densities: 108 InitDensityScaling = float('NaN') #initial scaling factor multiplying the density of ice, which describes the density of the snowpack. 109 110 #thermo: 111 ThermoDeltaTScaling = float('NaN') #scaling factor to multiply the thermal diffusion timestep (delta t) 112 113 requested_outputs = [] 114 115 #Several fields are missing from the standard GEMB model, which are capture intrinsically by ISSM. 116 #dateN: that's the last row of the above fields. 117 #dt: included in dateN. Not an input. 118 #elev: this is taken from the ISSM surface itself. 119 120 #}}} 121 def __repr__(self): # {{{ 122 #string = " surface forcings parameters:" 123 #string = "#s\n#s"%(string,fielddisplay(self,'mass_balance','surface mass balance [m/yr ice eq]')) 124 #string = "#s\n#s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 125 string = ' surface forcings for SMB GEMB model :' 126 string = "%s\n%s"%(string,fielddisplay(self,'issmbgradients','is smb gradients method activated (0 or 1, default is 0)')) 127 string = "%s\n%s"%(string,fielddisplay(self,'isgraingrowth','run grain growth module (default true)')) 128 string = "%s\n%s"%(string,fielddisplay(self,'isalbedo','run albedo module (default true)')) 129 string = "%s\n%s"%(string,fielddisplay(self,'isshortwave','run short wave module (default true)')) 130 string = "%s\n%s"%(string,fielddisplay(self,'isthermal','run thermal module (default true)')) 131 string = "%s\n%s"%(string,fielddisplay(self,'isaccumulation','run accumulation module (default true)')) 132 string = "%s\n%s"%(string,fielddisplay(self,'ismelt','run melting module (default true)')) 133 string = "%s\n%s"%(string,fielddisplay(self,'isdensification','run densification module (default true)')) 134 string = "%s\n%s"%(string,fielddisplay(self,'isturbulentflux','run turbulant heat fluxes module (default true)')) 135 string = "%s\n%s"%(string,fielddisplay(self,'isclimatology','repeat all forcings when past last forcing time (default false)')) 136 string = "%s\n%s"%(string,fielddisplay(self,'Ta','2 m air temperature, in Kelvin')) 137 string = "%s\n%s"%(string,fielddisplay(self,'V','wind speed (m s-1)')) 138 string = "%s\n%s"%(string,fielddisplay(self,'dlwrf','downward shortwave radiation flux [W/m^2]')) 139 string = "%s\n%s"%(string,fielddisplay(self,'dswrf','downward longwave radiation flux [W/m^2]')) 140 string = "%s\n%s"%(string,fielddisplay(self,'P','precipitation [mm w.e. / m^2]')) 141 string = "%s\n%s"%(string,fielddisplay(self,'eAir','screen level vapor pressure [Pa]')) 142 string = "%s\n%s"%(string,fielddisplay(self,'pAir','surface pressure [Pa]')) 143 string = "%s\n%s"%(string,fielddisplay(self,'Tmean','mean annual temperature [K]')) 144 string = "%s\n%s"%(string,fielddisplay(self,'C','mean annual snow accumulation [kg m-2 yr-1]')) 145 string = "%s\n%s"%(string,fielddisplay(self,'Vmean','mean annual wind velocity [m s-1] (default 10 m/s)')) 146 string = "%s\n%s"%(string,fielddisplay(self,'Tz','height above ground at which temperature (T) was sampled [m]')) 147 string = "%s\n%s"%(string,fielddisplay(self,'Vz','height above ground at which wind (V) was sampled [m]')) 148 string = "%s\n%s"%(string,fielddisplay(self,'zTop','depth over which grid length is constant at the top of the snopack (default 10) [m]')) 149 string = "%s\n%s"%(string,fielddisplay(self,'dzTop','initial top vertical grid spacing (default .05) [m] ')) 150 string = "%s\n%s"%(string,fielddisplay(self,'dzMin','initial min vertical allowable grid spacing (default dzMin/2) [m] ')) 151 string = "%s\n%s"%(string,fielddisplay(self,'zMax','initial max model depth (default is min(thickness,500)) [m]')) 152 string = "%s\n%s"%(string,fielddisplay(self,'zMin','initial min model depth (default is min(thickness,30)) [m]')) 153 string = "%s\n%s"%(string,fielddisplay(self,'zY','strech grid cells bellow top_z by a [top_dz * y ^ (cells bellow top_z)]')) 154 string = "%s\n%s"%(string,fielddisplay(self,'InitDensityScaling',['initial scaling factor multiplying the density of ice','which describes the density of the snowpack.'])) 155 string = "%s\n%s"%(string,fielddisplay(self,'ThermoDeltaTScaling','scaling factor to multiply the thermal diffusion timestep (delta t)')) 156 string = "%s\n%s"%(string,fielddisplay(self,'outputFreq','output frequency in days (default is monthly, 30)')) 157 string = "%s\n%s"%(string,fielddisplay(self,'adThresh','Apply aIdx method to all areas with densities below this value,','or else apply direct input value from aValue, allowing albedo to be altered.')) 158 string = "%s\n%s"%(string,fielddisplay(self,'aIdx',['method for calculating albedo and subsurface absorption (default is 1)', 159 '0: direct input from aValue parameter', 160 '1: effective grain radius [Gardner & Sharp, 2009]', 161 '2: effective grain radius [Brun et al., 2009]', 162 '3: density and cloud amount [Greuell & Konzelmann, 1994]', 163 '4: exponential time decay & wetness [Bougamont & Bamber, 2005]'])) 164 string = "%s\n%s"%(string,fielddisplay(self,'teValue','Outward longwave radiation thermal emissivity forcing at every element (default in code is 1)')) 165 #snow properties init 166 string = "%s\n%s"%(string,fielddisplay(self,'Dzini','Initial cell depth when restart [m]')) 167 string = "%s\n%s"%(string,fielddisplay(self,'Dini','Initial snow density when restart [kg m-3]')) 168 string = "%s\n%s"%(string,fielddisplay(self,'Reini','Initial grain size when restart [mm]')) 169 string = "%s\n%s"%(string,fielddisplay(self,'Gdnini','Initial grain dricity when restart [-]')) 170 string = "%s\n%s"%(string,fielddisplay(self,'Gspini','Initial grain sphericity when restart [-]')) 171 string = "%s\n%s"%(string,fielddisplay(self,'ECini','Initial evaporation/condensation when restart [kg m-2]')) 172 string = "%s\n%s"%(string,fielddisplay(self,'Wini','Initial snow water content when restart [kg m-2]')) 173 string = "%s\n%s"%(string,fielddisplay(self,'Aini','Initial albedo when restart [-]')) 174 string = "%s\n%s"%(string,fielddisplay(self,'Tini','Initial snow temperature when restart [K]')) 175 string = "%s\n%s"%(string,fielddisplay(self,'Sizeini','Initial number of layers when restart [K]')) 176 177 #additional albedo parameters: 178 if type(self.aIdx) == list or type(self.aIdx) == type(np.array([1,2])) and (self.aIdx == [1,2] or (1 in self.aIdx and 2 in self.aIdx)): 179 string = "%s\n%s"%(string,fielddisplay(self,'aSnow','new snow albedo (0.64 - 0.89)')) 180 string = "%s\n%s"%(string,fielddisplay(self,'aIce','albedo of ice (0.27-0.58)')) 181 elif elf.aIdx == 0: 182 string = "%s\n%s"%(string,fielddisplay(self,'aValue','Albedo forcing at every element. Used only if aIdx == {0,5}')) 183 elif elf.aIdx == 5: 184 string = "%s\n%s"%(string,fielddisplay(self,'aValue','Albedo forcing at every element. Used only if aIdx == {0,5}')) 185 elif self.aIdx == 3: 186 string = "%s\n%s"%(string,fielddisplay(self,'cldFrac','average cloud amount')) 187 elif self.aIdx == 4: 188 string = "%s\n%s"%(string,fielddisplay(self,'t0wet','time scale for wet snow (15-21.9) [d]')) 189 string = "%s\n%s"%(string,fielddisplay(self,'t0dry','warm snow timescale (30) [d]')) 190 string = "%s\n%s"%(string,fielddisplay(self,'K','time scale temperature coef. (7) [d]')) 191 192 string = "%s\n%s"%(string,fielddisplay(self,'swIdx','apply all SW to top grid cell (0) or allow SW to penetrate surface (1) [default 1]')) 193 string = "%s\n%s"%(string,fielddisplay(self,'denIdx',['densification model to use (default is 2):', 194 '1 = emperical model of Herron and Langway (1980)', 195 '2 = semi-emperical model of Anthern et al. (2010)', 196 '3 = DO NOT USE: physical model from Appix B of Anthern et al. (2010)', 197 '4 = DO NOT USE: emperical model of Li and Zwally (2004)', 198 '5 = DO NOT USE: modified emperical model (4) by Helsen et al. (2008)', 199 '6 = Antarctica semi-emperical model of Ligtenberg et al. (2011)', 200 '7 = Greenland semi-emperical model of Kuipers Munneke et al. (2015)'])) 201 string = "%s\n%s"%(string,fielddisplay(self,'dsnowIdx',['model for fresh snow accumulation density (default is 1):', 202 '0 = Original GEMB value, 150 kg/m^3', 203 '1 = Antarctica value of fresh snow density, 350 kg/m^3', 204 '2 = Greenland value of fresh snow density, 315 kg/m^3, Fausto et al. (2008)', 205 '3 = Antarctica model of Kaspers et al. (2004), Make sure to set Vmean accurately', 206 '4 = Greenland model of Kuipers Munneke et al. (2015)'])); 207 string = "%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 208 return string 209 #}}} 210 211 def extrude(self,md): # {{{ 212 213 self.Ta = project3d(md,'vector',self.Ta,'type','node') 214 self.V = project3d(md,'vector',self.V,'type','node') 215 self.dswrf = project3d(md,'vector',self.dswrf,'type','node') 216 self.dswrf = project3d(md,'vector',self.dswrf,'type','node') 217 self.P = project3d(md,'vector',self.P,'type','node') 218 self.eAir = project3d(md,'vector',self.eAir,'type','node') 219 self.pAir = project3d(md,'vector',self.pAir,'type','node') 220 221 if (aIdx == 0) and np.isnan(self.aValue): 222 self.aValue=project3d(md,'vector',self.aValue,'type','node'); 223 if np.isnan(self.teValue): 224 self.teValue=project3d(md,'vector',self.teValue,'type','node'); 225 226 return self 227 #}}} 228 def defaultoutputs(self,md): # {{{ 229 return ['SmbMassBalance'] 230 #}}} 231 232 def setdefaultparameters(self,mesh,geometry): # {{{ 233 self.isgraingrowth = 1 234 self.isalbedo = 1 235 self.isshortwave = 1 236 self.isthermal = 1 237 self.isaccumulation = 1 238 self.ismelt = 1 239 self.isdensification = 1 240 self.isturbulentflux = 1 241 self.isclimatology = 0 242 243 self.aIdx = 1 244 self.swIdx = 1 245 self.denIdx = 2 246 self.dsnowIdx = 1 247 self.zTop = 10*np.ones((mesh.numberofelements,)) 248 self.dzTop = .05* np.ones((mesh.numberofelements,)) 249 self.dzMin = self.dzTop/2 250 self.InitDensityScaling = 1.0 251 self.ThermoDeltaTScaling = 1/11.0 252 253 self.Vmean = 10*np.ones((mesh.numberofelements,)) 254 255 self.zMax = 250*np.ones((mesh.numberofelements,)) 256 self.zMin = 130*np.ones((mesh.numberofelements,)) 257 self.zY = 1.10*np.ones((mesh.numberofelements,)) 258 self.outputFreq = 30 259 260 #additional albedo parameters 261 self.aSnow = 0.85 262 self.aIce = 0.48 263 self.cldFrac = 0.1 264 self.t0wet = 15 265 self.t0dry = 30 266 self.K = 7 267 self.adThresh = 1023 268 269 self.teValue = np.ones((mesh.numberofelements,)); 270 self.aValue = self.aSnow*np.ones(mesh.numberofelements,); 271 272 self.Dzini = 0.05*np.ones((mesh.numberofelements,2)) 273 self.Dini = 910.0*np.ones((mesh.numberofelements,2)) 274 self.Reini = 2.5*np.ones((mesh.numberofelements,2)) 275 self.Gdnini = 0.0*np.ones((mesh.numberofelements,2)) 276 self.Gspini = 0.0*np.ones((mesh.numberofelements,2)) 277 self.ECini = 0.0*np.ones((mesh.numberofelements,)) 278 self.Wini = 0.0*np.ones((mesh.numberofelements,2)) 279 self.Aini = self.aSnow*np.ones((mesh.numberofelements,2)) 280 self.Tini = 273.15*np.ones((mesh.numberofelements,2)) 281 # /!\ Default value of Tini must be equal to Tmean but don't know Tmean yet (computed when atmospheric forcings are interpolated on mesh). 282 # If initialization without restart, this value will be overwritten when snow parameters are retrieved in Element.cpp 283 self.Sizeini = 2*np.ones((mesh.numberofelements,)) 284 #}}} 285 286 def checkconsistency(self,md,solution,analyses): # {{{ 287 288 md = checkfield(md,'fieldname','smb.isgraingrowth','values',[0,1]) 289 md = checkfield(md,'fieldname','smb.isalbedo','values',[0,1]) 290 md = checkfield(md,'fieldname','smb.isshortwave','values',[0,1]) 291 md = checkfield(md,'fieldname','smb.isthermal','values',[0,1]) 292 md = checkfield(md,'fieldname','smb.isaccumulation','values',[0,1]) 293 md = checkfield(md,'fieldname','smb.ismelt','values',[0,1]) 294 md = checkfield(md,'fieldname','smb.isdensification','values',[0,1]) 295 md = checkfield(md,'fieldname','smb.isturbulentflux','values',[0,1]) 296 md = checkfield(md,'fieldname','smb.isclimatology','values',[0,1]) 297 298 md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'Inf',1,'>',273-100,'<',273+100) #-100/100 celsius min/max value 299 md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1,'Inf',1,'> = ',0,'<',45,'size',np.shape(self.Ta)) #max 500 km/h 300 md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1,'Inf',1,'> = ',0,'< = ',1400,'size',np.shape(self.Ta)) 301 md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1,'Inf',1,'> = ',0,'size',np.shape(self.Ta)) 302 md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1,'Inf',1,'> = ',0,'< = ',100,'size',np.shape(self.Ta)) 303 md = checkfield(md,'fieldname','smb.eAir','timeseries',1,'NaN',1,'Inf',1,'size',np.shape(self.Ta)) 304 305 if (self.isclimatology>0): 306 md = checkfield(md,'fieldname', 'smb.Ta', 'size',[md.mesh.numberofelements+1],'message','Ta must have md.mesh.numberofelements+1 rows in order to force a climatology') 307 md = checkfield(md,'fieldname', 'smb.V', 'size',[md.mesh.numberofelements+1],'message','V must have md.mesh.numberofelements+1 rows in order to force a climatology') 308 md = checkfield(md,'fieldname', 'smb.dswrf', 'size',[md.mesh.numberofelements+1],'message','dswrf must have md.mesh.numberofelements+1 rows in order to force a climatology') 309 md = checkfield(md,'fieldname', 'smb.dlwrf', 'size',[md.mesh.numberofelements+1],'message','dlwrf must have md.mesh.numberofelements+1 rows in order to force a climatology') 310 md = checkfield(md,'fieldname', 'smb.P', 'size',[md.mesh.numberofelements+1],'message','P must have md.mesh.numberofelements+1 rows in order to force a climatology') 311 md = checkfield(md,'fieldname', 'smb.eAir', 'size',[md.mesh.numberofelements+1],'message','eAir must have md.mesh.numberofelements+1 rows in order to force a climatology') 312 313 md = checkfield(md,'fieldname','smb.Tmean','size',[md.mesh.numberofelements],'NaN',1,'Inf',1,'>',273-100,'<',273+100) #-100/100 celsius min/max value 314 md = checkfield(md,'fieldname','smb.C','size',[md.mesh.numberofelements],'NaN',1,'Inf',1,'> = ',0) 315 md = checkfield(md,'fieldname','smb.Vmean','size',[md.mesh.numberofelements],'NaN',1,'Inf',1,'> = ',0) 316 md = checkfield(md,'fieldname','smb.Tz','size',[md.mesh.numberofelements],'NaN',1,'Inf',1,'> = ',0,'< = ',5000) 317 md = checkfield(md,'fieldname','smb.Vz','size',[md.mesh.numberofelements],'NaN',1,'Inf',1,'> = ',0,'< = ',5000) 318 319 md = checkfield(md,'fieldname','smb.teValue','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',1); 320 321 md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'Inf',1,'values',[0,1,2,3,4]) 322 md = checkfield(md,'fieldname','smb.swIdx','NaN',1,'Inf',1,'values',[0,1]) 323 md = checkfield(md,'fieldname','smb.denIdx','NaN',1,'Inf',1,'values',[1,2,3,4,5,6,7]) 324 md = checkfield(md,'fieldname','smb.dsnowIdx','NaN',1,'Inf',1,'values',[0,1,2,3,4]) 325 326 md = checkfield(md,'fieldname','smb.zTop','NaN',1,'Inf',1,'> = ',0) 327 md = checkfield(md,'fieldname','smb.dzTop','NaN',1,'Inf',1,'>',0) 328 md = checkfield(md,'fieldname','smb.dzMin','NaN',1,'Inf',1,'>',0) 329 md = checkfield(md,'fieldname','smb.zY','NaN',1,'Inf',1,'> = ',1) 330 md = checkfield(md,'fieldname','smb.outputFreq','NaN',1,'Inf',1,'>',0,'<',10*365) #10 years max 331 md = checkfield(md,'fieldname','smb.InitDensityScaling','NaN',1,'Inf',1,'> = ',0,'< = ',1) 332 md = checkfield(md,'fieldname','smb.ThermoDeltaTScaling','NaN',1,'Inf',1,'> = ',0,'< = ',1) 333 md = checkfield(md,'fieldname','smb.adThresh','NaN',1,'Inf',1,'>=',0) 334 335 if type(self.aIdx) == list or type(self.aIdx) == type(np.array([1,2])) and (self.aIdx == [1,2] or (1 in self.aIdx and 2 in self.aIdx)): 336 md = checkfield(md,'fieldname','smb.aSnow','NaN',1,'Inf',1,'> = ',.64,'< = ',.89) 337 md = checkfield(md,'fieldname','smb.aIce','NaN',1,'Inf',1,'> = ',.27,'< = ',.58) 338 elif self.aIdx == 0: 339 md = checkfield(md,'fieldname','smb.aValue','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',1); 340 elif self.aIdx == 3: 341 md = checkfield(md,'fieldname','smb.cldFrac','NaN',1,'Inf',1,'> = ',0,'< = ',1) 342 elif self.aIdx == 4: 343 md = checkfield(md,'fieldname','smb.t0wet','NaN',1,'Inf',1,'> = ',15,'< = ',21.9) 344 md = checkfield(md,'fieldname','smb.t0dry','NaN',1,'Inf',1,'> = ',30,'< = ',30) 345 md = checkfield(md,'fieldname','smb.K','NaN',1,'Inf',1,'> = ',7,'< = ',7) 346 347 348 #check zTop is < local thickness: 349 he = np.sum(md.geometry.thickness[md.mesh.elements-1],axis=1)/np.size(md.mesh.elements,1) 350 if np.any(he<self.zTop): 351 error('SMBgemb consistency check error: zTop should be smaller than local ice thickness') 352 353 md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1) 354 return md 355 # }}} 356 357 def marshall(self,prefix,md,fid): # {{{ 358 359 yts = md.constants.yts 360 361 WriteData(fid,prefix,'name','md.smb.model','data',8,'format','Integer') 362 363 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isgraingrowth','format','Boolean') 364 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isalbedo','format','Boolean') 365 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isshortwave','format','Boolean') 366 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isthermal','format','Boolean') 367 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isaccumulation','format','Boolean') 368 WriteData(fid,prefix,'object',self,'class','smb','fieldname','ismelt','format','Boolean') 369 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isdensification','format','Boolean') 370 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isturbulentflux','format','Boolean') 371 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isclimatology','format','Boolean') 372 373 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Ta','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts) 374 WriteData(fid,prefix,'object',self,'class','smb','fieldname','V','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts) 375 WriteData(fid,prefix,'object',self,'class','smb','fieldname','dswrf','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts) 376 WriteData(fid,prefix,'object',self,'class','smb','fieldname','dlwrf','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts) 377 WriteData(fid,prefix,'object',self,'class','smb','fieldname','P','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts) 378 WriteData(fid,prefix,'object',self,'class','smb','fieldname','eAir','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts) 379 WriteData(fid,prefix,'object',self,'class','smb','fieldname','pAir','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts) 380 381 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Tmean','format','DoubleMat','mattype',2) 382 WriteData(fid,prefix,'object',self,'class','smb','fieldname','C','format','DoubleMat','mattype',2) 383 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Vmean','format','DoubleMat','mattype',2) 384 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Tz','format','DoubleMat','mattype',2) 385 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Vz','format','DoubleMat','mattype',2) 386 WriteData(fid,prefix,'object',self,'class','smb','fieldname','zTop','format','DoubleMat','mattype',2) 387 WriteData(fid,prefix,'object',self,'class','smb','fieldname','dzTop','format','DoubleMat','mattype',2) 388 WriteData(fid,prefix,'object',self,'class','smb','fieldname','dzMin','format','DoubleMat','mattype',2) 389 WriteData(fid,prefix,'object',self,'class','smb','fieldname','zY','format','DoubleMat','mattype',2) 390 WriteData(fid,prefix,'object',self,'class','smb','fieldname','zMax','format','DoubleMat','mattype',2) 391 WriteData(fid,prefix,'object',self,'class','smb','fieldname','zMin','format','DoubleMat','mattype',2) 392 393 WriteData(fid,prefix,'object',self,'class','smb','fieldname','aIdx','format','Integer') 394 WriteData(fid,prefix,'object',self,'class','smb','fieldname','swIdx','format','Integer') 395 WriteData(fid,prefix,'object',self,'class','smb','fieldname','denIdx','format','Integer') 396 WriteData(fid,prefix,'object',self,'class','smb','fieldname','dsnowIdx','format','Integer') 397 WriteData(fid,prefix,'object',self,'class','smb','fieldname','InitDensityScaling','format','Double') 398 WriteData(fid,prefix,'object',self,'class','smb','fieldname','ThermoDeltaTScaling','format','Double') 399 WriteData(fid,prefix,'object',self,'class','smb','fieldname','outputFreq','format','Double') 400 WriteData(fid,prefix,'object',self,'class','smb','fieldname','aSnow','format','Double') 401 WriteData(fid,prefix,'object',self,'class','smb','fieldname','aIce','format','Double') 402 WriteData(fid,prefix,'object',self,'class','smb','fieldname','cldFrac','format','Double') 403 WriteData(fid,prefix,'object',self,'class','smb','fieldname','t0wet','format','Double') 404 WriteData(fid,prefix,'object',self,'class','smb','fieldname','t0dry','format','Double') 405 WriteData(fid,prefix,'object',self,'class','smb','fieldname','K','format','Double') 406 WriteData(fid,prefix,'object',self,'class','smb','fieldname','adThresh','format','Double'); 407 408 WriteData(fid,prefix,'object',self,'class','smb','fieldname','aValue','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts); 409 WriteData(fid,prefix,'object',self,'class','smb','fieldname','teValue','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts); 410 411 #snow properties init 412 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Dzini','format','DoubleMat','mattype',3) 413 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Dini','format','DoubleMat','mattype',3) 414 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Reini','format','DoubleMat','mattype',3) 415 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Gdnini','format','DoubleMat','mattype',3) 416 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Gspini','format','DoubleMat','mattype',3) 417 WriteData(fid,prefix,'object',self,'class','smb','fieldname','ECini','format','DoubleMat','mattype',2) 418 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Wini','format','DoubleMat','mattype',3) 419 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Aini','format','DoubleMat','mattype',3) 420 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Tini','format','DoubleMat','mattype',3) 421 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Sizeini','format','IntMat','mattype',2) 422 423 #figure out dt from forcings: 424 time = self.Ta[-1] #assume all forcings are on the same time step 425 dtime = np.diff(time,n=1,axis=0) 426 dt = min(dtime) / yts 427 428 WriteData(fid,prefix,'data',dt,'name','md.smb.dt','format','Double','scale',yts) 429 430 # Check if smb_dt goes evenly into transient core time step 431 if (md.timestepping.time_step % dt >= 1e-10): 432 error('smb_dt/dt = #f. The number of SMB time steps in one transient core time step has to be an an integer',md.timestepping.time_step/dt) 433 434 #process requested outputs 435 outputs = self.requested_outputs 436 indices = [i for i, x in enumerate(outputs) if x == 'default'] 437 if len(indices) > 0: 438 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 439 outputs =outputscopy 440 441 WriteData(fid,prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray') 442 # }}} 9 """ 10 SMBgemb Class definition 11 12 Usage: 13 SMB = SMBgemb() 14 """ 15 16 def __init__(self): # {{{ 17 #each one of these properties is a transient forcing to the GEMB model, loaded from meteorological data derived 18 #from an automatic weather stations (AWS). Each property is therefore a matrix, of size (numberofvertices x number 19 #of time steps. ) 20 21 #solution choices 22 #check these: 23 #isgraingrowth 24 #isalbedo 25 #isshortwave 26 #isthermal 27 #isaccumulation 28 #ismelt 29 #isdensification 30 #isturbulentflux 31 32 #inputs: 33 self.Ta = float('NaN') #2 m air temperature, in Kelvin 34 self.V = float('NaN') #wind speed (m / s - 1) 35 self.dswrf = float('NaN') #downward shortwave radiation flux [W / m^2] 36 self.dlwrf = float('NaN') #downward longwave radiation flux [W / m^2] 37 self.P = float('NaN') #precipitation [mm w.e. / m^2] 38 self.eAir = float('NaN') #screen level vapor pressure [Pa] 39 self.pAir = float('NaN') #surface pressure [Pa] 40 self.Tmean = float('NaN') #mean annual temperature [K] 41 self.Vmean = float('NaN') #mean annual wind velocity [m s - 1] 42 self.C = float('NaN') #mean annual snow accumulation [kg m - 2 yr - 1] 43 self.Tz = float('NaN') #height above ground at which temperature (T) was sampled [m] 44 self.Vz = float('NaN') #height above ground at which wind (V) was sampled [m] 45 46 #optional inputs: 47 self.aValue = float('NaN') #Albedo forcing at every element. Used only if aIdx == 0. 48 self.teValue = float('NaN') #Outward longwave radiation thermal emissivity forcing at every element (default in code is 1) 49 50 # Initialization of snow properties 51 self.Dzini = float('NaN') #cell depth (m) 52 self.Dini = float('NaN') #snow density (kg m - 3) 53 self.Reini = float('NaN') #effective grain size (mm) 54 self.Gdnini = float('NaN') #grain dricity (0 - 1) 55 self.Gspini = float('NaN') #grain sphericity (0 - 1) 56 self.ECini = float('NaN') #evaporation/condensation (kg m - 2) 57 self.Wini = float('NaN') #Water content (kg m - 2) 58 self.Aini = float('NaN') #albedo (0 - 1) 59 self.Tini = float('NaN') #snow temperature (K) 60 self.Sizeini = float('NaN') #Number of layers 61 62 #settings: 63 self.aIdx = float('NaN') #method for calculating albedo and subsurface absorption (default is 1) 64 # 0: direct input from aValue parameter 65 # 1: effective grain radius [Gardner & Sharp, 2009] 66 # 2: effective grain radius [Brun et al., 2009] 67 # 3: density and cloud amount [Greuell & Konzelmann, 1994] 68 # 4: exponential time decay & wetness [Bougamont & Bamber, 2005] 69 # 5: ingest MODIS mode, direct input from aValue parameter applied to surface ice only 70 self.swIdx = float('NaN') # apply all SW to top grid cell (0) or allow SW to penetrate surface (1) (default 1) 71 self.denIdx = float('NaN') #densification model to use (default is 2): 72 # 1 = emperical model of Herron and Langway (1980) 73 # 2 = semi - emperical model of Anthern et al. (2010) 74 # 3 = DO NOT USE: physical model from Appix B of Anthern et al. (2010) 75 # 4 = DO NOT USE: emperical model of Li and Zwally (2004) 76 # 5 = DO NOT USE: modified emperical model (4) by Helsen et al. (2008) 77 # 6 = Antarctica semi - emperical model of Ligtenberg et al. (2011) 78 # 7 = Greenland semi - emperical model of Kuipers Munneke et al. (2015) 79 self.dsnowIdx = float('NaN') #model for fresh snow accumulation density (default is 1): 80 # 0 = Original GEMB value, 150 kg / m^3 81 # 1 = Antarctica value of fresh snow density, 350 kg / m^3 82 # 2 = Greenland value of fresh snow density, 315 kg / m^3, Fausto et al. (2008) 83 # 3 = Antarctica model of Kaspers et al. (2004) 84 # 4 = Greenland model of Kuipers Munneke et al. (2015) 85 86 self.zTop = float('NaN') # depth over which grid length is constant at the top of the snopack (default 10) [m] 87 self.dzTop = float('NaN') # initial top vertical grid spacing (default .05) [m] 88 self.dzMin = float('NaN') # initial min vertical allowable grid spacing (default dzTop / 2) [m] 89 self.zY = float('NaN') # strech grid cells bellow top_z by a [top_dz * y ^ (cells bellow top_z)] 90 self.zMax = float('NaN') #initial max model depth (default is min(thickness, 250)) [m] 91 self.zMin = float('NaN') #initial min model depth (default is min(thickness, 130)) [m] 92 self.outputFreq = float('NaN') #output frequency in days (default is monthly, 30) 93 94 #specific albedo parameters: 95 #Method 1 and 2: 96 self.aSnow = float('NaN') # new snow albedo (0.64 - 0.89) 97 self.aIce = float('NaN') # range 0.27 - 0.58 for old snow 98 #Method 3: Radiation Correction Factors - > only used for met station data and Greuell & Konzelmann, 1994 albedo 99 self.cldFrac = float('NaN') # average cloud amount 100 #Method 4: additonal tuning parameters albedo as a funtion of age and water content (Bougamont et al., 2005) 101 self.t0wet = float('NaN') # time scale for wet snow (15 - 21.9) 102 self.t0dry = float('NaN') # warm snow timescale (30) 103 self.K = float('NaN') # time scale temperature coef. (7) 104 self.adThresh = float('NaN') # Apply aIdx method to all areas with densities below this value, 105 # or else apply direct input value from aValue, allowing albedo to be altered. 106 # Default value is rho water (1023 kg m - 3). 107 108 #densities: 109 self.InitDensityScaling = float('NaN') #initial scaling factor multiplying the density of ice, which describes the density of the snowpack. 110 111 #thermo: 112 self.ThermoDeltaTScaling = float('NaN') #scaling factor to multiply the thermal diffusion timestep (delta t) 113 114 self.requested_outputs = [] 115 116 #Several fields are missing from the standard GEMB model, which are capture intrinsically by ISSM. 117 #dateN: that's the last row of the above fields. 118 #dt: included in dateN. Not an input. 119 #elev: this is taken from the ISSM surface itself. 120 121 #}}} 122 123 def __repr__(self): # {{{ 124 #string = " surface forcings parameters:" 125 #string = " #s\n #s" % (string, fielddisplay(self, 'mass_balance', 'surface mass balance [m / yr ice eq]')) 126 #string = " #s\n #s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 127 string = ' surface forcings for SMB GEMB model :' 128 string = "%s\n%s" % (string, fielddisplay(self, 'issmbgradients', 'is smb gradients method activated (0 or 1, default is 0)')) 129 string = "%s\n%s" % (string, fielddisplay(self, 'isgraingrowth', 'run grain growth module (default true)')) 130 string = "%s\n%s" % (string, fielddisplay(self, 'isalbedo', 'run albedo module (default true)')) 131 string = "%s\n%s" % (string, fielddisplay(self, 'isshortwave', 'run short wave module (default true)')) 132 string = "%s\n%s" % (string, fielddisplay(self, 'isthermal', 'run thermal module (default true)')) 133 string = "%s\n%s" % (string, fielddisplay(self, 'isaccumulation', 'run accumulation module (default true)')) 134 string = "%s\n%s" % (string, fielddisplay(self, 'ismelt', 'run melting module (default true)')) 135 string = "%s\n%s" % (string, fielddisplay(self, 'isdensification', 'run densification module (default true)')) 136 string = "%s\n%s" % (string, fielddisplay(self, 'isturbulentflux', 'run turbulant heat fluxes module (default true)')) 137 string = "%s\n%s" % (string, fielddisplay(self, 'isclimatology', 'repeat all forcings when past last forcing time (default false)')) 138 string = "%s\n%s" % (string, fielddisplay(self, 'Ta', '2 m air temperature, in Kelvin')) 139 string = "%s\n%s" % (string, fielddisplay(self, 'V', 'wind speed (m s - 1)')) 140 string = "%s\n%s" % (string, fielddisplay(self, 'dlwrf', 'downward shortwave radiation flux [W / m^2]')) 141 string = "%s\n%s" % (string, fielddisplay(self, 'dswrf', 'downward longwave radiation flux [W / m^2]')) 142 string = "%s\n%s" % (string, fielddisplay(self, 'P', 'precipitation [mm w.e. / m^2]')) 143 string = "%s\n%s" % (string, fielddisplay(self, 'eAir', 'screen level vapor pressure [Pa]')) 144 string = "%s\n%s" % (string, fielddisplay(self, 'pAir', 'surface pressure [Pa]')) 145 string = "%s\n%s" % (string, fielddisplay(self, 'Tmean', 'mean annual temperature [K]')) 146 string = "%s\n%s" % (string, fielddisplay(self, 'C', 'mean annual snow accumulation [kg m - 2 yr - 1]')) 147 string = "%s\n%s" % (string, fielddisplay(self, 'Vmean', 'mean annual wind velocity [m s - 1] (default 10 m / s)')) 148 string = "%s\n%s" % (string, fielddisplay(self, 'Tz', 'height above ground at which temperature (T) was sampled [m]')) 149 string = "%s\n%s" % (string, fielddisplay(self, 'Vz', 'height above ground at which wind (V) was sampled [m]')) 150 string = "%s\n%s" % (string, fielddisplay(self, 'zTop', 'depth over which grid length is constant at the top of the snopack (default 10) [m]')) 151 string = "%s\n%s" % (string, fielddisplay(self, 'dzTop', 'initial top vertical grid spacing (default .05) [m] ')) 152 string = "%s\n%s" % (string, fielddisplay(self, 'dzMin', 'initial min vertical allowable grid spacing (default dzMin / 2) [m] ')) 153 string = "%s\n%s" % (string, fielddisplay(self, 'zMax', 'initial max model depth (default is min(thickness, 500)) [m]')) 154 string = "%s\n%s" % (string, fielddisplay(self, 'zMin', 'initial min model depth (default is min(thickness, 30)) [m]')) 155 string = "%s\n%s" % (string, fielddisplay(self, 'zY', 'strech grid cells bellow top_z by a [top_dz * y ^ (cells bellow top_z)]')) 156 string = "%s\n%s" % (string, fielddisplay(self, 'InitDensityScaling', ['initial scaling factor multiplying the density of ice', 'which describes the density of the snowpack.'])) 157 string = "%s\n%s" % (string, fielddisplay(self, 'ThermoDeltaTScaling', 'scaling factor to multiply the thermal diffusion timestep (delta t)')) 158 string = "%s\n%s" % (string, fielddisplay(self, 'outputFreq', 'output frequency in days (default is monthly, 30)')) 159 string = "%s\n%s" % (string, fielddisplay(self, 'adThresh', 'Apply aIdx method to all areas with densities below this value, ', 'or else apply direct input value from aValue, allowing albedo to be altered.')) 160 string = "%s\n%s" % (string, fielddisplay(self, 'aIdx', ['method for calculating albedo and subsurface absorption (default is 1)', 161 '0: direct input from aValue parameter', 162 '1: effective grain radius [Gardner & Sharp, 2009]', 163 '2: effective grain radius [Brun et al., 2009]', 164 '3: density and cloud amount [Greuell & Konzelmann, 1994]', 165 '4: exponential time decay & wetness [Bougamont & Bamber, 2005]'])) 166 string = "%s\n%s" % (string, fielddisplay(self, 'teValue', 'Outward longwave radiation thermal emissivity forcing at every element (default in code is 1)')) 167 #snow properties init 168 string = "%s\n%s" % (string, fielddisplay(self, 'Dzini', 'Initial cell depth when restart [m]')) 169 string = "%s\n%s" % (string, fielddisplay(self, 'Dini', 'Initial snow density when restart [kg m - 3]')) 170 string = "%s\n%s" % (string, fielddisplay(self, 'Reini', 'Initial grain size when restart [mm]')) 171 string = "%s\n%s" % (string, fielddisplay(self, 'Gdnini', 'Initial grain dricity when restart [ - ]')) 172 string = "%s\n%s" % (string, fielddisplay(self, 'Gspini', 'Initial grain sphericity when restart [ - ]')) 173 string = "%s\n%s" % (string, fielddisplay(self, 'ECini', 'Initial evaporation / condensation when restart [kg m - 2]')) 174 string = "%s\n%s" % (string, fielddisplay(self, 'Wini', 'Initial snow water content when restart [kg m - 2]')) 175 string = "%s\n%s" % (string, fielddisplay(self, 'Aini', 'Initial albedo when restart [ - ]')) 176 string = "%s\n%s" % (string, fielddisplay(self, 'Tini', 'Initial snow temperature when restart [K]')) 177 string = "%s\n%s" % (string, fielddisplay(self, 'Sizeini', 'Initial number of layers when restart [K]')) 178 179 #additional albedo parameters: 180 if isinstance(self.aIdx, list) or isinstance(self.aIdx, np.ndarray) and (self.aIdx == [1, 2] or (1 in self.aIdx and 2 in self.aIdx)): 181 string = "%s\n%s" % (string, fielddisplay(self, 'aSnow', 'new snow albedo (0.64 - 0.89)')) 182 string = "%s\n%s" % (string, fielddisplay(self, 'aIce', 'albedo of ice (0.27 - 0.58)')) 183 elif elf.aIdx == 0: 184 string = "%s\n%s" % (string, fielddisplay(self, 'aValue', 'Albedo forcing at every element. Used only if aIdx == {0, 5}')) 185 elif elf.aIdx == 5: 186 string = "%s\n%s" % (string, fielddisplay(self, 'aValue', 'Albedo forcing at every element. Used only if aIdx == {0, 5}')) 187 elif self.aIdx == 3: 188 string = "%s\n%s" % (string, fielddisplay(self, 'cldFrac', 'average cloud amount')) 189 elif self.aIdx == 4: 190 string = "%s\n%s" % (string, fielddisplay(self, 't0wet', 'time scale for wet snow (15 - 21.9) [d]')) 191 string = "%s\n%s" % (string, fielddisplay(self, 't0dry', 'warm snow timescale (30) [d]')) 192 string = "%s\n%s" % (string, fielddisplay(self, 'K', 'time scale temperature coef. (7) [d]')) 193 194 string = "%s\n%s" % (string, fielddisplay(self, 'swIdx', 'apply all SW to top grid cell (0) or allow SW to penetrate surface (1) [default 1]')) 195 string = "%s\n%s" % (string, fielddisplay(self, 'denIdx', ['densification model to use (default is 2):', 196 '1 = emperical model of Herron and Langway (1980)', 197 '2 = semi - emperical model of Anthern et al. (2010)', 198 '3 = DO NOT USE: physical model from Appix B of Anthern et al. (2010)', 199 '4 = DO NOT USE: emperical model of Li and Zwally (2004)', 200 '5 = DO NOT USE: modified emperical model (4) by Helsen et al. (2008)', 201 '6 = Antarctica semi - emperical model of Ligtenberg et al. (2011)', 202 '7 = Greenland semi - emperical model of Kuipers Munneke et al. (2015)'])) 203 string = "%s\n%s" % (string, fielddisplay(self, 'dsnowIdx', ['model for fresh snow accumulation density (default is 1):', 204 '0 = Original GEMB value, 150 kg / m^3', 205 '1 = Antarctica value of fresh snow density, 350 kg / m^3', 206 '2 = Greenland value of fresh snow density, 315 kg / m^3, Fausto et al. (2008)', 207 '3 = Antarctica model of Kaspers et al. (2004), Make sure to set Vmean accurately', 208 '4 = Greenland model of Kuipers Munneke et al. (2015)'])) 209 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 210 return string 211 #}}} 212 213 def extrude(self, md): # {{{ 214 self.Ta = project3d(md, 'vector', self.Ta, 'type', 'node') 215 self.V = project3d(md, 'vector', self.V, 'type', 'node') 216 self.dswrf = project3d(md, 'vector', self.dswrf, 'type', 'node') 217 self.dswrf = project3d(md, 'vector', self.dswrf, 'type', 'node') 218 self.P = project3d(md, 'vector', self.P, 'type', 'node') 219 self.eAir = project3d(md, 'vector', self.eAir, 'type', 'node') 220 self.pAir = project3d(md, 'vector', self.pAir, 'type', 'node') 221 222 if (self.aIdx == 0) and np.isnan(self.aValue): 223 self.aValue = project3d(md, 'vector', self.aValue, 'type', 'node') 224 if np.isnan(self.teValue): 225 self.teValue = project3d(md, 'vector', self.teValue, 'type', 'node') 226 227 return self 228 #}}} 229 230 def defaultoutputs(self, md): # {{{ 231 return ['SmbMassBalance'] 232 #}}} 233 234 def setdefaultparameters(self, mesh, geometry): # {{{ 235 self.isgraingrowth = 1 236 self.isalbedo = 1 237 self.isshortwave = 1 238 self.isthermal = 1 239 self.isaccumulation = 1 240 self.ismelt = 1 241 self.isdensification = 1 242 self.isturbulentflux = 1 243 self.isclimatology = 0 244 245 self.aIdx = 1 246 self.swIdx = 1 247 self.denIdx = 2 248 self.dsnowIdx = 1 249 self.zTop = 10 * np.ones((mesh.numberofelements, )) 250 self.dzTop = .05 * np.ones((mesh.numberofelements, )) 251 self.dzMin = self.dzTop / 2 252 self.InitDensityScaling = 1.0 253 self.ThermoDeltaTScaling = 1 / 11.0 254 255 self.Vmean = 10 * np.ones((mesh.numberofelements, )) 256 257 self.zMax = 250 * np.ones((mesh.numberofelements, )) 258 self.zMin = 130 * np.ones((mesh.numberofelements, )) 259 self.zY = 1.10 * np.ones((mesh.numberofelements, )) 260 self.outputFreq = 30 261 262 #additional albedo parameters 263 self.aSnow = 0.85 264 self.aIce = 0.48 265 self.cldFrac = 0.1 266 self.t0wet = 15 267 self.t0dry = 30 268 self.K = 7 269 self.adThresh = 1023 270 271 self.teValue = np.ones((mesh.numberofelements, )) 272 self.aValue = self.aSnow * np.ones(mesh.numberofelements, ) 273 274 self.Dzini = 0.05 * np.ones((mesh.numberofelements, 2)) 275 self.Dini = 910.0 * np.ones((mesh.numberofelements, 2)) 276 self.Reini = 2.5 * np.ones((mesh.numberofelements, 2)) 277 self.Gdnini = 0.0 * np.ones((mesh.numberofelements, 2)) 278 self.Gspini = 0.0 * np.ones((mesh.numberofelements, 2)) 279 self.ECini = 0.0 * np.ones((mesh.numberofelements, )) 280 self.Wini = 0.0 * np.ones((mesh.numberofelements, 2)) 281 self.Aini = self.aSnow * np.ones((mesh.numberofelements, 2)) 282 self.Tini = 273.15 * np.ones((mesh.numberofelements, 2)) 283 # / !\ Default value of Tini must be equal to Tmean but don't know Tmean yet (computed when atmospheric forcings are interpolated on mesh). 284 # If initialization without restart, this value will be overwritten when snow parameters are retrieved in Element.cpp 285 self.Sizeini = 2 * np.ones((mesh.numberofelements, )) 286 #}}} 287 288 def checkconsistency(self, md, solution, analyses): # {{{ 289 md = checkfield(md, 'fieldname', 'smb.isgraingrowth', 'values', [0, 1]) 290 md = checkfield(md, 'fieldname', 'smb.isalbedo', 'values', [0, 1]) 291 md = checkfield(md, 'fieldname', 'smb.isshortwave', 'values', [0, 1]) 292 md = checkfield(md, 'fieldname', 'smb.isthermal', 'values', [0, 1]) 293 md = checkfield(md, 'fieldname', 'smb.isaccumulation', 'values', [0, 1]) 294 md = checkfield(md, 'fieldname', 'smb.ismelt', 'values', [0, 1]) 295 md = checkfield(md, 'fieldname', 'smb.isdensification', 'values', [0, 1]) 296 md = checkfield(md, 'fieldname', 'smb.isturbulentflux', 'values', [0, 1]) 297 md = checkfield(md, 'fieldname', 'smb.isclimatology', 'values', [0, 1]) 298 299 md = checkfield(md, 'fieldname', 'smb.Ta', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '>', 273 - 100, '<', 273 + 100) # - 100 / 100 celsius min / max value 300 md = checkfield(md, 'fieldname', 'smb.V', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '>=', 0, '<', 45, 'size', np.shape(self.Ta)) #max 500 km / h 301 md = checkfield(md, 'fieldname', 'smb.dswrf', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '>=', 0, '<=', 1400, 'size', np.shape(self.Ta)) 302 md = checkfield(md, 'fieldname', 'smb.dlwrf', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '>=', 0, 'size', np.shape(self.Ta)) 303 md = checkfield(md, 'fieldname', 'smb.P', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '>=', 0, '<=', 100, 'size', np.shape(self.Ta)) 304 md = checkfield(md, 'fieldname', 'smb.eAir', 'timeseries', 1, 'NaN', 1, 'Inf', 1, 'size', np.shape(self.Ta)) 305 306 if (self.isclimatology > 0): 307 md = checkfield(md, 'fieldname', 'smb.Ta', 'size', [md.mesh.numberofelements + 1], 'message', 'Ta must have md.mesh.numberofelements + 1 rows in order to force a climatology') 308 md = checkfield(md, 'fieldname', 'smb.V', 'size', [md.mesh.numberofelements + 1], 'message', 'V must have md.mesh.numberofelements + 1 rows in order to force a climatology') 309 md = checkfield(md, 'fieldname', 'smb.dswrf', 'size', [md.mesh.numberofelements + 1], 'message', 'dswrf must have md.mesh.numberofelements + 1 rows in order to force a climatology') 310 md = checkfield(md, 'fieldname', 'smb.dlwrf', 'size', [md.mesh.numberofelements + 1], 'message', 'dlwrf must have md.mesh.numberofelements + 1 rows in order to force a climatology') 311 md = checkfield(md, 'fieldname', 'smb.P', 'size', [md.mesh.numberofelements + 1], 'message', 'P must have md.mesh.numberofelements + 1 rows in order to force a climatology') 312 md = checkfield(md, 'fieldname', 'smb.eAir', 'size', [md.mesh.numberofelements + 1], 'message', 'eAir must have md.mesh.numberofelements + 1 rows in order to force a climatology') 313 314 md = checkfield(md, 'fieldname', 'smb.Tmean', 'size', [md.mesh.numberofelements], 'NaN', 1, 'Inf', 1, '>', 273 - 100, '<', 273 + 100) # - 100 / 100 celsius min / max value 315 md = checkfield(md, 'fieldname', 'smb.C', 'size', [md.mesh.numberofelements], 'NaN', 1, 'Inf', 1, '>=', 0) 316 md = checkfield(md, 'fieldname', 'smb.Vmean', 'size', [md.mesh.numberofelements], 'NaN', 1, 'Inf', 1, '>=', 0) 317 md = checkfield(md, 'fieldname', 'smb.Tz', 'size', [md.mesh.numberofelements], 'NaN', 1, 'Inf', 1, '>=', 0, '<=', 5000) 318 md = checkfield(md, 'fieldname', 'smb.Vz', 'size', [md.mesh.numberofelements], 'NaN', 1, 'Inf', 1, '>=', 0, '<=', 5000) 319 320 md = checkfield(md, 'fieldname', 'smb.teValue', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '>=', 0, '<=', 1) 321 322 md = checkfield(md, 'fieldname', 'smb.aIdx', 'NaN', 1, 'Inf', 1, 'values', [0, 1, 2, 3, 4]) 323 md = checkfield(md, 'fieldname', 'smb.swIdx', 'NaN', 1, 'Inf', 1, 'values', [0, 1]) 324 md = checkfield(md, 'fieldname', 'smb.denIdx', 'NaN', 1, 'Inf', 1, 'values', [1, 2, 3, 4, 5, 6, 7]) 325 md = checkfield(md, 'fieldname', 'smb.dsnowIdx', 'NaN', 1, 'Inf', 1, 'values', [0, 1, 2, 3, 4]) 326 327 md = checkfield(md, 'fieldname', 'smb.zTop', 'NaN', 1, 'Inf', 1, '>=', 0) 328 md = checkfield(md, 'fieldname', 'smb.dzTop', 'NaN', 1, 'Inf', 1, '>', 0) 329 md = checkfield(md, 'fieldname', 'smb.dzMin', 'NaN', 1, 'Inf', 1, '>', 0) 330 md = checkfield(md, 'fieldname', 'smb.zY', 'NaN', 1, 'Inf', 1, '>=', 1) 331 md = checkfield(md, 'fieldname', 'smb.outputFreq', 'NaN', 1, 'Inf', 1, '>', 0, '<', 10 * 365) #10 years max 332 md = checkfield(md, 'fieldname', 'smb.InitDensityScaling', 'NaN', 1, 'Inf', 1, '>=', 0, '<=', 1) 333 md = checkfield(md, 'fieldname', 'smb.ThermoDeltaTScaling', 'NaN', 1, 'Inf', 1, '>=', 0, '<=', 1) 334 md = checkfield(md, 'fieldname', 'smb.adThresh', 'NaN', 1, 'Inf', 1, '>=', 0) 335 336 if isinstance(self.aIdx, list) or isinstance(self.aIdx, np.ndarray) and (self.aIdx == [1, 2] or (1 in self.aIdx and 2 in self.aIdx)): 337 md = checkfield(md, 'fieldname', 'smb.aSnow', 'NaN', 1, 'Inf', 1, '>=', .64, '<=', .89) 338 md = checkfield(md, 'fieldname', 'smb.aIce', 'NaN', 1, 'Inf', 1, '>=', .27, '<=', .58) 339 elif self.aIdx == 0: 340 md = checkfield(md, 'fieldname', 'smb.aValue', 'timeseries', 1, 'NaN', 1, 'Inf', 1, '>=', 0, '<=', 1) 341 elif self.aIdx == 3: 342 md = checkfield(md, 'fieldname', 'smb.cldFrac', 'NaN', 1, 'Inf', 1, '>=', 0, '<=', 1) 343 elif self.aIdx == 4: 344 md = checkfield(md, 'fieldname', 'smb.t0wet', 'NaN', 1, 'Inf', 1, '>=', 15, '<=', 21.9) 345 md = checkfield(md, 'fieldname', 'smb.t0dry', 'NaN', 1, 'Inf', 1, '>=', 30, '<=', 30) 346 md = checkfield(md, 'fieldname', 'smb.K', 'NaN', 1, 'Inf', 1, '>=', 7, '<=', 7) 347 348 #check zTop is < local thickness: 349 he = np.sum(md.geometry.thickness[md.mesh.elements - 1], axis=1) / np.size(md.mesh.elements, 1) 350 if np.any(he < self.zTop): 351 error('SMBgemb consistency check error: zTop should be smaller than local ice thickness') 352 353 md = checkfield(md, 'fieldname', 'smb.requested_outputs', 'stringrow', 1) 354 return md 355 # }}} 356 357 def marshall(self, prefix, md, fid): # {{{ 358 yts = md.constants.yts 359 360 WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 8, 'format', 'Integer') 361 362 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isgraingrowth', 'format', 'Boolean') 363 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isalbedo', 'format', 'Boolean') 364 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isshortwave', 'format', 'Boolean') 365 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isthermal', 'format', 'Boolean') 366 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isaccumulation', 'format', 'Boolean') 367 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'ismelt', 'format', 'Boolean') 368 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isdensification', 'format', 'Boolean') 369 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isturbulentflux', 'format', 'Boolean') 370 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isclimatology', 'format', 'Boolean') 371 372 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Ta', 'format', 'DoubleMat', 'mattype', 2, 'timeserieslength', md.mesh.numberofelements + 1, 'yts', yts) 373 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'V', 'format', 'DoubleMat', 'mattype', 2, 'timeserieslength', md.mesh.numberofelements + 1, 'yts', yts) 374 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'dswrf', 'format', 'DoubleMat', 'mattype', 2, 'timeserieslength', md.mesh.numberofelements + 1, 'yts', yts) 375 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'dlwrf', 'format', 'DoubleMat', 'mattype', 2, 'timeserieslength', md.mesh.numberofelements + 1, 'yts', yts) 376 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'P', 'format', 'DoubleMat', 'mattype', 2, 'timeserieslength', md.mesh.numberofelements + 1, 'yts', yts) 377 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'eAir', 'format', 'DoubleMat', 'mattype', 2, 'timeserieslength', md.mesh.numberofelements + 1, 'yts', yts) 378 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'pAir', 'format', 'DoubleMat', 'mattype', 2, 'timeserieslength', md.mesh.numberofelements + 1, 'yts', yts) 379 380 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Tmean', 'format', 'DoubleMat', 'mattype', 2) 381 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'C', 'format', 'DoubleMat', 'mattype', 2) 382 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Vmean', 'format', 'DoubleMat', 'mattype', 2) 383 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Tz', 'format', 'DoubleMat', 'mattype', 2) 384 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Vz', 'format', 'DoubleMat', 'mattype', 2) 385 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'zTop', 'format', 'DoubleMat', 'mattype', 2) 386 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'dzTop', 'format', 'DoubleMat', 'mattype', 2) 387 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'dzMin', 'format', 'DoubleMat', 'mattype', 2) 388 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'zY', 'format', 'DoubleMat', 'mattype', 2) 389 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'zMax', 'format', 'DoubleMat', 'mattype', 2) 390 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'zMin', 'format', 'DoubleMat', 'mattype', 2) 391 392 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'aIdx', 'format', 'Integer') 393 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'swIdx', 'format', 'Integer') 394 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'denIdx', 'format', 'Integer') 395 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'dsnowIdx', 'format', 'Integer') 396 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'InitDensityScaling', 'format', 'Double') 397 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'ThermoDeltaTScaling', 'format', 'Double') 398 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'outputFreq', 'format', 'Double') 399 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'aSnow', 'format', 'Double') 400 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'aIce', 'format', 'Double') 401 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'cldFrac', 'format', 'Double') 402 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 't0wet', 'format', 'Double') 403 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 't0dry', 'format', 'Double') 404 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'K', 'format', 'Double') 405 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'adThresh', 'format', 'Double') 406 407 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'aValue', 'format', 'DoubleMat', 'mattype', 2, 'timeserieslength', md.mesh.numberofelements + 1, 'yts', yts) 408 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'teValue', 'format', 'DoubleMat', 'mattype', 2, 'timeserieslength', md.mesh.numberofelements + 1, 'yts', yts) 409 410 #snow properties init 411 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Dzini', 'format', 'DoubleMat', 'mattype', 3) 412 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Dini', 'format', 'DoubleMat', 'mattype', 3) 413 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Reini', 'format', 'DoubleMat', 'mattype', 3) 414 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Gdnini', 'format', 'DoubleMat', 'mattype', 3) 415 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Gspini', 'format', 'DoubleMat', 'mattype', 3) 416 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'ECini', 'format', 'DoubleMat', 'mattype', 2) 417 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Wini', 'format', 'DoubleMat', 'mattype', 3) 418 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Aini', 'format', 'DoubleMat', 'mattype', 3) 419 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Tini', 'format', 'DoubleMat', 'mattype', 3) 420 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Sizeini', 'format', 'IntMat', 'mattype', 2) 421 422 #figure out dt from forcings: 423 time = self.Ta[-1] #assume all forcings are on the same time step 424 dtime = np.diff(time, n=1, axis=0) 425 dt = min(dtime) / yts 426 427 WriteData(fid, prefix, 'data', dt, 'name', 'md.smb.dt', 'format', 'Double', 'scale', yts) 428 429 # Check if smb_dt goes evenly into transient core time step 430 if (md.timestepping.time_step % dt >= 1e-10): 431 error('smb_dt/dt = #f. The number of SMB time steps in one transient core time step has to be an an integer', md.timestepping.time_step / dt) 432 433 #process requested outputs 434 outputs = self.requested_outputs 435 indices = [i for i, x in enumerate(outputs) if x == 'default'] 436 if len(indices) > 0: 437 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 438 outputs = outputscopy 439 440 WriteData(fid, prefix, 'data', outputs, 'name', 'md.smb.requested_outputs', 'format', 'StringArray') 441 # }}} -
issm/trunk-jpl/src/m/classes/SMBgradients.py
r21049 r24213 2 2 from checkfield import checkfield 3 3 from WriteData import WriteData 4 from project3d import project3d 4 5 5 6 6 class SMBgradients(object): 7 8 7 """ 8 SMBgradients Class definition 9 9 10 11 SMBgradients=SMBgradients(); 12 10 Usage: 11 SMBgradients = SMBgradients() 12 """ 13 13 14 def __init__(self): # {{{ 15 self.href = float('NaN') 16 self.smbref = float('NaN') 17 self.b_pos = float('NaN') 18 self.b_neg = float('NaN') 19 self.requested_outputs = [] 20 #}}} 21 def __repr__(self): # {{{ 22 string=" surface forcings parameters:" 14 def __init__(self): # {{{ 15 self.href = float('NaN') 16 self.smbref = float('NaN') 17 self.b_pos = float('NaN') 18 self.b_neg = float('NaN') 19 self.requested_outputs = [] 20 #}}} 23 21 24 string="%s\n%s"%(string,fielddisplay(self,'issmbgradients','is smb gradients method activated (0 or 1, default is 0)')) 25 string="%s\n%s"%(string,fielddisplay(self,'href',' reference elevation from which deviation is used to calculate SMB adjustment in smb gradients method')) 26 string="%s\n%s"%(string,fielddisplay(self,'smbref',' reference smb from which deviation is calculated in smb gradients method')) 27 string="%s\n%s"%(string,fielddisplay(self,'b_pos',' slope of hs - smb regression line for accumulation regime required if smb gradients is activated')) 28 string="%s\n%s"%(string,fielddisplay(self,'b_neg',' slope of hs - smb regression line for ablation regime required if smb gradients is activated')) 29 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 22 def __repr__(self): # {{{ 23 string = " surface forcings parameters:" 30 24 31 return string 32 #}}} 33 def extrude(self,md): # {{{ 25 string = "%s\n%s" % (string, fielddisplay(self, 'issmbgradients', 'is smb gradients method activated (0 or 1, default is 0)')) 26 string = "%s\n%s" % (string, fielddisplay(self, 'href', ' reference elevation from which deviation is used to calculate SMB adjustment in smb gradients method')) 27 string = "%s\n%s" % (string, fielddisplay(self, 'smbref', ' reference smb from which deviation is calculated in smb gradients method')) 28 string = "%s\n%s" % (string, fielddisplay(self, 'b_pos', ' slope of hs - smb regression line for accumulation regime required if smb gradients is activated')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'b_neg', ' slope of hs - smb regression line for ablation regime required if smb gradients is activated')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 34 31 35 #Nothing for now 36 return self 37 #}}} 38 def defaultoutputs(self,md): # {{{ 39 return [] 40 #}}} 41 def initialize(self,md): # {{{ 32 return string 33 #}}} 42 34 43 #Nothing for now 35 def extrude(self, md): # {{{ 36 #Nothing for now 37 return self 38 #}}} 44 39 45 return self 46 #}}} 47 def checkconsistency(self,md,solution,analyses): # {{{ 40 def defaultoutputs(self, md): # {{{ 41 return [] 42 #}}} 48 43 49 if 'MasstransportAnalysis' in analyses: 50 md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1,'Inf',1) 51 md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1,'Inf',1) 52 md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1,'Inf',1) 53 md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1,'Inf',1) 44 def initialize(self, md): # {{{ 45 #Nothing for now 46 return self 47 #}}} 54 48 55 md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1) 56 return md 57 # }}} 58 def marshall(self,prefix,md,fid): # {{{ 49 def checkconsistency(self, md, solution, analyses): # {{{ 50 if 'MasstransportAnalysis' in analyses: 51 md = checkfield(md, 'fieldname', 'smb.href', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 52 md = checkfield(md, 'fieldname', 'smb.smbref', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 53 md = checkfield(md, 'fieldname', 'smb.b_pos', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 54 md = checkfield(md, 'fieldname', 'smb.b_neg', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 59 55 60 yts=md.constants.yts 56 md = checkfield(md, 'fieldname', 'masstransport.requested_outputs', 'stringrow', 1) 57 return md 58 # }}} 61 59 62 WriteData(fid,prefix,'name','md.smb.model','data',6,'format','Integer'); 63 WriteData(fid,prefix,'object',self,'class','smb','fieldname','href','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 64 WriteData(fid,prefix,'object',self,'class','smb','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 65 WriteData(fid,prefix,'object',self,'class','smb','fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 66 WriteData(fid,prefix,'object',self,'class','smb','fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 67 68 #process requested outputs 69 outputs = self.requested_outputs 70 indices = [i for i, x in enumerate(outputs) if x == 'default'] 71 if len(indices) > 0: 72 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 73 outputs =outputscopy 74 WriteData(fid,prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray') 60 def marshall(self, prefix, md, fid): # {{{ 61 yts = md.constants.yts 75 62 76 # }}} 63 WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 6, 'format', 'Integer') 64 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'href', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 65 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'smbref', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 66 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'b_pos', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 67 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'b_neg', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 68 69 #process requested outputs 70 outputs = self.requested_outputs 71 indices = [i for i, x in enumerate(outputs) if x == 'default'] 72 if len(indices) > 0: 73 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 74 outputs = outputscopy 75 WriteData(fid, prefix, 'data', outputs, 'name', 'md.smb.requested_outputs', 'format', 'StringArray') 76 77 # }}} -
issm/trunk-jpl/src/m/classes/SMBgradientscomponents.py
r23365 r24213 2 2 from checkfield import checkfield 3 3 from WriteData import WriteData 4 from project3d import project3d 4 5 5 6 6 class SMBgradientscomponents(object): 7 8 7 """ 8 SMBgradients Class definition 9 9 10 11 SMBgradients=SMBgradientscomponents(); 12 For now it has accumulation, runoff ans retention which could be aither refreezing and/or evaporation13 10 Usage: 11 SMBgradients = SMBgradientscomponents() 12 For now it has accumulation, runoff ans retention which could be aither refreezing and / or evaporation 13 """ 14 14 15 def __init__(self): # {{{ 16 self.accuref = float('NaN') 17 self.accualti = float('NaN') 18 self.accugrad = float('NaN') 19 self.runoffref = float('NaN') 20 self.runoffalti = float('NaN') 21 self.runoffgrad = float('NaN') 22 self.requested_outputs = ['default'] 23 #}}} 24 def __repr__(self): # {{{ 25 string=" surface forcings parameters:" 26 string="%s\n%s"%(string,fielddisplay(self,'accuref',' reference value of the accumulation')) 27 string="%s\n%s"%(string,fielddisplay(self,'accualti',' Altitude at which the accumulation is equal to the reference value')) 28 string="%s\n%s"%(string,fielddisplay(self,'accugrad',' Gradient of the variation of the accumulation (0 for uniform accumulation)')) 29 string="%s\n%s"%(string,fielddisplay(self,'runoffref',' reference value of the runoff m w.e. y-1 (temperature times ddf)')) 30 string="%s\n%s"%(string,fielddisplay(self,'runoffalti',' Altitude at which the runoff is equal to the reference value')) 31 string="%s\n%s"%(string,fielddisplay(self,'runoffgrad',' Gradient of the variation of the runoff (0 for uniform runoff) m w.e. m-1 y-1 (lpase rate times ddf)')) 32 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 15 def __init__(self): # {{{ 16 self.accuref = float('NaN') 17 self.accualti = float('NaN') 18 self.accugrad = float('NaN') 19 self.runoffref = float('NaN') 20 self.runoffalti = float('NaN') 21 self.runoffgrad = float('NaN') 22 self.requested_outputs = ['default'] 23 #}}} 33 24 34 return string 35 #}}} 36 def extrude(self,md): # {{{ 37 #Nothing for now 38 return self 39 #}}} 40 def defaultoutputs(self,md): # {{{ 41 return ['SmbMassBalance','SmbRunoff'] 42 #}}} 43 def initialize(self,md): # {{{ 44 #Nothing for now 45 return self 46 #}}} 47 def checkconsistency(self,md,solution,analyses): # {{{ 48 if 'MasstransportAnalysis' in analyses: 49 md = checkfield(md,'fieldname','smb.accuref','singletimeseries',1,'NaN',1,'Inf',1) 50 md = checkfield(md,'fieldname','smb.accualti','numel',[1],'NaN',1,'Inf',1) 51 md = checkfield(md,'fieldname','smb.accugrad','numel',[1],'NaN',1,'Inf',1) 52 md = checkfield(md,'fieldname','smb.runoffref','singletimeseries',1,'NaN',1,'Inf',1) 53 md = checkfield(md,'fieldname','smb.runoffalti','numel',[1],'NaN',1,'Inf',1) 54 md = checkfield(md,'fieldname','smb.runoffgrad','numel',[1],'NaN',1,'Inf',1) 55 md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1) 56 return md 57 # }}} 58 def marshall(self,prefix,md,fid): # {{{ 25 def __repr__(self): # {{{ 26 string = " surface forcings parameters:" 27 string = "%s\n%s" % (string, fielddisplay(self, 'accuref', ' reference value of the accumulation')) 28 string = "%s\n%s" % (string, fielddisplay(self, 'accualti', ' Altitude at which the accumulation is equal to the reference value')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'accugrad', ' Gradient of the variation of the accumulation (0 for uniform accumulation)')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'runoffref', ' reference value of the runoff m w.e. y - 1 (temperature times ddf)')) 31 string = "%s\n%s" % (string, fielddisplay(self, 'runoffalti', ' Altitude at which the runoff is equal to the reference value')) 32 string = "%s\n%s" % (string, fielddisplay(self, 'runoffgrad', ' Gradient of the variation of the runoff (0 for uniform runoff) m w.e. m - 1 y - 1 (lpase rate times ddf)')) 33 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 59 34 60 yts=md.constants.yts 35 return string 36 #}}} 61 37 62 WriteData(fid,prefix,'name','md.smb.model','data',11,'format','Integer') 63 WriteData(fid,prefix,'object',self,'class','smb','fieldname','accuref','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts) 64 WriteData(fid,prefix,'object',self,'class','smb','fieldname','accualti','format','Double') 65 WriteData(fid,prefix,'object',self,'class','smb','fieldname','accugrad','format','Double','scale',1./md.constants.yts) 66 WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffref','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1./md.constants.yts) 67 WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffalti','format','Double') 68 WriteData(fid,prefix,'object',self,'class','smb','fieldname','runoffgrad','format','Double','scale',1./md.constants.yts) 38 def extrude(self, md): # {{{ 39 #Nothing for now 40 return self 41 #}}} 69 42 70 #process requested outputs 71 outputs = self.requested_outputs 72 indices = [i for i, x in enumerate(outputs) if x == 'default'] 73 if len(indices) > 0: 74 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 75 outputs =outputscopy 76 WriteData(fid,prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray') 43 def defaultoutputs(self, md): # {{{ 44 return ['SmbMassBalance', 'SmbRunoff'] 45 #}}} 77 46 78 # }}} 47 def initialize(self, md): # {{{ 48 #Nothing for now 49 return self 50 #}}} 51 52 def checkconsistency(self, md, solution, analyses): # {{{ 53 if 'MasstransportAnalysis' in analyses: 54 md = checkfield(md, 'fieldname', 'smb.accuref', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1) 55 md = checkfield(md, 'fieldname', 'smb.accualti', 'numel', [1], 'NaN', 1, 'Inf', 1) 56 md = checkfield(md, 'fieldname', 'smb.accugrad', 'numel', [1], 'NaN', 1, 'Inf', 1) 57 md = checkfield(md, 'fieldname', 'smb.runoffref', 'singletimeseries', 1, 'NaN', 1, 'Inf', 1) 58 md = checkfield(md, 'fieldname', 'smb.runoffalti', 'numel', [1], 'NaN', 1, 'Inf', 1) 59 md = checkfield(md, 'fieldname', 'smb.runoffgrad', 'numel', [1], 'NaN', 1, 'Inf', 1) 60 md = checkfield(md, 'fieldname', 'masstransport.requested_outputs', 'stringrow', 1) 61 return md 62 # }}} 63 64 def marshall(self, prefix, md, fid): # {{{ 65 yts = md.constants.yts 66 WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 11, 'format', 'Integer') 67 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accuref', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts, 'scale', 1. / yts) 68 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accualti', 'format', 'Double') 69 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accugrad', 'format', 'Double', 'scale', 1. / yts) 70 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffref', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts, 'scale', 1. / yts) 71 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffalti', 'format', 'Double') 72 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'runoffgrad', 'format', 'Double', 'scale', 1. / yts) 73 74 #process requested outputs 75 outputs = self.requested_outputs 76 indices = [i for i, x in enumerate(outputs) if x == 'default'] 77 if len(indices) > 0: 78 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 79 outputs = outputscopy 80 WriteData(fid, prefix, 'data', outputs, 'name', 'md.smb.requested_outputs', 'format', 'StringArray') 81 82 # }}} -
issm/trunk-jpl/src/m/classes/SMBgradientsela.py
r22267 r24213 2 2 from checkfield import checkfield 3 3 from WriteData import WriteData 4 from project3d import project3d 4 5 5 6 6 class SMBgradientsela(object): 7 8 7 """ 8 SMBgradientsela Class definition 9 9 10 11 SMBgradientsela=SMBgradientsela()12 10 Usage: 11 SMBgradientsela = SMBgradientsela() 12 """ 13 13 14 def __init__(self): # {{{ 15 self.ela = float('NaN') 16 self.b_pos = float('NaN') 17 self.b_neg = float('NaN') 18 self.b_max = float('NaN') 19 self.b_min = float('NaN') 20 self.requested_outputs = [] 21 self.setdefaultparameters() 22 #}}} 23 def __repr__(self): # {{{ 24 string = " surface forcings parameters:" 25 string+= '\n SMB gradients ela parameters:' 14 def __init__(self): # {{{ 15 self.ela = float('NaN') 16 self.b_pos = float('NaN') 17 self.b_neg = float('NaN') 18 self.b_max = float('NaN') 19 self.b_min = float('NaN') 20 self.requested_outputs = [] 21 self.setdefaultparameters() 22 #}}} 26 23 27 string="%s\n%s"%(string,fielddisplay(self,'ela',' equilibrium line altitude from which deviation is used to calculate smb using the smb gradients ela method [m a.s.l.]')) 28 string="%s\n%s"%(string,fielddisplay(self,'b_pos',' vertical smb gradient (dB/dz) above ela')) 29 string="%s\n%s"%(string,fielddisplay(self,'b_neg',' vertical smb gradient (dB/dz) below ela')) 30 string="%s\n%s"%(string,fielddisplay(self,'b_max',' upper cap on smb rate, default: 9999 (no cap) [m ice eq./yr]')) 31 string="%s\n%s"%(string,fielddisplay(self,'b_min',' lower cap on smb rate, default: -9999 (no cap) [m ice eq./yr]')) 32 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 24 def __repr__(self): # {{{ 25 string = " surface forcings parameters:" 26 string += '\n SMB gradients ela parameters:' 33 27 34 return string 35 #}}} 36 def extrude(self,md): # {{{ 28 string = "%s\n%s" % (string, fielddisplay(self, 'ela', ' equilibrium line altitude from which deviation is used to calculate smb using the smb gradients ela method [m a.s.l.]')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'b_pos', ' vertical smb gradient (dB / dz) above ela')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'b_neg', ' vertical smb gradient (dB / dz) below ela')) 31 string = "%s\n%s" % (string, fielddisplay(self, 'b_max', ' upper cap on smb rate, default: 9999 (no cap) [m ice eq. / yr]')) 32 string = "%s\n%s" % (string, fielddisplay(self, 'b_min', ' lower cap on smb rate, default: - 9999 (no cap) [m ice eq. / yr]')) 33 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 37 34 38 #Nothing for now 39 return self 40 #}}} 41 def defaultoutputs(self,md): # {{{ 42 return [] 43 #}}} 44 def initialize(self,md): # {{{ 35 return string 36 #}}} 45 37 46 #Nothing for now 38 def extrude(self, md): # {{{ 39 #Nothing for now 40 return self 41 #}}} 47 42 48 return self 49 #}}} 50 def setdefaultparameters(self): # {{{ 51 self.b_max=9999. 52 self.b_min=-9999. 53 return self 54 #}}} 55 def checkconsistency(self,md,solution,analyses): # {{{ 43 def defaultoutputs(self, md): # {{{ 44 return [] 45 #}}} 56 46 57 if 'MasstransportAnalysis' in analyses: 58 md = checkfield(md,'fieldname','smb.ela','timeseries',1,'NaN',1,'Inf',1) 59 md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1,'Inf',1) 60 md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1,'Inf',1) 61 md = checkfield(md,'fieldname','smb.b_max','timeseries',1,'NaN',1,'Inf',1) 62 md = checkfield(md,'fieldname','smb.b_min','timeseries',1,'NaN',1,'Inf',1) 47 def initialize(self, md): # {{{ 48 #Nothing for now 49 return self 50 #}}} 63 51 64 md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1) 65 return md 66 # }}} 67 def marshall(self,prefix,md,fid): # {{{ 52 def setdefaultparameters(self): # {{{ 53 self.b_max = 9999. 54 self.b_min = -9999. 55 return self 56 #}}} 68 57 69 yts=md.constants.yts 58 def checkconsistency(self, md, solution, analyses): # {{{ 59 if 'MasstransportAnalysis' in analyses: 60 md = checkfield(md, 'fieldname', 'smb.ela', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 61 md = checkfield(md, 'fieldname', 'smb.b_pos', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 62 md = checkfield(md, 'fieldname', 'smb.b_neg', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 63 md = checkfield(md, 'fieldname', 'smb.b_max', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 64 md = checkfield(md, 'fieldname', 'smb.b_min', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 70 65 71 WriteData(fid,prefix,'name','md.smb.model','data',9,'format','Integer'); 72 WriteData(fid,prefix,'object',self,'class','smb','fieldname','ela','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 73 WriteData(fid,prefix,'object',self,'class','smb','fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 74 WriteData(fid,prefix,'object',self,'class','smb','fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 75 WriteData(fid,prefix,'object',self,'class','smb','fieldname','b_max','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 76 WriteData(fid,prefix,'object',self,'class','smb','fieldname','b_min','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 77 78 #process requested outputs 79 outputs = self.requested_outputs 80 indices = [i for i, x in enumerate(outputs) if x == 'default'] 81 if len(indices) > 0: 82 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 83 outputs =outputscopy 84 WriteData(fid,prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray') 66 md = checkfield(md, 'fieldname', 'smb.requested_outputs', 'stringrow', 1) 67 return md 68 # }}} 85 69 86 # }}} 70 def marshall(self, prefix, md, fid): # {{{ 71 yts = md.constants.yts 72 73 WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 9, 'format', 'Integer') 74 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'ela', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 75 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'b_pos', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 76 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'b_neg', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 77 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'b_max', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 78 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'b_min', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 79 80 #process requested outputs 81 outputs = self.requested_outputs 82 indices = [i for i, x in enumerate(outputs) if x == 'default'] 83 if len(indices) > 0: 84 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 85 outputs = outputscopy 86 WriteData(fid, prefix, 'data', outputs, 'name', 'md.smb.requested_outputs', 'format', 'StringArray') 87 88 # }}} -
issm/trunk-jpl/src/m/classes/SMBmeltcomponents.py
r23833 r24213 3 3 from project3d import * 4 4 from WriteData import * 5 5 6 6 7 class SMBmeltcomponents(object): … … 9 10 10 11 Usage: 11 SMBmeltcomponents =SMBmeltcomponents();12 SMBmeltcomponents = SMBmeltcomponents() 12 13 """ 13 14 14 def __init__(self): # {{{15 def __init__(self): # {{{ 15 16 self.accumulation = float('NaN') 16 17 self.runoff = float('NaN') 17 18 self.evaporation = float('NaN') 18 19 self.isclimatology = 0 19 self.requested_outputs = [] 20 #}}} 21 def __repr__(self): # {{{ 22 string=" surface forcings parameters with melt (SMB=accumulation-evaporation-melt+refreeze) :" 23 string="%s\n%s"%(string,fielddisplay(self,'accumulation','accumulated snow [m/yr ice eq]')) 24 string="%s\n%s"%(string,fielddisplay(self,'evaporation','mount of ice lost to evaporative processes [m/yr ice eq]')) 25 string="%s\n%s"%(string,fielddisplay(self,'melt','amount of ice melt in the ice column [m/yr ice eq]')) 26 string="%s\n%s"%(string,fielddisplay(self,'refreeze','amount of ice melt refrozen in the ice column [m/yr ice eq]')) 27 string="%s\n%s"%(string,fielddisplay(self,'isclimatology','repeat all forcings when past last forcing time (default false)')) 28 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 20 self.requested_outputs = [] 21 #}}} 22 23 def __repr__(self): # {{{ 24 string = " surface forcings parameters with melt (SMB = accumulation - evaporation - melt + refreeze) :" 25 string = "%s\n%s" % (string, fielddisplay(self, 'accumulation', 'accumulated snow [m / yr ice eq]')) 26 string = "%s\n%s" % (string, fielddisplay(self, 'evaporation', 'mount of ice lost to evaporative processes [m / yr ice eq]')) 27 string = "%s\n%s" % (string, fielddisplay(self, 'melt', 'amount of ice melt in the ice column [m / yr ice eq]')) 28 string = "%s\n%s" % (string, fielddisplay(self, 'refreeze', 'amount of ice melt refrozen in the ice column [m / yr ice eq]')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'isclimatology', 'repeat all forcings when past last forcing time (default false)')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 29 31 return string 30 #}}} 31 def extrude(self,md): # {{{ 32 #}}} 32 33 33 self.accumulation=project3d(md,'vector',self.accumulation,'type','node'); 34 self.evaporation=project3d(md,'vector',self.evaporation,'type','node'); 35 self.melt=project3d(md,'vector',self.melt,'type','node'); 36 self.refreeze=project3d(md,'vector',self.refreeze,'type','node'); 34 def extrude(self, md): # {{{ 35 self.accumulation = project3d(md, 'vector', self.accumulation, 'type', 'node') 36 self.evaporation = project3d(md, 'vector', self.evaporation, 'type', 'node') 37 self.melt = project3d(md, 'vector', self.melt, 'type', 'node') 38 self.refreeze = project3d(md, 'vector', self.refreeze, 'type', 'node') 37 39 return self 38 40 #}}} 39 def defaultoutputs(self,md): # {{{ 41 42 def defaultoutputs(self, md): # {{{ 40 43 return [] 41 44 #}}} 42 def initialize(self,md): # {{{43 45 46 def initialize(self, md): # {{{ 44 47 if np.all(np.isnan(self.accumulation)): 45 self.accumulation =np.zeros((md.mesh.numberofvertices))48 self.accumulation = np.zeros((md.mesh.numberofvertices)) 46 49 print(" no SMB.accumulation specified: values set as zero") 47 50 48 51 if np.all(np.isnan(self.evaporation)): 49 self.evaporation =np.zeros((md.mesh.numberofvertices))52 self.evaporation = np.zeros((md.mesh.numberofvertices)) 50 53 print(" no SMB.evaporation specified: values set as zero") 51 54 52 55 if np.all(np.isnan(self.melt)): 53 self.melt =np.zeros((md.mesh.numberofvertices))56 self.melt = np.zeros((md.mesh.numberofvertices)) 54 57 print(" no SMB.melt specified: values set as zero") 55 58 56 59 if np.all(np.isnan(self.refreeze)): 57 self.refreeze =np.zeros((md.mesh.numberofvertices))60 self.refreeze = np.zeros((md.mesh.numberofvertices)) 58 61 print(" no SMB.refreeze specified: values set as zero") 59 62 60 63 return self 61 64 #}}} 62 def checkconsistency(self,md,solution,analyses): # {{{ 65 66 def checkconsistency(self, md, solution, analyses): # {{{ 67 if 'MasstransportAnalysis' in analyses: 68 md = checkfield(md, 'fieldname', 'smb.accumulation', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 69 70 if 'BalancethicknessAnalysis' in analyses: 71 md = checkfield(md, 'fieldname', 'smb.accumulation', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 63 72 64 73 if 'MasstransportAnalysis' in analyses: 65 md = checkfield(md, 'fieldname','smb.accumulation','timeseries',1,'NaN',1,'Inf',1)74 md = checkfield(md, 'fieldname', 'smb.melt', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 66 75 67 76 if 'BalancethicknessAnalysis' in analyses: 68 md = checkfield(md, 'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)77 md = checkfield(md, 'fieldname', 'smb.melt', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 69 78 70 79 if 'MasstransportAnalysis' in analyses: 71 md = checkfield(md, 'fieldname','smb.melt','timeseries',1,'NaN',1,'Inf',1)80 md = checkfield(md, 'fieldname', 'smb.refreeze', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 72 81 73 82 if 'BalancethicknessAnalysis' in analyses: 74 md = checkfield(md, 'fieldname','smb.melt','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)83 md = checkfield(md, 'fieldname', 'smb.refreeze', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 75 84 76 85 if 'MasstransportAnalysis' in analyses: 77 md = checkfield(md, 'fieldname','smb.refreeze','timeseries',1,'NaN',1,'Inf',1)86 md = checkfield(md, 'fieldname', 'smb.evaporation', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 78 87 79 88 if 'BalancethicknessAnalysis' in analyses: 80 md = checkfield(md, 'fieldname','smb.refreeze','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)89 md = checkfield(md, 'fieldname', 'smb.evaporation', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 81 90 82 if 'MasstransportAnalysis' in analyses: 83 md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1,'Inf',1) 84 85 if 'BalancethicknessAnalysis' in analyses: 86 md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 87 88 md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1) 89 md = checkfield(md,'fieldname','smb.isclimatology','values',[0,1]) 91 md = checkfield(md, 'fieldname', 'masstransport.requested_outputs', 'stringrow', 1) 92 md = checkfield(md, 'fieldname', 'smb.isclimatology', 'values', [0, 1]) 90 93 return md 91 94 # }}} 92 def marshall(self,prefix,md,fid): # {{{93 95 94 yts=md.constants.yts 96 def marshall(self, prefix, md, fid): # {{{ 97 yts = md.constants.yts 95 98 96 WriteData(fid, prefix,'name','md.smb.model','data',3,'format','Integer');97 WriteData(fid, prefix,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)98 WriteData(fid, prefix,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)99 WriteData(fid, prefix,'object',self,'class','smb','fieldname','melt','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)100 WriteData(fid, prefix,'object',self,'class','smb','fieldname','refreeze','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)99 WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 3, 'format', 'Integer') 100 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'accumulation', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 101 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'evaporation', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 102 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'melt', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 103 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'refreeze', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 101 104 102 105 #process requested outputs 103 106 outputs = self.requested_outputs 104 107 indices = [i for i, x in enumerate(outputs) if x == 'default'] 105 108 if len(indices) > 0: 106 outputscopy =outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]107 outputs =outputscopy108 WriteData(fid, prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray')109 WriteData(fid, prefix,'object',self,'class','smb','fieldname','isclimatology','format','Boolean')110 if (self.isclimatology >0):111 md = checkfield(md, 'fieldname', 'smb.accumulation', 'size',[md.mesh.numberofvertices+1],'message','accumulation must have md.mesh.numberofvertices+1 rows in order to force a climatology')112 md = checkfield(md, 'fieldname', 'smb.melt', 'size',[md.mesh.numberofvertices+1],'message','melt must have md.mesh.numberofvertices+1 rows in order to force a climatology')113 md = checkfield(md, 'fieldname', 'smb.refreeze', 'size',[md.mesh.numberofvertices+1],'message','refreeze must have md.mesh.numberofvertices+1 rows in order to force a climatology')114 md = checkfield(md, 'fieldname', 'smb.evaporation', 'size',[md.mesh.numberofvertices+1],'message','evaporation must have md.mesh.numberofvertices+1 rows in order to force a climatology')109 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 110 outputs = outputscopy 111 WriteData(fid, prefix, 'data', outputs, 'name', 'md.smb.requested_outputs', 'format', 'StringArray') 112 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isclimatology', 'format', 'Boolean') 113 if (self.isclimatology > 0): 114 md = checkfield(md, 'fieldname', 'smb.accumulation', 'size', [md.mesh.numberofvertices + 1], 'message', 'accumulation must have md.mesh.numberofvertices + 1 rows in order to force a climatology') 115 md = checkfield(md, 'fieldname', 'smb.melt', 'size', [md.mesh.numberofvertices + 1], 'message', 'melt must have md.mesh.numberofvertices + 1 rows in order to force a climatology') 116 md = checkfield(md, 'fieldname', 'smb.refreeze', 'size', [md.mesh.numberofvertices + 1], 'message', 'refreeze must have md.mesh.numberofvertices + 1 rows in order to force a climatology') 117 md = checkfield(md, 'fieldname', 'smb.evaporation', 'size', [md.mesh.numberofvertices + 1], 'message', 'evaporation must have md.mesh.numberofvertices + 1 rows in order to force a climatology') 115 118 116 119 # }}} -
issm/trunk-jpl/src/m/classes/SMBpdd.py
r23716 r24213 5 5 from project3d import project3d 6 6 7 7 8 class SMBpdd(object): 8 """ 9 SMBpdd Class definition 10 11 Usage: 12 SMBpdd=SMBpdd(); 13 """ 14 15 def __init__(self): # {{{ 16 self.precipitation = float('NaN') 17 self.monthlytemperatures = float('NaN') 18 self.desfac = 0. 19 self.s0p = float('NaN') 20 self.s0t = float('NaN') 21 self.rlaps = 0. 22 self.rlapslgm = 0. 23 self.Pfac = float('NaN') 24 self.Tdiff = float('NaN') 25 self.sealev = float('NaN') 26 self.isdelta18o = 0 27 self.ismungsm = 0 28 self.issetpddfac = 0 29 self.delta18o = float('NaN') 30 self.delta18o_surface = float('NaN') 31 self.temperatures_presentday = float('NaN') 32 self.temperatures_lgm = float('NaN') 33 self.precipitations_presentday = float('NaN') 34 self.precipitations_lgm = float('NaN') 35 36 #set defaults 37 self.setdefaultparameters() 38 self.requested_outputs = [] 39 #}}} 40 def __repr__(self): # {{{ 41 string=" surface forcings parameters:" 42 43 string="%s\n%s"%(string,fielddisplay(self,'isdelta18o','is temperature and precipitation delta18o parametrisation activated (0 or 1, default is 0)')) 44 string="%s\n%s"%(string,fielddisplay(self,'ismungsm','is temperature and precipitation mungsm parametrisation activated (0 or 1, default is 0)')) 45 string="%s\n%s"%(string,fielddisplay(self,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]')) 46 string="%s\n%s"%(string,fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]')) 47 string="%s\n%s"%(string,fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]')) 48 string="%s\n%s"%(string,fielddisplay(self,'rlaps','present day lapse rate [degree/km]')) 49 string="%s\n%s"%(string,fielddisplay(self,'rlapslgm','LGM lapse rate [degree/km]')) 50 if not (self.isdelta18o and self.ismungsm): 51 string="%s\n%s"%(string,fielddisplay(self,'monthlytemperatures',['monthly surface temperatures [K], required if pdd is activated and delta18o not activated'])) 52 string="%s\n%s"%(string,fielddisplay(self,'precipitation',['monthly surface precipitation [m/yr water eq], required if pdd is activated and delta18o or mungsm not activated'])) 53 if self.isdelta18o: 54 string="%s\n%s"%(string,fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated')) 55 string="%s\n%s"%(string,fielddisplay(self,'delta18o_surface','surface elevation of the delta18o site, required if pdd is activated and delta18o activated')) 56 string="%s\n%s"%(string,fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated')) 57 string="%s\n%s"%(string,fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated')) 58 string="%s\n%s"%(string,fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated')) 59 string="%s\n%s"%(string,fielddisplay(self,'precipitations_lgm','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated')) 60 string="%s\n%s"%(string,fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated')) 61 string="%s\n%s"%(string,fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated')) 62 if self.ismungsm: 63 string="%s\n%s"%(string,fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated')) 64 string="%s\n%s"%(string,fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated')) 65 string="%s\n%s"%(string,fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated')) 66 string="%s\n%s"%(string,fielddisplay(self,'precipitations_lgm','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated')) 67 string="%s\n%s"%(string,fielddisplay(self,'Pfac','time interpolation parameter for precipitation, 1D(year), required if mungsm is activated')) 68 string="%s\n%s"%(string,fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated')) 69 string="%s\n%s"%(string,fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated')) 70 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 71 72 return string 73 # }}} 74 def extrude(self,md): # {{{ 75 76 if not (self.isdelta18o and self.ismungsm): 77 self.precipitation=project3d(md,'vector',self.precipitation,'type','node') 78 self.monthlytemperatures=project3d(md,'vector',self.monthlytemperatures,'type','node') 79 if self.isdelta18o: self.temperatures_lgm=project3d(md,'vector',self.temperatures_lgm,'type','node') 80 if self.isdelta18o: self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node') 81 if self.isdelta18o: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node') 82 if self.isdelta18o: self.precipitations_lgm=project3d(md,'vector',self.precipitations_lgm,'type','node') 83 if self.ismungsm: self.temperatures_lgm=project3d(md,'vector',self.temperatures_lgm,'type','node') 84 if self.ismungsm: self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node') 85 if self.ismungsm: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node') 86 if self.ismungsm: self.precipitations_lgm=project3d(md,'vector',self.precipitations_lgm,'type','node') 87 self.s0p=project3d(md,'vector',self.s0p,'type','node') 88 self.s0t=project3d(md,'vector',self.s0t,'type','node') 89 90 return self 91 #}}} 92 def defaultoutputs(self,md): # {{{ 93 return [] 94 #}}} 95 def initialize(self,md): # {{{ 96 97 if np.all(np.isnan(self.s0p)): 98 self.s0p=np.zeros((md.mesh.numberofvertices)) 99 print(" no SMBpdd.s0p specified: values set as zero") 100 101 if np.all(np.isnan(self.s0t)): 102 self.s0t=np.zeros((md.mesh.numberofvertices)) 103 print(" no SMBpdd.s0t specified: values set as zero") 104 105 return self 106 #}}} 107 def setdefaultparameters(self): # {{{ 108 109 #pdd method not used in default mode 110 self.isdelta18o = 0 111 self.ismungsm = 0 112 self.desfac = 0.5 113 self.rlaps = 6.5 114 self.rlapslgm = 6.5 115 116 return self 117 #}}} 118 def checkconsistency(self,md,solution,analyses): # {{{ 119 120 if 'MasstransportAnalysis' in analyses: 121 md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1]) 122 md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 123 md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 124 md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1]) 125 md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1]) 126 127 if (self.isdelta18o==0 and self.ismungsm==0): 128 md = checkfield(md,'fieldname','smb.monthlytemperatures','NaN',1,'Inf',1,'timeseries',1) 129 md = checkfield(md,'fieldname','smb.precipitation','NaN',1,'Inf',1,'timeseries',1) 130 elif self.isdelta18o: 131 md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'Inf',1,'size',[2,np.nan],'singletimeseries',1) 132 md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'Inf',1,'size',[2,np.nan],'singletimeseries',1) 133 md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1) 134 md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1) 135 md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1) 136 md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1) 137 md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'Inf',1,'size',[2,np.nan],'singletimeseries',1) 138 md = checkfield(md,'fieldname','smb.sealev','NaN',1,'Inf',1,'size',[2,np.nan],'singletimeseries',1) 139 elif self.ismungsm: 140 md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1) 141 md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1) 142 md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1) 143 md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1) 144 md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'Inf',1,'size',[2,np.nan],'singletimeseries',1) 145 md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'Inf',1,'size',[2,np.nan],'singletimeseries',1) 146 md = checkfield(md,'fieldname','smb.sealev','NaN',1,'Inf',1,'size',[2,np.nan],'singletimeseries',1) 147 148 md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1) 149 return md 150 #}}} 151 def marshall(self,prefix,md,fid): # {{{ 152 153 yts=md.constants.yts 154 155 WriteData(fid,prefix,'name','md.smb.model','data',4,'format','Integer') 156 157 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isdelta18o','format','Boolean') 158 WriteData(fid,prefix,'object',self,'class','smb','fieldname','ismungsm','format','Boolean') 159 WriteData(fid,prefix,'object',self,'class','smb','fieldname','issetpddfac','format','Boolean'); 160 WriteData(fid,prefix,'object',self,'class','smb','fieldname','desfac','format','Double') 161 WriteData(fid,prefix,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1); 162 WriteData(fid,prefix,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1); 163 WriteData(fid,prefix,'object',self,'class','smb','fieldname','rlaps','format','Double') 164 WriteData(fid,prefix,'object',self,'class','smb','fieldname','rlapslgm','format','Double') 165 166 if (self.isdelta18o==0 and self.ismungsm==0): 167 WriteData(fid,prefix,'object',self,'class','smb','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 168 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 169 elif self.isdelta18o: 170 WriteData(fid,prefix,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 171 WriteData(fid,prefix,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 172 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 173 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 174 WriteData(fid,prefix,'object',self,'class','smb','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts) 175 WriteData(fid,prefix,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts) 176 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts) 177 WriteData(fid,prefix,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts) 178 elif self.ismungsm: 179 WriteData(fid,prefix,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 180 WriteData(fid,prefix,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 181 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 182 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 183 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts) 184 WriteData(fid,prefix,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts) 185 WriteData(fid,prefix,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts) 186 187 #process requested outputs 188 outputs = self.requested_outputs 189 indices = [i for i, x in enumerate(outputs) if x == 'default'] 190 if len(indices) > 0: 191 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 192 outputs =outputscopy 193 WriteData(fid,prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray') 194 195 # }}} 9 """ 10 SMBpdd Class definition 11 12 Usage: 13 SMBpdd = SMBpdd() 14 """ 15 16 def __init__(self): # {{{ 17 self.precipitation = float('NaN') 18 self.monthlytemperatures = float('NaN') 19 self.desfac = 0. 20 self.s0p = float('NaN') 21 self.s0t = float('NaN') 22 self.rlaps = 0. 23 self.rlapslgm = 0. 24 self.Pfac = float('NaN') 25 self.Tdiff = float('NaN') 26 self.sealev = float('NaN') 27 self.isdelta18o = 0 28 self.ismungsm = 0 29 self.issetpddfac = 0 30 self.delta18o = float('NaN') 31 self.delta18o_surface = float('NaN') 32 self.temperatures_presentday = float('NaN') 33 self.temperatures_lgm = float('NaN') 34 self.precipitations_presentday = float('NaN') 35 self.precipitations_lgm = float('NaN') 36 37 #set defaults 38 self.setdefaultparameters() 39 self.requested_outputs = [] 40 #}}} 41 42 def __repr__(self): # {{{ 43 string = " surface forcings parameters:" 44 45 string = "%s\n%s" % (string, fielddisplay(self, 'isdelta18o', 'is temperature and precipitation delta18o parametrisation activated (0 or 1, default is 0)')) 46 string = "%s\n%s" % (string, fielddisplay(self, 'ismungsm', 'is temperature and precipitation mungsm parametrisation activated (0 or 1, default is 0)')) 47 string = "%s\n%s" % (string, fielddisplay(self, 'desfac', 'desertification elevation factor (between 0 and 1, default is 0.5) [m]')) 48 string = "%s\n%s" % (string, fielddisplay(self, 's0p', 'should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]')) 49 string = "%s\n%s" % (string, fielddisplay(self, 's0t', 'should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]')) 50 string = "%s\n%s" % (string, fielddisplay(self, 'rlaps', 'present day lapse rate [degree / km]')) 51 string = "%s\n%s" % (string, fielddisplay(self, 'rlapslgm', 'LGM lapse rate [degree / km]')) 52 if not (self.isdelta18o and self.ismungsm): 53 string = "%s\n%s" % (string, fielddisplay(self, 'monthlytemperatures', ['monthly surface temperatures [K], required if pdd is activated and delta18o not activated'])) 54 string = "%s\n%s" % (string, fielddisplay(self, 'precipitation', ['monthly surface precipitation [m / yr water eq], required if pdd is activated and delta18o or mungsm not activated'])) 55 if self.isdelta18o: 56 string = "%s\n%s" % (string, fielddisplay(self, 'delta18o', 'delta18o [per mil], required if pdd is activated and delta18o activated')) 57 string = "%s\n%s" % (string, fielddisplay(self, 'delta18o_surface', 'surface elevation of the delta18o site, required if pdd is activated and delta18o activated')) 58 string = "%s\n%s" % (string, fielddisplay(self, 'temperatures_presentday', 'monthly present day surface temperatures [K], required if delta18o / mungsm is activated')) 59 string = "%s\n%s" % (string, fielddisplay(self, 'temperatures_lgm', 'monthly LGM surface temperatures [K], required if delta18o or mungsm is activated')) 60 string = "%s\n%s" % (string, fielddisplay(self, 'precipitations_presentday', 'monthly surface precipitation [m / yr water eq], required if delta18o or mungsm is activated')) 61 string = "%s\n%s" % (string, fielddisplay(self, 'precipitations_lgm', 'monthly surface precipitation [m / yr water eq], required if delta18o or mungsm is activated')) 62 string = "%s\n%s" % (string, fielddisplay(self, 'Tdiff', 'time interpolation parameter for temperature, 1D(year), required if mungsm is activated')) 63 string = "%s\n%s" % (string, fielddisplay(self, 'sealev', 'sea level [m], 1D(year), required if mungsm is activated')) 64 if self.ismungsm: 65 string = "%s\n%s" % (string, fielddisplay(self, 'temperatures_presentday', 'monthly present day surface temperatures [K], required if delta18o / mungsm is activated')) 66 string = "%s\n%s" % (string, fielddisplay(self, 'temperatures_lgm', 'monthly LGM surface temperatures [K], required if delta18o or mungsm is activated')) 67 string = "%s\n%s" % (string, fielddisplay(self, 'precipitations_presentday', 'monthly surface precipitation [m / yr water eq], required if delta18o or mungsm is activated')) 68 string = "%s\n%s" % (string, fielddisplay(self, 'precipitations_lgm', 'monthly surface precipitation [m / yr water eq], required if delta18o or mungsm is activated')) 69 string = "%s\n%s" % (string, fielddisplay(self, 'Pfac', 'time interpolation parameter for precipitation, 1D(year), required if mungsm is activated')) 70 string = "%s\n%s" % (string, fielddisplay(self, 'Tdiff', 'time interpolation parameter for temperature, 1D(year), required if mungsm is activated')) 71 string = "%s\n%s" % (string, fielddisplay(self, 'sealev', 'sea level [m], 1D(year), required if mungsm is activated')) 72 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 73 74 return string 75 # }}} 76 77 def extrude(self, md): # {{{ 78 if not (self.isdelta18o and self.ismungsm): 79 self.precipitation = project3d(md, 'vector', self.precipitation, 'type', 'node') 80 self.monthlytemperatures = project3d(md, 'vector', self.monthlytemperatures, 'type', 'node') 81 if self.isdelta18o: 82 self.temperatures_lgm = project3d(md, 'vector', self.temperatures_lgm, 'type', 'node') 83 if self.isdelta18o: 84 self.temperatures_presentday = project3d(md, 'vector', self.temperatures_presentday, 'type', 'node') 85 if self.isdelta18o: 86 self.precipitations_presentday = project3d(md, 'vector', self.precipitations_presentday, 'type', 'node') 87 if self.isdelta18o: 88 self.precipitations_lgm = project3d(md, 'vector', self.precipitations_lgm, 'type', 'node') 89 if self.ismungsm: 90 self.temperatures_lgm = project3d(md, 'vector', self.temperatures_lgm, 'type', 'node') 91 if self.ismungsm: 92 self.temperatures_presentday = project3d(md, 'vector', self.temperatures_presentday, 'type', 'node') 93 if self.ismungsm: 94 self.precipitations_presentday = project3d(md, 'vector', self.precipitations_presentday, 'type', 'node') 95 if self.ismungsm: 96 self.precipitations_lgm = project3d(md, 'vector', self.precipitations_lgm, 'type', 'node') 97 self.s0p = project3d(md, 'vector', self.s0p, 'type', 'node') 98 self.s0t = project3d(md, 'vector', self.s0t, 'type', 'node') 99 100 return self 101 #}}} 102 103 def defaultoutputs(self, md): # {{{ 104 return [] 105 #}}} 106 107 def initialize(self, md): # {{{ 108 if np.all(np.isnan(self.s0p)): 109 self.s0p = np.zeros((md.mesh.numberofvertices)) 110 print(" no SMBpdd.s0p specified: values set as zero") 111 112 if np.all(np.isnan(self.s0t)): 113 self.s0t = np.zeros((md.mesh.numberofvertices)) 114 print(" no SMBpdd.s0t specified: values set as zero") 115 116 return self 117 #}}} 118 119 def setdefaultparameters(self): # {{{ 120 #pdd method not used in default mode 121 self.isdelta18o = 0 122 self.ismungsm = 0 123 self.desfac = 0.5 124 self.rlaps = 6.5 125 self.rlapslgm = 6.5 126 127 return self 128 #}}} 129 130 def checkconsistency(self, md, solution, analyses): # {{{ 131 if 'MasstransportAnalysis' in analyses: 132 md = checkfield(md, 'fieldname', 'smb.desfac', '<=', 1, 'numel', [1]) 133 md = checkfield(md, 'fieldname', 'smb.s0p', '>=', 0, 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 134 md = checkfield(md, 'fieldname', 'smb.s0t', '>=', 0, 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 135 md = checkfield(md, 'fieldname', 'smb.rlaps', '>=', 0, 'numel', [1]) 136 md = checkfield(md, 'fieldname', 'smb.rlapslgm', '>=', 0, 'numel', [1]) 137 138 if (self.isdelta18o == 0 and self.ismungsm == 0): 139 md = checkfield(md, 'fieldname', 'smb.monthlytemperatures', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 140 md = checkfield(md, 'fieldname', 'smb.precipitation', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 141 elif self.isdelta18o: 142 md = checkfield(md, 'fieldname', 'smb.delta18o', 'NaN', 1, 'Inf', 1, 'size', [2, np.nan], 'singletimeseries', 1) 143 md = checkfield(md, 'fieldname', 'smb.delta18o_surface', 'NaN', 1, 'Inf', 1, 'size', [2, np.nan], 'singletimeseries', 1) 144 md = checkfield(md, 'fieldname', 'smb.temperatures_presentday', 'size', [md.mesh.numberofvertices + 1, 12], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 145 md = checkfield(md, 'fieldname', 'smb.temperatures_lgm', 'size', [md.mesh.numberofvertices + 1, 12], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 146 md = checkfield(md, 'fieldname', 'smb.precipitations_presentday', 'size', [md.mesh.numberofvertices + 1, 12], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 147 md = checkfield(md, 'fieldname', 'smb.precipitations_lgm', 'size', [md.mesh.numberofvertices + 1, 12], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 148 md = checkfield(md, 'fieldname', 'smb.Tdiff', 'NaN', 1, 'Inf', 1, 'size', [2, np.nan], 'singletimeseries', 1) 149 md = checkfield(md, 'fieldname', 'smb.sealev', 'NaN', 1, 'Inf', 1, 'size', [2, np.nan], 'singletimeseries', 1) 150 elif self.ismungsm: 151 md = checkfield(md, 'fieldname', 'smb.temperatures_presentday', 'size', [md.mesh.numberofvertices + 1, 12], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 152 md = checkfield(md, 'fieldname', 'smb.temperatures_lgm', 'size', [md.mesh.numberofvertices + 1, 12], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 153 md = checkfield(md, 'fieldname', 'smb.precipitations_presentday', 'size', [md.mesh.numberofvertices + 1, 12], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 154 md = checkfield(md, 'fieldname', 'smb.precipitations_lgm', 'size', [md.mesh.numberofvertices + 1, 12], 'NaN', 1, 'Inf', 1, 'timeseries', 1) 155 md = checkfield(md, 'fieldname', 'smb.Pfac', 'NaN', 1, 'Inf', 1, 'size', [2, np.nan], 'singletimeseries', 1) 156 md = checkfield(md, 'fieldname', 'smb.Tdiff', 'NaN', 1, 'Inf', 1, 'size', [2, np.nan], 'singletimeseries', 1) 157 md = checkfield(md, 'fieldname', 'smb.sealev', 'NaN', 1, 'Inf', 1, 'size', [2, np.nan], 'singletimeseries', 1) 158 159 md = checkfield(md, 'fieldname', 'masstransport.requested_outputs', 'stringrow', 1) 160 return md 161 #}}} 162 163 def marshall(self, prefix, md, fid): # {{{ 164 yts = md.constants.yts 165 166 WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 4, 'format', 'Integer') 167 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isdelta18o', 'format', 'Boolean') 168 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'ismungsm', 'format', 'Boolean') 169 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'issetpddfac', 'format', 'Boolean') 170 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'desfac', 'format', 'Double') 171 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 's0p', 'format', 'DoubleMat', 'mattype', 1) 172 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 's0t', 'format', 'DoubleMat', 'mattype', 1) 173 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'rlaps', 'format', 'Double') 174 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'rlapslgm', 'format', 'Double') 175 176 if (self.isdelta18o == 0 and self.ismungsm == 0): 177 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'monthlytemperatures', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 178 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'precipitation', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 179 elif self.isdelta18o: 180 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'temperatures_presentday', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 181 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'temperatures_lgm', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 182 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'precipitations_presentday', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 183 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'precipitations_lgm', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 184 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'delta18o_surface', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts) 185 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'delta18o', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts) 186 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Tdiff', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts) 187 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'sealev', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts) 188 elif self.ismungsm: 189 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'temperatures_presentday', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 190 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'temperatures_lgm', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 191 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'precipitations_presentday', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 192 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'precipitations_lgm', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 193 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Pfac', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts) 194 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'Tdiff', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts) 195 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'sealev', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', 2, 'yts', yts) 196 197 #process requested outputs 198 outputs = self.requested_outputs 199 indices = [i for i, x in enumerate(outputs) if x == 'default'] 200 if len(indices) > 0: 201 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 202 outputs = outputscopy 203 WriteData(fid, prefix, 'data', outputs, 'name', 'md.smb.requested_outputs', 'format', 'StringArray') 204 205 # }}} -
issm/trunk-jpl/src/m/classes/SMBpddSicopolis.py
r23716 r24213 7 7 from helpers import * 8 8 9 9 10 class SMBpddSicopolis(object): 10 11 11 """ 12 SMBpddSicopolis Class definition 12 13 13 14 SMBpddSicopolis=SMBpddSicopolis()14 Usage: 15 SMBpddSicopolis = SMBpddSicopolis() 15 16 """ 16 17 17 def __init__(self): # {{{ 18 self.precipitation = float('NaN') 19 self.monthlytemperatures = float('NaN') 20 self.temperature_anomaly = float('NaN') 21 self.precipitation_anomaly = float('NaN') 22 self.smb_corr = float('NaN') 23 self.desfac = 0 24 self.s0p = float('NaN') 25 self.s0t = float('NaN') 26 self.rlaps = 0 27 self.isfirnwarming = 0 28 self.requested_outputs = [] 29 30 self.setdefaultparameters() 31 # }}} 32 33 @staticmethod 34 def SMBpddSicopolis(*args): # {{{ 35 nargin = len(args) 18 def __init__(self): # {{{ 19 self.precipitation = float('NaN') 20 self.monthlytemperatures = float('NaN') 21 self.temperature_anomaly = float('NaN') 22 self.precipitation_anomaly = float('NaN') 23 self.smb_corr = float('NaN') 24 self.desfac = 0 25 self.s0p = float('NaN') 26 self.s0t = float('NaN') 27 self.rlaps = 0 28 self.isfirnwarming = 0 29 self.requested_outputs = [] 36 30 37 if nargin == 0: 38 return SMBpddSicopolis() 39 else: 40 raise RuntimeError('SMBpddSicopolis: constructor not supported') 41 # }}} 31 self.setdefaultparameters() 32 # }}} 42 33 43 def extrude(self,md): # {{{ 44 self.precipitation = project3d(md,'vector',self.precipitation,'type','node') 45 self.monthlytemperatures = project3d(md,'vector',self.monthlytemperatures,'type','node') 46 self.temperature_anomaly = project3d(md,'vector',self.temperature_anomaly,'type','node') 47 self.precipitation_anomaly = project3d(md,'vector',self.precipitation_anomaly,'type','node') 48 self.smb_corr = project3d(md,'vector',self.smb_corr,'type','node') 49 self.s0p = project3d(md,'vector',self.s0p,'type','node') 50 self.s0t = project3d(md,'vector',self.s0t,'type','node') 51 # }}} 34 @staticmethod 35 def SMBpddSicopolis(*args): # {{{ 36 nargin = len(args) 52 37 53 def defaultoutputs(self,md): # {{{ 54 l = [''] 55 return l 56 # }}} 38 if nargin == 0: 39 return SMBpddSicopolis() 40 else: 41 raise RuntimeError('SMBpddSicopolis: constructor not supported') 42 # }}} 57 43 58 def initialize(self,md): # {{{ 59 60 if np.isnan(self.s0p): 61 self.s0p = np.zeros((md.mesh.numberofvertices,)) 62 print(' no SMBpddSicopolis.s0p specified: values set as zero') 63 64 if np.isnan(self.s0t): 65 self.s0t = np.zeros((md.mesh.numberofvertices,)) 66 print(' no SMBpddSicopolis.s0t specified: values set as zero') 67 68 if np.isnan(self.temperature_anomaly): 69 self.temperature_anomaly = np.zeros((md.mesh.numberofvertices,)) 70 print(' no SMBpddSicopolis.temperature_anomaly specified: values set as zero') 71 72 if np.isnan(self.precipitation_anomaly): 73 self.precipitation_anomaly = np.ones((md.mesh.numberofvertices,)) 74 print(' no SMBpddSicopolis.precipitation_anomaly specified: values set as ones') 75 76 if np.isnan(self.smb_corr): 77 self.smb_corr = np.zeros((md.mesh.numberofvertices,)) 78 print(' no SMBpddSicopolis.smb_corr specified: values set as zero') 79 # }}} 44 def extrude(self, md): # {{{ 45 self.precipitation = project3d(md, 'vector', self.precipitation, 'type', 'node') 46 self.monthlytemperatures = project3d(md, 'vector', self.monthlytemperatures, 'type', 'node') 47 self.temperature_anomaly = project3d(md, 'vector', self.temperature_anomaly, 'type', 'node') 48 self.precipitation_anomaly = project3d(md, 'vector', self.precipitation_anomaly, 'type', 'node') 49 self.smb_corr = project3d(md, 'vector', self.smb_corr, 'type', 'node') 50 self.s0p = project3d(md, 'vector', self.s0p, 'type', 'node') 51 self.s0t = project3d(md, 'vector', self.s0t, 'type', 'node') 52 # }}} 80 53 81 def setdefaultparameters(self): # {{{ 54 def defaultoutputs(self, md): # {{{ 55 listing = [''] 56 return listing 57 # }}} 82 58 83 self.isfirnwarming = 1 84 self.desfac = -np.log(2.0)/1000 85 self.rlaps = 7.4 86 87 # }}} 59 def initialize(self, md): # {{{ 88 60 89 def checkconsistency(self,md,solution,analyses): # {{{ 61 if np.isnan(self.s0p): 62 self.s0p = np.zeros((md.mesh.numberofvertices, )) 63 print(' no SMBpddSicopolis.s0p specified: values set as zero') 90 64 91 if (strcmp(solution,'TransientSolution') and md.transient.issmb == 0): 92 return 65 if np.isnan(self.s0t): 66 self.s0t = np.zeros((md.mesh.numberofvertices, )) 67 print(' no SMBpddSicopolis.s0t specified: values set as zero') 93 68 94 if 'MasstransportAnalysis' in analyses: 95 md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',1) 96 md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1]) 97 md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1]) 98 md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',1) 99 md = checkfield(md,'fieldname','smb.monthlytemperatures','timeseries',1,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices+1,12]) 100 md = checkfield(md,'fieldname','smb.precipitation','timeseries',1,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices+1,12]) 101 102 md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1) 103 104 return md 105 # }}} 69 if np.isnan(self.temperature_anomaly): 70 self.temperature_anomaly = np.zeros((md.mesh.numberofvertices, )) 71 print(' no SMBpddSicopolis.temperature_anomaly specified: values set as zero') 106 72 107 def __repr__(self): # {{{ 108 string = ' surface forcings parameters:' 109 string += '\n SICOPOLIS PDD scheme (Calov & Greve, 2005) :' 73 if np.isnan(self.precipitation_anomaly): 74 self.precipitation_anomaly = np.ones((md.mesh.numberofvertices, )) 75 print(' no SMBpddSicopolis.precipitation_anomaly specified: values set as ones') 110 76 111 string = "%s\n%s"%(string,fielddisplay(self,'monthlytemperatures','monthly surface temperatures [K]')) 112 string = "%s\n%s"%(string,fielddisplay(self,'precipitation','monthly surface precipitation [m/yr water eq]')) 113 string = "%s\n%s"%(string,fielddisplay(self,'temperature_anomaly','anomaly to monthly reference temperature (additive [K])')) 114 string = "%s\n%s"%(string,fielddisplay(self,'precipitation_anomaly','anomaly to monthly precipitation (multiplicative, e.g. q=q0*exp(0.070458*DeltaT) after Huybrechts (2002)) [no unit])')) 115 string = "%s\n%s"%(string,fielddisplay(self,'smb_corr','correction of smb after PDD call [m/a]')) 116 string = "%s\n%s"%(string,fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]')) 117 string = "%s\n%s"%(string,fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]')) 118 string = "%s\n%s"%(string,fielddisplay(self,'rlaps','present day lapse rate (default is 7.4 degree/km)')) 119 string = "%s\n%s"%(string,fielddisplay(self,'desfac','desertification elevation factor (default is -log(2.0)/1000)')) 120 string = "%s\n%s"%(string,fielddisplay(self,'isfirnwarming','is firnwarming (Reeh 1991) activated (0 or 1, default is 1)')) 121 string = "%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested (TemperaturePDD, SmbAccumulation, SmbMelt)')) 122 # }}} 77 if np.isnan(self.smb_corr): 78 self.smb_corr = np.zeros((md.mesh.numberofvertices, )) 79 print(' no SMBpddSicopolis.smb_corr specified: values set as zero') 80 # }}} 123 81 124 def marshall(self,prefix,md,fid): # {{{ 82 def setdefaultparameters(self): # {{{ 83 self.isfirnwarming = 1 84 self.desfac = - np.log(2.0) / 1000 85 self.rlaps = 7.4 125 86 126 yts=md.constants.yts 87 # }}} 127 88 128 WriteData(fid,prefix,'name','md.smb.model','data',10,'format','Integer') 89 def checkconsistency(self, md, solution, analyses): # {{{ 90 if (strcmp(solution, 'TransientSolution') and md.transient.issmb == 0): 91 return 129 92 130 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isfirnwarming','format','Boolean') 131 WriteData(fid,prefix,'object',self,'class','smb','fieldname','desfac','format','Double') 132 WriteData(fid,prefix,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1) 133 WriteData(fid,prefix,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1) 134 WriteData(fid,prefix,'object',self,'class','smb','fieldname','rlaps','format','Double') 93 if 'MasstransportAnalysis' in analyses: 94 md = checkfield(md, 'fieldname', 'smb.desfac', '<=', 1, 'numel', 1) 95 md = checkfield(md, 'fieldname', 'smb.s0p', '>=', 0, 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices, 1]) 96 md = checkfield(md, 'fieldname', 'smb.s0t', '>=', 0, 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices, 1]) 97 md = checkfield(md, 'fieldname', 'smb.rlaps', '>=', 0, 'numel', 1) 98 md = checkfield(md, 'fieldname', 'smb.monthlytemperatures', 'timeseries', 1, 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices + 1, 12]) 99 md = checkfield(md, 'fieldname', 'smb.precipitation', 'timeseries', 1, 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices + 1, 12]) 135 100 136 WriteData(fid,prefix,'object',self,'class','smb','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 137 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 138 WriteData(fid,prefix,'object',self,'class','smb','fieldname','temperature_anomaly','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 139 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitation_anomaly','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 140 WriteData(fid,prefix,'object',self,'class','smb','fieldname','smb_corr','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 101 md = checkfield(md, 'fieldname', 'smb.requested_outputs', 'stringrow', 1) 141 102 142 #process requested outputs 143 outputs = self.requested_outputs 144 pos = np.where('default' in outputs) 145 if not isempty(pos): 146 outputs[pos] = [] #remove 'default' from outputs 147 outputs = [outputs,defaultoutputs(self,md)] #add defaults 148 149 WriteData(fid,prefix,'data',outputs,'name','md.smb.requested_outputs','format','StringArray') 103 return md 104 # }}} 150 105 151 # }}} 152 106 def __repr__(self): # {{{ 107 string = ' surface forcings parameters:' 108 string += '\n SICOPOLIS PDD scheme (Calov & Greve, 2005) :' 153 109 110 string = "%s\n%s" % (string, fielddisplay(self, 'monthlytemperatures', 'monthly surface temperatures [K]')) 111 string = "%s\n%s" % (string, fielddisplay(self, 'precipitation', 'monthly surface precipitation [m / yr water eq]')) 112 string = "%s\n%s" % (string, fielddisplay(self, 'temperature_anomaly', 'anomaly to monthly reference temperature (additive [K])')) 113 string = "%s\n%s" % (string, fielddisplay(self, 'precipitation_anomaly', 'anomaly to monthly precipitation (multiplicative, e.g. q = q0 * exp(0.070458 * DeltaT) after Huybrechts (2002)) [no unit])')) 114 string = "%s\n%s" % (string, fielddisplay(self, 'smb_corr', 'correction of smb after PDD call [m / a]')) 115 string = "%s\n%s" % (string, fielddisplay(self, 's0p', 'should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]')) 116 string = "%s\n%s" % (string, fielddisplay(self, 's0t', 'should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]')) 117 string = "%s\n%s" % (string, fielddisplay(self, 'rlaps', 'present day lapse rate (default is 7.4 degree / km)')) 118 string = "%s\n%s" % (string, fielddisplay(self, 'desfac', 'desertification elevation factor (default is - log(2.0) / 1000)')) 119 string = "%s\n%s" % (string, fielddisplay(self, 'isfirnwarming', 'is firnwarming (Reeh 1991) activated (0 or 1, default is 1)')) 120 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested (TemperaturePDD, SmbAccumulation, SmbMelt)')) 121 # }}} 122 123 def marshall(self, prefix, md, fid): # {{{ 124 yts = md.constants.yts 125 126 WriteData(fid, prefix, 'name', 'md.smb.model', 'data', 10, 'format', 'Integer') 127 128 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'isfirnwarming', 'format', 'Boolean') 129 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'desfac', 'format', 'Double') 130 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 's0p', 'format', 'DoubleMat', 'mattype', 1) 131 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 's0t', 'format', 'DoubleMat', 'mattype', 1) 132 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'rlaps', 'format', 'Double') 133 134 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'monthlytemperatures', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 135 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'precipitation', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 136 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'temperature_anomaly', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 137 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'precipitation_anomaly', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 138 WriteData(fid, prefix, 'object', self, 'class', 'smb', 'fieldname', 'smb_corr', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 139 140 #process requested outputs 141 outputs = self.requested_outputs 142 pos = np.where('default' in outputs) 143 if not isempty(pos): 144 outputs[pos] = [] #remove 'default' from outputs 145 outputs = [outputs, defaultoutputs(self, md)] #add defaults 146 147 WriteData(fid, prefix, 'data', outputs, 'name', 'md.smb.requested_outputs', 'format', 'StringArray') 148 149 # }}} -
issm/trunk-jpl/src/m/classes/amr.py
r22295 r24213 2 2 from checkfield import checkfield 3 3 from WriteData import WriteData 4 4 5 5 6 class amr(object): … … 8 9 9 10 Usage: 10 amr =amr();11 amr = amr() 11 12 """ 12 13 13 def __init__(self): # {{{14 self.hmin 15 self.hmax 16 self.fieldname =''17 self.err 18 self.keepmetric 19 self.gradation 20 self.groundingline_resolution 21 self.groundingline_distance 22 self.icefront_resolution 23 self.icefront_distance 24 self.thicknesserror_resolution 25 self.thicknesserror_threshold 26 self.thicknesserror_groupthreshold 27 self.thicknesserror_maximum 28 self.deviatoricerror_resolution 29 self.deviatoricerror_threshold 30 self.deviatoricerror_groupthreshold 31 self.deviatoricerror_maximum 32 self.restart 33 14 def __init__(self): # {{{ 15 self.hmin = 0. 16 self.hmax = 0. 17 self.fieldname = '' 18 self.err = 0. 19 self.keepmetric = 0. 20 self.gradation = 0. 21 self.groundingline_resolution = 0. 22 self.groundingline_distance = 0. 23 self.icefront_resolution = 0. 24 self.icefront_distance = 0. 25 self.thicknesserror_resolution = 0. 26 self.thicknesserror_threshold = 0. 27 self.thicknesserror_groupthreshold = 0. 28 self.thicknesserror_maximum = 0. 29 self.deviatoricerror_resolution = 0. 30 self.deviatoricerror_threshold = 0. 31 self.deviatoricerror_groupthreshold = 0. 32 self.deviatoricerror_maximum = 0. 33 self.restart = 0. 34 #set defaults 34 35 self.setdefaultparameters() 35 36 #}}} 36 def __repr__(self): # {{{ 37 string=" amr parameters:" 38 string="%s\n%s"%(string,fielddisplay(self,"hmin","minimum element length")) 39 string="%s\n%s"%(string,fielddisplay(self,"hmax","maximum element length")) 40 string="%s\n%s"%(string,fielddisplay(self,"fieldname","name of input that will be used to compute the metric (should be an input of FemModel)")) 41 string="%s\n%s"%(string,fielddisplay(self,"keepmetric","indicates whether the metric should be kept every remeshing time")) 42 string="%s\n%s"%(string,fielddisplay(self,"gradation","maximum ratio between two adjacent edges")) 43 string="%s\n%s"%(string,fielddisplay(self,"groundingline_resolution","element length near the grounding line")) 44 string="%s\n%s"%(string,fielddisplay(self,"groundingline_distance","distance around the grounding line which elements will be refined")) 45 string="%s\n%s"%(string,fielddisplay(self,"icefront_resolution","element length near the ice front")) 46 string="%s\n%s"%(string,fielddisplay(self,"icefront_distance","distance around the ice front which elements will be refined")) 47 string="%s\n%s"%(string,fielddisplay(self,"thicknesserror_resolution","element length when thickness error estimator is used")) 48 string="%s\n%s"%(string,fielddisplay(self,"thicknesserror_threshold","maximum threshold thickness error permitted")) 49 string="%s\n%s"%(string,fielddisplay(self,"thicknesserror_groupthreshold","maximum group threshold thickness error permitted")) 50 string="%s\n%s"%(string,fielddisplay(self,"thicknesserror_maximum","maximum thickness error permitted")) 51 string="%s\n%s"%(string,fielddisplay(self,"deviatoricerror_resolution","element length when deviatoric stress error estimator is used")) 52 string="%s\n%s"%(string,fielddisplay(self,"deviatoricerror_threshold","maximum threshold deviatoricstress error permitted")) 53 string="%s\n%s"%(string,fielddisplay(self,"deviatoricerror_groupthreshold","maximum group threshold deviatoric stress error permitted")) 54 string="%s\n%s"%(string,fielddisplay(self,"deviatoricerror_maximum","maximum deviatoricstress error permitted")) 55 string="%s\n%s"%(string,fielddisplay(self,"restart","indicates if ReMesh() will call before first time step")) 37 38 def __repr__(self): # {{{ 39 string = " amr parameters:" 40 string = "%s\n%s" % (string, fielddisplay(self, "hmin", "minimum element length")) 41 string = "%s\n%s" % (string, fielddisplay(self, "hmax", "maximum element length")) 42 string = "%s\n%s" % (string, fielddisplay(self, "fieldname", "name of input that will be used to compute the metric (should be an input of FemModel)")) 43 string = "%s\n%s" % (string, fielddisplay(self, "keepmetric", "indicates whether the metric should be kept every remeshing time")) 44 string = "%s\n%s" % (string, fielddisplay(self, "gradation", "maximum ratio between two adjacent edges")) 45 string = "%s\n%s" % (string, fielddisplay(self, "groundingline_resolution", "element length near the grounding line")) 46 string = "%s\n%s" % (string, fielddisplay(self, "groundingline_distance", "distance around the grounding line which elements will be refined")) 47 string = "%s\n%s" % (string, fielddisplay(self, "icefront_resolution", "element length near the ice front")) 48 string = "%s\n%s" % (string, fielddisplay(self, "icefront_distance", "distance around the ice front which elements will be refined")) 49 string = "%s\n%s" % (string, fielddisplay(self, "thicknesserror_resolution", "element length when thickness error estimator is used")) 50 string = "%s\n%s" % (string, fielddisplay(self, "thicknesserror_threshold", "maximum threshold thickness error permitted")) 51 string = "%s\n%s" % (string, fielddisplay(self, "thicknesserror_groupthreshold", "maximum group threshold thickness error permitted")) 52 string = "%s\n%s" % (string, fielddisplay(self, "thicknesserror_maximum", "maximum thickness error permitted")) 53 string = "%s\n%s" % (string, fielddisplay(self, "deviatoricerror_resolution", "element length when deviatoric stress error estimator is used")) 54 string = "%s\n%s" % (string, fielddisplay(self, "deviatoricerror_threshold", "maximum threshold deviatoricstress error permitted")) 55 string = "%s\n%s" % (string, fielddisplay(self, "deviatoricerror_groupthreshold", "maximum group threshold deviatoric stress error permitted")) 56 string = "%s\n%s" % (string, fielddisplay(self, "deviatoricerror_maximum", "maximum deviatoricstress error permitted")) 57 string = "%s\n%s" % (string, fielddisplay(self, "restart", "indicates if ReMesh() will call before first time step")) 56 58 return string 57 59 #}}} 58 def setdefaultparameters(self): # {{{ 59 self.hmin = 100. 60 self.hmax = 100.e3 61 self.fieldname = 'Vel' 62 self.err = 3. 63 self.keepmetric = 1 64 self.gradation = 1.5 65 self.groundingline_resolution = 500. 66 self.groundingline_distance = 0 67 self.icefront_resolution = 500. 68 self.icefront_distance = 0 69 self.thicknesserror_resolution = 500. 70 self.thicknesserror_threshold = 0 71 self.thicknesserror_groupthreshold = 0 72 self.thicknesserror_maximum = 0 73 self.deviatoricerror_resolution = 500. 74 self.deviatoricerror_threshold = 0 75 self.deviatoricerror_groupthreshold = 0 76 self.deviatoricerror_maximum = 0 77 self.restart = 0. 60 61 def setdefaultparameters(self): # {{{ 62 self.hmin = 100. 63 self.hmax = 100.e3 64 self.fieldname = 'Vel' 65 self.err = 3. 66 self.keepmetric = 1 67 self.gradation = 1.5 68 self.groundingline_resolution = 500. 69 self.groundingline_distance = 0 70 self.icefront_resolution = 500. 71 self.icefront_distance = 0 72 self.thicknesserror_resolution = 500. 73 self.thicknesserror_threshold = 0 74 self.thicknesserror_groupthreshold = 0 75 self.thicknesserror_maximum = 0 76 self.deviatoricerror_resolution = 500. 77 self.deviatoricerror_threshold = 0 78 self.deviatoricerror_groupthreshold = 0 79 self.deviatoricerror_maximum = 0 80 self.restart = 0. 78 81 return self 79 82 #}}} 80 def checkconsistency(self,md,solution,analyses): # {{{ 81 md = checkfield(md,'fieldname','amr.hmax','numel',[1],'>',0,'NaN',1) 82 md = checkfield(md,'fieldname','amr.hmin','numel',[1],'>',0,'<',self.hmax,'NaN',1) 83 md = checkfield(md,'fieldname','amr.keepmetric','numel',[1],'>=',0,'<=',1,'NaN',1); 84 md = checkfield(md,'fieldname','amr.gradation','numel',[1],'>=',1.1,'<=',5,'NaN',1); 85 md = checkfield(md,'fieldname','amr.groundingline_resolution','numel',[1],'>',0,'<',self.hmax,'NaN',1); 86 md = checkfield(md,'fieldname','amr.groundingline_distance','numel',[1],'>=',0,'NaN',1,'Inf',1); 87 md = checkfield(md,'fieldname','amr.icefront_resolution','numel',[1],'>',0,'<',self.hmax,'NaN',1); 88 md = checkfield(md,'fieldname','amr.icefront_distance','numel',[1],'>=',0,'NaN',1,'Inf',1); 89 md = checkfield(md,'fieldname','amr.thicknesserror_resolution','numel',[1],'>',0,'<',self.hmax,'NaN',1); 90 md = checkfield(md,'fieldname','amr.thicknesserror_threshold','numel',[1],'>=',0,'<=',1,'NaN',1); 91 md = checkfield(md,'fieldname','amr.thicknesserror_groupthreshold','numel',[1],'>=',0,'<=',1,'NaN',1); 92 md = checkfield(md,'fieldname','amr.thicknesserror_maximum','numel',[1],'>=',0,'NaN',1,'Inf',1); 93 md = checkfield(md,'fieldname','amr.deviatoricerror_resolution','numel',[1],'>',0,'<',self.hmax,'NaN',1); 94 md = checkfield(md,'fieldname','amr.deviatoricerror_threshold','numel',[1],'>=',0,'<=',1,'NaN',1); 95 md = checkfield(md,'fieldname','amr.deviatoricerror_groupthreshold','numel',[1],'>=',0,'<=',1,'NaN',1); 96 md = checkfield(md,'fieldname','amr.deviatoricerror_maximum','numel',[1],'>=',0,'NaN',1,'Inf',1); 97 md = checkfield(md,'fieldname','amr.restart','numel',[1],'>=',0,'<=',1,'NaN',1) 83 84 def checkconsistency(self, md, solution, analyses): # {{{ 85 md = checkfield(md, 'fieldname', 'amr.hmax', 'numel', [1], '>', 0, 'NaN', 1) 86 md = checkfield(md, 'fieldname', 'amr.hmin', 'numel', [1], '>', 0, '<', self.hmax, 'NaN', 1) 87 md = checkfield(md, 'fieldname', 'amr.keepmetric', 'numel', [1], '>=', 0, '<=', 1, 'NaN', 1) 88 md = checkfield(md, 'fieldname', 'amr.gradation', 'numel', [1], '>=', 1.1, '<=', 5, 'NaN', 1) 89 md = checkfield(md, 'fieldname', 'amr.groundingline_resolution', 'numel', [1], '>', 0, '<', self.hmax, 'NaN', 1) 90 md = checkfield(md, 'fieldname', 'amr.groundingline_distance', 'numel', [1], '>=', 0, 'NaN', 1, 'Inf', 1) 91 md = checkfield(md, 'fieldname', 'amr.icefront_resolution', 'numel', [1], '>', 0, '<', self.hmax, 'NaN', 1) 92 md = checkfield(md, 'fieldname', 'amr.icefront_distance', 'numel', [1], '>=', 0, 'NaN', 1, 'Inf', 1) 93 md = checkfield(md, 'fieldname', 'amr.thicknesserror_resolution', 'numel', [1], '>', 0, '<', self.hmax, 'NaN', 1) 94 md = checkfield(md, 'fieldname', 'amr.thicknesserror_threshold', 'numel', [1], '>=', 0, '<=', 1, 'NaN', 1) 95 md = checkfield(md, 'fieldname', 'amr.thicknesserror_groupthreshold', 'numel', [1], '>=', 0, '<=', 1, 'NaN', 1) 96 md = checkfield(md, 'fieldname', 'amr.thicknesserror_maximum', 'numel', [1], '>=', 0, 'NaN', 1, 'Inf', 1) 97 md = checkfield(md, 'fieldname', 'amr.deviatoricerror_resolution', 'numel', [1], '>', 0, '<', self.hmax, 'NaN', 1) 98 md = checkfield(md, 'fieldname', 'amr.deviatoricerror_threshold', 'numel', [1], '>=', 0, '<=', 1, 'NaN', 1) 99 md = checkfield(md, 'fieldname', 'amr.deviatoricerror_groupthreshold', 'numel', [1], '>=', 0, '<=', 1, 'NaN', 1) 100 md = checkfield(md, 'fieldname', 'amr.deviatoricerror_maximum', 'numel', [1], '>=', 0, 'NaN', 1, 'Inf', 1) 101 md = checkfield(md, 'fieldname', 'amr.restart', 'numel', [1], '>=', 0, '<=', 1, 'NaN', 1) 98 102 return md 99 103 # }}} 100 def marshall(self,prefix,md,fid): # {{{ 101 WriteData(fid,prefix,'name','md.amr.type','data',1,'format','Integer') 102 WriteData(fid,prefix,'object',self,'fieldname','hmin','format','Double'); 103 WriteData(fid,prefix,'object',self,'fieldname','hmax','format','Double'); 104 WriteData(fid,prefix,'object',self,'fieldname','fieldname','format','String'); 105 WriteData(fid,prefix,'object',self,'fieldname','err','format','Double'); 106 WriteData(fid,prefix,'object',self,'fieldname','keepmetric','format','Integer'); 107 WriteData(fid,prefix,'object',self,'fieldname','gradation','format','Double'); 108 WriteData(fid,prefix,'object',self,'fieldname','groundingline_resolution','format','Double'); 109 WriteData(fid,prefix,'object',self,'fieldname','groundingline_distance','format','Double'); 110 WriteData(fid,prefix,'object',self,'fieldname','icefront_resolution','format','Double'); 111 WriteData(fid,prefix,'object',self,'fieldname','icefront_distance','format','Double'); 112 WriteData(fid,prefix,'object',self,'fieldname','thicknesserror_resolution','format','Double'); 113 WriteData(fid,prefix,'object',self,'fieldname','thicknesserror_threshold','format','Double'); 114 WriteData(fid,prefix,'object',self,'fieldname','thicknesserror_groupthreshold','format','Double'); 115 WriteData(fid,prefix,'object',self,'fieldname','thicknesserror_maximum','format','Double'); 116 WriteData(fid,prefix,'object',self,'fieldname','deviatoricerror_resolution','format','Double'); 117 WriteData(fid,prefix,'object',self,'fieldname','deviatoricerror_threshold','format','Double'); 118 WriteData(fid,prefix,'object',self,'fieldname','deviatoricerror_groupthreshold','format','Double'); 119 WriteData(fid,prefix,'object',self,'fieldname','deviatoricerror_maximum','format','Double'); 120 WriteData(fid,prefix,'object',self,'class','amr','fieldname','restart','format','Integer') 104 105 def marshall(self, prefix, md, fid): # {{{ 106 WriteData(fid, prefix, 'name', 'md.amr.type', 'data', 1, 'format', 'Integer') 107 WriteData(fid, prefix, 'object', self, 'fieldname', 'hmin', 'format', 'Double') 108 WriteData(fid, prefix, 'object', self, 'fieldname', 'hmax', 'format', 'Double') 109 WriteData(fid, prefix, 'object', self, 'fieldname', 'fieldname', 'format', 'String') 110 WriteData(fid, prefix, 'object', self, 'fieldname', 'err', 'format', 'Double') 111 WriteData(fid, prefix, 'object', self, 'fieldname', 'keepmetric', 'format', 'Integer') 112 WriteData(fid, prefix, 'object', self, 'fieldname', 'gradation', 'format', 'Double') 113 WriteData(fid, prefix, 'object', self, 'fieldname', 'groundingline_resolution', 'format', 'Double') 114 WriteData(fid, prefix, 'object', self, 'fieldname', 'groundingline_distance', 'format', 'Double') 115 WriteData(fid, prefix, 'object', self, 'fieldname', 'icefront_resolution', 'format', 'Double') 116 WriteData(fid, prefix, 'object', self, 'fieldname', 'icefront_distance', 'format', 'Double') 117 WriteData(fid, prefix, 'object', self, 'fieldname', 'thicknesserror_resolution', 'format', 'Double') 118 WriteData(fid, prefix, 'object', self, 'fieldname', 'thicknesserror_threshold', 'format', 'Double') 119 WriteData(fid, prefix, 'object', self, 'fieldname', 'thicknesserror_groupthreshold', 'format', 'Double') 120 WriteData(fid, prefix, 'object', self, 'fieldname', 'thicknesserror_maximum', 'format', 'Double') 121 WriteData(fid, prefix, 'object', self, 'fieldname', 'deviatoricerror_resolution', 'format', 'Double') 122 WriteData(fid, prefix, 'object', self, 'fieldname', 'deviatoricerror_threshold', 'format', 'Double') 123 WriteData(fid, prefix, 'object', self, 'fieldname', 'deviatoricerror_groupthreshold', 'format', 'Double') 124 WriteData(fid, prefix, 'object', self, 'fieldname', 'deviatoricerror_maximum', 'format', 'Double') 125 WriteData(fid, prefix, 'object', self, 'class', 'amr', 'fieldname', 'restart', 'format', 'Integer') 121 126 # }}} -
issm/trunk-jpl/src/m/classes/autodiff.py
r23737 r24213 7 7 from MatlabArray import * 8 8 9 9 10 class autodiff(object): 10 """ 11 AUTODIFF class definition 12 13 Usage: 14 autodiff=autodiff(); 15 """ 16 def __init__(self,*args): # {{{ 17 self.isautodiff = False 18 self.dependents = [] 19 self.independents = [] 20 self.driver = 'fos_forward' 21 self.obufsize = float('NaN') 22 self.lbufsize = float('NaN') 23 self.cbufsize = float('NaN') 24 self.tbufsize = float('NaN') 25 self.gcTriggerMaxSize = float('NaN') 26 self.gcTriggerRatio = float('NaN') 27 self.tapeAlloc = float('NaN') 28 if not len(args): 29 self.setdefaultparameters() 30 else: 31 raise RuntimeError("constructor not supported") 32 # }}} 33 34 def __repr__(self): # {{{ 35 s =" automatic differentiation parameters:\n" 36 s+="%s\n" % fielddisplay(self,'isautodiff',"indicates if the automatic differentiation is activated") 37 s+="%s\n" % fielddisplay(self,'dependents',"list of dependent variables") 38 s+="%s\n" % fielddisplay(self,'independents',"list of independent variables") 39 s+="%s\n" % fielddisplay(self,'driver',"ADOLC driver ('fos_forward' or 'fov_forward')") 40 s+="%s\n" % fielddisplay(self,'obufsize',"Number of operations per buffer (==OBUFSIZE in usrparms.h)") 41 s+="%s\n" % fielddisplay(self,'lbufsize',"Number of locations per buffer (==LBUFSIZE in usrparms.h)") 42 s+="%s\n" % fielddisplay(self,'cbufsize',"Number of values per buffer (==CBUFSIZE in usrparms.h)") 43 s+="%s\n" % fielddisplay(self,'tbufsize',"Number of taylors per buffer (<=TBUFSIZE in usrparms.h)") 44 s+="%s\n" % fielddisplay(self,'gcTriggerRatio',"free location block sorting/consolidation triggered if the ratio between allocated and used locations exceeds gcTriggerRatio") 45 s+="%s\n" % fielddisplay(self,'gcTriggerMaxSize',"free location block sorting/consolidation triggered if the allocated locations exceed gcTriggerMaxSize)") 46 s+="%s\n" % fielddisplay(self,'tapeAlloc','Iteration count of a priori memory allocation of the AD tape'); 47 48 return s 49 # }}} 50 51 def setdefaultparameters(self): # {{{ 52 self.obufsize = 524288 53 self.lbufsize = 524288 54 self.cbufsize = 524288 55 self.tbufsize = 524288 56 self.gcTriggerRatio = 2.0 57 self.gcTriggerMaxSize = 65536 58 self.tapeAlloc = 15000000; 59 return self 60 # }}} 61 62 def checkconsistency(self,md,solution,analyses): # {{{ 63 #Early return 64 if not self.isautodiff: 65 return md 66 67 md = checkfield(md,'fieldname','autodiff.obufsize','>=',524288) 68 md = checkfield(md,'fieldname','autodiff.lbufsize','>=',524288) 69 md = checkfield(md,'fieldname','autodiff.cbufsize','>=',524288) 70 md = checkfield(md,'fieldname','autodiff.tbufsize','>=',524288) 71 md = checkfield(md,'fieldname','autodiff.gcTriggerRatio','>=',2.0) 72 md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',65536) 73 md = checkfield(md,'fieldname','autodiff.tapeAlloc','>=',0); 74 75 #Driver value: 76 md = checkfield(md,'fieldname','autodiff.driver','values',['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all']) 77 78 #go through our dependents and independents and check consistency: 79 for dep in self.dependents: 80 dep.checkconsistency(md,solution,analyses) 81 for i,indep in enumerate(self.independents): 82 indep.checkconsistency(md,i,solution,analyses,self.driver) 83 84 return md 85 # }}} 86 87 def marshall(self,prefix,md,fid): # {{{ 88 WriteData(fid,prefix,'object',self,'fieldname','isautodiff','format','Boolean') 89 WriteData(fid,prefix,'object',self,'fieldname','driver','format','String') 90 91 #early return 92 if not self.isautodiff: 93 WriteData(fid,prefix,'data',False,'name','md.autodiff.mass_flux_segments_present','format','Boolean') 94 WriteData(fid,prefix,'data',False,'name','md.autodiff.keep','format','Boolean') 95 return 96 97 #buffer sizes {{{ 98 WriteData(fid,prefix,'object',self,'fieldname','obufsize','format','Double'); 99 WriteData(fid,prefix,'object',self,'fieldname','lbufsize','format','Double'); 100 WriteData(fid,prefix,'object',self,'fieldname','cbufsize','format','Double'); 101 WriteData(fid,prefix,'object',self,'fieldname','tbufsize','format','Double'); 102 WriteData(fid,prefix,'object',self,'fieldname','gcTriggerRatio','format','Double'); 103 WriteData(fid,prefix,'object',self,'fieldname','gcTriggerMaxSize','format','Double'); 104 WriteData(fid,prefix,'object',self,'fieldname','tapeAlloc','format','Integer'); 105 #}}} 106 #process dependent variables {{{ 107 num_dependent_objects=len(self.dependents) 108 WriteData(fid,prefix,'data',num_dependent_objects,'name','md.autodiff.num_dependent_objects','format','Integer') 109 110 if num_dependent_objects: 111 names=[] 112 types=np.zeros(num_dependent_objects) 113 indices=np.zeros(num_dependent_objects) 114 115 for i,dep in enumerate(self.dependents): 116 names.append(dep.name) 117 types[i]=dep.typetoscalar() 118 indices[i]=dep.index 119 120 WriteData(fid,prefix,'data',names,'name','md.autodiff.dependent_object_names','format','StringArray') 121 WriteData(fid,prefix,'data',types,'name','md.autodiff.dependent_object_types','format','IntMat','mattype',3) 122 WriteData(fid,prefix,'data',indices,'name','md.autodiff.dependent_object_indices','format','IntMat','mattype',3) 123 #}}} 124 #process independent variables {{{ 125 num_independent_objects=len(self.independents) 126 WriteData(fid,prefix,'data',num_independent_objects,'name','md.autodiff.num_independent_objects','format','Integer') 127 128 if num_independent_objects: 129 names=[None] * num_independent_objects 130 types=np.zeros(num_independent_objects) 131 132 for i,indep in enumerate(self.independents): 133 names[i]=indep.name 134 types[i]=indep.typetoscalar() 135 136 WriteData(fid,prefix,'data',names,'name','md.autodiff.independent_object_names','format','StringArray') 137 WriteData(fid,prefix,'data',types,'name','md.autodiff.independent_object_types','format','IntMat','mattype',3) 138 #}}} 139 #if driver is fos_forward, build index: {{{ 140 if strcmpi(self.driver,'fos_forward'): 141 index=0 142 143 for indep in self.independents: 144 if not np.isnan(indep.fos_forward_index): 145 index+=indep.fos_forward_index 146 break 147 else: 148 if strcmpi(indep.type,'scalar'): 149 index+=1 150 else: 151 index+=indep.nods 152 153 index-=1 #get c-index numbering going 154 WriteData(fid,prefix,'data',index,'name','md.autodiff.fos_forward_index','format','Integer') 155 #}}} 156 #if driver is fos_reverse, build index: {{{ 157 if strcmpi(self.driver,'fos_reverse'): 158 index=0 159 160 for dep in self.dependents: 161 if not np.isnan(dep.fos_reverse_index): 162 index+=dep.fos_reverse_index 163 break 164 else: 165 if strcmpi(dep.type,'scalar'): 166 index+=1 167 else: 168 index+=dep.nods 169 170 index-=1 #get c-index numbering going 171 WriteData(fid,prefix,'data',index,'name','md.autodiff.fos_reverse_index','format','Integer') 172 #}}} 173 #if driver is fov_forward, build indices: {{{ 174 if strcmpi(self.driver,'fov_forward'): 175 indices=0 176 177 for indep in self.independents: 178 if indep.fos_forward_index: 179 indices+=indep.fov_forward_indices 180 break 181 else: 182 if strcmpi(indep.type,'scalar'): 183 indices+=1 184 else: 185 indices+=indep.nods 186 187 indices-=1 #get c-indices numbering going 188 WriteData(fid,prefix,'data',indices,'name','md.autodiff.fov_forward_indices','format','IntMat','mattype',3) 189 #}}} 190 #deal with mass fluxes: {{{ 191 mass_flux_segments=[dep.segments for dep in self.dependents if strcmpi(dep.name,'MassFlux')] 192 193 if mass_flux_segments: 194 WriteData(fid,prefix,'data',mass_flux_segments,'name','md.autodiff.mass_flux_segments','format','MatArray') 195 flag=True 196 else: 197 flag=False 198 WriteData(fid,prefix,'data',flag,'name','md.autodiff.mass_flux_segments_present','format','Boolean') 199 #}}} 200 #deal with trace keep on: {{{ 201 keep=False 202 203 #From ADOLC userdoc: 204 # The optional integer argument keep of trace on determines whether the numerical values of all active variables are 205 # recorded in a buffered temporary array or file called the taylor stack. This option takes effect if keep = 1 and 206 # prepares the scene for an immediately following gradient evaluation by a call to a routine implementing the reverse 207 # mode as described in the Section 4 and Section 5. 208 # 209 210 if len(self.driver)<=3: 211 keep=False #there is no "_reverse" string within the driver string: 212 else: 213 if strncmpi(self.driver[3:],'_reverse',8): 214 keep=True 215 else: 216 keep=False 217 WriteData(fid,prefix,'data',keep,'name','md.autodiff.keep','format','Boolean') 218 #}}} 219 220 return 221 # }}} 11 """ 12 AUTODIFF class definition 13 14 Usage: 15 autodiff = autodiff() 16 """ 17 def __init__(self, *args): # {{{ 18 self.isautodiff = False 19 self.dependents = [] 20 self.independents = [] 21 self.driver = 'fos_forward' 22 self.obufsize = float('NaN') 23 self.lbufsize = float('NaN') 24 self.cbufsize = float('NaN') 25 self.tbufsize = float('NaN') 26 self.gcTriggerMaxSize = float('NaN') 27 self.gcTriggerRatio = float('NaN') 28 self.tapeAlloc = float('NaN') 29 if not len(args): 30 self.setdefaultparameters() 31 else: 32 raise RuntimeError("constructor not supported") 33 # }}} 34 35 def __repr__(self): # {{{ 36 s = " automatic differentiation parameters:\n" 37 s += "%s\n" % fielddisplay(self, 'isautodiff', "indicates if the automatic differentiation is activated") 38 s += "%s\n" % fielddisplay(self, 'dependents', "list of dependent variables") 39 s += "%s\n" % fielddisplay(self, 'independents', "list of independent variables") 40 s += "%s\n" % fielddisplay(self, 'driver', "ADOLC driver ('fos_forward' or 'fov_forward')") 41 s += "%s\n" % fielddisplay(self, 'obufsize', "Number of operations per buffer (== OBUFSIZE in usrparms.h)") 42 s += "%s\n" % fielddisplay(self, 'lbufsize', "Number of locations per buffer (== LBUFSIZE in usrparms.h)") 43 s += "%s\n" % fielddisplay(self, 'cbufsize', "Number of values per buffer (== CBUFSIZE in usrparms.h)") 44 s += "%s\n" % fielddisplay(self, 'tbufsize', "Number of taylors per buffer (<=TBUFSIZE in usrparms.h)") 45 s += "%s\n" % fielddisplay(self, 'gcTriggerRatio', "free location block sorting / consolidation triggered if the ratio between allocated and used locations exceeds gcTriggerRatio") 46 s += "%s\n" % fielddisplay(self, 'gcTriggerMaxSize', "free location block sorting / consolidation triggered if the allocated locations exceed gcTriggerMaxSize)") 47 s += "%s\n" % fielddisplay(self, 'tapeAlloc', 'Iteration count of a priori memory allocation of the AD tape') 48 49 return s 50 # }}} 51 52 def setdefaultparameters(self): # {{{ 53 self.obufsize = 524288 54 self.lbufsize = 524288 55 self.cbufsize = 524288 56 self.tbufsize = 524288 57 self.gcTriggerRatio = 2.0 58 self.gcTriggerMaxSize = 65536 59 self.tapeAlloc = 15000000 60 return self 61 # }}} 62 63 def checkconsistency(self, md, solution, analyses): # {{{ 64 #Early return 65 if not self.isautodiff: 66 return md 67 68 md = checkfield(md, 'fieldname', 'autodiff.obufsize', '>=', 524288) 69 md = checkfield(md, 'fieldname', 'autodiff.lbufsize', '>=', 524288) 70 md = checkfield(md, 'fieldname', 'autodiff.cbufsize', '>=', 524288) 71 md = checkfield(md, 'fieldname', 'autodiff.tbufsize', '>=', 524288) 72 md = checkfield(md, 'fieldname', 'autodiff.gcTriggerRatio', '>=', 2.0) 73 md = checkfield(md, 'fieldname', 'autodiff.gcTriggerMaxSize', '>=', 65536) 74 md = checkfield(md, 'fieldname', 'autodiff.tapeAlloc', '>=', 0) 75 76 #Driver value: 77 md = checkfield(md, 'fieldname', 'autodiff.driver', 'values', ['fos_forward', 'fov_forward', 'fov_forward_all', 'fos_reverse', 'fov_reverse', 'fov_reverse_all']) 78 79 #go through our dependents and independents and check consistency: 80 for dep in self.dependents: 81 dep.checkconsistency(md, solution, analyses) 82 for i, indep in enumerate(self.independents): 83 indep.checkconsistency(md, i, solution, analyses, self.driver) 84 85 return md 86 # }}} 87 88 def marshall(self, prefix, md, fid): # {{{ 89 WriteData(fid, prefix, 'object', self, 'fieldname', 'isautodiff', 'format', 'Boolean') 90 WriteData(fid, prefix, 'object', self, 'fieldname', 'driver', 'format', 'String') 91 92 #early return 93 if not self.isautodiff: 94 WriteData(fid, prefix, 'data', False, 'name', 'md.autodiff.mass_flux_segments_present', 'format', 'Boolean') 95 WriteData(fid, prefix, 'data', False, 'name', 'md.autodiff.keep', 'format', 'Boolean') 96 return 97 98 #buffer sizes {{{ 99 WriteData(fid, prefix, 'object', self, 'fieldname', 'obufsize', 'format', 'Double') 100 WriteData(fid, prefix, 'object', self, 'fieldname', 'lbufsize', 'format', 'Double') 101 WriteData(fid, prefix, 'object', self, 'fieldname', 'cbufsize', 'format', 'Double') 102 WriteData(fid, prefix, 'object', self, 'fieldname', 'tbufsize', 'format', 'Double') 103 WriteData(fid, prefix, 'object', self, 'fieldname', 'gcTriggerRatio', 'format', 'Double') 104 WriteData(fid, prefix, 'object', self, 'fieldname', 'gcTriggerMaxSize', 'format', 'Double') 105 WriteData(fid, prefix, 'object', self, 'fieldname', 'tapeAlloc', 'format', 'Integer') 106 #}}} 107 #process dependent variables {{{ 108 num_dependent_objects = len(self.dependents) 109 WriteData(fid, prefix, 'data', num_dependent_objects, 'name', 'md.autodiff.num_dependent_objects', 'format', 'Integer') 110 111 if num_dependent_objects: 112 names = [] 113 types = np.zeros(num_dependent_objects) 114 indices = np.zeros(num_dependent_objects) 115 116 for i, dep in enumerate(self.dependents): 117 names.append(dep.name) 118 types[i] = dep.typetoscalar() 119 indices[i] = dep.index 120 121 WriteData(fid, prefix, 'data', names, 'name', 'md.autodiff.dependent_object_names', 'format', 'StringArray') 122 WriteData(fid, prefix, 'data', types, 'name', 'md.autodiff.dependent_object_types', 'format', 'IntMat', 'mattype', 3) 123 WriteData(fid, prefix, 'data', indices, 'name', 'md.autodiff.dependent_object_indices', 'format', 'IntMat', 'mattype', 3) 124 #}}} 125 #process independent variables {{{ 126 num_independent_objects = len(self.independents) 127 WriteData(fid, prefix, 'data', num_independent_objects, 'name', 'md.autodiff.num_independent_objects', 'format', 'Integer') 128 129 if num_independent_objects: 130 names = [None] * num_independent_objects 131 types = np.zeros(num_independent_objects) 132 133 for i, indep in enumerate(self.independents): 134 names[i] = indep.name 135 types[i] = indep.typetoscalar() 136 137 WriteData(fid, prefix, 'data', names, 'name', 'md.autodiff.independent_object_names', 'format', 'StringArray') 138 WriteData(fid, prefix, 'data', types, 'name', 'md.autodiff.independent_object_types', 'format', 'IntMat', 'mattype', 3) 139 #}}} 140 #if driver is fos_forward, build index: {{{ 141 if strcmpi(self.driver, 'fos_forward'): 142 index = 0 143 144 for indep in self.independents: 145 if not np.isnan(indep.fos_forward_index): 146 index += indep.fos_forward_index 147 break 148 else: 149 if strcmpi(indep.type, 'scalar'): 150 index += 1 151 else: 152 index += indep.nods 153 154 index -= 1 #get c - index numbering going 155 WriteData(fid, prefix, 'data', index, 'name', 'md.autodiff.fos_forward_index', 'format', 'Integer') 156 #}}} 157 #if driver is fos_reverse, build index: {{{ 158 if strcmpi(self.driver, 'fos_reverse'): 159 index = 0 160 161 for dep in self.dependents: 162 if not np.isnan(dep.fos_reverse_index): 163 index += dep.fos_reverse_index 164 break 165 else: 166 if strcmpi(dep.type, 'scalar'): 167 index += 1 168 else: 169 index += dep.nods 170 171 index -= 1 #get c - index numbering going 172 WriteData(fid, prefix, 'data', index, 'name', 'md.autodiff.fos_reverse_index', 'format', 'Integer') 173 #}}} 174 #if driver is fov_forward, build indices: {{{ 175 if strcmpi(self.driver, 'fov_forward'): 176 indices = 0 177 178 for indep in self.independents: 179 if indep.fos_forward_index: 180 indices += indep.fov_forward_indices 181 break 182 else: 183 if strcmpi(indep.type, 'scalar'): 184 indices += 1 185 else: 186 indices += indep.nods 187 188 indices -= 1 #get c - indices numbering going 189 WriteData(fid, prefix, 'data', indices, 'name', 'md.autodiff.fov_forward_indices', 'format', 'IntMat', 'mattype', 3) 190 #}}} 191 #deal with mass fluxes: {{{ 192 mass_flux_segments = [dep.segments for dep in self.dependents if strcmpi(dep.name, 'MassFlux')] 193 194 if mass_flux_segments: 195 WriteData(fid, prefix, 'data', mass_flux_segments, 'name', 'md.autodiff.mass_flux_segments', 'format', 'MatArray') 196 flag = True 197 else: 198 flag = False 199 WriteData(fid, prefix, 'data', flag, 'name', 'md.autodiff.mass_flux_segments_present', 'format', 'Boolean') 200 #}}} 201 #deal with trace keep on: {{{ 202 keep = False 203 204 #From ADOLC userdoc: 205 # The optional integer argument keep of trace on determines whether the numerical values of all active variables are 206 # recorded in a buffered temporary array or file called the taylor stack. This option takes effect if keep = 1 and 207 # prepares the scene for an immediately following gradient evaluation by a call to a routine implementing the reverse 208 # mode as described in the Section 4 and Section 5. 209 # 210 if len(self.driver) <= 3: 211 keep = False #there is no "_reverse" string within the driver string: 212 else: 213 if strncmpi(self.driver[3:], '_reverse', 8): 214 keep = True 215 else: 216 keep = False 217 WriteData(fid, prefix, 'data', keep, 'name', 'md.autodiff.keep', 'format', 'Boolean') 218 #}}} 219 220 return 221 # }}} -
issm/trunk-jpl/src/m/classes/balancethickness.py
r23095 r24213 3 3 from WriteData import WriteData 4 4 5 5 6 class balancethickness(object): 6 7 7 """ 8 BALANCETHICKNESS class definition 8 9 9 10 balancethickness=balancethickness(); 11 10 Usage: 11 balancethickness = balancethickness() 12 """ 12 13 13 def __init__(self): # {{{ 14 self.spcthickness = float('NaN') 15 self.thickening_rate = float('NaN') 16 self.stabilization = 0 17 18 self.omega = float('NaN') 19 self.slopex = float('NaN') 20 self.slopey = float('NaN') 14 def __init__(self): # {{{ 15 self.spcthickness = float('NaN') 16 self.thickening_rate = float('NaN') 17 self.stabilization = 0 18 self.omega = float('NaN') 19 self.slopex = float('NaN') 20 self.slopey = float('NaN') 21 21 22 23 22 #set defaults 23 self.setdefaultparameters() 24 24 25 #}}} 26 def __repr__(self): # {{{ 27 28 string=' balance thickness solution parameters:' 29 30 string="%s\n%s"%(string,fielddisplay(self,'spcthickness','thickness constraints (NaN means no constraint) [m]')) 31 string="%s\n%s"%(string,fielddisplay(self,'thickening_rate','ice thickening rate used in the mass conservation (dh/dt) [m/yr]')) 32 string="%s\n%s"%(string,fielddisplay(self,'stabilization',"0: None, 1: SU, 2: SSA's artificial diffusivity, 3:DG")) 33 return string 34 #}}} 35 def setdefaultparameters(self): # {{{ 36 37 #Type of stabilization used 38 self.stabilization=1 25 #}}} 39 26 40 return self 41 #}}} 42 def checkconsistency(self,md,solution,analyses): # {{{ 43 #Early return 44 if not solution=='BalancethicknessSolution': 45 return md 27 def __repr__(self): # {{{ 28 string = ' balance thickness solution parameters:' 46 29 47 md = checkfield(md,'fieldname','balancethickness.spcthickness') 48 md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 49 md = checkfield(md,'fieldname','balancethickness.stabilization','size',[1],'values',[0,1,2,3]) 50 #md = checkfield(md,'fieldname','balancethickness.omega','size', [md.mesh.numberofvertices],'NaN',1,'Inf',1,'>=',0); 51 return md 52 # }}} 53 def marshall(self,prefix,md,fid): # {{{ 30 string = "%s\n%s" % (string, fielddisplay(self, 'spcthickness', 'thickness constraints (NaN means no constraint) [m]')) 31 string = "%s\n%s" % (string, fielddisplay(self, 'thickening_rate', 'ice thickening rate used in the mass conservation (dh / dt) [m / yr]')) 32 string = "%s\n%s" % (string, fielddisplay(self, 'stabilization', "0: None, 1: SU, 2: SSA's artificial diffusivity, 3:DG")) 33 return string 34 #}}} 54 35 55 yts=md.constants.yts 36 def setdefaultparameters(self): # {{{ 37 #Type of stabilization used 38 self.stabilization = 1 39 return self 40 #}}} 56 41 57 WriteData(fid,prefix,'object',self,'fieldname','spcthickness','format','DoubleMat','mattype',1) 58 WriteData(fid,prefix,'object',self,'fieldname','thickening_rate','format','DoubleMat','mattype',1,'scale',1./yts) 59 WriteData(fid,prefix,'object',self,'fieldname','stabilization','format','Integer') 60 WriteData(fid,prefix,'object',self,'fieldname','slopex','format','DoubleMat','mattype',1) 61 WriteData(fid,prefix,'object',self,'fieldname','slopey','format','DoubleMat','mattype',1) 62 WriteData(fid,prefix,'object',self,'fieldname','omega','format','DoubleMat','mattype',1) 63 # }}} 42 def checkconsistency(self, md, solution, analyses): # {{{ 43 #Early return 44 if not solution == 'BalancethicknessSolution': 45 return md 46 47 md = checkfield(md, 'fieldname', 'balancethickness.spcthickness') 48 md = checkfield(md, 'fieldname', 'balancethickness.thickening_rate', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 49 md = checkfield(md, 'fieldname', 'balancethickness.stabilization', 'size', [1], 'values', [0, 1, 2, 3]) 50 #md = checkfield(md, 'fieldname', 'balancethickness.omega', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1, '>=', 0) 51 return md 52 # }}} 53 54 def marshall(self, prefix, md, fid): # {{{ 55 yts = md.constants.yts 56 WriteData(fid, prefix, 'object', self, 'fieldname', 'spcthickness', 'format', 'DoubleMat', 'mattype', 1) 57 WriteData(fid, prefix, 'object', self, 'fieldname', 'thickening_rate', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 58 WriteData(fid, prefix, 'object', self, 'fieldname', 'stabilization', 'format', 'Integer') 59 WriteData(fid, prefix, 'object', self, 'fieldname', 'slopex', 'format', 'DoubleMat', 'mattype', 1) 60 WriteData(fid, prefix, 'object', self, 'fieldname', 'slopey', 'format', 'DoubleMat', 'mattype', 1) 61 WriteData(fid, prefix, 'object', self, 'fieldname', 'omega', 'format', 'DoubleMat', 'mattype', 1) 62 # }}} -
issm/trunk-jpl/src/m/classes/bamggeom.py
r23716 r24213 1 1 import numpy as np 2 2 3 3 4 class bamggeom(object): 4 5 5 """ 6 BAMGGEOM class definition 6 7 7 8 9 8 Usage: 9 bamggeom(varargin) 10 """ 10 11 11 def __init__(self,*args):# {{{12 self.Vertices=np.empty((0,3))13 self.Edges=np.empty((0,3))14 self.TangentAtEdges=np.empty((0,4))15 self.Corners=np.empty((0,1))16 self.RequiredVertices=np.empty((0,1))17 self.RequiredEdges=np.empty((0,1))18 self.CrackedEdges=np.empty((0,0))19 self.SubDomains=np.empty((0,4))12 def __init__(self, *args): # {{{ 13 self.Vertices = np.empty((0, 3)) 14 self.Edges = np.empty((0, 3)) 15 self.TangentAtEdges = np.empty((0, 4)) 16 self.Corners = np.empty((0, 1)) 17 self.RequiredVertices = np.empty((0, 1)) 18 self.RequiredEdges = np.empty((0, 1)) 19 self.CrackedEdges = np.empty((0, 0)) 20 self.SubDomains = np.empty((0, 4)) 20 21 21 22 23 22 if not len(args): 23 # if no input arguments, create a default object 24 pass 24 25 25 26 object=args[0]27 28 29 setattr(self,field,object[field])26 elif len(args) == 1: 27 object = args[0] 28 for field in list(object.keys()): 29 if field in vars(self): 30 setattr(self, field, object[field]) 30 31 31 else: 32 raise TypeError("bamggeom constructor error message: unknown type of constructor call") 33 # }}} 34 def __repr__(self): # {{{ 35 s ="class '%s' object '%s' = \n" % (type(self),'self') 36 s+=" Vertices: %s\n" % str(self.Vertices) 37 s+=" Edges: %s\n" % str(self.Edges) 38 s+=" TangentAtEdges: %s\n" % str(self.TangentAtEdges) 39 s+=" Corners: %s\n" % str(self.Corners) 40 s+=" RequiredVertices: %s\n" % str(self.RequiredVertices) 41 s+=" RequiredEdges: %s\n" % str(self.RequiredEdges) 42 s+=" CrackedEdges: %s\n" % str(self.CrackedEdges) 43 s+=" SubDomains: %s\n" % str(self.SubDomains) 44 return s 45 # }}} 32 else: 33 raise TypeError("bamggeom constructor error message: unknown type of constructor call") 34 # }}} 35 36 def __repr__(self): # {{{ 37 s = "class '%s' object '%s'=\n" % (type(self), 'self') 38 s += " Vertices: %s\n" % str(self.Vertices) 39 s += " Edges: %s\n" % str(self.Edges) 40 s += " TangentAtEdges: %s\n" % str(self.TangentAtEdges) 41 s += " Corners: %s\n" % str(self.Corners) 42 s += " RequiredVertices: %s\n" % str(self.RequiredVertices) 43 s += " RequiredEdges: %s\n" % str(self.RequiredEdges) 44 s += " CrackedEdges: %s\n" % str(self.CrackedEdges) 45 s += " SubDomains: %s\n" % str(self.SubDomains) 46 return s 47 # }}} -
issm/trunk-jpl/src/m/classes/bamgmesh.py
r23716 r24213 1 1 import numpy as np 2 2 3 3 4 class bamgmesh(object): 4 5 5 """ 6 BAMGMESH class definition 6 7 7 8 9 8 Usage: 9 bamgmesh(varargin) 10 """ 10 11 11 def __init__(self,*args):# {{{12 self.Vertices=np.empty((0,3))13 self.Edges=np.empty((0,3))14 self.Triangles=np.empty((0,0))15 self.IssmEdges=np.empty((0,0))16 self.IssmSegments=np.empty((0,0))17 self.VerticesOnGeomVertex=np.empty((0,0))18 self.VerticesOnGeomEdge=np.empty((0,0))19 self.EdgesOnGeomEdge=np.empty((0,0))20 self.SubDomains=np.empty((0,4))21 self.SubDomainsFromGeom=np.empty((0,0))22 self.ElementConnectivity=np.empty((0,0))23 self.NodalConnectivity=np.empty((0,0))24 self.NodalElementConnectivity=np.empty((0,0))25 self.CrackedVertices=np.empty((0,0))26 self.CrackedEdges=np.empty((0,0))12 def __init__(self, *args): # {{{ 13 self.Vertices = np.empty((0, 3)) 14 self.Edges = np.empty((0, 3)) 15 self.Triangles = np.empty((0, 0)) 16 self.IssmEdges = np.empty((0, 0)) 17 self.IssmSegments = np.empty((0, 0)) 18 self.VerticesOnGeomVertex = np.empty((0, 0)) 19 self.VerticesOnGeomEdge = np.empty((0, 0)) 20 self.EdgesOnGeomEdge = np.empty((0, 0)) 21 self.SubDomains = np.empty((0, 4)) 22 self.SubDomainsFromGeom = np.empty((0, 0)) 23 self.ElementConnectivity = np.empty((0, 0)) 24 self.NodalConnectivity = np.empty((0, 0)) 25 self.NodalElementConnectivity = np.empty((0, 0)) 26 self.CrackedVertices = np.empty((0, 0)) 27 self.CrackedEdges = np.empty((0, 0)) 27 28 28 29 30 29 if not len(args): 30 # if no input arguments, create a default object 31 pass 31 32 32 33 object=args[0]34 35 36 setattr(self,field,object[field])33 elif len(args) == 1: 34 object = args[0] 35 for field in list(object.keys()): 36 if field in vars(self): 37 setattr(self, field, object[field]) 37 38 38 else: 39 raise TypeError("bamgmesh constructor error message: unknown type of constructor call") 40 # }}} 41 def __repr__(self): # {{{ 42 s ="class '%s' object '%s' = \n" % (type(self),'self') 43 s+=" Vertices: %s\n" % str(self.Vertices) 44 s+=" Edges: %s\n" % str(self.Edges) 45 s+=" Triangles: %s\n" % str(self.Triangles) 46 s+=" IssmEdges: %s\n" % str(self.IssmEdges) 47 s+=" IssmSegments: %s\n" % str(self.IssmSegments) 48 s+=" VerticesOnGeomVertex: %s\n" % str(self.VerticesOnGeomVertex) 49 s+=" VerticesOnGeomEdge: %s\n" % str(self.VerticesOnGeomEdge) 50 s+=" EdgesOnGeomEdge: %s\n" % str(self.EdgesOnGeomEdge) 51 s+=" SubDomains: %s\n" % str(self.SubDomains) 52 s+=" SubDomainsFromGeom: %s\n" % str(self.SubDomainsFromGeom) 53 s+=" ElementConnectivity: %s\n" % str(self.ElementConnectivity) 54 s+=" NodalConnectivity: %s\n" % str(self.NodalConnectivity) 55 s+=" NodalElementConnectivity: %s\n" % str(self.NodalElementConnectivity) 56 s+=" CrackedVertices: %s\n" % str(self.CrackedVertices) 57 s+=" CrackedEdges: %s\n" % str(self.CrackedEdges) 58 return s 59 # }}} 39 else: 40 raise TypeError("bamgmesh constructor error message: unknown type of constructor call") 41 # }}} 42 43 def __repr__(self): # {{{ 44 s = "class '%s' object '%s' = \n" % (type(self), 'self') 45 s += " Vertices: %s\n" % str(self.Vertices) 46 s += " Edges: %s\n" % str(self.Edges) 47 s += " Triangles: %s\n" % str(self.Triangles) 48 s += " IssmEdges: %s\n" % str(self.IssmEdges) 49 s += " IssmSegments: %s\n" % str(self.IssmSegments) 50 s += " VerticesOnGeomVertex: %s\n" % str(self.VerticesOnGeomVertex) 51 s += " VerticesOnGeomEdge: %s\n" % str(self.VerticesOnGeomEdge) 52 s += " EdgesOnGeomEdge: %s\n" % str(self.EdgesOnGeomEdge) 53 s += " SubDomains: %s\n" % str(self.SubDomains) 54 s += " SubDomainsFromGeom: %s\n" % str(self.SubDomainsFromGeom) 55 s += " ElementConnectivity: %s\n" % str(self.ElementConnectivity) 56 s += " NodalConnectivity: %s\n" % str(self.NodalConnectivity) 57 s += " NodalElementConnectivity: %s\n" % str(self.NodalElementConnectivity) 58 s += " CrackedVertices: %s\n" % str(self.CrackedVertices) 59 s += " CrackedEdges: %s\n" % str(self.CrackedEdges) 60 return s 61 # }}} -
issm/trunk-jpl/src/m/classes/basalforcings.py
r23716 r24213 5 5 import numpy as np 6 6 7 7 8 class basalforcings(object): 8 9 9 """ 10 BASAL FORCINGS class definition 10 11 11 12 basalforcings=basalforcings(); 13 12 Usage: 13 basalforcings = basalforcings() 14 """ 14 15 15 def __init__(self):# {{{16 self.groundedice_melting_rate= float('NaN')17 self.floatingice_melting_rate= float('NaN')18 self.geothermalflux= float('NaN')16 def __init__(self): # {{{ 17 self.groundedice_melting_rate = float('NaN') 18 self.floatingice_melting_rate = float('NaN') 19 self.geothermalflux = float('NaN') 19 20 20 21 21 #set defaults 22 self.setdefaultparameters() 22 23 23 #}}} 24 def __repr__(self): # {{{ 25 string=" basal forcings parameters:" 24 #}}} 26 25 27 string="%s\n%s"%(string,fielddisplay(self,"groundedice_melting_rate","basal melting rate (positive if melting) [m/yr]")) 28 string="%s\n%s"%(string,fielddisplay(self,"floatingice_melting_rate","basal melting rate (positive if melting) [m/yr]")) 29 string="%s\n%s"%(string,fielddisplay(self,"geothermalflux","geothermal heat flux [W/m^2]")) 30 return string 31 #}}} 32 def extrude(self,md): # {{{ 33 self.groundedice_melting_rate=project3d(md,'vector',self.groundedice_melting_rate,'type','node','layer',1) 34 self.floatingice_melting_rate=project3d(md,'vector',self.floatingice_melting_rate,'type','node','layer',1) 35 self.geothermalflux=project3d(md,'vector',self.geothermalflux,'type','node','layer',1) #bedrock only gets geothermal flux 36 return self 37 #}}} 38 def initialize(self,md): # {{{ 26 def __repr__(self): # {{{ 27 string = " basal forcings parameters:" 39 28 40 if np.all(np.isnan(self.groundedice_melting_rate)): 41 self.groundedice_melting_rate=np.zeros((md.mesh.numberofvertices)) 42 print(" no basalforcings.groundedice_melting_rate specified: values set as zero") 29 string = "%s\n%s" % (string, fielddisplay(self, "groundedice_melting_rate", "basal melting rate (positive if melting) [m / yr]")) 30 string = "%s\n%s" % (string, fielddisplay(self, "floatingice_melting_rate", "basal melting rate (positive if melting) [m / yr]")) 31 string = "%s\n%s" % (string, fielddisplay(self, "geothermalflux", "geothermal heat flux [W / m^2]")) 32 return string 33 #}}} 43 34 44 if np.all(np.isnan(self.floatingice_melting_rate)): 45 self.floatingice_melting_rate=np.zeros((md.mesh.numberofvertices))46 print(" no basalforcings.floatingice_melting_rate specified: values set as zero")47 #if np.all(np.isnan(self.geothermalflux)): 48 #self.geothermalflux=np.zeros((md.mesh.numberofvertices)) 49 #print " no basalforcings.geothermalflux specified: values set as zero" 35 def extrude(self, md): # {{{ 36 self.groundedice_melting_rate = project3d(md, 'vector', self.groundedice_melting_rate, 'type', 'node', 'layer', 1) 37 self.floatingice_melting_rate = project3d(md, 'vector', self.floatingice_melting_rate, 'type', 'node', 'layer', 1) 38 self.geothermalflux = project3d(md, 'vector', self.geothermalflux, 'type', 'node', 'layer', 1) #bedrock only gets geothermal flux 39 return self 40 #}}} 50 41 51 return self 52 #}}} 53 def setdefaultparameters(self): # {{{ 54 return self 55 #}}} 56 def checkconsistency(self,md,solution,analyses): # {{{ 42 def initialize(self, md): # {{{ 43 if np.all(np.isnan(self.groundedice_melting_rate)): 44 self.groundedice_melting_rate = np.zeros((md.mesh.numberofvertices)) 45 print(" no basalforcings.groundedice_melting_rate specified: values set as zero") 57 46 58 if 'MasstransportAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.ismasstransport): 59 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1) 60 md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1) 47 if np.all(np.isnan(self.floatingice_melting_rate)): 48 self.floatingice_melting_rate = np.zeros((md.mesh.numberofvertices)) 49 print(" no basalforcings.floatingice_melting_rate specified: values set as zero") 50 #if np.all(np.isnan(self.geothermalflux)): 51 #self.geothermalflux = np.zeros((md.mesh.numberofvertices)) 52 #print " no basalforcings.geothermalflux specified: values set as zero" 61 53 62 if 'BalancethicknessAnalysis' in analyses: 63 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 64 md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 54 return self 55 #}}} 65 56 66 if 'ThermalAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.isthermal): 67 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1) 68 md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1) 69 md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0) 57 def setdefaultparameters(self): # {{{ 58 return self 59 #}}} 70 60 71 return md 72 # }}} 73 def marshall(self,prefix,md,fid): # {{{ 61 def checkconsistency(self, md, solution, analyses): # {{{ 74 62 75 yts=md.constants.yts 63 if 'MasstransportAnalysis' in analyses and not (solution == 'TransientSolution' and not md.transient.ismasstransport): 64 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 65 md = checkfield(md, 'fieldname', 'basalforcings.floatingice_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 76 66 77 WriteData(fid,prefix,'name','md.basalforcings.model','data',1,'format','Integer'); 78 WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 79 WriteData(fid,prefix,'object',self,'fieldname','floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 80 WriteData(fid,prefix,'object',self,'fieldname','geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 81 # }}} 67 if 'BalancethicknessAnalysis' in analyses: 68 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 69 md = checkfield(md, 'fieldname', 'basalforcings.floatingice_melting_rate', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 70 71 if 'ThermalAnalysis' in analyses and not (solution == 'TransientSolution' and not md.transient.isthermal): 72 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 73 md = checkfield(md, 'fieldname', 'basalforcings.floatingice_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 74 md = checkfield(md, 'fieldname', 'basalforcings.geothermalflux', 'NaN', 1, 'Inf', 1, 'timeseries', 1, '>=', 0) 75 76 return md 77 # }}} 78 79 def marshall(self, prefix, md, fid): # {{{ 80 81 yts = md.constants.yts 82 83 WriteData(fid, prefix, 'name', 'md.basalforcings.model', 'data', 1, 'format', 'Integer') 84 WriteData(fid, prefix, 'object', self, 'fieldname', 'groundedice_melting_rate', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 85 WriteData(fid, prefix, 'object', self, 'fieldname', 'floatingice_melting_rate', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 86 WriteData(fid, prefix, 'object', self, 'fieldname', 'geothermalflux', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 87 # }}} -
issm/trunk-jpl/src/m/classes/calving.py
r23658 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class calving(object): 7 8 8 """ 9 CALVING class definition 9 10 10 11 calving=calving(); 12 11 Usage: 12 calving = calving() 13 """ 13 14 14 def __init__(self):# {{{15 def __init__(self): # {{{ 15 16 16 self.calvingrate= float('NaN')17 self.meltingrate= float('NaN')17 self.calvingrate = float('NaN') 18 self.meltingrate = float('NaN') 18 19 19 20 20 #set defaults 21 self.setdefaultparameters() 21 22 22 #}}} 23 def __repr__(self): # {{{ 24 string=' Calving parameters:' 25 string="%s\n%s"%(string,fielddisplay(self,'calvingrate','calving rate at given location [m/a]')) 23 #}}} 26 24 27 return string 28 #}}} 29 def extrude(self,md): # {{{ 30 self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node') 31 return self 32 #}}} 33 def setdefaultparameters(self): # {{{ 25 def __repr__(self): # {{{ 26 string = ' Calving parameters:' 27 string = "%s\n%s" % (string, fielddisplay(self, 'calvingrate', 'calving rate at given location [m / a]')) 34 28 35 return self 36 #}}} 37 def checkconsistency(self,md,solution,analyses): # {{{ 29 return string 30 #}}} 38 31 39 #Early return 40 if (solution!='TransientSolution') or (not md.transient.ismovingfront): 41 return md 32 def extrude(self, md): # {{{ 33 self.calvingrate = project3d(md, 'vector', self.calvingrate, 'type', 'node') 34 return self 35 #}}} 42 36 43 md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1); 37 def setdefaultparameters(self): # {{{ 38 return self 39 #}}} 44 40 45 return md 46 # }}} 47 def marshall(self,prefix,md,fid): # {{{ 41 def checkconsistency(self, md, solution, analyses): # {{{ 42 #Early return 43 if (solution != 'TransientSolution') or (not md.transient.ismovingfront): 44 return md 48 45 49 yts=md.constants.yts 46 md = checkfield(md, 'fieldname', 'calving.calvingrate', '>=', 0, 'timeseries', 1, 'NaN', 1, 'Inf', 1) 50 47 51 WriteData(fid,prefix,'name','md.calving.law','data',1,'format','Integer'); 52 WriteData(fid,prefix,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts) 53 # }}} 48 return md 49 # }}} 50 51 def marshall(self, prefix, md, fid): # {{{ 52 yts = md.constants.yts 53 54 WriteData(fid, prefix, 'name', 'md.calving.law', 'data', 1, 'format', 'Integer') 55 WriteData(fid, prefix, 'object', self, 'fieldname', 'calvingrate', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts, 'scale', 1. / yts) 56 # }}} -
issm/trunk-jpl/src/m/classes/calvingdev.py
r22267 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class calvingdev(object): 7 8 8 """ 9 CALVINGDEV class definition 9 10 10 11 calvingdev=calvingdev(); 12 11 Usage: 12 calvingdev = calvingdev() 13 """ 13 14 14 def __init__(self):# {{{15 def __init__(self): # {{{ 15 16 16 17 18 self.meltingrate= float('NaN')17 self.stress_threshold_groundedice = 0. 18 self.stress_threshold_floatingice = 0. 19 self.meltingrate = float('NaN') 19 20 20 21 21 #set defaults 22 self.setdefaultparameters() 22 23 23 #}}} 24 def __repr__(self): # {{{ 25 string=' Calving Pi parameters:' 26 string="%s\n%s"%(string,fielddisplay(self,'stress_threshold_groundedice','sigma_max applied to grounded ice only [Pa]')) 27 string="%s\n%s"%(string,fielddisplay(self,'stress_threshold_floatingice','sigma_max applied to floating ice only [Pa]')) 24 #}}} 28 25 29 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]')) 30 return string 31 #}}} 32 def extrude(self,md): # {{{ 33 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node') 34 return self 35 #}}} 36 def setdefaultparameters(self): # {{{ 37 #Default sigma max 38 self.stress_threshold_groundedice = 1e6 39 self.stress_threshold_floatingice = 150e3 40 return self 41 #}}} 42 def checkconsistency(self,md,solution,analyses): # {{{ 43 #Early return 44 if solution == 'TransientSolution' or md.transient.ismovingfront == 0: 45 return 26 def __repr__(self): # {{{ 27 string = ' Calving Pi parameters:' 28 string = "%s\n%s" % (string, fielddisplay(self, 'stress_threshold_groundedice', 'sigma_max applied to grounded ice only [Pa]')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'stress_threshold_floatingice', 'sigma_max applied to floating ice only [Pa]')) 46 30 47 md = checkfield(md,'fieldname','calving.stress_threshold_groundedice','>',0,'nan',1,'Inf',1)48 md = checkfield(md,'fieldname','calving.stress_threshold_floatingice','>',0,'nan',1,'Inf',1) 49 md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0) 31 string = "%s\n%s" % (string, fielddisplay(self, 'meltingrate', 'melting rate at given location [m / a]')) 32 return string 33 #}}} 50 34 51 return md 52 # }}} 53 def marshall(self,prefix,md,fid): # {{{ 54 yts=md.constants.yts 35 def extrude(self, md): # {{{ 36 self.meltingrate = project3d(md, 'vector', self.meltingrate, 'type', 'node') 37 return self 38 #}}} 55 39 56 WriteData(fid,prefix,'name','md.calving.law','data',2,'format','Integer') 57 WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_groundedice','format','DoubleMat','mattype',1) 58 WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_floatingice','format','DoubleMat','mattype',1) 59 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts) 60 # }}} 40 def setdefaultparameters(self): # {{{ 41 #Default sigma max 42 self.stress_threshold_groundedice = 1e6 43 self.stress_threshold_floatingice = 150e3 44 return self 45 #}}} 46 47 def checkconsistency(self, md, solution, analyses): # {{{ 48 #Early return 49 if solution == 'TransientSolution' or md.transient.ismovingfront == 0: 50 return 51 52 md = checkfield(md, 'fieldname', 'calving.stress_threshold_groundedice', '>', 0, 'nan', 1, 'Inf', 1) 53 md = checkfield(md, 'fieldname', 'calving.stress_threshold_floatingice', '>', 0, 'nan', 1, 'Inf', 1) 54 md = checkfield(md, 'fieldname', 'calving.meltingrate', 'NaN', 1, 'Inf', 1, 'timeseries', 1, '>=', 0) 55 56 return md 57 # }}} 58 59 def marshall(self, prefix, md, fid): # {{{ 60 yts = md.constants.yts 61 62 WriteData(fid, prefix, 'name', 'md.calving.law', 'data', 2, 'format', 'Integer') 63 WriteData(fid, prefix, 'object', self, 'fieldname', 'stress_threshold_groundedice', 'format', 'DoubleMat', 'mattype', 1) 64 WriteData(fid, prefix, 'object', self, 'fieldname', 'stress_threshold_floatingice', 'format', 'DoubleMat', 'mattype', 1) 65 WriteData(fid, prefix, 'object', self, 'fieldname', 'meltingrate', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts, 'scale', 1. / yts) 66 # }}} -
issm/trunk-jpl/src/m/classes/calvinglevermann.py
r23658 r24213 2 2 from checkfield import checkfield 3 3 from WriteData import WriteData 4 from project3d import project3d 5 4 6 5 7 class calvinglevermann(object): 6 7 8 """ 9 CALVINGLEVERMANN class definition 8 10 9 10 calvinglevermann=calvinglevermann(); 11 11 Usage: 12 calvinglevermann = calvinglevermann() 13 """ 12 14 13 def __init__(self):# {{{15 def __init__(self): # {{{ 14 16 15 self.coeff= float('NaN')16 self.meltingrate= float('NaN')17 self.coeff = float('NaN') 18 self.meltingrate = float('NaN') 17 19 18 19 20 #set defaults 21 self.setdefaultparameters() 20 22 21 #}}} 22 def __repr__(self): # {{{ 23 string=' Calving Levermann parameters:' 24 string="%s\n%s"%(string,fielddisplay(self,'coeff','proportionality coefficient in Levermann model')) 23 #}}} 25 24 26 return string 27 #}}} 28 def extrude(self,md): # {{{ 29 self.coeff=project3d(md,'vector',self.coeff,'type','node') 30 return self 31 #}}} 32 def setdefaultparameters(self): # {{{ 25 def __repr__(self): # {{{ 26 string = ' Calving Levermann parameters:' 27 string = "%s\n%s" % (string, fielddisplay(self, 'coeff', 'proportionality coefficient in Levermann model')) 33 28 34 #Proportionality coefficient in Levermann model 35 self.coeff=2e13; 36 #}}} 37 def checkconsistency(self,md,solution,analyses): # {{{ 29 return string 30 #}}} 38 31 39 #Early return 40 if (solution!='TransientSolution') or (not md.transient.ismovingfront): 41 return md 32 def extrude(self, md): # {{{ 33 self.coeff = project3d(md, 'vector', self.coeff, 'type', 'node') 34 return self 35 #}}} 42 36 43 md = checkfield(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0) 44 return md 45 # }}} 46 def marshall(self,prefix,md,fid): # {{{ 47 yts=md.constants.yts 48 WriteData(fid,prefix,'name','md.calving.law','data',3,'format','Integer'); 49 WriteData(fid,prefix,'object',self,'fieldname','coeff','format','DoubleMat','mattype',1) 50 # }}} 37 def setdefaultparameters(self): # {{{ 38 #Proportionality coefficient in Levermann model 39 self.coeff = 2e13 40 #}}} 41 42 def checkconsistency(self, md, solution, analyses): # {{{ 43 #Early return 44 if (solution != 'TransientSolution') or (not md.transient.ismovingfront): 45 return md 46 47 md = checkfield(md, 'fieldname', 'calving.coeff', 'size', [md.mesh.numberofvertices], '>', 0) 48 return md 49 # }}} 50 51 def marshall(self, prefix, md, fid): # {{{ 52 WriteData(fid, prefix, 'name', 'md.calving.law', 'data', 3, 'format', 'Integer') 53 WriteData(fid, prefix, 'object', self, 'fieldname', 'coeff', 'format', 'DoubleMat', 'mattype', 1) 54 # }}} -
issm/trunk-jpl/src/m/classes/calvingminthickness.py
r23658 r24213 3 3 from WriteData import WriteData 4 4 5 5 6 class calvingminthickness(object): 6 7 7 """ 8 CALVINGMINTHICKNESS class definition 8 9 9 10 calvingminthickness=calvingminthickness()11 10 Usage: 11 calvingminthickness = calvingminthickness() 12 """ 12 13 13 def __init__(self):# {{{14 def __init__(self): # {{{ 14 15 15 16 self.meltingrate= float('NaN')16 self.min_thickness = 0. 17 self.meltingrate = float('NaN') 17 18 18 19 19 #set defaults 20 self.setdefaultparameters() 20 21 21 #}}} 22 def __repr__(self): # {{{ 23 string=' Calving Minimum thickness:' 24 string="%s\n%s"%(string,fielddisplay(self,'min_thickness','minimum thickness below which no ice is allowed')) 25 return string 26 #}}} 27 def extrude(self,md): # {{{ 28 return self 29 #}}} 30 def setdefaultparameters(self): # {{{ 22 #}}} 31 23 32 #minimum thickness is 100 m by default 33 self.min_thickness = 100. 34 #}}} 35 def checkconsistency(self,md,solution,analyses): # {{{ 24 def __repr__(self): # {{{ 25 string = ' Calving Minimum thickness:' 26 string = "%s\n%s" % (string, fielddisplay(self, 'min_thickness', 'minimum thickness below which no ice is allowed')) 27 return string 28 #}}} 36 29 37 #Early return 38 if solution == 'TransientSolution' or md.transient.ismovingfront == 0: 39 return 30 def extrude(self, md): # {{{ 31 return self 32 #}}} 40 33 41 md = checkfield(md,'fieldname','calving.min_thickness','>',0,'NaN',1,'Inf',1) 42 return md 43 # }}} 44 def marshall(self,prefix,md,fid): # {{{ 45 yts=md.constants.yts 46 WriteData(fid,prefix,'name','md.calving.law','data',4,'format','Integer') 47 WriteData(fid,prefix,'object',self,'fieldname','min_thickness','format','Double') 48 # }}} 34 def setdefaultparameters(self): # {{{ 35 #minimum thickness is 100 m by default 36 self.min_thickness = 100. 37 #}}} 38 39 def checkconsistency(self, md, solution, analyses): # {{{ 40 #Early return 41 if solution == 'TransientSolution' or md.transient.ismovingfront == 0: 42 return 43 44 md = checkfield(md, 'fieldname', 'calving.min_thickness', '>', 0, 'NaN', 1, 'Inf', 1) 45 return md 46 # }}} 47 48 def marshall(self, prefix, md, fid): # {{{ 49 WriteData(fid, prefix, 'name', 'md.calving.law', 'data', 4, 'format', 'Integer') 50 WriteData(fid, prefix, 'object', self, 'fieldname', 'min_thickness', 'format', 'Double') 51 # }}} -
issm/trunk-jpl/src/m/classes/calvingvonmises.py
r23838 r24213 1 1 from fielddisplay import fielddisplay 2 from project3d import project3d3 2 from checkfield import checkfield 4 3 from WriteData import WriteData 4 5 5 6 6 class calvingvonmises(object): … … 9 9 10 10 Usage: 11 calvingvonmises =calvingvonmises()11 calvingvonmises = calvingvonmises() 12 12 """ 13 13 14 def __init__(self): # {{{14 def __init__(self): # {{{ 15 15 16 16 self.stress_threshold_groundedice = 0. 17 17 self.stress_threshold_floatingice = 0. 18 self.meltingrate 18 self.meltingrate = float('NaN') 19 19 self.min_thickness = 0. 20 20 21 21 #set defaults 22 22 self.setdefaultparameters() 23 23 24 24 #}}} 25 def __repr__(self): # {{{ 26 string=' Calving VonMises parameters:' 27 string="%s\n%s"%(string,fielddisplay(self,'stress_threshold_groundedice','sigma_max applied to grounded ice only [Pa]')) 28 string="%s\n%s"%(string,fielddisplay(self,'stress_threshold_floatingice','sigma_max applied to floating ice only [Pa]')) 29 string="%s\n%s"%(string,fielddisplay(self,'min_thickness','minimum thickness below which no ice is allowed [m]')) 25 26 def __repr__(self): # {{{ 27 string = ' Calving VonMises parameters:' 28 string = "%s\n%s" % (string, fielddisplay(self, 'stress_threshold_groundedice', 'sigma_max applied to grounded ice only [Pa]')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'stress_threshold_floatingice', 'sigma_max applied to floating ice only [Pa]')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'min_thickness', 'minimum thickness below which no ice is allowed [m]')) 30 31 31 32 return string 32 33 #}}} 33 def extrude(self,md): # {{{ 34 35 def extrude(self, md): # {{{ 34 36 return self 35 37 #}}} 36 def setdefaultparameters(self): # {{{ 38 39 def setdefaultparameters(self): # {{{ 37 40 #Default sigma max 38 41 self.stress_threshold_groundedice = 1e6 … … 40 43 41 44 #turn off min_thickness by default. 42 self.min_thickness =0.45 self.min_thickness = 0. 43 46 return self 44 47 #}}} 45 def checkconsistency(self,md,solution,analyses): # {{{ 48 49 def checkconsistency(self, md, solution, analyses): # {{{ 46 50 #Early return 47 51 if solution == 'TransientSolution' or md.transient.ismovingfront == 0: 48 52 return 49 53 50 md = checkfield(md, 'fieldname','calving.stress_threshold_groundedice','>',0,'nan',1,'Inf',1)51 md = checkfield(md, 'fieldname','calving.stress_threshold_floatingice','>',0,'nan',1,'Inf',1)52 md = checkfield(md, 'fieldname','calving.min_thickness','>=',0,'NaN',1,'Inf',1,'numel',[1]);54 md = checkfield(md, 'fieldname', 'calving.stress_threshold_groundedice', '>', 0, 'nan', 1, 'Inf', 1) 55 md = checkfield(md, 'fieldname', 'calving.stress_threshold_floatingice', '>', 0, 'nan', 1, 'Inf', 1) 56 md = checkfield(md, 'fieldname', 'calving.min_thickness', '>=', 0, 'NaN', 1, 'Inf', 1, 'numel', [1]) 53 57 54 58 return md 55 59 # }}} 56 def marshall(self,prefix,md,fid): # {{{57 yts=md.constants.yts58 60 59 WriteData(fid,prefix,'name','md.calving.law','data',2,'format','Integer') 60 WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_groundedice','format','DoubleMat','mattype',1) 61 WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_floatingice','format','DoubleMat','mattype',1) 62 WriteData(fid,prefix,'object',self,'fieldname','min_thickness','format','Double'); 61 def marshall(self, prefix, md, fid): # {{{ 62 WriteData(fid, prefix, 'name', 'md.calving.law', 'data', 2, 'format', 'Integer') 63 WriteData(fid, prefix, 'object', self, 'fieldname', 'stress_threshold_groundedice', 'format', 'DoubleMat', 'mattype', 1) 64 WriteData(fid, prefix, 'object', self, 'fieldname', 'stress_threshold_floatingice', 'format', 'DoubleMat', 'mattype', 1) 65 WriteData(fid, prefix, 'object', self, 'fieldname', 'min_thickness', 'format', 'Double') 63 66 # }}} -
issm/trunk-jpl/src/m/classes/clusters/cyclone.py
r23716 r24213 5 5 from issmscpin import issmscpin 6 6 from issmscpout import issmscpout 7 from QueueRequirements import QueueRequirements8 import datetime9 7 try: 10 8 from cyclone_settings import cyclone_settings 11 9 except ImportError: 12 print('You need cyclone_settings.py to proceed, check presence and sys.path') 13 10 print('You need cyclone_settings.py to proceed, check presence and sys.path') 11 12 14 13 class cyclone(object): 15 """ 16 Be aware that this is not a cluster as we usually know them. There is no scheduling and ressources are pretty low. 17 The Computer have 20 cpus and 512Gb of memory used by a number of person so be respectful with your usage. 18 I putted some restrictive upper limits to avoid over-use. (Basile) 19 20 Usage: 21 cluster=cyclone(); 22 """ 14 """ 15 Be aware that this is not a cluster as we usually know them. There is no scheduling and ressources are pretty low. 16 The Computer have 20 cpus and 512Gb of memory used by a number of person so be respectful with your usage. 17 I putted some restrictive upper limits to avoid over - use. (Basile) 23 18 24 def __init__(self,*args): 25 # {{{ 26 self.name = 'cyclone' 27 self.login = '' 28 self.np = 2 29 self.time = 100 30 self.codepath = '' 31 self.executionpath = '' 32 self.port = '' 33 self.interactive = 0 19 Usage: 20 cluster = cyclone() 21 """ 34 22 35 #use provided options to change fields 36 options=pairoptions(*args) 23 def __init__(self, *args): # {{{ 24 self.name = 'cyclone' 25 self.login = '' 26 self.np = 2 27 self.time = 100 28 self.codepath = '' 29 self.executionpath = '' 30 self.port = '' 31 self.interactive = 0 37 32 38 #initialize cluster using user settings if provided 39 self=cyclone_settings(self) 40 #OK get other fields 41 self=options.AssignObjectFields(self) 42 43 # }}} 33 #use provided options to change fields 34 options = pairoptions(*args) 44 35 45 def __repr__(self): 46 # {{{ 47 # display the object 48 s = "class cyclone object:" 49 s = "%s\n%s"%(s,fielddisplay(self,'name','name of the cluster')) 50 s = "%s\n%s"%(s,fielddisplay(self,'login','login')) 51 s = "%s\n%s"%(s,fielddisplay(self,'np','number of processes')) 52 s = "%s\n%s"%(s,fielddisplay(self,'time','walltime requested in minutes')) 53 s = "%s\n%s"%(s,fielddisplay(self,'codepath','code path on the cluster')) 54 s = "%s\n%s"%(s,fielddisplay(self,'executionpath','execution path on the cluster')) 55 return s 56 # }}} 36 #initialize cluster using user settings if provided 37 self = cyclone_settings(self) 38 #OK get other fields 39 self = options.AssignObjectFields(self) 57 40 58 def checkconsistency(self,md,solution,analyses): 59 # {{{ 60 #Miscelaneous 61 if not self.login: 62 md = md.checkmessage('login empty') 63 if not self.codepath: 64 md = md.checkmessage('codepath empty') 65 if not self.executionpath: 66 md = md.checkmessage('executionpath empty') 67 if self.time>72: 68 md = md.checkmessage('walltime exceeds 72h for niceness this is not allowed, if you need more time consider shifting to one of the Notur systems') 69 if self.np >10: 70 md = md.checkmessage('number of process excess 10, if you need more processing power consider shifting to one of the Notur systems') 41 # }}} 71 42 72 return self 73 # }}} 74 def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling): 75 # {{{ 43 def __repr__(self): # {{{ 44 # display the object 45 s = "class cyclone object:" 46 s = "%s\n%s" % (s, fielddisplay(self, 'name', 'name of the cluster')) 47 s = "%s\n%s" % (s, fielddisplay(self, 'login', 'login')) 48 s = "%s\n%s" % (s, fielddisplay(self, 'np', 'number of processes')) 49 s = "%s\n%s" % (s, fielddisplay(self, 'time', 'walltime requested in minutes')) 50 s = "%s\n%s" % (s, fielddisplay(self, 'codepath', 'code path on the cluster')) 51 s = "%s\n%s" % (s, fielddisplay(self, 'executionpath', 'execution path on the cluster')) 52 return s 53 # }}} 76 54 77 executable='issm.exe' 78 79 #write queuing script 80 shortname=modelname[0:min(12,len(modelname))] 81 fid=open(modelname+'.queue','w') 82 fid.write('export ISSM_DIR="%s/../"\n' % self.codepath) 83 fid.write('source $ISSM_DIR/etc/environment.sh\n') 84 fid.write('INTELLIBS="/opt/intel/intelcompiler-12.04/composerxe-2011.4.191/compiler/lib/intel64"\n') 85 fid.write('export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/:$INTELLIBS\n') 86 fid.write('export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/x86_64-linux-gnu/c++/4.8\n') 87 fid.write('cd %s/%s/\n\n' % (self.executionpath,dirname)) 88 rundir=self.executionpath+'/'+dirname 89 runfile=self.executionpath+'/'+dirname+'/'+modelname 90 fid.write('mpiexec -np %i %s/%s %s %s %s >%s.outlog 2>%s.errlog\n' % (self.np,self.codepath,executable,str(solution),rundir,modelname,runfile,runfile)) 91 fid.close() 55 def checkconsistency(self, md, solution, analyses): # {{{ 56 #Miscelaneous 57 if not self.login: 58 md = md.checkmessage('login empty') 59 if not self.codepath: 60 md = md.checkmessage('codepath empty') 61 if not self.executionpath: 62 md = md.checkmessage('executionpath empty') 63 if self.time > 72: 64 md = md.checkmessage('walltime exceeds 72h for niceness this is not allowed, if you need more time consider shifting to one of the Notur systems') 65 if self.np > 10: 66 md = md.checkmessage('number of process excess 10, if you need more processing power consider shifting to one of the Notur systems') 92 67 93 # }}} 94 def UploadQueueJob(self,modelname,dirname,filelist): 95 # {{{ 68 return self 69 # }}} 96 70 97 #compress the files into one zip. 98 compressstring='tar -zcf %s.tar.gz ' % dirname 99 for file in filelist: 100 compressstring += ' %s' % file 101 subprocess.call(compressstring,shell=True) 71 def BuildQueueScript(self, dirname, modelname, solution, io_gather, isvalgrind, isgprof, isdakota, isoceancoupling): # {{{ 72 executable = 'issm.exe' 73 #write queuing script 74 fid = open(modelname + '.queue', 'w') 75 fid.write('export ISSM_DIR = "%s/../ "\n' % self.codepath) 76 fid.write('source $ISSM_DIR/etc/environment.sh\n') 77 fid.write('INTELLIBS = "/opt/intel/intelcompiler-12.04/composerxe-2011.4.191/compiler/lib/intel64"\n') 78 fid.write('export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/:$INTELLIBS\n') 79 fid.write('export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/x86_64-linux-gnu/c++/4.8\n') 80 fid.write('cd %s/%s/ \n\n' % (self.executionpath, dirname)) 81 rundir = self.executionpath + '/' + dirname 82 runfile = self.executionpath + '/' + dirname + '/' + modelname 83 fid.write('mpiexec -np %i %s/%s %s %s %s>%s.outlog 2>%s.errlog\n' % (self.np, self.codepath, executable, str(solution), rundir, modelname, runfile, runfile)) 84 fid.close() 102 85 103 print('uploading input file and queueing script') 104 issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz']) 86 # }}} 87 def UploadQueueJob(self, modelname, dirname, filelist): # {{{ 88 #compress the files into one zip. 89 compressstring = 'tar -zcf %s.tar.gz ' % dirname 90 for file in filelist: 91 compressstring += ' %s' % file 92 subprocess.call(compressstring, shell=True) 105 93 106 # }}} 107 def LaunchQueueJob(self,modelname,dirname,filelist,restart,batch): 108 # {{{ 94 print('uploading input file and queueing script') 95 issmscpout(self.name, self.executionpath, self.login, self.port, [dirname + '.tar.gz']) 109 96 110 print('launching solution sequence on remote cluster') 111 if restart: 112 launchcommand='cd %s && cd %s && qsub %s.queue' % (self.executionpath,dirname,modelname) 113 else: 114 launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && chmod +x ./%s.queue && ./%s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname,modelname) 115 issmssh(self.name,self.login,self.port,launchcommand) 97 # }}} 98 def LaunchQueueJob(self, modelname, dirname, filelist, restart, batch): # {{{ 99 print('launching solution sequence on remote cluster') 100 if restart: 101 launchcommand = 'cd %s && cd %s && qsub %s.queue' % (self.executionpath, dirname, modelname) 102 else: 103 launchcommand = 'cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && chmod +x ./%s.queue && ./%s.queue' % (self.executionpath, dirname, dirname, dirname, dirname, dirname, modelname, modelname) 104 issmssh(self.name, self.login, self.port, launchcommand) 116 105 117 # }}} 118 def Download(self,dirname,filelist): 119 # {{{ 120 121 #copy files from cluster to current directory 122 directory='%s/%s/' % (self.executionpath,dirname) 123 issmscpin(self.name,self.login,self.port,directory,filelist) 124 # }}} 106 # }}} 107 def Download(self, dirname, filelist): # {{{ 108 #copy files from cluster to current directory 109 directory = '%s/%s/' % (self.executionpath, dirname) 110 issmscpin(self.name, self.login, self.port, directory, filelist) 111 # }}} -
issm/trunk-jpl/src/m/classes/clusters/fram.py
r23716 r24213 7 7 from issmscpout import issmscpout 8 8 from QueueRequirements import QueueRequirements 9 import datetime 9 from IssmConfig import IssmConfig 10 10 try: 11 11 from fram_settings import fram_settings 12 12 except ImportError: 13 print('You need fram_settings.py to proceed, check presence and sys.path') 14 13 print('You need fram_settings.py to proceed, check presence and sys.path') 14 15 15 16 class fram(object): 16 17 18 19 20 -Devel queue starts at 1999021 -Normal starts at 1994022 -Normal unpri atarts at 1940017 """ 18 Fram cluster class definition 19 This is a SLURM queue 20 The priorities are based on a point system, reservation when reaching 20000 and earning 1 point per min. 21 - Devel queue starts at 19990 22 - Normal starts at 19940 23 - Normal unpri atarts at 19400 23 24 24 25 -normal (4 to 30 nodes, more if asked, 48h max walltime, 60Gb per nodes)26 -bigmem for big memory nodes (8 512Gb nodes and 2 6Tb nodes, shared nodes, 14days max walltime25 Jobs can be: 26 - normal (4 to 30 nodes, more if asked, 48h max walltime, 60Gb per nodes) 27 - bigmem for big memory nodes (8 512Gb nodes and 2 6Tb nodes, shared nodes, 14days max walltime 27 28 28 29 cluster=stallo(); 30 29 Usage: 30 cluster = stallo() 31 """ 31 32 32 def __init__(self,*args): 33 # {{{ 34 self.name = 'fram' 35 self.login = '' 36 self.numnodes = 2 37 self.cpuspernode = 20 38 self.mem = 1.6 39 self.queue = 'normal' 40 self.time = 2*60 41 self.codepath = '' 42 self.executionpath = '' 43 self.interactive = 0 44 self.port = [] 45 self.accountname = '' 46 self.profiling = 0 47 #use provided options to change fields 48 options=pairoptions(*args) 33 def __init__(self, *args): # {{{ 34 self.name = 'fram' 35 self.login = '' 36 self.numnodes = 2 37 self.cpuspernode = 20 38 self.mem = 1.6 39 self.queue = 'normal' 40 self.time = 2 * 60 41 self.codepath = '' 42 self.executionpath = '' 43 self.interactive = 0 44 self.port = [] 45 self.accountname = '' 46 self.profiling = 0 47 #use provided options to change fields 48 options = pairoptions(*args) 49 49 50 #initialize cluster using user settings if provided 51 self=stallo_settings(self) 52 #OK get other fields 53 self=options.AssignObjectFields(self) 54 self.np=self.numnodes*self.cpuspernode 55 # }}} 56 57 def __repr__(self): 58 # {{{ 59 # display the object 60 s = "class vilje object:" 61 s = "%s\n%s"%(s,fielddisplay(self,'name','name of the cluster')) 62 s = "%s\n%s"%(s,fielddisplay(self,'login','login')) 63 s = "%s\n%s"%(s,fielddisplay(self,'numnodes','number of nodes')) 64 s = "%s\n%s"%(s,fielddisplay(self,'cpuspernode','number of nodes per CPUs')) 65 s = "%s\n%s"%(s,fielddisplay(self,'mem','memory per CPU')) 66 s = "%s\n%s"%(s,fielddisplay(self,'queue','name of the queue (normal (D), short,singlenode,multinode,devel)')) 67 s = "%s\n%s"%(s,fielddisplay(self,'time','walltime requested in minutes')) 68 s = "%s\n%s"%(s,fielddisplay(self,'codepath','code path on the cluster')) 69 s = "%s\n%s"%(s,fielddisplay(self,'executionpath','execution path on the cluster')) 70 s = "%s\n%s"%(s,fielddisplay(self,'interactive','')) 71 s = "%s\n%s"%(s,fielddisplay(self,'accountname','your cluster account')) 72 s = "%s\n%s"%(s,fielddisplay(self,'profiling','enable profiling if 1 default is 0')) 73 return s 74 # }}} 75 def checkconsistency(self,md,solution,analyses): 76 # {{{ 77 #Queue dictionarry gives queue name as key and max walltime and cpus as var 78 queuedict = {'normal':[2*24*60,2048], 79 'devel':[4*60,2048]} 80 QueueRequirements(queuedict,self.queue,self.np,self.time) 50 #initialize cluster using user settings if provided 51 self = fram_settings(self) 52 #OK get other fields 53 self = options.AssignObjectFields(self) 54 self.np = self.numnodes * self.cpuspernode 55 # }}} 81 56 82 #Miscelaneous 83 if not self.login: 84 md = md.checkmessage('login empty') 85 if not self.codepath: 86 md = md.checkmessage('codepath empty') 87 if not self.executionpath: 88 md = md.checkmessage('executionpath empty') 89 if self.interactive==1: 90 md = md.checkmessage('interactive mode not implemented') 91 return self 92 # }}} 93 def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling): 94 # {{{ 57 def __repr__(self): # {{{ 58 # display the object 59 s = "class vilje object:" 60 s = "%s\n%s" % (s, fielddisplay(self, 'name', 'name of the cluster')) 61 s = "%s\n%s" % (s, fielddisplay(self, 'login', 'login')) 62 s = "%s\n%s" % (s, fielddisplay(self, 'numnodes', 'number of nodes')) 63 s = "%s\n%s" % (s, fielddisplay(self, 'cpuspernode', 'number of nodes per CPUs')) 64 s = "%s\n%s" % (s, fielddisplay(self, 'mem', 'memory per CPU')) 65 s = "%s\n%s" % (s, fielddisplay(self, 'queue', 'name of the queue (normal (D), short, singlenode, multinode, devel)')) 66 s = "%s\n%s" % (s, fielddisplay(self, 'time', 'walltime requested in minutes')) 67 s = "%s\n%s" % (s, fielddisplay(self, 'codepath', 'code path on the cluster')) 68 s = "%s\n%s" % (s, fielddisplay(self, 'executionpath', 'execution path on the cluster')) 69 s = "%s\n%s" % (s, fielddisplay(self, 'interactive', '')) 70 s = "%s\n%s" % (s, fielddisplay(self, 'accountname', 'your cluster account')) 71 s = "%s\n%s" % (s, fielddisplay(self, 'profiling', 'enable profiling if 1 default is 0')) 72 return s 73 # }}} 95 74 96 executable='issm.exe' 97 if isdakota: 98 version=IssmConfig('_DAKOTA_VERSION_')[0:2] 99 version=float(version) 100 if version>=6: 101 executable='issm_dakota.exe' 102 if isoceancoupling: 103 executable='issm_ocean.exe' 104 #write queuing script 105 shortname=modelname[0:min(12,len(modelname))] 106 fid=open(modelname+'.queue','w') 107 108 fid.write('#!/bin/bash -l\n') 109 fid.write('#SBATCH --job-name=%s \n' % shortname) 110 fid.write('#SBATCH --partition %s \n' % self.queue) 111 fid.write('#SBATCH --nodes=%i' % self.numnodes) 112 fid.write('#SBATCH --ntasks-per-nodes==%i \n' % self.cpuspernode) 113 fid.write('#SBATCH --time=%s\n' % self.time) #walltime is minutes 114 fid.write('#SBATCH --mem-per-cpu=%iGB\n' % self.mem)# mem is in GB 115 if (np.mod(self.np,16)+np.mod(self.np,20))==0: 116 fid.write('#SBATCH --ntask=%i\n' % self.np) 117 fid.write('#SBATCH --account=%s\n' % self.accountname) 118 fid.write('#SBATCH --output %s/%s/%s.outlog \n' % (self.executionpath,dirname,modelname)) 119 fid.write('#SBATCH --error %s/%s/%s.errlog \n\n' % (self.executionpath,dirname,modelname)) 75 def checkconsistency(self, md, solution, analyses): # {{{ 76 #Queue dictionarry gives queue name as key and max walltime and cpus as var 77 queuedict = {'normal': [2 * 24 * 60, 2048], 78 'devel': [4 * 60, 2048]} 79 QueueRequirements(queuedict, self.queue, self.np, self.time) 120 80 121 fid.write('export ISSM_DIR="%s/../"\n' % self.codepath) 122 fid.write('module restore system\n') 123 fid.write('module load load Automake/1.15.1-GCCcore-6.3.0\n') 124 fid.write('module load libtool/2.4.6-GCCcore-6.3.0\n') 125 fid.write('module load CMake/3.9.1\n') 126 fid.write('module load PETSc/3.8.0-intel-2017a-Python-2.7.13\n') 127 fid.write('module load ParMETIS/4.0.3-intel-2017a\n') 128 fid.write('cd %s/%s/\n\n' % (self.executionpath,dirname)) 129 if self.profiling==1: 130 fid.write('module load perf-report\n') 131 fid.write('perf-report mpirun -np %i %s/%s %s %s/%s %s\n' % (self.np,self.codepath,executable,str(solution),self.executionpath,dirname,modelname)) 132 else: 133 fid.write('mpirun -np %i %s/%s %s %s/%s %s\n' % (self.np,self.codepath,executable,str(solution),self.executionpath,dirname,modelname)) 134 fid.close() 81 #Miscelaneous 82 if not self.login: 83 md = md.checkmessage('login empty') 84 if not self.codepath: 85 md = md.checkmessage('codepath empty') 86 if not self.executionpath: 87 md = md.checkmessage('executionpath empty') 88 if self.interactive == 1: 89 md = md.checkmessage('interactive mode not implemented') 90 return self 91 # }}} 135 92 136 # }}} 137 def UploadQueueJob(self,modelname,dirname,filelist): 138 # {{{ 139 #compress the files into one zip. 140 compressstring='tar -zcf %s.tar.gz ' % dirname 141 for file in filelist: 142 compressstring += ' %s' % file 143 subprocess.call(compressstring,shell=True) 93 def BuildQueueScript(self, dirname, modelname, solution, io_gather, isvalgrind, isgprof, isdakota, isoceancoupling): # {{{ 94 executable = 'issm.exe' 95 if isdakota: 96 version = IssmConfig('_DAKOTA_VERSION_')[0:2] 97 version = float(version) 98 if version >= 6: 99 executable = 'issm_dakota.exe' 100 if isoceancoupling: 101 executable = 'issm_ocean.exe' 102 #write queuing script 103 shortname = modelname[0:min(12, len(modelname))] 104 fid = open(modelname + '.queue', 'w') 144 105 145 print('uploading input file and queueing script') 146 issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz']) 106 fid.write('#!/bin/bash -l\n') 107 fid.write('#SBATCH --job-name=%s \n' % shortname) 108 fid.write('#SBATCH --partition %s \n' % self.queue) 109 fid.write('#SBATCH --nodes=%i' % self.numnodes) 110 fid.write('#SBATCH --ntasks-per-nodes==%i \n' % self.cpuspernode) 111 fid.write('#SBATCH --time=%s\n' % self.time) #walltime is minutes 112 fid.write('#SBATCH --mem-per-cpu=%iGB\n' % self.mem) # mem is in GB 113 if (np.mod(self.np, 16) + np.mod(self.np, 20)) == 0: 114 fid.write('#SBATCH --ntask=%i\n' % self.np) 115 fid.write('#SBATCH --account=%s\n' % self.accountname) 116 fid.write('#SBATCH --output %s/%s /%s.outlog \n' % (self.executionpath, dirname, modelname)) 117 fid.write('#SBATCH --error %s/%s /%s.errlog \n\n' % (self.executionpath, dirname, modelname)) 147 118 148 # }}} 149 def LaunchQueueJob(self,modelname,dirname,filelist,restart,batch): 150 # {{{ 119 fid.write('export ISSM_DIR="%s/../ "\n' % self.codepath) 120 fid.write('module restore system\n') 121 fid.write('module load load Automake/1.15.1-GCCcore-6.3.0\n') 122 fid.write('module load libtool/2.4.6-GCCcore-6.3.0\n') 123 fid.write('module load CMake/3.9.1\n') 124 fid.write('module load PETSc/3.8.0-intel-2017a-Python-2.7.13\n') 125 fid.write('module load ParMETIS/4.0.3-intel-2017a\n') 126 fid.write('cd %s/%s/ \n\n' % (self.executionpath, dirname)) 127 if self.profiling == 1: 128 fid.write('module load perf-report\n') 129 fid.write('perf-report mpirun -np %i %s/%s %s %s/%s %s\n' % (self.np, self.codepath, executable, str(solution), self.executionpath, dirname, modelname)) 130 else: 131 fid.write('mpirun -np %i %s/%s %s %s/%s %s\n' % (self.np, self.codepath, executable, str(solution), self.executionpath, dirname, modelname)) 132 fid.close() 151 133 152 print('launching solution sequence on remote cluster') 153 if restart: 154 launchcommand='cd %s && cd %s && sbatch %s.queue' % (self.executionpath,dirname,modelname) 155 else: 156 launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && sbatch %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname) 157 issmssh(self.name,self.login,self.port,launchcommand) 134 # }}} 158 135 159 # }}} 160 def Download(self,dirname,filelist): 161 # {{{ 136 def UploadQueueJob(self, modelname, dirname, filelist): # {{{ 137 #compress the files into one zip. 138 compressstring = 'tar -zcf %s.tar.gz ' % dirname 139 for file in filelist: 140 compressstring += ' %s' % file 141 subprocess.call(compressstring, shell=True) 162 142 163 #copy files from cluster to current directory 164 directory='%s/%s/' % (self.executionpath,dirname) 165 issmscpin(self.name,self.login,self.port,directory,filelist) 166 # }}} 143 print('uploading input file and queueing script') 144 issmscpout(self.name, self.executionpath, self.login, self.port, [dirname + '.tar.gz']) 145 146 # }}} 147 def LaunchQueueJob(self, modelname, dirname, filelist, restart, batch): # {{{ 148 print('launching solution sequence on remote cluster') 149 if restart: 150 launchcommand = 'cd %s && cd %s && sbatch %s.queue' % (self.executionpath, dirname, modelname) 151 else: 152 launchcommand = 'cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && sbatch %s.queue' % (self.executionpath, dirname, dirname, dirname, dirname, dirname, modelname) 153 issmssh(self.name, self.login, self.port, launchcommand) 154 155 # }}} 156 def Download(self, dirname, filelist): # {{{ 157 #copy files from cluster to current directory 158 directory = '%s/%s/' % (self.executionpath, dirname) 159 issmscpin(self.name, self.login, self.port, directory, filelist) 160 # }}} -
issm/trunk-jpl/src/m/classes/clusters/generic.py
r24115 r24213 11 11 import MatlabFuncs as m 12 12 13 13 14 class generic(object): 14 15 """ … … 16 17 17 18 Usage: 18 cluster =generic('name','astrid','np',3);19 cluster =generic('name',gethostname(),'np',3,'login','username');19 cluster = generic('name', 'astrid', 'np', 3) 20 cluster = generic('name', gethostname(), 'np', 3, 'login', 'username') 20 21 """ 21 22 22 def __init__(self,*args): # {{{ 23 24 self.name='' 25 self.login='' 26 self.np=1 27 self.port=0 28 self.interactive=1 29 self.codepath=IssmConfig('ISSM_PREFIX')[0]+'/bin' 30 self.executionpath=issmdir()+'/execution' 31 self.valgrind=issmdir()+'/externalpackages/valgrind/install/bin/valgrind' 32 self.valgrindlib=issmdir()+'/externalpackages/valgrind/install/lib/libmpidebug.so' 33 self.valgrindsup=issmdir()+'/externalpackages/valgrind/issm.supp' 34 35 #use provided options to change fields 36 options=pairoptions(*args) 37 38 #get name 39 self.name=socket.gethostname() 40 41 #initialize cluster using user settings if provided 42 if os.path.exists(self.name+'_settings.py'): 43 exec(compile(open(self.name+'_settings.py').read(), self.name+'_settings.py', 'exec'),globals()) 44 45 #OK get other fields 46 self=options.AssignObjectFields(self) 47 # }}} 48 def __repr__(self): # {{{ 49 # display the object 50 s ="class '%s' object '%s' = \n" % (type(self),'self') 51 s+=" name: %s\n" % self.name 52 s+=" login: %s\n" % self.login 53 s+=" np: %i\n" % self.np 54 s+=" port: %i\n" % self.port 55 s+=" codepath: %s\n" % self.codepath 56 s+=" executionpath: %s\n" % self.executionpath 57 s+=" valgrind: %s\n" % self.valgrind 58 s+=" valgrindlib: %s\n" % self.valgrindlib 59 s+=" valgrindsup: %s\n" % self.valgrindsup 60 return s 61 # }}} 62 def checkconsistency(self,md,solution,analyses): # {{{ 63 if self.np<1: 64 md = checkmessage(md,'number of processors should be at least 1') 65 if math.isnan(self.np): 66 md = checkmessage(md,'number of processors should not be NaN!') 67 68 return md 69 # }}} 70 def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling): # {{{ 71 72 executable='issm.exe'; 73 if isdakota: 74 version=IssmConfig('_DAKOTA_VERSION_') 75 version=float(version[0]) 76 if version>=6: 77 executable='issm_dakota.exe' 78 if isoceancoupling: 79 executable='issm_ocean.exe' 80 81 #write queuing script 82 if not m.ispc(): 83 84 fid=open(modelname+'.queue','w') 85 fid.write('#!/bin/sh\n') 86 if not isvalgrind: 87 if self.interactive: 88 if IssmConfig('_HAVE_MPI_')[0]: 89 fid.write('mpiexec -np %i %s/%s %s %s/%s %s ' % (self.np,self.codepath,executable,solution,self.executionpath,dirname,modelname)) 90 else: 91 fid.write('%s/%s %s %s/%s %s ' % (self.codepath,executable,solution,self.executionpath,dirname,modelname)) 92 else: 93 if IssmConfig('_HAVE_MPI_')[0]: 94 fid.write('mpiexec -np %i %s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % (self.np,self.codepath,executable,solution,self.executionpath,dirname,modelname,modelname,modelname)) 95 else: 96 fid.write('%s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % (self.codepath,executable,solution,self.executionpath,dirname,modelname,modelname,modelname)) 97 elif isgprof: 98 fid.write('\n gprof %s/%s gmon.out > %s.performance' % (self.codepath,executable,modelname)) 23 def __init__(self, *args): # {{{ 24 25 self.name = '' 26 self.login = '' 27 self.np = 1 28 self.port = 0 29 self.interactive = 1 30 self.codepath = IssmConfig('ISSM_PREFIX')[0] + '/bin' 31 self.executionpath = issmdir() + '/execution' 32 self.valgrind = issmdir() + '/externalpackages/valgrind/install/bin/valgrind' 33 self.valgrindlib = issmdir() + '/externalpackages/valgrind/install/lib/libmpidebug.so' 34 self.valgrindsup = issmdir() + '/externalpackages/valgrind/issm.supp' 35 36 #use provided options to change fields 37 options = pairoptions(*args) 38 39 #get name 40 self.name = socket.gethostname() 41 42 #initialize cluster using user settings if provided 43 if os.path.exists(self.name + '_settings.py'): 44 exec(compile(open(self.name + '_settings.py').read(), self.name + '_settings.py', 'exec'), globals()) 45 46 #OK get other fields 47 self = options.AssignObjectFields(self) 48 # }}} 49 50 def __repr__(self): # {{{ 51 # display the object 52 s = "class '%s' object '%s' = \n" % (type(self), 'self') 53 s += " name: %s\n" % self.name 54 s += " login: %s\n" % self.login 55 s += " np: %i\n" % self.np 56 s += " port: %i\n" % self.port 57 s += " codepath: %s\n" % self.codepath 58 s += " executionpath: %s\n" % self.executionpath 59 s += " valgrind: %s\n" % self.valgrind 60 s += " valgrindlib: %s\n" % self.valgrindlib 61 s += " valgrindsup: %s\n" % self.valgrindsup 62 return s 63 # }}} 64 65 def checkconsistency(self, md, solution, analyses): # {{{ 66 if self.np < 1: 67 md = checkmessage(md, 'number of processors should be at least 1') 68 if math.isnan(self.np): 69 md = checkmessage(md, 'number of processors should not be NaN!') 70 71 return md 72 # }}} 73 def BuildQueueScript(self, dirname, modelname, solution, io_gather, isvalgrind, isgprof, isdakota, isoceancoupling): # {{{ 74 75 executable = 'issm.exe' 76 if isdakota: 77 version = IssmConfig('_DAKOTA_VERSION_') 78 version = float(version[0]) 79 if version >= 6: 80 executable = 'issm_dakota.exe' 81 if isoceancoupling: 82 executable = 'issm_ocean.exe' 83 84 #write queuing script 85 if not m.ispc(): 86 fid = open(modelname + '.queue', 'w') 87 fid.write('#!/bin/sh\n') 88 if not isvalgrind: 89 if self.interactive: 90 if IssmConfig('_HAVE_MPI_')[0]: 91 fid.write('mpiexec -np {} {}/{} {} {}/{} {}'.format(self.np, self.codepath, executable, solution, self.executionpath, dirname, modelname)) 99 92 else: 100 #Add --gen-suppressions=all to get suppression lines 101 fid.write('LD_PRELOAD=%s \\\n' % self.valgrindlib) 102 if IssmConfig('_HAVE_MPI_')[0]: 103 fid.write('mpiexec -np %i %s --leak-check=full --suppressions=%s %s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % \ 104 (self.np,self.valgrind,self.valgrindsup,self.codepath,executable,solution,self.executionpath,dirname,modelname,modelname,modelname)) 105 else: 106 fid.write('%s --leak-check=full --suppressions=%s %s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % \ 107 (self.valgrind,self.valgrindsup,self.codepath,executable,solution,self.executionpath,dirname,modelname,modelname,modelname)) 108 109 if not io_gather: #concatenate the output files: 110 fid.write('\ncat %s.outbin.* > %s.outbin' % (modelname,modelname)) 111 fid.close() 112 113 else: # Windows 114 115 fid=open(modelname+'.bat','w') 116 fid.write('@echo off\n') 117 if self.interactive: 118 fid.write('"%s/%s" %s "%s/%s" %s ' % (self.codepath,executable,solution,self.executionpath,dirname,modelname)) 93 fid.write('{}/{} {} {}/{} {} '.format(self.codepath, executable, solution, self.executionpath, dirname, modelname)) 94 else: 95 if IssmConfig('_HAVE_MPI_')[0]: 96 fid.write('mpiexec -np {} {}/{} {} {}/{} {} 2>{}.errlog>{}.outlog'. 97 format(self.np, self.codepath, executable, solution, self.executionpath, dirname, modelname, modelname, modelname)) 119 98 else: 120 fid.write('"%s/%s" %s "%s/%s" %s 2> %s.errlog >%s.outlog' % \ 121 (self.codepath,executable,solution,self.executionpath,dirname,modelname,modelname,modelname)) 122 fid.close() 99 fid.write('{}/{} {} {}/{} {} 2>{}.errlog>{}.outlog '. 100 format(self.codepath, executable, solution, self.executionpath, dirname, modelname, modelname, modelname)) 101 elif isgprof: 102 fid.write('\n gprof {}/{} gmon.out > {}.performance'.format(self.codepath, executable, modelname)) 103 else: 104 #Add --gen -suppressions = all to get suppression lines 105 fid.write('LD_PRELOAD={} \\\n'.format(self.valgrindlib)) 106 if IssmConfig('_HAVE_MPI_')[0]: 107 fid.write('mpiexec -np {} {} --leak-check=full --suppressions={} {}/{} {} {}/{} {} 2>{}.errlog>{}.outlog '. 108 format(self.np, self.valgrind, self.valgrindsup, self.codepath, executable, solution, self.executionpath, dirname, modelname, modelname, modelname)) 109 else: 110 fid.write('{} --leak-check=full --suppressions={} {}/{} {} {}/{} {} 2>{}.errlog>{}.outlog '. 111 format(self.valgrind, self.valgrindsup, self.codepath, executable, solution, self.executionpath, dirname, modelname, modelname, modelname)) 112 113 if not io_gather: #concatenate the output files: 114 fid.write('\ncat {}.outbin .*>{}.outbin'.format(modelname, modelname)) 115 fid.close() 116 117 else: # Windows 118 119 fid = open(modelname + '.bat', 'w') 120 fid.write('@echo off\n') 121 if self.interactive: 122 fid.write('"{}/{}" {} "{}/{}" {} '.format(self.codepath, executable, solution, self.executionpath, dirname, modelname)) 123 else: 124 fid.write('"{}/{}" {} "{}/{}" {} 2>{}.errlog>{}.outlog'. 125 format(self.codepath, executable, solution, self.executionpath, dirname, modelname, modelname, modelname)) 126 fid.close() 123 127 124 128 #in interactive mode, create a run file, and errlog and outlog file 129 if self.interactive: 130 fid = open(modelname + '.errlog', 'w') 131 fid.close() 132 fid = open(modelname + '.outlog', 'w') 133 fid.close() 134 # }}} 135 136 def BuildKrigingQueueScript(self, modelname, solution, io_gather, isvalgrind, isgprof): # {{{ 137 #write queuing script 138 if not m.ispc(): 139 fid = open(modelname + '.queue', 'w') 140 fid.write('#!/bin/sh\n') 141 if not isvalgrind: 142 if self.interactive: 143 fid.write('mpiexec -np {} {}/kriging.exe {}/{} {} '.format(self.np, self.codepath, self.executionpath, modelname, modelname)) 144 else: 145 fid.write('mpiexec -np {} {}/kriging.exe {}/{} {} 2>{}.errlog>{}.outlog '.format(self.np, self.codepath, self.executionpath, modelname, modelname, modelname, modelname)) 146 elif isgprof: 147 fid.write('\n gprof {}/kriging.exe gmon.out>{}.performance'.format(self.codepath, modelname)) 148 else: 149 #Add - - gen - suppressions = all to get suppression lines 150 #fid.write('LD_PRELOAD={} \\\n'.format(self.valgrindlib)) 151 fid.write('mpiexec - np {} {} --leak -check=full --suppressions={} {}/kriging.exe {}/{} {} 2 > {}.errlog > {}.outlog ' .format 152 (self.np, self.valgrind, self.valgrindsup, self.codepath, self.executionpath, modelname, modelname, modelname, modelname)) 153 if not io_gather: #concatenate the output files: 154 fid.write('\ncat {}.outbin. *>{}.outbin'.format(modelname, modelname)) 155 fid.close() 156 157 else: # Windows 158 159 fid = open(modelname + '.bat', 'w') 160 fid.write('@echo off\n') 125 161 if self.interactive: 126 fid=open(modelname+'.errlog','w') 127 fid.close() 128 fid=open(modelname+'.outlog','w') 129 fid.close() 130 # }}} 131 def BuildKrigingQueueScript(self,modelname,solution,io_gather,isvalgrind,isgprof): # {{{ 132 133 #write queuing script 134 if not m.ispc(): 135 136 fid=open(modelname+'.queue','w') 137 fid.write('#!/bin/sh\n') 138 if not isvalgrind: 139 if self.interactive: 140 fid.write('mpiexec -np %i %s/kriging.exe %s/%s %s ' % (self.np,self.codepath,self.executionpath,modelname,modelname)) 141 else: 142 fid.write('mpiexec -np %i %s/kriging.exe %s/%s %s 2> %s.errlog >%s.outlog ' % (self.np,self.codepath,self.executionpath,modelname,modelname,modelname,modelname)) 143 elif isgprof: 144 fid.write('\n gprof %s/kriging.exe gmon.out > %s.performance' & (self.codepath,modelname)) 145 else: 146 #Add --gen-suppressions=all to get suppression lines 147 fid.write('LD_PRELOAD=%s \\\n' % self.valgrindlib) 148 fid.write('mpiexec -np %i %s --leak-check=full --suppressions=%s %s/kriging.exe %s/%s %s 2> %s.errlog >%s.outlog ' % \ 149 (self.np,self.valgrind,self.valgrindsup,self.codepath,self.executionpath,modelname,modelname,modelname,modelname)) 150 if not io_gather: #concatenate the output files: 151 fid.write('\ncat %s.outbin.* > %s.outbin' % (modelname,modelname)) 152 fid.close() 153 154 else: # Windows 155 156 fid=open(modelname+'.bat','w') 157 fid.write('@echo off\n') 158 if self.interactive: 159 fid.write('"%s/issm.exe" %s "%s/%s" %s ' % (self.codepath,solution,self.executionpath,modelname,modelname)) 160 else: 161 fid.write('"%s/issm.exe" %s "%s/%s" %s 2> %s.errlog >%s.outlog' % \ 162 (self.codepath,solution,self.executionpath,modelname,modelname,modelname,modelname)) 163 fid.close() 164 165 #in interactive mode, create a run file, and errlog and outlog file 166 if self.interactive: 167 fid=open(modelname+'.errlog','w') 168 fid.close() 169 fid=open(modelname+'.outlog','w') 170 fid.close() 171 # }}} 172 def UploadQueueJob(self,modelname,dirname,filelist): # {{{ 173 162 fid.write('"{}/issm.exe" {} "{}/{}" {} '.format(self.codepath, solution, self.executionpath, modelname, modelname)) 163 else: 164 fid.write('"{}/issm.exe" {} "{}/{}" {} 2>{}.errlog>{}.outlog'.format 165 (self.codepath, solution, self.executionpath, modelname, modelname, modelname, modelname)) 166 fid.close() 167 168 #in interactive mode, create a run file, and errlog and outlog file 169 if self.interactive: 170 fid = open(modelname + '.errlog', 'w') 171 fid.close() 172 fid = open(modelname + '.outlog', 'w') 173 fid.close() 174 # }}} 175 176 def UploadQueueJob(self, modelname, dirname, filelist): # {{{ 174 177 #compress the files into one zip. 175 compressstring ='tar -zcf %s.tar.gz ' % dirname178 compressstring = 'tar -zcf {}.tar.gz '.format(dirname) 176 179 for file in filelist: 177 compressstring += ' %s' % file180 compressstring += ' {}'.format(file) 178 181 if self.interactive: 179 compressstring += ' %s.errlog %s.outlog ' % (modelname,modelname)180 subprocess.call(compressstring, shell=True)182 compressstring += ' {}.errlog {}.outlog '.format(modelname, modelname) 183 subprocess.call(compressstring, shell=True) 181 184 182 185 print('uploading input file and queueing script') 183 issmscpout(self.name, self.executionpath,self.login,self.port,[dirname+'.tar.gz'])184 185 # }}} 186 def LaunchQueueJob(self,modelname,dirname,filelist,restart,batch): # {{{ 187 186 issmscpout(self.name, self.executionpath, self.login, self.port, [dirname + '.tar.gz']) 187 188 # }}} 189 190 def LaunchQueueJob(self, modelname, dirname, filelist, restart, batch): # {{{ 188 191 print('launching solution sequence on remote cluster') 189 192 if restart: 190 launchcommand ='cd %s && cd %s chmod 777 %s.queue && ./%s.queue' % (self.executionpath,dirname,modelname,modelname)193 launchcommand = 'cd {} && cd {} chmod 777 {}.queue && ./{}.queue'.format(self.executionpath, dirname, modelname, modelname) 191 194 else: 192 195 if batch: 193 launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz' % \ 194 (self.executionpath,dirname,dirname,dirname,dirname,dirname) 195 else: 196 launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && chmod 777 %s.queue && ./%s.queue' % \ 197 (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname,modelname) 198 issmssh(self.name,self.login,self.port,launchcommand) 199 # }}} 200 def Download(self,dirname,filelist): # {{{ 201 196 launchcommand = 'cd {} && rm -rf ./{} && mkdir {} && cd {} && mv ../{}.tar.gz ./&& tar -zxf {}.tar.gz'.format(self.executionpath, dirname, dirname, dirname, dirname, dirname) 197 else: 198 launchcommand = 'cd {} && rm -rf ./{} && mkdir {} && cd {} && mv ../{}.tar.gz ./&& tar -zxf {}.tar.gz && chmod 777 {}.queue && ./{}.queue'.format(self.executionpath, dirname, dirname, dirname, dirname, dirname, modelname, modelname) 199 issmssh(self.name, self.login, self.port, launchcommand) 200 # }}} 201 202 def Download(self, dirname, filelist): # {{{ 202 203 if m.ispc(): 203 204 #do nothing 204 205 return 205 206 206 #copy files from cluster to current directory 207 directory ='%s/%s/' % (self.executionpath,dirname)208 issmscpin(self.name, self.login,self.port,directory,filelist)209 # }}} 207 directory = '{}/{}/'.format(self.executionpath, dirname) 208 issmscpin(self.name, self.login, self.port, directory, filelist) 209 # }}} -
issm/trunk-jpl/src/m/classes/clusters/hexagon.py
r23716 r24213 5 5 from issmscpin import issmscpin 6 6 from issmscpout import issmscpout 7 from QueueRequirements import QueueRequirements7 from IssmConfig import IssmConfig 8 8 import datetime 9 9 try: 10 10 from hexagon_settings import hexagon_settings 11 11 except ImportError: 12 print('You need hexagon_settings.py to proceed, check presence and sys.path') 12 print('You need hexagon_settings.py to proceed, check presence and sys.path') 13 13 14 14 15 class hexagon(object): 15 16 17 Hexagon have nodes built of 2*16 CPUs. Nodes are dedicated to one job so the best usage is to use 32 procs per nodes (16 per cores) as it is what is billed anyway.18 19 20 cluster=hexagon(); 21 16 """ 17 Hexagon cluster class definition 18 Hexagon have nodes built of 2 * 16 CPUs. Nodes are dedicated to one job so the best usage is to use 32 procs per nodes (16 per cores) as it is what is billed anyway. 19 You can reduce this number if you run out of memory as the total node memory is divided by the number of procs 20 Usage: 21 cluster = hexagon() 22 """ 22 23 23 def __init__(self,*args): 24 # {{{ 25 self.name = 'hexagon' 26 self.login = '' 27 self.numnodes = 2 28 self.procspernodes = 32 29 self.mem = 32000 30 self.queue = 'batch' 31 self.time = 2*60 32 self.codepath = '' 33 self.executionpath = '' 34 self.interactive = 0 35 self.port = [] 36 self.accountname = '' 24 def __init__(self, *args): # {{{ 25 self.name = 'hexagon' 26 self.login = '' 27 self.numnodes = 2 28 self.procspernodes = 32 29 self.mem = 32000 30 self.queue = 'batch' 31 self.time = 2 * 60 32 self.codepath = '' 33 self.executionpath = '' 34 self.interactive = 0 35 self.port = [] 36 self.accountname = '' 37 37 38 39 options=pairoptions(*args)38 #use provided options to change fields 39 options = pairoptions(*args) 40 40 41 42 self=hexagon_settings(self)41 #initialize cluster using user settings if provided 42 self = hexagon_settings(self) 43 43 44 45 self=options.AssignObjectFields(self)46 self.np=self.numnodes*self.procspernodes47 44 #OK get other fields 45 self = options.AssignObjectFields(self) 46 self.np = self.numnodes * self.procspernodes 47 # }}} 48 48 49 def __repr__(self): 50 # {{{ 51 # display the object 52 s = "class hexagon object:" 53 s = "%s\n%s"%(s,fielddisplay(self,'name','name of the cluster')) 54 s = "%s\n%s"%(s,fielddisplay(self,'login','login')) 55 s = "%s\n%s"%(s,fielddisplay(self,'numnodes','number of nodes')) 56 s = "%s\n%s"%(s,fielddisplay(self,'procspernodes','number of mpi procs per nodes default and optimal is 32')) 57 s = "%s\n%s"%(s,fielddisplay(self,'mem','Total node memory')) 58 s = "%s\n%s"%(s,fielddisplay(self,'queue','name of the queue')) 59 s = "%s\n%s"%(s,fielddisplay(self,'time','walltime requested in minutes')) 60 s = "%s\n%s"%(s,fielddisplay(self,'codepath','code path on the cluster')) 61 s = "%s\n%s"%(s,fielddisplay(self,'executionpath','execution path on the cluster')) 62 s = "%s\n%s"%(s,fielddisplay(self,'interactive','')) 63 s = "%s\n%s"%(s,fielddisplay(self,'accountname','your cluster account')) 64 return s 65 # }}} 49 def __repr__(self): # {{{ 50 # display the object 51 s = "class hexagon object:" 52 s = "%s\n%s" % (s, fielddisplay(self, 'name', 'name of the cluster')) 53 s = "%s\n%s" % (s, fielddisplay(self, 'login', 'login')) 54 s = "%s\n%s" % (s, fielddisplay(self, 'numnodes', 'number of nodes')) 55 s = "%s\n%s" % (s, fielddisplay(self, 'procspernodes', 'number of mpi procs per nodes default and optimal is 32')) 56 s = "%s\n%s" % (s, fielddisplay(self, 'mem', 'Total node memory')) 57 s = "%s\n%s" % (s, fielddisplay(self, 'queue', 'name of the queue')) 58 s = "%s\n%s" % (s, fielddisplay(self, 'time', 'walltime requested in minutes')) 59 s = "%s\n%s" % (s, fielddisplay(self, 'codepath', 'code path on the cluster')) 60 s = "%s\n%s" % (s, fielddisplay(self, 'executionpath', 'execution path on the cluster')) 61 s = "%s\n%s" % (s, fielddisplay(self, 'interactive', '')) 62 s = "%s\n%s" % (s, fielddisplay(self, 'accountname', 'your cluster account')) 63 return s 64 # }}} 66 65 67 def checkconsistency(self,md,solution,analyses): 68 # {{{ 69 #mem should not be over 32000mb 70 #numprocs should not be over 4096 71 #we have cpupernodes*numberofcpus=mppwidth and mppnppn=cpupernodes, 72 #Miscelaneous 73 if not self.login: 74 md = md.checkmessage('login empty') 75 if not self.codepath: 76 md = md.checkmessage('codepath empty') 77 if not self.executionpath: 78 md = md.checkmessage('executionpath empty') 79 if self.interactive==1: 80 md = md.checkmessage('interactive mode not implemented') 81 if self.mem>32000: 82 md = md.checkmessage('asking too much memory max is 32000 per node') 83 return self 84 # }}} 66 def checkconsistency(self, md, solution, analyses): # {{{ 67 #mem should not be over 32000mb 68 #numprocs should not be over 4096 69 #we have cpupernodes * numberofcpus = mppwidth and mppnppn = cpupernodes, 70 #Miscelaneous 71 if not self.login: 72 md = md.checkmessage('login empty') 73 if not self.codepath: 74 md = md.checkmessage('codepath empty') 75 if not self.executionpath: 76 md = md.checkmessage('executionpath empty') 77 if self.interactive == 1: 78 md = md.checkmessage('interactive mode not implemented') 79 if self.mem > 32000: 80 md = md.checkmessage('asking too much memory max is 32000 per node') 81 return self 82 # }}} 85 83 86 def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling): 87 # {{{ 88 executable='issm.exe' 89 if isdakota: 90 version=IssmConfig('_DAKOTA_VERSION_')[0:2] 91 version=float(version) 92 if version>=6: 93 executable='issm_dakota.exe' 94 if isoceancoupling: 95 executable='issm_ocean.exe' 84 def BuildQueueScript(self, dirname, modelname, solution, io_gather, isvalgrind, isgprof, isdakota, isoceancoupling): # {{{ 85 executable = 'issm.exe' 86 if isdakota: 87 version = IssmConfig('_DAKOTA_VERSION_')[0:2] 88 version = float(version) 89 if version >= 6: 90 executable = 'issm_dakota.exe' 91 if isoceancoupling: 92 executable = 'issm_ocean.exe' 96 93 97 98 shortname=modelname[0:min(12,len(modelname))]99 fid=open(modelname+'.queue','w')100 fid.write('#!/bin/bash\n')101 fid.write('#PBS -N %s \n' % shortname)102 fid.write('#PBS -l mppwidth=%i,mppnppn=%i\n' % (self.np,self.procspernodes))103 timeobj=datetime.timedelta(minutes=self.time)104 m,s=divmod(timeobj.total_seconds(), 60)105 h,m=divmod(m, 60)106 timestring="%02d:%02d:%02d" % (h, m, s)107 fid.write('#PBS -l walltime=%s\n' % timestring)#walltime is hh:mm:ss108 fid.write('#PBS -l mppmem=%imb\n' % int(self.mem/self.procspernodes))109 110 fid.write('#PBS -o %s/%s/%s.outlog \n' % (self.executionpath,dirname,modelname))111 fid.write('#PBS -e %s/%s/%s.errlog \n\n' % (self.executionpath,dirname,modelname))112 fid.write('export ISSM_DIR="%s/../"\n' % self.codepath)113 fid.write('export CRAY_ROOTFS=DSL\n')114 fid.write('module swap PrgEnv-cray/5.2.40 PrgEnv-gnu\n')115 116 117 118 119 fid.write('cd %s/%s/\n\n' % (self.executionpath,dirname))120 fid.write('aprun -B %s/%s %s %s/%s %s\n' % (self.codepath,executable,str(solution),self.executionpath,dirname,modelname))121 122 94 #write queuing script 95 shortname = modelname[0:min(12, len(modelname))] 96 fid = open(modelname + '.queue', 'w') 97 fid.write(' #!/bin/bash\n') 98 fid.write(' #PBS - N %s \n' % shortname) 99 fid.write(' #PBS - l mppwidth=%i, mppnppn=%i\n' % (self.np, self.procspernodes)) 100 timeobj = datetime.timedelta(minutes=self.time) 101 m, s = divmod(timeobj.total_seconds(), 60) 102 h, m = divmod(m, 60) 103 timestring = "%02d:%02d:%02d" % (h, m, s) 104 fid.write('#PBS -l walltime=%s\n' % timestring) #walltime is hh:mm:ss 105 fid.write('#PBS -l mppmem=%imb\n' % int(self.mem / self.procspernodes)) 106 fid.write('#PBS -A %s\n' % self.accountname) 107 fid.write('#PBS -o %s/%s/%s.outlog \n' % (self.executionpath, dirname, modelname)) 108 fid.write('#PBS -e %s/%s/%s.errlog \n\n' % (self.executionpath, dirname, modelname)) 109 fid.write('export ISSM_DIR = "%s/../"\n' % self.codepath) 110 fid.write('export CRAY_ROOTFS = DSL\n') 111 fid.write('module swap PrgEnv-cray / 5.2.40 PrgEnv - gnu\n') 112 fid.write('module load cray-petsc\n') 113 fid.write('module load cray-tpsl\n') 114 fid.write('module load cray-mpich\n') 115 fid.write('module load gsl\n') 116 fid.write('cd %s/%s/\n\n' % (self.executionpath, dirname)) 117 fid.write('aprun -B %s/%s %s %s/%s %s\n' % (self.codepath, executable, str(solution), self.executionpath, dirname, modelname)) 118 fid.close() 119 # }}} 123 120 124 def UploadQueueJob(self,modelname,dirname,filelist): 125 # {{{ 126 #compress the files into one zip. 127 compressstring='tar -zcf %s.tar.gz ' % dirname 128 for file in filelist: 129 compressstring += ' %s' % file 130 subprocess.call(compressstring,shell=True) 121 def UploadQueueJob(self, modelname, dirname, filelist): # {{{ 122 #compress the files into one zip. 123 compressstring = 'tar -zcf %s.tar.gz ' % dirname 124 for file in filelist: 125 compressstring += ' %s' % file 126 subprocess.call(compressstring, shell=True) 131 127 132 133 issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])134 128 print('uploading input file and queueing script') 129 issmscpout(self.name, self.executionpath, self.login, self.port, [dirname + '.tar.gz']) 130 # }}} 135 131 136 def LaunchQueueJob(self,modelname,dirname,filelist,restart,batch): 137 # {{{ 138 print('launching solution sequence on remote cluster') 139 if restart: 140 launchcommand='cd %s && cd %s && qsub %s.queue' % (self.executionpath,dirname,modelname) 141 else: 142 launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && qsub %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname) 143 issmssh(self.name,self.login,self.port,launchcommand) 144 # }}} 132 def LaunchQueueJob(self, modelname, dirname, filelist, restart, batch): # {{{ 133 print('launching solution sequence on remote cluster') 134 if restart: 135 launchcommand = 'cd %s && cd %s && qsub %s.queue' % (self.executionpath, dirname, modelname) 136 else: 137 launchcommand = 'cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && qsub %s.queue' % (self.executionpath, dirname, dirname, dirname, dirname, dirname, modelname) 138 issmssh(self.name, self.login, self.port, launchcommand) 139 # }}} 145 140 146 def Download(self,dirname,filelist): 147 # {{{ 148 #copy files from cluster to current directory 149 directory='%s/%s/' % (self.executionpath,dirname) 150 issmscpin(self.name,self.login,self.port,directory,filelist) 151 # }}} 141 def Download(self, dirname, filelist): # {{{ 142 #copy files from cluster to current directory 143 directory = '%s/%s/' % (self.executionpath, dirname) 144 issmscpin(self.name, self.login, self.port, directory, filelist) 145 # }}} -
issm/trunk-jpl/src/m/classes/clusters/pfe.py
r23716 r24213 1 # import socket2 # import os3 # import math4 1 import subprocess 5 2 from fielddisplay import fielddisplay … … 9 6 from issmscpout import issmscpout 10 7 from QueueRequirements import QueueRequirements 8 from IssmConfig import IssmConfig 11 9 try: 12 10 from pfe_settings import pfe_settings 13 11 except ImportError: 14 print('You need pfe_settings.py to proceed, check presence and sys.path') 15 16 class pfe(object): 17 """ 18 PFE cluster class definition 19 20 Usage: 21 cluster=pfe(); 22 cluster=pfe('np',3); 23 cluster=pfe('np',3,'login','username'); 24 """ 25 26 def __init__(self,*args): 27 # {{{ 28 29 self.name = 'pfe' 30 self.login = '' 31 self.numnodes = 20 32 self.cpuspernode = 8 33 self.port = 1025 34 self.queue = 'long' 35 self.time = 12*60 36 self.processor = 'wes' 37 self.codepath = '' 38 self.executionpath = '' 39 self.grouplist = 's1010' 40 self.interactive = 0 41 self.bbftp = 0 42 self.numstreams = 8 43 self.hyperthreading = 0 44 45 #use provided options to change fields 46 options=pairoptions(*args) 47 48 #initialize cluster using user settings if provided 49 self=pfe_settings(self) 50 self.np=self.nprocs() 51 #OK get other fields 52 self=options.AssignObjectFields(self) 53 54 # }}} 55 56 def __repr__(self): 57 # {{{ 58 # display the object 59 s = "class pfe object:" 60 s = "%s\n%s"%(s,fielddisplay(self,'name','name of the cluster')) 61 s = "%s\n%s"%(s,fielddisplay(self,'login','login')) 62 s = "%s\n%s"%(s,fielddisplay(self,'numnodes','number of nodes')) 63 s = "%s\n%s"%(s,fielddisplay(self,'cpuspernode','number of nodes per CPUs')) 64 s = "%s\n%s"%(s,fielddisplay(self,'np','number of CPUs')) 65 s = "%s\n%s"%(s,fielddisplay(self,'port','machine access port')) 66 s = "%s\n%s"%(s,fielddisplay(self,'codepath','code path on the cluster')) 67 s = "%s\n%s"%(s,fielddisplay(self,'executionpath','execution path on the cluster')) 68 s = "%s\n%s"%(s,fielddisplay(self,'queue','name of the queue')) 69 s = "%s\n%s"%(s,fielddisplay(self,'time','walltime requested')) 70 s = "%s\n%s"%(s,fielddisplay(self,'processor','type of processor')) 71 s = "%s\n%s"%(s,fielddisplay(self,'grouplist','name of the group')) 72 s = "%s\n%s"%(s,fielddisplay(self,'interactive','')) 73 s = "%s\n%s"%(s,fielddisplay(self,'bbftp','')) 74 s = "%s\n%s"%(s,fielddisplay(self,'numstreams','')) 75 s = "%s\n%s"%(s,fielddisplay(self,'hyperthreading','')) 76 return s 77 # }}} 78 79 def nprocs(self): 80 # {{{ 81 self.np=self.numnodes*self.cpuspernode 82 return self.np 83 # }}} 84 def checkconsistency(self,md,solution,analyses): 85 # {{{ 12 print('You need pfe_settings.py to proceed, check presence and sys.path') 86 13 87 14 88 queuedict = {'long': [5*24*60, 2048], 89 'normal': [8*60, 2048], 90 'debug':[2*60,150], 91 'devel':[2*60,150]} 92 QueueRequirements(queuedict,self.queue,self.nprocs(),self.time) 15 class pfe(object): 16 """ 17 PFE cluster class definition 93 18 94 #now, check cluster.cpuspernode according to processor type 95 if self.processor=='har' or self.processor=='neh': 96 if self.hyperthreading: 97 if not 0<self.cpuspernode<17: 98 md = md.checkmessage('cpuspernode should be between 1 and 16 for ''neh'' and ''har'' processors in hyperthreading mode') 99 else: 100 if not 0<self.cpuspernode<9: 101 md = md.checkmessage('cpuspernode should be between 1 and 8 for ''neh'' and ''har'' processors') 19 Usage: 20 cluster = pfe() 21 cluster = pfe('np', 3) 22 cluster = pfe('np', 3, 'login', 'username') 23 """ 102 24 103 elif self.processor=='wes': 104 if self.hyperthreading: 105 if not 0<self.cpuspernode<25: 106 md = md.checkmessage('cpuspernode should be between 1 and 24 for ''wes'' processors in hyperthreading mode') 107 else: 108 if not 0<self.cpuspernode<13: 109 md = md.checkmessage('cpuspernode should be between 1 and 12 for ''wes'' processors') 25 def __init__(self, *args): # {{{ 26 self.name = 'pfe' 27 self.login = '' 28 self.numnodes = 20 29 self.cpuspernode = 8 30 self.port = 1025 31 self.queue = 'long' 32 self.time = 12 * 60 33 self.processor = 'wes' 34 self.codepath = '' 35 self.executionpath = '' 36 self.grouplist = 's1010' 37 self.interactive = 0 38 self.bbftp = 0 39 self.numstreams = 8 40 self.hyperthreading = 0 110 41 111 elif self.processor=='ivy': 112 if self.hyperthreading: 113 if not 0<self.cpuspernode<41: 114 md = md.checkmessage('cpuspernode should be between 1 and 40 for ''ivy'' processors in hyperthreading mode') 115 else: 116 if not 0<self.cpuspernode<21: 117 md = md.checkmessage('cpuspernode should be between 1 and 20 for ''ivy'' processors') 118 else: 119 md = md.checkmessage('unknown processor type, should be ''neh'',''wes'' or ''har'' or ''ivy''') 120 121 #Miscelaneous 122 if not self.login: 123 md = md.checkmessage('login empty') 124 if not self.codepath: 125 md = md.checkmessage('codepath empty') 126 if not self.executionpath: 127 md = md.checkmessage('executionpath empty') 128 if not self.grouplist: 129 md = md.checkmessage('grouplist empty') 130 if self.interactive==1: 131 md = md.checkmessage('interactive mode not implemented') 132 133 return self 134 # }}} 135 def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling): 136 # {{{ 42 #use provided options to change fields 43 options = pairoptions(*args) 137 44 138 executable='issm.exe' 139 if isdakota: 140 version=IssmConfig('_DAKOTA_VERSION_')[0:2] 141 version=float(version) 142 if version>=6: 143 executable='issm_dakota.exe' 144 if isoceancoupling: 145 executable='issm_ocean.exe' 45 #initialize cluster using user settings if provided 46 self = pfe_settings(self) 47 self.np = self.nprocs() 48 #OK get other fields 49 self = options.AssignObjectFields(self) 146 50 147 #write queuing script 148 fid=open(modelname+'.queue','w') 149 fid.write('#PBS -S /bin/bash\n') 150 fid.write('#PBS -l select=%i:ncpus=%i:model=%s\n' % (self.numnodes,self.cpuspernode,self.processor)) 151 fid.write('#PBS -l walltime=%i\n' % (self.time*60)) 152 fid.write('#PBS -q %s \n' % self.queue) 153 fid.write('#PBS -W group_list=%s\n' % self.grouplist) 154 fid.write('#PBS -m e\n') 155 fid.write('#PBS -o %s/%s/%s.outlog \n' % (self.executionpath,dirname,modelname)) 156 fid.write('#PBS -e %s/%s/%s.errlog \n\n' % (self.executionpath,dirname,modelname)) 157 fid.write('. /usr/share/modules/init/bash\n\n') 158 fid.write('module load comp-intel/2015.0.090\n') 159 fid.write('module load mpi-sgi/mpt.2.11r13\n') 160 fid.write('export PATH="$PATH:."\n\n') 161 fid.write('export MPI_GROUP_MAX=64\n\n') 162 fid.write('export ISSM_DIR="%s/../"\n' % self.codepath) 163 fid.write('source $ISSM_DIR/etc/environment.sh\n') 164 fid.write('cd %s/%s/\n\n' % (self.executionpath,dirname)) 165 fid.write('mpiexec -np %i %s/%s %s %s/%s %s\n' % (self.nprocs(),self.codepath,executable,str(solution),self.executionpath,dirname,modelname)) 166 167 fid.close() 51 # }}} 168 52 169 # }}} 170 def UploadQueueJob(self,modelname,dirname,filelist): 171 # {{{ 53 def __repr__(self): # {{{ 54 # display the object 55 s = "class pfe object:" 56 s = "%s\n%s" % (s, fielddisplay(self, 'name', 'name of the cluster')) 57 s = "%s\n%s" % (s, fielddisplay(self, 'login', 'login')) 58 s = "%s\n%s" % (s, fielddisplay(self, 'numnodes', 'number of nodes')) 59 s = "%s\n%s" % (s, fielddisplay(self, 'cpuspernode', 'number of nodes per CPUs')) 60 s = "%s\n%s" % (s, fielddisplay(self, 'np', 'number of CPUs')) 61 s = "%s\n%s" % (s, fielddisplay(self, 'port', 'machine access port')) 62 s = "%s\n%s" % (s, fielddisplay(self, 'codepath', 'code path on the cluster')) 63 s = "%s\n%s" % (s, fielddisplay(self, 'executionpath', 'execution path on the cluster')) 64 s = "%s\n%s" % (s, fielddisplay(self, 'queue', 'name of the queue')) 65 s = "%s\n%s" % (s, fielddisplay(self, 'time', 'walltime requested')) 66 s = "%s\n%s" % (s, fielddisplay(self, 'processor', 'type of processor')) 67 s = "%s\n%s" % (s, fielddisplay(self, 'grouplist', 'name of the group')) 68 s = "%s\n%s" % (s, fielddisplay(self, 'interactive', '')) 69 s = "%s\n%s" % (s, fielddisplay(self, 'bbftp', '')) 70 s = "%s\n%s" % (s, fielddisplay(self, 'numstreams', '')) 71 s = "%s\n%s" % (s, fielddisplay(self, 'hyperthreading', '')) 72 return s 73 # }}} 172 74 173 #compress the files into one zip. 174 compressstring='tar -zcf %s.tar.gz ' % dirname 175 for file in filelist: 176 compressstring += ' %s' % file 177 subprocess.call(compressstring,shell=True) 75 def nprocs(self): # {{{ 76 self.np = self.numnodes * self.cpuspernode 77 return self.np 78 # }}} 178 79 179 print('uploading input file and queueing script') 180 issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz']) 80 def checkconsistency(self, md, solution, analyses): # {{{ 81 queuedict = {'long': [5 * 24 * 60, 2048], 82 'normal': [8 * 60, 2048], 83 'debug': [2 * 60, 150], 84 'devel': [2 * 60, 150]} 85 QueueRequirements(queuedict, self.queue, self.nprocs(), self.time) 181 86 182 # }}} 183 def LaunchQueueJob(self,modelname,dirname,filelist,restart,batch): 184 # {{{ 87 #now, check cluster.cpuspernode according to processor type 88 if self.processor == 'har' or self.processor == 'neh': 89 if self.hyperthreading: 90 if not 0 < self.cpuspernode < 17: 91 md = md.checkmessage('cpuspernode should be between 1 and 16 for ''neh'' and ''har'' processors in hyperthreading mode') 92 else: 93 if not 0 < self.cpuspernode < 9: 94 md = md.checkmessage('cpuspernode should be between 1 and 8 for ''neh'' and ''har'' processors') 185 95 186 print('launching solution sequence on remote cluster') 187 if restart: 188 launchcommand='cd %s && cd %s && qsub %s.queue' % (self.executionpath,dirname,modelname) 189 else: 190 launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && qsub %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname) 191 issmssh(self.name,self.login,self.port,launchcommand) 96 elif self.processor == 'wes': 97 if self.hyperthreading: 98 if not 0 < self.cpuspernode < 25: 99 md = md.checkmessage('cpuspernode should be between 1 and 24 for ''wes'' processors in hyperthreading mode') 100 else: 101 if not 0 < self.cpuspernode < 13: 102 md = md.checkmessage('cpuspernode should be between 1 and 12 for ''wes'' processors') 192 103 193 # }}} 194 def Download(self,dirname,filelist): 195 # {{{ 104 elif self.processor == 'ivy': 105 if self.hyperthreading: 106 if not 0 < self.cpuspernode < 41: 107 md = md.checkmessage('cpuspernode should be between 1 and 40 for ''ivy'' processors in hyperthreading mode') 108 else: 109 if not 0 < self.cpuspernode < 21: 110 md = md.checkmessage('cpuspernode should be between 1 and 20 for ''ivy'' processors') 111 else: 112 md = md.checkmessage('unknown processor type, should be ''neh'', ''wes'' or ''har'' or ''ivy''') 196 113 197 #copy files from cluster to current directory 198 directory='%s/%s/' % (self.executionpath,dirname) 199 issmscpin(self.name,self.login,self.port,directory,filelist) 200 # }}} 114 #Miscelaneous 115 if not self.login: 116 md = md.checkmessage('login empty') 117 if not self.codepath: 118 md = md.checkmessage('codepath empty') 119 if not self.executionpath: 120 md = md.checkmessage('executionpath empty') 121 if not self.grouplist: 122 md = md.checkmessage('grouplist empty') 123 if self.interactive == 1: 124 md = md.checkmessage('interactive mode not implemented') 125 126 return self 127 # }}} 128 129 def BuildQueueScript(self, dirname, modelname, solution, io_gather, isvalgrind, isgprof, isdakota, isoceancoupling): # {{{ 130 executable = 'issm.exe' 131 if isdakota: 132 version = IssmConfig('_DAKOTA_VERSION_')[0:2] 133 version = float(version) 134 if version >= 6: 135 executable = 'issm_dakota.exe' 136 if isoceancoupling: 137 executable = 'issm_ocean.exe' 138 139 #write queuing script 140 fid = open(modelname + '.queue', 'w') 141 fid.write('#PBS -S / bin / bash\n') 142 fid.write('#PBS -l select=%i:ncpus=%i:model=%s\n' % (self.numnodes, self.cpuspernode, self.processor)) 143 fid.write('#PBS -l walltime=%i\n' % (self.time * 60)) 144 fid.write('#PBS -q %s \n' % self.queue) 145 fid.write('#PBS -W group_list=%s\n' % self.grouplist) 146 fid.write('#PBS -m e\n') 147 fid.write('#PBS -o %s/%s/%s.outlog \n' % (self.executionpath, dirname, modelname)) 148 fid.write('#PBS -e %s/%s/%s.errlog \n\n' % (self.executionpath, dirname, modelname)) 149 fid.write('./usr/share/modules/init/bash\n\n') 150 fid.write('module load comp-intel/2015.0.090\n') 151 fid.write('module load mpi-sgi/mpt.2.11r13\n') 152 fid.write('export PATH = "$PATH:."\n\n') 153 fid.write('export MPI_GROUP_MAX = 64\n\n') 154 fid.write('export ISSM_DIR = "%s/../ "\n' % self.codepath) 155 fid.write('source $ISSM_DIR/etc/environment.sh\n') 156 fid.write('cd %s/%s/ \n\n' % (self.executionpath, dirname)) 157 fid.write('mpiexec - np %i %s/%s %s %s/%s %s\n' % (self.nprocs(), self.codepath, executable, str(solution), self.executionpath, dirname, modelname)) 158 159 fid.close() 160 161 # }}} 162 163 def UploadQueueJob(self, modelname, dirname, filelist): # {{{ 164 #compress the files into one zip. 165 compressstring = 'tar -zcf %s.tar.gz ' % dirname 166 for file in filelist: 167 compressstring += ' %s' % file 168 subprocess.call(compressstring, shell=True) 169 170 print('uploading input file and queueing script') 171 issmscpout(self.name, self.executionpath, self.login, self.port, [dirname + '.tar.gz']) 172 173 # }}} 174 def LaunchQueueJob(self, modelname, dirname, filelist, restart, batch): # {{{ 175 print('launching solution sequence on remote cluster') 176 if restart: 177 launchcommand = 'cd %s && cd %s && qsub %s.queue' % (self.executionpath, dirname, modelname) 178 else: 179 launchcommand = 'cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && qsub %s.queue' % (self.executionpath, dirname, dirname, dirname, dirname, dirname, modelname) 180 issmssh(self.name, self.login, self.port, launchcommand) 181 182 # }}} 183 def Download(self, dirname, filelist): # {{{ 184 #copy files from cluster to current directory 185 directory = '%s/%s/' % (self.executionpath, dirname) 186 issmscpin(self.name, self.login, self.port, directory, filelist) 187 # }}} -
issm/trunk-jpl/src/m/classes/clusters/stallo.py
r23716 r24213 7 7 from issmscpout import issmscpout 8 8 from QueueRequirements import QueueRequirements 9 from IssmConfig import IssmConfig 9 10 import datetime 10 11 try: 11 12 from stallo_settings import stallo_settings 12 13 except ImportError: 13 print('You need stallo_settings.py to proceed, check presence and sys.path') 14 print('You need stallo_settings.py to proceed, check presence and sys.path') 15 14 16 15 17 class stallo(object): 16 17 18 19 20 21 22 18 """ 19 Stallo cluster class definition 20 This is a SLURM queue 21 The priorities are given to: 22 - Large jobs 23 - Short jobs 24 - small number of job per user 23 25 24 26 There are some 20cpu nodes and 16cpu nodes, with 32GB (a few with 128GB) mem per node, you can ask for part of a node if you need more memory.(1 node, 2 CPUS and 10GB per cpu for example) 25 27 26 28 27 28 cluster=stallo(); 29 29 Usage: 30 cluster = stallo() 31 """ 30 32 31 def __init__(self,*args): 32 # {{{ 33 self.name = 'stallo' 34 self.login = '' 35 self.numnodes = 2 36 self.cpuspernode = 20 37 self.mem = 1.6 38 self.queue = 'normal' 39 self.time = 2*60 40 self.codepath = '' 41 self.executionpath = '' 42 self.interactive = 0 43 self.port = [] 44 self.accountname = '' 45 self.profiling = 0 46 #use provided options to change fields 47 options=pairoptions(*args) 33 def __init__(self, *args): # {{{ 34 self.name = 'stallo' 35 self.login = '' 36 self.numnodes = 2 37 self.cpuspernode = 20 38 self.mem = 1.6 39 self.queue = 'normal' 40 self.time = 2 * 60 41 self.codepath = '' 42 self.executionpath = '' 43 self.interactive = 0 44 self.port = [] 45 self.accountname = '' 46 self.profiling = 0 47 #use provided options to change fields 48 options = pairoptions(*args) 48 49 49 50 self=stallo_settings(self)51 52 self=options.AssignObjectFields(self)53 self.np=self.numnodes*self.cpuspernode54 50 #initialize cluster using user settings if provided 51 self = stallo_settings(self) 52 #OK get other fields 53 self = options.AssignObjectFields(self) 54 self.np = self.numnodes * self.cpuspernode 55 # }}} 55 56 56 def __repr__(self): 57 # {{{ 58 # display the object 59 s = "class vilje object:" 60 s = "%s\n%s"%(s,fielddisplay(self,'name','name of the cluster')) 61 s = "%s\n%s"%(s,fielddisplay(self,'login','login')) 62 s = "%s\n%s"%(s,fielddisplay(self,'numnodes','number of nodes')) 63 s = "%s\n%s"%(s,fielddisplay(self,'cpuspernode','number of CPUs per nodes')) 64 s = "%s\n%s"%(s,fielddisplay(self,'mem','memory per CPU')) 65 s = "%s\n%s"%(s,fielddisplay(self,'queue','name of the queue (normal (D), short,singlenode,multinode,devel)')) 66 s = "%s\n%s"%(s,fielddisplay(self,'time','walltime requested in minutes')) 67 s = "%s\n%s"%(s,fielddisplay(self,'codepath','code path on the cluster')) 68 s = "%s\n%s"%(s,fielddisplay(self,'executionpath','execution path on the cluster')) 69 s = "%s\n%s"%(s,fielddisplay(self,'interactive','')) 70 s = "%s\n%s"%(s,fielddisplay(self,'accountname','your cluster account')) 71 s = "%s\n%s"%(s,fielddisplay(self,'profiling','enable profiling if 1 default is 0')) 72 return s 73 # }}} 74 def checkconsistency(self,md,solution,analyses): 75 # {{{ 76 #Queue dictionarry gives queue name as key and max walltime and cpus as var 77 queuedict = {'short':[60, 2048], 78 'normal':[2*24*60,2048], 79 'singlenode':[28*24*60,20], 80 'multinode':[28*24*60,2048], 81 'devel':[4*60,2048]} 82 QueueRequirements(queuedict,self.queue,self.np,self.time) 57 def __repr__(self): # {{{ 58 # display the object 59 s = "class vilje object:" 60 s = "%s\n%s" % (s, fielddisplay(self, 'name', 'name of the cluster')) 61 s = "%s\n%s" % (s, fielddisplay(self, 'login', 'login')) 62 s = "%s\n%s" % (s, fielddisplay(self, 'numnodes', 'number of nodes')) 63 s = "%s\n%s" % (s, fielddisplay(self, 'cpuspernode', 'number of CPUs per nodes')) 64 s = "%s\n%s" % (s, fielddisplay(self, 'mem', 'memory per CPU')) 65 s = "%s\n%s" % (s, fielddisplay(self, 'queue', 'name of the queue (normal (D), short, singlenode, multinode, devel)')) 66 s = "%s\n%s" % (s, fielddisplay(self, 'time', 'walltime requested in minutes')) 67 s = "%s\n%s" % (s, fielddisplay(self, 'codepath', 'code path on the cluster')) 68 s = "%s\n%s" % (s, fielddisplay(self, 'executionpath', 'execution path on the cluster')) 69 s = "%s\n%s" % (s, fielddisplay(self, 'interactive', '')) 70 s = "%s\n%s" % (s, fielddisplay(self, 'accountname', 'your cluster account')) 71 s = "%s\n%s" % (s, fielddisplay(self, 'profiling', 'enable profiling if 1 default is 0')) 72 return s 73 # }}} 83 74 84 #Miscelaneous 85 if not self.login: 86 md = md.checkmessage('login empty') 87 if not self.codepath: 88 md = md.checkmessage('codepath empty') 89 if not self.executionpath: 90 md = md.checkmessage('executionpath empty') 91 if self.interactive==1: 92 md = md.checkmessage('interactive mode not implemented') 93 return self 94 # }}} 95 def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling): 96 # {{{ 75 def checkconsistency(self, md, solution, analyses): # {{{ 76 #Queue dictionarry gives queue name as key and max walltime and cpus as var 77 queuedict = {'short': [60, 2048], 78 'normal': [2 * 24 * 60, 2048], 79 'singlenode': [28 * 24 * 60, 20], 80 'multinode': [28 * 24 * 60, 2048], 81 'devel': [4 * 60, 2048]} 82 QueueRequirements(queuedict, self.queue, self.np, self.time) 97 83 98 executable='issm.exe' 99 if isdakota: 100 version=IssmConfig('_DAKOTA_VERSION_')[0:2] 101 version=float(version) 102 if version>=6: 103 executable='issm_dakota.exe' 104 if isoceancoupling: 105 executable='issm_ocean.exe' 106 #write queuing script 107 shortname=modelname[0:min(12,len(modelname))] 108 timeobj=datetime.timedelta(minutes=self.time) 109 m,s=divmod(timeobj.total_seconds(), 60) 110 h,m=divmod(m, 60) 111 d,h=divmod(h, 60) 112 timestring="%02d-%02d:%02d:%02d" % (d, h, m, s) 84 #Miscelaneous 85 if not self.login: 86 md = md.checkmessage('login empty') 87 if not self.codepath: 88 md = md.checkmessage('codepath empty') 89 if not self.executionpath: 90 md = md.checkmessage('executionpath empty') 91 if self.interactive == 1: 92 md = md.checkmessage('interactive mode not implemented') 93 return self 94 # }}} 113 95 114 fid=open(modelname+'.queue','w') 115 fid.write('#!/bin/bash -l\n') 116 fid.write('#SBATCH --job-name=%s \n' % shortname) 117 fid.write('#SBATCH --qos=%s \n' % self.queue) 118 fid.write('#SBATCH --nodes=%i \n' % self.numnodes) 119 fid.write('#SBATCH --ntasks-per-node=%i \n' % self.cpuspernode) 120 fid.write('#SBATCH --time={}\n'.format(timestring)) #walltime is minutes 121 fid.write('#SBATCH --mem-per-cpu={}MB\n'.format(int(1000*self.mem)))# mem is in MB 122 if (np.mod(self.np,16)+np.mod(self.np,20))==0: 123 fid.write('#SBATCH --ntask=%i\n' % self.np) 124 fid.write('#SBATCH --account=%s\n' % self.accountname) 125 fid.write('#SBATCH --output %s/%s/%s.outlog \n' % (self.executionpath,dirname,modelname)) 126 fid.write('#SBATCH --error %s/%s/%s.errlog \n\n' % (self.executionpath,dirname,modelname)) 96 def BuildQueueScript(self, dirname, modelname, solution, io_gather, isvalgrind, isgprof, isdakota, isoceancoupling): # {{{ 127 97 128 fid.write('export ISSM_DIR="%s/../"\n' % self.codepath) 129 fid.write('module purge\n') 130 fid.write('module load CMake/3.8.0-GCCcore-6.3.0\n') 131 fid.write('module load Automake/1.15.1-GCCcore-6.3.0\n') 132 fid.write('module load libtool/2.4.6\n') 133 fid.write('module load OpenSSL/1.1.0e-intel-2017a\n') 134 fid.write('module load PETSc/3.7.5-intel-2017a-downloaded-deps\n') 98 executable = 'issm.exe' 99 if isdakota: 100 version = IssmConfig('_DAKOTA_VERSION_')[0:2] 101 version = float(version) 102 if version >= 6: 103 executable = 'issm_dakota.exe' 104 if isoceancoupling: 105 executable = 'issm_ocean.exe' 106 #write queuing script 107 shortname = modelname[0:min(12, len(modelname))] 108 timeobj = datetime.timedelta(minutes=self.time) 109 m, s = divmod(timeobj.total_seconds(), 60) 110 h, m = divmod(m, 60) 111 d, h = divmod(h, 60) 112 timestring = "%02d-%02d:%02d:%02d" % (d, h, m, s) 135 113 136 fid.write('cd %s/%s/\n\n' % (self.executionpath,dirname)) 137 if self.profiling==1: 138 fid.write('module load perf-report\n') 139 fid.write('perf-report mpirun -np %i %s/%s %s %s/%s %s\n' % (self.np,self.codepath,executable,str(solution),self.executionpath,dirname,modelname)) 140 else: 141 fid.write('mpirun -np %i %s/%s %s %s/%s %s\n' % (self.np,self.codepath,executable,str(solution),self.executionpath,dirname,modelname)) 142 fid.close() 114 fid = open(modelname + '.queue', 'w') 115 fid.write('#!/bin/bash -l\n') 116 fid.write('#SBATCH --job - name=%s \n' % shortname) 117 fid.write('#SBATCH --qos=%s \n' % self.queue) 118 fid.write('#SBATCH --nodes=%i \n' % self.numnodes) 119 fid.write('#SBATCH --ntasks - per - node=%i \n' % self.cpuspernode) 120 fid.write('#SBATCH --time={}\n'.format(timestring)) #walltime is minutes 121 fid.write('#SBATCH --mem-per-cpu={}MB\n'.format(int(1000 * self.mem))) # mem is in MB 122 if (np.mod(self.np, 16) + np.mod(self.np, 20)) == 0: 123 fid.write(' #SBATCH --ntask=%i\n' % self.np) 124 fid.write('#SBATCH --account=%s\n' % self.accountname) 125 fid.write('#SBATCH --output %s/%s/%s.outlog \n' % (self.executionpath, dirname, modelname)) 126 fid.write('#SBATCH --error %s/%s/%s.errlog \n\n' % (self.executionpath, dirname, modelname)) 143 127 144 # }}} 145 def UploadQueueJob(self,modelname,dirname,filelist): 146 # {{{ 147 #compress the files into one zip. 148 compressstring='tar -zcf %s.tar.gz ' % dirname 149 for file in filelist: 150 compressstring += ' %s' % file 151 subprocess.call(compressstring,shell=True) 128 fid.write('export ISSM_DIR = "%s/../"\n' % self.codepath) 129 fid.write('module purge\n') 130 fid.write('module load CMake/3.8.0-GCCcore-6.3.0\n') 131 fid.write('module load Automake/1.15.1-GCCcore-6.3.0\n') 132 fid.write('module load libtool/2.4.6\n') 133 fid.write('module load OpenSSL/1.1.0e-intel-2017a\n') 134 fid.write('module load PETSc/3.7.5-intel-2017a-downloaded-deps\n') 152 135 153 print('uploading input file and queueing script') 154 issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz']) 136 fid.write('cd %s/%s/ \n\n' % (self.executionpath, dirname)) 137 if self.profiling == 1: 138 fid.write('module load perf-report\n') 139 fid.write('perf-report mpirun -np %i %s/%s %s %s/%s %s\n' % (self.np, self.codepath, executable, str(solution), self.executionpath, dirname, modelname)) 140 else: 141 fid.write('mpirun -np %i %s/%s %s %s/%s %s\n' % (self.np, self.codepath, executable, str(solution), self.executionpath, dirname, modelname)) 142 fid.close() 155 143 156 # }}} 157 def LaunchQueueJob(self,modelname,dirname,filelist,restart,batch): 158 # {{{ 144 # }}} 145 def UploadQueueJob(self, modelname, dirname, filelist): # {{{ 146 #compress the files into one zip. 147 compressstring = 'tar -zcf %s.tar.gz ' % dirname 148 for file in filelist: 149 compressstring += ' %s' % file 150 subprocess.call(compressstring, shell=True) 159 151 160 print('launching solution sequence on remote cluster') 161 if restart: 162 launchcommand='cd %s && cd %s && sbatch %s.queue' % (self.executionpath,dirname,modelname) 163 else: 164 launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && sbatch %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname) 165 issmssh(self.name,self.login,self.port,launchcommand) 152 print('uploading input file and queueing script') 153 issmscpout(self.name, self.executionpath, self.login, self.port, [dirname + '.tar.gz']) 166 154 167 # }}} 168 def Download(self,dirname,filelist): 169 # {{{ 155 # }}} 170 156 171 #copy files from cluster to current directory 172 directory='%s/%s/' % (self.executionpath,dirname) 173 issmscpin(self.name,self.login,self.port,directory,filelist) 174 # }}} 157 def LaunchQueueJob(self, modelname, dirname, filelist, restart, batch): # {{{ 158 159 print('launching solution sequence on remote cluster') 160 if restart: 161 launchcommand = 'cd %s && cd %s && sbatch %s.queue' % (self.executionpath, dirname, modelname) 162 else: 163 launchcommand = 'cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && sbatch %s.queue' % (self.executionpath, dirname, dirname, dirname, dirname, dirname, modelname) 164 issmssh(self.name, self.login, self.port, launchcommand) 165 166 # }}} 167 168 def Download(self, dirname, filelist): # {{{ 169 #copy files from cluster to current directory 170 directory = '%s/%s/' % (self.executionpath, dirname) 171 issmscpin(self.name, self.login, self.port, directory, filelist) 172 # }}} -
issm/trunk-jpl/src/m/classes/clusters/vilje.py
r23716 r24213 6 6 from issmscpout import issmscpout 7 7 from QueueRequirements import QueueRequirements 8 from IssmConfig import IssmConfig 8 9 import datetime 9 10 try: 10 11 from vilje_settings import vilje_settings 11 12 except ImportError: 12 print('You need vilje_settings.py to proceed, check presence and sys.path') 13 print('You need vilje_settings.py to proceed, check presence and sys.path') 14 13 15 14 16 class vilje(object): 15 16 17 """ 18 Vilje cluster class definition 17 19 18 19 cluster=vilje(); 20 20 Usage: 21 cluster = vilje() 22 """ 21 23 22 def __init__(self,*args): 23 # {{{ 24 self.name = 'vilje' 25 self.login = '' 26 self.numnodes = 2 27 self.cpuspernode = 32 28 self.procspernodes = 16 29 self.mem = 28 30 self.queue = 'workq' 31 self.time = 2*60 32 self.codepath = '' 33 self.executionpath = '' 34 self.interactive = 0 35 self.port = [] 36 self.accountname = '' 24 def __init__(self, *args): # {{{ 25 self.name = 'vilje' 26 self.login = '' 27 self.numnodes = 2 28 self.cpuspernode = 32 29 self.procspernodes = 16 30 self.mem = 28 31 self.queue = 'workq' 32 self.time = 2 * 60 33 self.codepath = '' 34 self.executionpath = '' 35 self.interactive = 0 36 self.port = [] 37 self.accountname = '' 37 38 38 39 options=pairoptions(*args)39 #use provided options to change fields 40 options = pairoptions(*args) 40 41 41 42 self=vilje_settings(self)43 44 self=options.AssignObjectFields(self)45 self.np=self.numnodes*self.procspernodes46 42 #initialize cluster using user settings if provided 43 self = vilje_settings(self) 44 #OK get other fields 45 self = options.AssignObjectFields(self) 46 self.np = self.numnodes * self.procspernodes 47 # }}} 47 48 48 def __repr__(self): 49 # {{{ 50 # display the object 51 s = "class vilje object:" 52 s = "%s\n%s"%(s,fielddisplay(self,'name','name of the cluster')) 53 s = "%s\n%s"%(s,fielddisplay(self,'login','login')) 54 s = "%s\n%s"%(s,fielddisplay(self,'numnodes','number of nodes')) 55 s = "%s\n%s"%(s,fielddisplay(self,'cpuspernode','number of nodes per CPUs (32)')) 56 s = "%s\n%s"%(s,fielddisplay(self,'procspernodes','number of mpi procs per nodes')) 57 s = "%s\n%s"%(s,fielddisplay(self,'mem','node memory')) 58 s = "%s\n%s"%(s,fielddisplay(self,'queue','name of the queue (test is an option, workq the default)')) 59 s = "%s\n%s"%(s,fielddisplay(self,'time','walltime requested in minutes')) 60 s = "%s\n%s"%(s,fielddisplay(self,'codepath','code path on the cluster')) 61 s = "%s\n%s"%(s,fielddisplay(self,'executionpath','execution path on the cluster')) 62 s = "%s\n%s"%(s,fielddisplay(self,'interactive','')) 63 s = "%s\n%s"%(s,fielddisplay(self,'accountname','your cluster account')) 64 return s 65 # }}} 49 def __repr__(self): # {{{ 50 # display the object 51 s = "class vilje object:" 52 s = "%s\n%s" % (s, fielddisplay(self, 'name', 'name of the cluster')) 53 s = "%s\n%s" % (s, fielddisplay(self, 'login', 'login')) 54 s = "%s\n%s" % (s, fielddisplay(self, 'numnodes', 'number of nodes')) 55 s = "%s\n%s" % (s, fielddisplay(self, 'cpuspernode', 'number of nodes per CPUs (32)')) 56 s = "%s\n%s" % (s, fielddisplay(self, 'procspernodes', 'number of mpi procs per nodes')) 57 s = "%s\n%s" % (s, fielddisplay(self, 'mem', 'node memory')) 58 s = "%s\n%s" % (s, fielddisplay(self, 'queue', 'name of the queue (test is an option, workq the default)')) 59 s = "%s\n%s" % (s, fielddisplay(self, 'time', 'walltime requested in minutes')) 60 s = "%s\n%s" % (s, fielddisplay(self, 'codepath', 'code path on the cluster')) 61 s = "%s\n%s" % (s, fielddisplay(self, 'executionpath', 'execution path on the cluster')) 62 s = "%s\n%s" % (s, fielddisplay(self, 'interactive', '')) 63 s = "%s\n%s" % (s, fielddisplay(self, 'accountname', 'your cluster account')) 64 return s 65 # }}} 66 66 67 def checkconsistency(self,md,solution,analyses): 68 # {{{ 69 #Queue dictionarry gives queu name as key and max walltime and cpus as var 70 queuedict = {'workq':[5*24*60, 30], 71 'test':[30,4]} 72 QueueRequirements(queuedict,self.queue,self.np,self.time) 67 def checkconsistency(self, md, solution, analyses): # {{{ 68 #Queue dictionarry gives queu name as key and max walltime and cpus as var 69 queuedict = {'workq': [5 * 24 * 60, 30], 70 'test': [30, 4]} 71 QueueRequirements(queuedict, self.queue, self.np, self.time) 73 72 74 75 76 77 78 79 80 81 if self.interactive==1:82 83 84 73 #Miscelaneous 74 if not self.login: 75 md = md.checkmessage('login empty') 76 if not self.codepath: 77 md = md.checkmessage('codepath empty') 78 if not self.executionpath: 79 md = md.checkmessage('executionpath empty') 80 if self.interactive == 1: 81 md = md.checkmessage('interactive mode not implemented') 82 return self 83 # }}} 85 84 86 def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling): 87 # {{{ 88 executable='issm.exe' 89 if isdakota: 90 version=IssmConfig('_DAKOTA_VERSION_')[0:2] 91 version=float(version) 92 if version>=6: 93 executable='issm_dakota.exe' 94 if isoceancoupling: 95 executable='issm_ocean.exe' 85 def BuildQueueScript(self, dirname, modelname, solution, io_gather, isvalgrind, isgprof, isdakota, isoceancoupling): # {{{ 86 executable = 'issm.exe' 87 if isdakota: 88 version = IssmConfig('_DAKOTA_VERSION_')[0:2] 89 version = float(version) 90 if version >= 6: 91 executable = 'issm_dakota.exe' 92 if isoceancoupling: 93 executable = 'issm_ocean.exe' 96 94 97 #write queuing script 98 shortname=modelname[0:min(12,len(modelname))] 99 fid=open(modelname+'.queue','w') 100 fid.write('#PBS -S /bin/bash\n') 101 fid.write('#PBS -N %s \n' % shortname) 102 fid.write('#PBS -q %s \n' % self.queue) 103 fid.write('#PBS -l select=%i:ncpus=%i:mpiprocs=%s\n' % (self.numnodes,self.cpuspernode,self.procspernodes)) 104 timeobj=datetime.timedelta(minutes=self.time) 105 m,s=divmod(timeobj.total_seconds(), 60) 106 h,m=divmod(m, 60) 107 timestring="%02d:%02d:%02d" % (h, m, s) 108 fid.write('#PBS -l walltime=%s\n' % timestring) #walltime is hh:mm:ss 109 #fid.write('#PBS -l mem=%igb\n' % self.mem) 110 fid.write('#PBS -A %s\n' % self.accountname) 111 fid.write('#PBS -o %s/%s/%s.outlog \n' % (self.executionpath,dirname,modelname)) 112 fid.write('#PBS -e %s/%s/%s.errlog \n\n' % (self.executionpath,dirname,modelname)) 113 fid.write('export ISSM_DIR="%s/../"\n' % self.codepath) 114 fid.write('module load intelcomp/17.0.0\n') 115 fid.write('module load mpt/2.14\n') 116 fid.write('module load petsc/3.7.4d\n') 117 fid.write('module load parmetis/4.0.3\n') 118 fid.write('module load mumps/5.0.2\n') 119 fid.write('cd %s/%s/\n\n' % (self.executionpath,dirname)) 120 fid.write('mpiexec_mpt -np %i %s/%s %s %s/%s %s\n' % (self.np,self.codepath,executable,str(solution),self.executionpath,dirname,modelname)) 121 fid.close() 122 # }}} 95 #write queuing script 96 shortname = modelname[0:min(12, len(modelname))] 97 fid = open(modelname + '.queue', 'w') 98 fid.write('#PBS -S / bin / bash\n') 99 fid.write('#PBS -N %s \n' % shortname) 100 fid.write('#PBS -q %s \n' % self.queue) 101 fid.write('#PBS -l select=%i:ncpus=%i:mpiprocs=%s\n' % (self.numnodes, self.cpuspernode, self.procspernodes)) 102 timeobj = datetime.timedelta(minutes=self.time) 103 m, s = divmod(timeobj.total_seconds(), 60) 104 h, m = divmod(m, 60) 105 timestring = "%02d:%02d:%02d" % (h, m, s) 106 fid.write('#PBS -l walltime=%s\n' % timestring) #walltime is hh:mm:ss 107 fid.write('#PBS -A %s\n' % self.accountname) 108 fid.write('#PBS -o %s/%s/%s.outlog \n' % (self.executionpath, dirname, modelname)) 109 fid.write('#PBS -e %s/%s/%s.errlog \n\n' % (self.executionpath, dirname, modelname)) 110 fid.write('export ISSM_DIR = "%s/../ "\n' % self.codepath) 111 fid.write('module load intelcomp/17.0.0\n') 112 fid.write('module load mpt/2.14\n') 113 fid.write('module load petsc/3.7.4d\n') 114 fid.write('module load parmetis/4.0.3\n') 115 fid.write('module load mumps/5.0.2\n') 116 fid.write('cd %s/%s/\n\n' % (self.executionpath, dirname)) 117 fid.write('mpiexec_mpt -np %i %s/%s %s %s/%s %s\n' % (self.np, self.codepath, executable, str(solution), self.executionpath, dirname, modelname)) 118 fid.close() 119 # }}} 123 120 124 def UploadQueueJob(self,modelname,dirname,filelist): 125 # {{{ 126 #compress the files into one zip. 127 compressstring='tar -zcf %s.tar.gz ' % dirname 128 for file in filelist: 129 compressstring += ' %s' % file 130 subprocess.call(compressstring,shell=True) 121 def UploadQueueJob(self, modelname, dirname, filelist): # {{{ 122 #compress the files into one zip. 123 compressstring = 'tar -zcf %s.tar.gz ' % dirname 124 for file in filelist: 125 compressstring += ' %s' % file 126 subprocess.call(compressstring, shell=True) 131 127 132 133 issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])134 128 print('uploading input file and queueing script') 129 issmscpout(self.name, self.executionpath, self.login, self.port, [dirname + '.tar.gz']) 130 # }}} 135 131 136 def LaunchQueueJob(self,modelname,dirname,filelist,restart,batch): 137 # {{{ 138 print('launching solution sequence on remote cluster') 139 if restart: 140 launchcommand='cd %s && cd %s && qsub %s.queue' % (self.executionpath,dirname,modelname) 141 else: 142 launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && qsub %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname) 143 issmssh(self.name,self.login,self.port,launchcommand) 144 # }}} 132 def LaunchQueueJob(self, modelname, dirname, filelist, restart, batch): # {{{ 133 print('launching solution sequence on remote cluster') 134 if restart: 135 launchcommand = 'cd %s && cd %s && qsub %s.queue' % (self.executionpath, dirname, modelname) 136 else: 137 launchcommand = 'cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz && qsub %s.queue' % (self.executionpath, dirname, dirname, dirname, dirname, dirname, modelname) 138 issmssh(self.name, self.login, self.port, launchcommand) 139 # }}} 145 140 146 def Download(self,dirname,filelist): 147 # {{{ 148 #copy files from cluster to current directory 149 directory='%s/%s/' % (self.executionpath,dirname) 150 issmscpin(self.name,self.login,self.port,directory,filelist) 151 # }}} 141 def Download(self, dirname, filelist): # {{{ 142 #copy files from cluster to current directory 143 directory = '%s/%s/' % (self.executionpath, dirname) 144 issmscpin(self.name, self.login, self.port, directory, filelist) 145 # }}} -
issm/trunk-jpl/src/m/classes/constants.py
r23783 r24213 3 3 from WriteData import WriteData 4 4 5 5 6 class constants(object): 6 7 7 """ 8 CONSTANTS class definition 8 9 9 10 constants=constants(); 11 10 Usage: 11 constants = constants() 12 """ 12 13 13 def __init__(self): # {{{ 14 self.g = 0. 15 self.omega = 0. 16 self.yts = 0. 17 self.referencetemperature = 0. 18 19 #set defaults 20 self.setdefaultparameters() 14 def __init__(self): # {{{ 15 self.g = 0. 16 self.omega = 0. 17 self.yts = 0. 18 self.referencetemperature = 0. 21 19 22 #}}} 23 def __repr__(self): # {{{ 24 string=" constants parameters:" 20 #set defaults 21 self.setdefaultparameters() 25 22 26 string="%s\n%s"%(string,fielddisplay(self,"g","gravitational acceleration [m/s^2]")) 27 string="%s\n%s"%(string,fielddisplay(self,"omega","angular velocity of Earth [rad/s]")) 28 string="%s\n%s"%(string,fielddisplay(self,"yts","number of seconds in a year [s/yr]")) 29 string="%s\n%s"%(string,fielddisplay(self,"referencetemperature","reference temperature used in the enthalpy model [K]")) 23 #}}} 24 def __repr__(self): # {{{ 25 string = " constants parameters:" 30 26 31 return string 32 #}}} 33 def setdefaultparameters(self): # {{{ 34 35 #acceleration due to gravity (m/s^2) 36 self.g=9.81 27 string = "%s\n%s" % (string, fielddisplay(self, "g", "gravitational acceleration [m / s^2]")) 28 string = "%s\n%s" % (string, fielddisplay(self, "omega", "angular velocity of Earth [rad / s]")) 29 string = "%s\n%s" % (string, fielddisplay(self, "yts", "number of seconds in a year [s / yr]")) 30 string = "%s\n%s" % (string, fielddisplay(self, "referencetemperature", "reference temperature used in the enthalpy model [K]")) 37 31 38 #Earth's rotation speed 39 self.omega = 7.292*1e-5; 32 return string 33 #}}} 40 34 41 #converstion from year to seconds 42 self.yts=365.*24.*3600. 35 def setdefaultparameters(self): # {{{ 36 #acceleration due to gravity (m / s^2) 37 self.g = 9.81 43 38 44 #the reference temperature for enthalpy model (cf Aschwanden) 45 self.referencetemperature=223.1539 #Earth's rotation speed 40 self.omega = 7.292 * 1e-5 46 41 47 return self 48 #}}} 49 def checkconsistency(self,md,solution,analyses): # {{{ 42 #converstion from year to seconds 43 self.yts = 365. * 24. * 3600. 50 44 51 md = checkfield(md,'fieldname','constants.g','>=',0,'size',[1]) 52 md = checkfield(md,'fieldname','constants.omega','>=',0,'size',[1]) 53 md = checkfield(md,'fieldname','constants.yts','>',0,'size',[1]) 54 md = checkfield(md,'fieldname','constants.referencetemperature','size',[1]) 45 #the reference temperature for enthalpy model (cf Aschwanden) 46 self.referencetemperature = 223.15 55 47 56 return md 57 # }}} 58 def marshall(self,prefix,md,fid): # {{{ 59 WriteData(fid,prefix,'object',self,'fieldname','g','format','Double') 60 WriteData(fid,prefix,'object',self,'fieldname','yts','format','Double') 61 WriteData(fid,prefix,'object',self,'fieldname','referencetemperature','format','Double') 62 # }}} 48 return self 49 #}}} 50 51 def checkconsistency(self, md, solution, analyses): # {{{ 52 md = checkfield(md, 'fieldname', 'constants.g', '>=', 0, 'size', [1]) 53 md = checkfield(md, 'fieldname', 'constants.omega', '>=', 0, 'size', [1]) 54 md = checkfield(md, 'fieldname', 'constants.yts', '>', 0, 'size', [1]) 55 md = checkfield(md, 'fieldname', 'constants.referencetemperature', 'size', [1]) 56 57 return md 58 # }}} 59 60 def marshall(self, prefix, md, fid): # {{{ 61 WriteData(fid, prefix, 'object', self, 'fieldname', 'g', 'format', 'Double') 62 WriteData(fid, prefix, 'object', self, 'fieldname', 'yts', 'format', 'Double') 63 WriteData(fid, prefix, 'object', self, 'fieldname', 'referencetemperature', 'format', 'Double') 64 # }}} -
issm/trunk-jpl/src/m/classes/damage.py
r24146 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class damage(object): 7 8 8 """ 9 DAMAGE class definition 9 10 10 11 damage=damage()12 11 Usage: 12 damage = damage() 13 """ 13 14 14 def __init__(self,*args):# {{{15 16 self.isdamage= 0.17 self.D= float('NaN')18 self.law= float('NaN')19 self.spcdamage= float('NaN')20 self.max_damage= float('NaN')15 def __init__(self, *args): # {{{ 16 #damage: 17 self.isdamage = 0. 18 self.D = float('NaN') 19 self.law = float('NaN') 20 self.spcdamage = float('NaN') 21 self.max_damage = float('NaN') 21 22 22 23 24 self.maxiter= float('NaN')25 23 #numerical 24 self.stabilization = float('NaN') 25 self.maxiter = float('NaN') 26 self.elementinterp = '' 26 27 27 28 self.stress_threshold= float('NaN')29 self.stress_ubound= float('NaN')30 self.kappa= float('NaN')31 self.c1= float('NaN')32 self.c2= float('NaN')33 self.c3= float('NaN')34 self.c4= float('NaN')35 self.healing= float('NaN')36 self.equiv_stress= float('NaN')37 28 #general parameters for evolution law: 29 self.stress_threshold = float('NaN') 30 self.stress_ubound = float('NaN') 31 self.kappa = float('NaN') 32 self.c1 = float('NaN') 33 self.c2 = float('NaN') 34 self.c3 = float('NaN') 35 self.c4 = float('NaN') 36 self.healing = float('NaN') 37 self.equiv_stress = float('NaN') 38 self.requested_outputs = [] 38 39 39 40 41 42 43 40 if not len(args): 41 self.setdefaultparameters() 42 else: 43 raise RuntimeError("constructor not supported") 44 # }}} 44 45 45 def __repr__(self):# {{{46 s =' Damage:\n'47 s+="%s\n" % fielddisplay(self,"isdamage","is damage mechanics being used? [0 (default) or 1]")48 49 s+="%s\n" % fielddisplay(self,"D","damage tensor (scalar for now)")50 s+="%s\n" % fielddisplay(self,"law","damage law ['0: analytical','1: pralong']")51 s+="%s\n" % fielddisplay(self,"spcdamage","damage constraints (NaN means no constraint)")52 s+="%s\n" % fielddisplay(self,"max_damage","maximum possible damage (0<=max_damage<1)")53 s+="%s\n" % fielddisplay(self,"stabilization","0: no, 1: artificial_diffusivity, 2: SUPG (not working), 4: Flux corrected transport")54 s+="%s\n" % fielddisplay(self,"maxiter","maximum number of non linear iterations")55 s+="%s\n" % fielddisplay(self,"elementinterp","interpolation scheme for finite elements [''P1'',''P2'']")56 s+="%s\n" % fielddisplay(self,"stress_threshold","stress threshold for damage initiation (Pa)")57 s+="%s\n" % fielddisplay(self,"stress_ubound","stress upper bound for damage healing (Pa)")58 s+="%s\n" % fielddisplay(self,"kappa","ductility parameter for stress softening and damage [>1]")59 s+="%s\n" % fielddisplay(self,"c1","damage parameter 1 ")60 s+="%s\n" % fielddisplay(self,"c2","damage parameter 2 ")61 s+="%s\n" % fielddisplay(self,"c3","damage parameter 3 ")62 s+="%s\n" % fielddisplay(self,"c4","damage parameter 4 ")63 s+="%s\n" % fielddisplay(self,"healing","damage healing parameter")64 s+="%s\n" % fielddisplay(self,"equiv_stress","0: von Mises, 1: max principal")65 s+="%s\n" % fielddisplay(self,'requested_outputs','additional outputs requested')46 def __repr__(self): # {{{ 47 s = ' Damage:\n' 48 s += "%s\n" % fielddisplay(self, "isdamage", "is damage mechanics being used? [0 (default) or 1]") 49 if self.isdamage: 50 s += "%s\n" % fielddisplay(self, "D", "damage tensor (scalar for now)") 51 s += "%s\n" % fielddisplay(self, "law", "damage law ['0: analytical', '1: pralong']") 52 s += "%s\n" % fielddisplay(self, "spcdamage", "damage constraints (NaN means no constraint)") 53 s += "%s\n" % fielddisplay(self, "max_damage", "maximum possible damage (0 <=max_damage < 1)") 54 s += "%s\n" % fielddisplay(self, "stabilization", "0: no, 1: artificial_diffusivity, 2: SUPG (not working), 4: Flux corrected transport") 55 s += "%s\n" % fielddisplay(self, "maxiter", "maximum number of non linear iterations") 56 s += "%s\n" % fielddisplay(self, "elementinterp", "interpolation scheme for finite elements [''P1'', ''P2'']") 57 s += "%s\n" % fielddisplay(self, "stress_threshold", "stress threshold for damage initiation (Pa)") 58 s += "%s\n" % fielddisplay(self, "stress_ubound", "stress upper bound for damage healing (Pa)") 59 s += "%s\n" % fielddisplay(self, "kappa", "ductility parameter for stress softening and damage [ > 1]") 60 s += "%s\n" % fielddisplay(self, "c1", "damage parameter 1 ") 61 s += "%s\n" % fielddisplay(self, "c2", "damage parameter 2 ") 62 s += "%s\n" % fielddisplay(self, "c3", "damage parameter 3 ") 63 s += "%s\n" % fielddisplay(self, "c4", "damage parameter 4 ") 64 s += "%s\n" % fielddisplay(self, "healing", "damage healing parameter") 65 s += "%s\n" % fielddisplay(self, "equiv_stress", "0: von Mises, 1: max principal") 66 s += "%s\n" % fielddisplay(self, 'requested_outputs', 'additional outputs requested') 66 67 67 68 68 return s 69 # }}} 69 70 70 def extrude(self,md):# {{{71 self.D=project3d(md,'vector',self.D,'type','node')72 self.spcdamage=project3d(md,'vector',self.spcdamage,'type','node')73 74 71 def extrude(self, md): # {{{ 72 self.D = project3d(md, 'vector', self.D, 'type', 'node') 73 self.spcdamage = project3d(md, 'vector', self.spcdamage, 'type', 'node') 74 return self 75 #}}} 75 76 76 def setdefaultparameters(self): # {{{ 77 #damage parameters: 78 self.isdamage = 0 79 self.D = 0 80 self.law = 0 81 self.max_damage = 1-1e-5 #if damage reaches 1, solve becomes singular, as viscosity becomes nil 77 def setdefaultparameters(self): # {{{ 78 #damage parameters: 79 self.isdamage = 0 80 self.D = 0 81 self.law = 0 82 self.max_damage = 1 - 1e-5 #if damage reaches 1, solve becomes singular, as viscosity becomes nil 83 #Type of stabilization used 84 self.stabilization = 4 85 #Maximum number of iterations 86 self.maxiter = 100 87 #finite element interpolation 88 self.elementinterp = 'P1' 89 #damage evolution parameters 90 self.stress_threshold = 1.3e5 91 self.kappa = 2.8 92 self.c1 = 0 93 self.c2 = 0 94 self.c3 = 0 95 self.c4 = 0 96 self.healing = 0 97 self.equiv_stress = 0 98 #output default: 99 self.requested_outputs = ['default'] 82 100 83 #Type of stabilization used 84 self.stabilization=4 101 return self 102 # }}} 85 103 86 #Maximum number of iterations 87 self.maxiter=100 104 def defaultoutputs(self, md): # {{{ 105 if md.mesh.domaintype().lower() == '2dhorizontal': 106 list = ['DamageDbar'] 107 else: 108 list = ['DamageD'] 109 return list 110 #}}} 88 111 89 #finite element interpolation 90 self.elementinterp='P1' 112 def checkconsistency(self, md, solution, analyses): # {{{ 113 md = checkfield(md, 'fieldname', 'damage.isdamage', 'numel', [1], 'values', [0, 1]) 114 if self.isdamage: 115 md = checkfield(md, 'fieldname', 'damage.D', '>=', 0, '<=', self.max_damage, 'size', [md.mesh.numberofvertices]) 116 md = checkfield(md, 'fieldname', 'damage.max_damage', '<', 1, '>=', 0) 117 md = checkfield(md, 'fieldname', 'damage.law', 'numel', [1], 'values', [0, 1, 2, 3]) 118 md = checkfield(md, 'fieldname', 'damage.spcdamage', 'Inf', 1, 'timeseries', 1) 119 md = checkfield(md, 'fieldname', 'damage.stabilization', 'numel', [1], 'values', [0, 1, 2, 4]) 120 md = checkfield(md, 'fieldname', 'damage.maxiter', ' >= 0', 0) 121 md = checkfield(md, 'fieldname', 'damage.elementinterp', 'values', ['P1', 'P2']) 122 md = checkfield(md, 'fieldname', 'damage.stress_threshold', '>=', 0) 123 md = checkfield(md, 'fieldname', 'damage.stress_ubound', '>=', 0) 124 md = checkfield(md, 'fieldname', 'damage.kappa', '>', 1) 125 md = checkfield(md, 'fieldname', 'damage.healing', '>=', 0) 126 md = checkfield(md, 'fieldname', 'damage.c1', '>=', 0) 127 md = checkfield(md, 'fieldname', 'damage.c2', '>=', 0) 128 md = checkfield(md, 'fieldname', 'damage.c3', '>=', 0) 129 md = checkfield(md, 'fieldname', 'damage.c4', '>=', 0) 130 md = checkfield(md, 'fieldname', 'damage.healing', '>=', 0) 131 md = checkfield(md, 'fieldname', 'damage.equiv_stress', 'numel', [1], 'values', [0, 1]) 132 md = checkfield(md, 'fieldname', 'damage.requested_outputs', 'stringrow', 1) 133 elif self.law != 0: 134 if (solution == 'DamageEvolutionSolution'): 135 raise RuntimeError('Invalid evolution law (md.damage.law) for a damage solution') 91 136 92 #damage evolution parameters 93 self.stress_threshold=1.3e5 94 self.kappa=2.8 95 self.c1=0 96 self.c2=0 97 self.c3=0 98 self.c4=0 99 self.healing=0 100 self.equiv_stress=0 137 return md 138 # }}} 101 139 102 #output default: 103 self.requested_outputs=['default'] 140 def marshall(self, prefix, md, fid): # {{{ 141 WriteData(fid, prefix, 'object', self, 'fieldname', 'isdamage', 'format', 'Boolean') 142 if self.isdamage: 143 WriteData(fid, prefix, 'object', self, 'fieldname', 'D', 'format', 'DoubleMat', 'mattype', 1) 144 WriteData(fid, prefix, 'object', self, 'fieldname', 'law', 'format', 'Integer') 145 WriteData(fid, prefix, 'object', self, 'fieldname', 'spcdamage', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 146 WriteData(fid, prefix, 'object', self, 'fieldname', 'max_damage', 'format', 'Double') 147 WriteData(fid, prefix, 'object', self, 'fieldname', 'stabilization', 'format', 'Integer') 148 WriteData(fid, prefix, 'object', self, 'fieldname', 'maxiter', 'format', 'Integer') 149 WriteData(fid, prefix, 'name', 'md.damage.elementinterp', 'data', self.elementinterp, 'format', 'String') 150 WriteData(fid, prefix, 'object', self, 'fieldname', 'stress_threshold', 'format', 'Double') 151 WriteData(fid, prefix, 'object', self, 'fieldname', 'stress_ubound', 'format', 'Double') 152 WriteData(fid, prefix, 'object', self, 'fieldname', 'kappa', 'format', 'Double') 153 WriteData(fid, prefix, 'object', self, 'fieldname', 'c1', 'format', 'Double') 154 WriteData(fid, prefix, 'object', self, 'fieldname', 'c2', 'format', 'Double') 155 WriteData(fid, prefix, 'object', self, 'fieldname', 'c3', 'format', 'Double') 156 WriteData(fid, prefix, 'object', self, 'fieldname', 'c4', 'format', 'Double') 157 WriteData(fid, prefix, 'object', self, 'fieldname', 'healing', 'format', 'Double') 158 WriteData(fid, prefix, 'object', self, 'fieldname', 'equiv_stress', 'format', 'Integer') 104 159 105 return self 106 # }}} 107 108 def defaultoutputs(self,md): # {{{ 109 if md.mesh.domaintype().lower()=='2dhorizontal': 110 list = ['DamageDbar'] 111 else: 112 list = ['DamageD'] 113 return list 114 #}}} 115 116 def checkconsistency(self,md,solution,analyses): # {{{ 117 md = checkfield(md,'fieldname','damage.isdamage','numel',[1],'values',[0,1]) 118 if self.isdamage: 119 md = checkfield(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices]) 120 md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0) 121 md = checkfield(md,'fieldname','damage.law','numel',[1],'values',[0,1,2,3]) 122 md = checkfield(md,'fieldname','damage.spcdamage','Inf',1,'timeseries',1) 123 md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0,1,2,4]) 124 md = checkfield(md,'fieldname','damage.maxiter','>=0',0) 125 md = checkfield(md,'fieldname','damage.elementinterp','values',['P1','P2']) 126 md = checkfield(md,'fieldname','damage.stress_threshold','>=',0) 127 md = checkfield(md,'fieldname','damage.stress_ubound','>=',0) 128 md = checkfield(md,'fieldname','damage.kappa','>',1) 129 md = checkfield(md,'fieldname','damage.healing','>=',0) 130 md = checkfield(md,'fieldname','damage.c1','>=',0) 131 md = checkfield(md,'fieldname','damage.c2','>=',0) 132 md = checkfield(md,'fieldname','damage.c3','>=',0) 133 md = checkfield(md,'fieldname','damage.c4','>=',0) 134 md = checkfield(md,'fieldname','damage.healing','>=',0) 135 md = checkfield(md,'fieldname','damage.equiv_stress','numel',[1],'values',[0,1]) 136 md = checkfield(md,'fieldname','damage.requested_outputs','stringrow',1) 137 elif self.law != 0: 138 if (solution=='DamageEvolutionSolution'): 139 raise RuntimeError('Invalid evolution law (md.damage.law) for a damage solution') 140 141 return md 142 # }}} 143 144 def marshall(self,prefix,md,fid): # {{{ 145 WriteData(fid,prefix,'object',self,'fieldname','isdamage','format','Boolean') 146 if self.isdamage: 147 WriteData(fid,prefix,'object',self,'fieldname','D','format','DoubleMat','mattype',1) 148 WriteData(fid,prefix,'object',self,'fieldname','law','format','Integer') 149 WriteData(fid,prefix,'object',self,'fieldname','spcdamage','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 150 WriteData(fid,prefix,'object',self,'fieldname','max_damage','format','Double') 151 WriteData(fid,prefix,'object',self,'fieldname','stabilization','format','Integer') 152 WriteData(fid,prefix,'object',self,'fieldname','maxiter','format','Integer') 153 WriteData(fid,prefix,'name','md.damage.elementinterp','data',self.elementinterp,'format','String') 154 WriteData(fid,prefix,'object',self,'fieldname','stress_threshold','format','Double') 155 WriteData(fid,prefix,'object',self,'fieldname','stress_ubound','format','Double') 156 WriteData(fid,prefix,'object',self,'fieldname','kappa','format','Double') 157 WriteData(fid,prefix,'object',self,'fieldname','c1','format','Double') 158 WriteData(fid,prefix,'object',self,'fieldname','c2','format','Double') 159 WriteData(fid,prefix,'object',self,'fieldname','c3','format','Double') 160 WriteData(fid,prefix,'object',self,'fieldname','c4','format','Double') 161 WriteData(fid,prefix,'object',self,'fieldname','healing','format','Double') 162 WriteData(fid,prefix,'object',self,'fieldname','equiv_stress','format','Integer') 163 164 #process requested outputs 165 outputs = self.requested_outputs 166 indices = [i for i, x in enumerate(outputs) if x == 'default'] 167 if len(indices) > 0: 168 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 169 outputs =outputscopy 170 if self.isdamage: 171 WriteData(fid,prefix,'data',outputs,'name','md.damage.requested_outputs','format','StringArray') 172 # }}} 160 #process requested outputs 161 outputs = self.requested_outputs 162 indices = [i for i, x in enumerate(outputs) if x == 'default'] 163 if len(indices) > 0: 164 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 165 outputs = outputscopy 166 if self.isdamage: 167 WriteData(fid, prefix, 'data', outputs, 'name', 'md.damage.requested_outputs', 'format', 'StringArray') 168 # }}} -
issm/trunk-jpl/src/m/classes/debug.py
r20690 r24213 2 2 from WriteData import * 3 3 4 4 5 class debug(object): 5 6 6 """ 7 DEBUG class definition 7 8 8 9 debug=debug(); 10 9 Usage: 10 debug = debug() 11 """ 11 12 12 def __init__(self): # {{{ 13 self.valgrind = False 14 self.gprof = False 15 self.profiling = False 16 17 #set defaults 18 self.setdefaultparameters() 13 def __init__(self): # {{{ 14 self.valgrind = False 15 self.gprof = False 16 self.profiling = False 19 17 20 #}}} 21 def __repr__(self): # {{{ 22 string=" debug parameters:" 18 #set defaults 19 self.setdefaultparameters() 23 20 24 string="%s\n%s"%(string,fielddisplay(self,"valgrind","use Valgrind to debug (0 or 1)")) 25 string="%s\n%s"%(string,fielddisplay(self,"gprof","use gnu-profiler to find out where the time is spent")) 26 string="%s\n%s"%(string,fielddisplay(self,'profiling','enables profiling (memory, flops, time)')) 27 return string 28 #}}} 29 def setdefaultparameters(self): # {{{ 30 return self 31 #}}} 32 def marshall(self,prefix,md,fid): # {{{ 33 WriteData(fid,prefix,'object',self,'fieldname','profiling','format','Boolean') 34 # }}} 21 #}}} 22 def __repr__(self): # {{{ 23 string = " debug parameters:" 24 25 string = "%s\n%s" % (string, fielddisplay(self, "valgrind", "use Valgrind to debug (0 or 1)")) 26 string = "%s\n%s" % (string, fielddisplay(self, "gprof", "use gnu - profiler to find out where the time is spent")) 27 string = "%s\n%s" % (string, fielddisplay(self, 'profiling', 'enables profiling (memory, flops, time)')) 28 return string 29 #}}} 30 31 def setdefaultparameters(self): # {{{ 32 return self 33 #}}} 34 35 def marshall(self, prefix, md, fid): # {{{ 36 WriteData(fid, prefix, 'object', self, 'fieldname', 'profiling', 'format', 'Boolean') 37 # }}} -
issm/trunk-jpl/src/m/classes/dependent.py
r21303 r24213 6 6 from MeshProfileIntersection import MeshProfileIntersection 7 7 8 8 9 class dependent(object): 9 10 10 """ 11 DEPENDENT class definition 11 12 12 13 dependent=dependent(); 14 13 Usage: 14 dependent = dependent() 15 """ 15 16 16 def __init__(self,*args):# {{{17 self.name= ''18 self.type= ''19 self.fos_reverse_index= float('NaN')20 self.exp= ''21 self.segments= []22 self.index = -123 self.nods= 017 def __init__(self, *args): # {{{ 18 self.name = '' 19 self.type = '' 20 self.fos_reverse_index = float('NaN') 21 self.exp = '' 22 self.segments = [] 23 self.index = - 1 24 self.nods = 0 24 25 25 #set defaults 26 26 #set defaults 27 self.setdefaultparameters() 27 28 28 29 options=pairoptions(*args)29 #use provided options to change fields 30 options = pairoptions(*args) 30 31 31 self.name=options.getfieldvalue('name','')32 self.type=options.getfieldvalue('type','')33 self.exp=options.getfieldvalue('exp','')34 self.segments=options.getfieldvalue('segments',[])35 self.index=options.getfieldvalue('index',-1)36 self.nods=options.getfieldvalue('nods',0)32 self.name = options.getfieldvalue('name', '') 33 self.type = options.getfieldvalue('type', '') 34 self.exp = options.getfieldvalue('exp', '') 35 self.segments = options.getfieldvalue('segments', []) 36 self.index = options.getfieldvalue('index', - 1) 37 self.nods = options.getfieldvalue('nods', 0) 37 38 38 #if name is mass flux: 39 if strcmpi(self.name,'MassFlux'): 40 #make sure that we supplied a file and that it exists! 41 if not os.path.exists(self.exp): 42 raise IOError("dependent checkconsistency: specified 'exp' file does not exist!") 43 #process the file and retrieve segments 44 mesh=options.getfieldvalue('mesh') 45 self.segments=MeshProfileIntersection(mesh.elements,mesh.x,mesh.y,self.exp)[0] 46 # }}} 47 def __repr__(self): # {{{ 48 s =" dependent variable:\n" 39 #if name is mass flux: 40 if strcmpi(self.name, 'MassFlux'): 41 #make sure that we supplied a file and that it exists! 42 if not os.path.exists(self.exp): 43 raise IOError("dependent checkconsistency: specified 'exp' file does not exist!") 44 #process the file and retrieve segments 45 mesh = options.getfieldvalue('mesh') 46 self.segments = MeshProfileIntersection(mesh.elements, mesh.x, mesh.y, self.exp)[0] 47 # }}} 49 48 50 s+="%s\n" % fielddisplay(self,'name',"variable name (must match corresponding String)") 51 s+="%s\n" % fielddisplay(self,'type',"type of variable ('vertex' or 'scalar')") 49 def __repr__(self): # {{{ 50 s = " dependent variable:\n" 52 51 53 if not np.isnan(self.fos_reverse_index): 54 s+="%s\n" % fielddisplay(self,'fos_reverse_index',"index for fos_reverse driver of ADOLC") 55 if self.exp: 56 s+="%s\n" % fielddisplay(self,'exp',"file needed to compute dependent variable") 57 s+="%s\n" % fielddisplay(self,'segments',"mass flux segments") 52 s += "%s\n" % fielddisplay(self, 'name', "variable name (must match corresponding String)") 53 s += "%s\n" % fielddisplay(self, 'type', "type of variable ('vertex' or 'scalar')") 58 54 59 return s 60 # }}} 61 def setdefaultparameters(self): # {{{ 62 #do nothing 63 return self 64 # }}} 65 def checkconsistency(self,md,solution,analyses): # {{{ 66 if strcmpi(self.name,'MassFlux'): 67 if not self.segments: 68 raise RuntimeError("dependent checkconsistency error: need segments to compute this dependent response") 69 if self.index<0: 70 raise RuntimeError("dependent checkconsistency error: index for segments should be >=0") 55 if not np.isnan(self.fos_reverse_index): 56 s += "%s\n" % fielddisplay(self, 'fos_reverse_index', "index for fos_reverse driver of ADOLC") 57 if self.exp: 58 s += "%s\n" % fielddisplay(self, 'exp', "file needed to compute dependent variable") 59 s += "%s\n" % fielddisplay(self, 'segments', "mass flux segments") 71 60 72 if not np.isnan(self.fos_reverse_index): 73 if not strcmpi(driver,'fos_reverse'): 74 raise TypeError("cannot declare a dependent with a fos_reverse_index when the driver is not fos_reverse!") 75 if self.nods==0: 76 raise TypeError("dependent checkconsistency error: nods should be set to the size of the independent variable") 61 return s 62 # }}} 77 63 78 return md 79 # }}} 80 def typetoscalar(self): # {{{ 81 if strcmpi(self.type,'scalar'): 82 scalar=0 83 elif strcmpi(self.type,'vertex'): 84 scalar=1 64 def setdefaultparameters(self): # {{{ 65 #do nothing 66 return self 67 # }}} 85 68 86 return scalar 87 # }}} 69 def checkconsistency(self, md, solution, analyses): # {{{ 70 if strcmpi(self.name, 'MassFlux'): 71 if not self.segments: 72 raise RuntimeError("dependent checkconsistency error: need segments to compute this dependent response") 73 if self.index < 0: 74 raise RuntimeError("dependent checkconsistency error: index for segments should be >= 0") 75 76 if not np.isnan(self.fos_reverse_index): 77 if not strcmpi(driver, 'fos_reverse'): 78 raise TypeError("cannot declare a dependent with a fos_reverse_index when the driver is not fos_reverse!") 79 if self.nods == 0: 80 raise TypeError("dependent checkconsistency error: nods should be set to the size of the independent variable") 81 82 return md 83 # }}} 84 85 def typetoscalar(self): # {{{ 86 if strcmpi(self.type, 'scalar'): 87 scalar = 0 88 elif strcmpi(self.type, 'vertex'): 89 scalar = 1 90 91 return scalar 92 # }}} -
issm/trunk-jpl/src/m/classes/esa.py
r23716 r24213 2 2 from MatlabFuncs import * 3 3 from model import * 4 import numpy as np5 4 from checkfield import checkfield 6 5 from WriteData import WriteData 7 6 7 8 8 class esa(object): 9 10 9 """ 10 ESA class definition 11 11 12 13 esa=esa();14 12 Usage: 13 esa = esa(); 14 """ 15 15 16 def __init__(self):# {{{17 self.deltathickness= float('NaN')18 self.love_h = 0#provided by PREM model()19 self.love_l = 0#ideam20 self.hemisphere= 021 self.degacc= 022 23 self.transitions= []16 def __init__(self): # {{{ 17 self.deltathickness = float('NaN') 18 self.love_h = 0 #provided by PREM model() 19 self.love_l = 0 #ideam 20 self.hemisphere = 0 21 self.degacc = 0 22 self.requested_outputs = [] 23 self.transitions = [] 24 24 25 26 27 25 #set defaults 26 self.setdefaultparameters() 27 #}}} 28 28 29 def __repr__(self):# {{{30 string=' esa parameters:'31 string="%s\n%s"%(string,fielddisplay(self,'deltathickness','thickness change: ice height equivalent [m]'))32 string="%s\n%s"%(string,fielddisplay(self,'love_h','load Love number for radial displacement'))33 string="%s\n%s"%(string,fielddisplay(self,'love_l','load Love number for horizontal displaements'))34 string="%s\n%s"%(string,fielddisplay(self,'hemisphere','North-south, East-west components of 2-D horiz displacement vector: -1 south, 1 north'))35 string="%s\n%s"%(string,fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions'))36 string="%s\n%s"%(string,fielddisplay(self,'transitions','indices into parts of the mesh that will be icecaps'))37 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested (default: EsaUmotion)'))29 def __repr__(self): # {{{ 30 string = ' esa parameters:' 31 string = "%s\n%s" % (string, fielddisplay(self, 'deltathickness', 'thickness change: ice height equivalent [m]')) 32 string = "%s\n%s" % (string, fielddisplay(self, 'love_h', 'load Love number for radial displacement')) 33 string = "%s\n%s" % (string, fielddisplay(self, 'love_l', 'load Love number for horizontal displaements')) 34 string = "%s\n%s" % (string, fielddisplay(self, 'hemisphere', 'North - south, East - west components of 2 - D horiz displacement vector: - 1 south, 1 north')) 35 string = "%s\n%s" % (string, fielddisplay(self, 'degacc', 'accuracy (default .01 deg) for numerical discretization of the Green''s functions')) 36 string = "%s\n%s" % (string, fielddisplay(self, 'transitions', 'indices into parts of the mesh that will be icecaps')) 37 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested (default: EsaUmotion)')) 38 38 39 40 39 return string 40 # }}} 41 41 42 def setdefaultparameters(self): # {{{ 43 #numerical discretization accuracy 44 self.degacc=.01 42 def setdefaultparameters(self): # {{{ 43 #numerical discretization accuracy 44 self.degacc = 0.01 45 #computational flags: 46 self.hemisphere = 0 47 #output default: 48 self.requested_outputs = ['default'] 49 #transitions should be a cell array of vectors: 50 self.transitions = [] 51 #default output 52 self.requested_outputs = ['default'] 53 return self 54 #}}} 45 55 46 #computational flags: 47 self.hemisphere=0; 56 def checkconsistency(self, md, solution, analyses): # {{{ 57 #Early return 58 if (solution != 'EsaAnalysis'): 59 return md 48 60 49 #output default: 50 self.requested_outputs=['default'] 61 md = checkfield(md, 'fieldname', 'esa.deltathickness', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements, 1]) 62 md = checkfield(md, 'fieldname', 'esa.love_h', 'NaN', 1, 'Inf', 1) 63 md = checkfield(md, 'fieldname', 'esa.love_l', 'NaN', 1, 'Inf', 1) 64 md = checkfield(md, 'fieldname', 'esa.hemisphere', 'NaN', 1, 'Inf', 1) 65 md = checkfield(md, 'fieldname', 'esa.degacc', 'size', [1, 1], '>=', 1e-10) 66 md = checkfield(md, 'fieldname', 'esa.requested_outputs', 'stringrow', 1) 51 67 52 #transitions should be a cell array of vectors: 53 self.transitions=[] 68 #check that love numbers are provided at the same level of accuracy: 69 if (size(self.love_h, 0) != size(self.love_l, 0)): 70 error('esa error message: love numbers should be provided at the same level of accuracy') 71 return md 72 # }}} 54 73 55 #default output 56 self.requested_outputs=['default'] 57 return self 58 #}}} 74 def defaultoutputs(self, md): # {{{ 75 return ['EsaUmotion'] 76 # }}} 59 77 60 def checkconsistency(self,md,solution,analyses): # {{{ 61 #Early return 62 if (solution!='EsaAnalysis'): 63 return md 78 def marshall(self, prefix, md, fid): # {{{ 79 WriteData(fid, prefix, 'object', self, 'fieldname', 'deltathickness', 'format', 'DoubleMat', 'mattype', 2) 80 WriteData(fid, prefix, 'object', self, 'fieldname', 'love_h', 'format', 'DoubleMat', 'mattype', 1) 81 WriteData(fid, prefix, 'object', self, 'fieldname', 'love_l', 'format', 'DoubleMat', 'mattype', 1) 82 WriteData(fid, prefix, 'object', self, 'fieldname', 'hemisphere', 'format', 'Integer') 83 WriteData(fid, prefix, 'object', self, 'fieldname', 'degacc', 'format', 'Double') 84 WriteData(fid, prefix, 'object', self, 'fieldname', 'transitions', 'format', 'MatArray') 64 85 65 md = checkfield(md,'fieldname','esa.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofelements,1]) 66 md = checkfield(md,'fieldname','esa.love_h','NaN',1,'Inf',1) 67 md = checkfield(md,'fieldname','esa.love_l','NaN',1,'Inf',1) 68 md = checkfield(md,'fieldname','esa.hemisphere','NaN',1,'Inf',1) 69 md = checkfield(md,'fieldname','esa.degacc','size',[1,1],'>=',1e-10) 70 md = checkfield(md,'fieldname','esa.requested_outputs','stringrow',1) 71 72 #check that love numbers are provided at the same level of accuracy: 73 if (size(self.love_h,0) != size(self.love_l,0)): 74 error('esa error message: love numbers should be provided at the same level of accuracy') 75 return md 76 # }}} 77 78 def defaultoutputs(self,md): # {{{ 79 return ['EsaUmotion'] 80 # }}} 81 82 def marshall(self,prefix,md,fid): # {{{ 83 WriteData(fid,prefix,'object',self,'fieldname','deltathickness','format','DoubleMat','mattype',2) 84 WriteData(fid,prefix,'object',self,'fieldname','love_h','format','DoubleMat','mattype',1) 85 WriteData(fid,prefix,'object',self,'fieldname','love_l','format','DoubleMat','mattype',1) 86 WriteData(fid,prefix,'object',self,'fieldname','hemisphere','format','Integer') 87 WriteData(fid,prefix,'object',self,'fieldname','degacc','format','Double') 88 WriteData(fid,prefix,'object',self,'fieldname','transitions','format','MatArray') 89 90 #process requested outputs 91 outputs = self.requested_outputs 92 indices = [i for i, x in enumerate(outputs) if x == 'default'] 93 if len(indices) > 0: 94 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 95 outputs =outputscopy 96 WriteData(fid,prefix,'data',outputs,'name','md.esa.requested_outputs','format','StringArray') 97 # }}} 86 #process requested outputs 87 outputs = self.requested_outputs 88 indices = [i for i, x in enumerate(outputs) if x == 'default'] 89 if len(indices) > 0: 90 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 91 outputs = outputscopy 92 WriteData(fid, prefix, 'data', outputs, 'name', 'md.esa.requested_outputs', 'format', 'StringArray') 93 # }}} -
issm/trunk-jpl/src/m/classes/flowequation.py
r23716 r24213 1 1 import numpy as np 2 import copy3 2 from project3d import project3d 4 3 from fielddisplay import fielddisplay … … 7 6 import MatlabFuncs as m 8 7 8 9 9 class flowequation(object): 10 11 10 """ 11 FLOWEQUATION class definition 12 12 13 14 flowequation=flowequation(); 15 13 Usage: 14 flowequation = flowequation() 15 """ 16 16 17 def __init__(self):# {{{17 def __init__(self): # {{{ 18 18 19 self.isSIA= 020 self.isSSA= 021 self.isL1L2= 022 self.isHO= 023 self.isFS= 024 self.fe_SSA= ''25 self.fe_HO= ''26 self.fe_FS= ''27 self.augmented_lagrangian_r= 1.28 self.augmented_lagrangian_rhop= 1.29 self.augmented_lagrangian_rlambda= 1.30 31 self.XTH_theta= 0.32 self.vertex_equation= float('NaN')33 self.element_equation= float('NaN')34 self.borderSSA= float('NaN')35 self.borderHO= float('NaN')36 self.borderFS= float('NaN')19 self.isSIA = 0 20 self.isSSA = 0 21 self.isL1L2 = 0 22 self.isHO = 0 23 self.isFS = 0 24 self.fe_SSA = '' 25 self.fe_HO = '' 26 self.fe_FS = '' 27 self.augmented_lagrangian_r = 1. 28 self.augmented_lagrangian_rhop = 1. 29 self.augmented_lagrangian_rlambda = 1. 30 self.augmented_lagrangian_rholambda = 1. 31 self.XTH_theta = 0. 32 self.vertex_equation = float('NaN') 33 self.element_equation = float('NaN') 34 self.borderSSA = float('NaN') 35 self.borderHO = float('NaN') 36 self.borderFS = float('NaN') 37 37 38 39 38 #set defaults 39 self.setdefaultparameters() 40 40 41 #}}} 42 def __repr__(self): # {{{ 43 string=' flow equation parameters:' 41 #}}} 44 42 45 string="%s\n%s"%(string,fielddisplay(self,'isSIA',"is the Shallow Ice Approximation (SIA) used ?")) 46 string="%s\n%s"%(string,fielddisplay(self,'isSSA',"is the Shelfy-Stream Approximation (SSA) used ?")) 47 string="%s\n%s"%(string,fielddisplay(self,'isL1L2',"are L1L2 equations used ?")) 48 string="%s\n%s"%(string,fielddisplay(self,'isHO',"is the Higher-Order (HO) approximation used ?")) 49 string="%s\n%s"%(string,fielddisplay(self,'isFS',"are the Full-FS (FS) equations used ?")) 50 string="%s\n%s"%(string,fielddisplay(self,'fe_SSA',"Finite Element for SSA: 'P1', 'P1bubble' 'P1bubblecondensed' 'P2'")) 51 string="%s\n%s"%(string,fielddisplay(self,'fe_HO' ,"Finite Element for HO: 'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P2bubble','P1xP3','P2xP4'")) 52 string="%s\n%s"%(string,fielddisplay(self,'fe_FS' ,"Finite Element for FS: 'P1P1' (debugging only) 'P1P1GLS' 'MINIcondensed' 'MINI' 'TaylorHood' 'LATaylorHood' 'XTaylorHood'")) 53 string="%s\n%s"%(string,fielddisplay(self,'vertex_equation',"flow equation for each vertex")) 54 string="%s\n%s"%(string,fielddisplay(self,'element_equation',"flow equation for each element")) 55 string="%s\n%s"%(string,fielddisplay(self,'borderSSA',"vertices on SSA's border (for tiling)")) 56 string="%s\n%s"%(string,fielddisplay(self,'borderHO',"vertices on HO's border (for tiling)")) 57 string="%s\n%s"%(string,fielddisplay(self,'borderFS',"vertices on FS' border (for tiling)")) 58 return string 59 #}}} 60 def extrude(self,md): # {{{ 61 self.element_equation=project3d(md,'vector',self.element_equation,'type','element') 62 self.vertex_equation=project3d(md,'vector',self.vertex_equation,'type','node') 63 self.borderSSA=project3d(md,'vector',self.borderSSA,'type','node') 64 self.borderHO=project3d(md,'vector',self.borderHO,'type','node') 65 self.borderFS=project3d(md,'vector',self.borderFS,'type','node') 66 return self 67 #}}} 68 def setdefaultparameters(self): # {{{ 43 def __repr__(self): # {{{ 44 string = ' flow equation parameters:' 69 45 70 #P1 for SSA 71 self.fe_SSA= 'P1'; 46 string = "%s\n%s" % (string, fielddisplay(self, 'isSIA', "is the Shallow Ice Approximation (SIA) used ?")) 47 string = "%s\n%s" % (string, fielddisplay(self, 'isSSA', "is the Shelfy - Stream Approximation (SSA) used ?")) 48 string = "%s\n%s" % (string, fielddisplay(self, 'isL1L2', "are L1L2 equations used ?")) 49 string = "%s\n%s" % (string, fielddisplay(self, 'isHO', "is the Higher - Order (HO) approximation used ?")) 50 string = "%s\n%s" % (string, fielddisplay(self, 'isFS', "are the Full - FS (FS) equations used ?")) 51 string = "%s\n%s" % (string, fielddisplay(self, 'fe_SSA', "Finite Element for SSA: 'P1', 'P1bubble' 'P1bubblecondensed' 'P2'")) 52 string = "%s\n%s" % (string, fielddisplay(self, 'fe_HO', "Finite Element for HO: 'P1', 'P1bubble', 'P1bubblecondensed', 'P1xP2', 'P2xP1', 'P2', 'P2bubble', 'P1xP3', 'P2xP4'")) 53 string = "%s\n%s" % (string, fielddisplay(self, 'fe_FS', "Finite Element for FS: 'P1P1' (debugging only) 'P1P1GLS' 'MINIcondensed' 'MINI' 'TaylorHood' 'LATaylorHood' 'XTaylorHood'")) 54 string = "%s\n%s" % (string, fielddisplay(self, 'vertex_equation', "flow equation for each vertex")) 55 string = "%s\n%s" % (string, fielddisplay(self, 'element_equation', "flow equation for each element")) 56 string = "%s\n%s" % (string, fielddisplay(self, 'borderSSA', "vertices on SSA's border (for tiling)")) 57 string = "%s\n%s" % (string, fielddisplay(self, 'borderHO', "vertices on HO's border (for tiling)")) 58 string = "%s\n%s" % (string, fielddisplay(self, 'borderFS', "vertices on FS' border (for tiling)")) 59 return string 60 #}}} 72 61 73 #P1 for HO 74 self.fe_HO= 'P1'; 62 def extrude(self, md): # {{{ 63 self.element_equation = project3d(md, 'vector', self.element_equation, 'type', 'element') 64 self.vertex_equation = project3d(md, 'vector', self.vertex_equation, 'type', 'node') 65 self.borderSSA = project3d(md, 'vector', self.borderSSA, 'type', 'node') 66 self.borderHO = project3d(md, 'vector', self.borderHO, 'type', 'node') 67 self.borderFS = project3d(md, 'vector', self.borderFS, 'type', 'node') 68 return self 69 #}}} 75 70 76 #MINI condensed element for FS by default 77 self.fe_FS = 'MINIcondensed'; 71 def setdefaultparameters(self): # {{{ 72 #P1 for SSA 73 self.fe_SSA = 'P1' 78 74 79 return self 80 #}}} 81 def checkconsistency(self,md,solution,analyses): # {{{ 75 #P1 for HO 76 self.fe_HO = 'P1' 82 77 83 #Early return 84 if ('StressbalanceAnalysis' not in analyses and 'StressbalanceSIAAnalysis' not in analyses) or (solution=='TransientSolution' and not md.transient.isstressbalance): 85 return md 78 #MINI condensed element for FS by default 79 self.fe_FS = 'MINIcondensed' 86 80 87 md = checkfield(md,'fieldname','flowequation.isSIA','numel',[1],'values',[0,1]) 88 md = checkfield(md,'fieldname','flowequation.isSSA','numel',[1],'values',[0,1]) 89 md = checkfield(md,'fieldname','flowequation.isL1L2','numel',[1],'values',[0,1]) 90 md = checkfield(md,'fieldname','flowequation.isHO','numel',[1],'values',[0,1]) 91 md = checkfield(md,'fieldname','flowequation.isFS','numel',[1],'values',[0,1]) 92 md = checkfield(md,'fieldname','flowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2','P2bubble']) 93 md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P2bubble','P1xP3','P2xP4']) 94 md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','LATaylorHood','XTaylorHood','OneLayerP4z','CrouzeixRaviart','LACrouzeixRaviart']) 95 md = checkfield(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1]) 96 md = checkfield(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1]) 97 md = checkfield(md,'fieldname','flowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1]) 98 md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_r','numel',[1],'>',0.) 99 md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rhop','numel',[1],'>',0.) 100 md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rlambda','numel',[1],'>',0.) 101 md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rholambda','numel',[1],'>',0.) 102 md = checkfield(md,'fieldname','flowequation.XTH_theta','numel',[1],'>=',0.,'<',.5) 103 if m.strcmp(md.mesh.domaintype(),'2Dhorizontal'): 104 md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',[1,2]) 105 md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements],'values',[1,2]) 106 elif m.strcmp(md.mesh.domaintype(),'2Dvertical'): 107 md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',[2,4,5]) 108 md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements],'values',[2,4,5]) 109 elif m.strcmp(md.mesh.domaintype(),'3D'): 110 md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',np.arange(0,8+1)) 111 md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements],'values',np.arange(0,8+1)) 112 else: 113 raise RuntimeError('mesh type not supported yet') 114 if not (self.isSIA or self.isSSA or self.isL1L2 or self.isHO or self.isFS): 115 md.checkmessage("no element types set for this model") 81 return self 82 #}}} 116 83 117 if 'StressbalanceSIAAnalysis' in analyses: 118 if any(self.element_equation==1): 119 if np.any(np.logical_and(self.vertex_equation,md.mask.groundedice_levelset)): 120 print("\n !!! Warning: SIA's model is not consistent on ice shelves !!!\n") 84 def checkconsistency(self, md, solution, analyses): # {{{ 121 85 122 return md 123 # }}} 124 def marshall(self,prefix,md,fid): # {{{ 125 WriteData(fid,prefix,'object',self,'fieldname','isSIA','format','Boolean') 126 WriteData(fid,prefix,'object',self,'fieldname','isSSA','format','Boolean') 127 WriteData(fid,prefix,'object',self,'fieldname','isL1L2','format','Boolean') 128 WriteData(fid,prefix,'object',self,'fieldname','isHO','format','Boolean') 129 WriteData(fid,prefix,'object',self,'fieldname','isFS','format','Boolean') 130 WriteData(fid,prefix,'object',self,'fieldname','fe_SSA','data',self.fe_SSA,'format','String') 131 WriteData(fid,prefix,'object',self,'fieldname','fe_HO','data',self.fe_HO,'format','String') 132 WriteData(fid,prefix,'object',self,'fieldname','fe_FS','data',self.fe_FS ,'format','String') 133 WriteData(fid,prefix,'object',self,'fieldname','augmented_lagrangian_r','format','Double'); 134 WriteData(fid,prefix,'object',self,'fieldname','augmented_lagrangian_rhop','format','Double'); 135 WriteData(fid,prefix,'object',self,'fieldname','augmented_lagrangian_rlambda','format','Double'); 136 WriteData(fid,prefix,'object',self,'fieldname','augmented_lagrangian_rholambda','format','Double'); 137 WriteData(fid,prefix,'object',self,'fieldname','XTH_theta','data',self.XTH_theta ,'format','Double') 138 WriteData(fid,prefix,'object',self,'fieldname','borderSSA','format','DoubleMat','mattype',1) 139 WriteData(fid,prefix,'object',self,'fieldname','borderHO','format','DoubleMat','mattype',1) 140 WriteData(fid,prefix,'object',self,'fieldname','borderFS','format','DoubleMat','mattype',1) 141 #convert approximations to enums 142 WriteData(fid,prefix,'data',self.vertex_equation,'name','md.flowequation.vertex_equation','format','DoubleMat','mattype',1) 143 WriteData(fid,prefix,'data',self.element_equation,'name','md.flowequation.element_equation','format','DoubleMat','mattype',2) 86 #Early return 87 if ('StressbalanceAnalysis' not in analyses and 'StressbalanceSIAAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isstressbalance): 88 return md 144 89 145 # }}} 90 md = checkfield(md, 'fieldname', 'flowequation.isSIA', 'numel', [1], 'values', [0, 1]) 91 md = checkfield(md, 'fieldname', 'flowequation.isSSA', 'numel', [1], 'values', [0, 1]) 92 md = checkfield(md, 'fieldname', 'flowequation.isL1L2', 'numel', [1], 'values', [0, 1]) 93 md = checkfield(md, 'fieldname', 'flowequation.isHO', 'numel', [1], 'values', [0, 1]) 94 md = checkfield(md, 'fieldname', 'flowequation.isFS', 'numel', [1], 'values', [0, 1]) 95 md = checkfield(md, 'fieldname', 'flowequation.fe_SSA', 'values', ['P1', 'P1bubble', 'P1bubblecondensed', 'P2', 'P2bubble']) 96 md = checkfield(md, 'fieldname', 'flowequation.fe_HO', 'values', ['P1', 'P1bubble', 'P1bubblecondensed', 'P1xP2', 'P2xP1', 'P2', 'P2bubble', 'P1xP3', 'P2xP4']) 97 md = checkfield(md, 'fieldname', 'flowequation.fe_FS', 'values', ['P1P1', 'P1P1GLS', 'MINIcondensed', 'MINI', 'TaylorHood', 'LATaylorHood', 'XTaylorHood', 'OneLayerP4z', 'CrouzeixRaviart', 'LACrouzeixRaviart']) 98 md = checkfield(md, 'fieldname', 'flowequation.borderSSA', 'size', [md.mesh.numberofvertices], 'values', [0, 1]) 99 md = checkfield(md, 'fieldname', 'flowequation.borderHO', 'size', [md.mesh.numberofvertices], 'values', [0, 1]) 100 md = checkfield(md, 'fieldname', 'flowequation.borderFS', 'size', [md.mesh.numberofvertices], 'values', [0, 1]) 101 md = checkfield(md, 'fieldname', 'flowequation.augmented_lagrangian_r', 'numel', [1], '>', 0.) 102 md = checkfield(md, 'fieldname', 'flowequation.augmented_lagrangian_rhop', 'numel', [1], '>', 0.) 103 md = checkfield(md, 'fieldname', 'flowequation.augmented_lagrangian_rlambda', 'numel', [1], '>', 0.) 104 md = checkfield(md, 'fieldname', 'flowequation.augmented_lagrangian_rholambda', 'numel', [1], '>', 0.) 105 md = checkfield(md, 'fieldname', 'flowequation.XTH_theta', 'numel', [1], '>=', 0., '<', .5) 106 if m.strcmp(md.mesh.domaintype(), '2Dhorizontal'): 107 md = checkfield(md, 'fieldname', 'flowequation.vertex_equation', 'size', [md.mesh.numberofvertices], 'values', [1, 2]) 108 md = checkfield(md, 'fieldname', 'flowequation.element_equation', 'size', [md.mesh.numberofelements], 'values', [1, 2]) 109 elif m.strcmp(md.mesh.domaintype(), '2Dvertical'): 110 md = checkfield(md, 'fieldname', 'flowequation.vertex_equation', 'size', [md.mesh.numberofvertices], 'values', [2, 4, 5]) 111 md = checkfield(md, 'fieldname', 'flowequation.element_equation', 'size', [md.mesh.numberofelements], 'values', [2, 4, 5]) 112 elif m.strcmp(md.mesh.domaintype(), '3D'): 113 md = checkfield(md, 'fieldname', 'flowequation.vertex_equation', 'size', [md.mesh.numberofvertices], 'values', np.arange(0, 8 + 1)) 114 md = checkfield(md, 'fieldname', 'flowequation.element_equation', 'size', [md.mesh.numberofelements], 'values', np.arange(0, 8 + 1)) 115 else: 116 raise RuntimeError('mesh type not supported yet') 117 if not (self.isSIA or self.isSSA or self.isL1L2 or self.isHO or self.isFS): 118 md.checkmessage("no element types set for this model") 119 120 if 'StressbalanceSIAAnalysis' in analyses: 121 if any(self.element_equation == 1): 122 if np.any(np.logical_and(self.vertex_equation, md.mask.groundedice_levelset)): 123 print("\n !!! Warning: SIA's model is not consistent on ice shelves !!!\n") 124 125 return md 126 # }}} 127 128 def marshall(self, prefix, md, fid): # {{{ 129 WriteData(fid, prefix, 'object', self, 'fieldname', 'isSIA', 'format', 'Boolean') 130 WriteData(fid, prefix, 'object', self, 'fieldname', 'isSSA', 'format', 'Boolean') 131 WriteData(fid, prefix, 'object', self, 'fieldname', 'isL1L2', 'format', 'Boolean') 132 WriteData(fid, prefix, 'object', self, 'fieldname', 'isHO', 'format', 'Boolean') 133 WriteData(fid, prefix, 'object', self, 'fieldname', 'isFS', 'format', 'Boolean') 134 WriteData(fid, prefix, 'object', self, 'fieldname', 'fe_SSA', 'data', self.fe_SSA, 'format', 'String') 135 WriteData(fid, prefix, 'object', self, 'fieldname', 'fe_HO', 'data', self.fe_HO, 'format', 'String') 136 WriteData(fid, prefix, 'object', self, 'fieldname', 'fe_FS', 'data', self.fe_FS, 'format', 'String') 137 WriteData(fid, prefix, 'object', self, 'fieldname', 'augmented_lagrangian_r', 'format', 'Double') 138 WriteData(fid, prefix, 'object', self, 'fieldname', 'augmented_lagrangian_rhop', 'format', 'Double') 139 WriteData(fid, prefix, 'object', self, 'fieldname', 'augmented_lagrangian_rlambda', 'format', 'Double') 140 WriteData(fid, prefix, 'object', self, 'fieldname', 'augmented_lagrangian_rholambda', 'format', 'Double') 141 WriteData(fid, prefix, 'object', self, 'fieldname', 'XTH_theta', 'data', self.XTH_theta, 'format', 'Double') 142 WriteData(fid, prefix, 'object', self, 'fieldname', 'borderSSA', 'format', 'DoubleMat', 'mattype', 1) 143 WriteData(fid, prefix, 'object', self, 'fieldname', 'borderHO', 'format', 'DoubleMat', 'mattype', 1) 144 WriteData(fid, prefix, 'object', self, 'fieldname', 'borderFS', 'format', 'DoubleMat', 'mattype', 1) 145 #convert approximations to enums 146 WriteData(fid, prefix, 'data', self.vertex_equation, 'name', 'md.flowequation.vertex_equation', 'format', 'DoubleMat', 'mattype', 1) 147 WriteData(fid, prefix, 'data', self.element_equation, 'name', 'md.flowequation.element_equation', 'format', 'DoubleMat', 'mattype', 2) 148 149 # }}} -
issm/trunk-jpl/src/m/classes/fourierlove.py
r23716 r24213 3 3 from WriteData import WriteData 4 4 5 5 6 class fourierlove(object): 6 7 7 """ 8 Fourier Love Number class definition 8 9 9 10 fourierlove=fourierlove(); 11 12 def __init__(self):# {{{13 self.nfreq = 0; 14 self.frequencies = 0; 15 self.sh_nmax = 0; 16 self.sh_nmin = 0; 17 self.g0 = 0; 18 self.r0 = 0; 19 self.mu0 = 0; 20 self.allow_layer_deletion = 0; 21 self.love_kernels = 0; 22 self.forcing_type = 0; 10 Usage: 11 fourierlove = fourierlove() 12 """ 13 def __init__(self): # {{{ 14 self.nfreq = 0 15 self.frequencies = 0 16 self.sh_nmax = 0 17 self.sh_nmin = 0 18 self.g0 = 0 19 self.r0 = 0 20 self.mu0 = 0 21 self.allow_layer_deletion = 0 22 self.love_kernels = 0 23 self.forcing_type = 0 23 24 24 25 26 25 #set defaults 26 self.setdefaultparameters() 27 #}}} 27 28 28 def __repr__(self):# {{{29 string=' Fourier Love class:'30 string="%s\n%s"%(string,fielddisplay(self,'nfreq','number of frequencies sampled (default 1, elastic) [Hz]'))31 string="%s\n%s"%(string,fielddisplay(self,'frequencies','frequencies sampled (convention defaults to 0 for the elastic case) [Hz]'))32 string="%s\n%s"%(string,fielddisplay(self,'sh_nmax','maximum spherical harmonic degree (default 256, .35 deg, or 40 km at equator)'))33 string="%s\n%s"%(string,fielddisplay(self,'sh_nmin','minimum spherical harmonic degree (default 1)'))34 string="%s\n%s"%(string,fielddisplay(self,'g0','adimensioning constant for gravity (default 10) [m/s^2]'))35 string="%s\n%s"%(string,fielddisplay(self,'r0','adimensioning constant for radius (default 6378*10^3) [m]'))36 string="%s\n%s"%(string,fielddisplay(self,'mu0','adimensioning constant for stress (default 10^11) [Pa]'))37 string="%s\n%s"%(string,fielddisplay(self,'allow_layer_deletion','allow for migration of the integration boundary with increasing spherical harmonics degree (default 1)'))38 string="%s\n%s"%(string,fielddisplay(self,'love_kernels','compute love numbers at depth? (default 0)'))39 string="%s\n%s"%(string,fielddisplay(self,'forcing_type','integer indicating the nature and depth of the forcing for the Love number calculation (default 11) :'))40 string="%s\n%s"%(string,' 1: Inner core boundary -- Volumic Potential')41 string="%s\n%s"%(string,' 2: Inner core boundary --Pressure')42 string="%s\n%s"%(string,' 3: Inner core boundary --Loading')43 string="%s\n%s"%(string,' 4: Inner core boundary --Tangential traction')44 string="%s\n%s"%(string,' 5: Core mantle boundary --Volumic Potential')45 string="%s\n%s"%(string,' 6: Core mantle boundary --Pressure')46 string="%s\n%s"%(string,' 7: Core mantle boundary --Loading')47 string="%s\n%s"%(string,' 8: Core mantle boundary --Tangential traction')48 string="%s\n%s"%(string,' 9: Surface --Volumic Potential')49 string="%s\n%s"%(string,' 10: Surface --Pressure')50 string="%s\n%s"%(string,' 11: Surface --Loading')51 string="%s\n%s"%(string,' 12: Surface --Tangential traction ')29 def __repr__(self): # {{{ 30 string = ' Fourier Love class:' 31 string = "%s\n%s" % (string, fielddisplay(self, 'nfreq', 'number of frequencies sampled (default 1, elastic) [Hz]')) 32 string = "%s\n%s" % (string, fielddisplay(self, 'frequencies', 'frequencies sampled (convention defaults to 0 for the elastic case) [Hz]')) 33 string = "%s\n%s" % (string, fielddisplay(self, 'sh_nmax', 'maximum spherical harmonic degree (default 256, .35 deg, or 40 km at equator)')) 34 string = "%s\n%s" % (string, fielddisplay(self, 'sh_nmin', 'minimum spherical harmonic degree (default 1)')) 35 string = "%s\n%s" % (string, fielddisplay(self, 'g0', 'adimensioning constant for gravity (default 10) [m / s^2]')) 36 string = "%s\n%s" % (string, fielddisplay(self, 'r0', 'adimensioning constant for radius (default 6378 * 10^3) [m]')) 37 string = "%s\n%s" % (string, fielddisplay(self, 'mu0', 'adimensioning constant for stress (default 10^11) [Pa]')) 38 string = "%s\n%s" % (string, fielddisplay(self, 'allow_layer_deletion', 'allow for migration of the integration boundary with increasing spherical harmonics degree (default 1)')) 39 string = "%s\n%s" % (string, fielddisplay(self, 'love_kernels', 'compute love numbers at depth? (default 0)')) 40 string = "%s\n%s" % (string, fielddisplay(self, 'forcing_type', 'integer indicating the nature and depth of the forcing for the Love number calculation (default 11) :')) 41 string = "%s\n%s" % (string, ' 1: Inner core boundary -- Volumic Potential') 42 string = "%s\n%s" % (string, ' 2: Inner core boundary -- Pressure') 43 string = "%s\n%s" % (string, ' 3: Inner core boundary -- Loading') 44 string = "%s\n%s" % (string, ' 4: Inner core boundary -- Tangential traction') 45 string = "%s\n%s" % (string, ' 5: Core mantle boundary -- Volumic Potential') 46 string = "%s\n%s" % (string, ' 6: Core mantle boundary -- Pressure') 47 string = "%s\n%s" % (string, ' 7: Core mantle boundary -- Loading') 48 string = "%s\n%s" % (string, ' 8: Core mantle boundary -- Tangential traction') 49 string = "%s\n%s" % (string, ' 9: Surface-- Volumic Potential') 50 string = "%s\n%s" % (string, ' 10: Surface-- Pressure') 51 string = "%s\n%s" % (string, ' 11: Surface-- Loading') 52 string = "%s\n%s" % (string, ' 12: Surface-- Tangential traction ') 52 53 53 return string; 54 54 return string 55 #}}} 55 56 56 def extrude(self,md):# {{{57 58 57 def extrude(self, md): # {{{ 58 return self 59 #}}} 59 60 60 def setdefaultparameters(self):# {{{61 62 self.nfreq=163 self.frequencies=[0];#Hz64 self.sh_nmax=256# .35 degree, 40 km at the equator.65 self.sh_nmin=166 self.g0=10 # m/s^267 self.r0=6378*1e3#m68 self.mu0=1e11# Pa69 self.allow_layer_deletion=170 self.love_kernels=071 61 def setdefaultparameters(self): # {{{ 62 #we setup an elastic love number computation by default. 63 self.nfreq = 1 64 self.frequencies = [0] #Hz 65 self.sh_nmax = 256 # .35 degree, 40 km at the equator. 66 self.sh_nmin = 1 67 self.g0 = 10 # m / s^2 68 self.r0 = 6378 * 1e3 #m 69 self.mu0 = 1e11 # Pa 70 self.allow_layer_deletion = 1 71 self.love_kernels = 0 72 self.forcing_type = 11 72 73 73 74 74 return self 75 #}}} 75 76 76 def checkconsistency(self,md,solution,analyses):# {{{77 md = checkfield(md,'fieldname','love.nfreq','NaN',1,'Inf',1,'numel',[1],'>',0); 78 md = checkfield(md,'fieldname','love.frequencies','NaN',1,'Inf',1,'numel',[md.love.nfreq]); 79 md = checkfield(md,'fieldname','love.sh_nmax','NaN',1,'Inf',1,'numel',[1],'>',0); 80 md = checkfield(md,'fieldname','love.sh_nmin','NaN',1,'Inf',1,'numel',[1],'>',0); 81 md = checkfield(md,'fieldname','love.g0','NaN',1,'Inf',1,'numel',[1],'>',0); 82 md = checkfield(md,'fieldname','love.r0','NaN',1,'Inf',1,'numel',[1],'>',0); 83 md = checkfield(md,'fieldname','love.mu0','NaN',1,'Inf',1,'numel',[1],'>',0); 84 md = checkfield(md,'fieldname','love.allow_layer_deletion','values',[0,1]); 85 md = checkfield(md,'fieldname','love.love_kernels','values',[0,1]); 86 md = checkfield(md,'fieldname','love.forcing_type','NaN',1,'Inf',1,'numel',[1],'>',0, '<=', 12); 87 if md.love.sh_nmin<=1 and md.love.forcing_type==9:88 raise RuntimeError("Degree 1 not supported for Volumetric Potential forcing. Use sh_min>=2 for this kind of calculation.")77 def checkconsistency(self, md, solution, analyses): # {{{ 78 md = checkfield(md, 'fieldname', 'love.nfreq', 'NaN', 1, 'Inf', 1, 'numel', [1], '>', 0) 79 md = checkfield(md, 'fieldname', 'love.frequencies', 'NaN', 1, 'Inf', 1, 'numel', [md.love.nfreq]) 80 md = checkfield(md, 'fieldname', 'love.sh_nmax', 'NaN', 1, 'Inf', 1, 'numel', [1], '>', 0) 81 md = checkfield(md, 'fieldname', 'love.sh_nmin', 'NaN', 1, 'Inf', 1, 'numel', [1], '>', 0) 82 md = checkfield(md, 'fieldname', 'love.g0', 'NaN', 1, 'Inf', 1, 'numel', [1], '>', 0) 83 md = checkfield(md, 'fieldname', 'love.r0', 'NaN', 1, 'Inf', 1, 'numel', [1], '>', 0) 84 md = checkfield(md, 'fieldname', 'love.mu0', 'NaN', 1, 'Inf', 1, 'numel', [1], '>', 0) 85 md = checkfield(md, 'fieldname', 'love.allow_layer_deletion', 'values', [0, 1]) 86 md = checkfield(md, 'fieldname', 'love.love_kernels', 'values', [0, 1]) 87 md = checkfield(md, 'fieldname', 'love.forcing_type', 'NaN', 1, 'Inf', 1, 'numel', [1], '>', 0, '<=', 12) 88 if md.love.sh_nmin <= 1 and md.love.forcing_type == 9: 89 raise RuntimeError("Degree 1 not supported for Volumetric Potential forcing. Use sh_min >= 2 for this kind of calculation.") 89 90 90 91 91 return md 92 # }}} 92 93 93 def marshall(self,prefix,md,fid):# {{{94 WriteData(fid,prefix,'object',self,'fieldname','nfreq','format','Integer'); 95 WriteData(fid,prefix,'object',self,'fieldname','frequencies','format','DoubleMat','mattype',3); 96 WriteData(fid,prefix,'object',self,'fieldname','sh_nmax','format','Integer'); 97 WriteData(fid,prefix,'object',self,'fieldname','sh_nmin','format','Integer'); 98 WriteData(fid,prefix,'object',self,'fieldname','g0','format','Double'); 99 WriteData(fid,prefix,'object',self,'fieldname','r0','format','Double'); 100 WriteData(fid,prefix,'object',self,'fieldname','mu0','format','Double'); 101 WriteData(fid,prefix,'object',self,'fieldname','allow_layer_deletion','format','Boolean'); 102 WriteData(fid,prefix,'object',self,'fieldname','love_kernels','format','Boolean'); 103 WriteData(fid,prefix,'object',self,'fieldname','forcing_type','format','Integer'); 104 94 def marshall(self, prefix, md, fid): # {{{ 95 WriteData(fid, prefix, 'object', self, 'fieldname', 'nfreq', 'format', 'Integer') 96 WriteData(fid, prefix, 'object', self, 'fieldname', 'frequencies', 'format', 'DoubleMat', 'mattype', 3) 97 WriteData(fid, prefix, 'object', self, 'fieldname', 'sh_nmax', 'format', 'Integer') 98 WriteData(fid, prefix, 'object', self, 'fieldname', 'sh_nmin', 'format', 'Integer') 99 WriteData(fid, prefix, 'object', self, 'fieldname', 'g0', 'format', 'Double') 100 WriteData(fid, prefix, 'object', self, 'fieldname', 'r0', 'format', 'Double') 101 WriteData(fid, prefix, 'object', self, 'fieldname', 'mu0', 'format', 'Double') 102 WriteData(fid, prefix, 'object', self, 'fieldname', 'allow_layer_deletion', 'format', 'Boolean') 103 WriteData(fid, prefix, 'object', self, 'fieldname', 'love_kernels', 'format', 'Boolean') 104 WriteData(fid, prefix, 'object', self, 'fieldname', 'forcing_type', 'format', 'Integer') 105 # }}} -
issm/trunk-jpl/src/m/classes/friction.py
r23870 r24213 10 10 11 11 Usage: 12 friction =friction()12 friction = friction() 13 13 """ 14 14 … … 19 19 self.coupling = 0 20 20 self.effective_pressure = float('NaN') 21 21 #set defaults 22 22 self.setdefaultparameters() 23 self.requested_outputs = [] 23 24 #}}} 24 25 25 26 def __repr__(self): # {{{ 26 string = "Basal shear stress parameters: Sigma_b = coefficient^2 * Neff ^r * |u_b|^(s -1) * u_b,\n(effective stress Neff=rho_ice*g*thickness+rho_water*g*base, r=q/p and s=1/p)"27 string = "Basal shear stress parameters: Sigma_b = coefficient^2 * Neff ^r * |u_b|^(s - 1) * u_b, \n(effective stress Neff = rho_ice * g * thickness + rho_water * g * base, r = q / p and s = 1 / p)" 27 28 28 29 string = "%s\n%s" % (string, fielddisplay(self, "coefficient", "friction coefficient [SI]")) … … 31 32 string = "%s\n%s" % (string, fielddisplay(self, 'coupling', 'Coupling flag 0: uniform sheet (negative pressure ok, default), 1: ice pressure only, 2: water pressure assuming uniform sheet (no negative pressure), 3: use provided effective_pressure, 4: used coupled model (not implemented yet)')) 32 33 string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure', 'Effective Pressure for the forcing if not coupled [Pa]')) 34 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 33 35 return string 34 36 #}}} … … 38 40 self.p = project3d(md, 'vector', self.p, 'type', 'element') 39 41 self.q = project3d(md, 'vector', self.q, 'type', 'element') 40 #if self.coupling==0:#doesnt work with empty loop, so just skip it?42 #if self.coupling == 0: #doesnt work with empty loop, so just skip it? 41 43 if self.coupling in[3, 4]: 42 44 self.effective_pressure = project3d(md, 'vector', self.effective_pressure, 'type', 'node', 'layer', 1) … … 47 49 48 50 def setdefaultparameters(self): # {{{ 51 self.requested_outputs = ['default'] 49 52 return self 53 #}}} 54 55 def defaultoutputs(self, md): # {{{ 56 list = [] 57 return list 50 58 #}}} 51 59 … … 63 71 md = checkfield(md, 'fieldname', 'friction.effective_pressure', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 64 72 elif self.coupling > 4: 65 raise ValueError('md.friction.coupling larger than 4, not supported yet') 73 raise ValueError('md.friction.coupling larger than 4, not supported yet') 74 md = checkfield(md, 'fieldname', 'friction.requested_outputs', 'stringrow', 1) 66 75 return md 67 76 # }}} … … 73 82 WriteData(fid, prefix, 'object', self, 'fieldname', 'q', 'format', 'DoubleMat', 'mattype', 2) 74 83 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'coupling', 'format', 'Integer') 75 if self.coupling in[3, 4]:84 if self.coupling == 3: 76 85 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'effective_pressure', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 86 if self.coupling == 4: 87 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'effective_pressure', 'format', 'DoubleMat', 'mattype', 1) 77 88 elif self.coupling > 4: 78 raise ValueError('md.friction.coupling larger than 4, not supported yet') 89 raise ValueError('md.friction.coupling larger than 4, not supported yet') 90 91 #process requested outputs 92 outputs = self.requested_outputs 93 indices = [i for i, x in enumerate(outputs) if x == 'default'] 94 if len(indices) > 0: 95 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 96 outputs = outputscopy 97 WriteData(fid, prefix, 'data', outputs, 'name', 'md.friction.requested_outputs', 'format', 'StringArray') 79 98 # }}} -
issm/trunk-jpl/src/m/classes/frictioncoulomb.py
r23716 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class frictioncoulomb(object): 7 8 8 """ 9 FRICTIONCOULOMB class definition 9 10 10 11 frictioncoulomb=frictioncoulomb()12 11 Usage: 12 frictioncoulomb = frictioncoulomb() 13 """ 13 14 14 def __init__(self):# {{{15 16 17 18 19 self.coupling= 020 self.effective_pressure= float('NaN')21 22 15 def __init__(self): # {{{ 16 self.coefficient = float('NaN') 17 self.coefficientcoulomb = float('NaN') 18 self.p = float('NaN') 19 self.q = float('NaN') 20 self.coupling = 0 21 self.effective_pressure = float('NaN') 22 #set defaults 23 self.setdefaultparameters() 23 24 #}}} 24 25 25 def __repr__(self): # {{{ 26 string="Basal shear stress parameters: Sigma_b = min(coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b,\n coefficientcoulomb^2 * rho_i * g * (h-h_f)), (effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p)." 27 string="%s\n%s"%(string,fielddisplay(self,"coefficient","power law (Weertman) friction coefficient [SI]")) 28 string="%s\n%s"%(string,fielddisplay(self,"coefficientcoulomb","Coulomb friction coefficient [SI]")) 29 string="%s\n%s"%(string,fielddisplay(self,"p","p exponent")) 30 string="%s\n%s"%(string,fielddisplay(self,"q","q exponent")) 31 string="%s\n%s"%(string,fielddisplay(self,'coupling','Coupling flag: 0 for default, 1 for forcing(provide md.friction.effective_pressure) and 2 for coupled(not implemented yet)')) 32 string="%s\n%s"%(string,fielddisplay(self,'effective_pressure','Effective Pressure for the forcing if not coupled [Pa]')) 33 return string 34 #}}} 35 def extrude(self,md): # {{{ 36 self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1) 37 self.coefficientcoulomb=project3d(md,'vector',self.coefficientcoulomb,'type','node','layer',1) 38 self.p=project3d(md,'vector',self.p,'type','element') 39 self.q=project3d(md,'vector',self.q,'type','element') 40 if self.coupling==1: 41 self.effective_pressure=project3d(md,'vector',self.effective_pressure,'type','node','layer',1) 42 elif self.coupling==2: 43 raise ValueError('coupling not supported yet') 44 elif self.coupling > 2: 45 raise ValueError('md.friction.coupling larger than 2, not supported yet') 46 return self 47 #}}} 26 def __repr__(self): # {{{ 27 string = "Basal shear stress parameters: Sigma_b = min(coefficient^2 * Neff ^r * |u_b|^(s - 1) * u_b, \n coefficientcoulomb^2 * rho_i * g * (h - h_f)), (effective stress Neff = rho_ice * g * thickness + rho_water * g * bed, r = q / p and s = 1 / p)." 28 string = "%s\n%s" % (string, fielddisplay(self, "coefficient", "power law (Weertman) friction coefficient [SI]")) 29 string = "%s\n%s" % (string, fielddisplay(self, "coefficientcoulomb", "Coulomb friction coefficient [SI]")) 30 string = "%s\n%s" % (string, fielddisplay(self, "p", "p exponent")) 31 string = "%s\n%s" % (string, fielddisplay(self, "q", "q exponent")) 32 string = "%s\n%s" % (string, fielddisplay(self, 'coupling', 'Coupling flag: 0 for default, 1 for forcing(provide md.friction.effective_pressure) and 2 for coupled(not implemented yet)')) 33 string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure', 'Effective Pressure for the forcing if not coupled [Pa]')) 34 return string 35 #}}} 48 36 49 def setdefaultparameters(self): # {{{ 50 return self 51 #}}} 37 def extrude(self, md): # {{{ 38 self.coefficient = project3d(md, 'vector', self.coefficient, 'type', 'node', 'layer', 1) 39 self.coefficientcoulomb = project3d(md, 'vector', self.coefficientcoulomb, 'type', 'node', 'layer', 1) 40 self.p = project3d(md, 'vector', self.p, 'type', 'element') 41 self.q = project3d(md, 'vector', self.q, 'type', 'element') 42 if self.coupling == 1: 43 self.effective_pressure = project3d(md, 'vector', self.effective_pressure, 'type', 'node', 'layer', 1) 44 elif self.coupling == 2: 45 raise ValueError('coupling not supported yet') 46 elif self.coupling > 2: 47 raise ValueError('md.friction.coupling larger than 2, not supported yet') 48 return self 49 #}}} 52 50 53 def checkconsistency(self,md,solution,analyses): # {{{ 54 #Early return 55 if 'StressbalanceAnalysis' not in analyses and 'ThermalAnalysis' not in analyses: 56 return md 51 def setdefaultparameters(self): # {{{ 52 return self 53 #}}} 57 54 58 md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1) 59 md = checkfield(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1,'Inf',1) 60 md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements]) 61 md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements]) 62 if self.coupling==1: 63 md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'Inf',1,'timeseries',1) 64 elif self.coupling==2: 65 raise ValueError('coupling not supported yet') 66 elif self.coupling > 2: 67 raise ValueError('md.friction.coupling larger than 2, not supported yet') 68 return md 55 def checkconsistency(self, md, solution, analyses): # {{{ 56 #Early return 57 if 'StressbalanceAnalysis' not in analyses and 'ThermalAnalysis' not in analyses: 58 return md 59 60 md = checkfield(md, 'fieldname', 'friction.coefficient', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 61 md = checkfield(md, 'fieldname', 'friction.coefficientcoulomb', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 62 md = checkfield(md, 'fieldname', 'friction.q', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements]) 63 md = checkfield(md, 'fieldname', 'friction.p', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements]) 64 if self.coupling == 1: 65 md = checkfield(md, 'fieldname', 'friction.effective_pressure', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 66 elif self.coupling == 2: 67 raise ValueError('coupling not supported yet') 68 elif self.coupling > 2: 69 raise ValueError('md.friction.coupling larger than 2, not supported yet') 70 return md 69 71 # }}} 70 72 71 def marshall(self,prefix,md,fid):# {{{72 WriteData(fid,prefix,'name','md.friction.law','data',7,'format','Integer')73 WriteData(fid,prefix,'object',self,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)74 WriteData(fid,prefix,'object',self,'fieldname','coefficientcoulomb','format','DoubleMat','mattype',1)75 WriteData(fid,prefix,'object',self,'fieldname','p','format','DoubleMat','mattype',2)76 WriteData(fid,prefix,'object',self,'fieldname','q','format','DoubleMat','mattype',2)77 WriteData(fid,prefix,'class','friction','object',self,'fieldname','coupling','format','Integer')78 if self.coupling==1:79 WriteData(fid,prefix,'class','friction','object',self,'fieldname','effective_pressure','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)80 elif self.coupling==2:81 82 83 73 def marshall(self, prefix, md, fid): # {{{ 74 WriteData(fid, prefix, 'name', 'md.friction.law', 'data', 7, 'format', 'Integer') 75 WriteData(fid, prefix, 'object', self, 'fieldname', 'coefficient', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 76 WriteData(fid, prefix, 'object', self, 'fieldname', 'coefficientcoulomb', 'format', 'DoubleMat', 'mattype', 1) 77 WriteData(fid, prefix, 'object', self, 'fieldname', 'p', 'format', 'DoubleMat', 'mattype', 2) 78 WriteData(fid, prefix, 'object', self, 'fieldname', 'q', 'format', 'DoubleMat', 'mattype', 2) 79 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'coupling', 'format', 'Integer') 80 if self.coupling == 1: 81 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'effective_pressure', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 82 elif self.coupling == 2: 83 raise ValueError('coupling not supported yet') 84 elif self.coupling > 2: 85 raise ValueError('md.friction.coupling larger than 2, not supported yet') 84 86 # }}} -
issm/trunk-jpl/src/m/classes/frictionhydro.py
r23526 r24213 7 7 8 8 class frictionhydro(object): 9 10 9 """ 10 friction hydro is the friction law from Schoof 2005 or Gagliardini2007 11 11 12 13 friction=frictionhydro(); 14 15 def __init__(self):# {{{16 self.coupling= 017 self.q= np.nan18 self.C= np.nan19 self.As= np.nan20 self.effective_pressure= np.nan21 12 Usage: 13 friction = frictionhydro() 14 """ 15 def __init__(self): # {{{ 16 self.coupling = 0 17 self.q = np.nan 18 self.C = np.nan 19 self.As = np.nan 20 self.effective_pressure = np.nan 21 #set defaults 22 22 23 24 23 self.setdefaultparameters() 24 # }}} 25 25 26 def __repr__(self):# {{{27 string='Effective Pressure based friction law described in Gagliardini 2007'28 string="%s\n%s"%(string,fielddisplay(self,'coupling','Coupling flag 0: uniform sheet (negative pressure ok, default), 1: ice pressure only, 2: water pressure assuming uniform sheet (no negative pressure), 3: use provided effective_pressure, 4: used coupled model (not implemented yet)'))29 string="%s\n%s"%(string,fielddisplay(self,'q','friction law exponent q>=1'))30 string="%s\n%s"%(string,fielddisplay(self,'C','friction law max value (Iken bound)'))31 string="%s\n%s"%(string,fielddisplay(self,'As','Sliding Parameter without cavitation [m Pa^-n s^-1]'))32 string="%s\n%s"%(string,fielddisplay(self,'effective_pressure','Effective Pressure for the forcing if not coupled [Pa]'))26 def __repr__(self): # {{{ 27 string = 'Effective Pressure based friction law described in Gagliardini 2007' 28 string = "%s\n%s" % (string, fielddisplay(self, 'coupling', 'Coupling flag 0: uniform sheet (negative pressure ok, default), 1: ice pressure only, 2: water pressure assuming uniform sheet (no negative pressure), 3: use provided effective_pressure, 4: used coupled model (not implemented yet)')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'q', 'friction law exponent q >= 1')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'C', 'friction law max value (Iken bound)')) 31 string = "%s\n%s" % (string, fielddisplay(self, 'As', 'Sliding Parameter without cavitation [m Pa^ - n s^ - 1]')) 32 string = "%s\n%s" % (string, fielddisplay(self, 'effective_pressure', 'Effective Pressure for the forcing if not coupled [Pa]')) 33 33 34 35 34 return string 35 # }}} 36 36 37 def extrude(self,md):# {{{38 self.q=project3d(md,'vector',self.q,'type','element')39 self.C=project3d(md,'vector',self.C,'type','element')40 self.As=project3d(md,'vector',self.As,'type','element')41 if self.coupling in[3,4]:42 self.effective_pressure=project3d(md,'vector',self.effective_pressure,'type','node','layer',1)43 44 45 46 37 def extrude(self, md): # {{{ 38 self.q = project3d(md, 'vector', self.q, 'type', 'element') 39 self.C = project3d(md, 'vector', self.C, 'type', 'element') 40 self.As = project3d(md, 'vector', self.As, 'type', 'element') 41 if self.coupling in[3, 4]: 42 self.effective_pressure = project3d(md, 'vector', self.effective_pressure, 'type', 'node', 'layer', 1) 43 elif self.coupling > 4: 44 raise ValueError('md.friction.coupling larger than 4, not supported yet') 45 return self 46 # }}} 47 47 48 def setdefaultparameters(self): # {{{ 48 def setdefaultparameters(self): # {{{ 49 self.coupling = 0 50 self.effective_pressure = np.nan 49 51 50 self.coupling = 0 51 self.effective_pressure = np.nan 52 return self 53 # }}} 52 54 53 return self 54 # }}} 55 def checkconsistency(self, md, solution, analyses): #{{{ 56 #Early return 57 if 'StressbalanceAnalysis' in analyses and 'ThermalAnalysis' in analyses: 58 return md 55 59 56 def checkconsistency(self,md,solution,analyses): #{{{ 60 md = checkfield(md, 'fieldname', 'friction.coupling', 'numel', [1], 'values', [0, 1, 2, 3, 4]) 61 md = checkfield(md, 'fieldname', 'friction.q', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements]) 62 md = checkfield(md, 'fieldname', 'friction.C', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements]) 63 md = checkfield(md, 'fieldname', 'friction.As', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements]) 64 if self.coupling == 3: 65 md = checkfield(md, 'fieldname', 'friction.effective_pressure', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 66 elif self.coupling > 4: 67 raise ValueError('md.friction.coupling larger than 4, not supported yet') 68 # }}} 57 69 58 #Early return 59 if 'StressbalanceAnalysis' in analyses and 'ThermalAnalysis' in analyses: 60 return md 61 62 md = checkfield(md,'fieldname','friction.coupling','numel',[1],'values',[0,1,2,3,4]) 63 md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements]) 64 md = checkfield(md,'fieldname','friction.C','NaN',1,'Inf',1,'size',[md.mesh.numberofelements]) 65 md = checkfield(md,'fieldname','friction.As','NaN',1,'Inf',1,'size',[md.mesh.numberofelements]) 66 if self.coupling==3: 67 md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'Inf',1,'timeseries',1) 68 elif self.coupling > 4: 69 raise ValueError('md.friction.coupling larger than 4, not supported yet') 70 # }}} 71 72 def marshall(self,prefix,md,fid): #{{{ 73 WriteData(fid,prefix,'name','md.friction.law','data',3,'format','Integer') 74 WriteData(fid,prefix,'class','friction','object',self,'fieldname','coupling','format','Integer') 75 WriteData(fid,prefix,'class','friction','object',self,'fieldname','q','format','DoubleMat','mattype',2) 76 WriteData(fid,prefix,'class','friction','object',self,'fieldname','C','format','DoubleMat','mattype',2) 77 WriteData(fid,prefix,'class','friction','object',self,'fieldname','As','format','DoubleMat','mattype',2) 78 if self.coupling in[3,4]: 79 WriteData(fid,prefix,'class','friction','object',self,'fieldname','effective_pressure','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 80 elif self.coupling > 4: 81 raise ValueError('md.friction.coupling larger than 4, not supported yet') 82 #}}} 70 def marshall(self, prefix, md, fid): #{{{ 71 WriteData(fid, prefix, 'name', 'md.friction.law', 'data', 3, 'format', 'Integer') 72 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'coupling', 'format', 'Integer') 73 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'q', 'format', 'DoubleMat', 'mattype', 2) 74 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'C', 'format', 'DoubleMat', 'mattype', 2) 75 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'As', 'format', 'DoubleMat', 'mattype', 2) 76 if self.coupling in[3, 4]: 77 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'effective_pressure', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 78 elif self.coupling > 4: 79 raise ValueError('md.friction.coupling larger than 4, not supported yet') 80 #}}} -
issm/trunk-jpl/src/m/classes/frictionshakti.py
r23716 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class frictionshakti(object): 7 8 8 """ 9 FRICTIONSHAKTI class definition 9 10 10 11 friction=frictionshakti()12 11 Usage: 12 friction = frictionshakti() 13 """ 13 14 14 def __init__(self,md):# {{{15 16 17 18 15 def __init__(self, md): # {{{ 16 self.coefficient = md.friction.coefficient 17 #set defaults 18 self.setdefaultparameters() 19 #}}} 19 20 20 def __repr__(self):# {{{21 string="Basal shear stress parameters: Sigma_b = coefficient^2 * Neff * u_b\n(effective stress Neff=rho_ice*g*thickness+rho_water*g*(head-b))"22 string="%s\n%s"%(string,fielddisplay(self,"coefficient","friction coefficient [SI]"))23 24 21 def __repr__(self): # {{{ 22 string = "Basal shear stress parameters: Sigma_b = coefficient^2 * Neff * u_b\n(effective stress Neff = rho_ice * g * thickness + rho_water * g * (head - b))" 23 string = "%s\n%s" % (string, fielddisplay(self, "coefficient", "friction coefficient [SI]")) 24 return string 25 #}}} 25 26 26 def extrude(self,md):# {{{27 self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1)28 29 27 def extrude(self, md): # {{{ 28 self.coefficient = project3d(md, 'vector', self.coefficient, 'type', 'node', 'layer', 1) 29 return self 30 #}}} 30 31 31 def setdefaultparameters(self):# {{{32 33 32 def setdefaultparameters(self): # {{{ 33 return self 34 #}}} 34 35 35 def checkconsistency(self,md,solution,analyses):# {{{36 37 38 36 def checkconsistency(self, md, solution, analyses): # {{{ 37 #Early return 38 if 'StressbalanceAnalysis' not in analyses and 'ThermalAnalysis' not in analyses: 39 return md 39 40 40 md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1)41 42 41 md = checkfield(md, 'fieldname', 'friction.coefficient', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 42 return md 43 # }}} 43 44 44 def marshall(self,prefix,md,fid): # {{{ 45 yts=md.constants.yts 46 WriteData(fid,prefix,'name','md.friction.law','data',8,'format','Integer') 47 WriteData(fid,prefix,'object',self,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 45 def marshall(self, prefix, md, fid): # {{{ 46 WriteData(fid, prefix, 'name', 'md.friction.law', 'data', 8, 'format', 'Integer') 47 WriteData(fid, prefix, 'object', self, 'fieldname', 'coefficient', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 48 48 # }}} -
issm/trunk-jpl/src/m/classes/frictionwaterlayer.py
r23784 r24213 1 import numpy as np2 1 from project3d import project3d 3 2 from fielddisplay import fielddisplay … … 7 6 8 7 class frictionwaterlayer(object): 9 10 8 """ 9 frictionwaterlayer class definition 11 10 12 Usage: 13 friction=frictionwaterlayer(md); 14 """ 15 def __init__(self,md): # {{{ 16 self.coefficient = md.friction.coefficient 17 self.f = float('NaN') 18 self.p = md.friction.p 19 self.q = md.friction.q 20 self.water_layer = float('NaN') 21 #}}} 22 23 def checkconsistency(self,md,solution,analyses): #{{{ 24 #Early return 25 if ('StressbalanceAnalysis' not in analyses) and ('ThermalAnalysis' not in analyses): 26 return 11 Usage: 12 friction = frictionwaterlayer(md) 13 """ 14 def __init__(self, md): # {{{ 15 self.coefficient = md.friction.coefficient 16 self.f = float('NaN') 17 self.p = md.friction.p 18 self.q = md.friction.q 19 self.water_layer = float('NaN') 20 #}}} 27 21 28 md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1) 29 md = checkfield(md,'fieldname','friction.f','size',[1],'NaN',1,'Inf',1) 30 md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements]) 31 md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements]) 32 md = checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1,'>=',0.) 33 # }}} 22 def checkconsistency(self, md, solution, analyses): #{{{ 23 #Early return 24 if ('StressbalanceAnalysis' not in analyses) and ('ThermalAnalysis' not in analyses): 25 return 34 26 35 def extrude(self,md): # {{{ 36 self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1) 37 self.p=project3d(md,'vector',self.p,'type','element') 38 self.q=project3d(md,'vector',self.q,'type','element') 39 self.water_layer=project3d(md,'vector',self.water_layer,'type','node','layer',1) 40 return self 41 # }}} 27 md = checkfield(md, 'fieldname', 'friction.coefficient', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 28 md = checkfield(md, 'fieldname', 'friction.f', 'size', [1], 'NaN', 1, 'Inf', 1) 29 md = checkfield(md, 'fieldname', 'friction.q', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements]) 30 md = checkfield(md, 'fieldname', 'friction.p', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements]) 31 md = checkfield(md, 'fieldname', 'thermal.spctemperature', 'Inf', 1, 'timeseries', 1, '>=', 0.) 32 # }}} 42 33 34 def extrude(self, md): # {{{ 35 self.coefficient = project3d(md, 'vector', self.coefficient, 'type', 'node', 'layer', 1) 36 self.p = project3d(md, 'vector', self.p, 'type', 'element') 37 self.q = project3d(md, 'vector', self.q, 'type', 'element') 38 self.water_layer = project3d(md, 'vector', self.water_layer, 'type', 'node', 'layer', 1) 39 return self 40 # }}} 43 41 44 def __repr__(self):# {{{45 string='Basal shear stress parameters: tau_b = coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b * 1/f(T)\n(effective stress Neff=rho_ice*g*thickness+rho_water*g*(bed+water_layer), r=q/p and s=1/p)'46 string="%s\n%s"%(string,fielddisplay(self,'coefficient','frictiontemp coefficient [SI]'))47 string="%s\n%s"%(string,fielddisplay(self,'f','f variable for effective pressure'))48 string="%s\n%s"%(string,fielddisplay(self,'p','p exponent'))49 string="%s\n%s"%(string,fielddisplay(self,'q','q exponent'))50 string="%s\n%s"%(string,fielddisplay(self,'water_layer','water thickness at the base of the ice (m)'))42 def __repr__(self): # {{{ 43 string = 'Basal shear stress parameters: tau_b = coefficient^2 * Neff ^r * |u_b|^(s - 1) * u_b * 1 / f(T)\n(effective stress Neff = rho_ice * g * thickness + rho_water * g * (bed + water_layer), r = q / p and s = 1 / p)' 44 string = "%s\n%s" % (string, fielddisplay(self, 'coefficient', 'frictiontemp coefficient [SI]')) 45 string = "%s\n%s" % (string, fielddisplay(self, 'f', 'f variable for effective pressure')) 46 string = "%s\n%s" % (string, fielddisplay(self, 'p', 'p exponent')) 47 string = "%s\n%s" % (string, fielddisplay(self, 'q', 'q exponent')) 48 string = "%s\n%s" % (string, fielddisplay(self, 'water_layer', 'water thickness at the base of the ice (m)')) 51 49 52 53 50 return string 51 #}}} 54 52 55 56 def marshall(self,prefix,md,fid): #{{{ 57 yts=md.constants.yts 58 59 WriteData(fid,prefix,'name','md.friction.law','data',5,'format','Integer') 60 WriteData(fid,prefix,'class','friction','object',self,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 61 WriteData(fid,prefix,'class','friction','object',self,'fieldname','f','format','Double') 62 WriteData(fid,prefix,'class','friction','object',self,'fieldname','p','format','DoubleMat','mattype',2) 63 WriteData(fid,prefix,'class','friction','object',self,'fieldname','q','format','DoubleMat','mattype',2) 64 WriteData(fid,prefix,'class','friction','object',self,'fieldname','water_layer','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 65 #}}} 66 67 53 def marshall(self, prefix, md, fid): #{{{ 54 yts = md.constants.yts 55 WriteData(fid, prefix, 'name', 'md.friction.law', 'data', 5, 'format', 'Integer') 56 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'coefficient', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 57 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'f', 'format', 'Double') 58 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'p', 'format', 'DoubleMat', 'mattype', 2) 59 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'q', 'format', 'DoubleMat', 'mattype', 2) 60 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'water_layer', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 61 #}}} -
issm/trunk-jpl/src/m/classes/frictionweertman.py
r21049 r24213 1 1 from fielddisplay import fielddisplay 2 from project3d import project3d3 2 from checkfield import checkfield 4 3 from WriteData import WriteData 5 4 5 6 6 class frictionweertman(object): 7 8 7 """ 8 FRICTIONWEERTMAN class definition 9 9 10 11 frictionweertman=frictionweertman(); 12 10 Usage: 11 frictionweertman = frictionweertman() 12 """ 13 13 14 def __init__(self):# {{{15 16 14 def __init__(self): # {{{ 15 self.C = float('NaN') 16 self.m = float('NaN') 17 17 18 19 18 #set defaults 19 self.setdefaultparameters() 20 20 21 #}}} 22 def __repr__(self): # {{{ 23 string="Weertman sliding law parameters: Sigma_b = C^(-1/m) * |u_b|^(1/m-1) * u_b" 21 #}}} 24 22 25 string="%s\n%s"%(string,fielddisplay(self,"C","friction coefficient [SI]")) 26 string="%s\n%s"%(string,fielddisplay(self,"m","m exponent")) 27 return string 28 #}}} 29 def setdefaultparameters(self): # {{{ 30 return self 31 #}}} 32 def checkconsistency(self,md,solution,analyses): # {{{ 23 def __repr__(self): # {{{ 24 string = "Weertman sliding law parameters: Sigma_b = C^(- 1 / m) * |u_b|^(1 / m - 1) * u_b" 33 25 34 #Early return 35 if 'StressbalanceAnalysis' not in analyses and 'ThermalAnalysis' not in analyses: 36 return md 26 string = "%s\n%s" % (string, fielddisplay(self, "C", "friction coefficient [SI]")) 27 string = "%s\n%s" % (string, fielddisplay(self, "m", "m exponent")) 28 return string 29 #}}} 37 30 38 md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1,'Inf',1) 39 md = checkfield(md,'fieldname','friction.m','NaN',1,'Inf',1,'size',[md.mesh.numberofelements]) 31 def setdefaultparameters(self): # {{{ 32 return self 33 #}}} 40 34 41 return md 42 # }}} 43 def marshall(self,prefix,md,fid): # {{{ 44 WriteData(fid,prefix,'name','md.friction.law','data',2,'format','Integer') 45 WriteData(fid,prefix,'class','friction','object',self,'fieldname','C','format','DoubleMat','mattype',1) 46 WriteData(fid,prefix,'class','friction','object',self,'fieldname','m','format','DoubleMat','mattype',2) 47 # }}} 35 def checkconsistency(self, md, solution, analyses): # {{{ 36 37 #Early return 38 if 'StressbalanceAnalysis' not in analyses and 'ThermalAnalysis' not in analyses: 39 return md 40 41 md = checkfield(md, 'fieldname', 'friction.C', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 42 md = checkfield(md, 'fieldname', 'friction.m', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements]) 43 44 return md 45 # }}} 46 47 def marshall(self, prefix, md, fid): # {{{ 48 WriteData(fid, prefix, 'name', 'md.friction.law', 'data', 2, 'format', 'Integer') 49 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'C', 'format', 'DoubleMat', 'mattype', 1) 50 WriteData(fid, prefix, 'class', 'friction', 'object', self, 'fieldname', 'm', 'format', 'DoubleMat', 'mattype', 2) 51 # }}} -
issm/trunk-jpl/src/m/classes/frontalforcings.py
r23716 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class frontalforcings(object): 7 8 8 """ 9 FRONTAL FORCINGS class definition 9 10 10 11 frontalforcings=frontalforcings(); 12 11 Usage: 12 frontalforcings = frontalforcings() 13 """ 13 14 14 def __init__(self):# {{{15 self.meltingrate= float('NaN')15 def __init__(self): # {{{ 16 self.meltingrate = float('NaN') 16 17 17 18 19 18 #set defaults 19 self.setdefaultparameters() 20 #}}} 20 21 21 def __repr__(self):# {{{22 string=' Frontalforcings parameters:'23 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))22 def __repr__(self): # {{{ 23 string = ' Frontalforcings parameters:' 24 string = "%s\n%s" % (string, fielddisplay(self, 'meltingrate', 'melting rate at given location [m / a]')) 24 25 25 26 26 return string 27 #}}} 27 28 28 def extrude(self,md):# {{{29 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')30 31 29 def extrude(self, md): # {{{ 30 self.meltingrate = project3d(md, 'vector', self.meltingrate, 'type', 'node') 31 return self 32 #}}} 32 33 33 def setdefaultparameters(self):# {{{34 35 34 def setdefaultparameters(self): # {{{ 35 return self 36 #}}} 36 37 37 def checkconsistency(self,md,solution,analyses):# {{{38 39 if (solution!='TransientSolution') or (not md.transient.ismovingfront):40 38 def checkconsistency(self, md, solution, analyses): # {{{ 39 #Early return 40 if (solution != 'TransientSolution') or (not md.transient.ismovingfront): 41 return md 41 42 42 md = checkfield(md,'fieldname','frontalforcings.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0); 43 44 43 md = checkfield(md, 'fieldname', 'frontalforcings.meltingrate', 'NaN', 1, 'Inf', 1, 'timeseries', 1, '>=', 0) 44 return md 45 # }}} 45 46 46 def marshall(self,prefix,md,fid):# {{{47 yts=md.constants.yts48 WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',1,'format','Integer')49 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts); 50 47 def marshall(self, prefix, md, fid): # {{{ 48 yts = md.constants.yts 49 WriteData(fid, prefix, 'name', 'md.frontalforcings.parameterization', 'data', 1, 'format', 'Integer') 50 WriteData(fid, prefix, 'object', self, 'fieldname', 'meltingrate', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts, 'scale', 1. / yts) 51 # }}} -
issm/trunk-jpl/src/m/classes/frontalforcingsrignot.py
r23658 r24213 1 from fielddisplay import fielddisplay2 from project3d import project3d3 1 from checkfield import checkfield 4 2 from WriteData import WriteData 3 from fielddisplay import fielddisplay 4 5 5 6 6 class frontalforcingsrignot(object): 7 8 7 """ 8 FRONTAL FORCINGS Rignot class definition 9 9 10 11 frontalforcingsrignot=frontalforcingsrignot(); 12 10 Usage: 11 frontalforcingsrignot = frontalforcingsrignot() 12 """ 13 13 14 def __init__(self): # {{{ 14 def __init__(self): # {{{ 15 self.basin = float('NaN') 16 self.numberofbasins = 0. 17 self.subglacial_discharge = float('NaN') 18 self.thermalforcing = float('NaN') 15 19 16 self.basin= float('NaN'); 17 self.numberofbasins = 0.; 18 self.subglacial_discharge = float('NaN'); 19 self.thermalforcing = float('NaN'); 20 #set defaults 21 self.setdefaultparameters() 20 22 21 #set defaults 22 self.setdefaultparameters() 23 #}}} 23 24 24 #}}} 25 def __repr__(self): # {{{ 26 string=' Frontalforcings parameters:' 27 string="%s\n%s"%(string,fielddisplay(self,'basin','basin ID for vertices')) 28 string="%s\n%s"%(string,fielddisplay(self,'numberofbasins','number of basins')) 29 string="%s\n%s"%(string,fielddisplay(self,'subglacial_discharge','sum of subglacial discharge for each basin [m/d]')) 30 string="%s\n%s"%(string,fielddisplay(self,'thermalforcing','thermal forcing [C]')) 25 def __repr__(self): # {{{ 26 string = ' Frontalforcings parameters:' 27 string = "%s\n%s" % (string, fielddisplay(self, 'basin', 'basin ID for vertices')) 28 string = "%s\n%s" % (string, fielddisplay(self, 'numberofbasins', 'number of basins')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'subglacial_discharge', 'sum of subglacial discharge for each basin [m / d]')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'thermalforcing', 'thermal forcing [C]')) 31 31 32 return string 33 #}}} 34 def extrude(self,md): # {{{ 35 return self 36 #}}} 37 def setdefaultparameters(self): # {{{ 32 return string 33 #}}} 38 34 39 return self 40 #}}} 41 def checkconsistency(self,md,solution,analyses): # {{{ 35 def extrude(self, md): # {{{ 36 return self 37 #}}} 42 38 43 #Early return 44 if (solution!='TransientSolution') or (not md.transient.ismovingfront): 45 return md 39 def setdefaultparameters(self): # {{{ 46 40 47 md = checkfield(md,'fieldname','frontalforcings.basin','>',0,'nan',1,'Inf',1); 48 md = checkfield(md,'fieldname','frontalforcings.numberofbasins','numel',[1]); 49 md = checkfield(md,'fieldname','frontalforcings.subglacial_discharge','>=',0,'nan',1,'Inf',1,'timeseries',1); 50 md = checkfield(md,'fieldname','frontalforcings.thermalforcing','nan',1,'Inf',1,'timeseries',1); 41 return self 42 #}}} 51 43 52 return md 53 # }}} 54 def marshall(self,prefix,md,fid): # {{{ 44 def checkconsistency(self, md, solution, analyses): # {{{ 45 #Early return 46 if (solution != 'TransientSolution') or (not md.transient.ismovingfront): 47 return md 55 48 56 yts=md.constants.yts 49 md = checkfield(md, 'fieldname', 'frontalforcings.basin', '>', 0, 'nan', 1, 'Inf', 1) 50 md = checkfield(md, 'fieldname', 'frontalforcings.numberofbasins', 'numel', [1]) 51 md = checkfield(md, 'fieldname', 'frontalforcings.subglacial_discharge', '>=', 0, 'nan', 1, 'Inf', 1, 'timeseries', 1) 52 md = checkfield(md, 'fieldname', 'frontalforcings.thermalforcing', 'nan', 1, 'Inf', 1, 'timeseries', 1) 53 return md 54 # }}} 57 55 58 WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',2,'format','Integer') 59 WriteData(fid,prefix,'object',self,'fieldname','basin','format','DoubleMat','mattype',1); 60 WriteData(fid,prefix,'object',self,'fieldname','numberofbasins','format','Integer'); 61 WriteData(fid,prefix,'object',self,'fieldname','subglacial_discharge','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1); 62 WriteData(fid,prefix,'object',self,'fieldname','thermalforcing','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1); 56 def marshall(self, prefix, md, fid): # {{{ 57 WriteData(fid, prefix, 'name', 'md.frontalforcings.parameterization', 'data', 2, 'format', 'Integer') 58 WriteData(fid, prefix, 'object', self, 'fieldname', 'basin', 'format', 'DoubleMat', 'mattype', 1) 59 WriteData(fid, prefix, 'object', self, 'fieldname', 'numberofbasins', 'format', 'Integer') 60 WriteData(fid, prefix, 'object', self, 'fieldname', 'subglacial_discharge', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1) 61 WriteData(fid, prefix, 'object', self, 'fieldname', 'thermalforcing', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1) 63 62 64 63 # }}} -
issm/trunk-jpl/src/m/classes/geometry.py
r23845 r24213 5 5 from WriteData import WriteData 6 6 7 7 8 class geometry(object): 8 9 9 """ 10 GEOMETRY class definition 10 11 11 12 geometry=geometry(); 13 12 Usage: 13 geometry = geometry() 14 """ 14 15 15 def __init__(self):# {{{16 self.surface= float('NaN')17 self.thickness= float('NaN')18 self.base= float('NaN')19 self.bed= float('NaN')20 self.hydrostatic_ratio= float('NaN')16 def __init__(self): # {{{ 17 self.surface = float('NaN') 18 self.thickness = float('NaN') 19 self.base = float('NaN') 20 self.bed = float('NaN') 21 self.hydrostatic_ratio = float('NaN') 21 22 22 23 23 #set defaults 24 self.setdefaultparameters() 24 25 25 #}}} 26 def __repr__(self): # {{{ 26 #}}} 27 27 28 string=" geometry parameters:" 29 string="%s\n%s"%(string,fielddisplay(self,'surface','ice upper surface elevation [m]')) 30 string="%s\n%s"%(string,fielddisplay(self,'thickness','ice thickness [m]')) 31 string="%s\n%s"%(string,fielddisplay(self,'base','ice base elevation [m]')) 32 string="%s\n%s"%(string,fielddisplay(self,'bed','bed elevation [m]')) 33 return string 34 #}}} 35 def extrude(self,md): # {{{ 36 self.surface=project3d(md,'vector',self.surface,'type','node') 37 self.thickness=project3d(md,'vector',self.thickness,'type','node') 38 self.hydrostatic_ratio=project3d(md,'vector',self.hydrostatic_ratio,'type','node') 39 self.base=project3d(md,'vector',self.base,'type','node') 40 self.bed=project3d(md,'vector',self.bed,'type','node') 41 return self 42 #}}} 43 def setdefaultparameters(self): # {{{ 44 return self 45 #}}} 46 def checkconsistency(self,md,solution,analyses): # {{{ 28 def __repr__(self): # {{{ 47 29 48 if (solution=='TransientSolution' and md.transient.isgia) or (solution=='GiaSolution'): 49 md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'Inf',1,'timeseries',1) 50 elif solution=='LoveSolution': 51 return 52 else: 53 md = checkfield(md,'fieldname','geometry.surface' ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 54 md = checkfield(md,'fieldname','geometry.base' ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 55 md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>',0,'timeseries',1) 56 if any(abs(self.thickness-self.surface+self.base)>10**-9): 57 md.checkmessage("equality thickness=surface-base violated") 58 if solution=='TransientSolution' and md.transient.isgroundingline: 59 md = checkfield(md,'fieldname','geometry.bed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 60 if np.any(self.bed - self.base > 10**-12): 61 md.checkmessage('base<bed on one or more vertex') 62 pos = np.where(md.mask.groundedice_levelset > 0) 63 if np.any(np.abs(self.bed[pos]-self.base[pos])>10**-9): 64 md.checkmessage('equality base=bed on grounded ice violated') 65 md = checkfield(md,'fieldname','geometry.bed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 30 string = " geometry parameters:" 31 string = "%s\n%s" % (string, fielddisplay(self, 'surface', 'ice upper surface elevation [m]')) 32 string = "%s\n%s" % (string, fielddisplay(self, 'thickness', 'ice thickness [m]')) 33 string = "%s\n%s" % (string, fielddisplay(self, 'base', 'ice base elevation [m]')) 34 string = "%s\n%s" % (string, fielddisplay(self, 'bed', 'bed elevation [m]')) 35 return string 36 #}}} 66 37 67 return md 68 # }}} 69 def marshall(self,prefix,md,fid): # {{{ 70 WriteData(fid,prefix,'object',self,'fieldname','surface','format','DoubleMat','mattype',1) 71 WriteData(fid,prefix,'object',self,'fieldname','thickness','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 72 WriteData(fid,prefix,'object',self,'fieldname','base','format','DoubleMat','mattype',1) 73 WriteData(fid,prefix,'object',self,'fieldname','bed','format','DoubleMat','mattype',1) 74 WriteData(fid,prefix,'object',self,'fieldname','hydrostatic_ratio','format','DoubleMat','mattype',1) 75 # }}} 38 def extrude(self, md): # {{{ 39 self.surface = project3d(md, 'vector', self.surface, 'type', 'node') 40 self.thickness = project3d(md, 'vector', self.thickness, 'type', 'node') 41 self.hydrostatic_ratio = project3d(md, 'vector', self.hydrostatic_ratio, 'type', 'node') 42 self.base = project3d(md, 'vector', self.base, 'type', 'node') 43 self.bed = project3d(md, 'vector', self.bed, 'type', 'node') 44 return self 45 #}}} 46 47 def setdefaultparameters(self): # {{{ 48 return self 49 #}}} 50 51 def checkconsistency(self, md, solution, analyses): # {{{ 52 if (solution == 'TransientSolution' and md.transient.isgia) or (solution == 'GiaSolution'): 53 md = checkfield(md, 'fieldname', 'geometry.thickness', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 54 elif solution == 'LoveSolution': 55 return 56 else: 57 md = checkfield(md, 'fieldname', 'geometry.surface', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 58 md = checkfield(md, 'fieldname', 'geometry.base', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 59 md = checkfield(md, 'fieldname', 'geometry.thickness', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices], '>', 0, 'timeseries', 1) 60 if any(abs(self.thickness - self.surface + self.base) > 10**- 9): 61 md.checkmessage("equality thickness = surface-base violated") 62 if solution == 'TransientSolution' and md.transient.isgroundingline: 63 md = checkfield(md, 'fieldname', 'geometry.bed', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 64 if np.any(self.bed - self.base > 10**- 12): 65 md.checkmessage('base < bed on one or more vertex') 66 pos = np.where(md.mask.groundedice_levelset > 0) 67 if np.any(np.abs(self.bed[pos] - self.base[pos]) > 10**- 9): 68 md.checkmessage('equality base = bed on grounded ice violated') 69 md = checkfield(md, 'fieldname', 'geometry.bed', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 70 71 return md 72 # }}} 73 74 def marshall(self, prefix, md, fid): # {{{ 75 WriteData(fid, prefix, 'object', self, 'fieldname', 'surface', 'format', 'DoubleMat', 'mattype', 1) 76 WriteData(fid, prefix, 'object', self, 'fieldname', 'thickness', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 77 WriteData(fid, prefix, 'object', self, 'fieldname', 'base', 'format', 'DoubleMat', 'mattype', 1) 78 WriteData(fid, prefix, 'object', self, 'fieldname', 'bed', 'format', 'DoubleMat', 'mattype', 1) 79 WriteData(fid, prefix, 'object', self, 'fieldname', 'hydrostatic_ratio', 'format', 'DoubleMat', 'mattype', 1) 80 # }}} -
issm/trunk-jpl/src/m/classes/giaivins.py
r21584 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class giaivins(object): 7 8 8 """ 9 GIA class definition 9 10 10 11 giaivins=giaivins(); 12 11 Usage: 12 giaivins = giaivins() 13 """ 13 14 14 def __init__(self): # {{{ 15 self.mantle_viscosity = float('NaN'); 16 self.lithosphere_thickness = float('NaN'); 17 self.cross_section_shape = 0; 18 19 #set defaults 20 self.setdefaultparameters() 15 def __init__(self): # {{{ 16 self.mantle_viscosity = float('NaN') 17 self.lithosphere_thickness = float('NaN') 18 self.cross_section_shape = 0 21 19 22 #}}} 23 def __repr__(self): # {{{ 24 25 string=' giaivins solution parameters:' 26 27 string="%s\n%s"%(string,fielddisplay(self,'mantle_viscosity','mantle viscosity constraints (NaN means no constraint) (Pa s)')) 28 string="%s\n%s"%(string,fielddisplay(self,'lithosphere_thickness','lithosphere thickness constraints (NaN means no constraint) (m)')) 29 string="%s\n%s"%(string,fielddisplay(self,'cross_section_shape',"1: square-edged, 2: elliptical-edged surface")) 30 return string 31 #}}} 32 def extrude(self,md): # {{{ 33 self.mantle_viscosity=project3d(md,'vector',self.mantle_viscosity,'type','node') 34 self.lithosphere_thickness=project3d(md,'vector',self.lithosphere_thickness,'type','node') 35 return self 36 #}}} 37 def setdefaultparameters(self): # {{{ 20 #set defaults 21 self.setdefaultparameters() 38 22 39 self.cross_section_shape=1; 23 #}}} 40 24 41 return self 42 #}}} 43 def checkconsistency(self,md,solution,analyses): # {{{ 25 def __repr__(self): # {{{ 26 string = ' giaivins solution parameters:' 44 27 45 # Early return 46 if ('GiaAnalysis' not in analyses): 47 return md 48 49 md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>',0) 50 md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>',0) 51 md = checkfield(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2]) 28 string = "%s\n%s" % (string, fielddisplay(self, 'mantle_viscosity', 'mantle viscosity constraints (NaN means no constraint) (Pa s)')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'lithosphere_thickness', 'lithosphere thickness constraints (NaN means no constraint) (m)')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'cross_section_shape', "1: square-edged, 2: elliptical - edged surface")) 31 return string 32 #}}} 52 33 53 #be sure that if we are running a masstransport ice flow model coupled with giaivins, that thickness forcings 54 #are not provided into the future. 34 def extrude(self, md): # {{{ 35 self.mantle_viscosity = project3d(md, 'vector', self.mantle_viscosity, 'type', 'node') 36 self.lithosphere_thickness = project3d(md, 'vector', self.lithosphere_thickness, 'type', 'node') 37 return self 38 #}}} 55 39 56 return md 57 # }}} 58 def marshall(self,prefix,md,fid): # {{{ 40 def setdefaultparameters(self): # {{{ 41 self.cross_section_shape = 1 42 return self 43 #}}} 59 44 60 WriteData(fid,prefix,'object',self,'fieldname','mantle_viscosity','format','DoubleMat','mattype',1); 61 WriteData(fid,prefix,'object',self,'fieldname','lithosphere_thickness','format','DoubleMat','mattype',1,'scale',10.**3.); 62 WriteData(fid,prefix,'object',self,'fieldname','cross_section_shape','format','Integer'); 63 # }}} 45 def checkconsistency(self, md, solution, analyses): # {{{ 46 # Early return 47 if ('GiaAnalysis' not in analyses): 48 return md 49 50 md = checkfield(md, 'fieldname', 'gia.mantle_viscosity', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices], '>', 0) 51 md = checkfield(md, 'fieldname', 'gia.lithosphere_thickness', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices], '>', 0) 52 md = checkfield(md, 'fieldname', 'gia.cross_section_shape', 'numel', [1], 'values', [1, 2]) 53 54 #be sure that if we are running a masstransport ice flow model coupled with giaivins, that thickness forcings 55 #are not provided into the future. 56 57 return md 58 # }}} 59 60 def marshall(self, prefix, md, fid): # {{{ 61 62 WriteData(fid, prefix, 'object', self, 'fieldname', 'mantle_viscosity', 'format', 'DoubleMat', 'mattype', 1) 63 WriteData(fid, prefix, 'object', self, 'fieldname', 'lithosphere_thickness', 'format', 'DoubleMat', 'mattype', 1, 'scale', 10.**3.) 64 WriteData(fid, prefix, 'object', self, 'fieldname', 'cross_section_shape', 'format', 'Integer') 65 # }}} -
issm/trunk-jpl/src/m/classes/groundingline.py
r23355 r24213 5 5 import MatlabFuncs as m 6 6 7 7 8 class groundingline(object): 8 9 9 """ 10 GROUNDINGLINE class definition 10 11 11 12 groundingline=groundingline(); 13 12 Usage: 13 groundingline = groundingline() 14 """ 14 15 15 def __init__(self):# {{{16 self.migration=''17 self.friction_interpolation=''18 self.melt_interpolation=''16 def __init__(self): # {{{ 17 self.migration = '' 18 self.friction_interpolation = '' 19 self.melt_interpolation = '' 19 20 20 21 21 #set defaults 22 self.setdefaultparameters() 22 23 23 #}}} 24 def __repr__(self): # {{{ 25 string=' grounding line migration parameters:' 24 #}}} 26 25 27 string="%s\n%s"%(string,fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''SubelementMigration'',''AggressiveMigration'',''Contact'',''None''')) 28 string="%s\n%s"%(string,fielddisplay(self,'migration','type of friction interpolation on partially floating elements: ''SubelementFriction1'',''SubelementFriction2'',''NoFrictionOnPartiallyFloating''')) 29 string="%s\n%s"%(string,fielddisplay(self,'migration','type of melt interpolation on partially floating elements: ''SubelementMelt1'',''SubelementMelt2'',''NoMeltOnPartiallyFloating'',''FullMeltOnPartiallyFloating''')) 30 return string 31 #}}} 32 def setdefaultparameters(self): # {{{ 26 def __repr__(self): # {{{ 27 string = ' grounding line migration parameters:' 33 28 34 #Type of migration 35 self.migration='SubelementMigration' 36 self.friction_interpolation='SubelementFriction1' 37 self.melt_interpolation='NoMeltOnPartiallyFloating' 29 string = "%s\n%s" % (string, fielddisplay(self, 'migration', 'type of grounding line migration: ''SoftMigration'', ''SubelementMigration'', ''AggressiveMigration'', ''Contact'', ''None''')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'migration', 'type of friction interpolation on partially floating elements: ''SubelementFriction1'', ''SubelementFriction2'', ''NoFrictionOnPartiallyFloating''')) 31 string = "%s\n%s" % (string, fielddisplay(self, 'migration', 'type of melt interpolation on partially floating elements: ''SubelementMelt1'', ''SubelementMelt2'', ''NoMeltOnPartiallyFloating'', ''FullMeltOnPartiallyFloating''')) 32 return string 33 #}}} 38 34 39 return self 40 #}}} 41 def checkconsistency(self,md,solution,analyses): # {{{ 35 def setdefaultparameters(self): # {{{ 42 36 43 md = checkfield(md,'fieldname','groundingline.migration','values',['None','SubelementMigration','AggressiveMigration','SoftMigration','Contact','GroundingOnly']) 44 md = checkfield(md,'fieldname','groundingline.friction_interpolation','values',['SubelementFriction1','SubelementFriction2','NoFrictionOnPartiallyFloating']) 45 md = checkfield(md,'fieldname','groundingline.melt_interpolation','values',['SubelementMelt1','SubelementMelt2','NoMeltOnPartiallyFloating','FullMeltOnPartiallyFloating']) 37 #Type of migration 38 self.migration = 'SubelementMigration' 39 self.friction_interpolation = 'SubelementFriction1' 40 self.melt_interpolation = 'NoMeltOnPartiallyFloating' 46 41 47 if(not m.strcmp(self.migration,'None') and md.transient.isgroundingline and solution=='TransientSolution'): 48 if np.any(np.isnan(md.geometry.bed)): 49 md.checkmessage("requesting grounding line migration, but bathymetry is absent!") 50 pos=np.nonzero(md.mask.groundedice_levelset>0.)[0] 51 if any(np.abs(md.geometry.base[pos]-md.geometry.bed[pos])>10**-10): 52 md.checkmessage("base not equal to bed on grounded ice!") 53 if any(md.geometry.bed - md.geometry.base > 10**-9): 54 md.checkmessage("bed superior to base on floating ice!") 42 return self 43 #}}} 55 44 56 return md 57 # }}} 58 def marshall(self,prefix,md,fid): # {{{ 59 WriteData(fid,prefix,'data',self.migration,'name','md.groundingline.migration','format','String') 60 WriteData(fid,prefix,'data',self.friction_interpolation,'name','md.groundingline.friction_interpolation','format','String') 61 WriteData(fid,prefix,'data',self.melt_interpolation,'name','md.groundingline.melt_interpolation','format','String') 62 # }}} 45 def checkconsistency(self, md, solution, analyses): # {{{ 46 47 md = checkfield(md, 'fieldname', 'groundingline.migration', 'values', ['None', 'SubelementMigration', 'AggressiveMigration', 'SoftMigration', 'Contact', 'GroundingOnly']) 48 md = checkfield(md, 'fieldname', 'groundingline.friction_interpolation', 'values', ['SubelementFriction1', 'SubelementFriction2', 'NoFrictionOnPartiallyFloating']) 49 md = checkfield(md, 'fieldname', 'groundingline.melt_interpolation', 'values', ['SubelementMelt1', 'SubelementMelt2', 'NoMeltOnPartiallyFloating', 'FullMeltOnPartiallyFloating']) 50 51 if(not m.strcmp(self.migration, 'None') and md.transient.isgroundingline and solution == 'TransientSolution'): 52 if np.any(np.isnan(md.geometry.bed)): 53 md.checkmessage("requesting grounding line migration, but bathymetry is absent!") 54 pos = np.nonzero(md.mask.groundedice_levelset > 0.)[0] 55 if any(np.abs(md.geometry.base[pos] - md.geometry.bed[pos]) > 10**- 10): 56 md.checkmessage("base not equal to bed on grounded ice!") 57 if any(md.geometry.bed - md.geometry.base > 10**- 9): 58 md.checkmessage("bed superior to base on floating ice!") 59 60 return md 61 # }}} 62 63 def marshall(self, prefix, md, fid): # {{{ 64 WriteData(fid, prefix, 'data', self.migration, 'name', 'md.groundingline.migration', 'format', 'String') 65 WriteData(fid, prefix, 'data', self.friction_interpolation, 'name', 'md.groundingline.friction_interpolation', 'format', 'String') 66 WriteData(fid, prefix, 'data', self.melt_interpolation, 'name', 'md.groundingline.melt_interpolation', 'format', 'String') 67 # }}} -
issm/trunk-jpl/src/m/classes/hydrologydc.py
r23870 r24213 11 11 12 12 Usage: 13 hydrologydc =hydrologydc();13 hydrologydc = hydrologydc() 14 14 """ 15 15 … … 48 48 self.eplflip_lock = 0 49 49 50 50 #set defaults 51 51 self.setdefaultparameters() 52 52 #}}} … … 54 54 def __repr__(self): # {{{ 55 55 string = ' hydrology Dual Porous Continuum Equivalent parameters:' 56 string = ' 57 string = "%s\n%s" % (string, fielddisplay(self, 'water_compressibility', 'compressibility of water [Pa^ -1]'))56 string = ' - general parameters' 57 string = "%s\n%s" % (string, fielddisplay(self, 'water_compressibility', 'compressibility of water [Pa^ - 1]')) 58 58 string = "%s\n%s" % (string, fielddisplay(self, 'isefficientlayer', 'do we use an efficient drainage system [1: true 0: false]')) 59 59 string = "%s\n%s" % (string, fielddisplay(self, 'penalty_factor', 'exponent of the value used in the penalisation method [dimensionless]')) 60 string = "%s\n%s" % (string, fielddisplay(self, 'penalty_lock', 'stabilize unstable constraints that keep zigzagging after n iteration (default is 0, 60 string = "%s\n%s" % (string, fielddisplay(self, 'penalty_lock', 'stabilize unstable constraints that keep zigzagging after n iteration (default is 0, no stabilization)')) 61 61 string = "%s\n%s" % (string, fielddisplay(self, 'rel_tol', 'tolerance of the nonlinear iteration for the transfer between layers [dimensionless]')) 62 62 string = "%s\n%s" % (string, fielddisplay(self, 'max_iter', 'maximum number of nonlinear iteration')) 63 63 string = "%s\n%s" % (string, fielddisplay(self, 'steps_per_step', 'number of hydrology steps per time step')) 64 string = "%s\n%s" % (string, fielddisplay(self, 'basal_moulin_input', 'water flux at a given point [m3 s -1]'))64 string = "%s\n%s" % (string, fielddisplay(self, 'basal_moulin_input', 'water flux at a given point [m3 s - 1]')) 65 65 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 66 66 string = "%s\n%s" % (string, fielddisplay(self, 'sedimentlimit_flag', 'what kind of upper limit is applied for the inefficient layer')) … … 82 82 string = "%s\n%s" % (string, fielddisplay(self, 'unconfined_flag', 'using an unconfined scheme or not (transitory)')) 83 83 string = "%s\n\t\t%s" % (string, '0: Confined only') 84 string = "%s\n\t\t%s" % (string, '1: Confined -Unconfined')85 86 string = "%s\n%s" % (string, ' 84 string = "%s\n\t\t%s" % (string, '1: Confined - Unconfined') 85 86 string = "%s\n%s" % (string, ' - for the sediment layer') 87 87 string = "%s\n%s" % (string, fielddisplay(self, 'spcsediment_head', 'sediment water head constraints (NaN means no constraint) [m above MSL]')) 88 string = "%s\n%s" % (string, fielddisplay(self, 'sediment_compressibility', 'sediment compressibility [Pa^ -1]'))88 string = "%s\n%s" % (string, fielddisplay(self, 'sediment_compressibility', 'sediment compressibility [Pa^ - 1]')) 89 89 string = "%s\n%s" % (string, fielddisplay(self, 'sediment_porosity', 'sediment [dimensionless]')) 90 90 string = "%s\n%s" % (string, fielddisplay(self, 'sediment_thickness', 'sediment thickness [m]')) 91 string = "%s\n%s" % (string, fielddisplay(self, 'sediment_transmitivity', 'sediment transmitivity [m^2 /s]'))91 string = "%s\n%s" % (string, fielddisplay(self, 'sediment_transmitivity', 'sediment transmitivity [m^2 / s]')) 92 92 string = "%s\n%s" % (string, fielddisplay(self, 'mask_thawed_node', 'IDS is deactivaed (0) on frozen nodes')) 93 93 94 94 if self.isefficientlayer == 1: 95 string = "%s\n%s" % (string, ' 95 string = "%s\n%s" % (string, ' - for the epl layer') 96 96 string = "%s\n%s" % (string, fielddisplay(self, 'spcepl_head', 'epl water head constraints (NaN means no constraint) [m above MSL]')) 97 97 string = "%s\n%s" % (string, fielddisplay(self, 'mask_eplactive_node', 'active (1) or not (0) EPL')) 98 string = "%s\n%s" % (string, fielddisplay(self, 'epl_compressibility', 'epl compressibility [Pa^ -1]'))98 string = "%s\n%s" % (string, fielddisplay(self, 'epl_compressibility', 'epl compressibility [Pa^ - 1]')) 99 99 string = "%s\n%s" % (string, fielddisplay(self, 'epl_porosity', 'epl [dimensionless]')) 100 100 string = "%s\n%s" % (string, fielddisplay(self, 'epl_max_thickness', 'epl maximal thickness [m]')) … … 102 102 string = "%s\n%s" % (string, fielddisplay(self, 'epl_colapse_thickness', 'epl colapsing thickness [m]')) 103 103 string = "%s\n%s" % (string, fielddisplay(self, 'epl_thick_comp', 'epl thickness computation flag')) 104 string = "%s\n%s" % (string, fielddisplay(self, 'epl_conductivity', 'epl conductivity [m^2 /s]'))105 string = "%s\n%s" % (string, fielddisplay(self, 'eplflip_lock', 'lock epl activity to avoid flip -floping (default is 0,no stabilization)'))104 string = "%s\n%s" % (string, fielddisplay(self, 'epl_conductivity', 'epl conductivity [m^2 / s]')) 105 string = "%s\n%s" % (string, fielddisplay(self, 'eplflip_lock', 'lock epl activity to avoid flip - floping (default is 0, no stabilization)')) 106 106 return string 107 107 … … 132 132 self.leakage_factor = 10.0 133 133 self.requested_outputs = ['default'] 134 135 134 self.sediment_compressibility = 1.0e-08 136 135 self.sediment_porosity = 0.4 … … 171 170 172 171 def checkconsistency(self, md, solution, analyses): #{{{ 173 174 172 #Early return 175 173 if 'HydrologyDCInefficientAnalysis' not in analyses and 'HydrologyDCEfficientAnalysis' not in analyses: … … 254 252 WriteData(fid, prefix, 'object', self, 'fieldname', 'eplflip_lock', 'format', 'Integer') 255 253 256 254 #process requested outputs 257 255 outputs = self.requested_outputs 258 256 indices = [i for i, x in enumerate(outputs) if x == 'default'] -
issm/trunk-jpl/src/m/classes/hydrologyshakti.py
r23716 r24213 3 3 from WriteData import WriteData 4 4 5 5 6 class hydrologyshakti(object): 6 7 7 """ 8 HYDROLOGYSHAKTI class definition 8 9 9 10 hydrologyshakti=hydrologyshakti()11 10 Usage: 11 hydrologyshakti = hydrologyshakti() 12 """ 12 13 13 def __init__(self):# {{{14 self.head= float('NaN')15 self.gap_height= float('NaN')16 self.bump_spacing= float('NaN')17 self.bump_height= float('NaN')18 19 self.moulin_input= float('NaN')20 self.reynolds= float('NaN')21 self.spchead= float('NaN')22 self.neumannflux= float('NaN')23 self.relaxation= 024 self.storage= 025 14 def __init__(self): # {{{ 15 self.head = float('NaN') 16 self.gap_height = float('NaN') 17 self.bump_spacing = float('NaN') 18 self.bump_height = float('NaN') 19 self.englacial_input = float('NaN') 20 self.moulin_input = float('NaN') 21 self.reynolds = float('NaN') 22 self.spchead = float('NaN') 23 self.neumannflux = float('NaN') 24 self.relaxation = 0 25 self.storage = 0 26 self.requested_outputs = [] 26 27 27 28 28 #set defaults 29 self.setdefaultparameters() 29 30 30 31 def __repr__(self):# {{{32 string=' hydrologyshakti solution parameters:'33 string="%s\n%s"%(string,fielddisplay(self,'head','subglacial hydrology water head (m)'))34 string="%s\n%s"%(string,fielddisplay(self,'gap_height','height of gap separating ice to bed (m)'))35 string="%s\n%s"%(string,fielddisplay(self,'bump_spacing','characteristic bedrock bump spacing (m)'))36 string="%s\n%s"%(string,fielddisplay(self,'bump_height','characteristic bedrock bump height (m)'))37 string="%s\n%s"%(string,fielddisplay(self,'englacial_input','liquid water input from englacial to subglacial system (m/yr)'))38 string="%s\n%s"%(string,fielddisplay(self,'moulin_input','liquid water input from moulins (at the vertices) to subglacial system (m^3/s)'))39 string="%s\n%s"%(string,fielddisplay(self,'reynolds','Reynolds'' number'))40 string="%s\n%s"%(string,fielddisplay(self,'neumannflux','water flux applied along the model boundary (m^2/s)'))41 string="%s\n%s"%(string,fielddisplay(self,'spchead','water head constraints (NaN means no constraint) (m)'))42 string="%s\n%s"%(string,fielddisplay(self,'relaxation','under-relaxation coefficient for nonlinear iteration'))43 string="%s\n%s"%(string,fielddisplay(self,'storage','englacial storage coefficient (void ratio)'))44 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))45 46 31 #}}} 32 def __repr__(self): # {{{ 33 string = ' hydrologyshakti solution parameters:' 34 string = "%s\n%s" % (string, fielddisplay(self, 'head', 'subglacial hydrology water head (m)')) 35 string = "%s\n%s" % (string, fielddisplay(self, 'gap_height', 'height of gap separating ice to bed (m)')) 36 string = "%s\n%s" % (string, fielddisplay(self, 'bump_spacing', 'characteristic bedrock bump spacing (m)')) 37 string = "%s\n%s" % (string, fielddisplay(self, 'bump_height', 'characteristic bedrock bump height (m)')) 38 string = "%s\n%s" % (string, fielddisplay(self, 'englacial_input', 'liquid water input from englacial to subglacial system (m / yr)')) 39 string = "%s\n%s" % (string, fielddisplay(self, 'moulin_input', 'liquid water input from moulins (at the vertices) to subglacial system (m^3 / s)')) 40 string = "%s\n%s" % (string, fielddisplay(self, 'reynolds', 'Reynolds'' number')) 41 string = "%s\n%s" % (string, fielddisplay(self, 'neumannflux', 'water flux applied along the model boundary (m^2 / s)')) 42 string = "%s\n%s" % (string, fielddisplay(self, 'spchead', 'water head constraints (NaN means no constraint) (m)')) 43 string = "%s\n%s" % (string, fielddisplay(self, 'relaxation', 'under - relaxation coefficient for nonlinear iteration')) 44 string = "%s\n%s" % (string, fielddisplay(self, 'storage', 'englacial storage coefficient (void ratio)')) 45 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 46 return string 47 #}}} 47 48 48 def extrude(self,md):# {{{49 50 49 def extrude(self, md): # {{{ 50 return self 51 #}}} 51 52 52 def setdefaultparameters(self):# {{{53 # Set under-relaxation parameter to be 1 (no under-relaxation of nonlinear iteration)54 self.relaxation=155 self.storage=056 self.requested_outputs=['default']57 58 53 def setdefaultparameters(self): # {{{ 54 # Set under - relaxation parameter to be 1 (no under - relaxation of nonlinear iteration) 55 self.relaxation = 1 56 self.storage = 0 57 self.requested_outputs = ['default'] 58 return self 59 #}}} 59 60 60 def defaultoutputs(self,md):# {{{61 list = ['HydrologyHead','HydrologyGapHeight','EffectivePressure','HydrologyBasalFlux','DegreeOfChannelization']62 63 61 def defaultoutputs(self, md): # {{{ 62 list = ['HydrologyHead', 'HydrologyGapHeight', 'EffectivePressure', 'HydrologyBasalFlux', 'DegreeOfChannelization'] 63 return list 64 #}}} 64 65 65 def checkconsistency(self,md,solution,analyses):# {{{66 67 68 66 def checkconsistency(self, md, solution, analyses): # {{{ 67 #Early return 68 if 'HydrologyShaktiAnalysis' not in analyses: 69 return md 69 70 70 md = checkfield(md,'fieldname','hydrology.head','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)71 md = checkfield(md,'fieldname','hydrology.gap_height','>=',0,'size',[md.mesh.numberofelements],'NaN',1,'Inf',1)72 md = checkfield(md,'fieldname','hydrology.bump_spacing','>',0,'size',[md.mesh.numberofelements],'NaN',1,'Inf',1)73 md = checkfield(md,'fieldname','hydrology.bump_height','>=',0,'size',[md.mesh.numberofelements],'NaN',1,'Inf',1)74 md = checkfield(md,'fieldname','hydrology.englacial_input','>=',0,'NaN',1,'Inf',1,'timeseries',1)75 md = checkfield(md,'fieldname','hydrology.moulin_input','>=',0,'NaN',1,'Inf',1,'timeseries',1)76 md = checkfield(md,'fieldname','hydrology.reynolds','>',0,'size',[md.mesh.numberofelements],'NaN',1,'Inf',1)77 md = checkfield(md,'fieldname','hydrology.neumannflux','timeseries',1,'NaN',1,'Inf',1)78 md = checkfield(md,'fieldname','hydrology.spchead','size',[md.mesh.numberofvertices])79 md = checkfield(md,'fieldname','hydrology.relaxation','>=',0)80 md = checkfield(md,'fieldname','hydrology.storage','>=',0)81 md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1)82 83 71 md = checkfield(md, 'fieldname', 'hydrology.head', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 72 md = checkfield(md, 'fieldname', 'hydrology.gap_height', '>=', 0, 'size', [md.mesh.numberofelements], 'NaN', 1, 'Inf', 1) 73 md = checkfield(md, 'fieldname', 'hydrology.bump_spacing', '>', 0, 'size', [md.mesh.numberofelements], 'NaN', 1, 'Inf', 1) 74 md = checkfield(md, 'fieldname', 'hydrology.bump_height', '>=', 0, 'size', [md.mesh.numberofelements], 'NaN', 1, 'Inf', 1) 75 md = checkfield(md, 'fieldname', 'hydrology.englacial_input', '>=', 0, 'NaN', 1, 'Inf', 1, 'timeseries', 1) 76 md = checkfield(md, 'fieldname', 'hydrology.moulin_input', '>=', 0, 'NaN', 1, 'Inf', 1, 'timeseries', 1) 77 md = checkfield(md, 'fieldname', 'hydrology.reynolds', '>', 0, 'size', [md.mesh.numberofelements], 'NaN', 1, 'Inf', 1) 78 md = checkfield(md, 'fieldname', 'hydrology.neumannflux', 'timeseries', 1, 'NaN', 1, 'Inf', 1) 79 md = checkfield(md, 'fieldname', 'hydrology.spchead', 'size', [md.mesh.numberofvertices]) 80 md = checkfield(md, 'fieldname', 'hydrology.relaxation', '>=', 0) 81 md = checkfield(md, 'fieldname', 'hydrology.storage', '>=', 0) 82 md = checkfield(md, 'fieldname', 'hydrology.requested_outputs', 'stringrow', 1) 83 return md 84 # }}} 84 85 85 def marshall(self,prefix,md,fid):# {{{86 yts=md.constants.yts86 def marshall(self, prefix, md, fid): # {{{ 87 yts = md.constants.yts 87 88 88 WriteData(fid,prefix,'name','md.hydrology.model','data',3,'format','Integer')89 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','head','format','DoubleMat','mattype',1)90 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','gap_height','format','DoubleMat','mattype',2)91 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','bump_spacing','format','DoubleMat','mattype',2)92 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','bump_height','format','DoubleMat','mattype',2)93 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','englacial_input','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)94 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','moulin_input','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)95 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','reynolds','format','DoubleMat','mattype',2)96 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','neumannflux','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts)97 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','spchead','format','DoubleMat','mattype',1)98 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','relaxation','format','Double')99 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','storage','format','Double')100 101 102 103 104 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]105 outputs =outputscopy106 WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray')107 89 WriteData(fid, prefix, 'name', 'md.hydrology.model', 'data', 3, 'format', 'Integer') 90 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'head', 'format', 'DoubleMat', 'mattype', 1) 91 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'gap_height', 'format', 'DoubleMat', 'mattype', 2) 92 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'bump_spacing', 'format', 'DoubleMat', 'mattype', 2) 93 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'bump_height', 'format', 'DoubleMat', 'mattype', 2) 94 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'englacial_input', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 95 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'moulin_input', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 96 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'reynolds', 'format', 'DoubleMat', 'mattype', 2) 97 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'neumannflux', 'format', 'DoubleMat', 'mattype', 2, 'timeserieslength', md.mesh.numberofelements + 1, 'yts', yts) 98 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'spchead', 'format', 'DoubleMat', 'mattype', 1) 99 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'relaxation', 'format', 'Double') 100 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'storage', 'format', 'Double') 101 #process requested outputs 102 outputs = self.requested_outputs 103 indices = [i for i, x in enumerate(outputs) if x == 'default'] 104 if len(indices) > 0: 105 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 106 outputs = outputscopy 107 WriteData(fid, prefix, 'data', outputs, 'name', 'md.hydrology.requested_outputs', 'format', 'StringArray') 108 # }}} -
issm/trunk-jpl/src/m/classes/hydrologyshreve.py
r22283 r24213 3 3 from WriteData import WriteData 4 4 5 5 6 class hydrologyshreve(object): 6 7 7 """ 8 HYDROLOGYSHREVE class definition 8 9 9 10 hydrologyshreve=hydrologyshreve(); 11 10 Usage: 11 hydrologyshreve = hydrologyshreve() 12 """ 12 13 13 def __init__(self):# {{{14 15 self.stabilization= 016 17 18 14 def __init__(self): # {{{ 15 self.spcwatercolumn = float('NaN') 16 self.stabilization = 0 17 self.requested_outputs = [] 18 #set defaults 19 self.setdefaultparameters() 19 20 20 #}}} 21 def __repr__(self): # {{{ 22 23 string=' hydrologyshreve solution parameters:' 24 string="%s\n%s"%(string,fielddisplay(self,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]')) 25 string="%s\n%s"%(string,fielddisplay(self,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.')) 26 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 27 return string 28 #}}} 29 def extrude(self,md): # {{{ 30 return self 31 #}}} 32 def setdefaultparameters(self): # {{{ 33 34 #Type of stabilization to use 0:nothing 1:artificial_diffusivity 35 self.stabilization=1 36 self.requested_outputs= ['default'] 37 return self 38 #}}} 39 def defaultoutputs(self,md): # {{{ 40 list = ['Watercolumn','HydrologyWaterVx','HydrologyWaterVy'] 41 return list 42 #}}} 21 #}}} 43 22 44 def checkconsistency(self,md,solution,analyses): # {{{ 45 46 #Early return 47 if 'HydrologyShreveAnalysis' not in analyses: 48 return md 23 def __repr__(self): # {{{ 49 24 50 md = checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1) 51 md = checkfield(md,'fieldname','hydrology.stabilization','>=',0) 52 md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1) 53 return md 54 # }}} 55 def marshall(self,prefix,md,fid): # {{{ 56 WriteData(fid,prefix,'name','md.hydrology.model','data',2,'format','Integer'); 57 WriteData(fid,prefix,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 58 WriteData(fid,prefix,'object',self,'fieldname','stabilization','format','Double') 59 #process requested outputs 60 outputs = self.requested_outputs 61 indices = [i for i, x in enumerate(outputs) if x == 'default'] 62 if len(indices) > 0: 63 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 64 outputs =outputscopy 65 WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray') 25 string = ' hydrologyshreve solution parameters:' 26 string = "%s\n%s" % (string, fielddisplay(self, 'spcwatercolumn', 'water thickness constraints (NaN means no constraint) [m]')) 27 string = "%s\n%s" % (string, fielddisplay(self, 'stabilization', 'artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.')) 28 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 29 return string 30 #}}} 66 31 67 # }}} 32 def extrude(self, md): # {{{ 33 return self 34 #}}} 35 36 def setdefaultparameters(self): # {{{ 37 #Type of stabilization to use 0:nothing 1:artificial_diffusivity 38 self.stabilization = 1 39 self.requested_outputs = ['default'] 40 return self 41 #}}} 42 43 def defaultoutputs(self, md): # {{{ 44 list = ['Watercolumn', 'HydrologyWaterVx', 'HydrologyWaterVy'] 45 return list 46 #}}} 47 48 def checkconsistency(self, md, solution, analyses): # {{{ 49 #Early return 50 if 'HydrologyShreveAnalysis' not in analyses: 51 return md 52 53 md = checkfield(md, 'fieldname', 'hydrology.spcwatercolumn', 'Inf', 1, 'timeseries', 1) 54 md = checkfield(md, 'fieldname', 'hydrology.stabilization', '>=', 0) 55 md = checkfield(md, 'fieldname', 'hydrology.requested_outputs', 'stringrow', 1) 56 return md 57 # }}} 58 59 def marshall(self, prefix, md, fid): # {{{ 60 WriteData(fid, prefix, 'name', 'md.hydrology.model', 'data', 2, 'format', 'Integer') 61 WriteData(fid, prefix, 'object', self, 'fieldname', 'spcwatercolumn', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 62 WriteData(fid, prefix, 'object', self, 'fieldname', 'stabilization', 'format', 'Double') 63 #process requested outputs 64 outputs = self.requested_outputs 65 indices = [i for i, x in enumerate(outputs) if x == 'default'] 66 if len(indices) > 0: 67 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 68 outputs = outputscopy 69 WriteData(fid, prefix, 'data', outputs, 'name', 'md.hydrology.requested_outputs', 'format', 'StringArray') 70 71 # }}} -
issm/trunk-jpl/src/m/classes/independent.py
r21303 r24213 5 5 from MatlabFuncs import * 6 6 7 7 8 class independent(object): 8 9 9 """ 10 INDEPENDENT class definition 10 11 11 12 independent=independent(); 13 12 Usage: 13 independent = independent() 14 """ 14 15 15 def __init__(self,*args):# {{{16 self.name= ''17 self.type= ''18 self.fos_forward_index= float('NaN')19 self.fov_forward_indices= np.array([])20 self.nods= 016 def __init__(self, *args): # {{{ 17 self.name = '' 18 self.type = '' 19 self.fos_forward_index = float('NaN') 20 self.fov_forward_indices = np.array([]) 21 self.nods = 0 21 22 22 23 23 #set defaults 24 self.setdefaultparameters() 24 25 25 26 options=pairoptions(*args)26 #use provided options to change fields 27 options = pairoptions(*args) 27 28 28 #OK get other fields 29 self=options.AssignObjectFields(self) 30 # }}} 31 def __repr__(self): # {{{ 32 s =" independent variable:\n" 29 #OK get other fields 30 self = options.AssignObjectFields(self) 31 # }}} 33 32 34 s+="%s\n" % fielddisplay(self,'name',"variable name (must match corresponding String)") 35 s+="%s\n" % fielddisplay(self,'type',"type of variable ('vertex' or 'scalar')") 36 if not np.isnan(self.fos_forward_index): 37 s+="%s\n" % fielddisplay(self,'fos_forward_index',"index for fos_foward driver of ADOLC") 38 if np.any(np.logical_not(np.isnan(self.fov_forward_indices))): 39 s+="%s\n" % fielddisplay(self,'fov_forward_indices',"indices for fov_foward driver of ADOLC") 33 def __repr__(self): # {{{ 34 s = " independent variable:\n" 40 35 41 return s 42 # }}} 43 def setdefaultparameters(self): # {{{ 44 #do nothing 45 return self 46 # }}} 47 def checkconsistency(self,md,i,solution,analyses,driver): # {{{ 48 if not np.isnan(self.fos_forward_index): 49 if not strcmpi(driver,'fos_forward'): 50 raise TypeError("cannot declare an independent with a fos_forward_index when the driver is not fos_forward!") 51 if self.nods==0: 52 raise TypeError("independent checkconsistency error: nods should be set to the size of the independent variable") 36 s += "%s\n" % fielddisplay(self, 'name', "variable name (must match corresponding String)") 37 s += "%s\n" % fielddisplay(self, 'type', "type of variable ('vertex' or 'scalar')") 38 if not np.isnan(self.fos_forward_index): 39 s += "%s\n" % fielddisplay(self, 'fos_forward_index', "index for fos_foward driver of ADOLC") 40 if np.any(np.logical_not(np.isnan(self.fov_forward_indices))): 41 s += "%s\n" % fielddisplay(self, 'fov_forward_indices', "indices for fov_foward driver of ADOLC") 53 42 54 if len(self.fov_forward_indices) > 0: 55 if not strcmpi(driver,'fov_forward'): 56 raise TypeError("cannot declare an independent with fov_forward_indices when the driver is not fov_forward!") 57 if self.nods==0: 58 raise TypeError("independent checkconsistency error: nods should be set to the size of the independent variable") 59 md = checkfield(md,'fieldname',"autodiff.independents[%d].fov_forward_indices" % i,'>=',1,'<=',self.nods) 43 return s 44 # }}} 60 45 61 return md 62 # }}} 63 def typetoscalar(self): # {{{ 64 if strcmpi(self.type,'scalar'): 65 scalar=0 66 elif strcmpi(self.type,'vertex'): 67 scalar=1 46 def setdefaultparameters(self): # {{{ 47 #do nothing 48 return self 49 # }}} 68 50 69 return scalar 70 # }}} 51 def checkconsistency(self, md, i, solution, analyses, driver): # {{{ 52 if not np.isnan(self.fos_forward_index): 53 if not strcmpi(driver, 'fos_forward'): 54 raise TypeError("cannot declare an independent with a fos_forward_index when the driver is not fos_forward!") 55 if self.nods == 0: 56 raise TypeError("independent checkconsistency error: nods should be set to the size of the independent variable") 57 58 if len(self.fov_forward_indices) > 0: 59 if not strcmpi(driver, 'fov_forward'): 60 raise TypeError("cannot declare an independent with fov_forward_indices when the driver is not fov_forward!") 61 if self.nods == 0: 62 raise TypeError("independent checkconsistency error: nods should be set to the size of the independent variable") 63 md = checkfield(md, 'fieldname', "autodiff.independents[%d].fov_forward_indices" % i, '>=', 1, '<=', self.nods) 64 65 return md 66 # }}} 67 68 def typetoscalar(self): # {{{ 69 if strcmpi(self.type, 'scalar'): 70 scalar = 0 71 elif strcmpi(self.type, 'vertex'): 72 scalar = 1 73 74 return scalar 75 # }}} -
issm/trunk-jpl/src/m/classes/initialization.py
r23833 r24213 4 4 from checkfield import checkfield 5 5 from WriteData import WriteData 6 import MatlabFuncs as m 6 7 7 8 8 class initialization(object): 9 9 """ 10 10 INITIALIZATION class definition 11 11 12 12 Usage: 13 initialization =initialization();13 initialization = initialization() 14 14 """ 15 15 16 def __init__(self): # {{{17 18 self.vx 19 self.vy 20 self.vz 21 self.vel 22 self.enthalpy 23 self.pressure 24 self.temperature 16 def __init__(self): # {{{ 17 18 self.vx = float('NaN') 19 self.vy = float('NaN') 20 self.vz = float('NaN') 21 self.vel = float('NaN') 22 self.enthalpy = float('NaN') 23 self.pressure = float('NaN') 24 self.temperature = float('NaN') 25 25 self.waterfraction = float('NaN') 26 self.watercolumn 26 self.watercolumn = float('NaN') 27 27 self.sediment_head = float('NaN') 28 self.epl_head 28 self.epl_head = float('NaN') 29 29 self.epl_thickness = float('NaN') 30 30 31 31 #set defaults 32 32 self.setdefaultparameters() 33 33 34 #}}} 35 def __repr__(self): # {{{ 36 string=' initial field values:' 37 string="%s\n%s"%(string,fielddisplay(self,'vx','x component of velocity [m/yr]')) 38 string="%s\n%s"%(string,fielddisplay(self,'vy','y component of velocity [m/yr]')) 39 string="%s\n%s"%(string,fielddisplay(self,'vz','z component of velocity [m/yr]')) 40 string="%s\n%s"%(string,fielddisplay(self,'vel','velocity norm [m/yr]')) 41 string="%s\n%s"%(string,fielddisplay(self,'pressure','pressure [Pa]')) 42 string="%s\n%s"%(string,fielddisplay(self,'temperature','temperature [K]')) 43 string="%s\n%s"%(string,fielddisplay(self,'enthalpy','enthalpy [J]')) 44 string="%s\n%s"%(string,fielddisplay(self,'waterfraction','fraction of water in the ice')) 45 string="%s\n%s"%(string,fielddisplay(self,'watercolumn','thickness of subglacial water [m]')) 46 string="%s\n%s"%(string,fielddisplay(self,'sediment_head','sediment water head of subglacial system [m]')) 47 string="%s\n%s"%(string,fielddisplay(self,'epl_head','epl water head of subglacial system [m]')) 48 string="%s\n%s"%(string,fielddisplay(self,'epl_thickness','thickness of the epl [m]')) 34 #}}} 35 36 def __repr__(self): # {{{ 37 string = ' initial field values:' 38 string = "%s\n%s" % (string, fielddisplay(self, 'vx', 'x component of velocity [m / yr]')) 39 string = "%s\n%s" % (string, fielddisplay(self, 'vy', 'y component of velocity [m / yr]')) 40 string = "%s\n%s" % (string, fielddisplay(self, 'vz', 'z component of velocity [m / yr]')) 41 string = "%s\n%s" % (string, fielddisplay(self, 'vel', 'velocity norm [m / yr]')) 42 string = "%s\n%s" % (string, fielddisplay(self, 'pressure', 'pressure [Pa]')) 43 string = "%s\n%s" % (string, fielddisplay(self, 'temperature', 'temperature [K]')) 44 string = "%s\n%s" % (string, fielddisplay(self, 'enthalpy', 'enthalpy [J]')) 45 string = "%s\n%s" % (string, fielddisplay(self, 'waterfraction', 'fraction of water in the ice')) 46 string = "%s\n%s" % (string, fielddisplay(self, 'watercolumn', 'thickness of subglacial water [m]')) 47 string = "%s\n%s" % (string, fielddisplay(self, 'sediment_head', 'sediment water head of subglacial system [m]')) 48 string = "%s\n%s" % (string, fielddisplay(self, 'epl_head', 'epl water head of subglacial system [m]')) 49 string = "%s\n%s" % (string, fielddisplay(self, 'epl_thickness', 'thickness of the epl [m]')) 49 50 50 51 return string 51 #}}} 52 def extrude(self,md): # {{{ 53 self.vx=project3d(md,'vector',self.vx,'type','node') 54 self.vy=project3d(md,'vector',self.vy,'type','node') 55 self.vz=project3d(md,'vector',self.vz,'type','node') 56 self.vel=project3d(md,'vector',self.vel,'type','node') 57 self.temperature=project3d(md,'vector',self.temperature,'type','node') 58 self.enthalpy=project3d(md,'vector',self.enthalpy,'type','node') 59 self.waterfraction=project3d(md,'vector',self.waterfraction,'type','node') 60 self.watercolumn=project3d(md,'vector',self.watercolumn,'type','node') 61 self.sediment_head=project3d(md,'vector',self.sediment_head,'type','node','layer',1) 62 self.epl_head=project3d(md,'vector',self.epl_head,'type','node','layer',1) 63 self.epl_thickness=project3d(md,'vector',self.epl_thickness,'type','node','layer',1) 52 #}}} 53 54 def extrude(self, md): # {{{ 55 self.vx = project3d(md, 'vector', self.vx, 'type', 'node') 56 self.vy = project3d(md, 'vector', self.vy, 'type', 'node') 57 self.vz = project3d(md, 'vector', self.vz, 'type', 'node') 58 self.vel = project3d(md, 'vector', self.vel, 'type', 'node') 59 self.temperature = project3d(md, 'vector', self.temperature, 'type', 'node') 60 self.enthalpy = project3d(md, 'vector', self.enthalpy, 'type', 'node') 61 self.waterfraction = project3d(md, 'vector', self.waterfraction, 'type', 'node') 62 self.watercolumn = project3d(md, 'vector', self.watercolumn, 'type', 'node') 63 self.sediment_head = project3d(md, 'vector', self.sediment_head, 'type', 'node', 'layer', 1) 64 self.epl_head = project3d(md, 'vector', self.epl_head, 'type', 'node', 'layer', 1) 65 self.epl_thickness = project3d(md, 'vector', self.epl_thickness, 'type', 'node', 'layer', 1) 64 66 65 67 #Lithostatic pressure by default 66 # self.pressure =md.constants.g*md.materials.rho_ice*(md.geometry.surface[:,0]-md.mesh.z)67 #self.pressure =md.constants.g*md.materials.rho_ice*(md.geometry.surface-md.mesh.z.reshape(-1,))68 # self.pressure = md.constants.g * md.materials.rho_ice * (md.geometry.surface[:, 0] - md.mesh.z) 69 #self.pressure = md.constants.g * md.materials.rho_ice * (md.geometry.surface-md.mesh.z.reshape(- 1, )) 68 70 69 if np.ndim(md.geometry.surface) ==2:71 if np.ndim(md.geometry.surface) == 2: 70 72 print('Reshaping md.geometry.surface for you convenience but you should fix it in you files') 71 self.pressure =md.constants.g*md.materials.rho_ice*(md.geometry.surface.reshape(-1,)-md.mesh.z)73 self.pressure = md.constants.g * md.materials.rho_ice * (md.geometry.surface.reshape(- 1, ) - md.mesh.z) 72 74 else: 73 self.pressure =md.constants.g*md.materials.rho_ice*(md.geometry.surface-md.mesh.z)75 self.pressure = md.constants.g * md.materials.rho_ice * (md.geometry.surface - md.mesh.z) 74 76 75 77 return self 76 78 #}}} 77 def setdefaultparameters(self): # {{{ 79 80 def setdefaultparameters(self): # {{{ 78 81 return self 79 82 #}}} 80 def checkconsistency(self,md,solution,analyses): # {{{ 83 84 def checkconsistency(self, md, solution, analyses): # {{{ 81 85 if 'StressbalanceAnalysis' in analyses: 82 if not np.any(np.logical_or(np.isnan(md.initialization.vx), np.isnan(md.initialization.vy))):83 md = checkfield(md, 'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])84 md = checkfield(md, 'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])86 if not np.any(np.logical_or(np.isnan(md.initialization.vx), np.isnan(md.initialization.vy))): 87 md = checkfield(md, 'fieldname', 'initialization.vx', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 88 md = checkfield(md, 'fieldname', 'initialization.vy', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 85 89 if 'MasstransportAnalysis' in analyses: 86 md = checkfield(md, 'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])87 md = checkfield(md, 'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])90 md = checkfield(md, 'fieldname', 'initialization.vx', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 91 md = checkfield(md, 'fieldname', 'initialization.vy', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 88 92 if 'BalancethicknessAnalysis' in analyses: 89 md = checkfield(md, 'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])90 md = checkfield(md, 'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])93 md = checkfield(md, 'fieldname', 'initialization.vx', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 94 md = checkfield(md, 'fieldname', 'initialization.vy', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 91 95 #Triangle with zero velocity 92 if np.any(np.logical_and(np.sum(np.abs(md.initialization.vx[md.mesh.elements -1]),axis=1)==0,\93 np.sum(np.abs(md.initialization.vy[md.mesh.elements-1]),axis=1)==0)):96 if np.any(np.logical_and(np.sum(np.abs(md.initialization.vx[md.mesh.elements - 1]), axis=1) == 0, 97 np.sum(np.abs(md.initialization.vy[md.mesh.elements - 1]), axis=1) == 0)): 94 98 md.checkmessage("at least one triangle has all its vertices with a zero velocity") 95 99 if 'ThermalAnalysis' in analyses: 96 md = checkfield(md, 'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])97 md = checkfield(md, 'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])98 md = checkfield(md, 'fieldname','initialization.temperature','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])99 if md.mesh.dimension() ==3:100 md = checkfield(md, 'fieldname','initialization.vz','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])101 md = checkfield(md, 'fieldname','initialization.pressure','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])100 md = checkfield(md, 'fieldname', 'initialization.vx', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 101 md = checkfield(md, 'fieldname', 'initialization.vy', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 102 md = checkfield(md, 'fieldname', 'initialization.temperature', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 103 if md.mesh.dimension() == 3: 104 md = checkfield(md, 'fieldname', 'initialization.vz', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 105 md = checkfield(md, 'fieldname', 'initialization.pressure', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 102 106 if ('EnthalpyAnalysis' in analyses and md.thermal.isenthalpy): 103 md = checkfield(md, 'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])104 md = checkfield(md, 'fieldname','initialization.watercolumn' ,'>=',0,'size',[md.mesh.numberofvertices])107 md = checkfield(md, 'fieldname', 'initialization.waterfraction', '>=', 0, 'size', [md.mesh.numberofvertices]) 108 md = checkfield(md, 'fieldname', 'initialization.watercolumn', '>=', 0, 'size', [md.mesh.numberofvertices]) 105 109 pos = np.nonzero(md.initialization.waterfraction > 0.)[0] 106 110 if(pos.size): 107 md = checkfield(md, 'fieldname', 'delta Tpmp', 'field', np.absolute(md.initialization.temperature[pos]-(md.materials.meltingpoint-md.materials.beta*md.initialization.pressure[pos])),'<',1e-11, 'message','set temperature to pressure melting point at locations with waterfraction>0');111 md = checkfield(md, 'fieldname', 'delta Tpmp', 'field', np.absolute(md.initialization.temperature[pos] - (md.materials.meltingpoint - md.materials.beta * md.initialization.pressure[pos])), '<', 1e-11, 'message', 'set temperature to pressure melting point at locations with waterfraction > 0') 108 112 if 'HydrologyShreveAnalysis' in analyses: 109 if hasattr(md.hydrology, 'hydrologyshreve'):110 md = checkfield(md, 'fieldname','initialization.watercolumn','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])113 if hasattr(md.hydrology, 'hydrologyshreve'): 114 md = checkfield(md, 'fieldname', 'initialization.watercolumn', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 111 115 if 'HydrologyDCInefficientAnalysis' in analyses: 112 if hasattr(md.hydrology, 'hydrologydc'):113 md = checkfield(md, 'fieldname','initialization.sediment_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])116 if hasattr(md.hydrology, 'hydrologydc'): 117 md = checkfield(md, 'fieldname', 'initialization.sediment_head', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 114 118 if 'HydrologyDCEfficientAnalysis' in analyses: 115 if hasattr(md.hydrology, 'hydrologydc'):116 if md.hydrology.isefficientlayer ==1:117 md = checkfield(md, 'fieldname','initialization.epl_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])118 md = checkfield(md, 'fieldname','initialization.epl_thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])119 if hasattr(md.hydrology, 'hydrologydc'): 120 if md.hydrology.isefficientlayer == 1: 121 md = checkfield(md, 'fieldname', 'initialization.epl_head', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 122 md = checkfield(md, 'fieldname', 'initialization.epl_thickness', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 119 123 120 124 return md 121 125 # }}} 122 def marshall(self,prefix,md,fid): # {{{123 126 124 yts=md.constants.yts127 def marshall(self, prefix, md, fid): # {{{ 125 128 126 WriteData(fid,prefix,'object',self,'fieldname','vx','format','DoubleMat','mattype',1,'scale',1./yts) 127 WriteData(fid,prefix,'object',self,'fieldname','vy','format','DoubleMat','mattype',1,'scale',1./yts) 128 WriteData(fid,prefix,'object',self,'fieldname','vz','format','DoubleMat','mattype',1,'scale',1./yts) 129 WriteData(fid,prefix,'object',self,'fieldname','pressure','format','DoubleMat','mattype',1) 130 WriteData(fid,prefix,'object',self,'fieldname','temperature','format','DoubleMat','mattype',1) 131 WriteData(fid,prefix,'object',self,'fieldname','waterfraction','format','DoubleMat','mattype',1) 132 WriteData(fid,prefix,'object',self,'fieldname','sediment_head','format','DoubleMat','mattype',1) 133 WriteData(fid,prefix,'object',self,'fieldname','epl_head','format','DoubleMat','mattype',1) 134 WriteData(fid,prefix,'object',self,'fieldname','epl_thickness','format','DoubleMat','mattype',1) 135 WriteData(fid,prefix,'object',self,'fieldname','watercolumn','format','DoubleMat','mattype',1) 136 129 yts = md.constants.yts 130 131 WriteData(fid, prefix, 'object', self, 'fieldname', 'vx', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 132 WriteData(fid, prefix, 'object', self, 'fieldname', 'vy', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 133 WriteData(fid, prefix, 'object', self, 'fieldname', 'vz', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 134 WriteData(fid, prefix, 'object', self, 'fieldname', 'pressure', 'format', 'DoubleMat', 'mattype', 1) 135 WriteData(fid, prefix, 'object', self, 'fieldname', 'temperature', 'format', 'DoubleMat', 'mattype', 1) 136 WriteData(fid, prefix, 'object', self, 'fieldname', 'waterfraction', 'format', 'DoubleMat', 'mattype', 1) 137 WriteData(fid, prefix, 'object', self, 'fieldname', 'sediment_head', 'format', 'DoubleMat', 'mattype', 1) 138 WriteData(fid, prefix, 'object', self, 'fieldname', 'epl_head', 'format', 'DoubleMat', 'mattype', 1) 139 WriteData(fid, prefix, 'object', self, 'fieldname', 'epl_thickness', 'format', 'DoubleMat', 'mattype', 1) 140 WriteData(fid, prefix, 'object', self, 'fieldname', 'watercolumn', 'format', 'DoubleMat', 'mattype', 1) 141 137 142 if md.thermal.isenthalpy: 138 if (np.size(self.enthalpy) <=1):139 tpmp = md.materials.meltingpoint - md.materials.beta *md.initialization.pressure;140 pos 141 self.enthalpy = md.materials.heatcapacity*(md.initialization.temperature-md.constants.referencetemperature);142 self.enthalpy[pos] = md.materials.heatcapacity *(tpmp[pos].reshape(-1,) - md.constants.referencetemperature) + md.materials.latentheat*md.initialization.waterfraction[pos].reshape(-1,)143 if (np.size(self.enthalpy) <= 1): 144 tpmp = md.materials.meltingpoint - md.materials.beta * md.initialization.pressure 145 pos = np.nonzero(md.initialization.waterfraction > 0.)[0] 146 self.enthalpy = md.materials.heatcapacity * (md.initialization.temperature - md.constants.referencetemperature) 147 self.enthalpy[pos] = md.materials.heatcapacity * (tpmp[pos].reshape(- 1, ) - md.constants.referencetemperature) + md.materials.latentheat * md.initialization.waterfraction[pos].reshape(- 1, ) 143 148 144 WriteData(fid,prefix,'data',self.enthalpy,'format','DoubleMat','mattype',1,'name','md.initialization.enthalpy'); 145 149 WriteData(fid, prefix, 'data', self.enthalpy, 'format', 'DoubleMat', 'mattype', 1, 'name', 'md.initialization.enthalpy') 146 150 # }}} -
issm/trunk-jpl/src/m/classes/inversion.py
r23095 r24213 8 8 from marshallcostfunctions import marshallcostfunctions 9 9 10 10 11 class inversion(object): 11 12 12 """ 13 INVERSION class definition 13 14 14 15 inversion=inversion()16 15 Usage: 16 inversion = inversion() 17 """ 17 18 18 def __init__(self):# {{{19 self.iscontrol= 020 self.incomplete_adjoint= 021 self.control_parameters= float('NaN')22 self.nsteps= 023 self.maxiter_per_step= float('NaN')24 self.cost_functions = '' 25 26 self.gradient_scaling= float('NaN')27 self.cost_function_threshold= 028 self.min_parameters= float('NaN')29 self.max_parameters= float('NaN')30 self.step_threshold= float('NaN')31 self.vx_obs= float('NaN')32 self.vy_obs= float('NaN')33 self.vz_obs= float('NaN')34 self.vel_obs= float('NaN')35 self.thickness_obs= float('NaN')36 self.surface_obs= float('NaN')19 def __init__(self): # {{{ 20 self.iscontrol = 0 21 self.incomplete_adjoint = 0 22 self.control_parameters = float('NaN') 23 self.nsteps = 0 24 self.maxiter_per_step = float('NaN') 25 self.cost_functions = '' 26 self.cost_functions_coefficients = float('NaN') 27 self.gradient_scaling = float('NaN') 28 self.cost_function_threshold = 0 29 self.min_parameters = float('NaN') 30 self.max_parameters = float('NaN') 31 self.step_threshold = float('NaN') 32 self.vx_obs = float('NaN') 33 self.vy_obs = float('NaN') 34 self.vz_obs = float('NaN') 35 self.vel_obs = float('NaN') 36 self.thickness_obs = float('NaN') 37 self.surface_obs = float('NaN') 37 38 38 39 39 #set defaults 40 self.setdefaultparameters() 40 41 41 #}}} 42 def __repr__(self): # {{{ 43 string=' inversion parameters:' 44 string="%s\n%s"%(string,fielddisplay(self,'iscontrol','is inversion activated?')) 45 string="%s\n%s"%(string,fielddisplay(self,'incomplete_adjoint','1: linear viscosity, 0: non-linear viscosity')) 46 string="%s\n%s"%(string,fielddisplay(self,'control_parameters','ex: {''FrictionCoefficient''}, or {''MaterialsRheologyBbar''}')) 47 string="%s\n%s"%(string,fielddisplay(self,'nsteps','number of optimization searches')) 48 string="%s\n%s"%(string,fielddisplay(self,'cost_functions','indicate the type of response for each optimization step')) 49 string="%s\n%s"%(string,fielddisplay(self,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter')) 50 string="%s\n%s"%(string,fielddisplay(self,'cost_function_threshold','misfit convergence criterion. Default is 1%, NaN if not applied')) 51 string="%s\n%s"%(string,fielddisplay(self,'maxiter_per_step','maximum iterations during each optimization step')) 52 string="%s\n%s"%(string,fielddisplay(self,'gradient_scaling','scaling factor on gradient direction during optimization, for each optimization step')) 53 string="%s\n%s"%(string,fielddisplay(self,'step_threshold','decrease threshold for misfit, default is 30%')) 54 string="%s\n%s"%(string,fielddisplay(self,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex')) 55 string="%s\n%s"%(string,fielddisplay(self,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex')) 56 string="%s\n%s"%(string,fielddisplay(self,'vx_obs','observed velocity x component [m/yr]')) 57 string="%s\n%s"%(string,fielddisplay(self,'vy_obs','observed velocity y component [m/yr]')) 58 string="%s\n%s"%(string,fielddisplay(self,'vel_obs','observed velocity magnitude [m/yr]')) 59 string="%s\n%s"%(string,fielddisplay(self,'thickness_obs','observed thickness [m]')) 60 string="%s\n%s"%(string,fielddisplay(self,'surface_obs','observed surface elevation [m]')) 61 string="%s\n%s"%(string,'Available cost functions:') 62 string="%s\n%s"%(string,' 101: SurfaceAbsVelMisfit') 63 string="%s\n%s"%(string,' 102: SurfaceRelVelMisfit') 64 string="%s\n%s"%(string,' 103: SurfaceLogVelMisfit') 65 string="%s\n%s"%(string,' 104: SurfaceLogVxVyMisfit') 66 string="%s\n%s"%(string,' 105: SurfaceAverageVelMisfit') 67 string="%s\n%s"%(string,' 201: ThicknessAbsMisfit') 68 string="%s\n%s"%(string,' 501: DragCoefficientAbsGradient') 69 string="%s\n%s"%(string,' 502: RheologyBbarAbsGradient') 70 string="%s\n%s"%(string,' 503: ThicknessAbsGradient') 71 return string 72 #}}} 73 def extrude(self,md): # {{{ 74 self.vx_obs=project3d(md,'vector',self.vx_obs,'type','node') 75 self.vy_obs=project3d(md,'vector',self.vy_obs,'type','node') 76 self.vel_obs=project3d(md,'vector',self.vel_obs,'type','node') 77 self.thickness_obs=project3d(md,'vector',self.thickness_obs,'type','node') 78 if not np.any(np.isnan(self.cost_functions_coefficients)): 79 self.cost_functions_coefficients=project3d(md,'vector',self.cost_functions_coefficients,'type','node') 80 if not np.any(np.isnan(self.min_parameters)): 81 self.min_parameters=project3d(md,'vector',self.min_parameters,'type','node') 82 if not np.any(np.isnan(self.max_parameters)): 83 self.max_parameters=project3d(md,'vector',self.max_parameters,'type','node') 84 return self 85 #}}} 86 def setdefaultparameters(self): # {{{ 87 88 #default is incomplete adjoint for now 89 self.incomplete_adjoint=1 42 #}}} 90 43 91 #parameter to be inferred by control methods (only 92 #drag and B are supported yet) 93 self.control_parameters='FrictionCoefficient' 44 def __repr__(self): # {{{ 45 string = ' inversion parameters:' 46 string = "%s\n%s" % (string, fielddisplay(self, 'iscontrol', 'is inversion activated?')) 47 string = "%s\n%s" % (string, fielddisplay(self, 'incomplete_adjoint', '1: linear viscosity, 0: non - linear viscosity')) 48 string = "%s\n%s" % (string, fielddisplay(self, 'control_parameters', 'ex: {''FrictionCoefficient''}, or {''MaterialsRheologyBbar''}')) 49 string = "%s\n%s" % (string, fielddisplay(self, 'nsteps', 'number of optimization searches')) 50 string = "%s\n%s" % (string, fielddisplay(self, 'cost_functions', 'indicate the type of response for each optimization step')) 51 string = "%s\n%s" % (string, fielddisplay(self, 'cost_functions_coefficients', 'cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter')) 52 string = "%s\n%s" % (string, fielddisplay(self, 'cost_function_threshold', 'misfit convergence criterion. Default is 1%, NaN if not applied')) 53 string = "%s\n%s" % (string, fielddisplay(self, 'maxiter_per_step', 'maximum iterations during each optimization step')) 54 string = "%s\n%s" % (string, fielddisplay(self, 'gradient_scaling', 'scaling factor on gradient direction during optimization, for each optimization step')) 55 string = "%s\n%s" % (string, fielddisplay(self, 'step_threshold', 'decrease threshold for misfit, default is 30%')) 56 string = "%s\n%s" % (string, fielddisplay(self, 'min_parameters', 'absolute minimum acceptable value of the inversed parameter on each vertex')) 57 string = "%s\n%s" % (string, fielddisplay(self, 'max_parameters', 'absolute maximum acceptable value of the inversed parameter on each vertex')) 58 string = "%s\n%s" % (string, fielddisplay(self, 'vx_obs', 'observed velocity x component [m / yr]')) 59 string = "%s\n%s" % (string, fielddisplay(self, 'vy_obs', 'observed velocity y component [m / yr]')) 60 string = "%s\n%s" % (string, fielddisplay(self, 'vel_obs', 'observed velocity magnitude [m / yr]')) 61 string = "%s\n%s" % (string, fielddisplay(self, 'thickness_obs', 'observed thickness [m]')) 62 string = "%s\n%s" % (string, fielddisplay(self, 'surface_obs', 'observed surface elevation [m]')) 63 string = "%s\n%s" % (string, 'Available cost functions:') 64 string = "%s\n%s" % (string, ' 101: SurfaceAbsVelMisfit') 65 string = "%s\n%s" % (string, ' 102: SurfaceRelVelMisfit') 66 string = "%s\n%s" % (string, ' 103: SurfaceLogVelMisfit') 67 string = "%s\n%s" % (string, ' 104: SurfaceLogVxVyMisfit') 68 string = "%s\n%s" % (string, ' 105: SurfaceAverageVelMisfit') 69 string = "%s\n%s" % (string, ' 201: ThicknessAbsMisfit') 70 string = "%s\n%s" % (string, ' 501: DragCoefficientAbsGradient') 71 string = "%s\n%s" % (string, ' 502: RheologyBbarAbsGradient') 72 string = "%s\n%s" % (string, ' 503: ThicknessAbsGradient') 73 return string 74 #}}} 94 75 95 #number of steps in the control methods 96 self.nsteps=20 76 def extrude(self, md): # {{{ 77 self.vx_obs = project3d(md, 'vector', self.vx_obs, 'type', 'node') 78 self.vy_obs = project3d(md, 'vector', self.vy_obs, 'type', 'node') 79 self.vel_obs = project3d(md, 'vector', self.vel_obs, 'type', 'node') 80 self.thickness_obs = project3d(md, 'vector', self.thickness_obs, 'type', 'node') 81 if not np.any(np.isnan(self.cost_functions_coefficients)): 82 self.cost_functions_coefficients = project3d(md, 'vector', self.cost_functions_coefficients, 'type', 'node') 83 if not np.any(np.isnan(self.min_parameters)): 84 self.min_parameters = project3d(md, 'vector', self.min_parameters, 'type', 'node') 85 if not np.any(np.isnan(self.max_parameters)): 86 self.max_parameters = project3d(md, 'vector', self.max_parameters, 'type', 'node') 87 return self 88 #}}} 97 89 98 #maximum number of iteration in the optimization algorithm for 99 #each step 100 self.maxiter_per_step=20*np.ones(self.nsteps) 90 def setdefaultparameters(self): # {{{ 101 91 102 #the inversed parameter is updated as follows: 103 #new_par=old_par + gradient_scaling(n)*C*gradient with C in [0 1]; 104 #usually the gradient_scaling must be of the order of magnitude of the 105 #inversed parameter (10^8 for B, 50 for drag) and can be decreased 106 #after the first iterations 107 self.gradient_scaling=50*np.ones((self.nsteps,1)) 92 #default is incomplete adjoint for now 93 self.incomplete_adjoint = 1 94 #parameter to be inferred by control methods (only 95 #drag and B are supported yet) 96 self.control_parameters = 'FrictionCoefficient' 97 #number of steps in the control methods 98 self.nsteps = 20 99 #maximum number of iteration in the optimization algorithm for 100 #each step 101 self.maxiter_per_step = 20 * np.ones(self.nsteps) 102 #the inversed parameter is updated as follows: 103 #new_par = old_par + gradient_scaling(n) * C * gradient with C in [0 1] 104 #usually the gradient_scaling must be of the order of magnitude of the 105 #inversed parameter (10^8 for B, 50 for drag) and can be decreased 106 #after the first iterations 107 self.gradient_scaling = 50 * np.ones((self.nsteps, 1)) 108 #several responses can be used: 109 self.cost_functions = [101, ] 110 #step_threshold is used to speed up control method. When 111 #misfit(1) / misfit(0) < self.step_threshold, we go directly to 112 #the next step 113 self.step_threshold = 0.7 * np.ones(self.nsteps) #30 per cent decrement 114 #cost_function_threshold is a criteria to stop the control methods. 115 #if J[n] - J[n - 1] / J[n] < criteria, the control run stops 116 #NaN if not applied 117 self.cost_function_threshold = float('NaN') #not activated 108 118 109 #several responses can be used: 110 self.cost_functions=[101,] 119 return self 120 #}}} 111 121 112 #step_threshold is used to speed up control method. When 113 #misfit(1)/misfit(0) < self.step_threshold, we go directly to 114 #the next step 115 self.step_threshold=.7*np.ones(self.nsteps) #30 per cent decrement 122 def checkconsistency(self, md, solution, analyses): # {{{ 123 #Early return 124 if not self.iscontrol: 125 return md 116 126 117 #cost_function_threshold is a criteria to stop the control methods. 118 #if J[n]-J[n-1]/J[n] < criteria, the control run stops 119 #NaN if not applied 120 self.cost_function_threshold=float('NaN') #not activated 127 num_controls = np.size(md.inversion.control_parameters) 128 num_costfunc = np.size(md.inversion.cost_functions) 121 129 122 return self 123 #}}} 124 def checkconsistency(self,md,solution,analyses): # {{{ 130 md = checkfield(md, 'fieldname', 'inversion.iscontrol', 'values', [0, 1]) 131 md = checkfield(md, 'fieldname', 'inversion.incomplete_adjoint', 'values', [0, 1]) 132 md = checkfield(md, 'fieldname', 'inversion.control_parameters', 'cell', 1, 'values', supportedcontrols()) 133 md = checkfield(md, 'fieldname', 'inversion.nsteps', 'numel', [1], '>=', 0) 134 md = checkfield(md, 'fieldname', 'inversion.maxiter_per_step', 'size', [md.inversion.nsteps], '>=', 0) 135 md = checkfield(md, 'fieldname', 'inversion.step_threshold', 'size', [md.inversion.nsteps]) 136 md = checkfield(md, 'fieldname', 'inversion.cost_functions', 'size', [num_costfunc], 'values', supportedcostfunctions()) 137 md = checkfield(md, 'fieldname', 'inversion.cost_functions_coefficients', 'size', [md.mesh.numberofvertices, num_costfunc], '>=', 0) 138 md = checkfield(md, 'fieldname', 'inversion.gradient_scaling', 'size', [md.inversion.nsteps, num_controls]) 139 md = checkfield(md, 'fieldname', 'inversion.min_parameters', 'size', [md.mesh.numberofvertices, num_controls]) 140 md = checkfield(md, 'fieldname', 'inversion.max_parameters', 'size', [md.mesh.numberofvertices, num_controls]) 125 141 126 #Early return 127 if not self.iscontrol: 128 return md 142 #Only SSA, HO and FS are supported right now 143 if solution == 'StressbalanceSolution': 144 if not (md.flowequation.isSSA or md.flowequation.isHO or md.flowequation.isFS or md.flowequation.isL1L2): 145 md.checkmessage("'inversion can only be performed for SSA, HO or FS ice flow models") 129 146 130 num_controls=np.size(md.inversion.control_parameters) 131 num_costfunc=np.size(md.inversion.cost_functions) 147 if solution == 'BalancethicknessSolution': 148 md = checkfield(md, 'fieldname', 'inversion.thickness_obs', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 149 else: 150 md = checkfield(md, 'fieldname', 'inversion.vx_obs', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 151 md = checkfield(md, 'fieldname', 'inversion.vy_obs', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 132 152 133 md = checkfield(md,'fieldname','inversion.iscontrol','values',[0,1]) 134 md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0,1]) 135 md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols()) 136 md = checkfield(md,'fieldname','inversion.nsteps','numel',[1],'>=',0) 137 md = checkfield(md,'fieldname','inversion.maxiter_per_step','size',[md.inversion.nsteps],'>=',0) 138 md = checkfield(md,'fieldname','inversion.step_threshold','size',[md.inversion.nsteps]) 139 md = checkfield(md,'fieldname','inversion.cost_functions','size',[num_costfunc],'values',supportedcostfunctions()) 140 md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0) 141 md = checkfield(md,'fieldname','inversion.gradient_scaling','size',[md.inversion.nsteps,num_controls]) 142 md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices,num_controls]) 143 md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls]) 153 return md 154 # }}} 144 155 145 #Only SSA, HO and FS are supported right now 146 if solution=='StressbalanceSolution': 147 if not (md.flowequation.isSSA or md.flowequation.isHO or md.flowequation.isFS or md.flowequation.isL1L2): 148 md.checkmessage("'inversion can only be performed for SSA, HO or FS ice flow models"); 156 def marshall(self, prefix, md, fid): # {{{ 157 yts = md.constants.yts 149 158 150 if solution=='BalancethicknessSolution': 151 md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 152 else: 153 md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 154 md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 159 WriteData(fid, prefix, 'name', 'md.inversion.type', 'data', 0, 'format', 'Integer') 160 WriteData(fid, prefix, 'object', self, 'fieldname', 'iscontrol', 'format', 'Boolean') 161 WriteData(fid, prefix, 'object', self, 'fieldname', 'incomplete_adjoint', 'format', 'Boolean') 162 WriteData(fid, prefix, 'object', self, 'fieldname', 'vel_obs', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 163 if not self.iscontrol: 164 return 165 WriteData(fid, prefix, 'object', self, 'fieldname', 'nsteps', 'format', 'Integer') 166 WriteData(fid, prefix, 'object', self, 'fieldname', 'maxiter_per_step', 'format', 'DoubleMat', 'mattype', 3) 167 WriteData(fid, prefix, 'object', self, 'fieldname', 'cost_functions_coefficients', 'format', 'DoubleMat', 'mattype', 1) 168 WriteData(fid, prefix, 'object', self, 'fieldname', 'gradient_scaling', 'format', 'DoubleMat', 'mattype', 3) 169 WriteData(fid, prefix, 'object', self, 'fieldname', 'cost_function_threshold', 'format', 'Double') 170 WriteData(fid, prefix, 'object', self, 'fieldname', 'min_parameters', 'format', 'DoubleMat', 'mattype', 3) 171 WriteData(fid, prefix, 'object', self, 'fieldname', 'max_parameters', 'format', 'DoubleMat', 'mattype', 3) 172 WriteData(fid, prefix, 'object', self, 'fieldname', 'step_threshold', 'format', 'DoubleMat', 'mattype', 3) 173 WriteData(fid, prefix, 'object', self, 'fieldname', 'vx_obs', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 174 WriteData(fid, prefix, 'object', self, 'fieldname', 'vy_obs', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 175 WriteData(fid, prefix, 'object', self, 'fieldname', 'vz_obs', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 176 WriteData(fid, prefix, 'object', self, 'fieldname', 'thickness_obs', 'format', 'DoubleMat', 'mattype', 1) 177 WriteData(fid, prefix, 'object', self, 'fieldname', 'surface_obs', 'format', 'DoubleMat', 'mattype', 1) 155 178 156 return md 157 # }}} 158 def marshall(self,prefix,md,fid): # {{{ 179 #process control parameters 180 num_control_parameters = len(self.control_parameters) 181 WriteData(fid, prefix, 'object', self, 'fieldname', 'control_parameters', 'format', 'StringArray') 182 WriteData(fid, prefix, 'data', num_control_parameters, 'name', 'md.inversion.num_control_parameters', 'format', 'Integer') 159 183 160 yts=md.constants.yts 161 162 WriteData(fid,prefix,'name','md.inversion.type','data',0,'format','Integer') 163 WriteData(fid,prefix,'object',self,'fieldname','iscontrol','format','Boolean') 164 WriteData(fid,prefix,'object',self,'fieldname','incomplete_adjoint','format','Boolean') 165 WriteData(fid,prefix,'object',self,'fieldname','vel_obs','format','DoubleMat','mattype',1,'scale',1./yts) 166 if not self.iscontrol: 167 return 168 WriteData(fid,prefix,'object',self,'fieldname','nsteps','format','Integer') 169 WriteData(fid,prefix,'object',self,'fieldname','maxiter_per_step','format','DoubleMat','mattype',3) 170 WriteData(fid,prefix,'object',self,'fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1) 171 WriteData(fid,prefix,'object',self,'fieldname','gradient_scaling','format','DoubleMat','mattype',3) 172 WriteData(fid,prefix,'object',self,'fieldname','cost_function_threshold','format','Double') 173 WriteData(fid,prefix,'object',self,'fieldname','min_parameters','format','DoubleMat','mattype',3) 174 WriteData(fid,prefix,'object',self,'fieldname','max_parameters','format','DoubleMat','mattype',3) 175 WriteData(fid,prefix,'object',self,'fieldname','step_threshold','format','DoubleMat','mattype',3) 176 WriteData(fid,prefix,'object',self,'fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts) 177 WriteData(fid,prefix,'object',self,'fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts) 178 WriteData(fid,prefix,'object',self,'fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts) 179 WriteData(fid,prefix,'object',self,'fieldname','thickness_obs','format','DoubleMat','mattype',1) 180 WriteData(fid,prefix,'object',self,'fieldname','surface_obs','format','DoubleMat','mattype',1) 181 182 #process control parameters 183 num_control_parameters=len(self.control_parameters) 184 WriteData(fid,prefix,'object',self,'fieldname','control_parameters','format','StringArray') 185 WriteData(fid,prefix,'data',num_control_parameters,'name','md.inversion.num_control_parameters','format','Integer') 186 187 #process cost functions 188 num_cost_functions=np.size(self.cost_functions) 189 data=marshallcostfunctions(self.cost_functions) 190 WriteData(fid,prefix,'data',data,'name','md.inversion.cost_functions','format','StringArray') 191 WriteData(fid,prefix,'data',num_cost_functions,'name','md.inversion.num_cost_functions','format','Integer') 192 # }}} 184 #process cost functions 185 num_cost_functions = np.size(self.cost_functions) 186 data = marshallcostfunctions(self.cost_functions) 187 WriteData(fid, prefix, 'data', data, 'name', 'md.inversion.cost_functions', 'format', 'StringArray') 188 WriteData(fid, prefix, 'data', num_cost_functions, 'name', 'md.inversion.num_cost_functions', 'format', 'Integer') 189 # }}} -
issm/trunk-jpl/src/m/classes/issmsettings.py
r23772 r24213 9 9 10 10 Usage: 11 issmsettings =issmsettings();11 issmsettings = issmsettings() 12 12 """ 13 13 … … 22 22 self.solver_residue_threshold = 0 23 23 24 24 #set defaults 25 25 self.setdefaultparameters() 26 26 27 #}}} 27 #}}} 28 28 29 def __repr__(self): # {{{ 29 30 string = " general issmsettings parameters:" 30 31 31 32 string = "%s\n%s" % (string, fielddisplay(self, "results_on_nodes", "list of output for which results will be output for all the nodes of each element, Use 'all' for all output on nodes.")) 32 string = "%s\n%s" % (string, fielddisplay(self, "io_gather", "I /O gathering strategy for result outputs (default 1)"))33 string = "%s\n%s" % (string, fielddisplay(self, "io_gather", "I / O gathering strategy for result outputs (default 1)")) 33 34 string = "%s\n%s" % (string, fielddisplay(self, "lowmem", "is the memory limited ? (0 or 1)")) 34 35 string = "%s\n%s" % (string, fielddisplay(self, "output_frequency", "frequency at which results are saved in all solutions with multiple time_steps")) … … 41 42 42 43 def setdefaultparameters(self): # {{{ 43 44 44 #are we short in memory ? (0 faster but requires more memory) 45 45 self.lowmem = 0 46 47 #i/o: 46 #i / o: 48 47 self.io_gather = 1 49 50 48 #results frequency by default every step 51 49 self.output_frequency = 1 52 53 50 #coupling frequency of the stress balance solver by default every step 54 51 self.sb_coupling_frequency = 1 55 56 52 #checkpoints frequency, by default never: 57 53 self.recording_frequency = 0 58 59 54 #this option can be activated to load automatically the results 60 55 #onto the model after a parallel run by waiting for the lock file 61 56 #N minutes that is generated once the solution has converged 62 57 #0 to deactivate 63 self.waitonlock = 2 ** 31 - 1 64 58 self.waitonlock = 2**31 - 1 65 59 #throw an error if solver residue exceeds this value 66 60 self.solver_residue_threshold = 1e-6 … … 69 63 #}}} 70 64 71 def checkconsistency(self, md, solution, analyses): 65 def checkconsistency(self, md, solution, analyses): # {{{ 72 66 md = checkfield(md, 'fieldname', 'settings.results_on_nodes', 'stringrow', 1) 73 67 md = checkfield(md, 'fieldname', 'settings.io_gather', 'numel', [1], 'values', [0, 1]) … … 82 76 # }}} 83 77 84 def marshall(self, prefix, md, fid): 78 def marshall(self, prefix, md, fid): # {{{ 85 79 WriteData(fid, prefix, 'data', self.results_on_nodes, 'name', 'md.settings.results_on_nodes', 'format', 'StringArray') 86 80 WriteData(fid, prefix, 'object', self, 'class', 'settings', 'fieldname', 'io_gather', 'format', 'Boolean') -
issm/trunk-jpl/src/m/classes/levelset.py
r24115 r24213 10 10 11 11 Usage: 12 levelset =levelset();12 levelset = levelset() 13 13 """ 14 14 … … 22 22 self.fe = 'P1' 23 23 24 24 #set defaults 25 25 self.setdefaultparameters() 26 26 27 27 #}}} 28 28 def __repr__(self): # {{{ 29 string = ' Level -set parameters:'29 string = ' Level - set parameters:' 30 30 string = "%s\n%s" % (string, fielddisplay(self, 'stabilization', '0: no, 1: artificial_diffusivity, 2: streamline upwinding')) 31 31 string = "%s\n%s" % (string, fielddisplay(self, 'spclevelset', 'levelset constraints (NaN means no constraint)')) 32 32 string = "%s\n%s" % (string, fielddisplay(self, 'reinit_frequency', 'Amount of time steps after which the levelset function in re-initialized')) 33 33 string = "%s\n%s" % (string, fielddisplay(self, 'kill_icebergs', 'remove floating icebergs to prevent rigid body motions (1: true, 0: false)')) 34 string = "%s\n%s" % (string, fielddisplay(self, 'calving_max', 'maximum allowed calving rate (m /a)'))34 string = "%s\n%s" % (string, fielddisplay(self, 'calving_max', 'maximum allowed calving rate (m / a)')) 35 35 string = "%s\n%s" % (string, fielddisplay(self, 'fe', 'Finite Element type: ''P1'' (default), or ''P2''')) 36 36 … … 44 44 45 45 def setdefaultparameters(self): # {{{ 46 47 46 #stabilization = 1 by default 48 47 self.stabilization = 1 … … 51 50 self.calving_max = 3000. 52 51 53 52 #Linear elements by default 54 53 self.fe = 'P1' 55 54 56 55 return self 57 56 #}}} 58 def checkconsistency(self, md, solution, analyses): # {{{59 57 58 def checkconsistency(self, md, solution, analyses): # {{{ 60 59 #Early return 61 60 if (solution != 'TransientSolution') or (not md.transient.ismovingfront): … … 71 70 # }}} 72 71 73 def marshall(self, prefix, md, fid): # {{{ 74 72 def marshall(self, prefix, md, fid): # {{{ 75 73 yts = md.constants.yts 76 74 -
issm/trunk-jpl/src/m/classes/linearbasalforcings.py
r24202 r24213 4 4 import numpy as np 5 5 6 6 7 class linearbasalforcings(object): 7 8 8 """ 9 LINEAR BASAL FORCINGS class definition 9 10 10 11 basalforcings=linearbasalforcings(); 12 11 Usage: 12 basalforcings = linearbasalforcings() 13 """ 13 14 14 def __init__(self,*args):# {{{15 def __init__(self, *args): # {{{ 15 16 16 17 18 self.groundedice_melting_rate= float('NaN')19 self.deepwater_melting_rate= 0.20 self.deepwater_elevation= 0.21 self.upperwater_melting_rate= 0.22 self.upperwater_elevation= 0.23 self.geothermalflux= float('NaN')17 if not len(args): 18 print('empty init') 19 self.groundedice_melting_rate = float('NaN') 20 self.deepwater_melting_rate = 0. 21 self.deepwater_elevation = 0. 22 self.upperwater_melting_rate = 0. 23 self.upperwater_elevation = 0. 24 self.geothermalflux = float('NaN') 24 25 25 26 27 elif len(args)==1 and args[0].__module__=='basalforcings':28 29 inv=args[0]30 self.groundedice_melting_rate= inv.groundedice_melting_rate31 self.geothermalflux= inv.geothermalflux32 self.deepwater_melting_rate= 0.33 self.deepwater_elevation= 0.34 self.upperwater_melting_rate= 0.35 self.upperwater_elevation= 0.26 #set defaults 27 self.setdefaultparameters() 28 elif len(args) == 1 and args[0].__module__ == 'basalforcings': 29 print('converting basalforings to linearbasalforcings') 30 inv = args[0] 31 self.groundedice_melting_rate = inv.groundedice_melting_rate 32 self.geothermalflux = inv.geothermalflux 33 self.deepwater_melting_rate = 0. 34 self.deepwater_elevation = 0. 35 self.upperwater_melting_rate = 0. 36 self.upperwater_elevation = 0. 36 37 37 38 39 40 38 #set defaults 39 self.setdefaultparameters() 40 else: 41 raise Exception('constructor not supported') 41 42 42 43 def __repr__(self):# {{{44 string=" linear basal forcings parameters:"43 #}}} 44 def __repr__(self): # {{{ 45 string = " linear basal forcings parameters:" 45 46 46 string="%s\n%s"%(string,fielddisplay(self,"deepwater_melting_rate","basal melting rate (positive if melting applied for floating ice whith base < deepwater_elevation) [m/yr]"))47 string="%s\n%s"%(string,fielddisplay(self,"deepwater_elevation","elevation of ocean deepwater [m]"))48 string="%s\n%s"%(string,fielddisplay(self,"upperwater_melting_rate","upper melting rate (positive if melting applied for floating ice whith base >= upperwater_elevation) [m/yr]"))49 string="%s\n%s"%(string,fielddisplay(self,"upperwater_elevation","elevation of ocean upper water [m]"))50 string="%s\n%s"%(string,fielddisplay(self,"groundedice_melting_rate","basal melting rate (positive if melting) [m/yr]"))51 string="%s\n%s"%(string,fielddisplay(self,"geothermalflux","geothermal heat flux [W/m^2]"))52 53 54 def initialize(self,md):# {{{47 string = "%s\n%s" % (string, fielddisplay(self, "deepwater_melting_rate", "basal melting rate (positive if melting applied for floating ice whith base < deepwater_elevation) [m/yr]")) 48 string = "%s\n%s" % (string, fielddisplay(self, "deepwater_elevation", "elevation of ocean deepwater [m]")) 49 string = "%s\n%s" % (string, fielddisplay(self, "upperwater_melting_rate", "upper melting rate (positive if melting applied for floating ice whith base >= upperwater_elevation) [m/yr]")) 50 string = "%s\n%s" % (string, fielddisplay(self, "upperwater_elevation", "elevation of ocean upper water [m]")) 51 string = "%s\n%s" % (string, fielddisplay(self, "groundedice_melting_rate", "basal melting rate (positive if melting) [m/yr]")) 52 string = "%s\n%s" % (string, fielddisplay(self, "geothermalflux", "geothermal heat flux [W/m^2]")) 53 return string 54 #}}} 55 def initialize(self, md): # {{{ 55 56 56 57 self.groundedice_melting_rate=np.zeros((md.mesh.numberofvertices))58 57 if np.all(np.isnan(self.groundedice_melting_rate)): 58 self.groundedice_melting_rate = np.zeros((md.mesh.numberofvertices)) 59 print(" no basalforcings.groundedice_melting_rate specified: values set as zero") 59 60 60 61 62 def setdefaultparameters(self):# {{{61 return self 62 #}}} 63 def setdefaultparameters(self): # {{{ 63 64 64 self.deepwater_melting_rate= 50.065 self.deepwater_elevation = -800.066 67 self.upperwater_elevation = -400.065 self.deepwater_melting_rate = 50.0 66 self.deepwater_elevation = - 800.0 67 self.upperwater_melting_rate = 0.0 68 self.upperwater_elevation = - 400.0 68 69 69 70 71 def checkconsistency(self,md,solution,analyses):# {{{70 return self 71 #}}} 72 def checkconsistency(self, md, solution, analyses): # {{{ 72 73 73 if 'MasstransportAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.ismasstransport):74 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)75 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1)76 md = checkfield(md,'fieldname','basalforcings.upperwater_melting_rate','>=',0,'singletimeseries',1)77 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1)78 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1)74 if 'MasstransportAnalysis' in analyses and not (solution == 'TransientSolution' and not md.transient.ismasstransport): 75 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 76 md = checkfield(md, 'fieldname', 'basalforcings.deepwater_melting_rate', '>=', 0, 'singletimeseries', 1) 77 md = checkfield(md, 'fieldname', 'basalforcings.upperwater_melting_rate', '>=', 0, 'singletimeseries', 1) 78 md = checkfield(md, 'fieldname', 'basalforcings.deepwater_elevation', '<', 'basalforcings.upperwater_elevation', 'singletimeseries', 1) 79 md = checkfield(md, 'fieldname', 'basalforcings.upperwater_elevation', '<=', 0, 'singletimeseries', 1) 79 80 80 81 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])82 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1)83 md = checkfield(md,'fieldname','basalforcings.upperwater_melting_rate','>=',0,'singletimeseries',1)84 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1)85 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1)81 if 'BalancethicknessAnalysis' in analyses: 82 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 83 md = checkfield(md, 'fieldname', 'basalforcings.deepwater_melting_rate', '>=', 0, 'singletimeseries', 1) 84 md = checkfield(md, 'fieldname', 'basalforcings.upperwater_melting_rate', '>=', 0, 'singletimeseries', 1) 85 md = checkfield(md, 'fieldname', 'basalforcings.deepwater_elevation', '<', 'basalforcings.upperwater_elevation', 'singletimeseries', 1) 86 md = checkfield(md, 'fieldname', 'basalforcings.upperwater_elevation', '<=', 0, 'singletimeseries', 1) 86 87 87 if 'ThermalAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.isthermal):88 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)89 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1)90 md = checkfield(md,'fieldname','basalforcings.upperwater_melting_rate','>=',0,'singletimeseries',1)91 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1)92 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1)93 md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0)88 if 'ThermalAnalysis' in analyses and not (solution == 'TransientSolution' and not md.transient.isthermal): 89 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 90 md = checkfield(md, 'fieldname', 'basalforcings.deepwater_melting_rate', '>=', 0, 'singletimeseries', 1) 91 md = checkfield(md, 'fieldname', 'basalforcings.upperwater_melting_rate', '>=', 0, 'singletimeseries', 1) 92 md = checkfield(md, 'fieldname', 'basalforcings.deepwater_elevation', '<', 'basalforcings.upperwater_elevation', 'singletimeseries', 1) 93 md = checkfield(md, 'fieldname', 'basalforcings.upperwater_elevation', '<=', 0, 'singletimeseries', 1) 94 md = checkfield(md, 'fieldname', 'basalforcings.geothermalflux', 'NaN', 1, 'Inf', 1, 'timeseries', 1, '>=', 0) 94 95 95 96 97 def marshall(self,prefix,md,fid):# {{{96 return md 97 # }}} 98 def marshall(self, prefix, md, fid): # {{{ 98 99 99 yts=md.constants.yts100 yts = md.constants.yts 100 101 101 WriteData(fid,prefix,'name','md.basalforcings.model','data',2,'format','Integer')102 WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','name','md.basalforcings.groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)103 WriteData(fid,prefix,'object',self,'fieldname','geothermalflux','name','md.basalforcings.geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)104 WriteData(fid,prefix,'object',self,'fieldname','deepwater_melting_rate','format','DoubleMat','mattype',3,'timeserieslength',2,'name','md.basalforcings.deepwater_melting_rate','scale',1./yts,'yts',md.constants.yts)105 WriteData(fid,prefix,'object',self,'fieldname','deepwater_elevation','format','DoubleMat','mattype',3,'name','md.basalforcings.deepwater_elevation','yts',md.constants.yts)106 WriteData(fid,prefix,'object',self,'fieldname','upperwater_melting_rate','format','DoubleMat','mattype',3,'timeserieslength',2,'name','md.basalforcings.upperwater_melting_rate','scale',1./yts,'yts',md.constants.yts)107 WriteData(fid,prefix,'object',self,'fieldname','upperwater_elevation','format','DoubleMat','mattype',3,'name','md.basalforcings.upperwater_elevation','yts',md.constants.yts)108 102 WriteData(fid, prefix, 'name', 'md.basalforcings.model', 'data', 2, 'format', 'Integer') 103 WriteData(fid, prefix, 'object', self, 'fieldname', 'groundedice_melting_rate', 'name', 'md.basalforcings.groundedice_melting_rate', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 104 WriteData(fid, prefix, 'object', self, 'fieldname', 'geothermalflux', 'name', 'md.basalforcings.geothermalflux', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 105 WriteData(fid, prefix, 'object', self, 'fieldname', 'deepwater_melting_rate', 'format', 'DoubleMat', 'mattype', 3, 'timeserieslength', 2, 'name', 'md.basalforcings.deepwater_melting_rate', 'scale', 1. / yts, 'yts', yts) 106 WriteData(fid, prefix, 'object', self, 'fieldname', 'deepwater_elevation', 'format', 'DoubleMat', 'mattype', 3, 'name', 'md.basalforcings.deepwater_elevation', 'yts', yts) 107 WriteData(fid, prefix, 'object', self, 'fieldname', 'upperwater_melting_rate', 'format', 'DoubleMat', 'mattype', 3, 'timeserieslength', 2, 'name', 'md.basalforcings.upperwater_melting_rate', 'scale', 1. / yts, 'yts', yts) 108 WriteData(fid, prefix, 'object', self, 'fieldname', 'upperwater_elevation', 'format', 'DoubleMat', 'mattype', 3, 'name', 'md.basalforcings.upperwater_elevation', 'yts', yts) 109 # }}} -
issm/trunk-jpl/src/m/classes/m1qn3inversion.py
r23716 r24213 8 8 from marshallcostfunctions import marshallcostfunctions 9 9 10 10 11 class m1qn3inversion(object): 11 12 12 ''' 13 M1QN3 class definition 13 14 14 15 Usage: 15 m1qn3inversion =m1qn3inversion()16 16 m1qn3inversion = m1qn3inversion() 17 ''' 17 18 18 def __init__(self,*args):# {{{19 def __init__(self, *args): # {{{ 19 20 20 21 22 self.iscontrol= 023 self.incomplete_adjoint= 024 self.control_parameters= float('NaN')25 self.control_scaling_factors= float('NaN')26 self.maxsteps= 027 self.maxiter= 028 self.dxmin= 0.29 self.gttol= 0.30 self.cost_functions= float('NaN')31 32 self.min_parameters= float('NaN')33 self.max_parameters= float('NaN')34 self.vx_obs= float('NaN')35 self.vy_obs= float('NaN')36 self.vz_obs= float('NaN')37 self.vel_obs= float('NaN')38 self.thickness_obs= float('NaN')21 if not len(args): 22 print('empty init') 23 self.iscontrol = 0 24 self.incomplete_adjoint = 0 25 self.control_parameters = float('NaN') 26 self.control_scaling_factors = float('NaN') 27 self.maxsteps = 0 28 self.maxiter = 0 29 self.dxmin = 0. 30 self.gttol = 0. 31 self.cost_functions = float('NaN') 32 self.cost_functions_coefficients = float('NaN') 33 self.min_parameters = float('NaN') 34 self.max_parameters = float('NaN') 35 self.vx_obs = float('NaN') 36 self.vy_obs = float('NaN') 37 self.vz_obs = float('NaN') 38 self.vel_obs = float('NaN') 39 self.thickness_obs = float('NaN') 39 40 40 41 42 elif len(args)==1 and args[0].__module__=='inversion':43 44 inv=args[0]45 #first call setdefaultparameters: 46 41 #set defaults 42 self.setdefaultparameters() 43 elif len(args) == 1 and args[0].__module__ == 'inversion': 44 print('converting inversion to m1qn3inversion') 45 inv = args[0] 46 #first call setdefaultparameters: 47 self.setdefaultparameters() 47 48 48 #then go fish whatever is available in the inversion object provided to the constructor 49 self.iscontrol = inv.iscontrol 50 self.incomplete_adjoint = inv.incomplete_adjoint 51 self.control_parameters = inv.control_parameters 52 self.maxsteps = inv.nsteps 53 self.cost_functions = inv.cost_functions 54 self.cost_functions_coefficients = inv.cost_functions_coefficients 55 self.min_parameters = inv.min_parameters 56 self.max_parameters = inv.max_parameters 57 self.vx_obs = inv.vx_obs 58 self.vy_obs = inv.vy_obs 59 self.vz_obs = inv.vz_obs 60 self.vel_obs = inv.vel_obs 61 self.thickness_obs = inv.thickness_obs 62 else: 63 raise Exception('constructor not supported') 64 #}}} 65 def __repr__(self): # {{{ 66 string=' m1qn3inversion parameters:' 67 string="%s\n%s"%(string,fielddisplay(self,'iscontrol','is inversion activated?')) 68 string="%s\n%s"%(string,fielddisplay(self,'incomplete_adjoint','1: linear viscosity, 0: non-linear viscosity')) 69 string="%s\n%s"%(string,fielddisplay(self,'control_parameters','ex: [''FrictionCoefficient''], or [''MaterialsRheologyBbar'']')) 70 string="%s\n%s"%(string,fielddisplay(self,'control_scaling_factors','order of magnitude of each control (useful for multi-parameter optimization)')) 71 string="%s\n%s"%(string,fielddisplay(self,'maxsteps','maximum number of iterations (gradient computation)')) 72 string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of Function evaluation (forward run)')) 73 string="%s\n%s"%(string,fielddisplay(self,'dxmin','convergence criterion: two points less than dxmin from eachother (sup-norm) are considered identical')) 74 string="%s\n%s"%(string,fielddisplay(self,'gttol','||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)')) 75 string="%s\n%s"%(string,fielddisplay(self,'cost_functions','indicate the type of response for each optimization step')) 76 string="%s\n%s"%(string,fielddisplay(self,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter')) 77 string="%s\n%s"%(string,fielddisplay(self,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex')) 78 string="%s\n%s"%(string,fielddisplay(self,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex')) 79 string="%s\n%s"%(string,fielddisplay(self,'vx_obs','observed velocity x component [m/yr]')) 80 string="%s\n%s"%(string,fielddisplay(self,'vy_obs','observed velocity y component [m/yr]')) 81 string="%s\n%s"%(string,fielddisplay(self,'vel_obs','observed velocity magnitude [m/yr]')) 82 string="%s\n%s"%(string,fielddisplay(self,'thickness_obs','observed thickness [m]')) 83 string="%s\n%s"%(string,'Available cost functions:') 84 string="%s\n%s"%(string,' 101: SurfaceAbsVelMisfit') 85 string="%s\n%s"%(string,' 102: SurfaceRelVelMisfit') 86 string="%s\n%s"%(string,' 103: SurfaceLogVelMisfit') 87 string="%s\n%s"%(string,' 104: SurfaceLogVxVyMisfit') 88 string="%s\n%s"%(string,' 105: SurfaceAverageVelMisfit') 89 string="%s\n%s"%(string,' 201: ThicknessAbsMisfit') 90 string="%s\n%s"%(string,' 501: DragCoefficientAbsGradient') 91 string="%s\n%s"%(string,' 502: RheologyBbarAbsGradient') 92 string="%s\n%s"%(string,' 503: ThicknessAbsGradient') 93 return string 94 #}}} 95 def extrude(self,md): # {{{ 96 self.vx_obs=project3d(md,'vector',self.vx_obs,'type','node') 97 self.vy_obs=project3d(md,'vector',self.vy_obs,'type','node') 98 self.vel_obs=project3d(md,'vector',self.vel_obs,'type','node') 99 self.thickness_obs=project3d(md,'vector',self.thickness_obs,'type','node') 100 if not np.any(np.isnan(self.cost_functions_coefficients)): 101 self.cost_functions_coefficients=project3d(md,'vector',self.cost_functions_coefficients,'type','node') 102 if not np.any(np.isnan(self.min_parameters)): 103 self.min_parameters=project3d(md,'vector',self.min_parameters,'type','node') 104 if not np.any(np.isnan(self.max_parameters)): 105 self.max_parameters=project3d(md,'vector',self.max_parameters,'type','node') 106 return self 107 #}}} 108 def setdefaultparameters(self): # {{{ 109 110 #default is incomplete adjoint for now 111 self.incomplete_adjoint=1 49 #then go fish whatever is available in the inversion object provided to the constructor 50 self.iscontrol = inv.iscontrol 51 self.incomplete_adjoint = inv.incomplete_adjoint 52 self.control_parameters = inv.control_parameters 53 self.maxsteps = inv.nsteps 54 self.cost_functions = inv.cost_functions 55 self.cost_functions_coefficients = inv.cost_functions_coefficients 56 self.min_parameters = inv.min_parameters 57 self.max_parameters = inv.max_parameters 58 self.vx_obs = inv.vx_obs 59 self.vy_obs = inv.vy_obs 60 self.vz_obs = inv.vz_obs 61 self.vel_obs = inv.vel_obs 62 self.thickness_obs = inv.thickness_obs 63 else: 64 raise Exception('constructor not supported') 65 #}}} 112 66 113 #parameter to be inferred by control methods (only 114 #drag and B are supported yet) 115 self.control_parameters='FrictionCoefficient' 116 117 #Scaling factor for each control 118 self.control_scaling_factors=1 67 def __repr__(self): # {{{ 68 string = ' m1qn3inversion parameters:' 69 string = "%s\n%s" % (string, fielddisplay(self, 'iscontrol', 'is inversion activated?')) 70 string = "%s\n%s" % (string, fielddisplay(self, 'incomplete_adjoint', '1: linear viscosity, 0: non - linear viscosity')) 71 string = "%s\n%s" % (string, fielddisplay(self, 'control_parameters', 'ex: [''FrictionCoefficient''], or [''MaterialsRheologyBbar'']')) 72 string = "%s\n%s" % (string, fielddisplay(self, 'control_scaling_factors', 'order of magnitude of each control (useful for multi - parameter optimization)')) 73 string = "%s\n%s" % (string, fielddisplay(self, 'maxsteps', 'maximum number of iterations (gradient computation)')) 74 string = "%s\n%s" % (string, fielddisplay(self, 'maxiter', 'maximum number of Function evaluation (forward run)')) 75 string = "%s\n%s" % (string, fielddisplay(self, 'dxmin', 'convergence criterion: two points less than dxmin from eachother (sup - norm) are considered identical')) 76 string = "%s\n%s" % (string, fielddisplay(self, 'gttol', '||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)')) 77 string = "%s\n%s" % (string, fielddisplay(self, 'cost_functions', 'indicate the type of response for each optimization step')) 78 string = "%s\n%s" % (string, fielddisplay(self, 'cost_functions_coefficients', 'cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter')) 79 string = "%s\n%s" % (string, fielddisplay(self, 'min_parameters', 'absolute minimum acceptable value of the inversed parameter on each vertex')) 80 string = "%s\n%s" % (string, fielddisplay(self, 'max_parameters', 'absolute maximum acceptable value of the inversed parameter on each vertex')) 81 string = "%s\n%s" % (string, fielddisplay(self, 'vx_obs', 'observed velocity x component [m / yr]')) 82 string = "%s\n%s" % (string, fielddisplay(self, 'vy_obs', 'observed velocity y component [m / yr]')) 83 string = "%s\n%s" % (string, fielddisplay(self, 'vel_obs', 'observed velocity magnitude [m / yr]')) 84 string = "%s\n%s" % (string, fielddisplay(self, 'thickness_obs', 'observed thickness [m]')) 85 string = "%s\n%s" % (string, 'Available cost functions:') 86 string = "%s\n%s" % (string, ' 101: SurfaceAbsVelMisfit') 87 string = "%s\n%s" % (string, ' 102: SurfaceRelVelMisfit') 88 string = "%s\n%s" % (string, ' 103: SurfaceLogVelMisfit') 89 string = "%s\n%s" % (string, ' 104: SurfaceLogVxVyMisfit') 90 string = "%s\n%s" % (string, ' 105: SurfaceAverageVelMisfit') 91 string = "%s\n%s" % (string, ' 201: ThicknessAbsMisfit') 92 string = "%s\n%s" % (string, ' 501: DragCoefficientAbsGradient') 93 string = "%s\n%s" % (string, ' 502: RheologyBbarAbsGradient') 94 string = "%s\n%s" % (string, ' 503: ThicknessAbsGradient') 95 return string 96 #}}} 119 97 120 #number of iterations 121 self.maxsteps=20 122 self.maxiter=40 98 def extrude(self, md): # {{{ 99 self.vx_obs = project3d(md, 'vector', self.vx_obs, 'type', 'node') 100 self.vy_obs = project3d(md, 'vector', self.vy_obs, 'type', 'node') 101 self.vel_obs = project3d(md, 'vector', self.vel_obs, 'type', 'node') 102 self.thickness_obs = project3d(md, 'vector', self.thickness_obs, 'type', 'node') 103 if not np.any(np.isnan(self.cost_functions_coefficients)): 104 self.cost_functions_coefficients = project3d(md, 'vector', self.cost_functions_coefficients, 'type', 'node') 105 if not np.any(np.isnan(self.min_parameters)): 106 self.min_parameters = project3d(md, 'vector', self.min_parameters, 'type', 'node') 107 if not np.any(np.isnan(self.max_parameters)): 108 self.max_parameters = project3d(md, 'vector', self.max_parameters, 'type', 'node') 109 return self 110 #}}} 123 111 124 #several responses can be used: 125 self.cost_functions=101 112 def setdefaultparameters(self): # {{{ 113 #default is incomplete adjoint for now 114 self.incomplete_adjoint = 1 115 #parameter to be inferred by control methods (only 116 #drag and B are supported yet) 117 self.control_parameters = 'FrictionCoefficient' 118 #Scaling factor for each control 119 self.control_scaling_factors = 1 120 #number of iterations 121 self.maxsteps = 20 122 self.maxiter = 40 123 #several responses can be used: 124 self.cost_functions = 101 125 #m1qn3 parameters 126 self.dxmin = 0.1 127 self.gttol = 1e-4 126 128 127 #m1qn3 parameters 128 self.dxmin = 0.1 129 self.gttol = 1e-4 129 return self 130 #}}} 130 131 131 return self 132 #}}} 133 def checkconsistency(self,md,solution,analyses): # {{{ 132 def checkconsistency(self, md, solution, analyses): # {{{ 133 #Early return 134 if not self.iscontrol: 135 return md 134 136 135 #Early return 136 if not self.iscontrol: 137 return md 137 num_controls = np.size(md.inversion.control_parameters) 138 num_costfunc = np.size(md.inversion.cost_functions) 138 139 139 num_controls=np.size(md.inversion.control_parameters) 140 num_costfunc=np.size(md.inversion.cost_functions) 140 md = checkfield(md, 'fieldname', 'inversion.iscontrol', 'values', [0, 1]) 141 md = checkfield(md, 'fieldname', 'inversion.incomplete_adjoint', 'values', [0, 1]) 142 md = checkfield(md, 'fieldname', 'inversion.control_parameters', 'cell', 1, 'values', supportedcontrols()) 143 md = checkfield(md, 'fieldname', 'inversion.control_scaling_factors', 'size', [num_controls], '>', 0, 'NaN', 1, 'Inf', 1) 144 md = checkfield(md, 'fieldname', 'inversion.maxsteps', 'numel', [1], '>=', 0) 145 md = checkfield(md, 'fieldname', 'inversion.maxiter', 'numel', [1], '>=', 0) 146 md = checkfield(md, 'fieldname', 'inversion.dxmin', 'numel', [1], '>', 0.) 147 md = checkfield(md, 'fieldname', 'inversion.gttol', 'numel', [1], '>', 0.) 148 md = checkfield(md, 'fieldname', 'inversion.cost_functions', 'size', [num_costfunc], 'values', supportedcostfunctions()) 149 md = checkfield(md, 'fieldname', 'inversion.cost_functions_coefficients', 'size', [md.mesh.numberofvertices, num_costfunc], '>=', 0) 150 md = checkfield(md, 'fieldname', 'inversion.min_parameters', 'size', [md.mesh.numberofvertices, num_controls]) 151 md = checkfield(md, 'fieldname', 'inversion.max_parameters', 'size', [md.mesh.numberofvertices, num_controls]) 141 152 142 md = checkfield(md,'fieldname','inversion.iscontrol','values',[0,1]) 143 md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0,1]) 144 md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols()) 145 md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[num_controls],'>',0,'NaN',1,'Inf',1) 146 md = checkfield(md,'fieldname','inversion.maxsteps','numel',[1],'>=',0) 147 md = checkfield(md,'fieldname','inversion.maxiter','numel',[1],'>=',0) 148 md = checkfield(md,'fieldname','inversion.dxmin','numel',[1],'>',0.) 149 md = checkfield(md,'fieldname','inversion.gttol','numel',[1],'>',0.) 150 md = checkfield(md,'fieldname','inversion.cost_functions','size',[num_costfunc],'values',supportedcostfunctions()) 151 md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0) 152 md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices,num_controls]) 153 md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls]) 153 if solution == 'BalancethicknessSolution': 154 md = checkfield(md, 'fieldname', 'inversion.thickness_obs', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 155 else: 156 md = checkfield(md, 'fieldname', 'inversion.vx_obs', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 157 md = checkfield(md, 'fieldname', 'inversion.vy_obs', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 154 158 155 if solution=='BalancethicknessSolution': 156 md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 157 else: 158 md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 159 md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 159 return md 160 # }}} 160 161 161 return md 162 # }}} 163 def marshall(self,prefix,md,fid): # {{{ 162 def marshall(self, prefix, md, fid): # {{{ 163 yts = md.constants.yts 164 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'iscontrol', 'format', 'Boolean') 165 WriteData(fid, prefix, 'name', 'md.inversion.type', 'data', 2, 'format', 'Integer') 166 if not self.iscontrol: 167 return 168 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'incomplete_adjoint', 'format', 'Boolean') 169 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'control_scaling_factors', 'format', 'DoubleMat', 'mattype', 3) 170 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'maxsteps', 'format', 'Integer') 171 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'maxiter', 'format', 'Integer') 172 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'dxmin', 'format', 'Double') 173 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'gttol', 'format', 'Double') 174 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'cost_functions_coefficients', 'format', 'DoubleMat', 'mattype', 1) 175 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'min_parameters', 'format', 'DoubleMat', 'mattype', 3) 176 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'max_parameters', 'format', 'DoubleMat', 'mattype', 3) 177 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'vx_obs', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 178 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'vy_obs', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 179 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'vz_obs', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 180 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'thickness_obs', 'format', 'DoubleMat', 'mattype', 1) 164 181 165 yts=md.constants.yts 182 #process control parameters 183 num_control_parameters = len(self.control_parameters) 184 WriteData(fid, prefix, 'object', self, 'fieldname', 'control_parameters', 'format', 'StringArray') 185 WriteData(fid, prefix, 'data', num_control_parameters, 'name', 'md.inversion.num_control_parameters', 'format', 'Integer') 166 186 167 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','iscontrol','format','Boolean') 168 WriteData(fid,prefix,'name','md.inversion.type','data',2,'format','Integer') 169 if not self.iscontrol: 170 return 171 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','incomplete_adjoint','format','Boolean') 172 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','control_scaling_factors','format','DoubleMat','mattype',3) 173 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','maxsteps','format','Integer') 174 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','maxiter','format','Integer') 175 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','dxmin','format','Double') 176 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','gttol','format','Double') 177 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1) 178 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','min_parameters','format','DoubleMat','mattype',3) 179 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','max_parameters','format','DoubleMat','mattype',3) 180 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts) 181 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts) 182 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts) 183 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',1) 184 185 #process control parameters 186 num_control_parameters=len(self.control_parameters) 187 WriteData(fid,prefix,'object',self,'fieldname','control_parameters','format','StringArray') 188 WriteData(fid,prefix,'data',num_control_parameters,'name','md.inversion.num_control_parameters','format','Integer') 189 190 #process cost functions 191 num_cost_functions=np.size(self.cost_functions) 192 data=marshallcostfunctions(self.cost_functions) 193 WriteData(fid,prefix,'data',data,'name','md.inversion.cost_functions','format','StringArray') 194 WriteData(fid,prefix,'data',num_cost_functions,'name','md.inversion.num_cost_functions','format','Integer') 195 # }}} 187 #process cost functions 188 num_cost_functions = np.size(self.cost_functions) 189 data = marshallcostfunctions(self.cost_functions) 190 WriteData(fid, prefix, 'data', data, 'name', 'md.inversion.cost_functions', 'format', 'StringArray') 191 WriteData(fid, prefix, 'data', num_cost_functions, 'name', 'md.inversion.num_cost_functions', 'format', 'Integer') 192 # }}} -
issm/trunk-jpl/src/m/classes/mask.py
r22096 r24213 4 4 from checkfield import checkfield 5 5 from WriteData import WriteData 6 import MatlabFuncs as m 6 7 7 8 8 class mask(object): 9 10 9 """ 10 MASK class definition 11 11 12 13 mask=mask(); 14 12 Usage: 13 mask = mask() 14 """ 15 15 16 def __init__(self):# {{{17 self.ice_levelset= float('NaN')18 16 def __init__(self): # {{{ 17 self.ice_levelset = float('NaN') 18 self.groundedice_levelset = float('NaN') 19 19 20 21 20 #set defaults 21 self.setdefaultparameters() 22 22 23 #}}} 24 def __repr__(self): # {{{ 25 string=" masks:" 23 #}}} 26 24 27 string="%s\n%s"%(string,fielddisplay(self,"groundedice_levelset","is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0")) 28 string="%s\n%s"%(string,fielddisplay(self,"ice_levelset","presence of ice if < 0, icefront position if = 0, no ice if > 0")) 29 return string 30 #}}} 31 def extrude(self,md): # {{{ 32 self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node') 33 self.groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node') 34 return self 35 #}}} 36 def setdefaultparameters(self): # {{{ 37 return self 38 #}}} 39 def checkconsistency(self,md,solution,analyses): # {{{ 40 if(solution=='LoveSolution'): 41 return 25 def __repr__(self): # {{{ 26 string = " masks:" 42 27 43 md = checkfield(md,'fieldname','mask.ice_levelset' ,'size',[md.mesh.numberofvertices])44 isice=np.array(md.mask.ice_levelset<=0,int)45 if np.sum(isice)==0: 46 raise TypeError("no ice present in the domain") 28 string = "%s\n%s" % (string, fielddisplay(self, "groundedice_levelset", "is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0")) 29 string = "%s\n%s" % (string, fielddisplay(self, "ice_levelset", "presence of ice if < 0, icefront position if = 0, no ice if > 0")) 30 return string 31 #}}} 47 32 48 return md 49 # }}} 50 def marshall(self,prefix,md,fid): # {{{ 51 WriteData(fid,prefix,'object',self,'fieldname','groundedice_levelset','format','DoubleMat','mattype',1) 52 WriteData(fid,prefix,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1) 53 # }}} 33 def extrude(self, md): # {{{ 34 self.ice_levelset = project3d(md, 'vector', self.ice_levelset, 'type', 'node') 35 self.groundedice_levelset = project3d(md, 'vector', self.groundedice_levelset, 'type', 'node') 36 return self 37 #}}} 38 39 def setdefaultparameters(self): # {{{ 40 return self 41 #}}} 42 43 def checkconsistency(self, md, solution, analyses): # {{{ 44 if(solution == 'LoveSolution'): 45 return 46 47 md = checkfield(md, 'fieldname', 'mask.ice_levelset', 'size', [md.mesh.numberofvertices]) 48 isice = np.array(md.mask.ice_levelset <= 0, int) 49 if np.sum(isice) == 0: 50 raise TypeError("no ice present in the domain") 51 52 return md 53 # }}} 54 55 def marshall(self, prefix, md, fid): # {{{ 56 WriteData(fid, prefix, 'object', self, 'fieldname', 'groundedice_levelset', 'format', 'DoubleMat', 'mattype', 1) 57 WriteData(fid, prefix, 'object', self, 'fieldname', 'ice_levelset', 'format', 'DoubleMat', 'mattype', 1) 58 # }}} -
issm/trunk-jpl/src/m/classes/maskpsl.py
r23064 r24213 6 6 from WriteData import WriteData 7 7 8 8 9 class maskpsl(object): 9 #MASKPSL class definition10 #11 # Usage:12 # maskpsl=maskpsl(); 10 #MASKPSL class definition 11 # 12 # Usage: 13 # maskpsl = maskpsl() 13 14 14 def __init__(self,*args):# {{{15 16 self.ice_levelset= float('NaN')17 18 15 def __init__(self, *args): # {{{ 16 self.groundedice_levelset = float('NaN') 17 self.ice_levelset = float('NaN') 18 self.ocean_levelset = float('NaN') 19 self.land_levelset = float('NaN') 19 20 20 if not len(args): 21 self.setdefaultparameters() 22 else: 23 raise RuntimeError('constructor not supported') 24 # }}} 25 def __repr__(self): # {{{ 26 string=' masks:' 27 string="%s\n%s"%(string,fielddisplay(self,'groundedice_levelset','is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0')) 28 string="%s\n%s"%(string,fielddisplay(self,'ice_levelset','presence of ice if < 0, icefront position if = 0, no ice if > 0')) 29 string="%s\n%s"%(string,fielddisplay(self,'ocean_levelset','is the vertex on the ocean ? yes if = 1, no if = 0')) 30 string="%s\n%s"%(string,fielddisplay(self,'land_levelset','is the vertex on the land ? yes if = 1, no if = 0')) 31 return string 21 if not len(args): 22 self.setdefaultparameters() 23 else: 24 raise RuntimeError('constructor not supported') 25 # }}} 32 26 33 # }}} 34 def loadobj(self): # {{{ 35 # This def is directly called by matlab when a model object is 36 # loaded. Update old properties here 37 #2014 February 5th 38 if numel(self.ice_levelset)>1 and all(self.ice_levelset>=0): 39 print('WARNING: md.mask.ice_levelset>=0, you probably need to change the sign of this levelset') 40 return self 41 # }}} 27 def __repr__(self): # {{{ 28 string = ' masks:' 29 string = "%s\n%s" % (string, fielddisplay(self, 'groundedice_levelset', 'is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'ice_levelset', 'presence of ice if < 0, icefront position if = 0, no ice if > 0')) 31 string = "%s\n%s" % (string, fielddisplay(self, 'ocean_levelset', 'is the vertex on the ocean ? yes if = 1, no if = 0')) 32 string = "%s\n%s" % (string, fielddisplay(self, 'land_levelset', 'is the vertex on the land ? yes if = 1, no if = 0')) 33 return string 42 34 43 def setdefaultparameters(self): # {{{ 44 return self 35 # }}} 45 36 46 # }}} 37 def loadobj(self): # {{{ 38 # This def is directly called by matlab when a model object is 39 # loaded. Update old properties here 40 #2014 February 5th 41 if numel(self.ice_levelset) > 1 and all(self.ice_levelset >= 0): 42 print('WARNING: md.mask.ice_levelset >= 0, you probably need to change the sign of this levelset') 43 return self 44 # }}} 47 45 48 def checkconsistency(self,md,solution,analyses): # {{{ 49 md = checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices]) 50 md = checkfield(md,'fieldname','mask.ice_levelset' ,'size',[md.mesh.numberofvertices]) 51 md = checkfield(md,'fieldname','mask.ocean_levelset','size',[md.mesh.numberofvertices]) 52 md = checkfield(md,'fieldname','mask.land_levelset','size',[md.mesh.numberofvertices]) 53 isice=(md.mask.ice_levelset<=0) 54 if sum(isice)==0: 55 print('no ice present in the domain') 46 def setdefaultparameters(self): # {{{ 47 return self 56 48 57 if max(md.mask.ice_levelset)<0: 58 print('no ice front provided') 49 # }}} 59 50 60 elements=md.mesh.elements-1; elements=elements.astype(np.int32, copy=False); 61 icefront=np.sum(md.mask.ice_levelset[elements]==0,axis=1) 62 if (max(icefront)==3 & m.strcmp(md.mesh.elementtype(),'Tria')) or (max(icefront==6) & m.strcmp(md.mesh.elementtype(),'Penta')): 63 raise RuntimeError('At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it') 51 def checkconsistency(self, md, solution, analyses): # {{{ 52 md = checkfield(md, 'fieldname', 'mask.groundedice_levelset', 'size', [md.mesh.numberofvertices]) 53 md = checkfield(md, 'fieldname', 'mask.ice_levelset', 'size', [md.mesh.numberofvertices]) 54 md = checkfield(md, 'fieldname', 'mask.ocean_levelset', 'size', [md.mesh.numberofvertices]) 55 md = checkfield(md, 'fieldname', 'mask.land_levelset', 'size', [md.mesh.numberofvertices]) 56 isice = (md.mask.ice_levelset <= 0) 57 if sum(isice) == 0: 58 print('no ice present in the domain') 64 59 65 return md 60 if max(md.mask.ice_levelset) < 0: 61 print('no ice front provided') 66 62 67 # }}} 63 elements = md.mesh.elements - 1 64 elements = elements.astype(np.int32, copy=False) 65 icefront = np.sum(md.mask.ice_levelset[elements] == 0, axis=1) 66 if (max(icefront) == 3 & m.strcmp(md.mesh.elementtype(), 'Tria')) or (max(icefront == 6) & m.strcmp(md.mesh.elementtype(), 'Penta')): 67 raise RuntimeError('At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it') 68 68 69 def extrude(self,md): # {{{ 70 self.groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node') 71 self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node') 72 self.ocean_levelset=project3d(md,'vector',self.ocean_levelset,'type','node') 73 self.land_levelset=project3d(md,'vector',self.land_levelset,'type','node') 74 return self 75 # }}} 69 return md 76 70 77 def mask(*args): # {{{ 78 if not len(args): 79 self.setdefaultparameters() 80 else: 81 raise RuntimeError('constructor not supported') 82 return self 71 # }}} 83 72 84 # }}} 73 def extrude(self, md): # {{{ 74 self.groundedice_levelset = project3d(md, 'vector', self.groundedice_levelset, 'type', 'node') 75 self.ice_levelset = project3d(md, 'vector', self.ice_levelset, 'type', 'node') 76 self.ocean_levelset = project3d(md, 'vector', self.ocean_levelset, 'type', 'node') 77 self.land_levelset = project3d(md, 'vector', self.land_levelset, 'type', 'node') 78 return self 79 # }}} 85 80 86 def marshall(self,prefix,md,fid): # {{{ 87 WriteData(fid,prefix,'name','md.mask.type','data',type(md.mask).__name__,'format','String') 88 WriteData(fid,prefix,'object',self,'class','mask','fieldname','groundedice_levelset','format','DoubleMat','mattype',1) 89 WriteData(fid,prefix,'object',self,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1) 90 WriteData(fid,prefix,'object',self,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1) 91 WriteData(fid,prefix,'object',self,'class','mask','fieldname','land_levelset','format','DoubleMat','mattype',1) 92 # }}} 93 def savemodeljs(self,fid,modelname): # {{{ 94 writejs1Darray(fid,[modelname, '.mask.groundedice_levelset'],self.groundedice_levelset) 95 writejs1Darray(fid,[modelname, '.mask.ice_levelset'],self.ice_levelset) 96 writejs1Darray(fid,[modelname, '.mask.ocean_levelset'],self.ocean_levelset) 97 writejs1Darray(fid,[modelname, '.mask.land_levelset'],self.land_levelset) 98 # }}} 81 def mask(*args): # {{{ 82 if not len(args): 83 self.setdefaultparameters() 84 else: 85 raise RuntimeError('constructor not supported') 86 return self 99 87 88 # }}} 89 90 def marshall(self, prefix, md, fid): # {{{ 91 WriteData(fid, prefix, 'name', 'md.mask.type', 'data', type(md.mask).__name__, 'format', 'String') 92 WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'groundedice_levelset', 'format', 'DoubleMat', 'mattype', 1) 93 WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'ice_levelset', 'format', 'DoubleMat', 'mattype', 1) 94 WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'ocean_levelset', 'format', 'DoubleMat', 'mattype', 1) 95 WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'land_levelset', 'format', 'DoubleMat', 'mattype', 1) 96 # }}} 97 98 def savemodeljs(self, fid, modelname): # {{{ 99 writejs1Darray(fid, [modelname, '.mask.groundedice_levelset'], self.groundedice_levelset) 100 writejs1Darray(fid, [modelname, '.mask.ice_levelset'], self.ice_levelset) 101 writejs1Darray(fid, [modelname, '.mask.ocean_levelset'], self.ocean_levelset) 102 writejs1Darray(fid, [modelname, '.mask.land_levelset'], self.land_levelset) 103 # }}} -
issm/trunk-jpl/src/m/classes/massfluxatgate.py
r23716 r24213 6 6 import os 7 7 8 8 9 class massfluxatgate(object): 9 10 10 """ 11 MASSFLUXATEGATE class definition 11 12 12 13 massfluxatgate=massfluxatgate('GateName','PathToExpFile')14 13 Usage: 14 massfluxatgate = massfluxatgate('GateName', 'PathToExpFile') 15 """ 15 16 16 def __init__(self,*args):# {{{17 def __init__(self, *args): # {{{ 17 18 18 self.name= ''19 self.definitionstring= ''20 self.profilename= ''21 self.segments= float('NaN')19 self.name = '' 20 self.definitionstring = '' 21 self.profilename = '' 22 self.segments = float('NaN') 22 23 23 24 24 #set defaults 25 self.setdefaultparameters() 25 26 26 27 options=pairoptions(*args)27 #use provided options to change fields 28 options = pairoptions(*args) 28 29 29 30 self=options.AssignObjectFields(self)30 #OK get other fields 31 self = options.AssignObjectFields(self) 31 32 32 #}}} 33 def __repr__(self): # {{{ 33 #}}} 34 34 35 string=" Massfluxatgate:" 36 string="%s\n%s"%(string,fielddisplay(self,'name','identifier for this massfluxatgate response')) 37 string="%s\n%s"%(string,fielddisplay(self,'definitionstring','string that identifies this output definition uniquely, from Outputdefinition[1-100]')) 38 string="%s\n%s"%(string,fielddisplay(self,'profilename','name of file (shapefile or argus file) defining a profile (or gate)')) 39 return string 40 #}}} 41 def extrude(self,md): # {{{ 42 return self 43 #}}} 44 def setdefaultparameters(self): # {{{ 45 return self 46 #}}} 47 def checkconsistency(self,md,solution,analyses): # {{{ 35 def __repr__(self): # {{{ 48 36 49 if not isinstance(self.name, str): 50 raise RuntimeError("massfluxatgate error message: 'name' field should be a string!") 37 string = " Massfluxatgate:" 38 string = "%s\n%s" % (string, fielddisplay(self, 'name', 'identifier for this massfluxatgate response')) 39 string = "%s\n%s" % (string, fielddisplay(self, 'definitionstring', 'string that identifies this output definition uniquely, from Outputdefinition[1 - 100]')) 40 string = "%s\n%s" % (string, fielddisplay(self, 'profilename', 'name of file (shapefile or argus file) defining a profile (or gate)')) 41 return string 42 #}}} 51 43 52 if not isinstance(self.profilename, str): 53 raise RuntimeError("massfluxatgate error message: 'profilename' field should be a string!") 44 def extrude(self, md): # {{{ 45 return self 46 #}}} 54 47 55 OutputdefinitionStringArray=[] 56 for i in range(1,100): 57 x='Outputdefinition'+str(i) 58 OutputdefinitionStringArray.append(x) 48 def setdefaultparameters(self): # {{{ 49 return self 50 #}}} 59 51 60 md = checkfield(md,'field',self.definitionstring,'values',OutputdefinitionStringArray) 52 def checkconsistency(self, md, solution, analyses): # {{{ 53 if not isinstance(self.name, str): 54 raise RuntimeError("massfluxatgate error message: 'name' field should be a string!") 61 55 62 #check the profilename points to a file!: 63 if not os.path.isfile(self.profilename): 64 raise RuntimeError("massfluxatgate error message: file name for profile corresponding to gate does not point to a legitimate file on disk!") 56 if not isinstance(self.profilename, str): 57 raise RuntimeError("massfluxatgate error message: 'profilename' field should be a string!") 65 58 66 return md 67 # }}} 68 def marshall(self,prefix,md,fid): # {{{ 59 OutputdefinitionStringArray = [] 60 for i in range(1, 100): 61 x = 'Outputdefinition' + str(i) 62 OutputdefinitionStringArray.append(x) 69 63 70 #before marshalling, we need to create the segments out of the profilename: 71 self.segments=MeshProfileIntersection(md.mesh.elements,md.mesh.x,md.mesh.y,self.profilename)[0] 64 md = checkfield(md, 'field', self.definitionstring, 'values', OutputdefinitionStringArray) 72 65 73 #ok, marshall name and segments: 74 WriteData(fid,prefix,'data',self.name,'name','md.massfluxatgate.name','format','String'); 75 WriteData(fid,prefix,'data',self.definitionstring,'name','md.massfluxatgate.definitionstring','format','String'); 76 WriteData(fid,prefix,'data',self.segments,'name','md.massfluxatgate.segments','format','DoubleMat','mattype',1); 66 #check the profilename points to a file!: 67 if not os.path.isfile(self.profilename): 68 raise RuntimeError("massfluxatgate error message: file name for profile corresponding to gate does not point to a legitimate file on disk!") 77 69 78 # }}} 70 return md 71 # }}} 72 73 def marshall(self, prefix, md, fid): # {{{ 74 #before marshalling, we need to create the segments out of the profilename: 75 self.segments = MeshProfileIntersection(md.mesh.elements, md.mesh.x, md.mesh.y, self.profilename)[0] 76 77 #ok, marshall name and segments: 78 WriteData(fid, prefix, 'data', self.name, 'name', 'md.massfluxatgate.name', 'format', 'String') 79 WriteData(fid, prefix, 'data', self.definitionstring, 'name', 'md.massfluxatgate.definitionstring', 'format', 'String') 80 WriteData(fid, prefix, 'data', self.segments, 'name', 'md.massfluxatgate.segments', 'format', 'DoubleMat', 'mattype', 1) 81 82 # }}} -
issm/trunk-jpl/src/m/classes/masstransport.py
r24192 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class masstransport(object): 7 8 8 """ 9 MASSTRANSPORT class definition 9 10 10 11 masstransport=masstransport(); 12 11 Usage: 12 masstransport = masstransport() 13 """ 13 14 14 def __init__(self):# {{{15 self.spcthickness= float('NaN')16 self.isfreesurface= 017 self.min_thickness= 0.18 19 self.stabilization= 020 self.vertex_pairing= float('NaN')21 self.penalty_factor= 022 self.requested_outputs= []15 def __init__(self): # {{{ 16 self.spcthickness = float('NaN') 17 self.isfreesurface = 0 18 self.min_thickness = 0. 19 self.hydrostatic_adjustment = 0 20 self.stabilization = 0 21 self.vertex_pairing = float('NaN') 22 self.penalty_factor = 0 23 self.requested_outputs = [] 23 24 24 25 25 #set defaults 26 self.setdefaultparameters() 26 27 27 #}}} 28 def __repr__(self): # {{{ 29 string=' Masstransport solution parameters:' 30 string="%s\n%s"%(string,fielddisplay(self,'spcthickness','thickness constraints (NaN means no constraint) [m]')) 31 string="%s\n%s"%(string,fielddisplay(self,'isfreesurface','do we use free surfaces (FS only) or mass conservation')) 32 string="%s\n%s"%(string,fielddisplay(self,'min_thickness','minimum ice thickness allowed [m]')) 33 string="%s\n%s"%(string,fielddisplay(self,'hydrostatic_adjustment','adjustment of ice shelves surface and bed elevations: ''Incremental'' or ''Absolute'' ')) 34 string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding, 3: discontinuous Galerkin, 4: Flux Correction Transport')) 35 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 28 #}}} 36 29 37 return string 38 #}}} 39 def extrude(self,md): # {{{ 40 self.spcthickness=project3d(md,'vector',self.spcthickness,'type','node') 41 return self 42 #}}} 43 def defaultoutputs(self,md): # {{{ 30 def __repr__(self): # {{{ 31 string = ' Masstransport solution parameters:' 32 string = "%s\n%s" % (string, fielddisplay(self, 'spcthickness', 'thickness constraints (NaN means no constraint) [m]')) 33 string = "%s\n%s" % (string, fielddisplay(self, 'isfreesurface', 'do we use free surfaces (FS only) or mass conservation')) 34 string = "%s\n%s" % (string, fielddisplay(self, 'min_thickness', 'minimum ice thickness allowed [m]')) 35 string = "%s\n%s" % (string, fielddisplay(self, 'hydrostatic_adjustment', 'adjustment of ice shelves surface and bed elevations: ''Incremental'' or ''Absolute'' ')) 36 string = "%s\n%s" % (string, fielddisplay(self, 'stabilization', '0: no, 1: artificial_diffusivity, 2: streamline upwinding, 3: discontinuous Galerkin, 4: Flux Correction Transport')) 37 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 44 38 45 return ['Thickness','Surface','Base'] 39 return string 40 #}}} 46 41 47 #}}} 48 def setdefaultparameters(self): # {{{ 42 def extrude(self, md): # {{{ 43 self.spcthickness = project3d(md, 'vector', self.spcthickness, 'type', 'node') 44 return self 45 #}}} 49 46 50 #Type of stabilization to use 0:nothing 1:artificial_diffusivity 3:Discontinuous Galerkin 51 self.stabilization=1 47 def defaultoutputs(self, md): # {{{ 48 return ['Thickness', 'Surface', 'Base'] 52 49 53 #Factor applied to compute the penalties kappa=max(stiffness matrix)*10^penalty_factor 54 self.penalty_factor=3 50 #}}} 51 def setdefaultparameters(self): # {{{ 52 #Type of stabilization to use 0:nothing 1:artificial_diffusivity 3:Discontinuous Galerkin 53 self.stabilization = 1 54 #Factor applied to compute the penalties kappa = max(stiffness matrix) * 10^penalty_factor 55 self.penalty_factor = 3 56 #Minimum ice thickness that can be used 57 self.min_thickness = 1 58 #Hydrostatic adjustment 59 self.hydrostatic_adjustment = 'Absolute' 60 #default output 61 self.requested_outputs = ['default'] 62 return self 63 #}}} 55 64 56 #Minimum ice thickness that can be used 57 self.min_thickness=1 65 def checkconsistency(self, md, solution, analyses): # {{{ 66 #Early return 67 if ('MasstransportAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.ismasstransport): 68 return md 58 69 59 #Hydrostatic adjustment 60 self.hydrostatic_adjustment='Absolute' 70 md = checkfield(md, 'fieldname', 'masstransport.spcthickness', 'Inf', 1, 'timeseries', 1) 71 md = checkfield(md, 'fieldname', 'masstransport.isfreesurface', 'values', [0, 1]) 72 md = checkfield(md, 'fieldname', 'masstransport.hydrostatic_adjustment', 'values', ['Absolute', 'Incremental']) 73 md = checkfield(md, 'fieldname', 'masstransport.stabilization', 'values', [0, 1, 2, 3, 4]) 74 md = checkfield(md, 'fieldname', 'masstransport.min_thickness', '>', 0) 75 md = checkfield(md, 'fieldname', 'masstransport.requested_outputs', 'stringrow', 1) 61 76 62 #default output 63 self.requested_outputs=['default'] 64 return self 65 #}}} 66 def checkconsistency(self,md,solution,analyses): # {{{ 77 return md 78 # }}} 67 79 68 #Early return 69 if ('MasstransportAnalysis' not in analyses) or (solution=='TransientSolution' and not md.transient.ismasstransport): 70 return md 80 def marshall(self, prefix, md, fid): # {{{ 81 WriteData(fid, prefix, 'object', self, 'fieldname', 'spcthickness', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 82 WriteData(fid, prefix, 'object', self, 'fieldname', 'isfreesurface', 'format', 'Boolean') 83 WriteData(fid, prefix, 'object', self, 'fieldname', 'min_thickness', 'format', 'Double') 84 WriteData(fid, prefix, 'data', self.hydrostatic_adjustment, 'format', 'String', 'name', 'md.masstransport.hydrostatic_adjustment') 85 WriteData(fid, prefix, 'object', self, 'fieldname', 'stabilization', 'format', 'Integer') 86 WriteData(fid, prefix, 'object', self, 'fieldname', 'vertex_pairing', 'format', 'DoubleMat', 'mattype', 3) 87 WriteData(fid, prefix, 'object', self, 'fieldname', 'penalty_factor', 'format', 'Double') 71 88 72 md = checkfield(md,'fieldname','masstransport.spcthickness','Inf',1,'timeseries',1) 73 md = checkfield(md,'fieldname','masstransport.isfreesurface','values',[0,1]) 74 md = checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',['Absolute','Incremental']) 75 md = checkfield(md,'fieldname','masstransport.stabilization','values',[0,1,2,3,4]) 76 md = checkfield(md,'fieldname','masstransport.min_thickness','>',0) 77 md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1) 78 79 return md 80 # }}} 81 def marshall(self,prefix,md,fid): # {{{ 82 83 yts=md.constants.yts 84 85 WriteData(fid,prefix,'object',self,'fieldname','spcthickness','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 86 WriteData(fid,prefix,'object',self,'fieldname','isfreesurface','format','Boolean') 87 WriteData(fid,prefix,'object',self,'fieldname','min_thickness','format','Double') 88 WriteData(fid,prefix,'data',self.hydrostatic_adjustment,'format','String','name','md.masstransport.hydrostatic_adjustment') 89 WriteData(fid,prefix,'object',self,'fieldname','stabilization','format','Integer') 90 WriteData(fid,prefix,'object',self,'fieldname','vertex_pairing','format','DoubleMat','mattype',3) 91 WriteData(fid,prefix,'object',self,'fieldname','penalty_factor','format','Double') 92 93 #process requested outputs 94 outputs = self.requested_outputs 95 indices = [i for i, x in enumerate(outputs) if x == 'default'] 96 if len(indices) > 0: 97 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 98 outputs =outputscopy 99 WriteData(fid,prefix,'data',outputs,'name','md.masstransport.requested_outputs','format','StringArray') 100 # }}} 89 #process requested outputs 90 outputs = self.requested_outputs 91 indices = [i for i, x in enumerate(outputs) if x == 'default'] 92 if len(indices) > 0: 93 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 94 outputs = outputscopy 95 WriteData(fid, prefix, 'data', outputs, 'name', 'md.masstransport.requested_outputs', 'format', 'StringArray') 96 # }}} -
issm/trunk-jpl/src/m/classes/matdamageice.py
r23774 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class matdamageice(object): 7 8 8 """ 9 MATICE class definition 9 10 10 11 matdamagice=matdamageice(); 12 11 Usage: 12 matdamagice = matdamageice() 13 """ 13 14 14 def __init__(self):# {{{15 self.rho_ice= 0.16 self.rho_water= 0.17 self.rho_freshwater= 0.18 self.mu_water= 0.19 self.heatcapacity= 0.20 self.latentheat= 0.21 self.thermalconductivity= 0.22 self.temperateiceconductivity= 0.23 24 self.meltingpoint= 0.25 self.beta= 0.26 self.mixed_layer_capacity= 0.27 28 self.rheology_B= float('NaN')29 self.rheology_n= float('NaN')30 self.rheology_law= ''15 def __init__(self): # {{{ 16 self.rho_ice = 0. 17 self.rho_water = 0. 18 self.rho_freshwater = 0. 19 self.mu_water = 0. 20 self.heatcapacity = 0. 21 self.latentheat = 0. 22 self.thermalconductivity = 0. 23 self.temperateiceconductivity = 0. 24 self.effectiveconductivity_averaging = 0 25 self.meltingpoint = 0. 26 self.beta = 0. 27 self.mixed_layer_capacity = 0. 28 self.thermal_exchange_velocity = 0. 29 self.rheology_B = float('NaN') 30 self.rheology_n = float('NaN') 31 self.rheology_law = '' 31 32 32 33 self.lithosphere_shear_modulus= 0.34 self.lithosphere_density= 0.35 self.mantle_shear_modulus= 0.36 self.mantle_density= 0.33 #giaivins: 34 self.lithosphere_shear_modulus = 0. 35 self.lithosphere_density = 0. 36 self.mantle_shear_modulus = 0. 37 self.mantle_density = 0. 37 38 38 #SLR 39 self.earth_density= 5512; # average density of the Earth, (kg/m^3) 39 #SLR 40 self.earth_density = 5512 # average density of the Earth, (kg / m^3) 41 self.setdefaultparameters() 42 #}}} 40 43 41 self.setdefaultparameters() 42 #}}} 44 def __repr__(self): # {{{ 45 string = " Materials:" 46 string = "%s\n%s" % (string, fielddisplay(self, "rho_ice", "ice density [kg / m^3]")) 47 string = "%s\n%s" % (string, fielddisplay(self, "rho_water", "water density [kg / m^3]")) 48 string = "%s\n%s" % (string, fielddisplay(self, "rho_freshwater", "fresh water density [kg / m^3]")) 49 string = "%s\n%s" % (string, fielddisplay(self, "mu_water", "water viscosity [N s / m^2]")) 50 string = "%s\n%s" % (string, fielddisplay(self, "heatcapacity", "heat capacity [J / kg / K]")) 51 string = "%s\n%s" % (string, fielddisplay(self, "thermalconductivity", "ice thermal conductivity [W / m / K]")) 52 string = "%s\n%s" % (string, fielddisplay(self, "temperateiceconductivity", "temperate ice thermal conductivity [W / m / K]")) 53 string = "%s\n%s" % (string, fielddisplay(self, "effectiveconductivity_averaging", "computation of effectiveconductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)")) 54 string = "%s\n%s" % (string, fielddisplay(self, "meltingpoint", "melting point of ice at 1atm in K")) 55 string = "%s\n%s" % (string, fielddisplay(self, "latentheat", "latent heat of fusion [J / m^3]")) 56 string = "%s\n%s" % (string, fielddisplay(self, "beta", "rate of change of melting point with pressure [K / Pa]")) 57 string = "%s\n%s" % (string, fielddisplay(self, "mixed_layer_capacity", "mixed layer capacity [W / kg / K]")) 58 string = "%s\n%s" % (string, fielddisplay(self, "thermal_exchange_velocity", "thermal exchange velocity [m / s]")) 59 string = "%s\n%s" % (string, fielddisplay(self, "rheology_B", "flow law parameter [Pa s^(1 / n)]")) 60 string = "%s\n%s" % (string, fielddisplay(self, "rheology_n", "Glen's flow law exponent")) 61 string = "%s\n%s" % (string, fielddisplay(self, "rheology_law", "law for the temperature dependance of the rheology: 'None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius' or 'LliboutryDuval'")) 62 string = "%s\n%s" % (string, fielddisplay(self, "lithosphere_shear_modulus", "Lithosphere shear modulus [Pa]")) 63 string = "%s\n%s" % (string, fielddisplay(self, "lithosphere_density", "Lithosphere density [g / cm^ - 3]")) 64 string = "%s\n%s" % (string, fielddisplay(self, "mantle_shear_modulus", "Mantle shear modulus [Pa]")) 65 string = "%s\n%s" % (string, fielddisplay(self, "mantle_density", "Mantle density [g / cm^ - 3]")) 66 string = "%s\n%s" % (string, fielddisplay(self, "earth_density", "Mantle density [kg / m^ - 3]")) 67 return string 68 #}}} 43 69 44 def __repr__(self): # {{{ 45 string=" Materials:" 46 string="%s\n%s"%(string,fielddisplay(self,"rho_ice","ice density [kg/m^3]")) 47 string="%s\n%s"%(string,fielddisplay(self,"rho_water","water density [kg/m^3]")) 48 string="%s\n%s"%(string,fielddisplay(self,"rho_freshwater","fresh water density [kg/m^3]")) 49 string="%s\n%s"%(string,fielddisplay(self,"mu_water","water viscosity [N s/m^2]")) 50 string="%s\n%s"%(string,fielddisplay(self,"heatcapacity","heat capacity [J/kg/K]")) 51 string="%s\n%s"%(string,fielddisplay(self,"thermalconductivity","ice thermal conductivity [W/m/K]")) 52 string="%s\n%s"%(string,fielddisplay(self,"temperateiceconductivity","temperate ice thermal conductivity [W/m/K]")) 53 string="%s\n%s"%(string,fielddisplay(self,"effectiveconductivity_averaging","computation of effectiveconductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)")) 54 string="%s\n%s"%(string,fielddisplay(self,"meltingpoint","melting point of ice at 1atm in K")) 55 string="%s\n%s"%(string,fielddisplay(self,"latentheat","latent heat of fusion [J/m^3]")) 56 string="%s\n%s"%(string,fielddisplay(self,"beta","rate of change of melting point with pressure [K/Pa]")) 57 string="%s\n%s"%(string,fielddisplay(self,"mixed_layer_capacity","mixed layer capacity [W/kg/K]")) 58 string="%s\n%s"%(string,fielddisplay(self,"thermal_exchange_velocity","thermal exchange velocity [m/s]")) 59 string="%s\n%s"%(string,fielddisplay(self,"rheology_B","flow law parameter [Pa s^(1/n)]")) 60 string="%s\n%s"%(string,fielddisplay(self,"rheology_n","Glen's flow law exponent")) 61 string="%s\n%s"%(string,fielddisplay(self,"rheology_law","law for the temperature dependance of the rheology: 'None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius' or 'LliboutryDuval'")) 62 string="%s\n%s"%(string,fielddisplay(self,"lithosphere_shear_modulus","Lithosphere shear modulus [Pa]")) 63 string="%s\n%s"%(string,fielddisplay(self,"lithosphere_density","Lithosphere density [g/cm^-3]")) 64 string="%s\n%s"%(string,fielddisplay(self,"mantle_shear_modulus","Mantle shear modulus [Pa]")) 65 string="%s\n%s"%(string,fielddisplay(self,"mantle_density","Mantle density [g/cm^-3]")) 66 string="%s\n%s"%(string,fielddisplay(self,"earth_density","Mantle density [kg/m^-3]")) 67 return string 68 #}}} 70 def extrude(self, md): # {{{ 71 self.rheology_B = project3d(md, 'vector', self.rheology_B, 'type', 'node') 72 self.rheology_n = project3d(md, 'vector', self.rheology_n, 'type', 'element') 73 return self 74 #}}} 69 75 70 def extrude(self,md): # {{{ 71 self.rheology_B=project3d(md,'vector',self.rheology_B,'type','node') 72 self.rheology_n=project3d(md,'vector',self.rheology_n,'type','element') 73 return self 74 #}}} 76 def setdefaultparameters(self): # {{{ 77 #ice density (kg / m^3) 78 self.rho_ice = 917. 79 #ocean water density (kg / m^3) 80 self.rho_water = 1023. 81 #fresh water density (kg / m^3) 82 self.rho_freshwater = 1000. 83 #water viscosity (N.s / m^2) 84 self.mu_water = 0.001787 85 #ice heat capacity cp (J / kg / K) 86 self.heatcapacity = 2093. 87 #ice latent heat of fusion L (J / kg) 88 self.latentheat = 3.34 * 1.0e5 89 #ice thermal conductivity (W / m / K) 90 self.thermalconductivity = 2.4 91 #temperate ice thermal conductivity (W / m / K) 92 self.temperateiceconductivity = 0.24 93 #computation of effective conductivity 94 self.effectiveconductivity_averaging = 1 95 #the melting point of ice at 1 atmosphere of pressure in K 96 self.meltingpoint = 273.15 97 #rate of change of melting point with pressure (K / Pa) 98 self.beta = 9.8 * 1.0e-8 99 #mixed layer (ice-water interface) heat capacity (J / kg / K) 100 self.mixed_layer_capacity = 3974. 101 #thermal exchange velocity (ice-water interface) (m / s) 102 self.thermal_exchange_velocity = 1.00 * 1.0e-4 103 #Rheology law: what is the temperature dependence of B with T 104 #available: none, paterson and arrhenius 105 self.rheology_law = 'Paterson' 75 106 76 def setdefaultparameters(self): # {{{ 77 #ice density (kg/m^3) 78 self.rho_ice=917. 79 #ocean water density (kg/m^3) 80 self.rho_water=1023. 81 #fresh water density (kg/m^3) 82 self.rho_freshwater=1000. 83 #water viscosity (N.s/m^2) 84 self.mu_water=0.001787 85 #ice heat capacity cp (J/kg/K) 86 self.heatcapacity=2093. 87 #ice latent heat of fusion L (J/kg) 88 self.latentheat=3.34*10**5 89 #ice thermal conductivity (W/m/K) 90 self.thermalconductivity=2.4 91 #temperate ice thermal conductivity (W/m/K) 92 self.temperateiceconductivity=0.24 93 #computation of effective conductivity 94 self.effectiveconductivity_averaging=1 95 #the melting point of ice at 1 atmosphere of pressure in K 96 self.meltingpoint=273.15 97 #rate of change of melting point with pressure (K/Pa) 98 self.beta=9.8*10**-8 99 #mixed layer (ice-water interface) heat capacity (J/kg/K) 100 self.mixed_layer_capacity=3974. 101 #thermal exchange velocity (ice-water interface) (m/s) 102 self.thermal_exchange_velocity=1.00*10**-4 103 #Rheology law: what is the temperature dependence of B with T 104 #available: none, paterson and arrhenius 105 self.rheology_law='Paterson' 107 # GIA: 108 self.lithosphere_shear_modulus = 6.7 * 1.0e10 # (Pa) 109 self.lithosphere_density = 3.32 # (g / cm^ - 3) 110 self.mantle_shear_modulus = 1.45 * 1.0e11 # (Pa) 111 self.mantle_density = 3.34 # (g / cm^ - 3) 106 112 107 # GIA: 108 self.lithosphere_shear_modulus = 6.7*10**10 # (Pa) 109 self.lithosphere_density = 3.32 # (g/cm^-3) 110 self.mantle_shear_modulus = 1.45*10**11 # (Pa) 111 self.mantle_density = 3.34 # (g/cm^-3) 113 #SLR 114 self.earth_density = 5512 #average density of the Earth, (kg / m^3) 115 return self 116 #}}} 112 117 113 #SLR 114 self.earth_density= 5512; #average density of the Earth, (kg/m^3) 115 return self 116 #}}} 118 def checkconsistency(self, md, solution, analyses): # {{{ 119 md = checkfield(md, 'fieldname', 'materials.rho_ice', '>', 0) 120 md = checkfield(md, 'fieldname', 'materials.rho_water', '>', 0) 121 md = checkfield(md, 'fieldname', 'materials.rho_freshwater', '>', 0) 122 md = checkfield(md, 'fieldname', 'materials.mu_water', '>', 0) 123 md = checkfield(md, 'fieldname', 'materials.rheology_B', '>', 0, 'size', [md.mesh.numberofvertices]) 124 md = checkfield(md, 'fieldname', 'materials.rheology_n', '>', 0, 'size', [md.mesh.numberofelements]) 125 md = checkfield(md, 'fieldname', 'materials.rheology_law', 'values', ['None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius', 'LliboutryDuval']) 126 md = checkfield(md, 'fieldname', 'materials.effectiveconductivity_averaging', 'numel', [1], 'values', [0, 1, 2]) 127 md = checkfield(md, 'fieldname', 'materials.lithosphere_shear_modulus', '>', 0, 'numel', [1]) 128 md = checkfield(md, 'fieldname', 'materials.lithosphere_density', '>', 0, 'numel', [1]) 129 md = checkfield(md, 'fieldname', 'materials.mantle_shear_modulus', '>', 0, 'numel', [1]) 130 md = checkfield(md, 'fieldname', 'materials.mantle_density', '>', 0, 'numel', [1]) 131 md = checkfield(md, 'fieldname', 'materials.earth_density', '>', 0, 'numel', [1]) 132 return md 133 # }}} 117 134 118 def checkconsistency(self,md,solution,analyses): # {{{ 119 md = checkfield(md,'fieldname','materials.rho_ice','>',0) 120 md = checkfield(md,'fieldname','materials.rho_water','>',0) 121 md = checkfield(md,'fieldname','materials.rho_freshwater','>',0) 122 md = checkfield(md,'fieldname','materials.mu_water','>',0) 123 md = checkfield(md,'fieldname','materials.rheology_B','>',0,'size',[md.mesh.numberofvertices]) 124 md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements]) 125 md = checkfield(md,'fieldname','materials.rheology_law','values',['None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson','Arrhenius','LliboutryDuval']) 126 md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0,1,2]) 127 md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',[1]); 128 md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',[1]); 129 md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',[1]); 130 md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',[1]); 131 md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',[1]); 132 return md 133 # }}} 135 def marshall(self, prefix, md, fid): # {{{ 136 WriteData(fid, prefix, 'name', 'md.materials.type', 'data', 1, 'format', 'Integer') 137 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_ice', 'format', 'Double') 138 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_water', 'format', 'Double') 139 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_freshwater', 'format', 'Double') 140 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mu_water', 'format', 'Double') 141 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'heatcapacity', 'format', 'Double') 142 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'latentheat', 'format', 'Double') 143 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'thermalconductivity', 'format', 'Double') 144 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'temperateiceconductivity', 'format', 'Double') 145 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'effectiveconductivity_averaging', 'format', 'Integer') 146 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'meltingpoint', 'format', 'Double') 147 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'beta', 'format', 'Double') 148 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mixed_layer_capacity', 'format', 'Double') 149 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'thermal_exchange_velocity', 'format', 'Double') 150 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_B', 'format', 'DoubleMat', 'mattype', 1) 151 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_n', 'format', 'DoubleMat', 'mattype', 2) 152 WriteData(fid, prefix, 'data', self.rheology_law, 'name', 'md.materials.rheology_law', 'format', 'String') 153 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'lithosphere_shear_modulus', 'format', 'Double') 154 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'lithosphere_density', 'format', 'Double', 'scale', 10.**3.) 155 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mantle_shear_modulus', 'format', 'Double') 156 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mantle_density', 'format', 'Double', 'scale', 10.**3.) 157 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'earth_density', 'format', 'Double') 134 158 135 def marshall(self,prefix,md,fid): # {{{ 136 WriteData(fid,prefix,'name','md.materials.type','data',1,'format','Integer'); 137 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_ice','format','Double') 138 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_water','format','Double') 139 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_freshwater','format','Double') 140 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mu_water','format','Double') 141 WriteData(fid,prefix,'object',self,'class','materials','fieldname','heatcapacity','format','Double') 142 WriteData(fid,prefix,'object',self,'class','materials','fieldname','latentheat','format','Double') 143 WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double') 144 WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double') 145 WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer') 146 WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double') 147 WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double') 148 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mixed_layer_capacity','format','Double') 149 WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermal_exchange_velocity','format','Double') 150 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1) 151 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2) 152 WriteData(fid,prefix,'data',self.rheology_law,'name','md.materials.rheology_law','format','String') 153 WriteData(fid,prefix,'object',self,'class','materials','fieldname','lithosphere_shear_modulus','format','Double'); 154 WriteData(fid,prefix,'object',self,'class','materials','fieldname','lithosphere_density','format','Double','scale',10.**3.); 155 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double'); 156 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10.**3.); 157 WriteData(fid,prefix,'object',self,'class','materials','fieldname','earth_density','format','Double'); 158 159 # }}} 159 # }}} -
issm/trunk-jpl/src/m/classes/matenhancedice.py
r23774 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class matenhancedice(object): 7 8 8 """ 9 MATICE class definition 9 10 10 11 matenhancedice=matenhancedice(); 12 11 Usage: 12 matenhancedice = matenhancedice() 13 """ 13 14 14 def __init__(self):# {{{15 self.rho_ice= 0.16 self.rho_water= 0.17 self.rho_freshwater= 0.18 self.mu_water= 0.19 self.heatcapacity= 0.20 self.latentheat= 0.21 self.thermalconductivity= 0.22 self.temperateiceconductivity= 0.23 24 self.meltingpoint= 0.25 self.beta= 0.26 self.mixed_layer_capacity= 0.27 28 self.rheology_E= float('NaN')29 self.rheology_B= float('NaN')30 self.rheology_n= float('NaN')31 self.rheology_law= ''15 def __init__(self): # {{{ 16 self.rho_ice = 0. 17 self.rho_water = 0. 18 self.rho_freshwater = 0. 19 self.mu_water = 0. 20 self.heatcapacity = 0. 21 self.latentheat = 0. 22 self.thermalconductivity = 0. 23 self.temperateiceconductivity = 0. 24 self.effectiveconductivity_averaging = 0 25 self.meltingpoint = 0. 26 self.beta = 0. 27 self.mixed_layer_capacity = 0. 28 self.thermal_exchange_velocity = 0. 29 self.rheology_E = float('NaN') 30 self.rheology_B = float('NaN') 31 self.rheology_n = float('NaN') 32 self.rheology_law = '' 32 33 33 34 self.lithosphere_shear_modulus= 0.35 self.lithosphere_density= 0.36 self.mantle_shear_modulus= 0.37 self.mantle_density= 0.34 #giaivins: 35 self.lithosphere_shear_modulus = 0. 36 self.lithosphere_density = 0. 37 self.mantle_shear_modulus = 0. 38 self.mantle_density = 0. 38 39 39 #SLR 40 self.earth_density= 0 # average density of the Earth, (kg/m^3) 40 #SLR 41 self.earth_density = 0 # average density of the Earth, (kg / m^3) 42 self.setdefaultparameters() 43 #}}} 41 44 42 self.setdefaultparameters() 43 #}}} 45 def __repr__(self): # {{{ 46 string = " Materials:" 47 string = "%s\n%s" % (string, fielddisplay(self, "rho_ice", "ice density [kg / m^3]")) 48 string = "%s\n%s" % (string, fielddisplay(self, "rho_water", "water density [kg / m^3]")) 49 string = "%s\n%s" % (string, fielddisplay(self, "rho_freshwater", "fresh water density [kg / m^3]")) 50 string = "%s\n%s" % (string, fielddisplay(self, "mu_water", "water viscosity [N s / m^2]")) 51 string = "%s\n%s" % (string, fielddisplay(self, "heatcapacity", "heat capacity [J / kg / K]")) 52 string = "%s\n%s" % (string, fielddisplay(self, "thermalconductivity", "ice thermal conductivity [W / m / K]")) 53 string = "%s\n%s" % (string, fielddisplay(self, "temperateiceconductivity", "temperate ice thermal conductivity [W / m / K]")) 54 string = "%s\n%s" % (string, fielddisplay(self, "effectiveconductivity_averaging", "computation of effectiveconductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)")) 55 string = "%s\n%s" % (string, fielddisplay(self, "meltingpoint", "melting point of ice at 1atm in K")) 56 string = "%s\n%s" % (string, fielddisplay(self, "latentheat", "latent heat of fusion [J / m^3]")) 57 string = "%s\n%s" % (string, fielddisplay(self, "beta", "rate of change of melting point with pressure [K / Pa]")) 58 string = "%s\n%s" % (string, fielddisplay(self, "mixed_layer_capacity", "mixed layer capacity [W / kg / K]")) 59 string = "%s\n%s" % (string, fielddisplay(self, "thermal_exchange_velocity", "thermal exchange velocity [m / s]")) 60 string = "%s\n%s" % (string, fielddisplay(self, "rheology_E", "enhancement factor")) 61 string = "%s\n%s" % (string, fielddisplay(self, "rheology_B", "flow law parameter [Pa s^(1 / n)]")) 62 string = "%s\n%s" % (string, fielddisplay(self, "rheology_n", "Glen's flow law exponent")) 63 string = "%s\n%s" % (string, fielddisplay(self, "rheology_law", "law for the temperature dependance of the rheology: 'None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius' or 'LliboutryDuval'")) 64 string = "%s\n%s" % (string, fielddisplay(self, "lithosphere_shear_modulus", "Lithosphere shear modulus [Pa]")) 65 string = "%s\n%s" % (string, fielddisplay(self, "lithosphere_density", "Lithosphere density [g / cm^ - 3]")) 66 string = "%s\n%s" % (string, fielddisplay(self, "mantle_shear_modulus", "Mantle shear modulus [Pa]")) 67 string = "%s\n%s" % (string, fielddisplay(self, "mantle_density", "Mantle density [g / cm^ - 3]")) 68 string = "%s\n%s" % (string, fielddisplay(self, "earth_density", "Mantle density [kg / m^ - 3]")) 69 return string 70 #}}} 44 71 45 def __repr__(self): # {{{ 46 string=" Materials:" 47 string="%s\n%s"%(string,fielddisplay(self,"rho_ice","ice density [kg/m^3]")) 48 string="%s\n%s"%(string,fielddisplay(self,"rho_water","water density [kg/m^3]")) 49 string="%s\n%s"%(string,fielddisplay(self,"rho_freshwater","fresh water density [kg/m^3]")) 50 string="%s\n%s"%(string,fielddisplay(self,"mu_water","water viscosity [N s/m^2]")) 51 string="%s\n%s"%(string,fielddisplay(self,"heatcapacity","heat capacity [J/kg/K]")) 52 string="%s\n%s"%(string,fielddisplay(self,"thermalconductivity","ice thermal conductivity [W/m/K]")) 53 string="%s\n%s"%(string,fielddisplay(self,"temperateiceconductivity","temperate ice thermal conductivity [W/m/K]")) 54 string="%s\n%s"%(string,fielddisplay(self,"effectiveconductivity_averaging","computation of effectiveconductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)")) 55 string="%s\n%s"%(string,fielddisplay(self,"meltingpoint","melting point of ice at 1atm in K")) 56 string="%s\n%s"%(string,fielddisplay(self,"latentheat","latent heat of fusion [J/m^3]")) 57 string="%s\n%s"%(string,fielddisplay(self,"beta","rate of change of melting point with pressure [K/Pa]")) 58 string="%s\n%s"%(string,fielddisplay(self,"mixed_layer_capacity","mixed layer capacity [W/kg/K]")) 59 string="%s\n%s"%(string,fielddisplay(self,"thermal_exchange_velocity","thermal exchange velocity [m/s]")) 60 string="%s\n%s"%(string,fielddisplay(self,"rheology_E","enhancement factor")) 61 string="%s\n%s"%(string,fielddisplay(self,"rheology_B","flow law parameter [Pa s^(1/n)]")) 62 string="%s\n%s"%(string,fielddisplay(self,"rheology_n","Glen's flow law exponent")) 63 string="%s\n%s"%(string,fielddisplay(self,"rheology_law","law for the temperature dependance of the rheology: 'None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius' or 'LliboutryDuval'")) 64 string="%s\n%s"%(string,fielddisplay(self,"lithosphere_shear_modulus","Lithosphere shear modulus [Pa]")) 65 string="%s\n%s"%(string,fielddisplay(self,"lithosphere_density","Lithosphere density [g/cm^-3]")) 66 string="%s\n%s"%(string,fielddisplay(self,"mantle_shear_modulus","Mantle shear modulus [Pa]")) 67 string="%s\n%s"%(string,fielddisplay(self,"mantle_density","Mantle density [g/cm^-3]")) 68 string="%s\n%s"%(string,fielddisplay(self,"earth_density","Mantle density [kg/m^-3]")) 69 return string 70 #}}} 72 def extrude(self, md): # {{{ 73 self.rheology_E = project3d(md, 'vector', self.rheology_E, 'type', 'node') 74 self.rheology_B = project3d(md, 'vector', self.rheology_B, 'type', 'node') 75 self.rheology_n = project3d(md, 'vector', self.rheology_n, 'type', 'element') 76 return self 77 #}}} 71 78 72 def extrude(self,md): # {{{ 73 self.rheology_E=project3d(md,'vector',self.rheology_E,'type','node') 74 self.rheology_B=project3d(md,'vector',self.rheology_B,'type','node') 75 self.rheology_n=project3d(md,'vector',self.rheology_n,'type','element') 76 return self 77 #}}} 79 def setdefaultparameters(self): # {{{ 80 #ice density (kg / m^3) 81 self.rho_ice = 917. 82 #ocean water density (kg / m^3) 83 self.rho_water = 1023. 84 #fresh water density (kg / m^3) 85 self.rho_freshwater = 1000. 86 #water viscosity (N.s / m^2) 87 self.mu_water = 0.001787 88 #ice heat capacity cp (J / kg / K) 89 self.heatcapacity = 2093. 90 #ice latent heat of fusion L (J / kg) 91 self.latentheat = 3.34 * 10**5 92 #ice thermal conductivity (W / m / K) 93 self.thermalconductivity = 2.4 94 #temperate ice thermal conductivity (W / m / K) 95 self.temperateiceconductivity = 0.24 96 #computation of effective conductivity 97 self.effectiveconductivity_averaging = 1 98 #the melting point of ice at 1 atmosphere of pressure in K 99 self.meltingpoint = 273.15 100 #rate of change of melting point with pressure (K / Pa) 101 self.beta = 9.8 * 10**- 8 102 #mixed layer (ice-water interface) heat capacity (J / kg / K) 103 self.mixed_layer_capacity = 3974. 104 #thermal exchange velocity (ice-water interface) (m / s) 105 self.thermal_exchange_velocity = 1.00 * 10**- 4 106 #Rheology law: what is the temperature dependence of B with T 107 #available: none, paterson and arrhenius 108 self.rheology_law = 'Paterson' 78 109 79 def setdefaultparameters(self): # {{{ 80 #ice density (kg/m^3) 81 self.rho_ice=917. 82 #ocean water density (kg/m^3) 83 self.rho_water=1023. 84 #fresh water density (kg/m^3) 85 self.rho_freshwater=1000. 86 #water viscosity (N.s/m^2) 87 self.mu_water=0.001787 88 #ice heat capacity cp (J/kg/K) 89 self.heatcapacity=2093. 90 #ice latent heat of fusion L (J/kg) 91 self.latentheat=3.34*10**5 92 #ice thermal conductivity (W/m/K) 93 self.thermalconductivity=2.4 94 #temperate ice thermal conductivity (W/m/K) 95 self.temperateiceconductivity=0.24 96 #computation of effective conductivity 97 self.effectiveconductivity_averaging=1 98 #the melting point of ice at 1 atmosphere of pressure in K 99 self.meltingpoint=273.15 100 #rate of change of melting point with pressure (K/Pa) 101 self.beta=9.8*10**-8 102 #mixed layer (ice-water interface) heat capacity (J/kg/K) 103 self.mixed_layer_capacity=3974. 104 #thermal exchange velocity (ice-water interface) (m/s) 105 self.thermal_exchange_velocity=1.00*10**-4 106 #Rheology law: what is the temperature dependence of B with T 107 #available: none, paterson and arrhenius 108 self.rheology_law='Paterson' 110 # GIA: 111 self.lithosphere_shear_modulus = 6.7 * 10**10 # (Pa) 112 self.lithosphere_density = 3.32 # (g / cm^ - 3) 113 self.mantle_shear_modulus = 1.45 * 10**11 # (Pa) 114 self.mantle_density = 3.34 # (g / cm^ - 3) 109 115 110 # GIA: 111 self.lithosphere_shear_modulus = 6.7*10**10 # (Pa) 112 self.lithosphere_density = 3.32 # (g/cm^-3) 113 self.mantle_shear_modulus = 1.45*10**11 # (Pa) 114 self.mantle_density = 3.34 # (g/cm^-3) 116 #SLR 117 self.earth_density = 5512 #average density of the Earth, (kg / m^3) 115 118 116 #SLR 117 self.earth_density= 5512 #average density of the Earth, (kg/m^3) 119 return self 120 #}}} 118 121 119 return self 120 #}}} 122 def checkconsistency(self, md, solution, analyses): # {{{ 123 md = checkfield(md, 'fieldname', 'materials.rho_ice', '>', 0) 124 md = checkfield(md, 'fieldname', 'materials.rho_water', '>', 0) 125 md = checkfield(md, 'fieldname', 'materials.rho_freshwater', '>', 0) 126 md = checkfield(md, 'fieldname', 'materials.mu_water', '>', 0) 127 md = checkfield(md, 'fieldname', 'materials.rheology_E', '>', 0, 'timeseries', 1, 'NaN', 1, 'Inf', 1) 128 md = checkfield(md, 'fieldname', 'materials.rheology_B', '>', 0, 'timeseries', 1, 'NaN', 1, 'Inf', 1) 129 md = checkfield(md, 'fieldname', 'materials.rheology_n', '>', 0, 'size', [md.mesh.numberofelements]) 130 md = checkfield(md, 'fieldname', 'materials.rheology_law', 'values', ['None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius', 'LliboutryDuval']) 131 md = checkfield(md, 'fieldname', 'materials.effectiveconductivity_averaging', 'numel', [1], 'values', [0, 1, 2]) 121 132 122 def checkconsistency(self,md,solution,analyses): # {{{ 123 md = checkfield(md,'fieldname','materials.rho_ice','>',0) 124 md = checkfield(md,'fieldname','materials.rho_water','>',0) 125 md = checkfield(md,'fieldname','materials.rho_freshwater','>',0) 126 md = checkfield(md,'fieldname','materials.mu_water','>',0) 127 md = checkfield(md,'fieldname','materials.rheology_E','>',0,'timeseries',1,'NaN',1,'Inf',1) 128 md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1,'Inf',1) 129 md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements]) 130 md = checkfield(md,'fieldname','materials.rheology_law','values',['None','BuddJacka','Cuffey','CuffeyTemperate','Paterson','Arrhenius','LliboutryDuval']) 131 md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0,1,2]) 133 if 'GiaAnalysis' in analyses: 134 md = checkfield(md, 'fieldname', 'materials.lithosphere_shear_modulus', '>', 0, 'numel', 1) 135 md = checkfield(md, 'fieldname', 'materials.lithosphere_density', '>', 0, 'numel', 1) 136 md = checkfield(md, 'fieldname', 'materials.mantle_shear_modulus', '>', 0, 'numel', 1) 137 md = checkfield(md, 'fieldname', 'materials.mantle_density', '>', 0, 'numel', 1) 138 if 'SealevelriseAnalysis' in analyses: 139 md = checkfield(md, 'fieldname', 'materials.earth_density', '>', 0, 'numel', 1) 140 return md 141 # }}} 132 142 133 if 'GiaAnalysis' in analyses: 134 md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',1) 135 md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',1) 136 md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',1) 137 md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1) 138 if 'SealevelriseAnalysis' in analyses: 139 md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1) 140 return md 141 # }}} 142 143 def marshall(self,prefix,md,fid): # {{{ 144 WriteData(fid,prefix,'name','md.materials.type','data',4,'format','Integer') 145 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_ice','format','Double') 146 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_water','format','Double') 147 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_freshwater','format','Double') 148 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mu_water','format','Double') 149 WriteData(fid,prefix,'object',self,'class','materials','fieldname','heatcapacity','format','Double') 150 WriteData(fid,prefix,'object',self,'class','materials','fieldname','latentheat','format','Double') 151 WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double') 152 WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double') 153 WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer') 154 WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double') 155 WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double') 156 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mixed_layer_capacity','format','Double') 157 WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermal_exchange_velocity','format','Double') 158 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_E','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 159 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 160 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2) 161 WriteData(fid,prefix,'data',self.rheology_law,'name','md.materials.rheology_law','format','String') 162 WriteData(fid,prefix,'object',self,'class','materials','fieldname','lithosphere_shear_modulus','format','Double') 163 WriteData(fid,prefix,'object',self,'class','materials','fieldname','lithosphere_density','format','Double','scale',10^3) 164 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double') 165 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10^3) 166 WriteData(fid,prefix,'object',self,'class','materials','fieldname','earth_density','format','Double') 167 # }}} 143 def marshall(self, prefix, md, fid): # {{{ 144 WriteData(fid, prefix, 'name', 'md.materials.type', 'data', 4, 'format', 'Integer') 145 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_ice', 'format', 'Double') 146 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_water', 'format', 'Double') 147 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_freshwater', 'format', 'Double') 148 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mu_water', 'format', 'Double') 149 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'heatcapacity', 'format', 'Double') 150 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'latentheat', 'format', 'Double') 151 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'thermalconductivity', 'format', 'Double') 152 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'temperateiceconductivity', 'format', 'Double') 153 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'effectiveconductivity_averaging', 'format', 'Integer') 154 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'meltingpoint', 'format', 'Double') 155 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'beta', 'format', 'Double') 156 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mixed_layer_capacity', 'format', 'Double') 157 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'thermal_exchange_velocity', 'format', 'Double') 158 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_E', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 159 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_B', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 160 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_n', 'format', 'DoubleMat', 'mattype', 2) 161 WriteData(fid, prefix, 'data', self.rheology_law, 'name', 'md.materials.rheology_law', 'format', 'String') 162 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'lithosphere_shear_modulus', 'format', 'Double') 163 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'lithosphere_density', 'format', 'Double', 'scale', 10**3) 164 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mantle_shear_modulus', 'format', 'Double') 165 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mantle_density', 'format', 'Double', 'scale', 10**3) 166 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'earth_density', 'format', 'Double') 167 # }}} -
issm/trunk-jpl/src/m/classes/materials.py
r24092 r24213 5 5 from WriteData import WriteData 6 6 7 def naturetointeger(strnat): #{{{ 8 9 intnat=np.zeros(len(strnat)) 10 for i in range(len(intnat)): 11 if strnat[i]=='damageice': 12 intnat[i]=1 13 elif strnat[i]=='estar': 14 intnat[i]=2 15 elif strnat[i]=='ice': 16 intnat[i]=3 17 elif strnat[i]=='enhancedice': 18 intnat[i]=4 19 elif strnat[i]=='litho': 20 intnat[i]=5 21 else: 22 raise RuntimeError("materials constructor error message: nature of the material not supported yet! (''ice'' or ''litho'')"); 23 24 return intnat 25 # }}} 7 8 def naturetointeger(strnat): #{{{ 9 10 intnat = np.zeros(len(strnat)) 11 for i in range(len(intnat)): 12 if strnat[i] == 'damageice': 13 intnat[i] = 1 14 elif strnat[i] == 'estar': 15 intnat[i] = 2 16 elif strnat[i] == 'ice': 17 intnat[i] = 3 18 elif strnat[i] == 'enhancedice': 19 intnat[i] = 4 20 elif strnat[i] == 'litho': 21 intnat[i] = 5 22 else: 23 raise RuntimeError("materials constructor error message: nature of the material not supported yet! (''ice'' or ''litho'')") 24 25 return intnat 26 # }}} 27 26 28 27 29 class materials(object): 28 """ 29 MATERIALS class definition 30 31 Usage: 32 materials=materials(); 33 """ 34 35 def __init__(self,*args): # {{{ 36 self.nature = [] 37 if not len(args): 38 self.nature=['ice'] 39 else: 40 self.nature=args 41 42 for i in range(len(self.nature)): 43 if not(self.nature[i] == 'litho' or self.nature[i]=='ice'): 44 raise RuntimeError("materials constructor error message: nature of the material not supported yet! ('ice' or 'litho')") 45 46 #start filling in the dynamic fields: 47 for i in range(len(self.nature)): 48 nat=self.nature[i]; 49 if nat=='ice': 50 setattr(self,'rho_ice',0) 51 setattr(self,'rho_ice',0); 52 setattr(self,'rho_water',0); 53 setattr(self,'rho_freshwater',0); 54 setattr(self,'mu_water',0); 55 setattr(self,'heatcapacity',0); 56 setattr(self,'latentheat',0); 57 setattr(self,'thermalconductivity',0); 58 setattr(self,'temperateiceconductivity',0); 59 setattr(self,'meltingpoint',0); 60 setattr(self,'beta',0); 61 setattr(self,'mixed_layer_capacity',0); 62 setattr(self,'thermal_exchange_velocity',0); 63 setattr(self,'rheology_B',0); 64 setattr(self,'rheology_n',0); 65 setattr(self,'rheology_law',0); 66 elif nat=='litho': 67 setattr(self,'numlayers',0); 68 setattr(self,'radius',0); 69 setattr(self,'viscosity',0); 70 setattr(self,'lame_lambda',0); 71 setattr(self,'lame_mu',0); 72 setattr(self,'burgers_viscosity',0); 73 setattr(self,'burgers_mu',0); 74 setattr(self,'isburgers',0); 75 setattr(self,'density',0); 76 setattr(self,'issolid',0); 77 else: 78 raise RuntimeError("materials constructor error message: nature of the material not supported yet! ('ice' or 'litho')"); 79 #set default parameters: 80 self.setdefaultparameters() 81 #}}} 82 83 def __repr__(self): # {{{ 84 string=" Materials:" 85 for i in range(len(self.nature)): 86 nat=self.nature[i]; 87 if nat=='ice': 88 string="%s\n%s"%(string,'Ice:'); 89 string="%s\n%s"%(string,fielddisplay(self,"rho_ice","ice density [kg/m^3]")) 90 string="%s\n%s"%(string,fielddisplay(self,"rho_water","water density [kg/m^3]")) 91 string="%s\n%s"%(string,fielddisplay(self,"rho_freshwater","fresh water density [kg/m^3]")) 92 string="%s\n%s"%(string,fielddisplay(self,"mu_water","water viscosity [N s/m^2]")) 93 string="%s\n%s"%(string,fielddisplay(self,"heatcapacity","heat capacity [J/kg/K]")) 94 string="%s\n%s"%(string,fielddisplay(self,"thermalconductivity","ice thermal conductivity [W/m/K]")) 95 string="%s\n%s"%(string,fielddisplay(self,"temperateiceconductivity","temperate ice thermal conductivity [W/m/K]")) 96 string="%s\n%s"%(string,fielddisplay(self,"meltingpoint","melting point of ice at 1atm in K")) 97 string="%s\n%s"%(string,fielddisplay(self,"latentheat","latent heat of fusion [J/m^3]")) 98 string="%s\n%s"%(string,fielddisplay(self,"beta","rate of change of melting point with pressure [K/Pa]")) 99 string="%s\n%s"%(string,fielddisplay(self,"mixed_layer_capacity","mixed layer capacity [W/kg/K]")) 100 string="%s\n%s"%(string,fielddisplay(self,"thermal_exchange_velocity","thermal exchange velocity [m/s]")) 101 string="%s\n%s"%(string,fielddisplay(self,"rheology_B","flow law parameter [Pa s^(1/n)]")) 102 string="%s\n%s"%(string,fielddisplay(self,"rheology_n","Glen's flow law exponent")) 103 string="%s\n%s"%(string,fielddisplay(self,"rheology_law","law for the temperature dependance of the rheology: 'None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius', 'LliboutryDuval', 'NyeCO2', or 'NyeH2O'")) 104 elif nat=='litho': 105 string="%s\n%s"%(string,'Litho:'); 106 string="%s\n%s"%(string,fielddisplay(self,'numlayers','number of layers (default 2)')) 107 string="%s\n%s"%(string,fielddisplay(self,'radius','array describing the radius for each interface (numlayers+1) [m]')) 108 string="%s\n%s"%(string,fielddisplay(self,'viscosity','array describing each layer''s viscosity (numlayers) [Pa.s]')) 109 string="%s\n%s"%(string,fielddisplay(self,'lame_lambda','array describing the lame lambda parameter (numlayers) [Pa]')) 110 string="%s\n%s"%(string,fielddisplay(self,'lame_mu','array describing the shear modulus for each layers (numlayers) [Pa]')) 111 string="%s\n%s"%(string,fielddisplay(self,'burgers_viscosity','array describing each layer''s transient viscosity, only for Burgers rheologies (numlayers) [Pa.s]')) 112 string="%s\n%s"%(string,fielddisplay(self,'burgers_mu','array describing each layer''s transient shear modulus, only for Burgers rheologies (numlayers) [Pa]')) 113 string="%s\n%s"%(string,fielddisplay(self,'isburgers','array describing whether we adopt a MaxWell (0) or Burgers (1) rheology (default 0)')) 114 string="%s\n%s"%(string,fielddisplay(self,'density','array describing each layer''s density (numlayers) [kg/m^3]')) 115 string="%s\n%s"%(string,fielddisplay(self,'issolid','array describing whether the layer is solid or liquid (default 1) (numlayers)')) 116 117 else: 118 raise RuntimeError("materials constructor error message: nature of the material not supported yet! ('ice' or 'litho')"); 119 120 return string 121 #}}} 122 123 def extrude(self,md): # {{{ 124 for i in range(len(self.nature)): 125 nat=self.nature[i]; 126 if nat=='ice': 127 self.rheology_B=project3d(md,'vector',self.rheology_B,'type','node') 128 self.rheology_n=project3d(md,'vector',self.rheology_n,'type','element') 129 return self 130 #}}} 131 132 def setdefaultparameters(self): # {{{ 133 for i in range(len(self.nature)): 134 nat=self.nature[i]; 135 if nat=='ice': 136 #ice density (kg/m^3) 137 self.rho_ice=917. 138 #ocean water density (kg/m^3) 139 self.rho_water=1023. 140 #fresh water density (kg/m^3) 141 self.rho_freshwater=1000. 142 #water viscosity (N.s/m^2) 143 self.mu_water=0.001787 144 #ice heat capacity cp (J/kg/K) 145 self.heatcapacity=2093. 146 #ice latent heat of fusion L (J/kg) 147 self.latentheat=3.34*10^5 148 #ice thermal conductivity (W/m/K) 149 self.thermalconductivity=2.4 150 #wet ice thermal conductivity (W/m/K) 151 self.temperateiceconductivity=.24 152 #the melting point of ice at 1 atmosphere of pressure in K 153 self.meltingpoint=273.15 154 #rate of change of melting point with pressure (K/Pa) 155 self.beta=9.8*10^-8 156 #mixed layer (ice-water interface) heat capacity (J/kg/K) 157 self.mixed_layer_capacity=3974. 158 #thermal exchange velocity (ice-water interface) (m/s) 159 self.thermal_exchange_velocity=1.00*10^-4 160 #Rheology law: what is the temperature dependence of B with T 161 #available: none, paterson and arrhenius 162 self.rheology_law='Paterson' 163 164 elif nat=='litho': 165 #we default to a configuration that enables running GIA solutions using giacaron and/or giaivins. 166 self.numlayers=2 167 #center of the earth (approximation, must not be 0), then the lab (lithosphere/asthenosphere boundary) then the surface 168 #(with 1d3 to avoid numerical singularities) 169 self.radius=[1e3,6278*1e3,6378*1e3] 170 self.viscosity=[1e21,1e40] #mantle and lithosphere viscosity (respectively) [Pa.s] 171 self.lame_mu=[1.45*1e11,6.7*1e10] # (Pa) #lithosphere and mantle shear modulus (respectively) [Pa] 172 self.lame_lambda=self.lame_mu # (Pa) #mantle and lithosphere lamba parameter (respectively) [Pa] 173 self.burgers_viscosity=[np.nan,np.nan] 174 self.burgers_mu=[np.nan,np.nan] 175 self.isburgers=[0,0] 176 self.density=[5.51*1e3,5.50*1e3] # (Pa) #mantle and lithosphere density [kg/m^3] 177 self.issolid=[1,1] # is layer solid or liquid. 178 179 else: 180 raise RuntimeError("materials setdefaultparameters error message: nature of the material not supported yet! ('ice' or 'litho')"); 181 182 return self 183 #}}} 184 def checkconsistency(self,md,solution,analyses): # {{{ 185 for i in range(len(self.nature)): 186 nat=self.nature[i]; 187 if nat=='ice': 188 md = checkfield(md,'fieldname','materials.rho_ice','>',0) 189 md = checkfield(md,'fieldname','materials.rho_water','>',0) 190 md = checkfield(md,'fieldname','materials.rho_freshwater','>',0) 191 md = checkfield(md,'fieldname','materials.mu_water','>',0) 192 md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1,'Inf',1) 193 md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements]) 194 md = checkfield(md,'fieldname','materials.rheology_law','values',['None','BuddJacka','Cuffey','CuffeyTemperate','Paterson','Arrhenius','LliboutryDuval','NyeCO2','NyeH2O']) 195 196 elif nat=='litho': 197 if 'LoveAnalysis' not in analyses: 198 return md 199 200 md = checkfield(md,'fieldname','materials.numlayers','NaN',1,'Inf',1,'>',0,'numel',[1]) 201 md = checkfield(md,'fieldname','materials.radius','NaN',1,'Inf',1,'size',[md.materials.numlayers+1,1],'>',0) 202 md = checkfield(md,'fieldname','materials.lame_mu','NaN',1,'Inf',1,'size',[md.materials.numlayers,1],'>=',0) 203 md = checkfield(md,'fieldname','materials.lame_lambda','NaN',1,'Inf',1,'size',[md.materials.numlayers,1],'>=',0) 204 md = checkfield(md,'fieldname','materials.issolid','NaN',1,'Inf',1,'size',[md.materials.numlayers,1],'>=',0,'<',2) 205 md = checkfield(md,'fieldname','materials.density','NaN',1,'Inf',1,'size',[md.materials.numlayers,1],'>',0) 206 md = checkfield(md,'fieldname','materials.viscosity','NaN',1,'Inf',1,'size',[md.materials.numlayers,1],'>=',0) 207 md = checkfield(md,'fieldname','materials.isburgers','NaN',1,'Inf',1,'size',[md.materials.numlayers,1],'>=',0,'<=',1) 208 md = checkfield(md,'fieldname','materials.burgers_viscosity','Inf',1,'size',[md.materials.numlayers,1],'>=',0) 209 md = checkfield(md,'fieldname','materials.burgers_mu','Inf',1,'size',[md.materials.numlayers,1],'>=',0) 210 211 for i in range(md.materials.numlayers): 212 if md.materials.isburgers[i] and (np.isnan(md.materials.burgers_viscosity[i] or np.isnan(md.materials.burgers_mu[i]))): 213 raise RuntimeError("materials checkconsistency error message: Litho burgers_viscosity or burgers_mu has NaN values, inconsistent with isburgers choice") 214 215 if md.materials.issolid[0]==0 or md.materials.lame_mu[0]==0: 216 raise RuntimeError('First layer must be solid (issolid(1) > 0 AND lame_mu(1) > 0). Add a weak inner core if necessary.') 217 218 for i in range(md.materials.numlayers-1): 219 if (not md.materials.issolid[i]) and (not md.materials.issolid[i+1]): #if there are at least two consecutive indices that contain issolid = 0 220 raise RuntimeError("%s%i%s"%('2 or more adjacent fluid layers detected starting at layer ',i,'. This is not supported yet. Consider merging them.')) 221 222 else: 223 raise RuntimeError("materials checkconsistency error message: nature of the material not supported yet! ('ice' or 'litho')"); 224 225 return md 226 # }}} 227 228 def marshall(self,prefix,md,fid): # {{{ 229 #1: MatdamageiceEnum 2: MatestarEnum 3: MaticeEnum 4: MatenhancediceEnum 5: MaterialsEnum 230 WriteData(fid,prefix,'name','md.materials.type','data',6,'format','Integer') 231 WriteData(fid,prefix,'name','md.materials.nature','data',naturetointeger(self.nature),'format','IntMat','mattype',3) 232 233 for i in range(len(self.nature)): 234 nat=self.nature[i]; 235 if nat=='ice': 236 WriteData(fid,prefix,'name','md.materials.type','data',3,'format','Integer') 237 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_ice','format','Double') 238 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_water','format','Double') 239 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_freshwater','format','Double') 240 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mu_water','format','Double') 241 WriteData(fid,prefix,'object',self,'class','materials','fieldname','heatcapacity','format','Double') 242 WriteData(fid,prefix,'object',self,'class','materials','fieldname','latentheat','format','Double') 243 WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double') 244 WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double') 245 WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double') 246 WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double') 247 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mixed_layer_capacity','format','Double') 248 WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermal_exchange_velocity','format','Double') 249 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 250 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2) 251 WriteData(fid,prefix,'data',self.rheology_law,'name','md.materials.rheology_law','format','String') 252 253 elif nat=='litho': 254 WriteData(fid,prefix,'object',self,'class','materials','fieldname','numlayers','format','Integer') 255 WriteData(fid,prefix,'object',self,'class','materials','fieldname','radius','format','DoubleMat','mattype',3) 256 WriteData(fid,prefix,'object',self,'class','materials','fieldname','lame_mu','format','DoubleMat','mattype',3) 257 WriteData(fid,prefix,'object',self,'class','materials','fieldname','lame_lambda','format','DoubleMat','mattype',3) 258 WriteData(fid,prefix,'object',self,'class','materials','fieldname','issolid','format','DoubleMat','mattype',3) 259 WriteData(fid,prefix,'object',self,'class','materials','fieldname','density','format','DoubleMat','mattype',3) 260 WriteData(fid,prefix,'object',self,'class','materials','fieldname','viscosity','format','DoubleMat','mattype',3) 261 WriteData(fid,prefix,'object',self,'class','materials','fieldname','isburgers','format','DoubleMat','mattype',3) 262 WriteData(fid,prefix,'object',self,'class','materials','fieldname','burgers_viscosity','format','DoubleMat','mattype',3) 263 WriteData(fid,prefix,'object',self,'class','materials','fieldname','burgers_mu','format','DoubleMat','mattype',3) 264 265 else: 266 raise RuntimeError("materials constructor error message: nature of the material not supported yet! (''ice'' or ''litho'')") 267 # }}} 30 """ 31 MATERIALS class definition 32 33 Usage: 34 materials = materials() 35 """ 36 37 def __init__(self, *args): # {{{ 38 self.nature = [] 39 if not len(args): 40 self.nature = ['ice'] 41 else: 42 self.nature = args 43 44 for i in range(len(self.nature)): 45 if not(self.nature[i] == 'litho' or self.nature[i] == 'ice'): 46 raise RuntimeError("materials constructor error message: nature of the material not supported yet! ('ice' or 'litho')") 47 48 #start filling in the dynamic fields: 49 for i in range(len(self.nature)): 50 nat = self.nature[i] 51 if nat == 'ice': 52 setattr(self, 'rho_ice', 0) 53 setattr(self, 'rho_ice', 0) 54 setattr(self, 'rho_water', 0) 55 setattr(self, 'rho_freshwater', 0) 56 setattr(self, 'mu_water', 0) 57 setattr(self, 'heatcapacity', 0) 58 setattr(self, 'latentheat', 0) 59 setattr(self, 'thermalconductivity', 0) 60 setattr(self, 'temperateiceconductivity', 0) 61 setattr(self, 'meltingpoint', 0) 62 setattr(self, 'beta', 0) 63 setattr(self, 'mixed_layer_capacity', 0) 64 setattr(self, 'thermal_exchange_velocity', 0) 65 setattr(self, 'rheology_B', 0) 66 setattr(self, 'rheology_n', 0) 67 setattr(self, 'rheology_law', 0) 68 elif nat == 'litho': 69 setattr(self, 'numlayers', 0) 70 setattr(self, 'radius', 0) 71 setattr(self, 'viscosity', 0) 72 setattr(self, 'lame_lambda', 0) 73 setattr(self, 'lame_mu', 0) 74 setattr(self, 'burgers_viscosity', 0) 75 setattr(self, 'burgers_mu', 0) 76 setattr(self, 'isburgers', 0) 77 setattr(self, 'density', 0) 78 setattr(self, 'issolid', 0) 79 else: 80 raise RuntimeError("materials constructor error message: nature of the material not supported yet! ('ice' or 'litho')") 81 #set default parameters: 82 self.setdefaultparameters() 83 #}}} 84 85 def __repr__(self): # {{{ 86 string = " Materials:" 87 for i in range(len(self.nature)): 88 nat = self.nature[i] 89 if nat == 'ice': 90 string = "%s\n%s" % (string, 'Ice:') 91 string = "%s\n%s" % (string, fielddisplay(self, "rho_ice", "ice density [kg / m^3]")) 92 string = "%s\n%s" % (string, fielddisplay(self, "rho_water", "water density [kg / m^3]")) 93 string = "%s\n%s" % (string, fielddisplay(self, "rho_freshwater", "fresh water density [kg / m^3]")) 94 string = "%s\n%s" % (string, fielddisplay(self, "mu_water", "water viscosity [N s / m^2]")) 95 string = "%s\n%s" % (string, fielddisplay(self, "heatcapacity", "heat capacity [J / kg / K]")) 96 string = "%s\n%s" % (string, fielddisplay(self, "thermalconductivity", "ice thermal conductivity [W / m / K]")) 97 string = "%s\n%s" % (string, fielddisplay(self, "temperateiceconductivity", "temperate ice thermal conductivity [W / m / K]")) 98 string = "%s\n%s" % (string, fielddisplay(self, "meltingpoint", "melting point of ice at 1atm in K")) 99 string = "%s\n%s" % (string, fielddisplay(self, "latentheat", "latent heat of fusion [J / m^3]")) 100 string = "%s\n%s" % (string, fielddisplay(self, "beta", "rate of change of melting point with pressure [K / Pa]")) 101 string = "%s\n%s" % (string, fielddisplay(self, "mixed_layer_capacity", "mixed layer capacity [W / kg / K]")) 102 string = "%s\n%s" % (string, fielddisplay(self, "thermal_exchange_velocity", "thermal exchange velocity [m / s]")) 103 string = "%s\n%s" % (string, fielddisplay(self, "rheology_B", "flow law parameter [Pa s^(1 / n)]")) 104 string = "%s\n%s" % (string, fielddisplay(self, "rheology_n", "Glen's flow law exponent")) 105 string = "%s\n%s" % (string, fielddisplay(self, "rheology_law", "law for the temperature dependance of the rheology: 'None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius', 'LliboutryDuval', 'NyeCO2', or 'NyeH2O'")) 106 elif nat == 'litho': 107 string = "%s\n%s" % (string, 'Litho:') 108 string = "%s\n%s" % (string, fielddisplay(self, 'numlayers', 'number of layers (default 2)')) 109 string = "%s\n%s" % (string, fielddisplay(self, 'radius', 'array describing the radius for each interface (numlayers + 1) [m]')) 110 string = "%s\n%s" % (string, fielddisplay(self, 'viscosity', 'array describing each layer''s viscosity (numlayers) [Pa.s]')) 111 string = "%s\n%s" % (string, fielddisplay(self, 'lame_lambda', 'array describing the lame lambda parameter (numlayers) [Pa]')) 112 string = "%s\n%s" % (string, fielddisplay(self, 'lame_mu', 'array describing the shear modulus for each layers (numlayers) [Pa]')) 113 string = "%s\n%s" % (string, fielddisplay(self, 'burgers_viscosity', 'array describing each layer''s transient viscosity, only for Burgers rheologies (numlayers) [Pa.s]')) 114 string = "%s\n%s" % (string, fielddisplay(self, 'burgers_mu', 'array describing each layer''s transient shear modulus, only for Burgers rheologies (numlayers) [Pa]')) 115 string = "%s\n%s" % (string, fielddisplay(self, 'isburgers', 'array describing whether we adopt a MaxWell (0) or Burgers (1) rheology (default 0)')) 116 string = "%s\n%s" % (string, fielddisplay(self, 'density', 'array describing each layer''s density (numlayers) [kg / m^3]')) 117 string = "%s\n%s" % (string, fielddisplay(self, 'issolid', 'array describing whether the layer is solid or liquid (default 1) (numlayers)')) 118 119 else: 120 raise RuntimeError("materials constructor error message: nature of the material not supported yet! ('ice' or 'litho')") 121 122 return string 123 #}}} 124 125 def extrude(self, md): # {{{ 126 for i in range(len(self.nature)): 127 nat = self.nature[i] 128 if nat == 'ice': 129 self.rheology_B = project3d(md, 'vector', self.rheology_B, 'type', 'node') 130 self.rheology_n = project3d(md, 'vector', self.rheology_n, 'type', 'element') 131 return self 132 #}}} 133 134 def setdefaultparameters(self): # {{{ 135 for i in range(len(self.nature)): 136 nat = self.nature[i] 137 if nat == 'ice': 138 #ice density (kg / m^3) 139 self.rho_ice = 917. 140 #ocean water density (kg / m^3) 141 self.rho_water = 1023. 142 #fresh water density (kg / m^3) 143 self.rho_freshwater = 1000. 144 #water viscosity (N.s / m^2) 145 self.mu_water = 0.001787 146 #ice heat capacity cp (J / kg / K) 147 self.heatcapacity = 2093. 148 #ice latent heat of fusion L (J / kg) 149 self.latentheat = 3.34 * 1.0e5 150 #ice thermal conductivity (W / m / K) 151 self.thermalconductivity = 2.4 152 #wet ice thermal conductivity (W / m / K) 153 self.temperateiceconductivity = 0.24 154 #the melting point of ice at 1 atmosphere of pressure in K 155 self.meltingpoint = 273.15 156 #rate of change of melting point with pressure (K / Pa) 157 self.beta = 9.8 * 1.0e-8 158 #mixed layer (ice-water interface) heat capacity (J / kg / K) 159 self.mixed_layer_capacity = 3974. 160 #thermal exchange velocity (ice-water interface) (m / s) 161 self.thermal_exchange_velocity = 1.00 * 1.0e-4 162 #Rheology law: what is the temperature dependence of B with T 163 #available: none, paterson and arrhenius 164 self.rheology_law = 'Paterson' 165 166 elif nat == 'litho': 167 #we default to a configuration that enables running GIA solutions using giacaron and / or giaivins. 168 self.numlayers = 2 169 #center of the earth (approximation, must not be 0), then the lab (lithosphere / asthenosphere boundary) then the surface 170 #(with 1d3 to avoid numerical singularities) 171 self.radius = [1e3, 6278 * 1e3, 6378 * 1e3] 172 self.viscosity = [1e21, 1e40] #mantle and lithosphere viscosity (respectively) [Pa.s] 173 self.lame_mu = [1.45 * 1e11, 6.7 * 1e10] # (Pa) #lithosphere and mantle shear modulus (respectively) [Pa] 174 self.lame_lambda = self.lame_mu # (Pa) #mantle and lithosphere lamba parameter (respectively) [Pa] 175 self.burgers_viscosity = [np.nan, np.nan] 176 self.burgers_mu = [np.nan, np.nan] 177 self.isburgers = [0, 0] 178 self.density = [5.51 * 1e3, 5.50 * 1e3] # (Pa) #mantle and lithosphere density [kg / m^3] 179 self.issolid = [1, 1] # is layer solid or liquid. 180 181 else: 182 raise RuntimeError("materials setdefaultparameters error message: nature of the material not supported yet! ('ice' or 'litho')") 183 184 return self 185 #}}} 186 187 def checkconsistency(self, md, solution, analyses): # {{{ 188 for i in range(len(self.nature)): 189 nat = self.nature[i] 190 if nat == 'ice': 191 md = checkfield(md, 'fieldname', 'materials.rho_ice', '>', 0) 192 md = checkfield(md, 'fieldname', 'materials.rho_water', '>', 0) 193 md = checkfield(md, 'fieldname', 'materials.rho_freshwater', '>', 0) 194 md = checkfield(md, 'fieldname', 'materials.mu_water', '>', 0) 195 md = checkfield(md, 'fieldname', 'materials.rheology_B', '>', 0, 'timeseries', 1, 'NaN', 1, 'Inf', 1) 196 md = checkfield(md, 'fieldname', 'materials.rheology_n', '>', 0, 'size', [md.mesh.numberofelements]) 197 md = checkfield(md, 'fieldname', 'materials.rheology_law', 'values', ['None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius', 'LliboutryDuval', 'NyeCO2', 'NyeH2O']) 198 199 elif nat == 'litho': 200 if 'LoveAnalysis' not in analyses: 201 return md 202 203 md = checkfield(md, 'fieldname', 'materials.numlayers', 'NaN', 1, 'Inf', 1, '>', 0, 'numel', [1]) 204 md = checkfield(md, 'fieldname', 'materials.radius', 'NaN', 1, 'Inf', 1, 'size', [md.materials.numlayers + 1, 1], '>', 0) 205 md = checkfield(md, 'fieldname', 'materials.lame_mu', 'NaN', 1, 'Inf', 1, 'size', [md.materials.numlayers, 1], '>=', 0) 206 md = checkfield(md, 'fieldname', 'materials.lame_lambda', 'NaN', 1, 'Inf', 1, 'size', [md.materials.numlayers, 1], '>=', 0) 207 md = checkfield(md, 'fieldname', 'materials.issolid', 'NaN', 1, 'Inf', 1, 'size', [md.materials.numlayers, 1], '>=', 0, '<', 2) 208 md = checkfield(md, 'fieldname', 'materials.density', 'NaN', 1, 'Inf', 1, 'size', [md.materials.numlayers, 1], '>', 0) 209 md = checkfield(md, 'fieldname', 'materials.viscosity', 'NaN', 1, 'Inf', 1, 'size', [md.materials.numlayers, 1], '>=', 0) 210 md = checkfield(md, 'fieldname', 'materials.isburgers', 'NaN', 1, 'Inf', 1, 'size', [md.materials.numlayers, 1], '>=', 0, '<=', 1) 211 md = checkfield(md, 'fieldname', 'materials.burgers_viscosity', 'Inf', 1, 'size', [md.materials.numlayers, 1], '>=', 0) 212 md = checkfield(md, 'fieldname', 'materials.burgers_mu', 'Inf', 1, 'size', [md.materials.numlayers, 1], '>=', 0) 213 214 for i in range(md.materials.numlayers): 215 if md.materials.isburgers[i] and (np.isnan(md.materials.burgers_viscosity[i] or np.isnan(md.materials.burgers_mu[i]))): 216 raise RuntimeError("materials checkconsistency error message: Litho burgers_viscosity or burgers_mu has NaN values, inconsistent with isburgers choice") 217 218 if md.materials.issolid[0] == 0 or md.materials.lame_mu[0] == 0: 219 raise RuntimeError('First layer must be solid (issolid(1) > 0 AND lame_mu(1) > 0). Add a weak inner core if necessary.') 220 221 for i in range(md.materials.numlayers - 1): 222 if (not md.materials.issolid[i]) and (not md.materials.issolid[i + 1]): #if there are at least two consecutive indices that contain issolid = 0 223 raise RuntimeError("%s%i%s" % ('2 or more adjacent fluid layers detected starting at layer ', i, '. This is not supported yet. Consider merging them.')) 224 225 else: 226 raise RuntimeError("materials checkconsistency error message: nature of the material not supported yet! ('ice' or 'litho')") 227 228 return md 229 # }}} 230 231 def marshall(self, prefix, md, fid): # {{{ 232 #1: MatdamageiceEnum 2: MatestarEnum 3: MaticeEnum 4: MatenhancediceEnum 5: MaterialsEnum 233 WriteData(fid, prefix, 'name', 'md.materials.type', 'data', 6, 'format', 'Integer') 234 WriteData(fid, prefix, 'name', 'md.materials.nature', 'data', naturetointeger(self.nature), 'format', 'IntMat', 'mattype', 3) 235 236 for i in range(len(self.nature)): 237 nat = self.nature[i] 238 if nat == 'ice': 239 WriteData(fid, prefix, 'name', 'md.materials.type', 'data', 3, 'format', 'Integer') 240 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_ice', 'format', 'Double') 241 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_water', 'format', 'Double') 242 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_freshwater', 'format', 'Double') 243 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mu_water', 'format', 'Double') 244 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'heatcapacity', 'format', 'Double') 245 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'latentheat', 'format', 'Double') 246 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'thermalconductivity', 'format', 'Double') 247 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'temperateiceconductivity', 'format', 'Double') 248 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'meltingpoint', 'format', 'Double') 249 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'beta', 'format', 'Double') 250 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mixed_layer_capacity', 'format', 'Double') 251 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'thermal_exchange_velocity', 'format', 'Double') 252 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_B', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 253 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_n', 'format', 'DoubleMat', 'mattype', 2) 254 WriteData(fid, prefix, 'data', self.rheology_law, 'name', 'md.materials.rheology_law', 'format', 'String') 255 256 elif nat == 'litho': 257 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'numlayers', 'format', 'Integer') 258 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'radius', 'format', 'DoubleMat', 'mattype', 3) 259 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'lame_mu', 'format', 'DoubleMat', 'mattype', 3) 260 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'lame_lambda', 'format', 'DoubleMat', 'mattype', 3) 261 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'issolid', 'format', 'DoubleMat', 'mattype', 3) 262 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'density', 'format', 'DoubleMat', 'mattype', 3) 263 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'viscosity', 'format', 'DoubleMat', 'mattype', 3) 264 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'isburgers', 'format', 'DoubleMat', 'mattype', 3) 265 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'burgers_viscosity', 'format', 'DoubleMat', 'mattype', 3) 266 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'burgers_mu', 'format', 'DoubleMat', 'mattype', 3) 267 268 else: 269 raise RuntimeError("materials constructor error message: nature of the material not supported yet! (''ice'' or ''litho'')") 270 # }}} -
issm/trunk-jpl/src/m/classes/matestar.py
r23774 r24213 1 import numpy as np2 1 from fielddisplay import fielddisplay 3 2 from project3d import project3d … … 5 4 from WriteData import WriteData 6 5 6 7 7 class matestar(object): 8 9 8 """ 9 matestar class definition 10 10 11 12 matestar=matestar()13 11 Usage: 12 matestar = matestar() 13 """ 14 14 15 def __init__(self):# {{{16 rho_ice= 0.17 rho_water= 0.18 rho_freshwater= 0.19 mu_water= 0.20 heatcapacity= 0.21 latentheat= 0.22 thermalconductivity= 0.23 temperateiceconductivity= 0.24 25 meltingpoint= 0.26 beta= 0.27 mixed_layer_capacity= 0.28 29 rheology_B= float('NaN')30 rheology_Ec= float('NaN')31 rheology_Es= float('NaN')32 rheology_law= ''15 def __init__(self): # {{{ 16 self.rho_ice = 0. 17 self.rho_water = 0. 18 self.rho_freshwater = 0. 19 self.mu_water = 0. 20 self.heatcapacity = 0. 21 self.latentheat = 0. 22 self.thermalconductivity = 0. 23 self.temperateiceconductivity = 0. 24 self.effectiveconductivity_averaging = 0 25 self.meltingpoint = 0. 26 self.beta = 0. 27 self.mixed_layer_capacity = 0. 28 self.thermal_exchange_velocity = 0. 29 self.rheology_B = float('NaN') 30 self.rheology_Ec = float('NaN') 31 self.rheology_Es = float('NaN') 32 self.rheology_law = '' 33 33 34 35 lithosphere_shear_modulus= 0.36 lithosphere_density= 0.37 mantle_shear_modulus= 0.38 mantle_density= 0.34 #giaivins: 35 self.lithosphere_shear_modulus = 0. 36 self.lithosphere_density = 0. 37 self.mantle_shear_modulus = 0. 38 self.mantle_density = 0. 39 39 40 41 earth_density= 040 #slr 41 self.earth_density = 0 42 42 43 44 45 43 #set default parameters: 44 self.setdefaultparameters() 45 #}}} 46 46 47 def __repr__(self):# {{{48 string=" Materials:"49 string="%s\n%s"%(string,fielddisplay(self,'rho_ice','ice density [kg/m^3]'))50 string="%s\n%s"%(string,fielddisplay(self,'rho_water','ocean water density [kg/m^3]'))51 string="%s\n%s"%(string,fielddisplay(self,'rho_freshwater','fresh water density [kg/m^3]'))52 string="%s\n%s"%(string,fielddisplay(self,'mu_water','water viscosity [N s/m^2]'))53 string="%s\n%s"%(string,fielddisplay(self,'heatcapacity','heat capacity [J/kg/K]'))54 string="%s\n%s"%(string,fielddisplay(self,'thermalconductivity',['ice thermal conductivity [W/m/K]']))55 string="%s\n%s"%(string,fielddisplay(self,'temperateiceconductivity','temperate ice thermal conductivity [W/m/K]'))56 string="%s\n%s"%(string,fielddisplay(self,"effectiveconductivity_averaging","computation of effectiveconductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)"))57 string="%s\n%s"%(string,fielddisplay(self,'meltingpoint','melting point of ice at 1atm in K'))58 string="%s\n%s"%(string,fielddisplay(self,'latentheat','latent heat of fusion [J/kg]'))59 string="%s\n%s"%(string,fielddisplay(self,'beta','rate of change of melting point with pressure [K/Pa]'))60 string="%s\n%s"%(string,fielddisplay(self,'mixed_layer_capacity','mixed layer capacity [W/kg/K]'))61 string="%s\n%s"%(string,fielddisplay(self,'thermal_exchange_velocity','thermal exchange velocity [m/s]'))62 string="%s\n%s"%(string,fielddisplay(self,'rheology_B','flow law parameter [Pa s^(1/3)]'))63 string="%s\n%s"%(string,fielddisplay(self,'rheology_Ec','compressive enhancement factor'))64 string="%s\n%s"%(string,fielddisplay(self,'rheology_Es','shear enhancement factor'))65 string="%s\n%s"%(string,fielddisplay(self,'rheology_law',['law for the temperature dependance of the rheology: ''None'', ''BuddJacka'', ''Cuffey'', ''CuffeyTemperate'', ''Paterson'', ''Arrhenius'' or ''LliboutryDuval''']))66 string="%s\n%s"%(string,fielddisplay(self,'lithosphere_shear_modulus','Lithosphere shear modulus [Pa]'))67 string="%s\n%s"%(string,fielddisplay(self,'lithosphere_density','Lithosphere density [g/cm^-3]'))68 string="%s\n%s"%(string,fielddisplay(self,'mantle_shear_modulus','Mantle shear modulus [Pa]'))69 string="%s\n%s"%(string,fielddisplay(self,'mantle_density','Mantle density [g/cm^-3]'))70 string="%s\n%s"%(string,fielddisplay(self,'earth_density','Mantle density [kg/m^-3]'))71 72 47 def __repr__(self): # {{{ 48 string = " Materials:" 49 string = "%s\n%s" % (string, fielddisplay(self, 'rho_ice', 'ice density [kg / m^3]')) 50 string = "%s\n%s" % (string, fielddisplay(self, 'rho_water', 'ocean water density [kg / m^3]')) 51 string = "%s\n%s" % (string, fielddisplay(self, 'rho_freshwater', 'fresh water density [kg / m^3]')) 52 string = "%s\n%s" % (string, fielddisplay(self, 'mu_water', 'water viscosity [N s / m^2]')) 53 string = "%s\n%s" % (string, fielddisplay(self, 'heatcapacity', 'heat capacity [J / kg / K]')) 54 string = "%s\n%s" % (string, fielddisplay(self, 'thermalconductivity', ['ice thermal conductivity [W / m / K]'])) 55 string = "%s\n%s" % (string, fielddisplay(self, 'temperateiceconductivity', 'temperate ice thermal conductivity [W / m / K]')) 56 string = "%s\n%s" % (string, fielddisplay(self, "effectiveconductivity_averaging", "computation of effectiveconductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)")) 57 string = "%s\n%s" % (string, fielddisplay(self, 'meltingpoint', 'melting point of ice at 1atm in K')) 58 string = "%s\n%s" % (string, fielddisplay(self, 'latentheat', 'latent heat of fusion [J / kg]')) 59 string = "%s\n%s" % (string, fielddisplay(self, 'beta', 'rate of change of melting point with pressure [K / Pa]')) 60 string = "%s\n%s" % (string, fielddisplay(self, 'mixed_layer_capacity', 'mixed layer capacity [W / kg / K]')) 61 string = "%s\n%s" % (string, fielddisplay(self, 'thermal_exchange_velocity', 'thermal exchange velocity [m / s]')) 62 string = "%s\n%s" % (string, fielddisplay(self, 'rheology_B', 'flow law parameter [Pa s^(1 / 3)]')) 63 string = "%s\n%s" % (string, fielddisplay(self, 'rheology_Ec', 'compressive enhancement factor')) 64 string = "%s\n%s" % (string, fielddisplay(self, 'rheology_Es', 'shear enhancement factor')) 65 string = "%s\n%s" % (string, fielddisplay(self, 'rheology_law', ['law for the temperature dependance of the rheology: ''None'', ''BuddJacka'', ''Cuffey'', ''CuffeyTemperate'', ''Paterson'', ''Arrhenius'' or ''LliboutryDuval'''])) 66 string = "%s\n%s" % (string, fielddisplay(self, 'lithosphere_shear_modulus', 'Lithosphere shear modulus [Pa]')) 67 string = "%s\n%s" % (string, fielddisplay(self, 'lithosphere_density', 'Lithosphere density [g / cm^ - 3]')) 68 string = "%s\n%s" % (string, fielddisplay(self, 'mantle_shear_modulus', 'Mantle shear modulus [Pa]')) 69 string = "%s\n%s" % (string, fielddisplay(self, 'mantle_density', 'Mantle density [g / cm^ - 3]')) 70 string = "%s\n%s" % (string, fielddisplay(self, 'earth_density', 'Mantle density [kg / m^ - 3]')) 71 return string 72 #}}} 73 73 74 def extrude(self,md):# {{{75 self.rheology_B=project3d(md,'vector',self.rheology_B,'type','node')76 self.rheology_Ec=project3d(md,'vector',self.rheology_Ec,'type','node')77 self.rheology_Es=project3d(md,'vector',self.rheology_Es,'type','node')78 79 74 def extrude(self, md): # {{{ 75 self.rheology_B = project3d(md, 'vector', self.rheology_B, 'type', 'node') 76 self.rheology_Ec = project3d(md, 'vector', self.rheology_Ec, 'type', 'node') 77 self.rheology_Es = project3d(md, 'vector', self.rheology_Es, 'type', 'node') 78 return self 79 #}}} 80 80 81 def setdefaultparameters(self):# {{{82 #ice density (kg/m^3)83 self.rho_ice=917.84 #ocean water density (kg/m^3)85 self.rho_water=1023.86 #fresh water density (kg/m^3)87 self.rho_freshwater=1000.88 #water viscosity (N.s/m^2)89 self.mu_water=0.00178790 #ice heat capacity cp (J/kg/K)91 self.heatcapacity=2093.92 #ice latent heat of fusion L (J/kg)93 self.latentheat=3.34*10**594 #ice thermal conductivity (W/m/K)95 self.thermalconductivity=2.496 #wet ice thermal conductivity (W/m/K)97 self.temperateiceconductivity=.2498 #computation of effective conductivity99 self.effectiveconductivity_averaging=1100 101 self.meltingpoint=273.15102 #rate of change of melting point with pressure (K/Pa)103 self.beta=9.8*10**-8104 #mixed layer (ice-water interface) heat capacity (J/kg/K)105 self.mixed_layer_capacity=3974.106 #thermal exchange velocity (ice-water interface) (m/s)107 self.thermal_exchange_velocity=1.00*10**-4108 109 110 self.rheology_law='Paterson'111 112 self.lithosphere_shear_modulus = 6.7*10**10 # (Pa)113 self.lithosphere_density = 3.32 # (g/cm^-3)114 self.mantle_shear_modulus = 1.45*10**11# (Pa)115 self.mantle_density = 3.34 # (g/cm^-3)116 117 self.earth_density= 5512 # average density of the Earth, (kg/m^3)81 def setdefaultparameters(self): # {{{ 82 #ice density (kg / m^3) 83 self.rho_ice = 917. 84 #ocean water density (kg / m^3) 85 self.rho_water = 1023. 86 #fresh water density (kg / m^3) 87 self.rho_freshwater = 1000. 88 #water viscosity (N.s / m^2) 89 self.mu_water = 0.001787 90 #ice heat capacity cp (J / kg / K) 91 self.heatcapacity = 2093. 92 #ice latent heat of fusion L (J / kg) 93 self.latentheat = 3.34 * 1.0e5 94 #ice thermal conductivity (W / m / K) 95 self.thermalconductivity = 2.4 96 #wet ice thermal conductivity (W / m / K) 97 self.temperateiceconductivity = 0.24 98 #computation of effective conductivity 99 self.effectiveconductivity_averaging = 1 100 #the melting point of ice at 1 atmosphere of pressure in K 101 self.meltingpoint = 273.15 102 #rate of change of melting point with pressure (K / Pa) 103 self.beta = 9.8 * 1.0e-8 104 #mixed layer (ice-water interface) heat capacity (J / kg / K) 105 self.mixed_layer_capacity = 3974. 106 #thermal exchange velocity (ice-water interface) (m / s) 107 self.thermal_exchange_velocity = 1.00 * 1.0e-4 108 #Rheology law: what is the temperature dependence of B with T 109 #available: none, paterson and arrhenius 110 self.rheology_law = 'Paterson' 111 # GIA: 112 self.lithosphere_shear_modulus = 6.7 * 1.0e10 # (Pa) 113 self.lithosphere_density = 3.32 # (g / cm^ - 3) 114 self.mantle_shear_modulus = 1.45 * 1.0e11 # (Pa) 115 self.mantle_density = 3.34 # (g / cm^ - 3) 116 #SLR 117 self.earth_density = 5512 # average density of the Earth, (kg / m^3) 118 118 119 120 119 return self 120 #}}} 121 121 122 def checkconsistency(self,md,solution,analyses):# {{{123 md = checkfield(md,'fieldname','materials.rho_ice','>',0)124 md = checkfield(md,'fieldname','materials.rho_water','>',0)125 md = checkfield(md,'fieldname','materials.rho_freshwater','>',0)126 md = checkfield(md,'fieldname','materials.mu_water','>',0)127 md = checkfield(md,'fieldname','materials.rheology_B','>',0,'size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)128 md = checkfield(md,'fieldname','materials.rheology_Ec','>',0,'size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)129 md = checkfield(md,'fieldname','materials.rheology_Es','>',0,'size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)130 md = checkfield(md,'fieldname','materials.rheology_law','values',['None','BuddJacka', 'Cuffey','CuffeyTemperate','Paterson','Arrhenius','LliboutryDuval'])131 md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0,1,2])122 def checkconsistency(self, md, solution, analyses): # {{{ 123 md = checkfield(md, 'fieldname', 'materials.rho_ice', '>', 0) 124 md = checkfield(md, 'fieldname', 'materials.rho_water', '>', 0) 125 md = checkfield(md, 'fieldname', 'materials.rho_freshwater', '>', 0) 126 md = checkfield(md, 'fieldname', 'materials.mu_water', '>', 0) 127 md = checkfield(md, 'fieldname', 'materials.rheology_B', '>', 0, 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 128 md = checkfield(md, 'fieldname', 'materials.rheology_Ec', '>', 0, 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 129 md = checkfield(md, 'fieldname', 'materials.rheology_Es', '>', 0, 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 130 md = checkfield(md, 'fieldname', 'materials.rheology_law', 'values', ['None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius', 'LliboutryDuval']) 131 md = checkfield(md, 'fieldname', 'materials.effectiveconductivity_averaging', 'numel', [1], 'values', [0, 1, 2]) 132 132 133 134 md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',1)135 md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',1)136 md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',1)137 md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1)133 if 'GiaAnalysis' in analyses: 134 md = checkfield(md, 'fieldname', 'materials.lithosphere_shear_modulus', '>', 0, 'numel', 1) 135 md = checkfield(md, 'fieldname', 'materials.lithosphere_density', '>', 0, 'numel', 1) 136 md = checkfield(md, 'fieldname', 'materials.mantle_shear_modulus', '>', 0, 'numel', 1) 137 md = checkfield(md, 'fieldname', 'materials.mantle_density', '>', 0, 'numel', 1) 138 138 139 140 md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1)139 if 'SealevelriseAnalysis' in analyses: 140 md = checkfield(md, 'fieldname', 'materials.earth_density', '>', 0, 'numel', 1) 141 141 142 143 142 return md 143 # }}} 144 144 145 def marshall(self,prefix,md,fid):# {{{146 WriteData(fid,prefix,'name','md.materials.type','data',2,'format','Integer')147 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_ice','format','Double')148 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_water','format','Double')149 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_freshwater','format','Double')150 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mu_water','format','Double')151 WriteData(fid,prefix,'object',self,'class','materials','fieldname','heatcapacity','format','Double')152 WriteData(fid,prefix,'object',self,'class','materials','fieldname','latentheat','format','Double')153 WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double')154 WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double')155 WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer')156 WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double')157 WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double')158 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mixed_layer_capacity','format','Double')159 WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermal_exchange_velocity','format','Double')160 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1)161 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_Ec','format','DoubleMat','mattype',1)162 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_Es','format','DoubleMat','mattype',1)163 WriteData(fid,prefix,'data',self.rheology_law,'name','md.materials.rheology_law','format','String')164 WriteData(fid,prefix,'object',self,'class','materials','fieldname','lithosphere_shear_modulus','format','Double')165 WriteData(fid,prefix,'object',self,'class','materials','fieldname','lithosphere_density','format','Double','scale',10^3)166 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double')167 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10**3)168 WriteData(fid,prefix,'object',self,'class','materials','fieldname','earth_density','format','Double')169 145 def marshall(self, prefix, md, fid): # {{{ 146 WriteData(fid, prefix, 'name', 'md.materials.type', 'data', 2, 'format', 'Integer') 147 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_ice', 'format', 'Double') 148 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_water', 'format', 'Double') 149 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_freshwater', 'format', 'Double') 150 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mu_water', 'format', 'Double') 151 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'heatcapacity', 'format', 'Double') 152 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'latentheat', 'format', 'Double') 153 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'thermalconductivity', 'format', 'Double') 154 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'temperateiceconductivity', 'format', 'Double') 155 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'effectiveconductivity_averaging', 'format', 'Integer') 156 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'meltingpoint', 'format', 'Double') 157 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'beta', 'format', 'Double') 158 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mixed_layer_capacity', 'format', 'Double') 159 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'thermal_exchange_velocity', 'format', 'Double') 160 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_B', 'format', 'DoubleMat', 'mattype', 1) 161 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_Ec', 'format', 'DoubleMat', 'mattype', 1) 162 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_Es', 'format', 'DoubleMat', 'mattype', 1) 163 WriteData(fid, prefix, 'data', self.rheology_law, 'name', 'md.materials.rheology_law', 'format', 'String') 164 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'lithosphere_shear_modulus', 'format', 'Double') 165 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'lithosphere_density', 'format', 'Double', 'scale', 1.0e3) 166 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mantle_shear_modulus', 'format', 'Double') 167 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mantle_density', 'format', 'Double', 'scale', 1.0e3) 168 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'earth_density', 'format', 'Double') 169 # }}} -
issm/trunk-jpl/src/m/classes/matice.py
r24092 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class matice(object): 7 8 8 """ 9 MATICE class definition 9 10 10 11 matice=matice(); 12 11 Usage: 12 matice = matice() 13 """ 13 14 14 def __init__(self):# {{{15 self.rho_ice= 0.16 self.rho_water= 0.17 self.rho_freshwater= 0.18 self.mu_water= 0.19 self.heatcapacity= 0.20 self.latentheat= 0.21 self.thermalconductivity= 0.22 self.temperateiceconductivity= 0.23 24 self.meltingpoint= 0.25 self.beta= 0.26 self.mixed_layer_capacity= 0.27 28 self.rheology_B= float('NaN')29 self.rheology_n= float('NaN')30 self.rheology_law= ''15 def __init__(self): # {{{ 16 self.rho_ice = 0. 17 self.rho_water = 0. 18 self.rho_freshwater = 0. 19 self.mu_water = 0. 20 self.heatcapacity = 0. 21 self.latentheat = 0. 22 self.thermalconductivity = 0. 23 self.temperateiceconductivity = 0. 24 self.effectiveconductivity_averaging = 0 25 self.meltingpoint = 0. 26 self.beta = 0. 27 self.mixed_layer_capacity = 0. 28 self.thermal_exchange_velocity = 0. 29 self.rheology_B = float('NaN') 30 self.rheology_n = float('NaN') 31 self.rheology_law = '' 31 32 32 33 self.lithosphere_shear_modulus= 0.34 self.lithosphere_density= 0.35 self.mantle_shear_modulus= 0.36 self.mantle_density= 0.33 #giaivins: 34 self.lithosphere_shear_modulus = 0. 35 self.lithosphere_density = 0. 36 self.mantle_shear_modulus = 0. 37 self.mantle_density = 0. 37 38 38 #SLR 39 self.earth_density= 5512; 39 #SLR 40 self.earth_density = 5512 41 self.setdefaultparameters() 42 #}}} 40 43 41 self.setdefaultparameters() 42 #}}} 44 def __repr__(self): # {{{ 45 string = " Materials:" 43 46 44 def __repr__(self): # {{{ 45 string=" Materials:" 47 string = "%s\n%s" % (string, fielddisplay(self, "rho_ice", "ice density [kg / m^3]")) 48 string = "%s\n%s" % (string, fielddisplay(self, "rho_water", "water density [kg / m^3]")) 49 string = "%s\n%s" % (string, fielddisplay(self, "rho_freshwater", "fresh water density [kg / m^3]")) 50 string = "%s\n%s" % (string, fielddisplay(self, "mu_water", "water viscosity [N s / m^2]")) 51 string = "%s\n%s" % (string, fielddisplay(self, "heatcapacity", "heat capacity [J / kg / K]")) 52 string = "%s\n%s" % (string, fielddisplay(self, "thermalconductivity", "ice thermal conductivity [W / m / K]")) 53 string = "%s\n%s" % (string, fielddisplay(self, "temperateiceconductivity", "temperate ice thermal conductivity [W / m / K]")) 54 string = "%s\n%s" % (string, fielddisplay(self, "effectiveconductivity_averaging", "computation of effectiveconductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)")) 55 string = "%s\n%s" % (string, fielddisplay(self, "meltingpoint", "melting point of ice at 1atm in K")) 56 string = "%s\n%s" % (string, fielddisplay(self, "latentheat", "latent heat of fusion [J / m^3]")) 57 string = "%s\n%s" % (string, fielddisplay(self, "beta", "rate of change of melting point with pressure [K / Pa]")) 58 string = "%s\n%s" % (string, fielddisplay(self, "mixed_layer_capacity", "mixed layer capacity [W / kg / K]")) 59 string = "%s\n%s" % (string, fielddisplay(self, "thermal_exchange_velocity", "thermal exchange velocity [m / s]")) 60 string = "%s\n%s" % (string, fielddisplay(self, "rheology_B", "flow law parameter [Pa s^(1 / n)]")) 61 string = "%s\n%s" % (string, fielddisplay(self, "rheology_n", "Glen's flow law exponent")) 62 string = "%s\n%s" % (string, fielddisplay(self, "rheology_law", "law for the temperature dependance of the rheology: 'None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius', 'LliboutryDuval', 'NyeCO2', or 'NyeH2O'")) 63 string = "%s\n%s" % (string, fielddisplay(self, "lithosphere_shear_modulus", "Lithosphere shear modulus [Pa]")) 64 string = "%s\n%s" % (string, fielddisplay(self, "lithosphere_density", "Lithosphere density [g / cm^ - 3]")) 65 string = "%s\n%s" % (string, fielddisplay(self, "mantle_shear_modulus", "Mantle shear modulus [Pa]")) 66 string = "%s\n%s" % (string, fielddisplay(self, "mantle_density", "Mantle density [g / cm^ - 3]")) 67 string = "%s\n%s" % (string, fielddisplay(self, "earth_density", "Mantle density [kg / m^ - 3]")) 68 return string 69 #}}} 46 70 47 string="%s\n%s"%(string,fielddisplay(self,"rho_ice","ice density [kg/m^3]")) 48 string="%s\n%s"%(string,fielddisplay(self,"rho_water","water density [kg/m^3]")) 49 string="%s\n%s"%(string,fielddisplay(self,"rho_freshwater","fresh water density [kg/m^3]")) 50 string="%s\n%s"%(string,fielddisplay(self,"mu_water","water viscosity [N s/m^2]")) 51 string="%s\n%s"%(string,fielddisplay(self,"heatcapacity","heat capacity [J/kg/K]")) 52 string="%s\n%s"%(string,fielddisplay(self,"thermalconductivity","ice thermal conductivity [W/m/K]")) 53 string="%s\n%s"%(string,fielddisplay(self,"temperateiceconductivity","temperate ice thermal conductivity [W/m/K]")) 54 string="%s\n%s"%(string,fielddisplay(self,"effectiveconductivity_averaging","computation of effectiveconductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)")) 55 string="%s\n%s"%(string,fielddisplay(self,"meltingpoint","melting point of ice at 1atm in K")) 56 string="%s\n%s"%(string,fielddisplay(self,"latentheat","latent heat of fusion [J/m^3]")) 57 string="%s\n%s"%(string,fielddisplay(self,"beta","rate of change of melting point with pressure [K/Pa]")) 58 string="%s\n%s"%(string,fielddisplay(self,"mixed_layer_capacity","mixed layer capacity [W/kg/K]")) 59 string="%s\n%s"%(string,fielddisplay(self,"thermal_exchange_velocity","thermal exchange velocity [m/s]")) 60 string="%s\n%s"%(string,fielddisplay(self,"rheology_B","flow law parameter [Pa s^(1/n)]")) 61 string="%s\n%s"%(string,fielddisplay(self,"rheology_n","Glen's flow law exponent")) 62 string="%s\n%s"%(string,fielddisplay(self,"rheology_law","law for the temperature dependance of the rheology: 'None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius', 'LliboutryDuval', 'NyeCO2', or 'NyeH2O'")) 63 string="%s\n%s"%(string,fielddisplay(self,"lithosphere_shear_modulus","Lithosphere shear modulus [Pa]")) 64 string="%s\n%s"%(string,fielddisplay(self,"lithosphere_density","Lithosphere density [g/cm^-3]")) 65 string="%s\n%s"%(string,fielddisplay(self,"mantle_shear_modulus","Mantle shear modulus [Pa]")) 66 string="%s\n%s"%(string,fielddisplay(self,"mantle_density","Mantle density [g/cm^-3]")) 67 string="%s\n%s"%(string,fielddisplay(self,"earth_density","Mantle density [kg/m^-3]")) 68 return string 69 #}}} 71 def extrude(self, md): # {{{ 72 self.rheology_B = project3d(md, 'vector', self.rheology_B, 'type', 'node') 73 self.rheology_n = project3d(md, 'vector', self.rheology_n, 'type', 'element') 74 return self 75 #}}} 70 76 71 def extrude(self,md): # {{{ 72 self.rheology_B=project3d(md,'vector',self.rheology_B,'type','node') 73 self.rheology_n=project3d(md,'vector',self.rheology_n,'type','element') 74 return self 75 #}}} 77 def setdefaultparameters(self): # {{{ 78 #ice density (kg / m^3) 79 self.rho_ice = 917. 80 #ocean water density (kg / m^3) 81 self.rho_water = 1023. 82 #fresh water density (kg / m^3) 83 self.rho_freshwater = 1000. 84 #water viscosity (N.s / m^2) 85 self.mu_water = 0.001787 86 #ice heat capacity cp (J / kg / K) 87 self.heatcapacity = 2093. 88 #ice latent heat of fusion L (J / kg) 89 self.latentheat = 3.34 * 1.0e5 90 #ice thermal conductivity (W / m / K) 91 self.thermalconductivity = 2.4 92 #computation of effective conductivity 93 self.effectiveconductivity_averaging = 1 94 #temperate ice thermal conductivity (W / m / K) 95 self.temperateiceconductivity = 0.24 96 #the melting point of ice at 1 atmosphere of pressure in K 97 self.meltingpoint = 273.15 98 #rate of change of melting point with pressure (K / Pa) 99 self.beta = 9.8 * 1.0e-8 100 #mixed layer (ice-water interface) heat capacity (J / kg / K) 101 self.mixed_layer_capacity = 3974. 102 #thermal exchange velocity (ice-water interface) (m / s) 103 self.thermal_exchange_velocity = 1.00 * 1.0e-4 104 #Rheology law: what is the temperature dependence of B with T 105 #available: none, paterson and arrhenius 106 self.rheology_law = 'Paterson' 76 107 77 def setdefaultparameters(self): # {{{ 78 #ice density (kg/m^3) 79 self.rho_ice=917. 80 #ocean water density (kg/m^3) 81 self.rho_water=1023. 82 #fresh water density (kg/m^3) 83 self.rho_freshwater=1000. 84 #water viscosity (N.s/m^2) 85 self.mu_water=0.001787 86 #ice heat capacity cp (J/kg/K) 87 self.heatcapacity=2093. 88 #ice latent heat of fusion L (J/kg) 89 self.latentheat=3.34*10**5 90 #ice thermal conductivity (W/m/K) 91 self.thermalconductivity=2.4 92 #computation of effective conductivity 93 self.effectiveconductivity_averaging=1 94 #temperate ice thermal conductivity (W/m/K) 95 self.temperateiceconductivity=0.24 96 #the melting point of ice at 1 atmosphere of pressure in K 97 self.meltingpoint=273.15 98 #rate of change of melting point with pressure (K/Pa) 99 self.beta=9.8*10**-8 100 #mixed layer (ice-water interface) heat capacity (J/kg/K) 101 self.mixed_layer_capacity=3974. 102 #thermal exchange velocity (ice-water interface) (m/s) 103 self.thermal_exchange_velocity=1.00*10**-4 104 #Rheology law: what is the temperature dependence of B with T 105 #available: none, paterson and arrhenius 106 self.rheology_law='Paterson' 108 # GIA: 109 self.lithosphere_shear_modulus = 6.7 * 1.0e10 # (Pa) 110 self.lithosphere_density = 3.32 # (g / cm^ - 3) 111 self.mantle_shear_modulus = 1.45 * 1.0e11 # (Pa) 112 self.mantle_density = 3.34 # (g / cm^ - 3) 107 113 108 # GIA: 109 self.lithosphere_shear_modulus = 6.7*10**10 # (Pa) 110 self.lithosphere_density = 3.32 # (g/cm^-3) 111 self.mantle_shear_modulus = 1.45*10**11 # (Pa) 112 self.mantle_density = 3.34 # (g/cm^-3) 114 #SLR 115 self.earth_density = 5512 # average density of the Earth, (kg / m^3) 116 return self 117 #}}} 113 118 114 #SLR 115 self.earth_density= 5512; # average density of the Earth, (kg/m^3) 116 return self 117 #}}} 119 def checkconsistency(self, md, solution, analyses): # {{{ 120 md = checkfield(md, 'fieldname', 'materials.rho_ice', '>', 0) 121 md = checkfield(md, 'fieldname', 'materials.rho_water', '>', 0) 122 md = checkfield(md, 'fieldname', 'materials.rho_freshwater', '>', 0) 123 md = checkfield(md, 'fieldname', 'materials.mu_water', '>', 0) 124 md = checkfield(md, 'fieldname', 'materials.rheology_B', '>', 0, 'timeseries', 1, 'NaN', 1, 'Inf', 1) 125 md = checkfield(md, 'fieldname', 'materials.rheology_n', '>', 0, 'size', [md.mesh.numberofelements]) 126 md = checkfield(md, 'fieldname', 'materials.rheology_law', 'values', ['None', 'BuddJacka', 'Cuffey', 'CuffeyTemperate', 'Paterson', 'Arrhenius', 'LliboutryDuval', 'NyeCO2', 'NyeH2O']) 127 md = checkfield(md, 'fieldname', 'materials.effectiveconductivity_averaging', 'numel', [1], 'values', [0, 1, 2]) 128 md = checkfield(md, 'fieldname', 'materials.lithosphere_shear_modulus', '>', 0, 'numel', [1]) 129 md = checkfield(md, 'fieldname', 'materials.lithosphere_density', '>', 0, 'numel', [1]) 130 md = checkfield(md, 'fieldname', 'materials.mantle_shear_modulus', '>', 0, 'numel', [1]) 131 md = checkfield(md, 'fieldname', 'materials.mantle_density', '>', 0, 'numel', [1]) 132 md = checkfield(md, 'fieldname', 'materials.earth_density', '>', 0, 'numel', [1]) 133 return md 134 # }}} 118 135 119 def checkconsistency(self,md,solution,analyses): # {{{ 120 md = checkfield(md,'fieldname','materials.rho_ice','>',0) 121 md = checkfield(md,'fieldname','materials.rho_water','>',0) 122 md = checkfield(md,'fieldname','materials.rho_freshwater','>',0) 123 md = checkfield(md,'fieldname','materials.mu_water','>',0) 124 md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1,'Inf',1) 125 md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements]) 126 md = checkfield(md,'fieldname','materials.rheology_law','values',['None','BuddJacka','Cuffey','CuffeyTemperate','Paterson','Arrhenius','LliboutryDuval','NyeCO2','NyeH2O']) 127 md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0,1,2]) 128 md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',[1]); 129 md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',[1]); 130 md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',[1]); 131 md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',[1]); 132 md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',[1]); 133 return md 134 # }}} 136 def marshall(self, prefix, md, fid): # {{{ 137 WriteData(fid, prefix, 'name', 'md.materials.type', 'data', 3, 'format', 'Integer') 138 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_ice', 'format', 'Double') 139 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_water', 'format', 'Double') 140 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rho_freshwater', 'format', 'Double') 141 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mu_water', 'format', 'Double') 142 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'heatcapacity', 'format', 'Double') 143 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'latentheat', 'format', 'Double') 144 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'thermalconductivity', 'format', 'Double') 145 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'temperateiceconductivity', 'format', 'Double') 146 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'effectiveconductivity_averaging', 'format', 'Integer') 147 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'meltingpoint', 'format', 'Double') 148 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'beta', 'format', 'Double') 149 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mixed_layer_capacity', 'format', 'Double') 150 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'thermal_exchange_velocity', 'format', 'Double') 151 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_B', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 152 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'rheology_n', 'format', 'DoubleMat', 'mattype', 2) 153 WriteData(fid, prefix, 'data', self.rheology_law, 'name', 'md.materials.rheology_law', 'format', 'String') 135 154 136 def marshall(self,prefix,md,fid): # {{{ 137 WriteData(fid,prefix,'name','md.materials.type','data',3,'format','Integer'); 138 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_ice','format','Double') 139 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_water','format','Double') 140 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_freshwater','format','Double') 141 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mu_water','format','Double') 142 WriteData(fid,prefix,'object',self,'class','materials','fieldname','heatcapacity','format','Double') 143 WriteData(fid,prefix,'object',self,'class','materials','fieldname','latentheat','format','Double') 144 WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double') 145 WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double') 146 WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer') 147 WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double') 148 WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double') 149 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mixed_layer_capacity','format','Double') 150 WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermal_exchange_velocity','format','Double') 151 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 152 WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2) 153 WriteData(fid,prefix,'data',self.rheology_law,'name','md.materials.rheology_law','format','String') 155 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'lithosphere_shear_modulus', 'format', 'Double') 156 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'lithosphere_density', 'format', 'Double', 'scale', 10.**3.) 157 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mantle_shear_modulus', 'format', 'Double') 158 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'mantle_density', 'format', 'Double', 'scale', 10.**3.) 159 WriteData(fid, prefix, 'object', self, 'class', 'materials', 'fieldname', 'earth_density', 'format', 'Double') 154 160 155 WriteData(fid,prefix,'object',self,'class','materials','fieldname','lithosphere_shear_modulus','format','Double'); 156 WriteData(fid,prefix,'object',self,'class','materials','fieldname','lithosphere_density','format','Double','scale',10.**3.); 157 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double'); 158 WriteData(fid,prefix,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10.**3.); 159 WriteData(fid,prefix,'object',self,'class','materials','fieldname','earth_density','format','Double'); 160 161 # }}} 161 # }}} -
issm/trunk-jpl/src/m/classes/mesh2d.py
r22879 r24213 5 5 from WriteData import WriteData 6 6 7 7 8 class mesh2d(object): 8 9 9 """ 10 MESH2D class definition 10 11 11 12 mesh2d=mesh2d(); 13 12 Usage: 13 mesh2d = mesh2d() 14 """ 14 15 15 def __init__(self): # {{{ 16 self.x = float('NaN'); 17 self.y = float('NaN'); 18 self.elements = float('NaN'); 19 self.numberofelements = 0; 20 self.numberofvertices = 0; 21 self.numberofedges = 0; 22 23 self.lat = float('NaN'); 24 self.long = float('NaN'); 25 self.epsg = 0; 26 self.scale_factor = float('NaN'); 16 def __init__(self): # {{{ 17 self.x = float('NaN') 18 self.y = float('NaN') 19 self.elements = float('NaN') 20 self.numberofelements = 0 21 self.numberofvertices = 0 22 self.numberofedges = 0 27 23 28 self.vertexonboundary = float('NaN'); 29 self.edges = float('NaN'); 30 self.segments = float('NaN'); 31 self.segmentmarkers = float('NaN'); 32 self.vertexconnectivity = float('NaN'); 33 self.elementconnectivity = float('NaN'); 34 self.average_vertex_connectivity = 0; 24 self.lat = float('NaN') 25 self.long = float('NaN') 26 self.epsg = 0 27 self.scale_factor = float('NaN') 35 28 36 self.extractedvertices = float('NaN'); 37 self.extractedelements = float('NaN'); 29 self.vertexonboundary = float('NaN') 30 self.edges = float('NaN') 31 self.segments = float('NaN') 32 self.segmentmarkers = float('NaN') 33 self.vertexconnectivity = float('NaN') 34 self.elementconnectivity = float('NaN') 35 self.average_vertex_connectivity = 0 38 36 39 #set defaults 40 self.setdefaultparameters()37 self.extractedvertices = float('NaN') 38 self.extractedelements = float('NaN') 41 39 42 #}}} 43 def __repr__(self): # {{{ 44 string=" 2D tria Mesh (horizontal):" 40 #set defaults 41 self.setdefaultparameters() 45 42 46 string="%s\n%s"%(string,"\n Elements and vertices:") 47 string="%s\n%s"%(string,fielddisplay(self,"numberofelements","number of elements")) 48 string="%s\n%s"%(string,fielddisplay(self,"numberofvertices","number of vertices")) 49 string="%s\n%s"%(string,fielddisplay(self,"elements","vertex indices of the mesh elements")) 50 string="%s\n%s"%(string,fielddisplay(self,"x","vertices x coordinate [m]")) 51 string="%s\n%s"%(string,fielddisplay(self,"y","vertices y coordinate [m]")) 52 string="%s\n%s"%(string,fielddisplay(self,"edges","edges of the 2d mesh (vertex1 vertex2 element1 element2)")) 53 string="%s\n%s"%(string,fielddisplay(self,"numberofedges","number of edges of the 2d mesh")) 43 #}}} 54 44 55 string="%s%s"%(string,"\n\n Properties:") 56 string="%s\n%s"%(string,fielddisplay(self,"vertexonboundary","vertices on the boundary of the domain flag list")) 57 string="%s\n%s"%(string,fielddisplay(self,"segments","edges on domain boundary (vertex1 vertex2 element)")) 58 string="%s\n%s"%(string,fielddisplay(self,"segmentmarkers","number associated to each segment")) 59 string="%s\n%s"%(string,fielddisplay(self,"vertexconnectivity","list of elements connected to vertex_i")) 60 string="%s\n%s"%(string,fielddisplay(self,"elementconnectivity","list of elements adjacent to element_i")) 61 string="%s\n%s"%(string,fielddisplay(self,"average_vertex_connectivity","average number of vertices connected to one vertex")) 45 def __repr__(self): # {{{ 46 string = " 2D tria Mesh (horizontal):" 62 47 63 string="%s%s"%(string,"\n\n Extracted model:") 64 string="%s\n%s"%(string,fielddisplay(self,"extractedvertices","vertices extracted from the model")) 65 string="%s\n%s"%(string,fielddisplay(self,"extractedelements","elements extracted from the model")) 48 string = "%s\n%s" % (string, "\n Elements and vertices:") 49 string = "%s\n%s" % (string, fielddisplay(self, "numberofelements", "number of elements")) 50 string = "%s\n%s" % (string, fielddisplay(self, "numberofvertices", "number of vertices")) 51 string = "%s\n%s" % (string, fielddisplay(self, "elements", "vertex indices of the mesh elements")) 52 string = "%s\n%s" % (string, fielddisplay(self, "x", "vertices x coordinate [m]")) 53 string = "%s\n%s" % (string, fielddisplay(self, "y", "vertices y coordinate [m]")) 54 string = "%s\n%s" % (string, fielddisplay(self, "edges", "edges of the 2d mesh (vertex1 vertex2 element1 element2)")) 55 string = "%s\n%s" % (string, fielddisplay(self, "numberofedges", "number of edges of the 2d mesh")) 66 56 67 string="%s%s"%(string,"\n\n Projection:") 68 string="%s\n%s"%(string,fielddisplay(self,"lat","vertices latitude [degrees]")) 69 string="%s\n%s"%(string,fielddisplay(self,"long","vertices longitude [degrees]")) 70 string="%s\n%s"%(string,fielddisplay(self,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)")) 71 string="%s\n%s"%(string,fielddisplay(self,"scale_factor","Projection correction for volume, area, etc. computation")) 72 return string 73 #}}} 74 def setdefaultparameters(self): # {{{ 75 76 #the connectivity is the averaged number of nodes linked to a 77 #given node through an edge. This connectivity is used to initially 78 #allocate memory to the stiffness matrix. A value of 16 seems to 79 #give a good memory/time ration. This value can be checked in 80 #trunk/test/Miscellaneous/runme.m 81 self.average_vertex_connectivity=25 57 string = "%s%s" % (string, "\n\n Properties:") 58 string = "%s\n%s" % (string, fielddisplay(self, "vertexonboundary", "vertices on the boundary of the domain flag list")) 59 string = "%s\n%s" % (string, fielddisplay(self, "segments", "edges on domain boundary (vertex1 vertex2 element)")) 60 string = "%s\n%s" % (string, fielddisplay(self, "segmentmarkers", "number associated to each segment")) 61 string = "%s\n%s" % (string, fielddisplay(self, "vertexconnectivity", "list of elements connected to vertex_i")) 62 string = "%s\n%s" % (string, fielddisplay(self, "elementconnectivity", "list of elements adjacent to element_i")) 63 string = "%s\n%s" % (string, fielddisplay(self, "average_vertex_connectivity", "average number of vertices connected to one vertex")) 82 64 83 return self 84 #}}} 85 def checkconsistency(self,md,solution,analyses): # {{{ 86 if(solution=='LoveSolution'): 87 return 65 string = "%s%s" % (string, "\n\n Extracted model:") 66 string = "%s\n%s" % (string, fielddisplay(self, "extractedvertices", "vertices extracted from the model")) 67 string = "%s\n%s" % (string, fielddisplay(self, "extractedelements", "elements extracted from the model")) 88 68 89 md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 90 md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 91 md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',np.arange(1,md.mesh.numberofvertices+1)) 92 md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3]) 93 if np.any(np.logical_not(m.ismember(np.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))): 94 md.checkmessage("orphan nodes have been found. Check the mesh outline") 95 md = checkfield(md,'fieldname','mesh.numberofelements','>',0) 96 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0) 97 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d") 98 md = checkfield(md,'fieldname','mesh.segments','NaN',1,'Inf',1,'>',0,'size',[np.nan,3]); 99 if(np.size(self.scale_factor)>1): 100 md = checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 101 102 if solution=='ThermalSolution': 103 md.checkmessage("thermal not supported for 2d mesh") 69 string = "%s%s" % (string, "\n\n Projection:") 70 string = "%s\n%s" % (string, fielddisplay(self, "lat", "vertices latitude [degrees]")) 71 string = "%s\n%s" % (string, fielddisplay(self, "long", "vertices longitude [degrees]")) 72 string = "%s\n%s" % (string, fielddisplay(self, "epsg", "EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)")) 73 string = "%s\n%s" % (string, fielddisplay(self, "scale_factor", "Projection correction for volume, area, etc. computation")) 74 return string 75 #}}} 104 76 105 return md 106 # }}} 107 def domaintype(self): # {{{ 108 return "2Dhorizontal" 109 #}}} 110 def dimension(self): # {{{ 111 return 2 112 #}}} 113 def elementtype(self): # {{{ 114 return "Tria" 115 #}}} 116 def marshall(self,prefix,md,fid): # {{{ 117 WriteData(fid,prefix,'name','md.mesh.domain_type','data',"Domain"+self.domaintype(),'format','String'); 118 WriteData(fid,prefix,'name','md.mesh.domain_dimension','data',self.dimension(),'format','Integer'); 119 WriteData(fid,prefix,'name','md.mesh.elementtype','data',self.elementtype(),'format','String'); 120 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','x','format','DoubleMat','mattype',1) 121 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','y','format','DoubleMat','mattype',1) 122 WriteData(fid,prefix,'name','md.mesh.z','data',np.zeros(self.numberofvertices),'format','DoubleMat','mattype',1); 123 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2) 124 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofelements','format','Integer') 125 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer') 126 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer') 127 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1) 128 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3) 129 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1) 130 if md.transient.isoceancoupling: 131 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','lat','format','DoubleMat','mattype',1) 132 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','long','format','DoubleMat','mattype',1) 133 # }}} 77 def setdefaultparameters(self): # {{{ 78 #the connectivity is the averaged number of nodes linked to a 79 #given node through an edge. This connectivity is used to initially 80 #allocate memory to the stiffness matrix. A value of 16 seems to 81 #give a good memory / time ration. This value can be checked in 82 #trunk / test / Miscellaneous / runme.m 83 self.average_vertex_connectivity = 25 84 85 return self 86 #}}} 87 88 def checkconsistency(self, md, solution, analyses): # {{{ 89 if(solution == 'LoveSolution'): 90 return 91 92 md = checkfield(md, 'fieldname', 'mesh.x', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 93 md = checkfield(md, 'fieldname', 'mesh.y', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 94 md = checkfield(md, 'fieldname', 'mesh.elements', 'NaN', 1, 'Inf', 1, '>', 0, 'values', np.arange(1, md.mesh.numberofvertices + 1)) 95 md = checkfield(md, 'fieldname', 'mesh.elements', 'size', [md.mesh.numberofelements, 3]) 96 if np.any(np.logical_not(m.ismember(np.arange(1, md.mesh.numberofvertices + 1), md.mesh.elements))): 97 md.checkmessage("orphan nodes have been found. Check the mesh outline") 98 md = checkfield(md, 'fieldname', 'mesh.numberofelements', '>', 0) 99 md = checkfield(md, 'fieldname', 'mesh.numberofvertices', '>', 0) 100 md = checkfield(md, 'fieldname', 'mesh.average_vertex_connectivity', '>=', 9, 'message', "'mesh.average_vertex_connectivity' should be at least 9 in 2d") 101 md = checkfield(md, 'fieldname', 'mesh.segments', 'NaN', 1, 'Inf', 1, '>', 0, 'size', [np.nan, 3]) 102 if(np.size(self.scale_factor) > 1): 103 md = checkfield(md, 'fieldname', 'mesh.scale_factor', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 104 105 if solution == 'ThermalSolution': 106 md.checkmessage("thermal not supported for 2d mesh") 107 108 return md 109 # }}} 110 111 def domaintype(self): # {{{ 112 return "2Dhorizontal" 113 #}}} 114 115 def dimension(self): # {{{ 116 return 2 117 #}}} 118 119 def elementtype(self): # {{{ 120 return "Tria" 121 #}}} 122 123 def marshall(self, prefix, md, fid): # {{{ 124 WriteData(fid, prefix, 'name', 'md.mesh.domain_type', 'data', "Domain" + self.domaintype(), 'format', 'String') 125 WriteData(fid, prefix, 'name', 'md.mesh.domain_dimension', 'data', self.dimension(), 'format', 'Integer') 126 WriteData(fid, prefix, 'name', 'md.mesh.elementtype', 'data', self.elementtype(), 'format', 'String') 127 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'x', 'format', 'DoubleMat', 'mattype', 1) 128 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'y', 'format', 'DoubleMat', 'mattype', 1) 129 WriteData(fid, prefix, 'name', 'md.mesh.z', 'data', np.zeros(self.numberofvertices), 'format', 'DoubleMat', 'mattype', 1) 130 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'elements', 'format', 'DoubleMat', 'mattype', 2) 131 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'numberofelements', 'format', 'Integer') 132 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'numberofvertices', 'format', 'Integer') 133 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'average_vertex_connectivity', 'format', 'Integer') 134 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'vertexonboundary', 'format', 'DoubleMat', 'mattype', 1) 135 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'segments', 'format', 'DoubleMat', 'mattype', 3) 136 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'scale_factor', 'format', 'DoubleMat', 'mattype', 1) 137 if md.transient.isoceancoupling: 138 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'lat', 'format', 'DoubleMat', 'mattype', 1) 139 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'long', 'format', 'DoubleMat', 'mattype', 1) 140 # }}} -
issm/trunk-jpl/src/m/classes/mesh2dvertical.py
r22879 r24213 5 5 from WriteData import WriteData 6 6 7 7 8 class mesh2dvertical(object): 8 9 9 """ 10 MESH2DVERTICAL class definition 10 11 11 12 mesh2dvertical=mesh2dvertical(); 13 12 Usage: 13 mesh2dvertical = mesh2dvertical() 14 """ 14 15 15 def __init__(self): # {{{ 16 self.x = float('NaN') 17 self.y = float('NaN') 18 self.elements = float('NaN') 19 self.numberofelements = 0 20 self.numberofvertices = 0 21 self.numberofedges = 0 22 23 self.lat = float('NaN') 24 self.long = float('NaN') 25 self.epsg = float('NaN') 26 self.scale_factor = float('NaN'); 16 def __init__(self): # {{{ 17 self.x = float('NaN') 18 self.y = float('NaN') 19 self.elements = float('NaN') 20 self.numberofelements = 0 21 self.numberofvertices = 0 22 self.numberofedges = 0 27 23 28 self.vertexonboundary = float('NaN') 29 self.vertexonbase = float('NaN') 30 self.vertexonsurface = float('NaN') 24 self.lat = float('NaN') 25 self.long = float('NaN') 26 self.epsg = float('NaN') 27 self.scale_factor = float('NaN') 31 28 32 self.edges = float('NaN') 33 self.segments = float('NaN') 34 self.segmentmarkers = float('NaN') 35 self.vertexconnectivity = float('NaN') 36 self.elementconnectivity = float('NaN') 37 self.average_vertex_connectivity = 0 29 self.vertexonboundary = float('NaN') 30 self.vertexonbase = float('NaN') 31 self.vertexonsurface = float('NaN') 38 32 39 #set defaults 40 self.setdefaultparameters() 33 self.edges = float('NaN') 34 self.segments = float('NaN') 35 self.segmentmarkers = float('NaN') 36 self.vertexconnectivity = float('NaN') 37 self.elementconnectivity = float('NaN') 38 self.average_vertex_connectivity = 0 41 39 42 #}}} 43 def __repr__(self): # {{{ 44 string=" 2D tria Mesh (vertical):" 40 #set defaults 41 self.setdefaultparameters() 45 42 46 string="%s\n%s"%(string,"\n Elements and vertices:") 47 string="%s\n%s"%(string,fielddisplay(self,"numberofelements","number of elements")) 48 string="%s\n%s"%(string,fielddisplay(self,"numberofvertices","number of vertices")) 49 string="%s\n%s"%(string,fielddisplay(self,"elements","vertex indices of the mesh elements")) 50 string="%s\n%s"%(string,fielddisplay(self,"x","vertices x coordinate [m]")) 51 string="%s\n%s"%(string,fielddisplay(self,"y","vertices y coordinate [m]")) 52 string="%s\n%s"%(string,fielddisplay(self,"edges","edges of the 2d mesh (vertex1 vertex2 element1 element2)")) 53 string="%s\n%s"%(string,fielddisplay(self,"numberofedges","number of edges of the 2d mesh")) 43 #}}} 44 def __repr__(self): # {{{ 45 string = " 2D tria Mesh (vertical):" 54 46 55 string="%s%s"%(string,"\n\n Properties:") 56 string="%s\n%s"%(string,fielddisplay(self,"vertexonboundary","vertices on the boundary of the domain flag list")) 57 string="%s\n%s"%(string,fielddisplay(self,'vertexonbase','vertices on the bed of the domain flag list')) 58 string="%s\n%s"%(string,fielddisplay(self,'vertexonsurface','vertices on the surface of the domain flag list')) 59 string="%s\n%s"%(string,fielddisplay(self,"segments","edges on domain boundary (vertex1 vertex2 element)")) 60 string="%s\n%s"%(string,fielddisplay(self,"segmentmarkers","number associated to each segment")) 61 string="%s\n%s"%(string,fielddisplay(self,"vertexconnectivity","list of elements connected to vertex_i")) 62 string="%s\n%s"%(string,fielddisplay(self,"elementconnectivity","list of elements adjacent to element_i")) 63 string="%s\n%s"%(string,fielddisplay(self,"average_vertex_connectivity","average number of vertices connected to one vertex")) 47 string = "%s\n%s" % (string, "\n Elements and vertices:") 48 string = "%s\n%s" % (string, fielddisplay(self, "numberofelements", "number of elements")) 49 string = "%s\n%s" % (string, fielddisplay(self, "numberofvertices", "number of vertices")) 50 string = "%s\n%s" % (string, fielddisplay(self, "elements", "vertex indices of the mesh elements")) 51 string = "%s\n%s" % (string, fielddisplay(self, "x", "vertices x coordinate [m]")) 52 string = "%s\n%s" % (string, fielddisplay(self, "y", "vertices y coordinate [m]")) 53 string = "%s\n%s" % (string, fielddisplay(self, "edges", "edges of the 2d mesh (vertex1 vertex2 element1 element2)")) 54 string = "%s\n%s" % (string, fielddisplay(self, "numberofedges", "number of edges of the 2d mesh")) 64 55 65 string="%s%s"%(string,"\n\n Projection:") 66 string="%s\n%s"%(string,fielddisplay(self,"lat","vertices latitude [degrees]")) 67 string="%s\n%s"%(string,fielddisplay(self,"long","vertices longitude [degrees]")) 68 string="%s\n%s"%(string,fielddisplay(self,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)")) 69 string="%s\n%s"%(string,fielddisplay(self,"scale_factor","Projection correction for volume, area, etc. computation")) 70 return string 71 #}}} 72 def setdefaultparameters(self): # {{{ 73 74 #the connectivity is the averaged number of nodes linked to a 75 #given node through an edge. This connectivity is used to initially 76 #allocate memory to the stiffness matrix. A value of 16 seems to 77 #give a good memory/time ration. This value can be checked in 78 #trunk/test/Miscellaneous/runme.m 79 self.average_vertex_connectivity=25. 56 string = "%s%s" % (string, "\n\n Properties:") 57 string = "%s\n%s" % (string, fielddisplay(self, "vertexonboundary", "vertices on the boundary of the domain flag list")) 58 string = "%s\n%s" % (string, fielddisplay(self, 'vertexonbase', 'vertices on the bed of the domain flag list')) 59 string = "%s\n%s" % (string, fielddisplay(self, 'vertexonsurface', 'vertices on the surface of the domain flag list')) 60 string = "%s\n%s" % (string, fielddisplay(self, "segments", "edges on domain boundary (vertex1 vertex2 element)")) 61 string = "%s\n%s" % (string, fielddisplay(self, "segmentmarkers", "number associated to each segment")) 62 string = "%s\n%s" % (string, fielddisplay(self, "vertexconnectivity", "list of elements connected to vertex_i")) 63 string = "%s\n%s" % (string, fielddisplay(self, "elementconnectivity", "list of elements adjacent to element_i")) 64 string = "%s\n%s" % (string, fielddisplay(self, "average_vertex_connectivity", "average number of vertices connected to one vertex")) 80 65 81 return self 82 #}}} 83 def checkconsistency(self,md,solution,analyses): # {{{ 84 if(solution=='LoveSolution'): 85 return 66 string = "%s%s" % (string, "\n\n Projection:") 67 string = "%s\n%s" % (string, fielddisplay(self, "lat", "vertices latitude [degrees]")) 68 string = "%s\n%s" % (string, fielddisplay(self, "long", "vertices longitude [degrees]")) 69 string = "%s\n%s" % (string, fielddisplay(self, "epsg", "EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)")) 70 string = "%s\n%s" % (string, fielddisplay(self, "scale_factor", "Projection correction for volume, area, etc. computation")) 71 return string 72 #}}} 86 73 87 md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 88 md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 89 md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',np.arange(1,md.mesh.numberofvertices+1)) 90 md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3]) 91 if np.any(np.logical_not(m.ismember(np.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))): 92 md.checkmessage("orphan nodes have been found. Check the mesh outline") 93 md = checkfield(md,'fieldname','mesh.numberofelements','>',0) 94 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0) 95 md = checkfield(md,'fieldname','mesh.vertexonbase','size',[md.mesh.numberofvertices],'values',[0,1]) 96 md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1]) 97 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d") 98 if(np.size(self.scale_factor)>1): 99 md = checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 74 def setdefaultparameters(self): # {{{ 75 #the connectivity is the averaged number of nodes linked to a 76 #given node through an edge. This connectivity is used to initially 77 #allocate memory to the stiffness matrix. A value of 16 seems to 78 #give a good memory / time ration. This value can be checked in 79 #trunk / test / Miscellaneous / runme.m 80 self.average_vertex_connectivity = 25. 100 81 101 if solution=='ThermalSolution': 102 md.checkmessage("thermal not supported for 2d mesh") 82 return self 83 #}}} 103 84 104 return md 105 # }}} 106 def domaintype(self): # {{{ 107 return "2Dvertical" 108 #}}} 109 def dimension(self): # {{{ 110 return 2 111 #}}} 112 def elementtype(self): # {{{ 113 return "Tria" 114 #}}} 115 def vertexflags(self,value): # {{{ 116 flags = np.zeros((self.numberofvertices,)) 117 pos = self.segments[np.where(self.segmentmarkers==value),0:2]-1 118 flags[pos] = 1 119 return flags 120 #}}} 121 def marshall(self,prefix,md,fid): # {{{ 122 WriteData(fid,prefix,'name','md.mesh.domain_type','data',"Domain"+self.domaintype(),'format','String'); 123 WriteData(fid,prefix,'name','md.mesh.domain_dimension','data',self.dimension(),'format','Integer'); 124 WriteData(fid,prefix,'name','md.mesh.elementtype','data',self.elementtype(),'format','String'); 125 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','x','format','DoubleMat','mattype',1) 126 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','y','format','DoubleMat','mattype',1) 127 WriteData(fid,prefix,'name','md.mesh.z','data',np.zeros(self.numberofvertices),'format','DoubleMat','mattype',1); 128 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2) 129 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofelements','format','Integer') 130 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer') 131 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','vertexonbase','format','BooleanMat','mattype',1) 132 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','vertexonsurface','format','BooleanMat','mattype',1) 133 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer') 134 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1) 135 # }}} 85 def checkconsistency(self, md, solution, analyses): # {{{ 86 if(solution == 'LoveSolution'): 87 return 88 89 md = checkfield(md, 'fieldname', 'mesh.x', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 90 md = checkfield(md, 'fieldname', 'mesh.y', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 91 md = checkfield(md, 'fieldname', 'mesh.elements', 'NaN', 1, 'Inf', 1, '>', 0, 'values', np.arange(1, md.mesh.numberofvertices + 1)) 92 md = checkfield(md, 'fieldname', 'mesh.elements', 'size', [md.mesh.numberofelements, 3]) 93 if np.any(np.logical_not(m.ismember(np.arange(1, md.mesh.numberofvertices + 1), md.mesh.elements))): 94 md.checkmessage("orphan nodes have been found. Check the mesh outline") 95 md = checkfield(md, 'fieldname', 'mesh.numberofelements', '>', 0) 96 md = checkfield(md, 'fieldname', 'mesh.numberofvertices', '>', 0) 97 md = checkfield(md, 'fieldname', 'mesh.vertexonbase', 'size', [md.mesh.numberofvertices], 'values', [0, 1]) 98 md = checkfield(md, 'fieldname', 'mesh.vertexonsurface', 'size', [md.mesh.numberofvertices], 'values', [0, 1]) 99 md = checkfield(md, 'fieldname', 'mesh.average_vertex_connectivity', '>=', 9, 'message', "'mesh.average_vertex_connectivity' should be at least 9 in 2d") 100 if(np.size(self.scale_factor) > 1): 101 md = checkfield(md, 'fieldname', 'mesh.scale_factor', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 102 103 if solution == 'ThermalSolution': 104 md.checkmessage("thermal not supported for 2d mesh") 105 106 return md 107 # }}} 108 109 def domaintype(self): # {{{ 110 return "2Dvertical" 111 #}}} 112 113 def dimension(self): # {{{ 114 return 2 115 #}}} 116 117 def elementtype(self): # {{{ 118 return "Tria" 119 #}}} 120 121 def vertexflags(self, value): # {{{ 122 flags = np.zeros((self.numberofvertices, )) 123 pos = self.segments[np.where(self.segmentmarkers == value), 0:2] - 1 124 flags[pos] = 1 125 return flags 126 #}}} 127 128 def marshall(self, prefix, md, fid): # {{{ 129 WriteData(fid, prefix, 'name', 'md.mesh.domain_type', 'data', "Domain" + self.domaintype(), 'format', 'String') 130 WriteData(fid, prefix, 'name', 'md.mesh.domain_dimension', 'data', self.dimension(), 'format', 'Integer') 131 WriteData(fid, prefix, 'name', 'md.mesh.elementtype', 'data', self.elementtype(), 'format', 'String') 132 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'x', 'format', 'DoubleMat', 'mattype', 1) 133 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'y', 'format', 'DoubleMat', 'mattype', 1) 134 WriteData(fid, prefix, 'name', 'md.mesh.z', 'data', np.zeros(self.numberofvertices), 'format', 'DoubleMat', 'mattype', 1) 135 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'elements', 'format', 'DoubleMat', 'mattype', 2) 136 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'numberofelements', 'format', 'Integer') 137 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'numberofvertices', 'format', 'Integer') 138 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'vertexonbase', 'format', 'BooleanMat', 'mattype', 1) 139 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'vertexonsurface', 'format', 'BooleanMat', 'mattype', 1) 140 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'average_vertex_connectivity', 'format', 'Integer') 141 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'scale_factor', 'format', 'DoubleMat', 'mattype', 1) 142 # }}} -
issm/trunk-jpl/src/m/classes/mesh3dprisms.py
r22879 r24213 5 5 from WriteData import WriteData 6 6 7 7 8 class mesh3dprisms(object): 8 9 9 """ 10 MESH3DPRISMS class definition 10 11 11 12 mesh3d=mesh3dprisms(); 13 12 Usage: 13 mesh3d = mesh3dprisms() 14 """ 14 15 15 def __init__(self): # {{{ 16 self.x = float('NaN'); 17 self.y = float('NaN'); 18 self.z = float('NaN'); 19 self.elements = float('NaN'); 20 self.numberoflayers = 0; 21 self.numberofelements = 0; 22 self.numberofvertices = 0; 23 24 self.lat = float('NaN'); 25 self.long = float('NaN'); 26 self.epsg = 0; 27 self.scale_factor = float('NaN'); 16 def __init__(self): # {{{ 17 self.x = float('NaN') 18 self.y = float('NaN') 19 self.z = float('NaN') 20 self.elements = float('NaN') 21 self.numberoflayers = 0 22 self.numberofelements = 0 23 self.numberofvertices = 0 28 24 29 self.vertexonbase = float('NaN'); 30 self.vertexonsurface = float('NaN'); 31 self.lowerelements = float('NaN'); 32 self.lowervertex = float('NaN'); 33 self.upperelements = float('NaN'); 34 self.uppervertex = float('NaN'); 35 self.vertexonboundary = float('NaN'); 25 self.lat = float('NaN') 26 self.long = float('NaN') 27 self.epsg = 0 28 self.scale_factor = float('NaN') 36 29 37 self.vertexconnectivity = float('NaN'); 38 self.elementconnectivity = float('NaN'); 39 self.average_vertex_connectivity = 0; 30 self.vertexonbase = float('NaN') 31 self.vertexonsurface = float('NaN') 32 self.lowerelements = float('NaN') 33 self.lowervertex = float('NaN') 34 self.upperelements = float('NaN') 35 self.uppervertex = float('NaN') 36 self.vertexonboundary = float('NaN') 40 37 41 self.x2d = float('NaN'); 42 self.y2d = float('NaN'); 43 self.elements2d = float('NaN'); 44 self.numberofvertices2d = 0; 45 self.numberofelements2d = 0; 38 self.vertexconnectivity = float('NaN') 39 self.elementconnectivity = float('NaN') 40 self.average_vertex_connectivity = 0 46 41 47 self.extractedvertices = float('NaN'); 48 self.extractedelements = float('NaN'); 42 self.x2d = float('NaN') 43 self.y2d = float('NaN') 44 self.elements2d = float('NaN') 45 self.numberofvertices2d = 0 46 self.numberofelements2d = 0 49 47 50 #set defaults 51 self.setdefaultparameters() 52 #}}} 53 def __repr__(self): # {{{ 54 string=" 3D prism Mesh:" 48 self.extractedvertices = float('NaN') 49 self.extractedelements = float('NaN') 55 50 56 string="%s\n%s"%(string,"\n Elements and vertices of the original 2d mesh3dprisms:") 57 58 string="%s\n%s"%(string,fielddisplay(self,"numberofelements2d","number of elements")) 59 string="%s\n%s"%(string,fielddisplay(self,"numberofvertices2d","number of vertices")) 60 string="%s\n%s"%(string,fielddisplay(self,"elements2d","vertex indices of the mesh3dprisms elements")) 61 string="%s\n%s"%(string,fielddisplay(self,"x2d","vertices x coordinate [m]")) 62 string="%s\n%s"%(string,fielddisplay(self,"y2d","vertices y coordinate [m]")) 51 #set defaults 52 self.setdefaultparameters() 53 #}}} 63 54 64 string="%s\n%s"%(string,"\n\n Elements and vertices of the extruded 3d mesh3dprisms:") 65 string="%s\n%s"%(string,fielddisplay(self,"numberofelements","number of elements")) 66 string="%s\n%s"%(string,fielddisplay(self,"numberofvertices","number of vertices")) 67 string="%s\n%s"%(string,fielddisplay(self,"elements","vertex indices of the mesh3dprisms elements")) 68 string="%s\n%s"%(string,fielddisplay(self,"x","vertices x coordinate [m]")) 69 string="%s\n%s"%(string,fielddisplay(self,"y","vertices y coordinate [m]")) 70 string="%s\n%s"%(string,fielddisplay(self,"z","vertices z coordinate [m]")) 55 def __repr__(self): # {{{ 56 string = " 3D prism Mesh:" 71 57 72 string="%s%s"%(string,"\n\n Properties:") 73 string="%s\n%s"%(string,fielddisplay(self,"numberoflayers","number of extrusion layers")) 74 string="%s\n%s"%(string,fielddisplay(self,"vertexonbase","lower vertices flags list")) 75 string="%s\n%s"%(string,fielddisplay(self,"vertexonsurface","upper vertices flags list")) 76 string="%s\n%s"%(string,fielddisplay(self,"uppervertex","upper vertex list (NaN for vertex on the upper surface)")) 77 string="%s\n%s"%(string,fielddisplay(self,"upperelements","upper element list (NaN for element on the upper layer)")) 78 string="%s\n%s"%(string,fielddisplay(self,"lowervertex","lower vertex list (NaN for vertex on the lower surface)")) 79 string="%s\n%s"%(string,fielddisplay(self,"lowerelements","lower element list (NaN for element on the lower layer)")) 80 string="%s\n%s"%(string,fielddisplay(self,"vertexonboundary","vertices on the boundary of the domain flag list")) 81 string="%s\n%s"%(string,fielddisplay(self,"vertexconnectivity","list of elements connected to vertex_i")) 82 string="%s\n%s"%(string,fielddisplay(self,"elementconnectivity","list of elements adjacent to element_i")) 83 string="%s\n%s"%(string,fielddisplay(self,"average_vertex_connectivity","average number of vertices connected to one vertex")) 58 string = "%s\n%s" % (string, "\n Elements and vertices of the original 2d mesh3dprisms:") 84 59 85 string="%s%s"%(string,"\n\n Extracted model:") 86 string="%s\n%s"%(string,fielddisplay(self,"extractedvertices","vertices extracted from the model")) 87 string="%s\n%s"%(string,fielddisplay(self,"extractedelements","elements extracted from the model")) 60 string = "%s\n%s" % (string, fielddisplay(self, "numberofelements2d", "number of elements")) 61 string = "%s\n%s" % (string, fielddisplay(self, "numberofvertices2d", "number of vertices")) 62 string = "%s\n%s" % (string, fielddisplay(self, "elements2d", "vertex indices of the mesh3dprisms elements")) 63 string = "%s\n%s" % (string, fielddisplay(self, "x2d", "vertices x coordinate [m]")) 64 string = "%s\n%s" % (string, fielddisplay(self, "y2d", "vertices y coordinate [m]")) 88 65 89 string="%s%s"%(string,"\n\n Projection:") 90 string="%s\n%s"%(string,fielddisplay(self,"lat","vertices latitude [degrees]")) 91 string="%s\n%s"%(string,fielddisplay(self,"long","vertices longitude [degrees]")) 92 string="%s\n%s"%(string,fielddisplay(self,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)")) 93 string="%s\n%s"%(string,fielddisplay(self,"scale_factor","Projection correction for volume, area, etc. computation")) 94 return string 95 #}}} 96 def setdefaultparameters(self): # {{{ 97 98 #the connectivity is the averaged number of nodes linked to a 99 #given node through an edge. This connectivity is used to initially 100 #allocate memory to the stiffness matrix. A value of 16 seems to 101 #give a good memory/time ration. This value can be checked in 102 #trunk/test/Miscellaneous/runme.m 103 self.average_vertex_connectivity=25 66 string = "%s\n%s" % (string, "\n\n Elements and vertices of the extruded 3d mesh3dprisms:") 67 string = "%s\n%s" % (string, fielddisplay(self, "numberofelements", "number of elements")) 68 string = "%s\n%s" % (string, fielddisplay(self, "numberofvertices", "number of vertices")) 69 string = "%s\n%s" % (string, fielddisplay(self, "elements", "vertex indices of the mesh3dprisms elements")) 70 string = "%s\n%s" % (string, fielddisplay(self, "x", "vertices x coordinate [m]")) 71 string = "%s\n%s" % (string, fielddisplay(self, "y", "vertices y coordinate [m]")) 72 string = "%s\n%s" % (string, fielddisplay(self, "z", "vertices z coordinate [m]")) 104 73 105 return self 106 #}}} 107 def checkconsistency(self,md,solution,analyses): # {{{ 74 string = "%s%s" % (string, "\n\n Properties:") 75 string = "%s\n%s" % (string, fielddisplay(self, "numberoflayers", "number of extrusion layers")) 76 string = "%s\n%s" % (string, fielddisplay(self, "vertexonbase", "lower vertices flags list")) 77 string = "%s\n%s" % (string, fielddisplay(self, "vertexonsurface", "upper vertices flags list")) 78 string = "%s\n%s" % (string, fielddisplay(self, "uppervertex", "upper vertex list (NaN for vertex on the upper surface)")) 79 string = "%s\n%s" % (string, fielddisplay(self, "upperelements", "upper element list (NaN for element on the upper layer)")) 80 string = "%s\n%s" % (string, fielddisplay(self, "lowervertex", "lower vertex list (NaN for vertex on the lower surface)")) 81 string = "%s\n%s" % (string, fielddisplay(self, "lowerelements", "lower element list (NaN for element on the lower layer)")) 82 string = "%s\n%s" % (string, fielddisplay(self, "vertexonboundary", "vertices on the boundary of the domain flag list")) 83 string = "%s\n%s" % (string, fielddisplay(self, "vertexconnectivity", "list of elements connected to vertex_i")) 84 string = "%s\n%s" % (string, fielddisplay(self, "elementconnectivity", "list of elements adjacent to element_i")) 85 string = "%s\n%s" % (string, fielddisplay(self, "average_vertex_connectivity", "average number of vertices connected to one vertex")) 108 86 109 md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 110 md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 111 md = checkfield(md,'fieldname','mesh.z','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 112 md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',np.arange(1,md.mesh.numberofvertices+1)) 113 md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,6]) 114 if np.any(np.logical_not(m.ismember(np.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))): 115 md.checkmessage("orphan nodes have been found. Check the mesh3dprisms outline") 116 md = checkfield(md,'fieldname','mesh.numberoflayers','>=',0) 117 md = checkfield(md,'fieldname','mesh.numberofelements','>',0) 118 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0) 119 md = checkfield(md,'fieldname','mesh.vertexonbase','size',[md.mesh.numberofvertices],'values',[0,1]) 120 md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1]) 121 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',24,'message',"'mesh.average_vertex_connectivity' should be at least 24 in 3d") 122 if(np.size(self.scale_factor)>1): 123 md = checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 87 string = "%s%s" % (string, "\n\n Extracted model:") 88 string = "%s\n%s" % (string, fielddisplay(self, "extractedvertices", "vertices extracted from the model")) 89 string = "%s\n%s" % (string, fielddisplay(self, "extractedelements", "elements extracted from the model")) 124 90 125 return md 126 # }}} 127 def domaintype(self): # {{{ 128 return "3D" 129 #}}} 130 def dimension(self): # {{{ 131 return 3 132 #}}} 133 def elementtype(self): # {{{ 134 return "Penta" 135 #}}} 136 def marshall(self,prefix,md,fid): # {{{ 137 WriteData(fid,prefix,'name','md.mesh.domain_type','data',"Domain"+self.domaintype(),'format','String'); 138 WriteData(fid,prefix,'name','md.mesh.domain_dimension','data',self.dimension(),'format','Integer'); 139 WriteData(fid,prefix,'name','md.mesh.elementtype','data',self.elementtype(),'format','String'); 140 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','x','format','DoubleMat','mattype',1) 141 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','y','format','DoubleMat','mattype',1) 142 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','z','format','DoubleMat','mattype',1) 143 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2) 144 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberoflayers','format','Integer') 145 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofelements','format','Integer') 146 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer') 147 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','vertexonbase','format','BooleanMat','mattype',1) 148 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','vertexonsurface','format','BooleanMat','mattype',1) 149 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','lowerelements','format','DoubleMat','mattype',2) 150 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','upperelements','format','DoubleMat','mattype',2) 151 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer') 152 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','elements2d','format','DoubleMat','mattype',3) 153 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofvertices2d','format','Integer') 154 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofelements2d','format','Integer') 155 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1) 156 if md.transient.isoceancoupling: 157 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','lat','format','DoubleMat','mattype',1) 158 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','long','format','DoubleMat','mattype',1) 159 # }}} 91 string = "%s%s" % (string, "\n\n Projection:") 92 string = "%s\n%s" % (string, fielddisplay(self, "lat", "vertices latitude [degrees]")) 93 string = "%s\n%s" % (string, fielddisplay(self, "long", "vertices longitude [degrees]")) 94 string = "%s\n%s" % (string, fielddisplay(self, "epsg", "EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)")) 95 string = "%s\n%s" % (string, fielddisplay(self, "scale_factor", "Projection correction for volume, area, etc. computation")) 96 return string 97 #}}} 98 99 def setdefaultparameters(self): # {{{ 100 #the connectivity is the averaged number of nodes linked to a 101 #given node through an edge. This connectivity is used to initially 102 #allocate memory to the stiffness matrix. A value of 16 seems to 103 #give a good memory / time ration. This value can be checked in 104 #trunk / test / Miscellaneous / runme.m 105 self.average_vertex_connectivity = 25 106 107 return self 108 #}}} 109 110 def checkconsistency(self, md, solution, analyses): # {{{ 111 md = checkfield(md, 'fieldname', 'mesh.x', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 112 md = checkfield(md, 'fieldname', 'mesh.y', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 113 md = checkfield(md, 'fieldname', 'mesh.z', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 114 md = checkfield(md, 'fieldname', 'mesh.elements', 'NaN', 1, 'Inf', 1, '>', 0, 'values', np.arange(1, md.mesh.numberofvertices + 1)) 115 md = checkfield(md, 'fieldname', 'mesh.elements', 'size', [md.mesh.numberofelements, 6]) 116 if np.any(np.logical_not(m.ismember(np.arange(1, md.mesh.numberofvertices + 1), md.mesh.elements))): 117 md.checkmessage("orphan nodes have been found. Check the mesh3dprisms outline") 118 md = checkfield(md, 'fieldname', 'mesh.numberoflayers', '>=', 0) 119 md = checkfield(md, 'fieldname', 'mesh.numberofelements', '>', 0) 120 md = checkfield(md, 'fieldname', 'mesh.numberofvertices', '>', 0) 121 md = checkfield(md, 'fieldname', 'mesh.vertexonbase', 'size', [md.mesh.numberofvertices], 'values', [0, 1]) 122 md = checkfield(md, 'fieldname', 'mesh.vertexonsurface', 'size', [md.mesh.numberofvertices], 'values', [0, 1]) 123 md = checkfield(md, 'fieldname', 'mesh.average_vertex_connectivity', '>=', 24, 'message', "'mesh.average_vertex_connectivity' should be at least 24 in 3d") 124 if(np.size(self.scale_factor) > 1): 125 md = checkfield(md, 'fieldname', 'mesh.scale_factor', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 126 127 return md 128 # }}} 129 130 def domaintype(self): # {{{ 131 return "3D" 132 #}}} 133 134 def dimension(self): # {{{ 135 return 3 136 #}}} 137 138 def elementtype(self): # {{{ 139 return "Penta" 140 #}}} 141 142 def marshall(self, prefix, md, fid): # {{{ 143 WriteData(fid, prefix, 'name', 'md.mesh.domain_type', 'data', "Domain" + self.domaintype(), 'format', 'String') 144 WriteData(fid, prefix, 'name', 'md.mesh.domain_dimension', 'data', self.dimension(), 'format', 'Integer') 145 WriteData(fid, prefix, 'name', 'md.mesh.elementtype', 'data', self.elementtype(), 'format', 'String') 146 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'x', 'format', 'DoubleMat', 'mattype', 1) 147 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'y', 'format', 'DoubleMat', 'mattype', 1) 148 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'z', 'format', 'DoubleMat', 'mattype', 1) 149 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'elements', 'format', 'DoubleMat', 'mattype', 2) 150 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'numberoflayers', 'format', 'Integer') 151 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'numberofelements', 'format', 'Integer') 152 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'numberofvertices', 'format', 'Integer') 153 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'vertexonbase', 'format', 'BooleanMat', 'mattype', 1) 154 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'vertexonsurface', 'format', 'BooleanMat', 'mattype', 1) 155 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'lowerelements', 'format', 'DoubleMat', 'mattype', 2) 156 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'upperelements', 'format', 'DoubleMat', 'mattype', 2) 157 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'average_vertex_connectivity', 'format', 'Integer') 158 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'elements2d', 'format', 'DoubleMat', 'mattype', 3) 159 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'numberofvertices2d', 'format', 'Integer') 160 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'numberofelements2d', 'format', 'Integer') 161 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'scale_factor', 'format', 'DoubleMat', 'mattype', 1) 162 if md.transient.isoceancoupling: 163 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'lat', 'format', 'DoubleMat', 'mattype', 1) 164 WriteData(fid, prefix, 'object', self, 'class', 'mesh', 'fieldname', 'long', 'format', 'DoubleMat', 'mattype', 1) 165 # }}} -
issm/trunk-jpl/src/m/classes/mesh3dsurface.py
r22879 r24213 6 6 from WriteData import WriteData 7 7 8 8 9 class mesh3dsurface(object): 9 #MESH3DSURFACE class definition10 #11 # Usage:12 # mesh3dsurface=mesh3dsurface();13 def __init__(self,*args):# {{{14 self.x= np.nan15 self.y= np.nan16 self.z= np.nan17 self.elements= np.nan18 self.numberofelements= 019 self.numberofvertices= 020 self.numberofedges= 010 #MESH3DSURFACE class definition 11 # 12 # Usage: 13 # mesh3dsurface = mesh3dsurface(); 14 def __init__(self, *args): # {{{ 15 self.x = np.nan 16 self.y = np.nan 17 self.z = np.nan 18 self.elements = np.nan 19 self.numberofelements = 0 20 self.numberofvertices = 0 21 self.numberofedges = 0 21 22 22 self.lat= np.nan23 self.long= np.nan24 self.r= np.nan23 self.lat = np.nan 24 self.long = np.nan 25 self.r = np.nan 25 26 26 self.vertexonboundary= np.nan27 self.edges= np.nan28 self.segments= np.nan29 self.segmentmarkers= np.nan30 self.vertexconnectivity= np.nan31 self.elementconnectivity= np.nan32 27 self.vertexonboundary = np.nan 28 self.edges = np.nan 29 self.segments = np.nan 30 self.segmentmarkers = np.nan 31 self.vertexconnectivity = np.nan 32 self.elementconnectivity = np.nan 33 self.average_vertex_connectivity = 0 33 34 34 self.extractedvertices = np.nan 35 self.extractedelements = np.nan 36 37 if not len(args): 38 self.setdefaultparameters() 39 elif len(args)==1: 40 self=mesh3dsurface() 41 arg=args[1] 42 fields=fieldnames(arg) 43 for i in range(len(fields)): 44 field=fields[i] 45 if ismember(field,properties('mesh3dsurface')): 46 self.field=arg.field 47 else: 48 raise RuntimeError('constructor not supported') 35 self.extractedvertices = np.nan 36 self.extractedelements = np.nan 49 37 50 # }}} 51 def __repr__(self): # {{{ 52 string=' 2D tria Mesh (horizontal):' 53 54 string+='\n Elements and vertices:' 55 string="%s\n%s"%(string,fielddisplay(self,'numberofelements','number of elements')) 56 string="%s\n%s"%(string,fielddisplay(self,'numberofvertices','number of vertices')) 57 string="%s\n%s"%(string,fielddisplay(self,'elements','vertex indices of the mesh elements')) 58 string="%s\n%s"%(string,fielddisplay(self,'x','vertices x coordinate [m]')) 59 string="%s\n%s"%(string,fielddisplay(self,'y','vertices y coordinate [m]')) 60 string="%s\n%s"%(string,fielddisplay(self,'z','vertices z coordinate [m]')) 61 string="%s\n%s"%(string,fielddisplay(self,'lat','vertices latitude [degrees]')) 62 string="%s\n%s"%(string,fielddisplay(self,'long','vertices longitude [degrees]')) 63 string="%s\n%s"%(string,fielddisplay(self,'r','vertices radius [m]')) 64 65 string="%s\n%s"%(string,fielddisplay(self,'edges','edges of the 2d mesh (vertex1 vertex2 element1 element2)')) 66 string="%s\n%s"%(string,fielddisplay(self,'numberofedges','number of edges of the 2d mesh')) 38 if not len(args): 39 self.setdefaultparameters() 40 elif len(args) == 1: 41 self = mesh3dsurface() 42 arg = args[1] 43 fields = fieldnames(arg) 44 for i in range(len(fields)): 45 field = fields[i] 46 if ismember(field, properties('mesh3dsurface')): 47 self.field = arg.field 48 else: 49 raise RuntimeError('constructor not supported') 67 50 68 string+='\n Properties:' 69 string="%s\n%s"%(string,fielddisplay(self,'vertexonboundary','vertices on the boundary of the domain flag list')) 70 string="%s\n%s"%(string,fielddisplay(self,'segments','edges on domain boundary (vertex1 vertex2 element)')) 71 string="%s\n%s"%(string,fielddisplay(self,'segmentmarkers','number associated to each segment')) 72 string="%s\n%s"%(string,fielddisplay(self,'vertexconnectivity','list of elements connected to vertex_i')) 73 string="%s\n%s"%(string,fielddisplay(self,'elementconnectivity','list of elements adjacent to element_i')) 74 string="%s\n%s"%(string,fielddisplay(self,'average_vertex_connectivity','average number of vertices connected to one vertex')) 51 # }}} 75 52 76 string+='\n Extracted model():' 77 string="%s\n%s"%(string,fielddisplay(self,'extractedvertices','vertices extracted from the model()')) 78 string="%s\n%s"%(string,fielddisplay(self,'extractedelements','elements extracted from the model()')) 79 80 return string 81 # }}} 82 def loadobj(self): # {{{ 83 # This def is directly called by matlab when a model() selfect is 84 # loaded. Update old properties here 53 def __repr__(self): # {{{ 54 string = ' 2D tria Mesh (horizontal):' 85 55 86 #2014 Oct. 1st 87 if isstruct(self): 88 oldself=self 89 #Assign property values from struct 90 self=structtoobj(mesh3dsurface(),oldself) 91 if isfield(oldself,'hemisphere'): 92 print ('md.mesh.hemisphere has been automatically converted to EPSG code') 93 if strcmpi(oldself.hemisphere,'n'): 94 self.epsg=3413 95 else: 96 self.epsg=3031 97 return self 98 # }}} 99 def setdefaultparameters(self): # {{{ 56 string += '\n Elements and vertices:' 57 string = "%s\n%s" % (string, fielddisplay(self, 'numberofelements', 'number of elements')) 58 string = "%s\n%s" % (string, fielddisplay(self, 'numberofvertices', 'number of vertices')) 59 string = "%s\n%s" % (string, fielddisplay(self, 'elements', 'vertex indices of the mesh elements')) 60 string = "%s\n%s" % (string, fielddisplay(self, 'x', 'vertices x coordinate [m]')) 61 string = "%s\n%s" % (string, fielddisplay(self, 'y', 'vertices y coordinate [m]')) 62 string = "%s\n%s" % (string, fielddisplay(self, 'z', 'vertices z coordinate [m]')) 63 string = "%s\n%s" % (string, fielddisplay(self, 'lat', 'vertices latitude [degrees]')) 64 string = "%s\n%s" % (string, fielddisplay(self, 'long', 'vertices longitude [degrees]')) 65 string = "%s\n%s" % (string, fielddisplay(self, 'r', 'vertices radius [m]')) 100 66 101 #the connectivity is the averaged number of nodes linked to a 102 #given node through an edge. This connectivity is used to initially 103 #allocate memory to the stiffness matrix. A value of 16 seems to 104 #give a good memory/time ration. This value can be checked in 105 #trunk/test/Miscellaneous/runme.m 106 self.average_vertex_connectivity=25 107 return self 108 # }}} 109 def checkconsistency(self,md,solution,analyses): # {{{ 67 string = "%s\n%s" % (string, fielddisplay(self, 'edges', 'edges of the 2d mesh (vertex1 vertex2 element1 element2)')) 68 string = "%s\n%s" % (string, fielddisplay(self, 'numberofedges', 'number of edges of the 2d mesh')) 110 69 111 md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 112 md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 113 md = checkfield(md,'fieldname','mesh.z','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 114 md = checkfield(md,'fieldname','mesh.lat','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 115 md = checkfield(md,'fieldname','mesh.long','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 116 md = checkfield(md,'fieldname','mesh.r','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 117 md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',np.arange(1,md.mesh.numberofvertices+1)) 118 md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3]) 119 if np.any(np.logical_not(np.in1d(np.arange(1,md.mesh.numberofvertices+1),md.mesh.elements.flat))): 120 md = checkmessage(md,'orphan nodes have been found. Check the mesh outline') 121 122 md = checkfield(md,'fieldname','mesh.numberofelements','>',0) 123 md = checkfield(md,'fieldname','mesh.numberofvertices','>',0) 124 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','"mesh.average_vertex_connectivity" should be at least 9 in 2d') 70 string += '\n Properties:' 71 string = "%s\n%s" % (string, fielddisplay(self, 'vertexonboundary', 'vertices on the boundary of the domain flag list')) 72 string = "%s\n%s" % (string, fielddisplay(self, 'segments', 'edges on domain boundary (vertex1 vertex2 element)')) 73 string = "%s\n%s" % (string, fielddisplay(self, 'segmentmarkers', 'number associated to each segment')) 74 string = "%s\n%s" % (string, fielddisplay(self, 'vertexconnectivity', 'list of elements connected to vertex_i')) 75 string = "%s\n%s" % (string, fielddisplay(self, 'elementconnectivity', 'list of elements adjacent to element_i')) 76 string = "%s\n%s" % (string, fielddisplay(self, 'average_vertex_connectivity', 'average number of vertices connected to one vertex')) 125 77 126 if (solution=='ThermalSolution'): 127 md = checkmessage(md,'thermal not supported for 2d mesh'); 128 129 return md 130 # }}} 131 def marshall(self,prefix,md,fid): # {{{ 132 WriteData(fid,prefix,'name','md.mesh.domain_type','data','Domain' + self.domaintype(),'format','String') 133 WriteData(fid,prefix,'name','md.mesh.domain_dimension','data',self.dimension(),'format','Integer') 134 WriteData(fid,prefix,'name','md.mesh.elementtype','data',self.elementtype(),'format','String') 135 WriteData(fid,prefix,'object',self,'fieldname','x','format','DoubleMat','mattype',1) 136 WriteData(fid,prefix,'object',self,'fieldname','y','format','DoubleMat','mattype',1) 137 WriteData(fid,prefix,'object',self,'fieldname','z','format','DoubleMat','mattype',1) 138 WriteData(fid,prefix,'object',self,'fieldname','lat','format','DoubleMat','mattype',1) 139 WriteData(fid,prefix,'object',self,'fieldname','long','format','DoubleMat','mattype',1) 140 WriteData(fid,prefix,'object',self,'fieldname','r','format','DoubleMat','mattype',1) 141 WriteData(fid,prefix,'name','md.mesh.z','data',np.zeros(md.mesh.numberofvertices),'format','DoubleMat','mattype',1) 142 WriteData(fid,prefix,'object',self,'fieldname','elements','format','DoubleMat','mattype',2) 143 WriteData(fid,prefix,'object',self,'fieldname','numberofelements','format','Integer') 144 WriteData(fid,prefix,'object',self,'fieldname','numberofvertices','format','Integer') 145 WriteData(fid,prefix,'object',self,'fieldname','average_vertex_connectivity','format','Integer') 146 WriteData(fid,prefix,'object',self,'fieldname','vertexonboundary','format','DoubleMat','mattype',1) 147 # }}} 148 def domaintype(self): # {{{ 149 return '3Dsurface' 150 # }}} 151 def dimension(self): # {{{ 152 return 2 153 # }}} 154 def elementtype(self): # {{{ 155 return 'Tria' 156 # }}} 157 def processmesh(self,options): # {{{ 158 159 isplanet = 1 160 is2d = 0 78 string += '\n Extracted model():' 79 string = "%s\n%s" % (string, fielddisplay(self, 'extractedvertices', 'vertices extracted from the model()')) 80 string = "%s\n%s" % (string, fielddisplay(self, 'extractedelements', 'elements extracted from the model()')) 161 81 162 elements = self.elements 163 x = self.x 164 y = self.y 165 z = self.z 166 return [x, y, z, elements, is2d, isplanet] 167 # }}} 168 def savemodeljs(self,fid,modelname): # {{{ 169 170 fid.write('#s.mesh=new mesh3dsurface()\n'%modelname) 171 writejs1Darray(fid,[modelname, '.mesh.x'],self.x) 172 writejs1Darray(fid,[modelname, '.mesh.y'],self.y) 173 writejs1Darray(fid,[modelname, '.mesh.z'],self.z) 174 writejs2Darray(fid,[modelname, '.mesh.elements'],self.elements) 175 writejsdouble(fid,[modelname, '.mesh.numberofelements'],self.numberofelements) 176 writejsdouble(fid,[modelname, '.mesh.numberofvertices'],self.numberofvertices) 177 writejsdouble(fid,[modelname, '.mesh.numberofedges'],self.numberofedges) 178 writejs1Darray(fid,[modelname, '.mesh.lat'],self.lat) 179 writejs1Darray(fid,[modelname, '.mesh.long'],self.long) 180 writejs1Darray(fid,[modelname, '.mesh.r'],self.r) 181 writejs1Darray(fid,[modelname, '.mesh.vertexonboundary'],self.vertexonboundary) 182 writejs2Darray(fid,[modelname, '.mesh.edges'],self.edges) 183 writejs2Darray(fid,[modelname, '.mesh.segments'],self.segments) 184 writejs2Darray(fid,[modelname, '.mesh.segmentmarkers'],self.segmentmarkers) 185 writejs2Darray(fid,[modelname, '.mesh.vertexconnectivity'],self.vertexconnectivity) 186 writejs2Darray(fid,[modelname, '.mesh.elementconnectivity'],self.elementconnectivity) 187 writejsdouble(fid,[modelname, '.mesh.average_vertex_connectivity'],self.average_vertex_connectivity) 188 writejs1Darray(fid,[modelname, '.mesh.extractedvertices'],self.extractedvertices) 189 writejs1Darray(fid,[modelname, '.mesh.extractedelements'],self.extractedelements) 82 return string 83 # }}} 190 84 191 # }}} 192 85 def loadobj(self): # {{{ 86 # This def is directly called by matlab when a model() selfect is 87 # loaded. Update old properties here 88 89 #2014 Oct. 1st 90 if isstruct(self): 91 oldself = self 92 #Assign property values from struct 93 self = structtoobj(mesh3dsurface(), oldself) 94 if isfield(oldself, 'hemisphere'): 95 print('md.mesh.hemisphere has been automatically converted to EPSG code') 96 if strcmpi(oldself.hemisphere, 'n'): 97 self.epsg = 3413 98 else: 99 self.epsg = 3031 100 return self 101 # }}} 102 103 def setdefaultparameters(self): # {{{ 104 #the connectivity is the averaged number of nodes linked to a 105 #given node through an edge. This connectivity is used to initially 106 #allocate memory to the stiffness matrix. A value of 16 seems to 107 #give a good memory / time ration. This value can be checked in 108 #trunk / test / Miscellaneous / runme.m 109 self.average_vertex_connectivity = 25 110 return self 111 # }}} 112 113 def checkconsistency(self, md, solution, analyses): # {{{ 114 md = checkfield(md, 'fieldname', 'mesh.x', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 115 md = checkfield(md, 'fieldname', 'mesh.y', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 116 md = checkfield(md, 'fieldname', 'mesh.z', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 117 md = checkfield(md, 'fieldname', 'mesh.lat', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 118 md = checkfield(md, 'fieldname', 'mesh.long', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 119 md = checkfield(md, 'fieldname', 'mesh.r', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 120 md = checkfield(md, 'fieldname', 'mesh.elements', 'NaN', 1, 'Inf', 1, '>', 0, 'values', np.arange(1, md.mesh.numberofvertices + 1)) 121 md = checkfield(md, 'fieldname', 'mesh.elements', 'size', [md.mesh.numberofelements, 3]) 122 if np.any(np.logical_not(np.in1d(np.arange(1, md.mesh.numberofvertices + 1), md.mesh.elements.flat))): 123 md = checkmessage(md, 'orphan nodes have been found. Check the mesh outline') 124 125 md = checkfield(md, 'fieldname', 'mesh.numberofelements', '>', 0) 126 md = checkfield(md, 'fieldname', 'mesh.numberofvertices', '>', 0) 127 md = checkfield(md, 'fieldname', 'mesh.average_vertex_connectivity', '>=', 9, 'message', '"mesh.average_vertex_connectivity" should be at least 9 in 2d') 128 129 if (solution == 'ThermalSolution'): 130 md = checkmessage(md, 'thermal not supported for 2d mesh') 131 132 return md 133 # }}} 134 135 def marshall(self, prefix, md, fid): # {{{ 136 WriteData(fid, prefix, 'name', 'md.mesh.domain_type', 'data', 'Domain' + self.domaintype(), 'format', 'String') 137 WriteData(fid, prefix, 'name', 'md.mesh.domain_dimension', 'data', self.dimension(), 'format', 'Integer') 138 WriteData(fid, prefix, 'name', 'md.mesh.elementtype', 'data', self.elementtype(), 'format', 'String') 139 WriteData(fid, prefix, 'object', self, 'fieldname', 'x', 'format', 'DoubleMat', 'mattype', 1) 140 WriteData(fid, prefix, 'object', self, 'fieldname', 'y', 'format', 'DoubleMat', 'mattype', 1) 141 WriteData(fid, prefix, 'object', self, 'fieldname', 'z', 'format', 'DoubleMat', 'mattype', 1) 142 WriteData(fid, prefix, 'object', self, 'fieldname', 'lat', 'format', 'DoubleMat', 'mattype', 1) 143 WriteData(fid, prefix, 'object', self, 'fieldname', 'long', 'format', 'DoubleMat', 'mattype', 1) 144 WriteData(fid, prefix, 'object', self, 'fieldname', 'r', 'format', 'DoubleMat', 'mattype', 1) 145 WriteData(fid, prefix, 'name', 'md.mesh.z', 'data', np.zeros(md.mesh.numberofvertices), 'format', 'DoubleMat', 'mattype', 1) 146 WriteData(fid, prefix, 'object', self, 'fieldname', 'elements', 'format', 'DoubleMat', 'mattype', 2) 147 WriteData(fid, prefix, 'object', self, 'fieldname', 'numberofelements', 'format', 'Integer') 148 WriteData(fid, prefix, 'object', self, 'fieldname', 'numberofvertices', 'format', 'Integer') 149 WriteData(fid, prefix, 'object', self, 'fieldname', 'average_vertex_connectivity', 'format', 'Integer') 150 WriteData(fid, prefix, 'object', self, 'fieldname', 'vertexonboundary', 'format', 'DoubleMat', 'mattype', 1) 151 # }}} 152 153 def domaintype(self): # {{{ 154 return '3Dsurface' 155 # }}} 156 157 def dimension(self): # {{{ 158 return 2 159 # }}} 160 161 def elementtype(self): # {{{ 162 return 'Tria' 163 # }}} 164 165 def processmesh(self, options): # {{{ 166 isplanet = 1 167 is2d = 0 168 169 elements = self.elements 170 x = self.x 171 y = self.y 172 z = self.z 173 return [x, y, z, elements, is2d, isplanet] 174 # }}} 175 176 def savemodeljs(self, fid, modelname): # {{{ 177 fid.write(' #s.mesh = new mesh3dsurface()\n' % modelname) 178 writejs1Darray(fid, [modelname, '.mesh.x'], self.x) 179 writejs1Darray(fid, [modelname, '.mesh.y'], self.y) 180 writejs1Darray(fid, [modelname, '.mesh.z'], self.z) 181 writejs2Darray(fid, [modelname, '.mesh.elements'], self.elements) 182 writejsdouble(fid, [modelname, '.mesh.numberofelements'], self.numberofelements) 183 writejsdouble(fid, [modelname, '.mesh.numberofvertices'], self.numberofvertices) 184 writejsdouble(fid, [modelname, '.mesh.numberofedges'], self.numberofedges) 185 writejs1Darray(fid, [modelname, '.mesh.lat'], self.lat) 186 writejs1Darray(fid, [modelname, '.mesh.long'], self.long) 187 writejs1Darray(fid, [modelname, '.mesh.r'], self.r) 188 writejs1Darray(fid, [modelname, '.mesh.vertexonboundary'], self.vertexonboundary) 189 writejs2Darray(fid, [modelname, '.mesh.edges'], self.edges) 190 writejs2Darray(fid, [modelname, '.mesh.segments'], self.segments) 191 writejs2Darray(fid, [modelname, '.mesh.segmentmarkers'], self.segmentmarkers) 192 writejs2Darray(fid, [modelname, '.mesh.vertexconnectivity'], self.vertexconnectivity) 193 writejs2Darray(fid, [modelname, '.mesh.elementconnectivity'], self.elementconnectivity) 194 writejsdouble(fid, [modelname, '.mesh.average_vertex_connectivity'], self.average_vertex_connectivity) 195 writejs1Darray(fid, [modelname, '.mesh.extractedvertices'], self.extractedvertices) 196 writejs1Darray(fid, [modelname, '.mesh.extractedelements'], self.extractedelements) 197 198 # }}} -
issm/trunk-jpl/src/m/classes/miscellaneous.py
r21049 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class miscellaneous(object): 7 8 8 """ 9 MISCELLANEOUS class definition 9 10 10 11 miscellaneous=miscellaneous(); 12 11 Usage: 12 miscellaneous = miscellaneous() 13 """ 13 14 14 def __init__(self):# {{{15 16 self.name= ''17 15 def __init__(self): # {{{ 16 self.notes = '' 17 self.name = '' 18 self.dummy = OrderedDict() 18 19 19 20 20 #set defaults 21 self.setdefaultparameters() 21 22 22 23 def __repr__(self):# {{{24 string=' miscellaneous parameters:'23 #}}} 24 def __repr__(self): # {{{ 25 string = ' miscellaneous parameters:' 25 26 26 string="%s\n%s"%(string,fielddisplay(self,'notes','notes in a cell of strings')) 27 string="%s\n%s"%(string,fielddisplay(self,'name','model name')) 28 string="%s\n%s"%(string,fielddisplay(self,'dummy','empty field to store some data')) 29 return string 30 #}}} 31 def setdefaultparameters(self): # {{{ 32 return self 33 #}}} 34 def checkconsistency(self,md,solution,analyses): # {{{ 35 md = checkfield(md,'fieldname','miscellaneous.name','empty',1) 36 return md 37 # }}} 38 def marshall(self,prefix,md,fid): # {{{ 39 WriteData(fid,prefix,'object',self,'fieldname','name','format','String'); 40 # }}} 27 string = "%s\n%s" % (string, fielddisplay(self, 'notes', 'notes in a cell of strings')) 28 string = "%s\n%s" % (string, fielddisplay(self, 'name', 'model name')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'dummy', 'empty field to store some data')) 30 return string 31 #}}} 32 33 def setdefaultparameters(self): # {{{ 34 return self 35 #}}} 36 37 def checkconsistency(self, md, solution, analyses): # {{{ 38 md = checkfield(md, 'fieldname', 'miscellaneous.name', 'empty', 1) 39 return md 40 # }}} 41 42 def marshall(self, prefix, md, fid): # {{{ 43 WriteData(fid, prefix, 'object', self, 'fieldname', 'name', 'format', 'String') 44 # }}} -
issm/trunk-jpl/src/m/classes/misfit.py
r22104 r24213 1 1 import numpy as np 2 2 from project3d import project3d 3 from pairoptions import *4 from collections import OrderedDict5 3 from fielddisplay import fielddisplay 6 4 from checkfield import checkfield … … 9 7 10 8 class misfit(object): 11 12 9 """ 10 MISFIT class definition 13 11 14 15 misfit=misfit()16 misfit=misfit(name='SurfaceAltimetry',17 definitionstring='Outputdefinition1',18 model_string='Surface',19 observation_string='SurfaceObservations',20 observation=md.geometry.surface,21 timeinterpolation='nearestneighbor',22 local=1,23 weights=np.ones((md.mesh.numberofvertices,1)),24 weights_string='WeightsSurfaceObservations')25 12 Usage: 13 misfit = misfit() 14 misfit = misfit(name = 'SurfaceAltimetry', 15 definitionstring = 'Outputdefinition1', 16 model_string = 'Surface', 17 observation_string = 'SurfaceObservations', 18 observation = md.geometry.surface, 19 timeinterpolation = 'nearestneighbor', 20 local = 1, 21 weights = np.ones((md.mesh.numberofvertices, 1)), 22 weights_string = 'WeightsSurfaceObservations') 23 """ 26 24 27 def __init__(self, name = None, definitionstring = None, model_string = None, observation = None, observation_string = None, timeinterpolation = None, local = None, weights = None, weights_string = None, cumulated = None): 28 # {{{ 29 self.name = name if name is not None else '' 25 def __init__(self, name=None, definitionstring=None, model_string=None, observation=None, observation_string=None, timeinterpolation=None, local=None, weights=None, weights_string=None, cumulated=None): # {{{ 26 self.name = name if name is not None else '' 27 #string that identifies this output definition uniquely, from 'Outputdefinition[1 - 100]' 28 self.definitionstring = definitionstring if definitionstring is not None else '' 29 #string for field that is modeled 30 self.model_string = model_string if model_string is not None else '' 31 #observed field that we compare the model against 32 self.observation = observation if observation is not None else float('NaN') 33 #string for observed field. 34 self.observation_string = observation_string if observation_string is not None else '' 35 self.timeinterpolation = timeinterpolation if timeinterpolation is not None else 'nearestneighbor' 36 self.local = local if local is not None else 1 37 #weight coefficients for every vertex 38 self.weights = weights if weights is not None else float('NaN') 39 #string to identify this particular set of weights 40 self.weights_string = weights_string if weights_string is not None else '' 41 #do we cumulate misfit through time? 42 self.cumulated = cumulated if cumulated is not None else float('NaN') 43 #}}} 30 44 31 #string that identifies this output definition uniquely, from 'Outputdefinition[1-100]' 32 self.definitionstring = definitionstring if definitionstring is not None else ''45 def __repr__(self): # {{{ 46 string = ' Misfit:' 33 47 34 #string for field that is modeled 35 self.model_string = model_string if model_string is not None else '' 48 string = "%s\n%s" % (string, fielddisplay(self, 'name', 'identifier for this misfit response')) 49 string = "%s\n%s" % (string, fielddisplay(self, 'definitionstring', 'string that identifies this output definition uniquely, from "Outputdefinition[1 - 10]"')) 50 string = "%s\n%s" % (string, fielddisplay(self, 'model_string', 'string for field that is modeled')) 51 string = "%s\n%s" % (string, fielddisplay(self, 'observation', 'observed field that we compare the model against')) 52 string = "%s\n%s" % (string, fielddisplay(self, 'observation_string', 'observation string')) 53 string = "%s\n%s" % (string, fielddisplay(self, 'local', 'is the response local to the elements, or global? (default is 1)')) 54 string = "%s\n%s" % (string, fielddisplay(self, 'timeinterpolation', 'interpolation routine used to interpolate misfit between two time steps (default is "nearestneighbor"')) 55 string = "%s\n%s" % (string, fielddisplay(self, 'weights', 'weights (at vertices) to apply to the misfit')) 56 string = "%s\n%s" % (string, fielddisplay(self, 'weights_string', 'string for weights for identification purposes')) 57 return string 58 #}}} 36 59 37 #observed field that we compare the model against 38 self.observation = observation if observation is not None else float('NaN') 60 def extrude(self, md): # {{{ 61 if not np.any(np.isnan(self.weights)): 62 self.weights = project3d(md, 'vector', self.weights, 'type', 'node') 63 if not np.any(np.isnan(self.observation)): 64 self.observation = project3d(md, 'vector', self.observation, 'type', 'node') 65 return self 66 #}}} 39 67 40 #string for observed field. 41 self.observation_string = observation_string if observation_string is not None else '' 68 def checkconsistency(self, md, solution, analyses): # {{{ 69 if type(self.name) != str: 70 raise TypeError('misfit error message: "name" field should be a string!') 42 71 43 self.timeinterpolation = timeinterpolation if timeinterpolation is not None else 'nearestneighbor' 72 OutputdefinitionStringArray = [] 73 for i in range(100): 74 OutputdefinitionStringArray.append('Outputdefinition' + str(i)) 44 75 45 self.local = local if local is not None else 1 76 md = checkfield(md, 'fieldname', 'self.definitionstring', 'field', self.definitionstring, 'values', OutputdefinitionStringArray) 77 if type(self.timeinterpolation) != str: 78 raise TypeError('misfit error message: "timeinterpolation" field should be a string!') 46 79 47 #weight coefficients for every vertex 48 self.weights = weights if weights is not None else float('NaN') 80 md = checkfield(md, 'fieldname', 'self.observation', 'field', self.observation, 'timeseries', 1, 'NaN', 1, 'Inf', 1) 81 md = checkfield(md, 'fieldname', 'self.timeinterpolation', 'field', self.timeinterpolation, 'values', ['nearestneighbor']) 82 md = checkfield(md, 'fieldname', 'self.weights', 'field', self.weights, 'timeseries', 1, 'NaN', 1, 'Inf', 1) 49 83 50 #string to identify this particular set of weights 51 self.weights_string = weights_string if weights_string is not None else '' 84 return md 85 # }}} 52 86 53 #do we cumulate misfit through time? 54 self.cumulated = cumulated if cumulated is not None else float('NaN') 55 #}}} 56 57 def __repr__(self): # {{{ 58 string=' Misfit:' 59 60 string="%s\n%s"%(string,fielddisplay(self,'name','identifier for this misfit response')) 61 string="%s\n%s"%(string,fielddisplay(self,'definitionstring','string that identifies this output definition uniquely, from "Outputdefinition[1-10]"')) 62 string="%s\n%s"%(string,fielddisplay(self,'model_string','string for field that is modeled')) 63 string="%s\n%s"%(string,fielddisplay(self,'observation','observed field that we compare the model against')) 64 string="%s\n%s"%(string,fielddisplay(self,'observation_string','observation string')) 65 string="%s\n%s"%(string,fielddisplay(self,'local','is the response local to the elements, or global? (default is 1)')) 66 string="%s\n%s"%(string,fielddisplay(self,'timeinterpolation','interpolation routine used to interpolate misfit between two time steps (default is "nearestneighbor"')) 67 string="%s\n%s"%(string,fielddisplay(self,'weights','weights (at vertices) to apply to the misfit')) 68 string="%s\n%s"%(string,fielddisplay(self,'weights_string','string for weights for identification purposes')) 69 return string 70 #}}} 71 72 def extrude(self,md): # {{{ 73 if not np.any(np.isnan(self.weights)): 74 self.weights = project3d(md,'vector',self.weights,'type','node') 75 if not np.any(np.isnan(self.observation)): 76 self.observation = project3d(md,'vector',self.observation,'type','node') 77 return self 78 #}}} 79 80 def checkconsistency(self,md,solution,analyses): # {{{ 81 if type(self.name) != str: 82 raise TypeError('misfit error message: "name" field should be a string!') 83 84 OutputdefinitionStringArray = [] 85 for i in range(100): 86 OutputdefinitionStringArray.append('Outputdefinition' + str(i)) 87 88 md = checkfield(md,'fieldname','self.definitionstring','field',self.definitionstring,'values',OutputdefinitionStringArray) 89 if type(self.timeinterpolation) != str: 90 raise TypeError('misfit error message: "timeinterpolation" field should be a string!') 91 92 md = checkfield(md,'fieldname','self.observation','field',self.observation,'timeseries',1,'NaN',1,'Inf',1) 93 md = checkfield(md,'fieldname','self.timeinterpolation','field',self.timeinterpolation,'values',['nearestneighbor']) 94 md = checkfield(md,'fieldname','self.weights','field',self.weights,'timeseries',1,'NaN',1,'Inf',1) 95 96 return md 97 # }}} 98 99 def marshall(self,prefix,md,fid): # {{{ 100 WriteData(fid,prefix,'data',self.name,'name','md.misfit.name','format','String') 101 WriteData(fid,prefix,'data',self.definitionstring,'name','md.misfit.definitionstring','format','String') 102 WriteData(fid,prefix,'data',self.model_string,'name','md.misfit.model_string','format','String') 103 WriteData(fid,prefix,'data',self.observation,'name','md.misfit.observation','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 104 WriteData(fid,prefix,'data',self.observation_string,'name','md.misfit.observation_string','format','String') 105 WriteData(fid,prefix,'data',self.local,'name','md.misfit.local','format','Integer') 106 WriteData(fid,prefix,'data',self.timeinterpolation,'name','md.misfit.timeinterpolation','format','String') 107 WriteData(fid,prefix,'data',self.weights,'name','md.misfit.weights','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 108 WriteData(fid,prefix,'data',self.weights_string,'name','md.misfit.weights_string','format','String') 109 # }}} 87 def marshall(self, prefix, md, fid): # {{{ 88 WriteData(fid, prefix, 'data', self.name, 'name', 'md.misfit.name', 'format', 'String') 89 WriteData(fid, prefix, 'data', self.definitionstring, 'name', 'md.misfit.definitionstring', 'format', 'String') 90 WriteData(fid, prefix, 'data', self.model_string, 'name', 'md.misfit.model_string', 'format', 'String') 91 WriteData(fid, prefix, 'data', self.observation, 'name', 'md.misfit.observation', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 92 WriteData(fid, prefix, 'data', self.observation_string, 'name', 'md.misfit.observation_string', 'format', 'String') 93 WriteData(fid, prefix, 'data', self.local, 'name', 'md.misfit.local', 'format', 'Integer') 94 WriteData(fid, prefix, 'data', self.timeinterpolation, 'name', 'md.misfit.timeinterpolation', 'format', 'String') 95 WriteData(fid, prefix, 'data', self.weights, 'name', 'md.misfit.weights', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 96 WriteData(fid, prefix, 'data', self.weights_string, 'name', 'md.misfit.weights_string', 'format', 'String') 97 # }}} -
issm/trunk-jpl/src/m/classes/mismipbasalforcings.py
r23716 r24213 5 5 import numpy as np 6 6 7 7 8 class mismipbasalforcings(object): 8 9 9 """ 10 MISMIP Basal Forcings class definition 10 11 11 12 mismipbasalforcings=mismipbasalforcings()13 12 Usage: 13 mismipbasalforcings = mismipbasalforcings() 14 """ 14 15 15 def __init__(self):# {{{16 17 18 19 20 21 16 def __init__(self): # {{{ 17 self.groundedice_melting_rate = float('NaN') 18 self.meltrate_factor = float('NaN') 19 self.threshold_thickness = float('NaN') 20 self.upperdepth_melt = float('NaN') 21 self.geothermalflux = float('NaN') 22 self.setdefaultparameters() 22 23 23 #}}} 24 def __repr__(self): # {{{ 25 string=" MISMIP+ basal melt parameterization\n" 26 string="%s\n%s"%(string,fielddisplay(self,"groundedice_melting_rate","basal melting rate (positive if melting) [m/yr]")) 27 string="%s\n%s"%(string,fielddisplay(self,"meltrate_factor","Melt-rate rate factor [1/yr] (sign is opposite to MISMIP+ benchmark to remain consistent with ISSM convention of positive values for melting)")) 28 string="%s\n%s"%(string,fielddisplay(self,"threshold_thickness","Threshold thickness for saturation of basal melting [m]")) 29 string="%s\n%s"%(string,fielddisplay(self,"upperdepth_melt","Depth above which melt rate is zero [m]")) 30 string="%s\n%s"%(string,fielddisplay(self,"geothermalflux","Geothermal heat flux [W/m^2]")) 31 return string 32 #}}} 33 def extrude(self,md): # {{{ 34 self.groundedice_melting_rate=project3d(md,'vector',self.groundedice_melting_rate,'type','node','layer',1) 35 self.geothermalflux=project3d(md,'vector',self.geothermalflux,'type','node','layer',1) #bedrock only gets geothermal flux 36 return self 37 #}}} 38 def initialize(self,md): # {{{ 39 if np.all(np.isnan(self.groundedice_melting_rate)): 40 self.groundedice_melting_rate=np.zeros((md.mesh.numberofvertices)) 41 print(' no basalforcings.groundedice_melting_rate specified: values set as zero') 42 if np.all(np.isnan(self.geothermalflux)): 43 self.geothermalflux=np.zeros((md.mesh.numberofvertices)) 44 print(" no basalforcings.geothermalflux specified: values set as zero") 45 return self 46 #}}} 47 def setdefaultparameters(self): # {{{ 48 # default values for melting parameterization 49 self.meltrate_factor = 0.2 50 self.threshold_thickness = 75. 51 self.upperdepth_melt = -100. 52 return self 53 #}}} 54 def checkconsistency(self,md,solution,analyses): # {{{ 55 #Early return 56 if 'MasstransportAnalysis' in analyses and not (solution=='TransientSolution' and md.transient.ismasstransport==0): 57 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1) 58 md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1]) 59 md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1]) 60 md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1]) 24 #}}} 61 25 62 if 'BalancethicknessAnalysis' in analyses: 63 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 64 md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1]) 65 md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1]) 66 md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1]) 26 def __repr__(self): # {{{ 27 string = " MISMIP + basal melt parameterization\n" 28 string = "%s\n%s" % (string, fielddisplay(self, "groundedice_melting_rate", "basal melting rate (positive if melting) [m / yr]")) 29 string = "%s\n%s" % (string, fielddisplay(self, "meltrate_factor", "Melt - rate rate factor [1 / yr] (sign is opposite to MISMIP + benchmark to remain consistent with ISSM convention of positive values for melting)")) 30 string = "%s\n%s" % (string, fielddisplay(self, "threshold_thickness", "Threshold thickness for saturation of basal melting [m]")) 31 string = "%s\n%s" % (string, fielddisplay(self, "upperdepth_melt", "Depth above which melt rate is zero [m]")) 32 string = "%s\n%s" % (string, fielddisplay(self, "geothermalflux", "Geothermal heat flux [W / m^2]")) 33 return string 34 #}}} 67 35 68 if 'ThermalAnalysis' in analyses and not (solution=='TransientSolution' and md.transient.isthermal==0): 69 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1) 70 md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1]) 71 md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1]) 72 md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1]) 73 md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0) 74 return md 75 # }}} 76 def marshall(self,prefix,md,fid): # {{{ 77 yts=md.constants.yts 78 if yts!=365.2422*24.*3600.: 79 print('WARNING: value of yts for MISMIP+ runs different from ISSM default!') 36 def extrude(self, md): # {{{ 37 self.groundedice_melting_rate = project3d(md, 'vector', self.groundedice_melting_rate, 'type', 'node', 'layer', 1) 38 self.geothermalflux = project3d(md, 'vector', self.geothermalflux, 'type', 'node', 'layer', 1) #bedrock only gets geothermal flux 39 return self 40 #}}} 80 41 81 WriteData(fid,prefix,'name','md.basalforcings.model','data',3,'format','Integer') 82 WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','name','md.basalforcings.groundedice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 83 WriteData(fid,prefix,'object',self,'fieldname','geothermalflux','name','md.basalforcings.geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 84 WriteData(fid,prefix,'object',self,'fieldname','meltrate_factor','format','Double','scale',1./yts) 85 WriteData(fid,prefix,'object',self,'fieldname','threshold_thickness','format','Double') 86 WriteData(fid,prefix,'object',self,'fieldname','upperdepth_melt','format','Double') 42 def initialize(self, md): # {{{ 43 if np.all(np.isnan(self.groundedice_melting_rate)): 44 self.groundedice_melting_rate = np.zeros((md.mesh.numberofvertices)) 45 print(' no basalforcings.groundedice_melting_rate specified: values set as zero') 46 if np.all(np.isnan(self.geothermalflux)): 47 self.geothermalflux = np.zeros((md.mesh.numberofvertices)) 48 print(" no basalforcings.geothermalflux specified: values set as zero") 49 return self 50 #}}} 51 52 def setdefaultparameters(self): # {{{ 53 # default values for melting parameterization 54 self.meltrate_factor = 0.2 55 self.threshold_thickness = 75. 56 self.upperdepth_melt = - 100. 57 return self 58 #}}} 59 60 def checkconsistency(self, md, solution, analyses): # {{{ 61 #Early return 62 if 'MasstransportAnalysis' in analyses and not (solution == 'TransientSolution' and md.transient.ismasstransport == 0): 63 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 64 md = checkfield(md, 'fieldname', 'basalforcings.meltrate_factor', '>=', 0, 'numel', [1]) 65 md = checkfield(md, 'fieldname', 'basalforcings.threshold_thickness', '>=', 0, 'numel', [1]) 66 md = checkfield(md, 'fieldname', 'basalforcings.upperdepth_melt', '<=', 0, 'numel', [1]) 67 68 if 'BalancethicknessAnalysis' in analyses: 69 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 70 md = checkfield(md, 'fieldname', 'basalforcings.meltrate_factor', '>=', 0, 'numel', [1]) 71 md = checkfield(md, 'fieldname', 'basalforcings.threshold_thickness', '>=', 0, 'numel', [1]) 72 md = checkfield(md, 'fieldname', 'basalforcings.upperdepth_melt', '<=', 0, 'numel', [1]) 73 74 if 'ThermalAnalysis' in analyses and not (solution == 'TransientSolution' and md.transient.isthermal == 0): 75 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 76 md = checkfield(md, 'fieldname', 'basalforcings.meltrate_factor', '>=', 0, 'numel', [1]) 77 md = checkfield(md, 'fieldname', 'basalforcings.threshold_thickness', '>=', 0, 'numel', [1]) 78 md = checkfield(md, 'fieldname', 'basalforcings.upperdepth_melt', '<=', 0, 'numel', [1]) 79 md = checkfield(md, 'fieldname', 'basalforcings.geothermalflux', 'NaN', 1, 'Inf', 1, 'timeseries', 1, '>=', 0) 80 return md 87 81 # }}} 82 83 def marshall(self, prefix, md, fid): # {{{ 84 yts = md.constants.yts 85 if yts != 365.2422 * 24. * 3600.: 86 print('WARNING: value of yts for MISMIP + runs different from ISSM default!') 87 88 WriteData(fid, prefix, 'name', 'md.basalforcings.model', 'data', 3, 'format', 'Integer') 89 WriteData(fid, prefix, 'object', self, 'fieldname', 'groundedice_melting_rate', 'format', 'DoubleMat', 'name', 'md.basalforcings.groundedice_melting_rate', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 90 WriteData(fid, prefix, 'object', self, 'fieldname', 'geothermalflux', 'name', 'md.basalforcings.geothermalflux', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 91 WriteData(fid, prefix, 'object', self, 'fieldname', 'meltrate_factor', 'format', 'Double', 'scale', 1. / yts) 92 WriteData(fid, prefix, 'object', self, 'fieldname', 'threshold_thickness', 'format', 'Double') 93 WriteData(fid, prefix, 'object', self, 'fieldname', 'upperdepth_melt', 'format', 'Double') 94 # }}} -
issm/trunk-jpl/src/m/classes/model.py
r23870 r24213 75 75 #properties 76 76 def __init__(self): #{{{ 77 78 # classtype = model.properties 79 80 # for classe in dict.keys(classtype): 81 # print classe 82 # self.__dict__[classe] = classtype[str(classe)] 83 77 ''' classtype = model.properties 78 for classe in dict.keys(classtype): 79 print classe 80 self.__dict__[classe] = classtype[str(classe)] 81 ''' 84 82 self.mesh = mesh2d() 85 83 self.mask = mask() … … 176 174 177 175 def __repr__(obj): #{{{ 178 #print "Here %s the number: %d" % ("is", 179 string = "%19s: % -22s --%s" % ("mesh", "[%s, %s]" % ("1x1", obj.mesh.__class__.__name__), "mesh properties")180 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("mask", "[%s, %s]" % ("1x1", obj.mask.__class__.__name__), "defines grounded and floating elements"))181 string = "%s\n%s" % (string, "%19s: % -22s -- %s" % ("geometry", "[%s, %s]" % ("1x1", obj.geometry.__class__.__name__), "surface elevation, bedrock topography,ice thickness, ..."))182 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("constants", "[%s, %s]" % ("1x1", obj.constants.__class__.__name__), "physical constants"))183 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("smb", "[%s, %s]" % ("1x1", obj.smb.__class__.__name__), "surface mass balance"))184 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("basalforcings", "[%s, %s]" % ("1x1", obj.basalforcings.__class__.__name__), "bed forcings"))185 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("materials", "[%s, %s]" % ("1x1", obj.materials.__class__.__name__), "material properties"))186 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("damage", "[%s, %s]" % ("1x1", obj.damage.__class__.__name__), "damage propagation laws"))187 string = "%s\n%s" % (string, "%19s: % -22s -- %s" % ("friction", "[%s, %s]" % ("1x1", obj.friction.__class__.__name__), "basal friction/drag properties"))188 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("flowequation", "[%s, %s]" % ("1x1", obj.flowequation.__class__.__name__), "flow equations"))189 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("timestepping", "[%s, %s]" % ("1x1", obj.timestepping.__class__.__name__), "time stepping for transient models"))190 string = "%s\n%s" % (string, "%19s: % -22s -- %s" % ("initialization", "[%s, %s]" % ("1x1", obj.initialization.__class__.__name__), "initial guess/state"))191 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("rifts", "[%s, %s]" % ("1x1", obj.rifts.__class__.__name__), "rifts properties"))192 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("slr", "[%s, %s]" % ("1x1", obj.slr.__class__.__name__), "slr forcings"))193 string = "%s\n%s" % (string, "%19s: % -22s -- %s" % ("debug", "[%s, %s]" % ("1x1", obj.debug.__class__.__name__), "debugging tools (valgrind,gprof)"))194 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("verbose", "[%s, %s]" % ("1x1", obj.verbose.__class__.__name__), "verbosity level in solve"))195 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("settings", "[%s, %s]" % ("1x1", obj.settings.__class__.__name__), "settings properties"))196 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("toolkits", "[%s, %s]" % ("1x1", obj.toolkits.__class__.__name__), "PETSc options for each solution"))197 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("cluster", "[%s, %s]" % ("1x1", obj.cluster.__class__.__name__), "cluster parameters (number of cpus...)"))198 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("balancethickness", "[%s, %s]" % ("1x1", obj.balancethickness.__class__.__name__), "parameters for balancethickness solution"))199 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("stressbalance", "[%s, %s]" % ("1x1", obj.stressbalance.__class__.__name__), "parameters for stressbalance solution"))200 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("groundingline", "[%s, %s]" % ("1x1", obj.groundingline.__class__.__name__), "parameters for groundingline solution"))201 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("hydrology", "[%s, %s]" % ("1x1", obj.hydrology.__class__.__name__), "parameters for hydrology solution"))202 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("masstransport", "[%s, %s]" % ("1x1", obj.masstransport.__class__.__name__), "parameters for masstransport solution"))203 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("thermal", "[%s, %s]" % ("1x1", obj.thermal.__class__.__name__), "parameters for thermal solution"))204 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("steadystate", "[%s, %s]" % ("1x1", obj.steadystate.__class__.__name__), "parameters for steadystate solution"))205 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("transient", "[%s, %s]" % ("1x1", obj.transient.__class__.__name__), "parameters for transient solution"))206 string = "%s\n%s" % (string, "%19s: % -22s -- %s" % ("levelset", "[%s, %s]" % ("1x1", obj.levelset.__class__.__name__), "parameters for moving boundaries (level-set method)"))207 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("calving", "[%s, %s]" % ("1x1", obj.calving.__class__.__name__), "parameters for calving"))208 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("frontalforcings", "[%s, %s]" % ("1x1", obj.frontalforcings.__class__.__name__), "parameters for frontalforcings"))209 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("gia", "[%s, %s]" % ("1x1", obj.gia.__class__.__name__), "parameters for gia solution"))210 string = "%s\n%s" % (string, '%19s: % -22s --%s' % ("love", "[%s, %s]" % ("1x1", obj.love.__class__.__name__), "parameters for love solution"))211 string = "%s\n%s" % (string, '%19s: % -22s --%s' % ("esa", "[%s, %s]" % ("1x1", obj.esa.__class__.__name__), "parameters for elastic adjustment solution"))212 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("autodiff", "[%s, %s]" % ("1x1", obj.autodiff.__class__.__name__), "automatic differentiation parameters"))213 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("inversion", "[%s, %s]" % ("1x1", obj.inversion.__class__.__name__), "parameters for inverse methods"))214 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("qmu", "[%s, %s]" % ("1x1", obj.qmu.__class__.__name__), "dakota properties"))215 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("amr", "[%s, %s]" % ("1x1", obj.amr.__class__.__name__), "adaptive mesh refinement properties"))216 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("outputdefinition", "[%s, %s]" % ("1x1", obj.outputdefinition.__class__.__name__), "output definition"))217 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("results", "[%s, %s]" % ("1x1", obj.results.__class__.__name__), "model results"))218 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("radaroverlay", "[%s, %s]" % ("1x1", obj.radaroverlay.__class__.__name__), "radar image for plot overlay"))219 string = "%s\n%s" % (string, "%19s: % -22s --%s" % ("miscellaneous", "[%s, %s]" % ("1x1", obj.miscellaneous.__class__.__name__), "miscellaneous fields"))176 #print "Here %s the number: %d" % ("is", 37) 177 string = "%19s: % - 22s - - %s" % ("mesh", "[%s, %s]" % ("1x1", obj.mesh.__class__.__name__), "mesh properties") 178 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("mask", "[%s, %s]" % ("1x1", obj.mask.__class__.__name__), "defines grounded and floating elements")) 179 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("geometry", "[%s, %s]" % ("1x1", obj.geometry.__class__.__name__), "surface elevation, bedrock topography, ice thickness, ...")) 180 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("constants", "[%s, %s]" % ("1x1", obj.constants.__class__.__name__), "physical constants")) 181 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("smb", "[%s, %s]" % ("1x1", obj.smb.__class__.__name__), "surface mass balance")) 182 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("basalforcings", "[%s, %s]" % ("1x1", obj.basalforcings.__class__.__name__), "bed forcings")) 183 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("materials", "[%s, %s]" % ("1x1", obj.materials.__class__.__name__), "material properties")) 184 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("damage", "[%s, %s]" % ("1x1", obj.damage.__class__.__name__), "damage propagation laws")) 185 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("friction", "[%s, %s]" % ("1x1", obj.friction.__class__.__name__), "basal friction / drag properties")) 186 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("flowequation", "[%s, %s]" % ("1x1", obj.flowequation.__class__.__name__), "flow equations")) 187 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("timestepping", "[%s, %s]" % ("1x1", obj.timestepping.__class__.__name__), "time stepping for transient models")) 188 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("initialization", "[%s, %s]" % ("1x1", obj.initialization.__class__.__name__), "initial guess / state")) 189 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("rifts", "[%s, %s]" % ("1x1", obj.rifts.__class__.__name__), "rifts properties")) 190 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("slr", "[%s, %s]" % ("1x1", obj.slr.__class__.__name__), "slr forcings")) 191 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("debug", "[%s, %s]" % ("1x1", obj.debug.__class__.__name__), "debugging tools (valgrind, gprof)")) 192 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("verbose", "[%s, %s]" % ("1x1", obj.verbose.__class__.__name__), "verbosity level in solve")) 193 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("settings", "[%s, %s]" % ("1x1", obj.settings.__class__.__name__), "settings properties")) 194 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("toolkits", "[%s, %s]" % ("1x1", obj.toolkits.__class__.__name__), "PETSc options for each solution")) 195 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("cluster", "[%s, %s]" % ("1x1", obj.cluster.__class__.__name__), "cluster parameters (number of cpus...)")) 196 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("balancethickness", "[%s, %s]" % ("1x1", obj.balancethickness.__class__.__name__), "parameters for balancethickness solution")) 197 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("stressbalance", "[%s, %s]" % ("1x1", obj.stressbalance.__class__.__name__), "parameters for stressbalance solution")) 198 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("groundingline", "[%s, %s]" % ("1x1", obj.groundingline.__class__.__name__), "parameters for groundingline solution")) 199 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("hydrology", "[%s, %s]" % ("1x1", obj.hydrology.__class__.__name__), "parameters for hydrology solution")) 200 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("masstransport", "[%s, %s]" % ("1x1", obj.masstransport.__class__.__name__), "parameters for masstransport solution")) 201 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("thermal", "[%s, %s]" % ("1x1", obj.thermal.__class__.__name__), "parameters for thermal solution")) 202 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("steadystate", "[%s, %s]" % ("1x1", obj.steadystate.__class__.__name__), "parameters for steadystate solution")) 203 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("transient", "[%s, %s]" % ("1x1", obj.transient.__class__.__name__), "parameters for transient solution")) 204 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("levelset", "[%s, %s]" % ("1x1", obj.levelset.__class__.__name__), "parameters for moving boundaries (level - set method)")) 205 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("calving", "[%s, %s]" % ("1x1", obj.calving.__class__.__name__), "parameters for calving")) 206 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("frontalforcings", "[%s, %s]" % ("1x1", obj.frontalforcings.__class__.__name__), "parameters for frontalforcings")) 207 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("gia", "[%s, %s]" % ("1x1", obj.gia.__class__.__name__), "parameters for gia solution")) 208 string = "%s\n%s" % (string, '%19s: % - 22s - - %s' % ("love", "[%s, %s]" % ("1x1", obj.love.__class__.__name__), "parameters for love solution")) 209 string = "%s\n%s" % (string, '%19s: % - 22s - - %s' % ("esa", "[%s, %s]" % ("1x1", obj.esa.__class__.__name__), "parameters for elastic adjustment solution")) 210 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("autodiff", "[%s, %s]" % ("1x1", obj.autodiff.__class__.__name__), "automatic differentiation parameters")) 211 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("inversion", "[%s, %s]" % ("1x1", obj.inversion.__class__.__name__), "parameters for inverse methods")) 212 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("qmu", "[%s, %s]" % ("1x1", obj.qmu.__class__.__name__), "dakota properties")) 213 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("amr", "[%s, %s]" % ("1x1", obj.amr.__class__.__name__), "adaptive mesh refinement properties")) 214 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("outputdefinition", "[%s, %s]" % ("1x1", obj.outputdefinition.__class__.__name__), "output definition")) 215 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("results", "[%s, %s]" % ("1x1", obj.results.__class__.__name__), "model results")) 216 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("radaroverlay", "[%s, %s]" % ("1x1", obj.radaroverlay.__class__.__name__), "radar image for plot overlay")) 217 string = "%s\n%s" % (string, "%19s: % - 22s - - %s" % ("miscellaneous", "[%s, %s]" % ("1x1", obj.miscellaneous.__class__.__name__), "miscellaneous fields")) 220 218 return string 221 219 # }}} 222 220 223 def checkmessage(self, string): 221 def checkmessage(self, string): # {{{ 224 222 print("model not consistent: {}".format(string)) 225 223 self.private.isconsistent = False … … 228 226 #@staticmethod 229 227 230 def extract(self, area): 228 def extract(self, area): # {{{ 231 229 """ 232 230 extract - extract a model according to an Argus contour or flag list … … 234 232 This routine extracts a submodel from a bigger model with respect to a given contour 235 233 md must be followed by the corresponding exp file or flags list 236 It can either be a domain file (argus type, .exp extension),or an array of element flags.234 It can either be a domain file (argus type, .exp extension), or an array of element flags. 237 235 If user wants every element outside the domain to be 238 extract2d, 236 extract2d, add '~' to the name of the domain file (ex: '~HO.exp') 239 237 an empty string '' will be considered as an empty domain 240 238 a string 'all' will be considered as the entire domain … … 246 244 md2 = extract(md, 'Domain.exp') 247 245 248 See also: EXTRUDE, 246 See also: EXTRUDE, COLLAPSE 249 247 """ 250 248 251 249 #copy model 252 250 md1 = copy.deepcopy(self) 253 251 254 252 #get elements that are inside area 255 253 flag_elem = FlagElements(md1, area) 256 254 if not np.any(flag_elem): 257 255 raise RuntimeError("extracted model is empty") 258 256 259 257 #kick out all elements with 3 dirichlets 260 258 spc_elem = np.nonzero(np.logical_not(flag_elem))[0] 261 259 spc_node = np.unique(md1.mesh.elements[spc_elem, :]) - 1 … … 265 263 flag_elem[pos] = 0 266 264 267 265 #extracted elements and nodes lists 268 266 pos_elem = np.nonzero(flag_elem)[0] 269 267 pos_node = np.unique(md1.mesh.elements[pos_elem, :]) - 1 270 268 271 269 #keep track of some fields 272 270 numberofvertices1 = md1.mesh.numberofvertices 273 271 numberofelements1 = md1.mesh.numberofelements … … 277 275 flag_node[pos_node] = 1 278 276 279 277 #Create Pelem and Pnode (transform old nodes in new nodes and same thing for the elements) 280 278 Pelem = np.zeros(numberofelements1, int) 281 279 Pelem[pos_elem] = np.arange(1, numberofelements2 + 1) … … 283 281 Pnode[pos_node] = np.arange(1, numberofvertices2 + 1) 284 282 285 283 #renumber the elements (some node won't exist anymore) 286 284 elements_1 = copy.deepcopy(md1.mesh.elements) 287 285 elements_2 = elements_1[pos_elem, :] … … 294 292 elements_2[:, 5] = Pnode[elements_2[:, 5] - 1] 295 293 296 #OK,now create the new model!297 298 294 #OK, now create the new model! 295 296 #take every field from model 299 297 md2 = copy.deepcopy(md1) 300 298 301 302 303 299 #automatically modify fields 300 301 #loop over model fields 304 302 model_fields = vars(md1) 305 303 for fieldi in model_fields: … … 334 332 335 333 #modify some specific fields 336 337 334 #Mesh 338 335 md2.mesh.numberofelements = numberofelements2 … … 377 374 #Edges 378 375 if md1.mesh.domaintype() == '2Dhorizontal': 379 if np.ndim(md2.mesh.edges) > 1 and np.size(md2.mesh.edges, axis=1) > 1: 376 if np.ndim(md2.mesh.edges) > 1 and np.size(md2.mesh.edges, axis=1) > 1: #do not use ~isnan because there are some np.nans... 380 377 #renumber first two columns 381 pos = np.nonzero(md2.mesh.edges[:, 3] != - 1)[0]378 pos = np.nonzero(md2.mesh.edges[:, 3] != - 1)[0] 382 379 md2.mesh.edges[:, 0] = Pnode[md2.mesh.edges[:, 0] - 1] 383 380 md2.mesh.edges[:, 1] = Pnode[md2.mesh.edges[:, 1] - 1] … … 386 383 #remove edges when the 2 vertices are not in the domain. 387 384 md2.mesh.edges = md2.mesh.edges[np.nonzero(np.logical_and(md2.mesh.edges[:, 0], md2.mesh.edges[:, 1]))[0], :] 388 #Replace all zeros by - 1 in the last two columns385 #Replace all zeros by - 1 in the last two columns 389 386 pos = np.nonzero(md2.mesh.edges[:, 2] == 0)[0] 390 md2.mesh.edges[pos, 2] = - 1387 md2.mesh.edges[pos, 2] = - 1 391 388 pos = np.nonzero(md2.mesh.edges[:, 3] == 0)[0] 392 md2.mesh.edges[pos, 3] = - 1393 #Invert - 1 on the third column with last column (Also invert first two columns!!)394 pos = np.nonzero(md2.mesh.edges[:, 2] == - 1)[0]389 md2.mesh.edges[pos, 3] = - 1 390 #Invert - 1 on the third column with last column (Also invert first two columns!!) 391 pos = np.nonzero(md2.mesh.edges[:, 2] == - 1)[0] 395 392 md2.mesh.edges[pos, 2] = md2.mesh.edges[pos, 3] 396 393 md2.mesh.edges[pos, 3] = - 1 … … 502 499 setattr(fieldr, solutionsubfield, subfield) 503 500 504 501 #Keep track of pos_node and pos_elem 505 502 md2.mesh.extractedvertices = pos_node + 1 506 503 md2.mesh.extractedelements = pos_elem + 1 … … 509 506 # }}} 510 507 511 def extrude(md, *args): 508 def extrude(md, *args): # {{{ 512 509 """ 513 510 EXTRUDE - vertically extrude a 2d mesh … … 515 512 vertically extrude a 2d mesh and create corresponding 3d mesh. 516 513 The vertical distribution can: 517 518 - follow two polynomial laws,one for the lower part and one for the upper part of the mesh519 514 - follow a polynomial law 515 - follow two polynomial laws, one for the lower part and one for the upper part of the mesh 516 - be discribed by a list of coefficients (between 0 and 1) 520 517 521 518 … … 526 523 527 524 Example: 528 md = extrude(md, 15, 1.3) ;529 md = extrude(md, 15, 1.3, 1.2) ;525 md = extrude(md, 15, 1.3) 526 md = extrude(md, 15, 1.3, 1.2) 530 527 md = extrude(md, [0 0.2 0.5 0.7 0.9 0.95 1]) 531 528 532 See also: MODELEXTRACT, 529 See also: MODELEXTRACT, COLLAPSE 533 530 """ 534 531 #some checks on list of arguments … … 537 534 538 535 #Extrude the mesh 539 if len(args) == 1: 536 if len(args) == 1: #list of coefficients 540 537 clist = args[0] 541 538 if any(clist < 0) or any(clist > 1): … … 546 543 numlayers = len(extrusionlist) 547 544 548 elif len(args) == 2: 545 elif len(args) == 2: #one polynomial law 549 546 if args[1] <= 0: 550 raise TypeError("extrusionexponent must be >= 0")547 raise TypeError("extrusionexponent must be >= 0") 551 548 numlayers = args[0] 552 549 extrusionlist = (np.arange(0., float(numlayers - 1) + 1., 1.) / float(numlayers - 1))**args[1] 553 550 554 elif len(args) == 3: 551 elif len(args) == 3: #two polynomial laws 555 552 numlayers = args[0] 556 553 lowerexp = args[1] … … 558 555 559 556 if args[1] <= 0 or args[2] <= 0: 560 raise TypeError("lower and upper extrusionexponents must be >= 0")557 raise TypeError("lower and upper extrusionexponents must be >= 0") 561 558 562 559 lowerextrusionlist = (np.arange(0., 1. + 2. / float(numlayers - 1), 2. / float(numlayers - 1)))**lowerexp / 2. … … 593 590 x3d = np.empty((0)) 594 591 y3d = np.empty((0)) 595 z3d = np.empty((0)) 596 thickness3d = md.geometry.thickness 592 z3d = np.empty((0)) #the lower node is on the bed 593 thickness3d = md.geometry.thickness #thickness and bed for these nodes 597 594 bed3d = md.geometry.base 598 595 … … 602 599 y3d = np.concatenate((y3d, md.mesh.y)) 603 600 #nodes are distributed between bed and surface accordingly to the given exponent 604 z3d = np.concatenate((z3d, (bed3d + thickness3d * extrusionlist[i]).reshape(- 1)))605 number_nodes3d = np.size(x3d) 601 z3d = np.concatenate((z3d, (bed3d + thickness3d * extrusionlist[i]).reshape(- 1))) 602 number_nodes3d = np.size(x3d) #number of 3d nodes for the non extruded part of the mesh 606 603 607 604 #Extrude elements … … 609 606 for i in range(numlayers - 1): 610 607 elements3d = np.vstack((elements3d, np.hstack((md.mesh.elements + i * md.mesh.numberofvertices, 611 md.mesh.elements + (i + 1) * md.mesh.numberofvertices)))) 612 number_el3d = np.size(elements3d, axis=0) 608 md.mesh.elements + (i + 1) * md.mesh.numberofvertices)))) #Create the elements of the 3d mesh for the non extruded part 609 number_el3d = np.size(elements3d, axis=0) #number of 3d nodes for the non extruded part of the mesh 613 610 614 611 #Keep a trace of lower and upper nodes … … 644 641 md.mesh.numberoflayers = numlayers 645 642 646 #Ok, now deal with the other fields from the 2d mesh: 647 643 #Ok, now deal with the other fields from the 2d mesh: 648 644 #bedinfo and surface info 649 645 md.mesh.vertexonbase = project3d(md, 'vector', np.ones(md.mesh.numberofvertices2d, bool), 'type', 'node', 'layer', 1) … … 697 693 698 694 return md 699 695 # }}} 700 696 701 697 def collapse(md): #{{{ … … 704 700 705 701 This routine collapses a 3d model into a 2d model and collapses all 706 the fileds of the 3d model by taking their depth -averaged values702 the fileds of the 3d model by taking their depth - averaged values 707 703 708 704 Usage: … … 719 715 md.friction.coefficient = project2d(md, md.friction.coefficient, 1) 720 716 721 #p and q (same deal, 717 #p and q (same deal, except for element that are on the bedrock: ) 722 718 if hasattr(md.friction, 'p'): 723 719 md.friction.p = project2d(md, md.friction.p, 1) … … 802 798 if isvector: 803 799 md.hydrology.__dict__[field] = project2d(md, md.hydrology.__dict__[field], 1) 804 805 800 806 801 #boundary conditions … … 883 878 return md 884 879 885 #}}}880 #}}} -
issm/trunk-jpl/src/m/classes/organizer.py
r23719 r24213 8 8 #hack to keep python 2 compatipility 9 9 try: 10 11 10 #py3 import 11 from dbm.ndbm import whichdb 12 12 except ImportError: 13 14 13 #py2 import 14 from whichdb import whichdb 15 15 16 16 import MatlabFuncs as m 17 17 18 18 19 class organizer(object): 19 20 20 """ 21 ORGANIZER class definition 21 22 22 23 24 25 26 23 Supported options: 24 repository: directory where all models will be saved 25 prefix: prefix for saved model names 26 steps: requested steps 27 trunkprefix:prefix of previous run with a different prefix. Used to branch. 27 28 28 29 29 Usage: 30 org = organizer(varargin) 30 31 31 32 org = organizer('repository','Models/','prefix','AGU2015','steps',0); %build an empty organizer object with a given repository33 32 Examples: 33 org = organizer('repository', 'Models/', 'prefix', 'AGU2015', 'steps', 0); %build an empty organizer object with a given repository 34 """ 34 35 35 def __init__(self,*args):# {{{36 self._currentstep =037 self.repository ='./'38 self.prefix ='model.'39 self.trunkprefix =''40 self.steps =[]41 self.requestedsteps=[0]36 def __init__(self, *args): # {{{ 37 self._currentstep = 0 38 self.repository = './' 39 self.prefix = 'model.' 40 self.trunkprefix = '' 41 self.steps = [] 42 self.requestedsteps = [0] 42 43 43 44 options=pairoptions.pairoptions(*args)44 #process options 45 options = pairoptions.pairoptions(*args) 45 46 46 47 prefix=options.getfieldvalue('prefix','model.')48 if not isinstance(prefix,str):49 50 if not m.strcmp(prefix,prefix.strip()) or len(prefix.split()) > 1:51 52 self.prefix=prefix47 #Get prefix 48 prefix = options.getfieldvalue('prefix', 'model.') 49 if not isinstance(prefix, str): 50 raise TypeError("prefix is not a string") 51 if not m.strcmp(prefix, prefix.strip()) or len(prefix.split()) > 1: 52 raise TypeError("prefix should not have any white space") 53 self.prefix = prefix 53 54 54 55 repository=options.getfieldvalue('repository','./')56 if not isinstance(repository,str):57 58 59 60 self.repository=repository55 #Get repository 56 repository = options.getfieldvalue('repository', './') 57 if not isinstance(repository, str): 58 raise TypeError("repository is not a string") 59 if not os.path.isdir(repository): 60 raise IOError("Directory '%s' not found" % repository) 61 self.repository = repository 61 62 62 63 self.requestedsteps=options.getfieldvalue('steps',[0])63 #Get steps 64 self.requestedsteps = options.getfieldvalue('steps', [0]) 64 65 65 #Get trunk prefix (only if provided by user) 66 if options.exist('trunkprefix'): 67 trunkprefix=options.getfieldvalue('trunkprefix','') 68 if not isinstance(trunkprefix,str): 69 raise TypeError("trunkprefix is not a string") 70 if not m.strcmp(trunkprefix,trunkprefix.strip()) or len(trunkprefix.split()) > 1: 71 raise TypeError("trunkprefix should not have any white space") 72 self.trunkprefix=trunkprefix 73 #}}} 74 def __repr__(self): # {{{ 75 s ="" 66 #Get trunk prefix (only if provided by user) 67 if options.exist('trunkprefix'): 68 trunkprefix = options.getfieldvalue('trunkprefix', '') 69 if not isinstance(trunkprefix, str): 70 raise TypeError("trunkprefix is not a string") 71 if not m.strcmp(trunkprefix, trunkprefix.strip()) or len(trunkprefix.split()) > 1: 72 raise TypeError("trunkprefix should not have any white space") 73 self.trunkprefix = trunkprefix 74 #}}} 76 75 77 s+="%s\n" % " Repository: '%s'" % self.repository 78 s+="%s\n" % " Prefix: '%s'" % self.prefix 79 if not self.steps: 80 s+="%s\n" % " no step" 81 else: 82 for step in self.steps: 83 s+="%s\n" % " step #%2i: '%s'",step['id'],step['string'] 84 #}}} 85 def load(self,string): # {{{ 76 def __repr__(self): # {{{ 77 s = "" 78 s += "%s\n" % " Repository: '%s'" % self.repository 79 s += "%s\n" % " Prefix: '%s'" % self.prefix 80 if not self.steps: 81 s += "%s\n" % " no step" 82 else: 83 for step in self.steps: 84 s += "%s\n" % " step #%2i: '%s'", step['id'], step['string'] 85 #}}} 86 86 87 #Get model path 88 if not isinstance(string,str): 89 raise TypeError("argument provided is not a string") 90 path=os.path.join(self.repository,self.prefix+string) 87 def load(self, string): # {{{ 88 #Get model path 89 if not isinstance(string, str): 90 raise TypeError("argument provided is not a string") 91 path = os.path.join(self.repository, self.prefix + string) 91 92 92 93 94 struc=loadvars(path)95 name=name=[key for key in list(struc.keys())]96 md=struc.name[0]97 98 93 #figure out if the model is there 94 if os.path.exists(path): 95 struc = loadvars(path) 96 name = name = [key for key in list(struc.keys())] 97 md = struc.name[0] 98 else: 99 raise IOError("Could not find '%s'" % path) 99 100 100 return md 101 #}}} 102 def loadmodel(self,string): # {{{ 101 return md 102 #}}} 103 103 104 #Get model path 105 if not isinstance(string,str): 106 raise TypeError("argument provided is not a string") 107 path1=os.path.join(self.repository,self.prefix+string+'.python') 108 path2=os.path.join(self.repository,string) 104 def loadmodel(self, string): # {{{ 105 #Get model path 106 if not isinstance(string, str): 107 raise TypeError("argument provided is not a string") 108 path1 = os.path.join(self.repository, self.prefix + string + '.python') 109 path2 = os.path.join(self.repository, string) 109 110 110 111 112 md=loadmodel(path1)113 114 115 md=loadmodel(path2)116 111 #figure out if the model is there, otherwise, we have to use the default path supplied by user. 112 if whichdb(path1): 113 md = loadmodel(path1) 114 return md 115 elif whichdb(path2): 116 md = loadmodel(path2) 117 return md 117 118 118 #If we are here, the model has not been found. Try trunk prefix if provided 119 if self.trunkprefix: 120 path2=os.path.join(self.repository,self.trunkprefix+string) 121 if not os.path.exists(path2): 122 raise IOError("Could find neither '%s' nor '%s'" % (path,path2)) 123 else: 124 print(("--> Branching '%s' from trunk '%s'" % (self.prefix,self.trunkprefix))) 125 md=loadmodel(path2) 126 return md 127 else: 128 raise IOError("Could not find '%s'" % path1) 129 #}}} 130 def perform(self,string): # {{{ 119 #If we are here, the model has not been found. Try trunk prefix if provided 120 if self.trunkprefix: 121 path2 = os.path.join(self.repository, self.trunkprefix + string) 122 if not os.path.exists(path2): 123 raise IOError("Could find neither '%s' nor '%s'" % (path1, path2)) 124 else: 125 print((" - - > Branching '%s' from trunk '%s'" % (self.prefix, self.trunkprefix))) 126 md = loadmodel(path2) 127 return md 128 else: 129 raise IOError("Could not find '%s'" % path1) 130 #}}} 131 131 132 bool=False 132 def perform(self, string): # {{{ 133 bool = False 133 134 134 135 if not isinstance(string,str):136 137 if not m.strcmp(string,string.strip()) or len(string.split()) > 1:138 139 if self._currentstep>0 and string in [step['string'] for step in self.steps]:140 135 #Some checks 136 if not isinstance(string, str): 137 raise TypeError("Step provided should be a string") 138 if not m.strcmp(string, string.strip()) or len(string.split()) > 1: 139 raise TypeError("Step provided should not have any white space") 140 if self._currentstep > 0 and string in [step['string'] for step in self.steps]: 141 raise RuntimeError("Step '%s' already present. Change name" % string) 141 142 142 143 144 self.steps[-1]['id']=len(self.steps)145 self.steps[-1]['string']=string146 self._currentstep+=1143 #Add step 144 self.steps.append(OrderedDict()) 145 self.steps[-1]['id'] = len(self.steps) 146 self.steps[-1]['string'] = string 147 self._currentstep += 1 147 148 148 149 150 if self._currentstep==1:151 152 print((" step #%i : %s" % (self.steps[self._currentstep-1]['id'],self.steps[self._currentstep-1]['string'])))149 #if requestedsteps = 0, print all steps in self 150 if 0 in self.requestedsteps: 151 if self._currentstep == 1: 152 print((" prefix: %s" % self.prefix)) 153 print((" step #%i : %s" % (self.steps[self._currentstep - 1]['id'], self.steps[self._currentstep - 1]['string']))) 153 154 154 155 156 print(("\n step #%i : %s\n" % (self.steps[self._currentstep-1]['id'],self.steps[self._currentstep-1]['string'])))157 bool=True155 #Ok, now if _currentstep is a member of steps, return true 156 if self._currentstep in self.requestedsteps: 157 print(("\n step #%i : %s\n" % (self.steps[self._currentstep - 1]['id'], self.steps[self._currentstep - 1]['string']))) 158 bool = True 158 159 159 160 160 #assign self back to calling workspace 161 # (no need, since Python modifies class instance directly) 161 162 162 return bool 163 #}}} 164 def savemodel(self,md, name='default'): # {{{ 163 return bool 164 #}}} 165 165 166 #check 167 if self._currentstep==0: 168 raise RuntimeError("Cannot save model because organizer (org) is empty! Make sure you did not skip any perform call") 169 if self._currentstep>len(self.steps): 170 raise RuntimeError("Cannot save model because organizer (org) is not up to date!") 166 def savemodel(self, md, name='default'): # {{{ 167 #check 168 if self._currentstep == 0: 169 raise RuntimeError("Cannot save model because organizer (org) is empty! Make sure you did not skip any perform call") 170 if self._currentstep > len(self.steps): 171 raise RuntimeError("Cannot save model because organizer (org) is not up to date!") 171 172 172 if (name=='default'):173 name=os.path.join(self.repository,self.prefix+self.steps[self._currentstep-1]['string']+'.python')174 175 name=os.path.join(self.repository,name)176 173 if (name == 'default'): 174 name = os.path.join(self.repository, self.prefix + self.steps[self._currentstep - 1]['string'] + '.python') 175 else: 176 name = os.path.join(self.repository, name) 177 print(("saving model as: '%s'" % name)) 177 178 178 179 if not isinstance(md,model):180 181 if self._currentstep>len(self.steps):182 179 #check that md is a model 180 if not isinstance(md, model): 181 print("second argument is not a model") 182 if self._currentstep > len(self.steps): 183 raise RuntimeError("organizer error message: element with id %d not found" % self._currentstep) 183 184 184 185 savevars(name,'md',md)186 185 #save model 186 savevars(name, 'md', md) 187 #}}} -
issm/trunk-jpl/src/m/classes/outputdefinition.py
r21808 r24213 2 2 from checkfield import checkfield 3 3 from WriteData import WriteData 4 import numpy as np 4 import numpy as np 5 5 6 6 7 class outputdefinition(object): 7 8 8 """ 9 OUTPUTDEFINITION class definition 9 10 10 11 outputdefinition=outputdefinition(); 12 11 Usage: 12 outputdefinition = outputdefinition() 13 """ 13 14 14 def __init__(self): # {{{ 15 self.definitions = [] 16 #}}} 17 def __repr__(self): # {{{ 18 string=" Outputdefinitions:" 15 def __init__(self): # {{{ 16 self.definitions = [] 17 #}}} 19 18 20 string="%s\n%s"%(string,fielddisplay(self,"definitions","list of potential outputs that can be requested, but which need additional data to be defined")) 19 def __repr__(self): # {{{ 20 string = " Outputdefinitions:" 21 21 22 return string 23 #}}} 24 def extrude(self,md): # {{{ 25 for definition in self.definitions: 26 definition.extrude(md); 22 string = "%s\n%s" % (string, fielddisplay(self, "definitions", "list of potential outputs that can be requested, but which need additional data to be defined")) 27 23 28 return self 29 #}}} 30 def setdefaultparameters(self): # {{{ 31 return self 32 #}}} 33 def checkconsistency(self,md,solution,analyses): # {{{ 34 35 md = checkfield(md,'fieldname','outputdefinition.definitions','cell',1) 36 for definition in self.definitions: 37 definition.checkconsistency(md,solution,analyses); 24 return string 25 #}}} 38 26 39 # }}} 40 def marshall(self,prefix,md,fid): # {{{ 41 data=[]; 42 for i in range(len(self.definitions)): 43 self.definitions[i].marshall(prefix,md,fid); 44 classdefinition=self.definitions[i].__class__.__name__; 45 classdefinition=classdefinition[0].upper()+classdefinition[1:] 46 data.append(classdefinition) 27 def extrude(self, md): # {{{ 28 for definition in self.definitions: 29 definition.extrude(md) 47 30 48 data=np.unique(data); 49 WriteData(fid,prefix,'data',data,'name','md.outputdefinition.list','format','StringArray'); 50 # }}} 31 return self 32 #}}} 33 34 def setdefaultparameters(self): # {{{ 35 return self 36 #}}} 37 38 def checkconsistency(self, md, solution, analyses): # {{{ 39 40 md = checkfield(md, 'fieldname', 'outputdefinition.definitions', 'cell', 1) 41 for definition in self.definitions: 42 definition.checkconsistency(md, solution, analyses) 43 44 # }}} 45 46 def marshall(self, prefix, md, fid): # {{{ 47 data = [] 48 for i in range(len(self.definitions)): 49 self.definitions[i].marshall(prefix, md, fid) 50 classdefinition = self.definitions[i].__class__.__name__ 51 classdefinition = classdefinition[0].upper() + classdefinition[1:] 52 data.append(classdefinition) 53 54 data = np.unique(data) 55 WriteData(fid, prefix, 'data', data, 'name', 'md.outputdefinition.list', 'format', 'StringArray') 56 # }}} -
issm/trunk-jpl/src/m/classes/pairoptions.py
r23716 r24213 1 1 from collections import OrderedDict 2 from WriteData import WriteData 2 3 3 4 4 class pairoptions(object): 5 6 5 """ 6 PAIROPTIONS class definition 7 7 8 9 pairoptions=pairoptions(); 10 pairoptions=pairoptions('module',true,'solver',false); 11 8 Usage: 9 pairoptions = pairoptions() 10 pairoptions = pairoptions('module', true, 'solver', false) 11 """ 12 12 13 def __init__(self,*arg):# {{{14 15 self.list= OrderedDict()13 def __init__(self, * arg): # {{{ 14 self.functionname = '' 15 self.list = OrderedDict() 16 16 17 18 19 20 self.functionname=inspect.stack()[1][3]17 #get calling function name 18 import inspect 19 if len(inspect.stack()) > 1: 20 self.functionname = inspect.stack()[1][3] 21 21 22 #initialize list 23 if not len(arg): 24 pass #Do nothing, 25 else: 26 self.buildlist(*arg) 27 # }}} 28 def __repr__(self): # {{{ 29 s=" functionname: '{}'\n".format(self.functionname) 30 if self.list: 31 s+=" list: ({}x{}) \n\n".format(len(self.list),2) 32 for item in list(self.list.items()): 33 #if isinstance(item[1],str): 34 s+=" field: {} value: '{}'\n".format((item[0],item[1])) 35 # elif isinstance(item[1],(bool,int,float)): 36 # s+=" field: %-10s value: %g\n" % (item[0],item[1]) 37 # else: 38 # s+=" field: %-10s value: %s\n" % (item[0],type(item[1])) 39 else: 40 s+=" list: empty\n" 41 return s 42 # }}} 43 def buildlist(self,*arg): # {{{ 44 """BUILDLIST - build list of objects from input""" 22 #initialize list 23 if not len(arg): 24 pass #Do nothing, 25 else: 26 self.buildlist(* arg) 27 # }}} 45 28 46 #check length of input 47 if len(arg) % 2: 48 raise TypeError('Invalid parameter/value pair arguments') 49 numoptions = int(len(arg)/2) 29 def __repr__(self): # {{{ 30 s = " functionname: '{}'\n".format(self.functionname) 31 if self.list: 32 s += " list: ({}x{}) \n\n".format(len(self.list), 2) 33 for item in list(self.list.items()): 34 s += " field: {} value: '{}'\n".format((item[0], item[1])) 35 else: 36 s += " list: empty\n" 37 return s 38 # }}} 50 39 51 #go through arg and build list of objects 52 for i in range(numoptions): 53 if isinstance(arg[2*i],str): 54 self.list[arg[2*i]] = arg[2*i+1]; 55 else: 56 #option is not a string, ignore it 57 print(("WARNING: option number {} is not a string and will be ignored.".format(i+1))) 58 # }}} 59 def addfield(self,field,value): # {{{ 60 """ADDFIELD - add a field to an options list""" 61 if isinstance(field,str): 62 if field in self.list: 63 print(("WARNING: field '{}' with value={} exists and will be overwritten with value={}.".format(field,str(self.list[field]),str(value)))) 64 self.list[field] = value 65 # }}} 66 def addfielddefault(self,field,value): # {{{ 67 """ADDFIELDDEFAULT - add a field to an options list if it does not already exist""" 68 if isinstance(field,str): 69 if field not in self.list: 70 self.list[field] = value 71 # }}} 72 def AssignObjectFields(self,obj2): # {{{ 73 """ASSIGNOBJECTFIELDS - assign object fields from options""" 74 for item in list(self.list.items()): 75 if item[0] in dir(obj2): 76 setattr(obj2,item[0],item[1]) 77 else: 78 print(("WARNING: field '%s' is not a property of '%s'." % (item[0],type(obj2)))) 79 return obj2 80 # }}} 81 def changefieldvalue(self,field,newvalue): # {{{ 82 """CHANGEOPTIONVALUE - change the value of an option in an option list""" 40 def buildlist(self, * arg): # {{{ 41 """BUILDLIST - build list of objects from input""" 83 42 84 self.list[field]=newvalue; 85 # }}} 86 def exist(self,field): # {{{ 87 """EXIST - check if the option exist""" 43 #check length of input 44 if len(arg) % 2: 45 raise TypeError('Invalid parameter / value pair arguments') 46 numoptions = int(len(arg) / 2) 88 47 89 #some argument checking: 90 if field == None or field == '': 91 raise ValueError('exist error message: bad usage'); 92 if not isinstance(field,str): 93 raise TypeError("exist error message: field '%s' should be a string." % str(field)); 48 #go through arg and build list of objects 49 for i in range(numoptions): 50 if isinstance(arg[2 * i], str): 51 self.list[arg[2 * i]] = arg[2 * i + 1] 52 else: 53 #option is not a string, ignore it 54 print(("WARNING: option number {} is not a string and will be ignored.".format(i + 1))) 55 # }}} 94 56 95 #Recover option 96 if field in self.list: 97 return True 98 else: 99 return False 100 # }}} 101 def getfieldvalue(self,field,default=None): # {{{ 102 """ 103 GETOPTION - get the value of an option 57 def addfield(self, field, value): # {{{ 58 """ADDFIELD - add a field to an options list""" 59 if isinstance(field, str): 60 if field in self.list: 61 print(("WARNING: field '{}' with value={} exists and will be overwritten with value={}.".format(field, str(self.list[field]), str(value)))) 62 self.list[field] = value 63 # }}} 104 64 105 Usage: 106 value=options.getfieldvalue(field,default) 65 def addfielddefault(self, field, value): # {{{ 66 """ADDFIELDDEFAULT - add a field to an options list if it does not already exist""" 67 if isinstance(field, str): 68 if field not in self.list: 69 self.list[field] = value 70 # }}} 107 71 108 Find an option value from a field. A default option 109 can be given in input if the field does not exist 72 def AssignObjectFields(self, obj2): # {{{ 73 """ASSIGNOBJECTFIELDS - assign object fields from options""" 74 for item in list(self.list.items()): 75 if item[0] in dir(obj2): 76 setattr(obj2, item[0], item[1]) 77 else: 78 print(("WARNING: field '%s' is not a property of '%s'." % (item[0], type(obj2)))) 79 return obj2 80 # }}} 110 81 111 Examples: 112 value=options.getfieldvalue(options,'caxis') 113 value=options.getfieldvalue(options,'caxis',[0 2]) 114 """ 82 def changefieldvalue(self, field, newvalue): # {{{ 83 """CHANGEOPTIONVALUE - change the value of an option in an option list""" 115 84 116 #some argument checking: 117 if field == None or field == '': 118 raise ValueError('getfieldvalue error message: bad usage'); 119 if not isinstance(field,str): 120 raise TypeError("getfieldvalue error message: field '%s' should be a string." % str(field)); 85 self.list[field] = newvalue 86 # }}} 121 87 122 #Recover option 123 if field in self.list: 124 value=self.list[field] 125 else: 126 if not default == None: 127 value=default 128 else: 129 raise KeyError("error message: field '%s' has not been provided by user (and no default value has been specified)." % field) 88 def exist(self, field): # {{{ 89 """EXIST - check if the option exist""" 130 90 131 return value 132 # }}} 133 def removefield(self,field,warn): # {{{ 134 """ 135 REMOVEFIELD - delete a field in an option list 91 #some argument checking: 92 if field is None or field == '': 93 raise ValueError('exist error message: bad usage') 94 if not isinstance(field, str): 95 raise TypeError("exist error message: field '%s' should be a string." % str(field)) 136 96 137 Usage: 138 obj=removefield(self,field,warn) 97 #Recover option 98 if field in self.list: 99 return True 100 else: 101 return False 102 # }}} 139 103 140 if warn==1 display an info message to warn user that 141 some of his options have been removed. 142 """ 104 def getfieldvalue(self, field, default=None): # {{{ 105 """ 106 GETOPTION - get the value of an option 143 107 144 #check if field exist 145 if field in self.list: 108 Usage: 109 value = options.getfieldvalue(field, default) 146 110 147 #remove duplicates from the options list 148 del self.list[field] 111 Find an option value from a field. A default option 112 can be given in input if the field does not exist 149 113 150 #warn user if requested 151 if warn: 152 print(("removefield info: option '%s' has been removed from the list of options." % field)) 153 # }}} 154 def marshall(self,md,fid,firstindex): # {{{ 114 Examples: 115 value = options.getfieldvalue(options, 'caxis') 116 value = options.getfieldvalue(options, 'caxis', [0 2]) 117 """ 155 118 156 for i,item in enumerate(self.list.items()): 157 name = item[0] 158 value = item[1] 119 #some argument checking: 120 if field is None or field == '': 121 raise ValueError('getfieldvalue error message: bad usage') 122 if not isinstance(field, str): 123 raise TypeError("getfieldvalue error message: field '%s' should be a string." % str(field)) 159 124 160 raise NameError('need to sync with MATLAB') 125 #Recover option 126 if field in self.list: 127 value = self.list[field] 128 else: 129 if default is not None: 130 value = default 131 else: 132 raise KeyError("error message: field '%s' has not been provided by user (and no default value has been specified)." % field) 161 133 162 ##Write option name163 #WriteData(fid,prefix,'enum',(firstindex-1)+2*i+1,'data',name,'format','String') 134 return value 135 # }}} 164 136 165 ##Write option value 166 #if isinstance(value,(str,unicode)): 167 # WriteData(fid,prefix,'enum',(firstindex-1)+2*i+2,'data',value,'format','String') 168 #elif isinstance(value,(bool,int,long,float)): 169 # WriteData(fid,prefix,'enum',(firstindex-1)+2*i+2,'data',value,'format','Double') 170 #else: 171 #raise TypeError("Cannot marshall option '%s': format not supported yet." % name) 172 # }}} 137 def removefield(self, field, warn): # {{{ 138 """ 139 REMOVEFIELD - delete a field in an option list 140 141 Usage: 142 obj = removefield(self, field, warn) 143 144 if warn == 1 display an info message to warn user that 145 some of his options have been removed. 146 """ 147 148 #check if field exist 149 if field in self.list: 150 151 #remove duplicates from the options list 152 del self.list[field] 153 154 #warn user if requested 155 if warn: 156 print(("removefield info: option '%s' has been removed from the list of options." % field)) 157 # }}} 158 159 def marshall(self, md, fid, firstindex): # {{{ 160 161 for i, item in enumerate(self.list.items()): 162 name = item[0] 163 value = item[1] 164 165 raise NameError('need to sync with MATLAB') 166 167 #Write option name 168 #WriteData(fid, prefix, 'enum', (firstindex - 1) + 2 * i + 1, 'data', name, 'format', 'String') 169 170 #Write option value 171 #if isinstance(value, (str, unicode)): 172 # WriteData(fid, prefix, 'enum', (firstindex - 1) + 2 * i + 2, 'data', value, 'format', 'String') 173 #elif isinstance(value, (bool, int, long, float)): 174 # WriteData(fid, prefix, 'enum', (firstindex - 1) + 2 * i + 2, 'data', value, 'format', 'Double') 175 #else: 176 #raise TypeError("Cannot marshall option '%s': format not supported yet." % name) 177 # }}} -
issm/trunk-jpl/src/m/classes/plotoptions.py
r23716 r24213 1 from collections import OrderedDict , Counter, defaultdict1 from collections import OrderedDict 2 2 import pairoptions 3 3 4 4 5 class plotoptions(object): 5 6 6 ''' 7 PLOTOPTIONS class definition 7 8 8 9 plotoptions=plotoptions(*arg)10 9 Usage: 10 plotoptions = plotoptions(* arg) 11 ''' 11 12 12 def __init__(self,*arg):# {{{13 14 self.figurenumber= 115 self.list= OrderedDict()13 def __init__(self, * arg): # {{{ 14 self.numberofplots = 0 15 self.figurenumber = 1 16 self.list = OrderedDict() 16 17 17 self.buildlist(*arg) 18 #}}} 19 def __repr__(self): #{{{ 20 s="\n" 21 s+=" numberofplots: %i\n" % self.numberofplots 22 s+=" figurenumber: %i\n" % self.figurenumber 23 if self.list: 24 s+=" list: (%ix%i)\n" % (len(self.list),2) 25 for item in list(self.list.items()): 26 #s+=" options of plot number %i\n" % item 27 if isinstance(item[1],str): 28 s+=" field: %-10s value: '%s'\n" % (item[0],item[1]) 29 elif isinstance(item[1],(bool,int,float)): 30 s+=" field: %-10s value: '%g'\n" % (item[0],item[1]) 31 else: 32 s+=" field: %-10s value: '%s'\n" % (item[0],item[1]) 33 else: 34 s+=" list: empty\n" 35 return s 36 #}}} 37 def buildlist(self,*arg): #{{{ 38 #check length of input 39 if len(arg) % 2: 40 raise TypeError('Invalid parameter/value pair arguments') 18 self.buildlist(* arg) 19 #}}} 41 20 42 #go through args and build list (like pairoptions) 43 rawoptions=pairoptions.pairoptions(*arg) 44 numoptions=int(len(arg)/2) 45 rawlist=[] # cannot be a dict since they do not support duplicate keys 21 def __repr__(self): #{{{ 22 s = "\n" 23 s += " numberofplots: %i\n" % self.numberofplots 24 s += " figurenumber: %i\n" % self.figurenumber 25 if self.list: 26 s += " list: (%ix%i)\n" % (len(self.list), 2) 27 for item in list(self.list.items()): 28 #s += " options of plot number %i\n" % item 29 if isinstance(item[1], str): 30 s += " field: % - 10s value: '%s'\n" % (item[0], item[1]) 31 elif isinstance(item[1], (bool, int, float)): 32 s += " field: % - 10s value: '%g'\n" % (item[0], item[1]) 33 else: 34 s += " field: % - 10s value: '%s'\n" % (item[0], item[1]) 35 else: 36 s += " list: empty\n" 37 return s 38 #}}} 46 39 47 for i in range(numoptions): 48 if isinstance(arg[2*i],str): 49 rawlist.append([arg[2*i],arg[2*i+1]]) 50 else: 51 #option is not a string, ignore it 52 print(("WARNING: option number %d is not a string and will be ignored." % (i+1))) 40 def buildlist(self, * arg): #{{{ 41 #check length of input 42 if len(arg) % 2: 43 raise TypeError('Invalid parameter / value pair arguments') 53 44 54 #get figure number 55 self.figurenumber=rawoptions.getfieldvalue('figure',1) 56 rawoptions.removefield('figure',0) 45 #go through args and build list (like pairoptions) 46 rawoptions = pairoptions.pairoptions(* arg) 47 numoptions = int(len(arg) / 2) 48 rawlist = [] # cannot be a dict since they do not support duplicate keys 57 49 58 #get number of subplots 59 numberofplots=len([1 for sublist in rawlist for x in sublist if str(x)=='data']) 60 self.numberofplots=numberofplots 50 for i in range(numoptions): 51 if isinstance(arg[2 * i], str): 52 rawlist.append([arg[2 * i], arg[2 * i + 1]]) 53 else: 54 #option is not a string, ignore it 55 print(("WARNING: option number %d is not a string and will be ignored." % (i + 1))) 61 56 62 #figure out whether alloptions flag is on 63 if rawoptions.getfieldvalue('alloptions','off') is 'on': 64 allflag=1 65 else: 66 allflag=0 57 #get figure number 58 self.figurenumber = rawoptions.getfieldvalue('figure', 1) 59 rawoptions.removefield('figure', 0) 67 60 68 #initialize self.list (will need a list of dict's (or nested dict) for numberofplots>1) 69 #self.list=defaultdict(dict) 70 for i in range(numberofplots): 71 self.list[i]=pairoptions.pairoptions() 61 #get number of subplots 62 numberofplots = len([1 for sublist in rawlist for x in sublist if str(x) == 'data']) 63 self.numberofplots = numberofplots 72 64 73 #process plot options 74 for i in range(len(rawlist)): 65 #figure out whether alloptions flag is on 66 if rawoptions.getfieldvalue('alloptions', 'off') == 'on': 67 allflag = 1 68 else: 69 allflag = 0 75 70 76 #if alloptions flag is on, apply to all plots 77 if (allflag and 'data' not in rawlist[i][0] and '#' not in rawlist[i][0]): 71 #initialize self.list (will need a list of dict's (or nested dict) for numberofplots > 1) 72 #self.list = defaultdict(dict) 73 for i in range(numberofplots): 74 self.list[i] = pairoptions.pairoptions() 78 75 79 for j in range(numberofplots): 80 self.list[j].addfield(rawlist[i][0],rawlist[i][1]) 76 #process plot options 77 for i in range(len(rawlist)): 81 78 82 elif '#' in rawlist[i][0]: 79 #if alloptions flag is on, apply to all plots 80 if (allflag and 'data' not in rawlist[i][0] and ' #' not in rawlist[i][0]): 83 81 84 #get subplots associated 85 string=rawlist[i][0].split('#') 86 plotnums=string[-1].split(',') 87 field=string[0] 82 for j in range(numberofplots): 83 self.list[j].addfield(rawlist[i][0], rawlist[i][1]) 88 84 89 #loop over plotnums 90 for k in range(len(plotnums)): 91 plotnum=plotnums[k] 85 elif ' #' in rawlist[i][0]: 86 #get subplots associated 87 string = rawlist[i][0].split(' #') 88 plotnums = string[-1].split(', ') 89 field = string[0] 92 90 93 #Empty 94 if not plotnum: continue 91 #loop over plotnums 92 for k in range(len(plotnums)): 93 plotnum = plotnums[k] 95 94 96 # '#all' 97 elif 'all' in plotnum: 98 for j in range(numberofplots): 99 self.list[j].addfield(field,rawlist[i][1]) 95 #Empty 96 if not plotnum: 97 continue 100 98 101 # '#i-j' 102 elif '-' in plotnum: 103 nums=plotnum.split('-') 104 if len(nums)!=2: continue 105 if False in [x.isdigit() for x in nums]: 106 raise ValueError('error: in option i-j both i and j must be integers') 107 for j in range(int(nums[0])-1,int(nums[1])): 108 self.list[j].addfield(field,rawlist[i][1]) 99 # ' #all' 100 elif 'all' in plotnum: 101 for j in range(numberofplots): 102 self.list[j].addfield(field, rawlist[i][1]) 109 103 110 # Deal with #i 111 else: 112 #assign to subplot 113 if int(plotnum)>numberofplots: 114 raise ValueError('error: %s cannot be assigned %d which exceeds the number of subplots' % (field,plotnum)) 115 self.list[int(plotnum)-1].addfield(field,rawlist[i][1]) 116 else: 104 # ' #i - j' 105 elif '-' in plotnum: 106 nums = plotnum.split(' - ') 107 if len(nums) != 2: 108 continue 109 if False in [x.isdigit() for x in nums]: 110 raise ValueError('error: in option i - j both i and j must be integers') 111 for j in range(int(nums[0]) - 1, int(nums[1])): 112 self.list[j].addfield(field, rawlist[i][1]) 117 113 118 #go through all subplots and assign key-value pairs 119 j=0 120 while j <= numberofplots-1: 121 if not self.list[j].exist(rawlist[i][0]): 122 self.list[j].addfield(rawlist[i][0],rawlist[i][1]) 123 break 124 else: 125 j=j+1 126 if j+1>numberofplots: 127 print(("WARNING: too many instances of '%s' in options" % rawlist[i][0])) 128 #}}} 114 # Deal with #i 115 else: 116 #assign to subplot 117 if int(plotnum) > numberofplots: 118 raise ValueError('error: %s cannot be assigned %d which exceeds the number of subplots' % (field, plotnum)) 119 self.list[int(plotnum) - 1].addfield(field, rawlist[i][1]) 120 else: 121 #go through all subplots and assign key - value pairs 122 j = 0 123 while j <= numberofplots - 1: 124 if not self.list[j].exist(rawlist[i][0]): 125 self.list[j].addfield(rawlist[i][0], rawlist[i][1]) 126 break 127 else: 128 j = j + 1 129 if j + 1 > numberofplots: 130 print(("WARNING: too many instances of '%s' in options" % rawlist[i][0])) 131 #}}} -
issm/trunk-jpl/src/m/classes/plumebasalforcings.py
r23716 r24213 1 import numpy as np 1 2 from fielddisplay import fielddisplay 2 3 from checkfield import checkfield … … 4 5 from project3d import project3d 5 6 7 6 8 class plumebasalforcings(object): 7 8 9 ''' 10 PLUME BASAL FORCINGS class definition 9 11 10 11 plumebasalforcings=plumebasalforcings()12 12 Usage: 13 plumebasalforcings = plumebasalforcings() 14 ''' 13 15 14 def __init__(self):# {{{15 floatingice_melting_rate= float('NaN')16 groundedice_melting_rate= float('NaN')17 mantleconductivity= float('NaN')18 nusselt= float('NaN')19 dtbg= float('NaN')20 plumeradius= float('NaN')21 topplumedepth= float('NaN')22 bottomplumedepth= float('NaN')23 plumex= float('NaN')24 plumey= float('NaN')25 crustthickness= float('NaN')26 uppercrustthickness= float('NaN')27 uppercrustheat= float('NaN')28 lowercrustheat= float('NaN')16 def __init__(self): # {{{ 17 self.floatingice_melting_rate = float('NaN') 18 self.groundedice_melting_rate = float('NaN') 19 self.mantleconductivity = float('NaN') 20 self.nusselt = float('NaN') 21 self.dtbg = float('NaN') 22 self.plumeradius = float('NaN') 23 self.topplumedepth = float('NaN') 24 self.bottomplumedepth = float('NaN') 25 self.plumex = float('NaN') 26 self.plumey = float('NaN') 27 self.crustthickness = float('NaN') 28 self.uppercrustthickness = float('NaN') 29 self.uppercrustheat = float('NaN') 30 self.lowercrustheat = float('NaN') 29 31 30 31 32 self.setdefaultparameters() 33 #}}} 32 34 33 def __repr__(self):# {{{34 print(' mantle plume basal melt parameterization:') 35 def __repr__(self): # {{{ 36 string = ' mantle plume basal melt parameterization:' 35 37 36 string="%s\n%s"%(string,fielddisplay(self,'groundedice_melting_rate','basal melting rate (positive if melting) [m/yr]'))37 string="%s\n%s"%(string,fielddisplay(self,'floatingice_melting_rate','basal melting rate (positive if melting) [m/yr]'))38 string="%s\n%s"%(string,fielddisplay(self,'mantleconductivity','mantle heat conductivity [W/m^3]'))39 string="%s\n%s"%(string,fielddisplay(self,'nusselt','nusselt number, ratio of mantle to plume [1]'))40 string="%s\n%s"%(string,fielddisplay(self,'dtbg','background temperature gradient [degree/m]'))41 string="%s\n%s"%(string,fielddisplay(self,'plumeradius','radius of the mantle plume [m]'))42 string="%s\n%s"%(string,fielddisplay(self,'topplumedepth','depth of the mantle plume top below the crust [m]'))43 string="%s\n%s"%(string,fielddisplay(self,'bottomplumedepth','depth of the mantle plume base below the crust [m]'))44 string="%s\n%s"%(string,fielddisplay(self,'plumex','x coordinate of the center of the plume [m]'))45 string="%s\n%s"%(string,fielddisplay(self,'plumey','y coordinate of the center of the plume [m]'))46 string="%s\n%s"%(string,fielddisplay(self,'crustthickness','thickness of the crust [m]'))47 string="%s\n%s"%(string,fielddisplay(self,'uppercrustthickness','thickness of the upper crust [m]'))48 string="%s\n%s"%(string,fielddisplay(self,'uppercrustheat','volumic heat of the upper crust [w/m^3]'))49 string="%s\n%s"%(string,fielddisplay(self,'lowercrustheat','volumic heat of the lowercrust [w/m^3]'))38 string = "%s\n%s" % (string, fielddisplay(self, 'groundedice_melting_rate', 'basal melting rate (positive if melting) [m / yr]')) 39 string = "%s\n%s" % (string, fielddisplay(self, 'floatingice_melting_rate', 'basal melting rate (positive if melting) [m / yr]')) 40 string = "%s\n%s" % (string, fielddisplay(self, 'mantleconductivity', 'mantle heat conductivity [W / m^3]')) 41 string = "%s\n%s" % (string, fielddisplay(self, 'nusselt', 'nusselt number, ratio of mantle to plume [1]')) 42 string = "%s\n%s" % (string, fielddisplay(self, 'dtbg', 'background temperature gradient [degree / m]')) 43 string = "%s\n%s" % (string, fielddisplay(self, 'plumeradius', 'radius of the mantle plume [m]')) 44 string = "%s\n%s" % (string, fielddisplay(self, 'topplumedepth', 'depth of the mantle plume top below the crust [m]')) 45 string = "%s\n%s" % (string, fielddisplay(self, 'bottomplumedepth', 'depth of the mantle plume base below the crust [m]')) 46 string = "%s\n%s" % (string, fielddisplay(self, 'plumex', 'x coordinate of the center of the plume [m]')) 47 string = "%s\n%s" % (string, fielddisplay(self, 'plumey', 'y coordinate of the center of the plume [m]')) 48 string = "%s\n%s" % (string, fielddisplay(self, 'crustthickness', 'thickness of the crust [m]')) 49 string = "%s\n%s" % (string, fielddisplay(self, 'uppercrustthickness', 'thickness of the upper crust [m]')) 50 string = "%s\n%s" % (string, fielddisplay(self, 'uppercrustheat', 'volumic heat of the upper crust [w / m^3]')) 51 string = "%s\n%s" % (string, fielddisplay(self, 'lowercrustheat', 'volumic heat of the lowercrust [w / m^3]')) 50 52 51 52 53 return string 54 #}}} 53 55 54 def initialize(self,md):#{{{55 56 self.groundedice_melting_rate=np.zeros((md.mesh.numberofvertices,))57 58 59 self.floatingice_melting_rate=np.zeros((md.mesh.numberofvertices,))60 61 62 56 def initialize(self, md): #{{{ 57 if np.all(np.isnan(self.groundedice_melting_rate)): 58 self.groundedice_melting_rate = np.zeros((md.mesh.numberofvertices, )) 59 print(' no basalforcings.groundedice_melting_rate specified: values set as zero') 60 if np.all(np.isnan(self.floatingice_melting_rate)): 61 self.floatingice_melting_rate = np.zeros((md.mesh.numberofvertices, )) 62 print(' no basalforcings.floatingice_melting_rate specified: values set as zero') 63 return 64 #}}} 63 65 64 def extrude(self,md):# {{{65 self.groundedice_melting_rate=project3d(md,'vector',self.groundedice_melting_rate,'type','node','layer',1); 66 self.floatingice_melting_rate=project3d(md,'vector',self.floatingice_melting_rate,'type','node','layer',1); 67 68 66 def extrude(self, md): # {{{ 67 self.groundedice_melting_rate = project3d(md, 'vector', self.groundedice_melting_rate, 'type', 'node', 'layer', 1) 68 self.floatingice_melting_rate = project3d(md, 'vector', self.floatingice_melting_rate, 'type', 'node', 'layer', 1) 69 return self 70 #}}} 69 71 70 def setdefaultparameters(self):# {{{71 72 self.mantleconductivity= 2.273 self.nusselt= 30074 self.dtbg = 11/1000.75 self.plumeradius= 10000076 self.topplumedepth= 1000077 self.bottomplumedepth= 105000078 self.crustthickness= 3000079 self.uppercrustthickness= 1400080 self.uppercrustheat = 1.7*10**-681 self.lowercrustheat = 0.4*10**-682 83 72 def setdefaultparameters(self): # {{{ 73 #default values for melting parameterization 74 self.mantleconductivity = 2.2 75 self.nusselt = 300 76 self.dtbg = 11 / 1000. 77 self.plumeradius = 100000 78 self.topplumedepth = 10000 79 self.bottomplumedepth = 1050000 80 self.crustthickness = 30000 81 self.uppercrustthickness = 14000 82 self.uppercrustheat = 1.7 * 10**- 6 83 self.lowercrustheat = 0.4 * 10**- 6 84 return self 85 #}}} 84 86 85 def checkconsistency(self,md,solution,analyses): # {{{ 86 if 'MasstransportAnalysis' in analyses and not (solution == 'TransientSolution' and md.transient.ismasstransport==0): 87 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1) 88 md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1) 89 if 'BalancethicknessAnalysis' in analyses: 90 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices]) 91 md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices]) 92 if 'ThermalAnalysis' in analyses and not (solution == 'TransientSolution' and md.transient.isthermal==0): 93 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1) 94 md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1) 95 md = checkfield(md,'fieldname','basalforcings.mantleconductivity','>=',0,'numel',1) 96 md = checkfield(md,'fieldname','basalforcings.nusselt','>',0,'numel',1) 97 md = checkfield(md,'fieldname','basalforcings.dtbg','>',0,'numel',1) 98 md = checkfield(md,'fieldname','basalforcings.topplumedepth','>',0,'numel',1) 99 md = checkfield(md,'fieldname','basalforcings.bottomplumedepth','>',0,'numel',1) 100 md = checkfield(md,'fieldname','basalforcings.plumex','numel',1) 101 md = checkfield(md,'fieldname','basalforcings.plumey','numel',1) 102 md = checkfield(md,'fieldname','basalforcings.crustthickness','>',0,'numel',1) 103 md = checkfield(md,'fieldname','basalforcings.uppercrustthickness','>',0,'numel',1) 104 md = checkfield(md,'fieldname','basalforcings.uppercrustheat','>',0,'numel',1) 105 md = checkfield(md,'fieldname','basalforcings.lowercrustheat','>',0,'numel',1) 106 return md 107 # }}} 108 def marshall(self,prefix,md,fid): # {{{ 109 yts=md.constants.yts 87 def checkconsistency(self, md, solution, analyses): # {{{ 88 if 'MasstransportAnalysis' in analyses and not (solution == 'TransientSolution' and md.transient.ismasstransport == 0): 89 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'timeseries', 1) 90 md = checkfield(md, 'fieldname', 'basalforcings.floatingice_melting_rate', 'NaN', 1, 'timeseries', 1) 91 if 'BalancethicknessAnalysis' in analyses: 92 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'size', [md.mesh.numberofvertices]) 93 md = checkfield(md, 'fieldname', 'basalforcings.floatingice_melting_rate', 'NaN', 1, 'size', [md.mesh.numberofvertices]) 94 if 'ThermalAnalysis' in analyses and not (solution == 'TransientSolution' and md.transient.isthermal == 0): 95 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'timeseries', 1) 96 md = checkfield(md, 'fieldname', 'basalforcings.floatingice_melting_rate', 'NaN', 1, 'timeseries', 1) 97 md = checkfield(md, 'fieldname', 'basalforcings.mantleconductivity', '>=', 0, 'numel', 1) 98 md = checkfield(md, 'fieldname', 'basalforcings.nusselt', '>', 0, 'numel', 1) 99 md = checkfield(md, 'fieldname', 'basalforcings.dtbg', '>', 0, 'numel', 1) 100 md = checkfield(md, 'fieldname', 'basalforcings.topplumedepth', '>', 0, 'numel', 1) 101 md = checkfield(md, 'fieldname', 'basalforcings.bottomplumedepth', '>', 0, 'numel', 1) 102 md = checkfield(md, 'fieldname', 'basalforcings.plumex', 'numel', 1) 103 md = checkfield(md, 'fieldname', 'basalforcings.plumey', 'numel', 1) 104 md = checkfield(md, 'fieldname', 'basalforcings.crustthickness', '>', 0, 'numel', 1) 105 md = checkfield(md, 'fieldname', 'basalforcings.uppercrustthickness', '>', 0, 'numel', 1) 106 md = checkfield(md, 'fieldname', 'basalforcings.uppercrustheat', '>', 0, 'numel', 1) 107 md = checkfield(md, 'fieldname', 'basalforcings.lowercrustheat', '>', 0, 'numel', 1) 108 return md 109 # }}} 110 110 111 WriteData(fid,prefix,'name','md.basalforcings.model','data',4,'format','Integer') 112 WriteData(fid,prefix,'object',self,'fieldname','floatingice_melting_rate','format','DoubleMat','name','md.basalforcings.floatingice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 113 WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','name','md.basalforcings.groundedice_melting_rate','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 114 WriteData(fid,prefix,'object',self,'fieldname','mantleconductivity','format','Double') 115 WriteData(fid,prefix,'object',self,'fieldname','nusselt','format','Double') 116 WriteData(fid,prefix,'object',self,'fieldname','dtbg','format','Double') 117 WriteData(fid,prefix,'object',self,'fieldname','plumeradius','format','Double') 118 WriteData(fid,prefix,'object',self,'fieldname','topplumedepth','format','Double') 119 WriteData(fid,prefix,'object',self,'fieldname','bottomplumedepth','format','Double') 120 WriteData(fid,prefix,'object',self,'fieldname','plumex','format','Double') 121 WriteData(fid,prefix,'object',self,'fieldname','plumey','format','Double') 122 WriteData(fid,prefix,'object',self,'fieldname','crustthickness','format','Double') 123 WriteData(fid,prefix,'object',self,'fieldname','uppercrustthickness','format','Double') 124 WriteData(fid,prefix,'object',self,'fieldname','uppercrustheat','format','Double') 125 WriteData(fid,prefix,'object',self,'fieldname','lowercrustheat','format','Double') 126 # }}} 111 def marshall(self, prefix, md, fid): # {{{ 112 yts = md.constants.yts 113 114 WriteData(fid, prefix, 'name', 'md.basalforcings.model', 'data', 4, 'format', 'Integer') 115 WriteData(fid, prefix, 'object', self, 'fieldname', 'floatingice_melting_rate', 'format', 'DoubleMat', 'name', 'md.basalforcings.floatingice_melting_rate', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 116 WriteData(fid, prefix, 'object', self, 'fieldname', 'groundedice_melting_rate', 'format', 'DoubleMat', 'name', 'md.basalforcings.groundedice_melting_rate', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 117 WriteData(fid, prefix, 'object', self, 'fieldname', 'mantleconductivity', 'format', 'Double') 118 WriteData(fid, prefix, 'object', self, 'fieldname', 'nusselt', 'format', 'Double') 119 WriteData(fid, prefix, 'object', self, 'fieldname', 'dtbg', 'format', 'Double') 120 WriteData(fid, prefix, 'object', self, 'fieldname', 'plumeradius', 'format', 'Double') 121 WriteData(fid, prefix, 'object', self, 'fieldname', 'topplumedepth', 'format', 'Double') 122 WriteData(fid, prefix, 'object', self, 'fieldname', 'bottomplumedepth', 'format', 'Double') 123 WriteData(fid, prefix, 'object', self, 'fieldname', 'plumex', 'format', 'Double') 124 WriteData(fid, prefix, 'object', self, 'fieldname', 'plumey', 'format', 'Double') 125 WriteData(fid, prefix, 'object', self, 'fieldname', 'crustthickness', 'format', 'Double') 126 WriteData(fid, prefix, 'object', self, 'fieldname', 'uppercrustthickness', 'format', 'Double') 127 WriteData(fid, prefix, 'object', self, 'fieldname', 'uppercrustheat', 'format', 'Double') 128 WriteData(fid, prefix, 'object', self, 'fieldname', 'lowercrustheat', 'format', 'Double') 129 # }}} -
issm/trunk-jpl/src/m/classes/private.py
r21049 r24213 1 1 from collections import OrderedDict 2 2 from fielddisplay import fielddisplay 3 from checkfield import checkfield 3 4 4 5 5 class private(object): 6 7 6 """ 7 PRIVATE class definition 8 8 9 10 private=private(); 11 9 Usage: 10 private = private() 11 """ 12 12 13 def __init__(self):# {{{14 15 self.runtimename= ''16 self.bamg= OrderedDict()17 self.solution= ''13 def __init__(self): # {{{ 14 self.isconsistent = True 15 self.runtimename = '' 16 self.bamg = OrderedDict() 17 self.solution = '' 18 18 19 20 19 #set defaults 20 self.setdefaultparameters() 21 21 22 #}}} 23 def __repr__(self): # {{{ 24 string=' private parameters: do not change' 22 #}}} 25 23 26 string="%s\n%s"%(string,fielddisplay(self,'isconsistent','is model self consistent')) 27 string="%s\n%s"%(string,fielddisplay(self,'runtimename','name of the run launched')) 28 string="%s\n%s"%(string,fielddisplay(self,'bamg','structure with mesh properties constructed if bamg is used to mesh the domain')) 29 string="%s\n%s"%(string,fielddisplay(self,'solution','type of solution launched')) 30 return string 31 #}}} 32 def setdefaultparameters(self): # {{{ 33 return self 34 #}}} 35 def checkconsistency(self,md,solution,analyses): # {{{ 36 return md 37 # }}} 24 def __repr__(self): # {{{ 25 string = ' private parameters: do not change' 26 27 string = "%s\n%s" % (string, fielddisplay(self, 'isconsistent', 'is model self consistent')) 28 string = "%s\n%s" % (string, fielddisplay(self, 'runtimename', 'name of the run launched')) 29 string = "%s\n%s" % (string, fielddisplay(self, 'bamg', 'structure with mesh properties constructed if bamg is used to mesh the domain')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'solution', 'type of solution launched')) 31 return string 32 #}}} 33 34 def setdefaultparameters(self): # {{{ 35 return self 36 #}}} 37 38 def checkconsistency(self, md, solution, analyses): # {{{ 39 return md 40 # }}} -
issm/trunk-jpl/src/m/classes/qmu.py
r24185 r24213 10 10 from dakota_method import * 11 11 12 12 13 class qmu(object): 13 14 14 """ 15 QMU class definition 15 16 16 17 qmu=qmu(); 18 17 Usage: 18 qmu = qmu() 19 """ 19 20 20 def __init__(self):# {{{21 self.isdakota= 022 self.variables= OrderedStruct()23 self.responses= OrderedStruct()24 self.method= OrderedDict()25 self.params= OrderedStruct()26 self.results= OrderedDict()27 self.vpartition= float('NaN')28 self.epartition= float('NaN')29 self.numberofpartitions= 030 self.numberofresponses= 031 self.variabledescriptors= []32 self.responsedescriptors= []33 34 self.mass_flux_profiles= float('NaN')35 self.mass_flux_segments= []36 self.adjacency= float('NaN')37 self.vertex_weight= float('NaN')21 def __init__(self): # {{{ 22 self.isdakota = 0 23 self.variables = OrderedStruct() 24 self.responses = OrderedStruct() 25 self.method = OrderedDict() 26 self.params = OrderedStruct() 27 self.results = OrderedDict() 28 self.vpartition = float('NaN') 29 self.epartition = float('NaN') 30 self.numberofpartitions = 0 31 self.numberofresponses = 0 32 self.variabledescriptors = [] 33 self.responsedescriptors = [] 34 self.mass_flux_profile_directory = float('NaN') 35 self.mass_flux_profiles = float('NaN') 36 self.mass_flux_segments = [] 37 self.adjacency = float('NaN') 38 self.vertex_weight = float('NaN') 38 39 39 40 40 #set defaults 41 self.setdefaultparameters() 41 42 42 43 def __repr__(self):# {{{44 s =' qmu parameters:\n'43 #}}} 44 def __repr__(self): # {{{ 45 s = ' qmu parameters:\n' 45 46 46 s+="%s\n" % fielddisplay(self,'isdakota','is qmu analysis activated?')47 48 s+=" variables: (arrays of each variable class)\n"47 s += "%s\n" % fielddisplay(self, 'isdakota', 'is qmu analysis activated?') 48 maxlen = 0 49 s += " variables: (arrays of each variable class)\n" 49 50 50 # OrderedStruct's iterator returns individual name/array-of-functions pairs51 52 fname=variable[0]53 maxlen=max(maxlen,len(fname))54 55 56 57 s+=" %-*s: [%ix%i] '%s'\n" % (maxlen+1,fname,a,b,type(variable[1][0]))51 # OrderedStruct's iterator returns individual name / array - of - functions pairs 52 for variable in self.variables: 53 fname = variable[0] 54 maxlen = max(maxlen, len(fname)) 55 size = np.shape(variable[1]) 56 a = size[0] 57 b = 1 if len(size) < 2 else size[1] 58 s += " %-*s: [%ix%i] '%s'\n" % (maxlen + 1, fname, a, b, type(variable[1][0])) 58 59 59 s+=" responses: (arrays of each response class)\n"60 61 fname=response[0]62 maxlen=max(maxlen,len(fname))63 64 65 66 s+=" %-*s: [%ix%i] '%s'\n" % (maxlen+1,fname,a,b,type(response[1][0]))60 s += " responses: (arrays of each response class)\n" 61 for response in self.responses: 62 fname = response[0] 63 maxlen = max(maxlen, len(fname)) 64 size = np.shape(response[1]) 65 a = size[0] 66 b = 1 if len(size) < 2 else size[1] 67 s += " %-*s: [%ix%i] '%s'\n" % (maxlen + 1, fname, a, b, type(response[1][0])) 67 68 68 s+="%s\n" % fielddisplay(self,'numberofresponses','number of responses')69 s += "%s\n" % fielddisplay(self, 'numberofresponses', 'number of responses') 69 70 70 71 72 73 74 if isinstance(method,dakota_method):75 s+=" method : '%s'\n" % (method.method)71 if type(self.method) != OrderedDict: 72 self.method = [self.method] 73 # self.method must be iterable 74 for method in self.method: 75 if isinstance(method, dakota_method): 76 s += " method : '%s'\n" % (method.method) 76 77 77 78 79 80 81 82 83 84 85 s+=" params: (array of method-independent parameters)\n"86 fnames=vars(param)87 maxlen=088 89 maxlen=max(maxlen,len(fname))78 # params could be have a number of forms (mainly 1 struct or many) 79 if type(self.params) == OrderedStruct: 80 params = [self.params] 81 else: 82 params = np.hstack(np.atleast_1d(np.array(self.params))) 83 for param in params: 84 print(type(param)) 85 print(param) 86 s += " params: (array of method - independent parameters)\n" 87 fnames = vars(param) 88 maxlen = 0 89 for fname in fnames: 90 maxlen = max(maxlen, len(fname)) 90 91 91 92 s+=" %-*s: %s\n" % (maxlen+1,fname,str(getattr(param,fname)))92 for fname in fnames: 93 s += " %-*s: %s\n" % (maxlen + 1, fname, str(getattr(param, fname))) 93 94 94 95 96 97 s+=" results: (information from dakota files)\n"98 fnames=vars(result)99 maxlen=0100 101 maxlen=max(maxlen,len(fname))95 # results could be have a number of forms (mainly 1 struct or many) 96 results = np.hstack(np.atleast_1d(np.array(self.results))) 97 for result in results: 98 s += " results: (information from dakota files)\n" 99 fnames = vars(result) 100 maxlen = 0 101 for fname in fnames: 102 maxlen = max(maxlen, len(fname)) 102 103 103 104 105 106 107 size = np.shape(getattr(result,fname))108 s+=" %-*s: [%ix%i] '%s'\n" % (maxlen+1,fname,a,b,type(getattr(result,fname)))104 for fname in fnames: 105 size = np.shape(response[1]) 106 a = size[0] 107 b = 0 if len(size) < 2 else size[1] 108 size = np.shape(getattr(result, fname)) 109 s += " %-*s: [%ix%i] '%s'\n" % (maxlen + 1, fname, a, b, type(getattr(result, fname))) 109 110 110 s+="%s\n" % fielddisplay(self,'vpartition','user provided mesh partitioning (vertex based)') 111 s+="%s\n" % fielddisplay(self,'epartition','user provided mesh partitioning (element based)')112 s+="%s\n" % fielddisplay(self,'numberofpartitions','number of partitions for semi-discrete qmu') 113 s+="%s\n" % fielddisplay(self,'variabledescriptors','')114 s+="%s\n" % fielddisplay(self,'responsedescriptors','')115 s+="%s\n" % fielddisplay(self,'method','array of dakota_method class')116 s+="%s\n" % fielddisplay(self,'mass_flux_profile_directory','directory for mass flux profiles')117 s+="%s\n" % fielddisplay(self,'mass_flux_profiles','list of mass_flux profiles')118 s+="%s\n" % fielddisplay(self,'mass_flux_segments','')119 s+="%s\n" % fielddisplay(self,'adjacency','')120 s+="%s\n" % fielddisplay(self,'vertex_weight','weight applied to each mesh vertex')111 s += "%s\n" % fielddisplay(self, 'vpartition', 'user provided mesh partitioning (vertex based)') 112 s += "%s\n" % fielddisplay(self, 'epartition', 'user provided mesh partitioning (element based)') 113 s += "%s\n" % fielddisplay(self, 'numberofpartitions', 'number of partitions for semi - discrete qmu') 114 s += "%s\n" % fielddisplay(self, 'variabledescriptors', '') 115 s += "%s\n" % fielddisplay(self, 'responsedescriptors', '') 116 s += "%s\n" % fielddisplay(self, 'method', 'array of dakota_method class') 117 s += "%s\n" % fielddisplay(self, 'mass_flux_profile_directory', 'directory for mass flux profiles') 118 s += "%s\n" % fielddisplay(self, 'mass_flux_profiles', 'list of mass_flux profiles') 119 s += "%s\n" % fielddisplay(self, 'mass_flux_segments', '') 120 s += "%s\n" % fielddisplay(self, 'adjacency', '') 121 s += "%s\n" % fielddisplay(self, 'vertex_weight', 'weight applied to each mesh vertex') 121 122 122 return s 123 # }}} 124 def extrude(self,md): # {{{ 125 self.vpartition=project3d(md,'vector',np.transpose(self.vpartition),'type','node') 126 self.epartition=project3d(md,'vector',np.transpose(self.epartition),'type','element') 127 return self 128 #}}} 129 def setdefaultparameters(self): # {{{ 130 return self 131 #}}} 132 def checkconsistency(self,md,solution,analyses): # {{{ 123 return s 124 # }}} 133 125 134 #Early return 135 if not md.qmu.isdakota: 136 return 126 def extrude(self, md): # {{{ 127 self.vpartition = project3d(md, 'vector', np.transpose(self.vpartition), 'type', 'node') 128 self.epartition = project3d(md, 'vector', np.transpose(self.epartition), 'type', 'element') 129 return self 130 #}}} 137 131 138 version=IssmConfig('_DAKOTA_VERSION_') 139 version=float(version[0]) 132 def setdefaultparameters(self): # {{{ 133 return self 134 #}}} 140 135 141 if version < 6: 142 if not md.qmu.params.evaluation_concurrency==1: 143 md.checkmessage("concurrency should be set to 1 when running dakota in library mode") 144 else: 145 if not strcmpi(self.params.evaluation_scheduling,'master'): 146 md.checkmessage('evaluation_scheduling in qmu.params should be set to "master"') 136 def checkconsistency(self, md, solution, analyses): # {{{ 137 #Early return 138 if not md.qmu.isdakota: 139 return 147 140 148 if md.cluster.np <= 1: 149 md.checkmessage('in parallel library mode, Dakota needs to run on at least 2 cpus, 1 cpu for the master, 1 cpu for the slave. Modify md.cluser.np accordingly.') 150 151 if self.params.processors_per_evaluation < 1: 152 md.checkmessage('in parallel library mode, Dakota needs to run at least one slave on one cpu (md.qmu.params.processors_per_evaluation >=1)!') 153 154 if np.mod(md.cluster.np-1,self.params.processors_per_evaluation): 155 md.checkmessage('in parallel library mode, the requirement is for md.cluster.np = md.qmu.params.processors_per_evaluation * number_of_slaves, where number_of_slaves will automatically be determined by Dakota. Modify md.cluster.np accordingly') 156 157 if np.size(md.qmu.vpartition) > 0: 158 if np.size(md.qmu.vpartition,0)!=md.mesh.numberofvertices: 159 md.checkmessage("user supplied vertex partition for qmu analysis should have size (md.mesh.numberofvertices x 1)") 160 if not min(md.qmu.vpartition.flatten())==0: 161 md.checkmessage("vertex partition vector not indexed from 0 on") 162 if max(md.qmu.vpartition.flatten())>=md.qmu.numberofpartitions: 163 md.checkmessage("for qmu analysis, vertex partitioning vector cannot go over npart, number of partition areas") 141 version = IssmConfig('_DAKOTA_VERSION_') 142 version = float(version[0]) 143 144 if version < 6: 145 if not md.qmu.params.evaluation_concurrency == 1: 146 md.checkmessage("concurrency should be set to 1 when running dakota in library mode") 147 else: 148 if not strcmpi(self.params.evaluation_scheduling, 'master'): 149 md.checkmessage('evaluation_scheduling in qmu.params should be set to "master"') 150 151 if md.cluster.np <= 1: 152 md.checkmessage('in parallel library mode, Dakota needs to run on at least 2 cpus, 1 cpu for the master, 1 cpu for the slave. Modify md.cluser.np accordingly.') 153 154 if self.params.processors_per_evaluation < 1: 155 md.checkmessage('in parallel library mode, Dakota needs to run at least one slave on one cpu (md.qmu.params.processors_per_evaluation >= 1)!') 156 157 if np.mod(md.cluster.np - 1, self.params.processors_per_evaluation): 158 md.checkmessage('in parallel library mode, the requirement is for md.cluster.np = md.qmu.params.processors_per_evaluation * number_of_slaves, where number_of_slaves will automatically be determined by Dakota. Modify md.cluster.np accordingly') 159 160 if np.size(md.qmu.vpartition) > 0: 161 if np.size(md.qmu.vpartition, 0) != md.mesh.numberofvertices: 162 md.checkmessage("user supplied vertex partition for qmu analysis should have size (md.mesh.numberofvertices x 1)") 163 if not min(md.qmu.vpartition.flatten()) == 0: 164 md.checkmessage("vertex partition vector not indexed from 0 on") 165 if max(md.qmu.vpartition.flatten()) >= md.qmu.numberofpartitions: 166 md.checkmessage("for qmu analysis, vertex partitioning vector cannot go over npart, number of partition areas") 164 167 165 168 if np.size(md.qmu.epartition) > 0: 166 if np.size(md.qmu.epartition,0) != md.mesh.numberofelements:167 168 if not min(md.qmu.epartition.flatten())==0:169 170 if max(md.qmu.epartition.flatten())>=md.qmu.numberofpartitions:171 169 if np.size(md.qmu.epartition, 0) != md.mesh.numberofelements: 170 md.checkmessage("user supplied element partition for qmu analysis should have size (md.mesh.numberofelements x 1)") 171 if not min(md.qmu.epartition.flatten()) == 0: 172 md.checkmessage("elememtn partition vector not indexed from 0 on") 173 if max(md.qmu.epartition.flatten()) >= md.qmu.numberofpartitions: 174 md.checkmessage("for qmu analysis, element partitioning vector cannot go over npart, number of partition areas") 172 175 173 176 if np.size(md.qmu.vpartition) == 0 or np.any(np.isnan(md.qmu.vpartition)) or np.size(md.qmu.epartition) == 0 or np.any(np.isnan(md.qmu.epartition)): 174 177 md.checkmessage("for qmu analysis, both an element and partitioning vectors need to be supplied with no nan values! One can be defaulted to all zeros.") 175 178 176 return md 177 # }}} 178 def marshall(self,prefix,md,fid): # {{{ 179 WriteData(fid,prefix,'object',self,'fieldname','isdakota','format','Boolean') 180 if not self.isdakota: 181 WriteData(fid,prefix,'data',False,'name','md.qmu.mass_flux_segments_present','format','Boolean'); 182 return 183 WriteData(fid,prefix,'object',self,'fieldname','vpartition','format','DoubleMat','mattype',2) 184 WriteData(fid,prefix,'object',self,'fieldname','epartition','format','DoubleMat','mattype',2) 185 WriteData(fid,prefix,'object',self,'fieldname','numberofpartitions','format','Integer') 186 WriteData(fid,prefix,'object',self,'fieldname','numberofresponses','format','Integer') 187 WriteData(fid,prefix,'object',self,'fieldname','variabledescriptors','format','StringArray') 188 WriteData(fid,prefix,'object',self,'fieldname','responsedescriptors','format','StringArray') 189 if not isempty(self.mass_flux_segments): 190 WriteData(fid,prefix,'data',self.mass_flux_segments,'name','md.qmu.mass_flux_segments','format','MatArray'); 191 flag=True; 192 else: 193 flag=False; 194 WriteData(fid,prefix,'data',flag,'name','md.qmu.mass_flux_segments_present','format','Boolean'); 195 # }}} 179 return md 180 # }}} 181 182 def marshall(self, prefix, md, fid): # {{{ 183 WriteData(fid, prefix, 'object', self, 'fieldname', 'isdakota', 'format', 'Boolean') 184 if not self.isdakota: 185 WriteData(fid, prefix, 'data', False, 'name', 'md.qmu.mass_flux_segments_present', 'format', 'Boolean') 186 return 187 WriteData(fid, prefix, 'object', self, 'fieldname', 'vpartition', 'format', 'DoubleMat', 'mattype', 2) 188 WriteData(fid, prefix, 'object', self, 'fieldname', 'epartition', 'format', 'DoubleMat', 'mattype', 2) 189 WriteData(fid, prefix, 'object', self, 'fieldname', 'numberofpartitions', 'format', 'Integer') 190 WriteData(fid, prefix, 'object', self, 'fieldname', 'numberofresponses', 'format', 'Integer') 191 WriteData(fid, prefix, 'object', self, 'fieldname', 'variabledescriptors', 'format', 'StringArray') 192 WriteData(fid, prefix, 'object', self, 'fieldname', 'responsedescriptors', 'format', 'StringArray') 193 if not isempty(self.mass_flux_segments): 194 WriteData(fid, prefix, 'data', self.mass_flux_segments, 'name', 'md.qmu.mass_flux_segments', 'format', 'MatArray') 195 flag = True 196 else: 197 flag = False 198 WriteData(fid, prefix, 'data', flag, 'name', 'md.qmu.mass_flux_segments_present', 'format', 'Boolean') 199 # }}} -
issm/trunk-jpl/src/m/classes/qmu/@dakota_method/dakota_method.py
r23716 r24213 5 5 import numpy as np 6 6 7 7 8 class dakota_method(object): 8 9 ''' 9 10 definition for the dakota_method class. 10 11 11 [dm] =dakota_method(method)12 [dm] = dakota_method(method) 12 13 13 14 where the required input is: … … 21 22 responses (cell array, applicable response types, []) 22 23 ghspec (cell array, gradient and hessian specs, []) 23 params (structure, method -depent parameters, [])24 params (structure, method - depent parameters, []) 24 25 25 26 this class is used to guide the writing of a dakota input … … 43 44 authority as may be required before exporting such np.information 44 45 to foreign countries or providing access to foreign persons." 45 46 47 def __init__(self,*args):48 self.method =''49 self.type =''50 self.variables=[]51 self.lcspec =[]52 self.responses=[]53 self.ghspec =[]54 55 self.params =struct()56 57 58 59 60 61 62 63 64 65 66 67 68 69 if isinstance(method,dakota_method):70 #dm=method71 object=method72 73 74 setattr(dm,field,object[field])75 76 77 78 79 mlist=['dot_bfgs',80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 mlist2=[]122 123 if strncmpi(method,mlist[i],len(method)):124 125 126 l= len(mlist2)127 if l== 0:128 raise RuntimeError('Unrecognized method: '+str(method)+'.')129 elif l== 1:130 dm.method=mlist2[0]131 132 raise RuntimeError('Non-unique method: '+str(method)+' matches '+string_cell(mlist2))133 134 135 136 if dm.method in ['dot_bfgs','dot_frcg']:137 dm.type ='dot'138 dm.variables=['continuous_design',139 140 dm.lcspec =[]141 dm.responses=['objective_function']142 dm.ghspec =['grad']143 dm.params.max_iterations=False144 dm.params.max_function_evaluations=False145 dm.params.convergence_tolerance=False146 dm.params.constraint_tolerance=False147 dm.params.output=False148 dm.params.speculative=False149 dm.params.scaling=False150 dm.params.optimization_type='minimize'151 152 elif dm.method in ['dot_mmfd','dot_slp','dot_sqp']:153 dm.type ='dot'154 dm.variables=['continuous_design',155 156 dm.lcspec =['linear_inequality_constraint',157 158 dm.responses=['objective_function',159 160 161 dm.ghspec =['grad']162 dm.params.max_iterations=False163 dm.params.max_function_evaluations=False164 dm.params.convergence_tolerance=False165 dm.params.constraint_tolerance=False166 dm.params.output=False167 dm.params.speculative=False168 dm.params.scaling=False169 dm.params.optimization_type='minimize'170 171 172 dm.type ='npsol'173 dm.variables=['continuous_design',174 175 dm.lcspec =['linear_inequality_constraint',176 177 dm.responses=['objective_function',178 179 180 dm.ghspec =['grad']181 dm.params.max_iterations=False182 dm.params.max_function_evaluations=False183 dm.params.convergence_tolerance=False184 dm.params.constraint_tolerance=False185 dm.params.output=False186 dm.params.speculative=False187 dm.params.scaling=False188 dm.params.verify_level=-1189 dm.params.function_precision=1.0e-10190 dm.params.linesearch_tolerance=0.9191 192 193 dm.type ='conmin'194 dm.variables=['continuous_design',195 196 dm.lcspec =[]197 dm.responses=['objective_function']198 dm.ghspec =['grad']199 dm.params.max_iterations=False200 dm.params.max_function_evaluations=False201 dm.params.convergence_tolerance=False202 dm.params.constraint_tolerance=False203 dm.params.output=False204 dm.params.speculative=False205 dm.params.scaling=False206 207 208 dm.type ='conmin'209 dm.variables=['continuous_design',210 211 dm.lcspec =['linear_inequality_constraint',212 213 dm.responses=['objective_function',214 215 216 dm.ghspec =['grad']217 dm.params.max_iterations=False218 dm.params.max_function_evaluations=False219 dm.params.convergence_tolerance=False220 dm.params.constraint_tolerance=False221 dm.params.output=False222 dm.params.speculative=False223 dm.params.scaling=False224 225 226 dm.type ='optpp'227 dm.variables=['continuous_design',228 229 dm.lcspec =[]230 dm.responses=['objective_function']231 dm.ghspec =['grad']232 dm.params.max_iterations=False233 dm.params.max_function_evaluations=False234 dm.params.convergence_tolerance=False235 dm.params.output=False236 dm.params.speculative=False237 dm.params.scaling=False238 dm.params.max_step=1000.239 dm.params.gradient_tolerance=1.0e-4240 241 242 243 244 dm.type ='optpp'245 dm.variables=['continuous_design',246 247 dm.lcspec =['linear_inequality_constraint',248 249 dm.responses=['objective_function',250 251 252 dm.ghspec =['grad']253 dm.params.max_iterations=False254 dm.params.max_function_evaluations=False255 dm.params.convergence_tolerance=False256 dm.params.output=False257 dm.params.speculative=False258 dm.params.scaling=False259 dm.params.value_based_line_search=False260 dm.params.gradient_based_line_search=False261 dm.params.trust_region=False262 dm.params.tr_pds=False263 dm.params.max_step=1000.264 dm.params.gradient_tolerance=1.0e-4265 dm.params.merit_function='argaez_tapia'266 dm.params.central_path=dm.params.merit_function267 dm.params.steplength_to_boundary=0.99995268 dm.params.centering_parameter=0.2269 270 271 dm.type ='optpp'272 dm.variables=['continuous_design',273 274 dm.lcspec =[]275 dm.responses=['objective_function']276 dm.ghspec =['grad']277 dm.params.max_iterations=False278 dm.params.max_function_evaluations=False279 dm.params.convergence_tolerance=False280 dm.params.output=False281 dm.params.speculative=False282 dm.params.scaling=False283 dm.params.search_scheme_size=32284 285 286 dm.type ='apps'287 dm.variables=['continuous_design',288 289 dm.lcspec =['linear_inequality_constraint',290 291 dm.responses=['objective_function',292 293 294 dm.ghspec =['grad']295 dm.params.max_function_evaluations=False296 dm.params.constraint_tolerance=False297 dm.params.output=False298 dm.params.scaling=False299 dm.params.initial_delta=1.0300 dm.params.threshold_delta=0.01301 dm.params.contraction_factor=0.5302 dm.params.solution_target=False303 dm.params.synchronization='nonblocking'304 dm.params.merit_function='merit2_smooth'305 dm.params.constraint_penalty=1.0306 dm.params.smoothing_factor=1.0307 308 309 dm.type ='coliny'310 dm.variables=['continuous_design',311 312 dm.lcspec =[]313 dm.responses=['objective_function',314 315 316 dm.ghspec =['grad']317 dm.params.max_iterations=False318 dm.params.max_function_evaluations=False319 dm.params.convergence_tolerance=False320 dm.params.output=False321 dm.params.scaling=False322 dm.params.show_misc_options=False323 dm.params.misc_options=[]324 dm.params.solution_accuracy=-np.inf325 dm.params.initial_delta=[]326 dm.params.threshold_delta=[]327 328 329 dm.type ='coliny'330 dm.variables=['continuous_design',331 332 dm.lcspec =[]333 dm.responses=['objective_function',334 335 336 dm.ghspec =['grad']337 dm.params.max_iterations=False338 dm.params.max_function_evaluations=False339 dm.params.convergence_tolerance=False340 dm.params.output=False341 dm.params.scaling=False342 dm.params.show_misc_options=False343 dm.params.misc_options=[]344 dm.params.solution_accuracy=-np.inf345 dm.params.division='major_dimension'346 dm.params.global_balance_parameter=0.0347 dm.params.local_balance_parameter=1.0e-8348 dm.params.max_boxsize_limit=0.0349 dm.params.min_boxsize_limit=0.0001350 dm.params.constraint_penalty=1000.0351 352 353 dm.type ='coliny'354 dm.variables=['continuous_design',355 356 dm.lcspec =[]357 dm.responses=['objective_function',358 359 360 dm.ghspec =['grad']361 dm.params.max_iterations=False362 dm.params.max_function_evaluations=False363 dm.params.convergence_tolerance=False364 dm.params.output=False365 dm.params.scaling=False366 dm.params.show_misc_options=False367 dm.params.misc_options=[]368 dm.params.solution_accuracy=-np.inf369 dm.params.seed=False370 dm.params.population_size=50371 dm.params.initialization_type='unique_random'372 dm.params.fitness_type='linear_rank'373 dm.params.replacement_type='elitist'374 dm.params.random=[]375 dm.params.chc=[]376 dm.params.elitist=[]377 dm.params.new_solutions_generated='population_size -replacement_size'378 dm.params.crossover_type='two_point'379 dm.params.crossover_rate=0.8380 dm.params.mutation_type='offset_normal'381 dm.params.mutation_scale=0.1382 dm.params.mutation_range=1383 dm.params.dimension_ratio=1.0384 dm.params.mutation_rate=1.0385 dm.params.non_adaptive=False386 387 388 dm.type ='coliny'389 dm.variables=['continuous_design',390 391 dm.lcspec =[]392 dm.responses=['objective_function',393 394 395 dm.ghspec =['grad']396 dm.params.max_iterations=False397 dm.params.max_function_evaluations=False398 dm.params.convergence_tolerance=False399 dm.params.output=False400 dm.params.scaling=False401 dm.params.show_misc_options=False402 dm.params.misc_options=[]403 dm.params.solution_accuracy=-np.inf404 dm.params.stochastic=False405 dm.params.seed=False406 dm.params.initial_delta=[]407 dm.params.threshold_delta=[]408 dm.params.constraint_penalty=1.0409 dm.params.constant_penalty=False410 dm.params.pattern_basis='coordinate'411 dm.params.total_pattern_size=False412 dm.params.no_expansion=False413 dm.params.expand_after_success=1414 dm.params.contraction_factor=0.5415 dm.params.synchronization='nonblocking'416 dm.params.exploratory_moves='basic_pattern'417 418 419 dm.type ='coliny'420 dm.variables=['continuous_design',421 422 dm.lcspec =[]423 dm.responses=['objective_function',424 425 426 dm.ghspec =['grad']427 dm.params.max_iterations=False428 dm.params.max_function_evaluations=False429 dm.params.convergence_tolerance=False430 dm.params.output=False431 dm.params.scaling=False432 dm.params.show_misc_options=False433 dm.params.misc_options=[]434 dm.params.solution_accuracy=-np.inf435 dm.params.seed=False436 dm.params.initial_delta=[]437 dm.params.threshold_delta=[]438 dm.params.no_expansion=False439 dm.params.expand_after_success=5440 dm.params.contract_after_failure=3441 dm.params.contraction_factor=0.5442 dm.params.constraint_penalty=1.0443 dm.params.constant_penalty=False444 445 446 dm.type ='ncsu'447 dm.variables=['continuous_design',448 449 dm.lcspec =['linear_inequality_constraint',450 451 dm.responses=['objective_function',452 453 454 dm.ghspec =['grad']455 dm.params.max_iterations=False456 dm.params.max_function_evaluations=False457 dm.params.scaling=False458 dm.params.solution_accuracy=0.459 dm.params.min_boxsize_limit=1.0e-8460 dm.params.vol_boxsize_limit=1.0e-8461 462 463 464 465 466 dm.type ='jega'467 dm.variables=['continuous_design',468 469 dm.lcspec =['linear_inequality_constraint',470 471 dm.responses=['objective_function',472 473 474 dm.ghspec =['grad']475 dm.params.max_iterations=False476 dm.params.max_function_evaluations=False477 dm.params.output=False478 dm.params.scaling=False479 dm.params.seed=False480 dm.params.log_file='JEGAGlobal.log'481 dm.params.population_size=50482 dm.params.print_each_pop=False483 #according to documentation, uses method-indepent control484 #dm.params.output='normal'485 dm.params.initialization_type='unique_random'486 dm.params.mutation_type='replace_uniform'487 dm.params.mutation_scale=0.15488 dm.params.mutation_rate=0.08489 dm.params.replacement_type=''490 dm.params.below_limit=6491 dm.params.shrinkage_percentage=0.9492 dm.params.crossover_type='shuffle_random'493 dm.params.multi_point_binary=[]494 dm.params.multi_point_parameterized_binary=[]495 dm.params.multi_point_real=[]496 dm.params.shuffle_random=[]497 dm.params.num_parents=2498 dm.params.num_offspring=2499 dm.params.crossover_rate=0.8500 dm.params.fitness_type=''501 dm.params.niching_type=False502 dm.params.radial=[0.01]503 dm.params.distance=[0.01]504 dm.params.metric_tracker=False505 dm.params.percent_change=0.1506 dm.params.num_generations=10507 dm.params.postprocessor_type=False508 dm.params.orthogonal_distance=[0.01]509 510 511 dm.type ='jega'512 dm.variables=['continuous_design',513 514 dm.lcspec =['linear_inequality_constraint',515 516 dm.responses=['objective_function',517 518 519 dm.ghspec =['grad']520 dm.params.max_iterations=False521 dm.params.max_function_evaluations=False522 dm.params.output=False523 dm.params.scaling=False524 dm.params.seed=False525 dm.params.log_file='JEGAGlobal.log'526 dm.params.population_size=50527 dm.params.print_each_pop=False528 dm.params.output='normal'529 dm.params.initialization_type='unique_random'530 dm.params.mutation_type='replace_uniform'531 dm.params.mutation_scale=0.15532 dm.params.mutation_rate=0.08533 dm.params.replacement_type=''534 dm.params.below_limit=6535 dm.params.shrinkage_percentage=0.9536 dm.params.crossover_type='shuffle_random'537 dm.params.multi_point_binary=[]538 dm.params.multi_point_parameterized_binary=[]539 dm.params.multi_point_real=[]540 dm.params.shuffle_random=[]541 dm.params.num_parents=2542 dm.params.num_offspring=2543 dm.params.crossover_rate=0.8544 dm.params.fitness_type='merit_function'545 dm.params.constraint_penalty=1.0546 dm.params.replacement_type=''547 dm.params.convergence_type=False548 dm.params.num_generations=10549 dm.params.percent_change=0.1550 551 552 dm.type ='lsq'553 dm.variables=['continuous_design',554 555 dm.lcspec =[]556 dm.responses=['least_squares_term']557 dm.ghspec =['grad']558 dm.params.max_iterations=False559 dm.params.max_function_evaluations=False560 dm.params.convergence_tolerance=False561 dm.params.output=False562 dm.params.scaling=False563 dm.params.function_precision=1.0e-10564 dm.params.absolute_conv_tol=-1.565 dm.params.x_conv_tol=-1.566 dm.params.singular_conv_tol=-1.567 dm.params.singular_radius=-1.568 dm.params.False_conv_tol=-1.569 dm.params.initial_trust_radius=-1.570 dm.params.covariance=0571 dm.params.regression_stressbalances=False572 573 574 dm.type ='lsq'575 dm.variables=['continuous_design',576 577 dm.lcspec =['linear_inequality_constraint',578 579 dm.responses=['least_squares_term',580 581 582 dm.ghspec =['grad']583 dm.params.max_iterations=False584 dm.params.max_function_evaluations=False585 dm.params.convergence_tolerance=False586 dm.params.constraint_tolerance=False587 dm.params.output=False588 dm.params.speculative=False589 dm.params.scaling=False590 dm.params.verify_level=-1591 dm.params.function_precision=1.0e-10592 dm.params.linesearch_tolerance=0.9593 594 595 dm.type ='lsq'596 dm.variables=['continuous_design',597 598 dm.lcspec =['linear_inequality_constraint',599 600 dm.responses=['least_squares_term',601 602 603 dm.ghspec =['grad']604 dm.params.max_iterations=False605 dm.params.max_function_evaluations=False606 dm.params.convergence_tolerance=False607 dm.params.output=False608 dm.params.speculative=False609 dm.params.scaling=False610 dm.params.value_based_line_search=False611 dm.params.gradient_based_line_search=False612 dm.params.trust_region=False613 dm.params.tr_pds=False614 dm.params.max_step=1000.615 dm.params.gradient_tolerance=1.0e-4616 dm.params.merit_function='argaez_tapia'617 dm.params.central_path=dm.params.merit_function618 dm.params.steplength_to_boundary=0.99995619 dm.params.centering_parameter=0.2620 621 622 dm.type ='nond'623 dm.variables=['normal_uncertain',624 625 626 dm.lcspec =[]627 dm.responses=['response_function']628 dm.ghspec =[]629 630 dm.params.output=False631 dm.params.seed=False632 dm.params.fixed_seed=False633 dm.params.rng=False634 dm.params.samples=False635 dm.params.sample_type='lhs'636 dm.params.all_variables=False637 dm.params.variance_based_decomp=False638 dm.params.previous_samples=0639 640 641 dm.type ='nond'642 dm.variables=['normal_uncertain',643 644 645 dm.lcspec =[]646 dm.responses=['response_function']647 dm.ghspec =['grad']648 649 dm.params.output=False650 dm.params.max_iterations=False651 dm.params.convergence_tolerance=False652 dm.params.mpp_search=False653 dm.params.sqp=False654 dm.params.nip=False655 dm.params.integration='first_order'656 dm.params.refinement=False657 dm.params.samples=0658 dm.params.seed=False659 660 661 dm.type ='nond'662 dm.variables=['normal_uncertain',663 664 665 dm.lcspec =[]666 dm.responses=['response_function']667 dm.ghspec =['grad']668 669 dm.params.output=False670 dm.params.x_gaussian_process=False671 dm.params.u_gaussian_process=False672 dm.params.all_variables=False673 dm.params.seed=False674 675 676 dm.type ='nond'677 dm.variables=['normal_uncertain',678 679 680 dm.lcspec =[]681 dm.responses=['response_function']682 dm.ghspec =['grad']683 684 dm.params.output=False685 dm.params.expansion_order=[]686 dm.params.expansion_terms=[]687 dm.params.quadrature_order=[]688 dm.params.sparse_grid_level=[]689 dm.params.expansion_samples=[]690 dm.params.incremental_lhs=False691 dm.params.collocation_points=[]692 dm.params.collocation_ratio=[]693 dm.params.reuse_samples=False694 dm.params.expansion_import_file=''695 dm.params.seed=False696 dm.params.fixed_seed=False697 dm.params.samples=0698 dm.params.sample_type='lhs'699 dm.params.all_variables=False700 701 702 dm.type ='nond'703 dm.variables=['normal_uncertain',704 705 706 dm.lcspec =[]707 dm.responses=['response_function']708 dm.ghspec =['grad']709 710 dm.params.output=False711 dm.params.quadrature_order=[]712 dm.params.sparse_grid_level=[]713 dm.params.seed=False714 dm.params.fixed_seed=False715 dm.params.samples=0716 dm.params.sample_type='lhs'717 dm.params.all_variables=False718 719 720 dm.type ='nond'721 dm.variables=['normal_uncertain',722 723 724 dm.lcspec =[]725 dm.responses=['response_function']726 dm.ghspec =['grad']727 728 dm.params.output=False729 dm.params.seed=False730 dm.params.samples=10000731 732 733 dm.type ='dace'734 dm.variables=['continuous_design',735 736 dm.lcspec =[]737 dm.responses=['objective_function',738 739 dm.ghspec =[]740 dm.params.grid=False741 dm.params.random=False742 dm.params.oas=False743 dm.params.lhs=False744 dm.params.oa_lhs=False745 dm.params.box_behnken=False746 dm.params.central_composite=False747 dm.params.seed=False748 dm.params.fixed_seed=False749 dm.params.samples=False750 dm.params.symbols=False751 dm.params.quality_metrics=False752 dm.params.variance_based_decomp=False753 754 755 dm.type ='dace'756 dm.variables=['continuous_design',757 758 dm.lcspec =[]759 dm.responses=['objective_function',760 761 dm.ghspec =[]762 dm.params.halton=False763 dm.params.hammersley=False764 dm.params.samples=0765 dm.params.sequence_start=[0]766 dm.params.sequence_leap=[1]767 dm.params.prime_base=False768 dm.params.fixed_sequence=False769 dm.params.latinize=False770 dm.params.variance_based_decomp=False771 dm.params.quality_metrics=False772 773 774 dm.type ='dace'775 dm.variables=['continuous_design',776 777 dm.lcspec =[]778 dm.responses=['objective_function',779 780 dm.ghspec =[]781 dm.params.seed=False782 dm.params.fixed_seed=False783 dm.params.samples=0784 dm.params.num_trials=10000785 dm.params.trial_type='random'786 dm.params.latinize=False787 dm.params.variance_based_decomp=False788 dm.params.quality_metrics=False789 790 791 dm.type ='param'792 dm.variables=['continuous_design',793 794 795 796 dm.lcspec =[]797 dm.responses=['objective_function',798 799 dm.ghspec =[]800 dm.params.output=False801 dm.params.final_point=[]802 dm.params.step_length=[]803 dm.params.num_steps=[]804 dm.params.step_vector=[]805 dm.params.num_steps=[]806 807 808 dm.type ='param'809 dm.variables=['continuous_design',810 811 812 813 dm.lcspec =[]814 dm.responses=['objective_function',815 816 dm.ghspec =[]817 dm.params.output=False818 dm.params.list_of_points=[]819 820 821 dm.type ='param'822 dm.variables=['continuous_design',823 824 825 826 dm.lcspec =[]827 dm.responses=['objective_function',828 829 dm.ghspec =[]830 dm.params.output=False831 dm.params.percent_delta=[]832 dm.params.deltas_per_variable=[]833 834 835 dm.type ='param'836 dm.variables=['continuous_design',837 838 839 840 dm.lcspec =[]841 dm.responses=['objective_function',842 843 dm.ghspec =[]844 dm.params.output=False845 dm.params.partitions=[]846 847 848 dm.type ='bayes'849 dm.variables=['continuous_design',850 851 852 853 dm.lcspec =[]854 dm.responses=['objective_function',855 856 857 dm.ghspec =[]858 dm.params.queso=False859 dm.params.dream=False860 dm.params.gpmsa=False861 dm.params.samples=0862 dm.params.seed=False863 dm.params.output=False864 dm.params.metropolis_hastings=False865 dm.params.proposal_covariance=False866 dm.params.diagonal=False867 dm.params.values=[]868 869 870 871 872 873 874 print('Warning: dakota_method:extra_arg: Extra arguments for object of class '+str(type(dm))+'.')875 876 877 878 879 880 881 string += ' method: '+str(dm.method) + '\n'882 string += ' type: '+str(dm.type) + '\n'883 string += ' variables: '+str(dm.variables) + '\n'884 string += ' lcspec: '+str(dm.lcspec) + '\n'885 string += ' responses: '+str(dm.responses) + '\n'886 string += ' ghspec: '+str(dm.ghspec) + '\n'887 888 889 890 fnames=fieldnames(dm.params)891 892 893 894 895 896 897 maxlen=0898 899 maxlen=max(maxlen,len(fnames[i]))900 901 902 string += ' params.{:{space}s}: {}\n'.format(str(i),str(dm.params.__dict__[i]),space=maxlen+1)903 904 #with maxlen+1 spaces between x and :905 46 ''' 47 48 def __init__(self, *args): 49 self.method = '' 50 self.type = '' 51 self.variables = [] 52 self.lcspec = [] 53 self.responses = [] 54 self.ghspec = [] 55 #properites 56 self.params = struct() 57 58 @staticmethod 59 def dakota_method(*args): 60 dm = dakota_method() 61 # return a default object 62 if len(args) == 0: 63 return dm 64 65 # copy the object or create the object from the input 66 elif len(args) == 1: 67 method = args[0] 68 69 #given argument was a method, copy it 70 if isinstance(method, dakota_method): 71 #dm = method 72 object = method 73 for field in object.keys(): 74 if field in vars(dm): 75 setattr(dm, field, object[field]) 76 return dm 77 78 #given argument was a way of constructing a method 79 else: 80 mlist = ['dot_bfgs', 81 'dot_frcg', 82 'dot_mmfd', 83 'dot_slp', 84 'dot_sqp', 85 'npsol_sqp', 86 'conmin_frcg', 87 'conmin_mfd', 88 'optpp_cg', 89 'optpp_q_newton', 90 'optpp_fd_newton', 91 'optpp_newton', 92 'optpp_pds', 93 'asynch_pattern_search', 94 'coliny_cobyla', 95 'coliny_direct', 96 'coliny_ea', 97 'coliny_pattern_search', 98 'coliny_solis_wets', 99 'ncsu_direct', 100 'surrogate_based_local', 101 'surrogate_based_global', 102 'moga', 103 'soga', 104 'nl2sol', 105 'nlssol_sqp', 106 'optpp_g_newton', 107 'nond_sampling', 108 'nond_local_reliability', 109 'nond_global_reliability', 110 'nond_polynomial_chaos', 111 'nond_stoch_collocation', 112 'nond_evidence', 113 'dace', 114 'fsu_quasi_mc', 115 'fsu_cvt', 116 'vector_parameter_study', 117 'list_parameter_study', 118 'centered_parameter_study', 119 'multidim_parameter_study', 120 'bayes_calibration'] 121 122 mlist2 = [] 123 for i in range(len(mlist)): 124 if strncmpi(method, mlist[i], len(method)): 125 mlist2.append(mlist[i]) 126 # check for a unique match in the list of methods 127 length = len(mlist2) 128 if length == 0: 129 raise RuntimeError('Unrecognized method: ' + str(method) + '.') 130 elif length == 1: 131 dm.method = mlist2[0] 132 else: 133 raise RuntimeError('Non - unique method: ' + str(method) + ' matches ' + string_cell(mlist2)) 134 135 # assign the default values for the method 136 # switch dm.method 137 if dm.method in ['dot_bfgs', 'dot_frcg']: 138 dm.type = 'dot' 139 dm.variables = ['continuous_design', 140 'continuous_state'] 141 dm.lcspec = [] 142 dm.responses = ['objective_function'] 143 dm.ghspec = ['grad'] 144 dm.params.max_iterations = False 145 dm.params.max_function_evaluations = False 146 dm.params.convergence_tolerance = False 147 dm.params.constraint_tolerance = False 148 dm.params.output = False 149 dm.params.speculative = False 150 dm.params.scaling = False 151 dm.params.optimization_type = 'minimize' 152 153 elif dm.method in ['dot_mmfd', 'dot_slp', 'dot_sqp']: 154 dm.type = 'dot' 155 dm.variables = ['continuous_design', 156 'continuous_state'] 157 dm.lcspec = ['linear_inequality_constraint', 158 'linear_equality_constraint'] 159 dm.responses = ['objective_function', 160 'nonlinear_inequality_constraint', 161 'nonlinear_equality_constraint'] 162 dm.ghspec = ['grad'] 163 dm.params.max_iterations = False 164 dm.params.max_function_evaluations = False 165 dm.params.convergence_tolerance = False 166 dm.params.constraint_tolerance = False 167 dm.params.output = False 168 dm.params.speculative = False 169 dm.params.scaling = False 170 dm.params.optimization_type = 'minimize' 171 172 elif dm.method == 'npsol_sqp': 173 dm.type = 'npsol' 174 dm.variables = ['continuous_design', 175 'continuous_state'] 176 dm.lcspec = ['linear_inequality_constraint', 177 'linear_equality_constraint'] 178 dm.responses = ['objective_function', 179 'nonlinear_inequality_constraint', 180 'nonlinear_equality_constraint'] 181 dm.ghspec = ['grad'] 182 dm.params.max_iterations = False 183 dm.params.max_function_evaluations = False 184 dm.params.convergence_tolerance = False 185 dm.params.constraint_tolerance = False 186 dm.params.output = False 187 dm.params.speculative = False 188 dm.params.scaling = False 189 dm.params.verify_level = -1 190 dm.params.function_precision = 1.0e-10 191 dm.params.linesearch_tolerance = 0.9 192 193 elif dm.method == 'conmin_frcg': 194 dm.type = 'conmin' 195 dm.variables = ['continuous_design', 196 'continuous_state'] 197 dm.lcspec = [] 198 dm.responses = ['objective_function'] 199 dm.ghspec = ['grad'] 200 dm.params.max_iterations = False 201 dm.params.max_function_evaluations = False 202 dm.params.convergence_tolerance = False 203 dm.params.constraint_tolerance = False 204 dm.params.output = False 205 dm.params.speculative = False 206 dm.params.scaling = False 207 208 elif dm.method == 'conmin_mfd': 209 dm.type = 'conmin' 210 dm.variables = ['continuous_design', 211 'continuous_state'] 212 dm.lcspec = ['linear_inequality_constraint', 213 'linear_equality_constraint'] 214 dm.responses = ['objective_function', 215 'nonlinear_inequality_constraint', 216 'nonlinear_equality_constraint'] 217 dm.ghspec = ['grad'] 218 dm.params.max_iterations = False 219 dm.params.max_function_evaluations = False 220 dm.params.convergence_tolerance = False 221 dm.params.constraint_tolerance = False 222 dm.params.output = False 223 dm.params.speculative = False 224 dm.params.scaling = False 225 226 elif dm.method == 'optpp_cg': 227 dm.type = 'optpp' 228 dm.variables = ['continuous_design', 229 'continuous_state'] 230 dm.lcspec = [] 231 dm.responses = ['objective_function'] 232 dm.ghspec = ['grad'] 233 dm.params.max_iterations = False 234 dm.params.max_function_evaluations = False 235 dm.params.convergence_tolerance = False 236 dm.params.output = False 237 dm.params.speculative = False 238 dm.params.scaling = False 239 dm.params.max_step = 1000. 240 dm.params.gradient_tolerance = 1.0e-4 241 242 elif dm.method in ['optpp_q_newton', 243 'optpp_fd_newton', 244 'optpp_newton']: 245 dm.type = 'optpp' 246 dm.variables = ['continuous_design', 247 'continuous_state'] 248 dm.lcspec = ['linear_inequality_constraint', 249 'linear_equality_constraint'] 250 dm.responses = ['objective_function', 251 'nonlinear_inequality_constraint', 252 'nonlinear_equality_constraint'] 253 dm.ghspec = ['grad'] 254 dm.params.max_iterations = False 255 dm.params.max_function_evaluations = False 256 dm.params.convergence_tolerance = False 257 dm.params.output = False 258 dm.params.speculative = False 259 dm.params.scaling = False 260 dm.params.value_based_line_search = False 261 dm.params.gradient_based_line_search = False 262 dm.params.trust_region = False 263 dm.params.tr_pds = False 264 dm.params.max_step = 1000. 265 dm.params.gradient_tolerance = 1.0e-4 266 dm.params.merit_function = 'argaez_tapia' 267 dm.params.central_path = dm.params.merit_function 268 dm.params.steplength_to_boundary = 0.99995 269 dm.params.centering_parameter = 0.2 270 271 elif dm.method == 'optpp_pds': 272 dm.type = 'optpp' 273 dm.variables = ['continuous_design', 274 'continuous_state'] 275 dm.lcspec = [] 276 dm.responses = ['objective_function'] 277 dm.ghspec = ['grad'] 278 dm.params.max_iterations = False 279 dm.params.max_function_evaluations = False 280 dm.params.convergence_tolerance = False 281 dm.params.output = False 282 dm.params.speculative = False 283 dm.params.scaling = False 284 dm.params.search_scheme_size = 32 285 286 elif dm.method == 'asynch_pattern_search': 287 dm.type = 'apps' 288 dm.variables = ['continuous_design', 289 'continuous_state'] 290 dm.lcspec = ['linear_inequality_constraint', 291 'linear_equality_constraint'] 292 dm.responses = ['objective_function', 293 'nonlinear_inequality_constraint', 294 'nonlinear_equality_constraint'] 295 dm.ghspec = ['grad'] 296 dm.params.max_function_evaluations = False 297 dm.params.constraint_tolerance = False 298 dm.params.output = False 299 dm.params.scaling = False 300 dm.params.initial_delta = 1.0 301 dm.params.threshold_delta = 0.01 302 dm.params.contraction_factor = 0.5 303 dm.params.solution_target = False 304 dm.params.synchronization = 'nonblocking' 305 dm.params.merit_function = 'merit2_smooth' 306 dm.params.constraint_penalty = 1.0 307 dm.params.smoothing_factor = 1.0 308 309 elif dm.method == 'coliny_cobyla': 310 dm.type = 'coliny' 311 dm.variables = ['continuous_design', 312 'continuous_state'] 313 dm.lcspec = [] 314 dm.responses = ['objective_function', 315 'nonlinear_inequality_constraint', 316 'nonlinear_equality_constraint'] 317 dm.ghspec = ['grad'] 318 dm.params.max_iterations = False 319 dm.params.max_function_evaluations = False 320 dm.params.convergence_tolerance = False 321 dm.params.output = False 322 dm.params.scaling = False 323 dm.params.show_misc_options = False 324 dm.params.misc_options = [] 325 dm.params.solution_accuracy = -np.inf 326 dm.params.initial_delta = [] 327 dm.params.threshold_delta = [] 328 329 elif dm.method == 'coliny_direct': 330 dm.type = 'coliny' 331 dm.variables = ['continuous_design', 332 'continuous_state'] 333 dm.lcspec = [] 334 dm.responses = ['objective_function', 335 'nonlinear_inequality_constraint', 336 'nonlinear_equality_constraint'] 337 dm.ghspec = ['grad'] 338 dm.params.max_iterations = False 339 dm.params.max_function_evaluations = False 340 dm.params.convergence_tolerance = False 341 dm.params.output = False 342 dm.params.scaling = False 343 dm.params.show_misc_options = False 344 dm.params.misc_options = [] 345 dm.params.solution_accuracy = -np.inf 346 dm.params.division = 'major_dimension' 347 dm.params.global_balance_parameter = 0.0 348 dm.params.local_balance_parameter = 1.0e-8 349 dm.params.max_boxsize_limit = 0.0 350 dm.params.min_boxsize_limit = 0.0001 351 dm.params.constraint_penalty = 1000.0 352 353 elif dm.method == 'coliny_ea': 354 dm.type = 'coliny' 355 dm.variables = ['continuous_design', 356 'continuous_state'] 357 dm.lcspec = [] 358 dm.responses = ['objective_function', 359 'nonlinear_inequality_constraint', 360 'nonlinear_equality_constraint'] 361 dm.ghspec = ['grad'] 362 dm.params.max_iterations = False 363 dm.params.max_function_evaluations = False 364 dm.params.convergence_tolerance = False 365 dm.params.output = False 366 dm.params.scaling = False 367 dm.params.show_misc_options = False 368 dm.params.misc_options = [] 369 dm.params.solution_accuracy = -np.inf 370 dm.params.seed = False 371 dm.params.population_size = 50 372 dm.params.initialization_type = 'unique_random' 373 dm.params.fitness_type = 'linear_rank' 374 dm.params.replacement_type = 'elitist' 375 dm.params.random = [] 376 dm.params.chc = [] 377 dm.params.elitist = [] 378 dm.params.new_solutions_generated = 'population_size-replacement_size' 379 dm.params.crossover_type = 'two_point' 380 dm.params.crossover_rate = 0.8 381 dm.params.mutation_type = 'offset_normal' 382 dm.params.mutation_scale = 0.1 383 dm.params.mutation_range = 1 384 dm.params.dimension_ratio = 1.0 385 dm.params.mutation_rate = 1.0 386 dm.params.non_adaptive = False 387 388 elif dm.method == 'coliny_pattern_search': 389 dm.type = 'coliny' 390 dm.variables = ['continuous_design', 391 'continuous_state'] 392 dm.lcspec = [] 393 dm.responses = ['objective_function', 394 'nonlinear_inequality_constraint', 395 'nonlinear_equality_constraint'] 396 dm.ghspec = ['grad'] 397 dm.params.max_iterations = False 398 dm.params.max_function_evaluations = False 399 dm.params.convergence_tolerance = False 400 dm.params.output = False 401 dm.params.scaling = False 402 dm.params.show_misc_options = False 403 dm.params.misc_options = [] 404 dm.params.solution_accuracy = - np.inf 405 dm.params.stochastic = False 406 dm.params.seed = False 407 dm.params.initial_delta = [] 408 dm.params.threshold_delta = [] 409 dm.params.constraint_penalty = 1.0 410 dm.params.constant_penalty = False 411 dm.params.pattern_basis = 'coordinate' 412 dm.params.total_pattern_size = False 413 dm.params.no_expansion = False 414 dm.params.expand_after_success = 1 415 dm.params.contraction_factor = 0.5 416 dm.params.synchronization = 'nonblocking' 417 dm.params.exploratory_moves = 'basic_pattern' 418 419 elif dm.method == 'coliny_solis_wets': 420 dm.type = 'coliny' 421 dm.variables = ['continuous_design', 422 'continuous_state'] 423 dm.lcspec = [] 424 dm.responses = ['objective_function', 425 'nonlinear_inequality_constraint', 426 'nonlinear_equality_constraint'] 427 dm.ghspec = ['grad'] 428 dm.params.max_iterations = False 429 dm.params.max_function_evaluations = False 430 dm.params.convergence_tolerance = False 431 dm.params.output = False 432 dm.params.scaling = False 433 dm.params.show_misc_options = False 434 dm.params.misc_options = [] 435 dm.params.solution_accuracy = -np.inf 436 dm.params.seed = False 437 dm.params.initial_delta = [] 438 dm.params.threshold_delta = [] 439 dm.params.no_expansion = False 440 dm.params.expand_after_success = 5 441 dm.params.contract_after_failure = 3 442 dm.params.contraction_factor = 0.5 443 dm.params.constraint_penalty = 1.0 444 dm.params.constant_penalty = False 445 446 elif dm.method == 'ncsu_direct': 447 dm.type = 'ncsu' 448 dm.variables = ['continuous_design', 449 'continuous_state'] 450 dm.lcspec = ['linear_inequality_constraint', 451 'linear_equality_constraint'] # ? 452 dm.responses = ['objective_function', 453 'nonlinear_inequality_constraint', 454 'nonlinear_equality_constraint'] # ? 455 dm.ghspec = ['grad'] 456 dm.params.max_iterations = False 457 dm.params.max_function_evaluations = False 458 dm.params.scaling = False 459 dm.params.solution_accuracy = 0. 460 dm.params.min_boxsize_limit = 1.0e-8 461 dm.params.vol_boxsize_limit = 1.0e-8 462 463 #if dm.method in ['surrogate_based_local', 464 #'surrogate_based_global']: 465 466 elif dm.method == 'moga': 467 dm.type = 'jega' 468 dm.variables = ['continuous_design', 469 'continuous_state'] 470 dm.lcspec = ['linear_inequality_constraint', 471 'linear_equality_constraint'] 472 dm.responses = ['objective_function', 473 'nonlinear_inequality_constraint', 474 'nonlinear_equality_constraint'] 475 dm.ghspec = ['grad'] 476 dm.params.max_iterations = False 477 dm.params.max_function_evaluations = False 478 dm.params.output = False 479 dm.params.scaling = False 480 dm.params.seed = False 481 dm.params.log_file = 'JEGAGlobal.log' 482 dm.params.population_size = 50 483 dm.params.print_each_pop = False 484 #according to documentation, uses method - indepent control 485 #dm.params.output = 'normal' 486 dm.params.initialization_type = 'unique_random' 487 dm.params.mutation_type = 'replace_uniform' 488 dm.params.mutation_scale = 0.15 489 dm.params.mutation_rate = 0.08 490 dm.params.replacement_type = '' 491 dm.params.below_limit = 6 492 dm.params.shrinkage_percentage = 0.9 493 dm.params.crossover_type = 'shuffle_random' 494 dm.params.multi_point_binary = [] 495 dm.params.multi_point_parameterized_binary = [] 496 dm.params.multi_point_real = [] 497 dm.params.shuffle_random = [] 498 dm.params.num_parents = 2 499 dm.params.num_offspring = 2 500 dm.params.crossover_rate = 0.8 501 dm.params.fitness_type = '' 502 dm.params.niching_type = False 503 dm.params.radial = [0.01] 504 dm.params.distance = [0.01] 505 dm.params.metric_tracker = False 506 dm.params.percent_change = 0.1 507 dm.params.num_generations = 10 508 dm.params.postprocessor_type = False 509 dm.params.orthogonal_distance = [0.01] 510 511 elif dm.method == 'soga': 512 dm.type = 'jega' 513 dm.variables = ['continuous_design', 514 'continuous_state'] 515 dm.lcspec = ['linear_inequality_constraint', 516 'linear_equality_constraint'] 517 dm.responses = ['objective_function', 518 'nonlinear_inequality_constraint', 519 'nonlinear_equality_constraint'] 520 dm.ghspec = ['grad'] 521 dm.params.max_iterations = False 522 dm.params.max_function_evaluations = False 523 dm.params.output = False 524 dm.params.scaling = False 525 dm.params.seed = False 526 dm.params.log_file = 'JEGAGlobal.log' 527 dm.params.population_size = 50 528 dm.params.print_each_pop = False 529 dm.params.output = 'normal' 530 dm.params.initialization_type = 'unique_random' 531 dm.params.mutation_type = 'replace_uniform' 532 dm.params.mutation_scale = 0.15 533 dm.params.mutation_rate = 0.08 534 dm.params.replacement_type = '' 535 dm.params.below_limit = 6 536 dm.params.shrinkage_percentage = 0.9 537 dm.params.crossover_type = 'shuffle_random' 538 dm.params.multi_point_binary = [] 539 dm.params.multi_point_parameterized_binary = [] 540 dm.params.multi_point_real = [] 541 dm.params.shuffle_random = [] 542 dm.params.num_parents = 2 543 dm.params.num_offspring = 2 544 dm.params.crossover_rate = 0.8 545 dm.params.fitness_type = 'merit_function' 546 dm.params.constraint_penalty = 1.0 547 dm.params.replacement_type = '' 548 dm.params.convergence_type = False 549 dm.params.num_generations = 10 550 dm.params.percent_change = 0.1 551 552 elif dm.method == 'nl2sol': 553 dm.type = 'lsq' 554 dm.variables = ['continuous_design', 555 'continuous_state'] 556 dm.lcspec = [] 557 dm.responses = ['least_squares_term'] 558 dm.ghspec = ['grad'] 559 dm.params.max_iterations = False 560 dm.params.max_function_evaluations = False 561 dm.params.convergence_tolerance = False 562 dm.params.output = False 563 dm.params.scaling = False 564 dm.params.function_precision = 1.0e-10 565 dm.params.absolute_conv_tol = -1. 566 dm.params.x_conv_tol = -1. 567 dm.params.singular_conv_tol = -1. 568 dm.params.singular_radius = -1. 569 dm.params.False_conv_tol = -1. 570 dm.params.initial_trust_radius = -1. 571 dm.params.covariance = 0 572 dm.params.regression_stressbalances = False 573 574 elif dm.method == 'nlssol_sqp': 575 dm.type = 'lsq' 576 dm.variables = ['continuous_design', 577 'continuous_state'] 578 dm.lcspec = ['linear_inequality_constraint', 579 'linear_equality_constraint'] 580 dm.responses = ['least_squares_term', 581 'nonlinear_inequality_constraint', 582 'nonlinear_equality_constraint'] 583 dm.ghspec = ['grad'] 584 dm.params.max_iterations = False 585 dm.params.max_function_evaluations = False 586 dm.params.convergence_tolerance = False 587 dm.params.constraint_tolerance = False 588 dm.params.output = False 589 dm.params.speculative = False 590 dm.params.scaling = False 591 dm.params.verify_level = -1 592 dm.params.function_precision = 1.0e-10 593 dm.params.linesearch_tolerance = 0.9 594 595 elif dm.method == 'optpp_g_newton': 596 dm.type = 'lsq' 597 dm.variables = ['continuous_design', 598 'continuous_state'] 599 dm.lcspec = ['linear_inequality_constraint', 600 'linear_equality_constraint'] 601 dm.responses = ['least_squares_term', 602 'nonlinear_inequality_constraint', 603 'nonlinear_equality_constraint'] 604 dm.ghspec = ['grad'] 605 dm.params.max_iterations = False 606 dm.params.max_function_evaluations = False 607 dm.params.convergence_tolerance = False 608 dm.params.output = False 609 dm.params.speculative = False 610 dm.params.scaling = False 611 dm.params.value_based_line_search = False 612 dm.params.gradient_based_line_search = False 613 dm.params.trust_region = False 614 dm.params.tr_pds = False 615 dm.params.max_step = 1000. 616 dm.params.gradient_tolerance = 1.0e-4 617 dm.params.merit_function = 'argaez_tapia' 618 dm.params.central_path = dm.params.merit_function 619 dm.params.steplength_to_boundary = 0.99995 620 dm.params.centering_parameter = 0.2 621 622 elif dm.method == 'nond_sampling': 623 dm.type = 'nond' 624 dm.variables = ['normal_uncertain', 625 'uniform_uncertain', 626 'continuous_state'] 627 dm.lcspec = [] 628 dm.responses = ['response_function'] 629 dm.ghspec = [] 630 # not documented, but apparently works 631 dm.params.output = False 632 dm.params.seed = False 633 dm.params.fixed_seed = False 634 dm.params.rng = False 635 dm.params.samples = False 636 dm.params.sample_type = 'lhs' 637 dm.params.all_variables = False 638 dm.params.variance_based_decomp = False 639 dm.params.previous_samples = 0 640 641 elif dm.method == 'nond_local_reliability': 642 dm.type = 'nond' 643 dm.variables = ['normal_uncertain', 644 'uniform_uncertain', 645 'continuous_state'] 646 dm.lcspec = [] 647 dm.responses = ['response_function'] 648 dm.ghspec = ['grad'] 649 # not documented, but may work 650 dm.params.output = False 651 dm.params.max_iterations = False 652 dm.params.convergence_tolerance = False 653 dm.params.mpp_search = False 654 dm.params.sqp = False 655 dm.params.nip = False 656 dm.params.integration = 'first_order' 657 dm.params.refinement = False 658 dm.params.samples = 0 659 dm.params.seed = False 660 661 elif dm.method == 'nond_global_reliability': 662 dm.type = 'nond' 663 dm.variables = ['normal_uncertain', 664 'uniform_uncertain', 665 'continuous_state'] 666 dm.lcspec = [] 667 dm.responses = ['response_function'] 668 dm.ghspec = ['grad'] 669 # not documented, but may work 670 dm.params.output = False 671 dm.params.x_gaussian_process = False 672 dm.params.u_gaussian_process = False 673 dm.params.all_variables = False 674 dm.params.seed = False 675 676 elif dm.method == 'nond_polynomial_chaos': 677 dm.type = 'nond' 678 dm.variables = ['normal_uncertain', 679 'uniform_uncertain', 680 'continuous_state'] 681 dm.lcspec = [] 682 dm.responses = ['response_function'] 683 dm.ghspec = ['grad'] 684 # not documented, but may work 685 dm.params.output = False 686 dm.params.expansion_order = [] 687 dm.params.expansion_terms = [] 688 dm.params.quadrature_order = [] 689 dm.params.sparse_grid_level = [] 690 dm.params.expansion_samples = [] 691 dm.params.incremental_lhs = False 692 dm.params.collocation_points = [] 693 dm.params.collocation_ratio = [] 694 dm.params.reuse_samples = False 695 dm.params.expansion_import_file = '' 696 dm.params.seed = False 697 dm.params.fixed_seed = False 698 dm.params.samples = 0 699 dm.params.sample_type = 'lhs' 700 dm.params.all_variables = False 701 702 elif dm.method == 'nond_stoch_collocation': 703 dm.type = 'nond' 704 dm.variables = ['normal_uncertain', 705 'uniform_uncertain', 706 'continuous_state'] 707 dm.lcspec = [] 708 dm.responses = ['response_function'] 709 dm.ghspec = ['grad'] 710 # not documented, but may work 711 dm.params.output = False 712 dm.params.quadrature_order = [] 713 dm.params.sparse_grid_level = [] 714 dm.params.seed = False 715 dm.params.fixed_seed = False 716 dm.params.samples = 0 717 dm.params.sample_type = 'lhs' 718 dm.params.all_variables = False 719 720 elif dm.method == 'nond_evidence': 721 dm.type = 'nond' 722 dm.variables = ['normal_uncertain', 723 'uniform_uncertain', 724 'continuous_state'] 725 dm.lcspec = [] 726 dm.responses = ['response_function'] 727 dm.ghspec = ['grad'] 728 # not documented, but may work 729 dm.params.output = False 730 dm.params.seed = False 731 dm.params.samples = 10000 732 733 elif dm.method == 'dace': 734 dm.type = 'dace' 735 dm.variables = ['continuous_design', 736 'continuous_state'] 737 dm.lcspec = [] 738 dm.responses = ['objective_function', 739 'response_function'] 740 dm.ghspec = [] 741 dm.params.grid = False 742 dm.params.random = False 743 dm.params.oas = False 744 dm.params.lhs = False 745 dm.params.oa_lhs = False 746 dm.params.box_behnken = False 747 dm.params.central_composite = False 748 dm.params.seed = False 749 dm.params.fixed_seed = False 750 dm.params.samples = False 751 dm.params.symbols = False 752 dm.params.quality_metrics = False 753 dm.params.variance_based_decomp = False 754 755 elif dm.method == 'fsu_quasi_mc': 756 dm.type = 'dace' 757 dm.variables = ['continuous_design', 758 'continuous_state'] 759 dm.lcspec = [] 760 dm.responses = ['objective_function', 761 'response_function'] 762 dm.ghspec = [] 763 dm.params.halton = False 764 dm.params.hammersley = False 765 dm.params.samples = 0 766 dm.params.sequence_start = [0] 767 dm.params.sequence_leap = [1] 768 dm.params.prime_base = False 769 dm.params.fixed_sequence = False 770 dm.params.latinize = False 771 dm.params.variance_based_decomp = False 772 dm.params.quality_metrics = False 773 774 elif dm.method == 'fsu_cvt': 775 dm.type = 'dace' 776 dm.variables = ['continuous_design', 777 'continuous_state'] 778 dm.lcspec = [] 779 dm.responses = ['objective_function', 780 'response_function'] 781 dm.ghspec = [] 782 dm.params.seed = False 783 dm.params.fixed_seed = False 784 dm.params.samples = 0 785 dm.params.num_trials = 10000 786 dm.params.trial_type = 'random' 787 dm.params.latinize = False 788 dm.params.variance_based_decomp = False 789 dm.params.quality_metrics = False 790 791 elif dm.method == 'vector_parameter_study': 792 dm.type = 'param' 793 dm.variables = ['continuous_design', 794 'normal_uncertain', 795 'uniform_uncertain', 796 'continuous_state'] 797 dm.lcspec = [] 798 dm.responses = ['objective_function', 799 'response_function'] 800 dm.ghspec = [] 801 dm.params.output = False 802 dm.params.final_point = [] 803 dm.params.step_length = [] 804 dm.params.num_steps = [] 805 dm.params.step_vector = [] 806 dm.params.num_steps = [] 807 808 elif dm.method == 'list_parameter_study': 809 dm.type = 'param' 810 dm.variables = ['continuous_design', 811 'normal_uncertain', 812 'uniform_uncertain', 813 'continuous_state'] 814 dm.lcspec = [] 815 dm.responses = ['objective_function', 816 'response_function'] 817 dm.ghspec = [] 818 dm.params.output = False 819 dm.params.list_of_points = [] 820 821 elif dm.method == 'centered_parameter_study': 822 dm.type = 'param' 823 dm.variables = ['continuous_design', 824 'normal_uncertain', 825 'uniform_uncertain', 826 'continuous_state'] 827 dm.lcspec = [] 828 dm.responses = ['objective_function', 829 'response_function'] 830 dm.ghspec = [] 831 dm.params.output = False 832 dm.params.percent_delta = [] 833 dm.params.deltas_per_variable = [] 834 835 elif dm.method == 'multidim_parameter_study': 836 dm.type = 'param' 837 dm.variables = ['continuous_design', 838 'normal_uncertain', 839 'uniform_uncertain', 840 'continuous_state'] 841 dm.lcspec = [] 842 dm.responses = ['objective_function', 843 'response_function'] 844 dm.ghspec = [] 845 dm.params.output = False 846 dm.params.partitions = [] 847 848 elif dm.method == 'bayes_calibration': 849 dm.type = 'bayes' 850 dm.variables = ['continuous_design', 851 'normal_uncertain', 852 'uniform_uncertain', 853 'continuous_state'] 854 dm.lcspec = [] 855 dm.responses = ['objective_function', 856 'response_function', 857 'calibration_function'] 858 dm.ghspec = [] 859 dm.params.queso = False 860 dm.params.dream = False 861 dm.params.gpmsa = False 862 dm.params.samples = 0 863 dm.params.seed = False 864 dm.params.output = False 865 dm.params.metropolis_hastings = False 866 dm.params.proposal_covariance = False 867 dm.params.diagonal = False 868 dm.params.values = [] 869 870 else: 871 raise RuntimeError('Unimplemented method: {}.'.format(dm.method)) 872 873 # if more than one argument, issue warning 874 else: 875 print('Warning: dakota_method:extra_arg: Extra arguments for object of class ' + str(type(dm)) + '.') 876 return dm 877 878 def __repr__(dm): 879 880 # display the object 881 string = '\nclass dakota_method object = \n' 882 string += ' method: ' + str(dm.method) + '\n' 883 string += ' type: ' + str(dm.type) + '\n' 884 string += ' variables: ' + str(dm.variables) + '\n' 885 string += ' lcspec: ' + str(dm.lcspec) + '\n' 886 string += ' responses: ' + str(dm.responses) + '\n' 887 string += ' ghspec: ' + str(dm.ghspec) + '\n' 888 889 # display the parameters within the object 890 891 fnames = fieldnames(dm.params) 892 #get rid of stuff we aren't using 893 try: 894 fnames.remove('__module__') 895 except ValueError: 896 pass 897 898 maxlen = 0 899 for i in range(len(fnames)): 900 maxlen = max(maxlen, len(fnames[i])) 901 902 for i in fnames: 903 string += ' params.{:{space}s}: {}\n'.format(str(i), str(dm.params.__dict__[i]), space=maxlen + 1) 904 #params.x : y 905 #with maxlen + 1 spaces between x and : 906 return string -
issm/trunk-jpl/src/m/classes/qmu/@dakota_method/dmeth_params_set.py
r23716 r24213 2 2 from dakota_method import * 3 3 4 def dmeth_params_set(dm,*args):5 #6 # set parameters of a dakota_method object.7 #8 # dm=dmeth_params_set(dm,*args)9 #10 4 11 if not isinstance(dm,dakota_method): 12 raise RuntimeError('Provided object is a \''+str(type(dm))+'\' class object, not \'dakota_method\'') 5 def dmeth_params_set(dm, *args): 6 # 7 # set parameters of a dakota_method object. 8 # 9 # dm = dmeth_params_set(dm, *args) 10 # 13 11 14 # loop through each parameter field in the input list 15 for i in range(0,len(args),2): 16 if isfield(dm.params,args[i]): 17 #vars(dresp)[fnames[i]] 18 exec(('dm.params.%s = args[i+1]')%(args[i])) 19 #vars(dm.params)[args[i]]=args[i+1] 20 else: 21 print('WARNING: dmeth_params_set:unknown_param No parameter \''+str(args[i])+'\' for dakota_method \''+str(dm.method)+'\'.') 12 if not isinstance(dm, dakota_method): 13 raise RuntimeError('Provided object is a \'' + str(type(dm)) + '\' class object, not \'dakota_method\'') 22 14 23 return dm 15 # loop through each parameter field in the input list 16 for i in range(0, len(args), 2): 17 if isfield(dm.params, args[i]): 18 #vars(dresp)[fnames[i]] 19 exec(('dm.params.%s = args[i + 1]') % (args[i])) 20 #vars(dm.params)[args[i]] = args[i + 1] 21 else: 22 print('WARNING: dmeth_params_set:unknown_param No parameter \'' + str(args[i]) + '\' for dakota_method \'' + str(dm.method) + '\'.') 23 24 return dm -
issm/trunk-jpl/src/m/classes/qmu/@dakota_method/dmeth_params_write.py
r23716 r24213 2 2 from MatlabFuncs import * 3 3 from IssmConfig import * 4 5 4 #move this later: 6 5 from helpers import * 7 6 8 # 9 # write the parameters from a dakota_method object. 10 # 11 # []=dmeth_params_write(dm,fid,sbeg) 12 # 13 def dmeth_params_write(dm,fid,sbeg='\t '): 14 15 if not isinstance(dm,dakota_method): 16 raise RuntimeError('Object '+str(dm)+' is a '+type(dm)+' class object, not <dakota_method>.') 17 18 if sbeg == None or sbeg =='': 19 sbeg='\t ' 20 21 # perform some error checking, but leave the rest to dakota. 22 # unfortunately this prevents merely looping through the fields 23 # of the parameters structure. 24 25 # write method-indepent controls 26 27 # param_write(fid,sbeg,'id_method',' = ','\n',dm.params) 28 # param_write(fid,sbeg,'model_pointer',' = ','\n',dm.params) 29 30 # write method-depent controls 31 32 #switch dm.type 33 if dm.type == 'dot': 34 param_write(fid,sbeg,'max_iterations',' = ','\n',dm.params) 35 param_write(fid,sbeg,'max_function_evaluations',' = ','\n',dm.params) 36 param_write(fid,sbeg,'convergence_tolerance',' = ','\n',dm.params) 37 param_write(fid,sbeg,'constraint_tolerance',' = ','\n',dm.params) 38 param_write(fid,sbeg,'output',' ','\n',dm.params) 39 param_write(fid,sbeg,'speculative','','\n',dm.params) 40 param_write(fid,sbeg,'scaling','','\n',dm.params) 41 #switch dm.method 42 if dm.method in ['dot_bfgs', 43 'dot_frcg', 44 'dot_mmfd', 45 'dot_slp', 46 'dot_sqp']: 47 param_write(fid,sbeg,'optimization_type',' = ','\n',dm.params) 48 49 else: 50 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 51 52 elif dm.type == 'npsol': 53 param_write(fid,sbeg,'max_iterations',' = ','\n',dm.params) 54 param_write(fid,sbeg,'max_function_evaluations',' = ','\n',dm.params) 55 param_write(fid,sbeg,'convergence_tolerance',' = ','\n',dm.params) 56 param_write(fid,sbeg,'constraint_tolerance',' = ','\n',dm.params) 57 param_write(fid,sbeg,'output',' ','\n',dm.params) 58 param_write(fid,sbeg,'speculative','','\n',dm.params) 59 param_write(fid,sbeg,'scaling','','\n',dm.params) 60 #switch dm.method 61 if dm.method == 'npsol_sqp': 62 param_write(fid,sbeg,'verify_level',' = ','\n',dm.params) 63 param_write(fid,sbeg,'function_precision',' = ','\n',dm.params) 64 param_write(fid,sbeg,'linesearch_tolerance',' = ','\n',dm.params) 65 66 else: 67 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 68 69 elif dm.type == 'conmin': 70 param_write(fid,sbeg,'max_iterations',' = ','\n',dm.params) 71 param_write(fid,sbeg,'max_function_evaluations',' = ','\n',dm.params) 72 param_write(fid,sbeg,'convergence_tolerance',' = ','\n',dm.params) 73 param_write(fid,sbeg,'constraint_tolerance',' = ','\n',dm.params) 74 param_write(fid,sbeg,'output',' ','\n',dm.params) 75 param_write(fid,sbeg,'speculative','','\n',dm.params) 76 param_write(fid,sbeg,'scaling','','\n',dm.params) 77 #switch dm.method 78 if dm.method in ['conmin_frcg','conmin_mfd']: 79 pass 80 else: 81 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 82 83 elif dm.type == 'optpp': 84 param_write(fid,sbeg,'max_iterations',' = ','\n',dm.params) 85 param_write(fid,sbeg,'max_function_evaluations',' = ','\n',dm.params) 86 param_write(fid,sbeg,'convergence_tolerance',' = ','\n',dm.params) 87 param_write(fid,sbeg,'output',' ','\n',dm.params) 88 param_write(fid,sbeg,'speculative','','\n',dm.params) 89 param_write(fid,sbeg,'scaling','','\n',dm.params) 90 #switch dm.method 91 if dm.method == 'optpp_cg': 92 param_write(fid,sbeg,'max_step',' = ','\n',dm.params) 93 param_write(fid,sbeg,'gradient_tolerance',' = ','\n',dm.params) 94 95 elif dm.method in ['optpp_q_newton','optpp_fd_newton','optpp_newton']: 96 if (dm.params.value_based_line_search + 97 dm.params.gradient_based_line_search + 98 dm.params.trust_region + 99 dm.params.tr_pds > 1): 100 raise RuntimeError('#s'' method must have only one algorithm.', 101 dm.method) 102 param_write(fid,sbeg,'value_based_line_search','','\n',dm.params) 103 param_write(fid,sbeg,'gradient_based_line_search','','\n',dm.params) 104 param_write(fid,sbeg,'trust_region','','\n',dm.params) 105 param_write(fid,sbeg,'tr_pds','','\n',dm.params) 106 param_write(fid,sbeg,'max_step',' = ','\n',dm.params) 107 param_write(fid,sbeg,'gradient_tolerance',' = ','\n',dm.params) 108 param_write(fid,sbeg,'merit_function',' = ','\n',dm.params) 109 param_write(fid,sbeg,'central_path',' = ','\n',dm.params) 110 param_write(fid,sbeg,'steplength_to_boundary',' = ','\n',dm.params) 111 param_write(fid,sbeg,'centering_parameter',' = ','\n',dm.params) 112 113 elif dm.method == 'optpp_pds': 114 param_write(fid,sbeg,'search_scheme_size',' = ','\n',dm.params) 115 116 else: 117 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 118 119 elif dm.type == 'apps': 120 param_write(fid,sbeg,'max_function_evaluations',' = ','\n',dm.params) 121 param_write(fid,sbeg,'constraint_tolerance',' = ','\n',dm.params) 122 param_write(fid,sbeg,'output',' ','\n',dm.params) 123 param_write(fid,sbeg,'scaling','','\n',dm.params) 124 #switch dm.method 125 if dm.method == 'asynch_pattern_search': 126 param_write(fid,sbeg,'initial_delta',' = ','\n',dm.params) 127 param_write(fid,sbeg,'threshold_delta',' = ','\n',dm.params) 128 param_write(fid,sbeg,'contraction_factor',' = ','\n',dm.params) 129 param_write(fid,sbeg,'solution_target',' = ','\n',dm.params) 130 param_write(fid,sbeg,'synchronization',' = ','\n',dm.params) 131 param_write(fid,sbeg,'merit_function',' = ','\n',dm.params) 132 param_write(fid,sbeg,'constraint_penalty',' = ','\n',dm.params) 133 param_write(fid,sbeg,'smoothing_factor',' = ','\n',dm.params) 134 135 else: 136 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 137 138 elif dm.type == 'coliny': 139 param_write(fid,sbeg,'max_iterations',' = ','\n',dm.params) 140 param_write(fid,sbeg,'max_function_evaluations',' = ','\n',dm.params) 141 param_write(fid,sbeg,'convergence_tolerance',' = ','\n',dm.params) 142 param_write(fid,sbeg,'output',' ','\n',dm.params) 143 param_write(fid,sbeg,'scaling','','\n',dm.params) 144 param_write(fid,sbeg,'show_misc_options','','\n',dm.params) 145 param_write(fid,sbeg,'misc_options',' = ','\n',dm.params) 146 param_write(fid,sbeg,'solution_accuracy',' = ','\n',dm.params) 147 #switch dm.method 148 if dm.method == 'coliny_cobyla': 149 param_write(fid,sbeg,'initial_delta',' = ','\n',dm.params) 150 param_write(fid,sbeg,'threshold_delta',' = ','\n',dm.params) 151 152 elif dm.method == 'coliny_direct': 153 param_write(fid,sbeg,'division',' = ','\n',dm.params) 154 param_write(fid,sbeg,'global_balance_parameter',' = ','\n',dm.params) 155 param_write(fid,sbeg,'local_balance_parameter',' = ','\n',dm.params) 156 param_write(fid,sbeg,'max_boxsize_limit',' = ','\n',dm.params) 157 param_write(fid,sbeg,'min_boxsize_limit',' = ','\n',dm.params) 158 param_write(fid,sbeg,'constraint_penalty',' = ','\n',dm.params) 159 160 elif dm.method == 'coliny_ea': 161 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 162 param_write(fid,sbeg,'population_size',' = ','\n',dm.params) 163 param_write(fid,sbeg,'initialization_type',' = ','\n',dm.params) 164 param_write(fid,sbeg,'fitness_type',' = ','\n',dm.params) 165 param_write(fid,sbeg,'replacement_type',' = ','\n',dm.params) 166 param_write(fid,sbeg,'random',' = ','\n',dm.params) 167 param_write(fid,sbeg,'chc',' = ','\n',dm.params) 168 param_write(fid,sbeg,'elitist',' = ','\n',dm.params) 169 param_write(fid,sbeg,'new_solutions_generated',' = ','\n',dm.params) 170 param_write(fid,sbeg,'crossover_type',' = ','\n',dm.params) 171 param_write(fid,sbeg,'crossover_rate',' = ','\n',dm.params) 172 param_write(fid,sbeg,'mutation_type',' = ','\n',dm.params) 173 param_write(fid,sbeg,'mutation_scale',' = ','\n',dm.params) 174 param_write(fid,sbeg,'mutation_range',' = ','\n',dm.params) 175 param_write(fid,sbeg,'dimension_ratio',' = ','\n',dm.params) 176 param_write(fid,sbeg,'mutation_rate',' = ','\n',dm.params) 177 param_write(fid,sbeg,'non_adaptive','','\n',dm.params) 178 179 elif dm.method == 'coliny_pattern_search': 180 param_write(fid,sbeg,'stochastic','','\n',dm.params) 181 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 182 param_write(fid,sbeg,'initial_delta',' = ','\n',dm.params) 183 param_write(fid,sbeg,'threshold_delta',' = ','\n',dm.params) 184 param_write(fid,sbeg,'constraint_penalty',' = ','\n',dm.params) 185 param_write(fid,sbeg,'constant_penalty','','\n',dm.params) 186 param_write(fid,sbeg,'pattern_basis',' = ','\n',dm.params) 187 param_write(fid,sbeg,'total_pattern_size',' = ','\n',dm.params) 188 param_write(fid,sbeg,'no_expansion','','\n',dm.params) 189 param_write(fid,sbeg,'expand_after_success',' = ','\n',dm.params) 190 param_write(fid,sbeg,'contraction_factor',' = ','\n',dm.params) 191 param_write(fid,sbeg,'synchronization',' = ','\n',dm.params) 192 param_write(fid,sbeg,'exploratory_moves',' = ','\n',dm.params) 193 194 elif dm.method == 'coliny_solis_wets': 195 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 196 param_write(fid,sbeg,'initial_delta',' = ','\n',dm.params) 197 param_write(fid,sbeg,'threshold_delta',' = ','\n',dm.params) 198 param_write(fid,sbeg,'no_expansion','','\n',dm.params) 199 param_write(fid,sbeg,'expand_after_success',' = ','\n',dm.params) 200 param_write(fid,sbeg,'contract_after_failure',' = ','\n',dm.params) 201 param_write(fid,sbeg,'contraction_factor',' = ','\n',dm.params) 202 param_write(fid,sbeg,'constraint_penalty',' = ','\n',dm.params) 203 param_write(fid,sbeg,'constant_penalty','','\n',dm.params) 204 205 else: 206 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 207 208 elif dm.type == 'ncsu': 209 param_write(fid,sbeg,'max_iterations',' = ','\n',dm.params) 210 param_write(fid,sbeg,'max_function_evaluations',' = ','\n',dm.params) 211 param_write(fid,sbeg,'scaling','','\n',dm.params) 212 #switch dm.method 213 if dm.method == 'ncsu_direct': 214 param_write(fid,sbeg,'solution_accuracy',' = ','\n',dm.params) 215 param_write(fid,sbeg,'min_boxsize_limit',' = ','\n',dm.params) 216 param_write(fid,sbeg,'vol_boxsize_limit',' = ','\n',dm.params) 217 218 else: 219 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 220 221 elif dm.type == 'jega': 222 param_write(fid,sbeg,'max_iterations',' = ','\n',dm.params) 223 param_write(fid,sbeg,'max_function_evaluations',' = ','\n',dm.params) 224 param_write(fid,sbeg,'output',' ','\n',dm.params) 225 param_write(fid,sbeg,'scaling','','\n',dm.params) 226 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 227 param_write(fid,sbeg,'log_file',' = ','\n',dm.params) 228 param_write(fid,sbeg,'population_size',' = ','\n',dm.params) 229 param_write(fid,sbeg,'print_each_pop','','\n',dm.params) 230 param_write(fid,sbeg,'output',' = ','\n',dm.params) 231 param_write(fid,sbeg,'initialization_type',' = ','\n',dm.params) 232 param_write(fid,sbeg,'mutation_type',' = ','\n',dm.params) 233 param_write(fid,sbeg,'mutation_scale',' = ','\n',dm.params) 234 param_write(fid,sbeg,'mutation_rate',' = ','\n',dm.params) 235 param_write(fid,sbeg,'replacement_type',' = ','\n',dm.params) 236 param_write(fid,sbeg,'below_limit',' = ','\n',dm.params) 237 param_write(fid,sbeg,'shrinkage_percentage',' = ','\n',dm.params) 238 param_write(fid,sbeg,'crossover_type',' = ','\n',dm.params) 239 param_write(fid,sbeg,'multi_point_binary',' = ','\n',dm.params) 240 param_write(fid,sbeg,'multi_point_parameterized_binary',' = ','\n',dm.params) 241 param_write(fid,sbeg,'multi_point_real',' = ','\n',dm.params) 242 param_write(fid,sbeg,'shuffle_random',' = ','\n',dm.params) 243 param_write(fid,sbeg,'num_parents',' = ','\n',dm.params) 244 param_write(fid,sbeg,'num_offspring',' = ','\n',dm.params) 245 param_write(fid,sbeg,'crossover_rate',' = ','\n',dm.params) 246 247 #switch dm.method 248 if dm.method == 'moga': 249 param_write(fid,sbeg,'fitness_type',' = ','\n',dm.params) 250 param_write(fid,sbeg,'niching_type',' = ','\n',dm.params) 251 if not isempty(dm.params.radial) and not isempty(dm.params.distance): 252 raise RuntimeError('#s'' method must have only one niching distance.', 253 dm.method) 254 param_write(fid,sbeg,'radial',' = ','\n',dm.params) 255 param_write(fid,sbeg,'distance',' = ','\n',dm.params) 256 param_write(fid,sbeg,'metric_tracker','','\n',dm.params) 257 param_write(fid,sbeg,'percent_change',' = ','\n',dm.params) 258 param_write(fid,sbeg,'num_generations',' = ','\n',dm.params) 259 param_write(fid,sbeg,'postprocessor_type',' = ','\n',dm.params) 260 param_write(fid,sbeg,'orthogonal_distance',' = ','\n',dm.params) 261 262 elif dm.method == 'soga': 263 param_write(fid,sbeg,'fitness_type',' = ','\n',dm.params) 264 param_write(fid,sbeg,'constraint_penalty',' = ','\n',dm.params) 265 param_write(fid,sbeg,'replacement_type',' = ','\n',dm.params) 266 param_write(fid,sbeg,'convergence_type',' = ','\n',dm.params) 267 param_write(fid,sbeg,'num_generations',' = ','\n',dm.params) 268 param_write(fid,sbeg,'percent_change',' = ','\n',dm.params) 269 270 else: 271 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 272 273 elif dm.type == 'lsq': 274 #switch dm.method 275 if dm.method == 'nl2sol': 276 param_write(fid,sbeg,'max_iterations',' = ','\n',dm.params) 277 param_write(fid,sbeg,'max_function_evaluations',' = ','\n',dm.params) 278 param_write(fid,sbeg,'convergence_tolerance',' = ','\n',dm.params) 279 param_write(fid,sbeg,'output',' ','\n',dm.params) 280 param_write(fid,sbeg,'scaling','','\n',dm.params) 281 param_write(fid,sbeg,'function_precision',' = ','\n',dm.params) 282 param_write(fid,sbeg,'absolute_conv_tol',' = ','\n',dm.params) 283 param_write(fid,sbeg,'x_conv_tol',' = ','\n',dm.params) 284 param_write(fid,sbeg,'singular_conv_tol',' = ','\n',dm.params) 285 param_write(fid,sbeg,'singular_radius',' = ','\n',dm.params) 286 param_write(fid,sbeg,'false_conv_tol',' = ','\n',dm.params) 287 param_write(fid,sbeg,'initial_trust_radius',' = ','\n',dm.params) 288 param_write(fid,sbeg,'covariance',' = ','\n',dm.params) 289 param_write(fid,sbeg,'regression_stressbalances','','\n',dm.params) 290 291 elif dm.method == 'nlssol_sqp': 292 param_write(fid,sbeg,'max_iterations',' = ','\n',dm.params) 293 param_write(fid,sbeg,'max_function_evaluations',' = ','\n',dm.params) 294 param_write(fid,sbeg,'convergence_tolerance',' = ','\n',dm.params) 295 param_write(fid,sbeg,'constraint_tolerance',' = ','\n',dm.params) 296 param_write(fid,sbeg,'output',' ','\n',dm.params) 297 param_write(fid,sbeg,'speculative','','\n',dm.params) 298 param_write(fid,sbeg,'scaling','','\n',dm.params) 299 param_write(fid,sbeg,'verify_level',' = ','\n',dm.params) 300 param_write(fid,sbeg,'function_precision',' = ','\n',dm.params) 301 param_write(fid,sbeg,'linesearch_tolerance',' = ','\n',dm.params) 302 303 elif dm.method == 'optpp_g_newton': 304 param_write(fid,sbeg,'max_iterations',' = ','\n',dm.params) 305 param_write(fid,sbeg,'max_function_evaluations',' = ','\n',dm.params) 306 param_write(fid,sbeg,'convergence_tolerance',' = ','\n',dm.params) 307 param_write(fid,sbeg,'output',' ','\n',dm.params) 308 param_write(fid,sbeg,'speculative','','\n',dm.params) 309 param_write(fid,sbeg,'scaling','','\n',dm.params) 310 311 if (dm.params.value_based_line_search + 312 dm.params.gradient_based_line_search + 313 dm.params.trust_region + 314 dm.params.tr_pds > 1): 315 raise RuntimeError('#s'' method must have only one algorithm.', 316 dm.method) 317 318 param_write(fid,sbeg,'value_based_line_search','','\n',dm.params) 319 param_write(fid,sbeg,'gradient_based_line_search','','\n',dm.params) 320 param_write(fid,sbeg,'trust_region','','\n',dm.params) 321 param_write(fid,sbeg,'tr_pds','','\n',dm.params) 322 param_write(fid,sbeg,'max_step',' = ','\n',dm.params) 323 param_write(fid,sbeg,'gradient_tolerance',' = ','\n',dm.params) 324 param_write(fid,sbeg,'merit_function',' = ','\n',dm.params) 325 param_write(fid,sbeg,'central_path',' = ','\n',dm.params) 326 param_write(fid,sbeg,'steplength_to_boundary',' = ','\n',dm.params) 327 param_write(fid,sbeg,'centering_parameter',' = ','\n',dm.params) 328 329 else: 330 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 331 332 elif dm.type == 'nond': 333 #switch dm.method 334 if dm.method == 'nond_sampling': 335 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 336 param_write(fid,sbeg,'fixed_seed','','\n',dm.params) 337 dver = str(IssmConfig('_DAKOTA_VERSION_')[0]) 338 if ((int(dver[0])==4 and int(dver[2])>2) or int(dver[0])>4): 339 param_write(fid,sbeg,'rng',' ','\n',dm.params) 340 param_write(fid,sbeg,'samples',' = ','\n',dm.params) 341 param_write(fid,sbeg,'sample_type',' ','\n',dm.params) 342 param_write(fid,sbeg,'all_variables','','\n',dm.params) 343 param_write(fid,sbeg,'variance_based_decomp','','\n',dm.params) 344 if strcmp(dm.params.sample_type,'incremental_random') or strcmp(dm.params.sample_type,'incremental_lhs'): 345 param_write(fid,sbeg,'previous_samples',' = ','\n',dm.params) 346 param_write(fid,sbeg,'output',' ','\n',dm.params) 347 348 elif dm.method == 'nond_local_reliability': 349 param_write(fid,sbeg,'max_iterations',' = ','\n',dm.params) 350 param_write(fid,sbeg,'convergence_tolerance',' = ','\n',dm.params) 351 param_write(fid,sbeg,'mpp_search',' = ','\n',dm.params) 352 if type(dm.params.mpp_search) == str: 353 if (dm.params.sqp +dm.params.nip > 1): 354 raise RuntimeError('#s'' method must have only one algorithm.', 355 dm.method) 356 357 param_write(fid,sbeg,'sqp','','\n',dm.params) 358 param_write(fid,sbeg,'nip','','\n',dm.params) 359 param_write(fid,sbeg,'integration',' ','\n',dm.params) 360 param_write(fid,sbeg,'refinement',' = ','\n',dm.params) 361 if type(dm.params.refinement) == str: 362 param_write(fid,sbeg,'samples',' = ','\n',dm.params) 363 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 364 param_write(fid,sbeg,'output',' ','\n',dm.params) 365 366 elif dm.method == 'nond_global_reliability': 367 if (dm.params.x_gaussian_process + dm.params.u_gaussian_process != 1): 368 raise RuntimeError('#s'' method must have one and only one algorithm.', 369 dm.method) 370 371 param_write(fid,sbeg,'x_gaussian_process','','\n',dm.params) 372 param_write(fid,sbeg,'u_gaussian_process','','\n',dm.params) 373 param_write(fid,sbeg,'all_variables','','\n',dm.params) 374 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 375 376 elif dm.method == 'nond_polynomial_chaos': 377 param_write(fid,sbeg,'expansion_order',' = ','\n',dm.params) 378 param_write(fid,sbeg,'expansion_terms',' = ','\n',dm.params) 379 param_write(fid,sbeg,'quadrature_order',' = ','\n',dm.params) 380 param_write(fid,sbeg,'sparse_grid_level',' = ','\n',dm.params) 381 param_write(fid,sbeg,'expansion_samples',' = ','\n',dm.params) 382 param_write(fid,sbeg,'incremental_lhs','','\n',dm.params) 383 param_write(fid,sbeg,'collocation_points',' = ','\n',dm.params) 384 param_write(fid,sbeg,'collocation_ratio',' = ','\n',dm.params) 385 param_write(fid,sbeg,'reuse_samples','','\n',dm.params) 386 param_write(fid,sbeg,'expansion_import_file',' = ','\n',dm.params) 387 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 388 param_write(fid,sbeg,'fixed_seed','','\n',dm.params) 389 param_write(fid,sbeg,'samples',' = ','\n',dm.params) 390 param_write(fid,sbeg,'sample_type',' = ','\n',dm.params) 391 param_write(fid,sbeg,'all_variables','','\n',dm.params) 392 393 elif dm.method == 'nond_stoch_collocation': 394 param_write(fid,sbeg,'quadrature_order',' = ','\n',dm.params) 395 param_write(fid,sbeg,'sparse_grid_level',' = ','\n',dm.params) 396 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 397 param_write(fid,sbeg,'fixed_seed','','\n',dm.params) 398 param_write(fid,sbeg,'samples',' = ','\n',dm.params) 399 param_write(fid,sbeg,'sample_type',' = ','\n',dm.params) 400 param_write(fid,sbeg,'all_variables','','\n',dm.params) 401 402 elif dm.method == 'nond_evidence': 403 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 404 param_write(fid,sbeg,'samples',' = ','\n',dm.params) 405 406 else: 407 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 408 409 410 elif dm.type == 'dace': 411 #switch dm.method 412 if dm.method == 'dace': 413 if (dm.params.grid + dm.params.random + dm.params.oas + dm.params.lhs + dm.params.oa_lhs + dm.params.box_behnken + dm.params.central_composite != 1): 414 raise RuntimeError('#s'' method must have one and only one algorithm.', 415 dm.method) 416 417 param_write(fid,sbeg,'grid','','\n',dm.params) 418 param_write(fid,sbeg,'random','','\n',dm.params) 419 param_write(fid,sbeg,'oas','','\n',dm.params) 420 param_write(fid,sbeg,'lhs','','\n',dm.params) 421 param_write(fid,sbeg,'oa_lhs','','\n',dm.params) 422 param_write(fid,sbeg,'box_behnken','','\n',dm.params) 423 param_write(fid,sbeg,'central_composite','','\n',dm.params) 424 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 425 param_write(fid,sbeg,'fixed_seed','','\n',dm.params) 426 param_write(fid,sbeg,'samples',' = ','\n',dm.params) 427 param_write(fid,sbeg,'symbols',' = ','\n',dm.params) 428 param_write(fid,sbeg,'quality_metrics','','\n',dm.params) 429 param_write(fid,sbeg,'variance_based_decomp','','\n',dm.params) 430 431 elif dm.method == 'fsu_quasi_mc': 432 if (dm.params.halton + dm.params.hammersley != 1): 433 raise RuntimeError('#s'' method must have one and only one sequence type.',dm.method) 434 435 param_write(fid,sbeg,'halton','','\n',dm.params) 436 param_write(fid,sbeg,'hammersley','','\n',dm.params) 437 param_write(fid,sbeg,'samples',' = ','\n',dm.params) 438 param_write(fid,sbeg,'sequence_start',' = ','\n',dm.params) 439 param_write(fid,sbeg,'sequence_leap',' = ','\n',dm.params) 440 param_write(fid,sbeg,'prime_base',' = ','\n',dm.params) 441 param_write(fid,sbeg,'fixed_sequence','','\n',dm.params) 442 param_write(fid,sbeg,'latinize','','\n',dm.params) 443 param_write(fid,sbeg,'variance_based_decomp','','\n',dm.params) 444 param_write(fid,sbeg,'quality_metrics','','\n',dm.params) 445 446 elif dm.method == 'fsu_cvt': 447 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 448 param_write(fid,sbeg,'fixed_seed','','\n',dm.params) 449 param_write(fid,sbeg,'samples',' = ','\n',dm.params) 450 param_write(fid,sbeg,'num_trials',' = ','\n',dm.params) 451 param_write(fid,sbeg,'trial_type',' = ','\n',dm.params) 452 param_write(fid,sbeg,'latinize','','\n',dm.params) 453 param_write(fid,sbeg,'variance_based_decomp','','\n',dm.params) 454 param_write(fid,sbeg,'quality_metrics','','\n',dm.params) 455 456 else: 457 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 458 459 elif dm.type == 'param': 460 param_write(fid,sbeg,'output',' ','\n',dm.params) 461 #switch dm.method 462 if dm.method == 'vector_parameter_study': 463 if not np.logical_xor(isempty(dm.params.final_point),isempty(dm.params.step_vector)): 464 raise RuntimeError(str(dm.method)+' method must have one and only one specification.') 465 466 if not isempty(dm.params.final_point): 467 param_write(fid,sbeg,'final_point',' = ','\n',dm.params) 468 param_write(fid,sbeg,'step_length',' = ','\n',dm.params) 469 param_write(fid,sbeg,'num_steps',' = ','\n',dm.params) 470 471 elif not isempty(dm.params.step_vector): 472 param_write(fid,sbeg,'step_vector',' = ','\n',dm.params) 473 param_write(fid,sbeg,'num_steps',' = ','\n',dm.params) 474 475 elif dm.method == 'list_parameter_study': 476 param_write(fid,sbeg,'list_of_points',' = ','\n',dm.params) 477 478 elif dm.method == 'centered_parameter_study': 479 param_write(fid,sbeg,'percent_delta',' = ','\n',dm.params) 480 param_write(fid,sbeg,'deltas_per_variable',' = ','\n',dm.params) 481 482 elif dm.method == 'multidim_parameter_study': 483 param_write(fid,sbeg,'partitions',' = ','\n',dm.params) 484 485 else: 486 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 487 488 489 elif dm.type == 'bayes': 490 #switch dm.method 491 if dm.method == 'bayes_calibration': 492 # if (dm.params.queso + 493 # dm.params.dream + 494 # dm.params.gpmsa ~= 1) 495 # raise RuntimeError('''#s'' method must have one and only one bayes type. YOU SUCK', 496 # dm.method) 497 # 498 param_write(fid,sbeg,'queso','','\n',dm.params) 499 param_write(fid,sbeg,'dream','','\n',dm.params) 500 param_write(fid,sbeg,'gpmsa','','\n',dm.params) 501 param_write(fid,sbeg,'samples',' = ','\n',dm.params) 502 param_write(fid,sbeg,'seed',' = ','\n',dm.params) 503 param_write(fid,sbeg,'output',' =','\n',dm.params) 504 param_write(fid,sbeg,'metropolis_hastings','','\n',dm.params) 505 param_write(fid,sbeg,'proposal_covariance','','\n',dm.params) 506 param_write(fid,sbeg,'diagonal','','\n',dm.params) 507 param_write(fid,sbeg,'values',' = ','\n',dm.params) 508 509 else: 510 raise RuntimeError('Unrecognized '+dm.type+' method: '+dm.method+'.') 511 512 ## function to write a structure of parameters 513 def param_struc_write(fidi,sbeg,smid,s,params): 514 # loop through each parameter field in the structure 515 fnames=fieldnames(params) 516 for i in range(np.size(fnames)): 517 param_write(fidi,sbeg,fnames[i],smid,s,params) 518 519 return 520 521 ## function to write a parameter 522 def param_write(fidi,sbeg,pname,smid,s,params): 523 # check for errors 524 if not isfield(params,pname): 525 warning('param_write:param_not_found', 526 'Parameter '+str(pname)+' not found in '+params+'.') 527 return 528 elif type(vars(params)[pname]) == bool and not vars(params)[pname]: 529 return 530 elif isempty(vars(params)[pname]): 531 print('Warning: param_write:param_empty: Parameter {} requires input of type {}.'.format(pname,type(vars(params)[pname]))) 532 return 533 534 # construct the parameter string based on type 535 if type(vars(params)[pname]) == bool: 536 fidi.write(sbeg+str(pname)+s) 537 538 elif type(vars(params)[pname]) in [int,float]: 539 fidi.write(sbeg+str(pname)+smid+str(vars(params)[pname])+s) 540 541 elif type(vars(params)[pname]) == list: 542 fidi.write(sbeg+str(pname)+smid+str(vars(params)[pname][0])) 543 for i in range(1,np.size(vars(params)[pname])): 544 fidi.write(' '+str(vars(params)[pname][i])) 545 546 fidi.write(s) 547 548 elif type(vars(params)[pname]) == str: 549 fidi.write(sbeg+str(pname)+smid+str(vars(params)[pname])+s) 550 551 else: 552 print('Warning: param_write:param_unrecog: Parameter {} is of unrecognized type {}.'.format(pname,type(vars(params)[pname]))) 553 return 7 8 def dmeth_params_write(dm, fid, sbeg='\t '): 9 ''' write the parameters from a dakota_method object. 10 [] = dmeth_params_write(dm, fid, sbeg) 11 ''' 12 13 if not isinstance(dm, dakota_method): 14 raise RuntimeError('Object ' + str(dm) + ' is a ' + type(dm) + ' class object, not < dakota_method > .') 15 16 if sbeg is None or sbeg == '': 17 sbeg = '\t ' 18 19 # perform some error checking, but leave the rest to dakota. 20 # unfortunately this prevents merely looping through the fields 21 # of the parameters structure. 22 23 # write method - indepent controls 24 25 # param_write(fid, sbeg, 'id_method', ' = ', '\n', dm.params) 26 # param_write(fid, sbeg, 'model_pointer', ' = ', '\n', dm.params) 27 28 # write method - depent controls 29 30 #switch dm.type 31 if dm.type == 'dot': 32 param_write(fid, sbeg, 'max_iterations', ' = ', '\n', dm.params) 33 param_write(fid, sbeg, 'max_function_evaluations', ' = ', '\n', dm.params) 34 param_write(fid, sbeg, 'convergence_tolerance', ' = ', '\n', dm.params) 35 param_write(fid, sbeg, 'constraint_tolerance', ' = ', '\n', dm.params) 36 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 37 param_write(fid, sbeg, 'speculative', '', '\n', dm.params) 38 param_write(fid, sbeg, 'scaling', '', '\n', dm.params) 39 #switch dm.method 40 if dm.method in ['dot_bfgs', 41 'dot_frcg', 42 'dot_mmfd', 43 'dot_slp', 44 'dot_sqp']: 45 param_write(fid, sbeg, 'optimization_type', ' = ', '\n', dm.params) 46 47 else: 48 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 49 50 elif dm.type == 'npsol': 51 param_write(fid, sbeg, 'max_iterations', ' = ', '\n', dm.params) 52 param_write(fid, sbeg, 'max_function_evaluations', ' = ', '\n', dm.params) 53 param_write(fid, sbeg, 'convergence_tolerance', ' = ', '\n', dm.params) 54 param_write(fid, sbeg, 'constraint_tolerance', ' = ', '\n', dm.params) 55 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 56 param_write(fid, sbeg, 'speculative', '', '\n', dm.params) 57 param_write(fid, sbeg, 'scaling', '', '\n', dm.params) 58 #switch dm.method 59 if dm.method == 'npsol_sqp': 60 param_write(fid, sbeg, 'verify_level', ' = ', '\n', dm.params) 61 param_write(fid, sbeg, 'function_precision', ' = ', '\n', dm.params) 62 param_write(fid, sbeg, 'linesearch_tolerance', ' = ', '\n', dm.params) 63 64 else: 65 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 66 67 elif dm.type == 'conmin': 68 param_write(fid, sbeg, 'max_iterations', ' = ', '\n', dm.params) 69 param_write(fid, sbeg, 'max_function_evaluations', ' = ', '\n', dm.params) 70 param_write(fid, sbeg, 'convergence_tolerance', ' = ', '\n', dm.params) 71 param_write(fid, sbeg, 'constraint_tolerance', ' = ', '\n', dm.params) 72 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 73 param_write(fid, sbeg, 'speculative', '', '\n', dm.params) 74 param_write(fid, sbeg, 'scaling', '', '\n', dm.params) 75 #switch dm.method 76 if dm.method in ['conmin_frcg', 'conmin_mfd']: 77 pass 78 else: 79 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 80 81 elif dm.type == 'optpp': 82 param_write(fid, sbeg, 'max_iterations', ' = ', '\n', dm.params) 83 param_write(fid, sbeg, 'max_function_evaluations', ' = ', '\n', dm.params) 84 param_write(fid, sbeg, 'convergence_tolerance', ' = ', '\n', dm.params) 85 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 86 param_write(fid, sbeg, 'speculative', '', '\n', dm.params) 87 param_write(fid, sbeg, 'scaling', '', '\n', dm.params) 88 #switch dm.method 89 if dm.method == 'optpp_cg': 90 param_write(fid, sbeg, 'max_step', ' = ', '\n', dm.params) 91 param_write(fid, sbeg, 'gradient_tolerance', ' = ', '\n', dm.params) 92 93 elif dm.method in ['optpp_q_newton', 'optpp_fd_newton', 'optpp_newton']: 94 if (dm.params.value_based_line_search + dm.params.gradient_based_line_search + dm.params.trust_region + dm.params.tr_pds > 1): 95 raise RuntimeError(' #s'' method must have only one algorithm.', dm.method) 96 param_write(fid, sbeg, 'value_based_line_search', '', '\n', dm.params) 97 param_write(fid, sbeg, 'gradient_based_line_search', '', '\n', dm.params) 98 param_write(fid, sbeg, 'trust_region', '', '\n', dm.params) 99 param_write(fid, sbeg, 'tr_pds', '', '\n', dm.params) 100 param_write(fid, sbeg, 'max_step', ' = ', '\n', dm.params) 101 param_write(fid, sbeg, 'gradient_tolerance', ' = ', '\n', dm.params) 102 param_write(fid, sbeg, 'merit_function', ' = ', '\n', dm.params) 103 param_write(fid, sbeg, 'central_path', ' = ', '\n', dm.params) 104 param_write(fid, sbeg, 'steplength_to_boundary', ' = ', '\n', dm.params) 105 param_write(fid, sbeg, 'centering_parameter', ' = ', '\n', dm.params) 106 107 elif dm.method == 'optpp_pds': 108 param_write(fid, sbeg, 'search_scheme_size', ' = ', '\n', dm.params) 109 110 else: 111 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 112 113 elif dm.type == 'apps': 114 param_write(fid, sbeg, 'max_function_evaluations', ' = ', '\n', dm.params) 115 param_write(fid, sbeg, 'constraint_tolerance', ' = ', '\n', dm.params) 116 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 117 param_write(fid, sbeg, 'scaling', '', '\n', dm.params) 118 #switch dm.method 119 if dm.method == 'asynch_pattern_search': 120 param_write(fid, sbeg, 'initial_delta', ' = ', '\n', dm.params) 121 param_write(fid, sbeg, 'threshold_delta', ' = ', '\n', dm.params) 122 param_write(fid, sbeg, 'contraction_factor', ' = ', '\n', dm.params) 123 param_write(fid, sbeg, 'solution_target', ' = ', '\n', dm.params) 124 param_write(fid, sbeg, 'synchronization', ' = ', '\n', dm.params) 125 param_write(fid, sbeg, 'merit_function', ' = ', '\n', dm.params) 126 param_write(fid, sbeg, 'constraint_penalty', ' = ', '\n', dm.params) 127 param_write(fid, sbeg, 'smoothing_factor', ' = ', '\n', dm.params) 128 129 else: 130 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 131 132 elif dm.type == 'coliny': 133 param_write(fid, sbeg, 'max_iterations', ' = ', '\n', dm.params) 134 param_write(fid, sbeg, 'max_function_evaluations', ' = ', '\n', dm.params) 135 param_write(fid, sbeg, 'convergence_tolerance', ' = ', '\n', dm.params) 136 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 137 param_write(fid, sbeg, 'scaling', '', '\n', dm.params) 138 param_write(fid, sbeg, 'show_misc_options', '', '\n', dm.params) 139 param_write(fid, sbeg, 'misc_options', ' = ', '\n', dm.params) 140 param_write(fid, sbeg, 'solution_accuracy', ' = ', '\n', dm.params) 141 #switch dm.method 142 if dm.method == 'coliny_cobyla': 143 param_write(fid, sbeg, 'initial_delta', ' = ', '\n', dm.params) 144 param_write(fid, sbeg, 'threshold_delta', ' = ', '\n', dm.params) 145 146 elif dm.method == 'coliny_direct': 147 param_write(fid, sbeg, 'division', ' = ', '\n', dm.params) 148 param_write(fid, sbeg, 'global_balance_parameter', ' = ', '\n', dm.params) 149 param_write(fid, sbeg, 'local_balance_parameter', ' = ', '\n', dm.params) 150 param_write(fid, sbeg, 'max_boxsize_limit', ' = ', '\n', dm.params) 151 param_write(fid, sbeg, 'min_boxsize_limit', ' = ', '\n', dm.params) 152 param_write(fid, sbeg, 'constraint_penalty', ' = ', '\n', dm.params) 153 154 elif dm.method == 'coliny_ea': 155 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 156 param_write(fid, sbeg, 'population_size', ' = ', '\n', dm.params) 157 param_write(fid, sbeg, 'initialization_type', ' = ', '\n', dm.params) 158 param_write(fid, sbeg, 'fitness_type', ' = ', '\n', dm.params) 159 param_write(fid, sbeg, 'replacement_type', ' = ', '\n', dm.params) 160 param_write(fid, sbeg, 'random', ' = ', '\n', dm.params) 161 param_write(fid, sbeg, 'chc', ' = ', '\n', dm.params) 162 param_write(fid, sbeg, 'elitist', ' = ', '\n', dm.params) 163 param_write(fid, sbeg, 'new_solutions_generated', ' = ', '\n', dm.params) 164 param_write(fid, sbeg, 'crossover_type', ' = ', '\n', dm.params) 165 param_write(fid, sbeg, 'crossover_rate', ' = ', '\n', dm.params) 166 param_write(fid, sbeg, 'mutation_type', ' = ', '\n', dm.params) 167 param_write(fid, sbeg, 'mutation_scale', ' = ', '\n', dm.params) 168 param_write(fid, sbeg, 'mutation_range', ' = ', '\n', dm.params) 169 param_write(fid, sbeg, 'dimension_ratio', ' = ', '\n', dm.params) 170 param_write(fid, sbeg, 'mutation_rate', ' = ', '\n', dm.params) 171 param_write(fid, sbeg, 'non_adaptive', '', '\n', dm.params) 172 173 elif dm.method == 'coliny_pattern_search': 174 param_write(fid, sbeg, 'stochastic', '', '\n', dm.params) 175 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 176 param_write(fid, sbeg, 'initial_delta', ' = ', '\n', dm.params) 177 param_write(fid, sbeg, 'threshold_delta', ' = ', '\n', dm.params) 178 param_write(fid, sbeg, 'constraint_penalty', ' = ', '\n', dm.params) 179 param_write(fid, sbeg, 'constant_penalty', '', '\n', dm.params) 180 param_write(fid, sbeg, 'pattern_basis', ' = ', '\n', dm.params) 181 param_write(fid, sbeg, 'total_pattern_size', ' = ', '\n', dm.params) 182 param_write(fid, sbeg, 'no_expansion', '', '\n', dm.params) 183 param_write(fid, sbeg, 'expand_after_success', ' = ', '\n', dm.params) 184 param_write(fid, sbeg, 'contraction_factor', ' = ', '\n', dm.params) 185 param_write(fid, sbeg, 'synchronization', ' = ', '\n', dm.params) 186 param_write(fid, sbeg, 'exploratory_moves', ' = ', '\n', dm.params) 187 188 elif dm.method == 'coliny_solis_wets': 189 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 190 param_write(fid, sbeg, 'initial_delta', ' = ', '\n', dm.params) 191 param_write(fid, sbeg, 'threshold_delta', ' = ', '\n', dm.params) 192 param_write(fid, sbeg, 'no_expansion', '', '\n', dm.params) 193 param_write(fid, sbeg, 'expand_after_success', ' = ', '\n', dm.params) 194 param_write(fid, sbeg, 'contract_after_failure', ' = ', '\n', dm.params) 195 param_write(fid, sbeg, 'contraction_factor', ' = ', '\n', dm.params) 196 param_write(fid, sbeg, 'constraint_penalty', ' = ', '\n', dm.params) 197 param_write(fid, sbeg, 'constant_penalty', '', '\n', dm.params) 198 199 else: 200 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 201 202 elif dm.type == 'ncsu': 203 param_write(fid, sbeg, 'max_iterations', ' = ', '\n', dm.params) 204 param_write(fid, sbeg, 'max_function_evaluations', ' = ', '\n', dm.params) 205 param_write(fid, sbeg, 'scaling', '', '\n', dm.params) 206 #switch dm.method 207 if dm.method == 'ncsu_direct': 208 param_write(fid, sbeg, 'solution_accuracy', ' = ', '\n', dm.params) 209 param_write(fid, sbeg, 'min_boxsize_limit', ' = ', '\n', dm.params) 210 param_write(fid, sbeg, 'vol_boxsize_limit', ' = ', '\n', dm.params) 211 212 else: 213 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 214 215 elif dm.type == 'jega': 216 param_write(fid, sbeg, 'max_iterations', ' = ', '\n', dm.params) 217 param_write(fid, sbeg, 'max_function_evaluations', ' = ', '\n', dm.params) 218 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 219 param_write(fid, sbeg, 'scaling', '', '\n', dm.params) 220 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 221 param_write(fid, sbeg, 'log_file', ' = ', '\n', dm.params) 222 param_write(fid, sbeg, 'population_size', ' = ', '\n', dm.params) 223 param_write(fid, sbeg, 'print_each_pop', '', '\n', dm.params) 224 param_write(fid, sbeg, 'output', ' = ', '\n', dm.params) 225 param_write(fid, sbeg, 'initialization_type', ' = ', '\n', dm.params) 226 param_write(fid, sbeg, 'mutation_type', ' = ', '\n', dm.params) 227 param_write(fid, sbeg, 'mutation_scale', ' = ', '\n', dm.params) 228 param_write(fid, sbeg, 'mutation_rate', ' = ', '\n', dm.params) 229 param_write(fid, sbeg, 'replacement_type', ' = ', '\n', dm.params) 230 param_write(fid, sbeg, 'below_limit', ' = ', '\n', dm.params) 231 param_write(fid, sbeg, 'shrinkage_percentage', ' = ', '\n', dm.params) 232 param_write(fid, sbeg, 'crossover_type', ' = ', '\n', dm.params) 233 param_write(fid, sbeg, 'multi_point_binary', ' = ', '\n', dm.params) 234 param_write(fid, sbeg, 'multi_point_parameterized_binary', ' = ', '\n', dm.params) 235 param_write(fid, sbeg, 'multi_point_real', ' = ', '\n', dm.params) 236 param_write(fid, sbeg, 'shuffle_random', ' = ', '\n', dm.params) 237 param_write(fid, sbeg, 'num_parents', ' = ', '\n', dm.params) 238 param_write(fid, sbeg, 'num_offspring', ' = ', '\n', dm.params) 239 param_write(fid, sbeg, 'crossover_rate', ' = ', '\n', dm.params) 240 241 #switch dm.method 242 if dm.method == 'moga': 243 param_write(fid, sbeg, 'fitness_type', ' = ', '\n', dm.params) 244 param_write(fid, sbeg, 'niching_type', ' = ', '\n', dm.params) 245 if not isempty(dm.params.radial) and not isempty(dm.params.distance): 246 raise RuntimeError(' #s'' method must have only one niching distance.', dm.method) 247 param_write(fid, sbeg, 'radial', ' = ', '\n', dm.params) 248 param_write(fid, sbeg, 'distance', ' = ', '\n', dm.params) 249 param_write(fid, sbeg, 'metric_tracker', '', '\n', dm.params) 250 param_write(fid, sbeg, 'percent_change', ' = ', '\n', dm.params) 251 param_write(fid, sbeg, 'num_generations', ' = ', '\n', dm.params) 252 param_write(fid, sbeg, 'postprocessor_type', ' = ', '\n', dm.params) 253 param_write(fid, sbeg, 'orthogonal_distance', ' = ', '\n', dm.params) 254 255 elif dm.method == 'soga': 256 param_write(fid, sbeg, 'fitness_type', ' = ', '\n', dm.params) 257 param_write(fid, sbeg, 'constraint_penalty', ' = ', '\n', dm.params) 258 param_write(fid, sbeg, 'replacement_type', ' = ', '\n', dm.params) 259 param_write(fid, sbeg, 'convergence_type', ' = ', '\n', dm.params) 260 param_write(fid, sbeg, 'num_generations', ' = ', '\n', dm.params) 261 param_write(fid, sbeg, 'percent_change', ' = ', '\n', dm.params) 262 263 else: 264 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 265 266 elif dm.type == 'lsq': 267 #switch dm.method 268 if dm.method == 'nl2sol': 269 param_write(fid, sbeg, 'max_iterations', ' = ', '\n', dm.params) 270 param_write(fid, sbeg, 'max_function_evaluations', ' = ', '\n', dm.params) 271 param_write(fid, sbeg, 'convergence_tolerance', ' = ', '\n', dm.params) 272 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 273 param_write(fid, sbeg, 'scaling', '', '\n', dm.params) 274 param_write(fid, sbeg, 'function_precision', ' = ', '\n', dm.params) 275 param_write(fid, sbeg, 'absolute_conv_tol', ' = ', '\n', dm.params) 276 param_write(fid, sbeg, 'x_conv_tol', ' = ', '\n', dm.params) 277 param_write(fid, sbeg, 'singular_conv_tol', ' = ', '\n', dm.params) 278 param_write(fid, sbeg, 'singular_radius', ' = ', '\n', dm.params) 279 param_write(fid, sbeg, 'false_conv_tol', ' = ', '\n', dm.params) 280 param_write(fid, sbeg, 'initial_trust_radius', ' = ', '\n', dm.params) 281 param_write(fid, sbeg, 'covariance', ' = ', '\n', dm.params) 282 param_write(fid, sbeg, 'regression_stressbalances', '', '\n', dm.params) 283 284 elif dm.method == 'nlssol_sqp': 285 param_write(fid, sbeg, 'max_iterations', ' = ', '\n', dm.params) 286 param_write(fid, sbeg, 'max_function_evaluations', ' = ', '\n', dm.params) 287 param_write(fid, sbeg, 'convergence_tolerance', ' = ', '\n', dm.params) 288 param_write(fid, sbeg, 'constraint_tolerance', ' = ', '\n', dm.params) 289 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 290 param_write(fid, sbeg, 'speculative', '', '\n', dm.params) 291 param_write(fid, sbeg, 'scaling', '', '\n', dm.params) 292 param_write(fid, sbeg, 'verify_level', ' = ', '\n', dm.params) 293 param_write(fid, sbeg, 'function_precision', ' = ', '\n', dm.params) 294 param_write(fid, sbeg, 'linesearch_tolerance', ' = ', '\n', dm.params) 295 296 elif dm.method == 'optpp_g_newton': 297 param_write(fid, sbeg, 'max_iterations', ' = ', '\n', dm.params) 298 param_write(fid, sbeg, 'max_function_evaluations', ' = ', '\n', dm.params) 299 param_write(fid, sbeg, 'convergence_tolerance', ' = ', '\n', dm.params) 300 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 301 param_write(fid, sbeg, 'speculative', '', '\n', dm.params) 302 param_write(fid, sbeg, 'scaling', '', '\n', dm.params) 303 304 if (dm.params.value_based_line_search + dm.params.gradient_based_line_search + dm.params.trust_region + dm.params.tr_pds > 1): 305 raise RuntimeError(' #s'' method must have only one algorithm.', dm.method) 306 307 param_write(fid, sbeg, 'value_based_line_search', '', '\n', dm.params) 308 param_write(fid, sbeg, 'gradient_based_line_search', '', '\n', dm.params) 309 param_write(fid, sbeg, 'trust_region', '', '\n', dm.params) 310 param_write(fid, sbeg, 'tr_pds', '', '\n', dm.params) 311 param_write(fid, sbeg, 'max_step', ' = ', '\n', dm.params) 312 param_write(fid, sbeg, 'gradient_tolerance', ' = ', '\n', dm.params) 313 param_write(fid, sbeg, 'merit_function', ' = ', '\n', dm.params) 314 param_write(fid, sbeg, 'central_path', ' = ', '\n', dm.params) 315 param_write(fid, sbeg, 'steplength_to_boundary', ' = ', '\n', dm.params) 316 param_write(fid, sbeg, 'centering_parameter', ' = ', '\n', dm.params) 317 318 else: 319 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 320 321 elif dm.type == 'nond': 322 #switch dm.method 323 if dm.method == 'nond_sampling': 324 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 325 param_write(fid, sbeg, 'fixed_seed', '', '\n', dm.params) 326 dver = str(IssmConfig('_DAKOTA_VERSION_')[0]) 327 if ((int(dver[0]) == 4 and int(dver[2]) > 2) or int(dver[0]) > 4): 328 param_write(fid, sbeg, 'rng', ' ', '\n', dm.params) 329 param_write(fid, sbeg, 'samples', ' = ', '\n', dm.params) 330 param_write(fid, sbeg, 'sample_type', ' ', '\n', dm.params) 331 param_write(fid, sbeg, 'all_variables', '', '\n', dm.params) 332 param_write(fid, sbeg, 'variance_based_decomp', '', '\n', dm.params) 333 if strcmp(dm.params.sample_type, 'incremental_random') or strcmp(dm.params.sample_type, 'incremental_lhs'): 334 param_write(fid, sbeg, 'previous_samples', ' = ', '\n', dm.params) 335 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 336 337 elif dm.method == 'nond_local_reliability': 338 param_write(fid, sbeg, 'max_iterations', ' = ', '\n', dm.params) 339 param_write(fid, sbeg, 'convergence_tolerance', ' = ', '\n', dm.params) 340 param_write(fid, sbeg, 'mpp_search', ' = ', '\n', dm.params) 341 if type(dm.params.mpp_search) == str: 342 if (dm.params.sqp + dm.params.nip > 1): 343 raise RuntimeError(' #s'' method must have only one algorithm.', dm.method) 344 345 param_write(fid, sbeg, 'sqp', '', '\n', dm.params) 346 param_write(fid, sbeg, 'nip', '', '\n', dm.params) 347 param_write(fid, sbeg, 'integration', ' ', '\n', dm.params) 348 param_write(fid, sbeg, 'refinement', ' = ', '\n', dm.params) 349 if type(dm.params.refinement) == str: 350 param_write(fid, sbeg, 'samples', ' = ', '\n', dm.params) 351 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 352 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 353 354 elif dm.method == 'nond_global_reliability': 355 if (dm.params.x_gaussian_process + dm.params.u_gaussian_process != 1): 356 raise RuntimeError(' #s'' method must have one and only one algorithm.', dm.method) 357 358 param_write(fid, sbeg, 'x_gaussian_process', '', '\n', dm.params) 359 param_write(fid, sbeg, 'u_gaussian_process', '', '\n', dm.params) 360 param_write(fid, sbeg, 'all_variables', '', '\n', dm.params) 361 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 362 363 elif dm.method == 'nond_polynomial_chaos': 364 param_write(fid, sbeg, 'expansion_order', ' = ', '\n', dm.params) 365 param_write(fid, sbeg, 'expansion_terms', ' = ', '\n', dm.params) 366 param_write(fid, sbeg, 'quadrature_order', ' = ', '\n', dm.params) 367 param_write(fid, sbeg, 'sparse_grid_level', ' = ', '\n', dm.params) 368 param_write(fid, sbeg, 'expansion_samples', ' = ', '\n', dm.params) 369 param_write(fid, sbeg, 'incremental_lhs', '', '\n', dm.params) 370 param_write(fid, sbeg, 'collocation_points', ' = ', '\n', dm.params) 371 param_write(fid, sbeg, 'collocation_ratio', ' = ', '\n', dm.params) 372 param_write(fid, sbeg, 'reuse_samples', '', '\n', dm.params) 373 param_write(fid, sbeg, 'expansion_import_file', ' = ', '\n', dm.params) 374 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 375 param_write(fid, sbeg, 'fixed_seed', '', '\n', dm.params) 376 param_write(fid, sbeg, 'samples', ' = ', '\n', dm.params) 377 param_write(fid, sbeg, 'sample_type', ' = ', '\n', dm.params) 378 param_write(fid, sbeg, 'all_variables', '', '\n', dm.params) 379 380 elif dm.method == 'nond_stoch_collocation': 381 param_write(fid, sbeg, 'quadrature_order', ' = ', '\n', dm.params) 382 param_write(fid, sbeg, 'sparse_grid_level', ' = ', '\n', dm.params) 383 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 384 param_write(fid, sbeg, 'fixed_seed', '', '\n', dm.params) 385 param_write(fid, sbeg, 'samples', ' = ', '\n', dm.params) 386 param_write(fid, sbeg, 'sample_type', ' = ', '\n', dm.params) 387 param_write(fid, sbeg, 'all_variables', '', '\n', dm.params) 388 389 elif dm.method == 'nond_evidence': 390 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 391 param_write(fid, sbeg, 'samples', ' = ', '\n', dm.params) 392 393 else: 394 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 395 396 elif dm.type == 'dace': 397 #switch dm.method 398 if dm.method == 'dace': 399 if (dm.params.grid + dm.params.random + dm.params.oas + dm.params.lhs + dm.params.oa_lhs + dm.params.box_behnken + dm.params.central_composite != 1): 400 raise RuntimeError(' #s'' method must have one and only one algorithm.', dm.method) 401 402 param_write(fid, sbeg, 'grid', '', '\n', dm.params) 403 param_write(fid, sbeg, 'random', '', '\n', dm.params) 404 param_write(fid, sbeg, 'oas', '', '\n', dm.params) 405 param_write(fid, sbeg, 'lhs', '', '\n', dm.params) 406 param_write(fid, sbeg, 'oa_lhs', '', '\n', dm.params) 407 param_write(fid, sbeg, 'box_behnken', '', '\n', dm.params) 408 param_write(fid, sbeg, 'central_composite', '', '\n', dm.params) 409 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 410 param_write(fid, sbeg, 'fixed_seed', '', '\n', dm.params) 411 param_write(fid, sbeg, 'samples', ' = ', '\n', dm.params) 412 param_write(fid, sbeg, 'symbols', ' = ', '\n', dm.params) 413 param_write(fid, sbeg, 'quality_metrics', '', '\n', dm.params) 414 param_write(fid, sbeg, 'variance_based_decomp', '', '\n', dm.params) 415 416 elif dm.method == 'fsu_quasi_mc': 417 if (dm.params.halton + dm.params.hammersley != 1): 418 raise RuntimeError(' #s'' method must have one and only one sequence type.', dm.method) 419 420 param_write(fid, sbeg, 'halton', '', '\n', dm.params) 421 param_write(fid, sbeg, 'hammersley', '', '\n', dm.params) 422 param_write(fid, sbeg, 'samples', ' = ', '\n', dm.params) 423 param_write(fid, sbeg, 'sequence_start', ' = ', '\n', dm.params) 424 param_write(fid, sbeg, 'sequence_leap', ' = ', '\n', dm.params) 425 param_write(fid, sbeg, 'prime_base', ' = ', '\n', dm.params) 426 param_write(fid, sbeg, 'fixed_sequence', '', '\n', dm.params) 427 param_write(fid, sbeg, 'latinize', '', '\n', dm.params) 428 param_write(fid, sbeg, 'variance_based_decomp', '', '\n', dm.params) 429 param_write(fid, sbeg, 'quality_metrics', '', '\n', dm.params) 430 431 elif dm.method == 'fsu_cvt': 432 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 433 param_write(fid, sbeg, 'fixed_seed', '', '\n', dm.params) 434 param_write(fid, sbeg, 'samples', ' = ', '\n', dm.params) 435 param_write(fid, sbeg, 'num_trials', ' = ', '\n', dm.params) 436 param_write(fid, sbeg, 'trial_type', ' = ', '\n', dm.params) 437 param_write(fid, sbeg, 'latinize', '', '\n', dm.params) 438 param_write(fid, sbeg, 'variance_based_decomp', '', '\n', dm.params) 439 param_write(fid, sbeg, 'quality_metrics', '', '\n', dm.params) 440 441 else: 442 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 443 444 elif dm.type == 'param': 445 param_write(fid, sbeg, 'output', ' ', '\n', dm.params) 446 #switch dm.method 447 if dm.method == 'vector_parameter_study': 448 if not np.logical_xor(isempty(dm.params.final_point), isempty(dm.params.step_vector)): 449 raise RuntimeError(str(dm.method) + ' method must have one and only one specification.') 450 451 if not isempty(dm.params.final_point): 452 param_write(fid, sbeg, 'final_point', ' = ', '\n', dm.params) 453 param_write(fid, sbeg, 'step_length', ' = ', '\n', dm.params) 454 param_write(fid, sbeg, 'num_steps', ' = ', '\n', dm.params) 455 456 elif not isempty(dm.params.step_vector): 457 param_write(fid, sbeg, 'step_vector', ' = ', '\n', dm.params) 458 param_write(fid, sbeg, 'num_steps', ' = ', '\n', dm.params) 459 460 elif dm.method == 'list_parameter_study': 461 param_write(fid, sbeg, 'list_of_points', ' = ', '\n', dm.params) 462 463 elif dm.method == 'centered_parameter_study': 464 param_write(fid, sbeg, 'percent_delta', ' = ', '\n', dm.params) 465 param_write(fid, sbeg, 'deltas_per_variable', ' = ', '\n', dm.params) 466 467 elif dm.method == 'multidim_parameter_study': 468 param_write(fid, sbeg, 'partitions', ' = ', '\n', dm.params) 469 470 else: 471 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 472 473 elif dm.type == 'bayes': 474 #switch dm.method 475 if dm.method == 'bayes_calibration': 476 # if (dm.params.queso + 477 # dm.params.dream + 478 # dm.params.gpmsa ~= 1) 479 # raise RuntimeError(''' #s'' method must have one and only one bayes type. YOU SUCK', 480 # dm.method) 481 # 482 param_write(fid, sbeg, 'queso', '', '\n', dm.params) 483 param_write(fid, sbeg, 'dream', '', '\n', dm.params) 484 param_write(fid, sbeg, 'gpmsa', '', '\n', dm.params) 485 param_write(fid, sbeg, 'samples', ' = ', '\n', dm.params) 486 param_write(fid, sbeg, 'seed', ' = ', '\n', dm.params) 487 param_write(fid, sbeg, 'output', ' = ', '\n', dm.params) 488 param_write(fid, sbeg, 'metropolis_hastings', '', '\n', dm.params) 489 param_write(fid, sbeg, 'proposal_covariance', '', '\n', dm.params) 490 param_write(fid, sbeg, 'diagonal', '', '\n', dm.params) 491 param_write(fid, sbeg, 'values', ' = ', '\n', dm.params) 492 493 else: 494 raise RuntimeError('Unrecognized ' + dm.type + ' method: ' + dm.method + '.') 495 496 497 # function to write a structure of parameters 498 def param_struc_write(fidi, sbeg, smid, s, params): 499 # loop through each parameter field in the structure 500 fnames = fieldnames(params) 501 for i in range(np.size(fnames)): 502 param_write(fidi, sbeg, fnames[i], smid, s, params) 503 504 return 505 506 507 # function to write a parameter 508 def param_write(fidi, sbeg, pname, smid, s, params): 509 # check for errors 510 if not isfield(params, pname): 511 warning('param_write:param_not_found', 'Parameter ' + str(pname) + ' not found in ' + params + '.') 512 return 513 elif type(vars(params)[pname]) == bool and not vars(params)[pname]: 514 return 515 elif isempty(vars(params)[pname]): 516 print('Warning: param_write:param_empty: Parameter {} requires input of type {}.'.format(pname, type(vars(params)[pname]))) 517 return 518 519 # construct the parameter string based on type 520 if type(vars(params)[pname]) == bool: 521 fidi.write(sbeg + str(pname) + s) 522 523 elif type(vars(params)[pname]) in [int, float]: 524 fidi.write(sbeg + str(pname) + smid + str(vars(params)[pname]) + s) 525 526 elif type(vars(params)[pname]) == list: 527 fidi.write(sbeg + str(pname) + smid + str(vars(params)[pname][0])) 528 for i in range(1, np.size(vars(params)[pname])): 529 fidi.write(' ' + str(vars(params)[pname][i])) 530 531 fidi.write(s) 532 533 elif type(vars(params)[pname]) == str: 534 fidi.write(sbeg + str(pname) + smid + str(vars(params)[pname]) + s) 535 536 else: 537 print('Warning: param_write:param_unrecog: Parameter {} is of unrecognized type {}.'.format(pname, type(vars(params)[pname]))) 538 return -
issm/trunk-jpl/src/m/classes/qmu/calibration_function.py
r23716 r24213 3 3 from MatlabArray import * 4 4 5 5 6 class calibration_function(object): 6 7 ''' 7 8 definition for the calibration_function class. 8 9 9 10 [cf] = calibration_function.calibration_function(args) 10 cf 11 cf = calibration_function() 11 12 12 13 where the required args are: … … 21 22 arguments constructs a new instance from the arguments. 22 23 ''' 23 24 25 26 self.scale= 1.27 self.weight= 1.24 def __init__(self): 25 self.descriptor = '' 26 self.scale_type = 'none' 27 self.scale = 1. 28 self.weight = 1. 28 29 29 30 31 30 @staticmethod 31 def calibration_function(*args): 32 nargin = len(args) 32 33 33 34 35 34 # create a default object 35 if nargin == 0: 36 return calibration_function() 36 37 37 38 39 if (nargin == 1) and isinstance(args[0],calibration_function):40 41 42 asizec = array_size(*args[0:min(nargin,4)])43 38 # copy the object or create the object from the input 39 else: 40 if (nargin == 1) and isinstance(args[0], calibration_function): 41 cf = args[0] 42 else: 43 asizec = array_size(*args[0:min(nargin, 4)]) 44 cf = [calibration_function() for i in range(asizec[0]) for j in range(asizec[1])] 44 45 45 46 47 48 49 cf[i].descriptor = str(args[0])+string_dim(cf,i,'vector')46 for i in range(np.size(cf)): 47 if (np.size(args[0]) > 1): 48 cf[i].descriptor = args[0][i] 49 else: 50 cf[i].descriptor = str(args[0]) + string_dim(cf, i, 'vector') 50 51 51 52 53 54 55 56 57 58 59 60 61 print('WARNING: calibration_function:extra_arg: Extra arguments for object of class '+str(type(cf))+'.')52 if nargin >= 2: 53 for i in range(np.size(cf)): 54 cf[i].scale_type = str(args[1]) 55 if nargin >= 3: 56 for i in range(np.size(cf)): 57 cf[i].scale = args[2] 58 if nargin >= 4: 59 for i in range(np.size(cf)): 60 cf[i].weight = args[3] 61 if nargin > 4: 62 print('WARNING: calibration_function:extra_arg: Extra arguments for object of class ' + str(type(cf)) + '.') 62 63 63 64 return cf 64 65 65 66 67 68 69 string += ' descriptor: '+str(self.descriptor) + '\n'70 string += ' scale_type: '+str(self.scale_type) + '\n'71 string += ' scale: '+str(self.scale) + '\n'72 string += ' weight: '+str(self.weight) + '\n'73 66 def __repr__(self): 67 # display the object 68 string = '\n' 69 string += 'class "calibration_function" object = \n' 70 string += ' descriptor: ' + str(self.descriptor) + '\n' 71 string += ' scale_type: ' + str(self.scale_type) + '\n' 72 string += ' scale: ' + str(self.scale) + '\n' 73 string += ' weight: ' + str(self.weight) + '\n' 74 return string 74 75 75 76 77 def prop_desc(cf,dstr):78 if type(cf) not in [list,np.ndarray]:79 80 81 82 83 84 85 76 # from here on, cf is either a single, or a 1d vector of, calibration_function 77 @staticmethod 78 def prop_desc(cf, dstr): 79 if type(cf) not in [list, np.ndarray]: 80 if cf.descriptor != '' or type(cf.descriptor) != str: 81 desc = str(cf.descriptor) 82 elif dstr != '': 83 desc = str(dstr) 84 else: 85 desc = 'cf' 86 return desc 86 87 87 88 89 90 91 92 desc[i] = str(dstr)+str(string_dim(cf,i,'vector'))93 94 desc[i] = 'cf'+str(string_dim(cf,i,'vector'))88 desc = ['' for i in range(np.size(cf))] 89 for i in range(np.size(cf)): 90 if cf[i].descriptor != '' or type(cf[i].descriptor) != str: 91 desc[i] = str(cf[i].descriptor) 92 elif dstr != '': 93 desc[i] = str(dstr) + str(string_dim(cf, i, 'vector')) 94 else: 95 desc[i] = 'cf' + str(string_dim(cf, i, 'vector')) 95 96 96 97 97 desc = allempty(desc) 98 return desc 98 99 99 100 101 stype=''102 100 @staticmethod 101 def prop_stype(cf): 102 stype = '' 103 return stype 103 104 104 105 106 weight=[]107 105 @staticmethod 106 def prop_weight(cf): 107 weight = [] 108 return weight 108 109 109 110 111 lower=[]112 110 @staticmethod 111 def prop_lower(cf): 112 lower = [] 113 return lower 113 114 114 115 116 upper=[]117 115 @staticmethod 116 def prop_upper(cf): 117 upper = [] 118 return upper 118 119 119 120 121 target=[]122 120 @staticmethod 121 def prop_target(cf): 122 target = [] 123 return target 123 124 124 125 126 scale=[]127 125 @staticmethod 126 def prop_scale(cf): 127 scale = [] 128 return scale 128 129 129 130 def dakota_write(fidi,dresp,rdesc):131 132 cf = [struc_class(i,'calibration_function','cf') for i in dresp]130 @staticmethod 131 def dakota_write(fidi, dresp, rdesc): 132 # collect only the responses of the appropriate class 133 cf = [struc_class(i, 'calibration_function', 'cf') for i in dresp] 133 134 134 135 rdesc = rlist_write(fidi,'calibration_terms','calibration_function',cf,rdesc)136 135 # write responses 136 rdesc = rlist_write(fidi, 'calibration_terms', 'calibration_function', cf, rdesc) 137 return rdesc 137 138 138 139 def dakota_rlev_write(fidi,dresp,params):140 139 @staticmethod 140 def dakota_rlev_write(fidi, dresp, params): 141 return -
issm/trunk-jpl/src/m/classes/qmu/continuous_design.py
r23716 r24213 3 3 from MatlabArray import * 4 4 5 5 6 class continuous_design(object): 6 7 ''' 7 8 definition for the continuous_design class. 8 9 9 10 [cdv] = continuous_design.continuous_design(args) 10 cdv 11 cdv = continuous_design() 11 12 12 13 where the required args are: … … 14 15 initpt (double, initial point, 0.) 15 16 and the optional args and defaults are: 16 lower (double, lower bound, - Inf)17 upper (double, upper bound, 17 lower (double, lower bound, - Inf) 18 upper (double, upper bound, Inf) 18 19 scale_type (char, scaling type, 'none') 19 20 scale (double, scaling factor, 1.) … … 24 25 ''' 25 26 26 def __init__(self): 27 self.descriptor = '' 28 self.initpt = 0. 29 self.lower = -np.inf 30 self.upper = np.inf 31 self.scale_type = 'none' 32 self.scale = 1. 33 34 @staticmethod 35 def continuous_design(*args): 36 nargin = len(args) 37 38 # create a default object 39 if nargin == 0: 40 return continuous_design() 41 42 # copy the object 43 if nargin == 1: 44 if isinstance(args[0],continuous_design): 45 cdv = args[0] 46 else: 47 raise RuntimeError('Object is a '+str(type(args[0]))+' class object, not "continuous_design".') 48 49 # create the object from the input 50 else: 51 shapec = array_size(*args[0:min(nargin,6)]) 52 cdv = [continuous_design() for i in range(shapec[0]) for j in range(shapec[1])] 53 # in case cdv doesn't use array-like args 54 #cdv = continuous_design() 55 56 for i in range(np.size(cdv)): 57 if (np.size(args[0]) > 1): 58 cdv[i].descriptor = args[0][i] 59 else: 60 cdv[i].descriptor = str(args[0])+string_dim(cdv,i,'vector') 61 62 if (nargin >= 2): 63 for i in range(np.size(cdv)): 64 if (np.size(args[1]) > 1): 65 cdv[i].initpt = args[1][i] 66 else: 67 cdv[i].initpt = args[1] 68 69 if (nargin >= 3): 70 for i in range(np.size(cdv)): 71 if (np.size(args[2]) > 1): 72 cdv[i].lower = args[2][i] 73 else: 74 cdv[i].lower = args[2] 75 76 if (nargin >= 4): 77 for i in range(np.size(cdv)): 78 if (np.size(args[3]) > 1): 79 cdv[i].upper = args[3][i] 80 else: 81 cdv[i].upper = args[3] 82 83 if (nargin >= 5): 84 for i in range(np.size(cdv)): 85 if (np.size(args[4]) > 1): 86 cdv[i].scale_type = args[4][i] 87 else: 88 cdv[i].scale_type = str(args[4]) 89 90 if (nargin >= 6): 91 for i in range(np.size(cdv)): 92 if (np.size(args[5]) > 1): 93 cdv[i].scale = args[5][i] 94 else: 95 cdv[i].scale = args[5] 96 97 if (nargin > 6): 98 print('WARNING: continuous_design:extra_arg: Extra arguments for object of class '+str(type(cdv))+'.') 99 100 return cdv 101 102 103 def __repr__(self): 104 # display the object 105 string = '\n' 106 string += 'class "continuous_design" object = \n' 107 string += ' descriptor: ' +str(self.descriptor) + '\n' 108 string += ' initpt: ' +str(self.initpt) + '\n' 109 string += ' lower: ' +str(self.lower) + '\n' 110 string += ' upper: ' +str(self.upper) + '\n' 111 string += ' scale_type: ' +str(self.scale_type) + '\n' 112 string += ' scale: ' +str(self.scale) + '\n' 113 114 return string 115 116 @staticmethod 117 def prop_desc(cdv,dstr): 118 if type(cdv) not in [list,np.ndarray]: 119 cdv = [cdv] 120 # in case cdv doesn't use array-like args 121 #if cdv.descriptor != '' or type(cdv.descriptor) != str: 122 #desc = str(cdv.descriptor) 123 #elif dstr != '': 124 #desc = str(dstr) 125 #else: 126 #desc = 'cdv' 127 #return desc 128 129 desc = ['' for i in range(np.size(cdv))] 130 for i in range(np.size(cdv)): 131 if cdv[i].descriptor != '' or type(cdv[i].descriptor) != str: 132 desc[i] = str(cdv[i].descriptor) 133 elif dstr != '': 134 desc[i] = str(dstr)+str(string_dim(cdv,i,'vector')) 135 else: 136 desc[i] = 'cdv'+str(string_dim(cdv,i,'vector')) 137 138 desc = allempty(desc) 139 140 return desc 141 142 @staticmethod 143 def prop_initpt(cdv): 144 if type(cdv) not in [list,np.ndarray]: 145 return cdv.initpt 146 147 initpt = np.zeros(np.size(cdv)) 148 for i in range(np.size(cdv)): 149 initpt[i] = cdv[i].initpt 150 151 initpt = allequal(initpt,0.) 152 153 return initpt 154 155 @staticmethod 156 def prop_lower(cdv): 157 if type(cdv) not in [list,np.ndarray]: 158 return cdv.lower 159 160 lower = np.zeros(np.size(cdv)) 161 for i in range(np.size(cdv)): 162 lower[i] = cdv[i].lower 163 164 lower = allequal(lower,-np.inf) 165 166 return lower 167 168 @staticmethod 169 def prop_upper(cdv): 170 if type(cdv) not in [list,np.ndarray]: 171 return cdv.upper 172 173 upper = np.zeros(np.size(cdv)) 174 for i in range(np.size(cdv)): 175 upper[i] = cdv[i].upper 176 177 upper = allequal(upper, np.inf) 178 179 return upper 180 181 @staticmethod 182 def prop_mean(cdv): 183 mean=[] 184 return mean 185 186 @staticmethod 187 def prop_stddev(cdv): 188 stddev=[] 189 return sttdev 190 191 @staticmethod 192 def prop_initst(cdv): 193 initst=[] 194 return initst 195 196 @staticmethod 197 def prop_stype(cdv): 198 if type(cdv) not in [list,np.ndarray]: 199 return str(cdv.scale_type) 200 201 stype = np.empty(np.size(cdv)) 202 stype.fill(0.0) 203 for i in range(np.size(cdv)): 204 stype[i] = str(cdv[i].scale_type) 205 206 stype = allequal(stype,'none') 207 208 return stype 209 210 @staticmethod 211 def prop_scale(cdv): 212 if type(cdv) not in [list,np.ndarray]: 213 return cdv.scale 214 215 scale = np.zeros(np.size(cdv)) 216 for i in range(np.size(cdv)): 217 scale[i] = cdv[i].scale 218 219 scale = allequal(scale,1.) 220 221 return scale 222 223 224 @staticmethod 225 def dakota_write(fidi,dvar): 226 # collect only the variables of the appropriate class 227 cdv = [struc_class(i,'continuous_design','cdv') for i in dvar] 228 229 # write variables 230 vlist_write(fidi,'continuous_design','cdv',cdv) 231 27 def __init__(self): 28 self.descriptor = '' 29 self.initpt = 0. 30 self.lower = - np.inf 31 self.upper = np.inf 32 self.scale_type = 'none' 33 self.scale = 1. 34 35 @staticmethod 36 def continuous_design(*args): 37 nargin = len(args) 38 39 # create a default object 40 if nargin == 0: 41 return continuous_design() 42 43 # copy the object 44 if nargin == 1: 45 if isinstance(args[0], continuous_design): 46 cdv = args[0] 47 else: 48 raise RuntimeError('Object is a ' + str(type(args[0])) + ' class object, not "continuous_design".') 49 50 # create the object from the input 51 else: 52 shapec = array_size(*args[0:min(nargin, 6)]) 53 cdv = [continuous_design() for i in range(shapec[0]) for j in range(shapec[1])] 54 # in case cdv doesn't use array - like args 55 #cdv = continuous_design() 56 57 for i in range(np.size(cdv)): 58 if (np.size(args[0]) > 1): 59 cdv[i].descriptor = args[0][i] 60 else: 61 cdv[i].descriptor = str(args[0]) + string_dim(cdv, i, 'vector') 62 63 if (nargin >= 2): 64 for i in range(np.size(cdv)): 65 if (np.size(args[1]) > 1): 66 cdv[i].initpt = args[1][i] 67 else: 68 cdv[i].initpt = args[1] 69 70 if (nargin >= 3): 71 for i in range(np.size(cdv)): 72 if (np.size(args[2]) > 1): 73 cdv[i].lower = args[2][i] 74 else: 75 cdv[i].lower = args[2] 76 77 if (nargin >= 4): 78 for i in range(np.size(cdv)): 79 if (np.size(args[3]) > 1): 80 cdv[i].upper = args[3][i] 81 else: 82 cdv[i].upper = args[3] 83 84 if (nargin >= 5): 85 for i in range(np.size(cdv)): 86 if (np.size(args[4]) > 1): 87 cdv[i].scale_type = args[4][i] 88 else: 89 cdv[i].scale_type = str(args[4]) 90 91 if (nargin >= 6): 92 for i in range(np.size(cdv)): 93 if (np.size(args[5]) > 1): 94 cdv[i].scale = args[5][i] 95 else: 96 cdv[i].scale = args[5] 97 98 if (nargin > 6): 99 print('WARNING: continuous_design:extra_arg: Extra arguments for object of class ' + str(type(cdv)) + '.') 100 101 return cdv 102 103 def __repr__(self): 104 # display the object 105 string = '\n' 106 string += 'class "continuous_design" object = \n' 107 string += ' descriptor: ' + str(self.descriptor) + '\n' 108 string += ' initpt: ' + str(self.initpt) + '\n' 109 string += ' lower: ' + str(self.lower) + '\n' 110 string += ' upper: ' + str(self.upper) + '\n' 111 string += ' scale_type: ' + str(self.scale_type) + '\n' 112 string += ' scale: ' + str(self.scale) + '\n' 113 114 return string 115 116 @staticmethod 117 def prop_desc(cdv, dstr): 118 if type(cdv) not in [list, np.ndarray]: 119 cdv = [cdv] 120 # in case cdv doesn't use array - like args 121 #if cdv.descriptor != '' or type(cdv.descriptor) != str: 122 #desc = str(cdv.descriptor) 123 #elif dstr != '': 124 #desc = str(dstr) 125 #else: 126 #desc = 'cdv' 127 #return desc 128 129 desc = ['' for i in range(np.size(cdv))] 130 for i in range(np.size(cdv)): 131 if cdv[i].descriptor != '' or type(cdv[i].descriptor) != str: 132 desc[i] = str(cdv[i].descriptor) 133 elif dstr != '': 134 desc[i] = str(dstr) + str(string_dim(cdv, i, 'vector')) 135 else: 136 desc[i] = 'cdv' + str(string_dim(cdv, i, 'vector')) 137 138 desc = allempty(desc) 139 140 return desc 141 142 @staticmethod 143 def prop_initpt(cdv): 144 if type(cdv) not in [list, np.ndarray]: 145 return cdv.initpt 146 147 initpt = np.zeros(np.size(cdv)) 148 for i in range(np.size(cdv)): 149 initpt[i] = cdv[i].initpt 150 151 initpt = allequal(initpt, 0.) 152 153 return initpt 154 155 @staticmethod 156 def prop_lower(cdv): 157 if type(cdv) not in [list, np.ndarray]: 158 return cdv.lower 159 160 lower = np.zeros(np.size(cdv)) 161 for i in range(np.size(cdv)): 162 lower[i] = cdv[i].lower 163 164 lower = allequal(lower, - np.inf) 165 166 return lower 167 168 @staticmethod 169 def prop_upper(cdv): 170 if type(cdv) not in [list, np.ndarray]: 171 return cdv.upper 172 173 upper = np.zeros(np.size(cdv)) 174 for i in range(np.size(cdv)): 175 upper[i] = cdv[i].upper 176 177 upper = allequal(upper, np.inf) 178 179 return upper 180 181 @staticmethod 182 def prop_mean(cdv): 183 mean = [] 184 return mean 185 186 @staticmethod 187 def prop_stddev(cdv): 188 stddev = [] 189 return stddev 190 191 @staticmethod 192 def prop_initst(cdv): 193 initst = [] 194 return initst 195 196 @staticmethod 197 def prop_stype(cdv): 198 if type(cdv) not in [list, np.ndarray]: 199 return str(cdv.scale_type) 200 201 stype = np.empty(np.size(cdv)) 202 stype.fill(0.0) 203 for i in range(np.size(cdv)): 204 stype[i] = str(cdv[i].scale_type) 205 206 stype = allequal(stype, 'none') 207 208 return stype 209 210 @staticmethod 211 def prop_scale(cdv): 212 if type(cdv) not in [list, np.ndarray]: 213 return cdv.scale 214 215 scale = np.zeros(np.size(cdv)) 216 for i in range(np.size(cdv)): 217 scale[i] = cdv[i].scale 218 219 scale = allequal(scale, 1.) 220 221 return scale 222 223 @staticmethod 224 def dakota_write(fidi, dvar): 225 # collect only the variables of the appropriate class 226 cdv = [struc_class(i, 'continuous_design', 'cdv') for i in dvar] 227 228 # write variables 229 vlist_write(fidi, 'continuous_design', 'cdv', cdv) -
issm/trunk-jpl/src/m/classes/qmu/continuous_state.py
r23716 r24213 3 3 from MatlabArray import * 4 4 5 5 6 class continuous_state(object): 6 7 ''' 7 8 definition for the continuous_state class. 8 9 9 10 [csv] = continuous_state.continuous_state(args) 10 csv 11 csv = continuous_state() 11 12 12 13 where the required args are: … … 14 15 initst (double, initial state, 0.) 15 16 and the optional args and defaults are: 16 lower (double, lower bound, - Inf)17 upper (double, upper bound, 17 lower (double, lower bound, - Inf) 18 upper (double, upper bound, Inf) 18 19 19 20 note that zero arguments constructs a default instance, one … … 22 23 ''' 23 24 24 def __init__(self): 25 self.descriptor = '' 26 self.initst = 0. 27 self.lower = -np.inf 28 self.upper = np.inf 29 30 @staticmethod 31 def continuous_state(*args): 32 nargin = len(args) 25 def __init__(self): 26 self.descriptor = '' 27 self.initst = 0. 28 self.lower = - np.inf 29 self.upper = np.inf 33 30 34 # create a default object 35 if nargin == 0:36 return continuous_state()31 @staticmethod 32 def continuous_state(*args): 33 nargin = len(args) 37 34 38 # copy the object 39 if nargin == 1: 40 if isinstance(args[0],continuous_state): 41 csv = args[0] 42 else: 43 raise RuntimeError('Object is a '+str(type(args[0]))+' class object, not "continuous_state".') 44 45 # create the object from the input 46 else: 47 shapec = np.shape(*args[0:min(nargin,4)]) 48 csv = [continuous_state() for i in range(shapec[0]) for j in range(shapec[1])] 49 50 for i in range(np.size(csv)): 51 if (np.size(args[0]) > 1): 52 csv[i].descriptor = args[0][i] 53 else: 54 csv[i].descriptor = str(args[0])+string_dim(csv,i,'vector') 35 # create a default object 36 if nargin == 0: 37 return continuous_state() 55 38 56 if (nargin >= 2): 57 for i in range(np.size(csv)):58 if (np.size(args[1]) > 1):59 csv[i].initst = args[1][i]60 61 csv[i].initst = args[1] 39 # copy the object 40 if nargin == 1: 41 if isinstance(args[0], continuous_state): 42 csv = args[0] 43 else: 44 raise RuntimeError('Object is a ' + str(type(args[0])) + ' class object, not "continuous_state".') 62 45 63 if (nargin >= 3): 64 for i in range(np.size(csv)): 65 if (np.size(args[2]) > 1): 66 csv[i].lower = args[2][i] 67 else: 68 csv[i].lower = args[2] 69 70 if (nargin >= 4): 71 for i in range(np.size(csv)): 72 if (np.size(args[3]) > 1): 73 csv[i].upper = args[3][i] 74 else: 75 csv[i].upper = args[3] 46 # create the object from the input 47 else: 48 shapec = np.shape(*args[0:min(nargin, 4)]) 49 csv = [continuous_state() for i in range(shapec[0]) for j in range(shapec[1])] 76 50 77 if (nargin > 4): 78 print('continuous_state:extra_arg','Extra arguments for object of class '+str(type(csv))+'.') 51 for i in range(np.size(csv)): 52 if (np.size(args[0]) > 1): 53 csv[i].descriptor = args[0][i] 54 else: 55 csv[i].descriptor = str(args[0]) + string_dim(csv, i, 'vector') 79 56 80 return csv 81 82 def __repr__(self): 83 # display the object 84 string = '\n' 85 string += 'class "continuous_state" object = \n' 86 string += ' descriptor: ' +str(self.descriptor) + '\n' 87 string += ' initst: ' +str(self.initst) + '\n' 88 string += ' lower: ' +str(self.lower) + '\n' 89 string += ' upper: ' +str(self.upper) + '\n' 57 if (nargin >= 2): 58 for i in range(np.size(csv)): 59 if (np.size(args[1]) > 1): 60 csv[i].initst = args[1][i] 61 else: 62 csv[i].initst = args[1] 90 63 91 return string 64 if (nargin >= 3): 65 for i in range(np.size(csv)): 66 if (np.size(args[2]) > 1): 67 csv[i].lower = args[2][i] 68 else: 69 csv[i].lower = args[2] 92 70 93 @staticmethod 94 def prop_desc(csv,dstr): 95 if type(csv) not in [list,np.ndarray]: 96 csv = [csv] 71 if (nargin >= 4): 72 for i in range(np.size(csv)): 73 if (np.size(args[3]) > 1): 74 csv[i].upper = args[3][i] 75 else: 76 csv[i].upper = args[3] 97 77 98 desc = ['' for i in range(np.size(csv))] 99 for i in range(np.size(csv)): 100 if csv[i].descriptor != '' or type(cdv[i].descriptor) != str: 101 desc[i] = str(csv[i].descriptor) 102 elif dstr != '': 103 desc[i] = str(dstr)+str(string_dim(csv,i,'vector')) 104 else: 105 desc[i] = 'csv'+str(string_dim(csv,i,'vector')) 106 107 desc = allempty(desc) 78 if (nargin > 4): 79 print('continuous_state:extra_arg', 'Extra arguments for object of class ' + str(type(csv)) + '.') 108 80 109 return desc 81 return csv 110 82 111 @staticmethod 112 def prop_initpt(csv): 113 initpt=[] 114 return initpt 83 def __repr__(self): 84 # display the object 85 string = '\n' 86 string += 'class "continuous_state" object = \n' 87 string += ' descriptor: ' + str(self.descriptor) + '\n' 88 string += ' initst: ' + str(self.initst) + '\n' 89 string += ' lower: ' + str(self.lower) + '\n' 90 string += ' upper: ' + str(self.upper) + '\n' 115 91 116 @staticmethod 117 def prop_lower(csv): 118 if type(csv) not in [list,np.ndarray]: 119 return csv.lower 92 return string 120 93 121 lower = np.zeros(np.size(csv)) 122 for i in range(np.size(csv)): 123 lower[i] = csv[i].lower 124 125 lower = allequal(lower,-np.inf) 94 @staticmethod 95 def prop_desc(csv, dstr): 96 if type(csv) not in [list, np.ndarray]: 97 csv = [csv] 126 98 127 return lower 99 desc = ['' for i in range(np.size(csv))] 100 for i in range(np.size(csv)): 101 if csv[i].descriptor != '' or type(cdv[i].descriptor) != str: 102 desc[i] = str(csv[i].descriptor) 103 elif dstr != '': 104 desc[i] = str(dstr) + str(string_dim(csv, i, 'vector')) 105 else: 106 desc[i] = 'csv' + str(string_dim(csv, i, 'vector')) 128 107 129 @staticmethod 130 def prop_upper(csv): 131 if type(csv) not in [list,np.ndarray]: 132 return csv.upper 108 desc = allempty(desc) 133 109 134 upper = np.zeros(np.size(csv)) 135 for i in range(np.size(csv)): 136 upper[i] = csv[i].upper 110 return desc 137 111 138 upper = allequal(upper, np.inf) 112 @staticmethod 113 def prop_initpt(csv): 114 initpt = [] 115 return initpt 139 116 140 return upper 117 @staticmethod 118 def prop_lower(csv): 119 if type(csv) not in [list, np.ndarray]: 120 return csv.lower 141 121 142 @staticmethod 143 def prop_mean(csv): 144 mean=[] 145 return mean 122 lower = np.zeros(np.size(csv)) 123 for i in range(np.size(csv)): 124 lower[i] = csv[i].lower 146 125 147 @staticmethod 148 def prop_stddev(csv): 149 stddev=[] 150 return sttdev 126 lower = allequal(lower, - np.inf) 151 127 152 @staticmethod 153 def prop_initst(csv): 154 if type(csv) not in [list,np.ndarray]: 155 return csv.initst 128 return lower 156 129 157 initst = np.zeros(np.size(csv)) 158 for i in range(np.size(csv)): 159 initst[i] = csv[i].initst 130 @staticmethod 131 def prop_upper(csv): 132 if type(csv) not in [list, np.ndarray]: 133 return csv.upper 160 134 161 initst = allequal(initst,0.) 135 upper = np.zeros(np.size(csv)) 136 for i in range(np.size(csv)): 137 upper[i] = csv[i].upper 162 138 163 return initst 139 upper = allequal(upper, np.inf) 164 140 165 @staticmethod 166 def prop_stype(csv): 167 stype='' 168 return stype 141 return upper 169 142 170 @staticmethod 171 def prop_scale(csv):172 scale=[]173 return scale 143 @staticmethod 144 def prop_mean(csv): 145 mean = [] 146 return mean 174 147 175 176 def dakota_write(fidi,dvar):177 # collect only the variables of the appropriate class 178 csv = [struc_class(i,'continuous_state','csv') for i in dvar] 148 @staticmethod 149 def prop_stddev(csv): 150 stddev = [] 151 return stddev 179 152 180 # write variables 181 vlist_write(fidi,'continuous_state','csv',csv) 153 @staticmethod 154 def prop_initst(csv): 155 if type(csv) not in [list, np.ndarray]: 156 return csv.initst 182 157 158 initst = np.zeros(np.size(csv)) 159 for i in range(np.size(csv)): 160 initst[i] = csv[i].initst 161 162 initst = allequal(initst, 0.) 163 164 return initst 165 166 @staticmethod 167 def prop_stype(csv): 168 stype = '' 169 return stype 170 171 @staticmethod 172 def prop_scale(csv): 173 scale = [] 174 return scale 175 176 @staticmethod 177 def dakota_write(fidi, dvar): 178 # collect only the variables of the appropriate class 179 csv = [struc_class(i, 'continuous_state', 'csv') for i in dvar] 180 181 # write variables 182 vlist_write(fidi, 'continuous_state', 'csv', csv) -
issm/trunk-jpl/src/m/classes/qmu/least_squares_term.py
r23716 r24213 3 3 from MatlabArray import * 4 4 5 5 6 class least_squares_term(object): 6 7 ''' 7 8 definition for the least_squares_term class. 8 9 9 10 [lst] = least_squares_term.least_squares_term(args) 10 lst 11 lst = least_squares_term() 11 12 12 13 where the required args are: … … 21 22 arguments constructs a new instance from the arguments. 22 23 ''' 23 24 25 26 self.scale =1.27 self.weight =1.24 def __init__(self): 25 self.descriptor = '' 26 self.scale_type = 'none' 27 self.scale = 1. 28 self.weight = 1. 28 29 29 30 31 30 @staticmethod 31 def least_squares_term(*args): 32 nargin = len(args) 32 33 33 34 35 34 #create a default object 35 if nargin == 0: 36 return least_squares_term() 36 37 37 38 39 if (nargin == 1) and isinstance(args[0],least_squares_term):40 41 42 asizec = np.shape(*args[0:min(nargin,4)])43 38 #copy the object or create the object from the input 39 else: 40 if (nargin == 1) and isinstance(args[0], least_squares_term): 41 lst = args[0] 42 else: 43 asizec = np.shape(*args[0:min(nargin, 4)]) 44 lst = [least_squares_term() for i in range(asizec[0]) for j in range(asizec[1])] 44 45 45 46 47 48 49 lst[i].descriptor = str(args[0])+string_dim(lst,i,'vector')46 for i in range(np.size(lst)): 47 if (np.size(args[0]) > 1): 48 lst[i].descriptor = args[0][i] 49 else: 50 lst[i].descriptor = str(args[0]) + string_dim(lst, i, 'vector') 50 51 51 52 53 54 55 56 52 if (nargin >= 2): 53 for i in range(np.size(lst)): 54 if (np.size(args[1]) > 1): 55 lst[i].scale_type = args[1][i] 56 else: 57 lst[i].scale_type = str(args[1]) 57 58 58 59 60 61 62 63 59 if (nargin >= 3): 60 for i in range(np.size(lst)): 61 if (np.size(args[2]) > 1): 62 lst[i].scale = args[2][i] 63 else: 64 lst[i].scale = args[2] 64 65 65 66 67 68 69 70 66 if (nargin >= 4): 67 for i in range(np.size(lst)): 68 if (np.size(args[3]) > 1): 69 lst[i].weight = args[3][i] 70 else: 71 lst[i].weight = args[3] 71 72 72 73 print('WARNING: least_squares_term:extra_arg Extra arguments for object of class '+str(type(lst))+'.')73 if (nargin > 4): 74 print('WARNING: least_squares_term:extra_arg Extra arguments for object of class ' + str(type(lst)) + '.') 74 75 75 76 return lst 76 77 77 78 79 80 81 string += ' descriptor: '+str(self.descriptor) + '\n'82 string += ' scale_type: '+str(self.scale_type) + '\n'83 string += ' scale: '+str(self.scale) + '\n'84 string += ' weight: '+str(self.weight) + '\n'85 78 def __repr__(self): 79 # display the object 80 string = '\n' 81 string += 'class "least_squares_term" object = \n' 82 string += ' descriptor: ' + str(self.descriptor) + '\n' 83 string += ' scale_type: ' + str(self.scale_type) + '\n' 84 string += ' scale: ' + str(self.scale) + '\n' 85 string += ' weight: ' + str(self.weight) + '\n' 86 return string 86 87 87 88 def prop_desc(lst,dstr):89 if type(lst) not in [list,np.ndarray]:90 88 @staticmethod 89 def prop_desc(lst, dstr): 90 if type(lst) not in [list, np.ndarray]: 91 lst = [lst] 91 92 92 93 94 95 96 97 desc[i] = str(dstr)+str(string_dim(lst,i,'vector'))98 99 desc[i] = 'lst'+str(string_dim(lst,i,'vector'))93 desc = ['' for i in range(np.size(lst))] 94 for i in range(np.size(lst)): 95 if lst[i].descriptor != '' or type(cdv[i].descriptor) != str: 96 desc[i] = str(lst[i].descriptor) 97 elif dstr != '': 98 desc[i] = str(dstr) + str(string_dim(lst, i, 'vector')) 99 else: 100 desc[i] = 'lst' + str(string_dim(lst, i, 'vector')) 100 101 101 102 102 desc = allempty(desc) 103 return desc 103 104 104 105 106 if type(lst) not in [list,np.ndarray]:107 105 @staticmethod 106 def prop_stype(lst): 107 if type(lst) not in [list, np.ndarray]: 108 return str(lst.scale_type) 108 109 109 110 111 110 stype = ['' for i in range(np.size(lst))] 111 for i in range(np.size(lst)): 112 stype[i] = str(lst[i].scale_type) 112 113 113 stype = allequal(stype,'none')114 114 stype = allequal(stype, 'none') 115 return stype 115 116 116 117 118 if type(lst) not in [list,np.ndarray]:119 117 @staticmethod 118 def prop_scale(lst): 119 if type(lst) not in [list, np.ndarray]: 120 return lst.scale 120 121 121 122 123 122 scale = np.zeros(np.size(lst)) 123 for i in range(np.size(lst)): 124 scale[i] = lst[i].scale 124 125 125 scale = allequal(scale,1.)126 126 scale = allequal(scale, 1.) 127 return scale 127 128 128 129 130 if type(lst) not in [list,np.ndarray]:131 129 @staticmethod 130 def prop_weight(lst): 131 if type(lst) not in [list, np.ndarray]: 132 return lst.weight 132 133 133 134 135 134 weight = np.zeros(np.size(lst)) 135 for i in range(np.size(lst)): 136 weight[i] = lst[i].weight 136 137 137 weight = allequal(weight,1.)138 138 weight = allequal(weight, 1.) 139 return weight 139 140 140 141 142 lower=[]143 141 @staticmethod 142 def prop_lower(lst): 143 lower = [] 144 return lower 144 145 145 146 147 upper=[]148 146 @staticmethod 147 def prop_upper(lst): 148 upper = [] 149 return upper 149 150 150 151 152 target=[]153 151 @staticmethod 152 def prop_target(lst): 153 target = [] 154 return target 154 155 155 156 def dakota_write(fidi,dresp,rdesc):157 158 lst = [struc_class(i,'least_squares_term','lst') for i in dresp]156 @staticmethod 157 def dakota_write(fidi, dresp, rdesc): 158 #collect only the responses of the appropriate class 159 lst = [struc_class(i, 'least_squares_term', 'lst') for i in dresp] 159 160 160 161 rdesc = rlist_write(fidi,'least_squares_terms','least_squares_term',lst,rdesc)162 161 #write responses 162 rdesc = rlist_write(fidi, 'least_squares_terms', 'least_squares_term', lst, rdesc) 163 return rdesc 163 164 164 165 def dakota_rlev_write(fidi,dresp,params):166 165 @staticmethod 166 def dakota_rlev_write(fidi, dresp, params): 167 return -
issm/trunk-jpl/src/m/classes/qmu/linear_equality_constraint.py
r23716 r24213 3 3 from MatlabArray import * 4 4 5 5 6 class linear_equality_constraint: 6 7 ''' 7 8 constructor for the linear_equality_constraint class. 8 9 9 10 [lec] = linear_equality_constraint.linear_equality_constraint(args) 10 lec 11 lec = linear_equality_constraint() 11 12 12 13 where the required args are: … … 21 22 arguments constructs a new instance from the arguments. 22 23 ''' 23 24 self.matrix =np.array([[float('NaN')]])25 self.target =0.26 27 self.scale =1.24 def __init__(self): 25 self.matrix = np.array([[float('NaN')]]) 26 self.target = 0. 27 self.scale_type = 'none' 28 self.scale = 1. 28 29 29 30 31 30 @staticmethod 31 def linear_equality_constraint(*args): 32 nargin = len(args) 32 33 33 34 35 34 # create a default object 35 if nargin == 0: 36 return linear_equality_constraint() 36 37 37 38 39 if isinstance(args[0],linear_equality_constraint):40 41 42 raise RuntimeError('Object is a '+str(type(args[0]))+' class object, not "linear_equality_constraint"')38 # copy the object 39 elif nargin == 1: 40 if isinstance(args[0], linear_equality_constraint): 41 lec = args[0] 42 else: 43 raise RuntimeError('Object is a ' + str(type(args[0])) + ' class object, not "linear_equality_constraint"') 43 44 44 45 46 if (np.shape(args[0],1) == array_np.size(args[1:min(nargin,4)]) or np.shape(args[0],1) == 1):47 asizec = np.shape(args[1:min(nargin,4)])48 elif (array_np.size(args[1:min(nargin,4)]) == 1):49 asizec = [np.shape(args[0],1),1]50 51 raise RuntimeError('Matrix for object of class '+str(type(lec))+' has inconsistent number of rows.')45 # create the object from the input 46 else: 47 if (np.shape(args[0], 1) == array_np.size(args[1:min(nargin, 4)]) or np.shape(args[0], 1) == 1): 48 asizec = np.shape(args[1:min(nargin, 4)]) 49 elif (array_np.size(args[1:min(nargin, 4)]) == 1): 50 asizec = [np.shape(args[0], 1), 1] 51 else: 52 raise RuntimeError('Matrix for object of class ' + str(type(lec)) + ' has inconsistent number of rows.') 52 53 53 54 lec = [linear_equality_constraint() for i in range(asizec[0]) for j in range(asizec[1])] 54 55 55 56 57 lec[i].matrix = args[0][i,:]58 59 lec[i].matrix= args[0]56 for i in range(np.size(lec)): 57 if (np.shape(args[0])[0] > 1): 58 lec[i].matrix = args[0][i, :] 59 else: 60 lec[i].matrix = args[0] 60 61 61 62 63 64 lec[i].target= args[1][i]65 66 lec[i].target= args[1]62 if (nargin >= 2): 63 for i in range(np.size(lec)): 64 if (np.size(args[1]) > 1): 65 lec[i].target = args[1][i] 66 else: 67 lec[i].target = args[1] 67 68 68 if (nargin >= 3): 69 for i in range(np.size(lec)): 70 if (np.size(args[2]) > 1): 71 lec[i].scale_type = args[2][i] 72 else: 73 lec[i].scale_type = str(args[2]) 74 75 if (nargin >= 4): 76 for i in range(np.size(lec)): 77 if (np.size(args[3]) > 1): 78 lec[i].scale = args[3][i] 79 else: 80 lec[i].scale = args[3] 69 if (nargin >= 3): 70 for i in range(np.size(lec)): 71 if (np.size(args[2]) > 1): 72 lec[i].scale_type = args[2][i] 73 else: 74 lec[i].scale_type = str(args[2]) 81 75 82 if (nargin > 4): 83 print('WARNING: linear_equality_constraint:extra_arg: Extra arguments for object of class '+str(type(lec))+'.') 76 if (nargin >= 4): 77 for i in range(np.size(lec)): 78 if (np.size(args[3]) > 1): 79 lec[i].scale = args[3][i] 80 else: 81 lec[i].scale = args[3] 84 82 85 return lec 86 83 if (nargin > 4): 84 print('WARNING: linear_equality_constraint:extra_arg: Extra arguments for object of class ' + str(type(lec)) + '.') 87 85 88 def __repr__(self): 89 # display the object 90 string = '\n' 91 string += 'class "linear_equality_constraint" object = \n' 92 string += ' matrix: ' +str(self.matrix) + '\n' 93 string += ' target: ' +str(self.target) + '\n' 94 string += ' scale_type: ' +str(self.scale_type) + '\n' 95 string += ' scale: ' +str(self.scale) + '\n' 86 return lec 96 87 97 return string 88 def __repr__(self): 89 # display the object 90 string = '\n' 91 string += 'class "linear_equality_constraint" object = \n' 92 string += ' matrix: ' + str(self.matrix) + '\n' 93 string += ' target: ' + str(self.target) + '\n' 94 string += ' scale_type: ' + str(self.scale_type) + '\n' 95 string += ' scale: ' + str(self.scale) + '\n' 98 96 99 @staticmethod 100 def prop_matrix(lec): 101 if type(lec) not in [list,np.ndarray]: 102 return lec.matrix 97 return string 103 98 104 matrix = np.zeros(np.size(lec)) 105 for i in range(np.size(lec)): 106 matrix[i,0:np.shape(lec[i].matrix)[1]] = lec[i].matrix[0,:] 99 @staticmethod 100 def prop_matrix(lec): 101 if type(lec) not in [list, np.ndarray]: 102 return lec.matrix 107 103 108 return matrix 104 matrix = np.zeros(np.size(lec)) 105 for i in range(np.size(lec)): 106 matrix[i, 0:np.shape(lec[i].matrix)[1]] = lec[i].matrix[0, :] 109 107 110 @staticmethod 111 def prop_lower(lec): 112 lower=[] 113 return lower 108 return matrix 114 109 115 116 def prop_upper(lec):117 upper=[]118 return upper110 @staticmethod 111 def prop_lower(lec): 112 lower = [] 113 return lower 119 114 120 121 def prop_target(lec):122 if type(lec) not in [list,np.ndarray]: 123 return lec.target 115 @staticmethod 116 def prop_upper(lec): 117 upper = [] 118 return upper 124 119 125 target = np.zeros(np.shape(lec)) 126 for i in range(np.size(lec)): 127 target[i] = lec[i].target 128 129 target = allequal(target,0.) 120 @staticmethod 121 def prop_target(lec): 122 if type(lec) not in [list, np.ndarray]: 123 return lec.target 130 124 131 return target 125 target = np.zeros(np.shape(lec)) 126 for i in range(np.size(lec)): 127 target[i] = lec[i].target 132 128 133 @staticmethod 134 def prop_stype(lec): 135 if type(lec) not in [list,np.ndarray]: 136 return lec.scale_type 129 target = allequal(target, 0.) 137 130 138 stype = ['' for i in range(np.size(lec))] 139 for i in range(np.size(lec)): 140 stype[i] = str(lec[i].scale_type) 141 142 stype = allequal(stype,'none') 131 return target 143 132 144 return stype 133 @staticmethod 134 def prop_stype(lec): 135 if type(lec) not in [list, np.ndarray]: 136 return lec.scale_type 145 137 146 @staticmethod 147 def prop_scale(lec): 148 if type(lec) not in [list,np.ndarray]: 149 return lec.scale 138 stype = ['' for i in range(np.size(lec))] 139 for i in range(np.size(lec)): 140 stype[i] = str(lec[i].scale_type) 150 141 151 scale = np.zeros(np.shape(lec)) 152 for i in range(np.size(lec)): 153 scale[i] = lec[i].scale 154 155 scale = allequal(scale,1.) 142 stype = allequal(stype, 'none') 156 143 157 return scale 158 159 @staticmethod 160 def dakota_write(fidi,dvar): 161 # collect only the variables of the appropriate class 162 lec = [struc_type(i,'linear_equality_constraint','lec') for i in dvar] 144 return stype 163 145 164 # write constraints 165 lclist_write(fidi,'linear_equality_constraints','linear_equality',lec) 146 @staticmethod 147 def prop_scale(lec): 148 if type(lec) not in [list, np.ndarray]: 149 return lec.scale 150 151 scale = np.zeros(np.shape(lec)) 152 for i in range(np.size(lec)): 153 scale[i] = lec[i].scale 154 155 scale = allequal(scale, 1.) 156 157 return scale 158 159 @staticmethod 160 def dakota_write(fidi, dvar): 161 # collect only the variables of the appropriate class 162 lec = [struc_type(i, 'linear_equality_constraint', 'lec') for i in dvar] 163 164 # write constraints 165 lclist_write(fidi, 'linear_equality_constraints', 'linear_equality', lec) -
issm/trunk-jpl/src/m/classes/qmu/linear_inequality_constraint.py
r23716 r24213 3 3 from MatlabArray import * 4 4 5 5 6 class linear_inequality_constraint: 6 7 ''' 7 8 constructor for the linear_inequality_constraint class. 8 9 9 10 [lic] = linear_inequality_constraint.linear_inequality_constraint(args) 10 lic 11 lic = linear_inequality_constraint() 11 12 12 13 where the required args are: 13 14 matrix (double row, variable coefficients, float('NaN')) 14 lower (double vector, lower bounds, - np.Inf)15 lower (double vector, lower bounds, - np.Inf) 15 16 upper (double vector, upper bounds, 0.) 16 17 and the optional args and defaults are: … … 22 23 arguments constructs a new instance from the arguments. 23 24 ''' 24 25 self.matrix =np.array([[float('NaN')]])26 self.lower = -np.Inf27 self.upper =0.28 29 self.scale =1.25 def __init__(self): 26 self.matrix = np.array([[float('NaN')]]) 27 self.lower = - np.Inf 28 self.upper = 0. 29 self.scale_type = 'none' 30 self.scale = 1. 30 31 31 @staticmethod 32 33 32 @staticmethod 33 def linear_inequality_constraint(*args): 34 nargin = len(args) 34 35 35 36 37 36 # create a default object 37 if nargin == 0: 38 return linear_inequality_constraint() 38 39 39 40 41 if isinstance(args[0],linear_inequality_constraint):42 43 44 raise RuntimeError('Object is a '+str(type(args[0]))+' class object, not "linear_inequality_constraint".')40 # copy the object 41 if nargin == 1: 42 if isinstance(args[0], linear_inequality_constraint): 43 lic = args[0] 44 else: 45 raise RuntimeError('Object is a ' + str(type(args[0])) + ' class object, not "linear_inequality_constraint".') 45 46 46 47 48 47 # not enough arguments 48 if nargin == 2: 49 raise RuntimeError('Construction of linear_inequality_constraint class object requires at least 3 inputs.') 49 50 50 # create the object from the input 51 else: 52 if (np.shape(args[0],1) == array_numel(args[1:min(nargin,5)]) or np.shape(args[0],1) == 1): 53 asizec = array_size(args[1:min(nargin,5)]) 54 elif (array_numel(args[1:min(nargin,5)]) == 1): 55 asizec = [array_size(args[0],1),1] 56 else: 57 raise RuntimeError('Matrix for object of class '+str(type(lic))+' has inconsistent number of rows.') 58 59 lic = [linear_inequality_constraint() for i in range(asizec[0]) for j in range(asizec[1])] 51 # create the object from the input 52 else: 53 if (np.shape(args[0], 1) == array_numel(args[1:min(nargin, 5)]) or np.shape(args[0], 1) == 1): 54 asizec = array_size(args[1:min(nargin, 5)]) 55 elif (array_numel(args[1:min(nargin, 5)]) == 1): 56 asizec = [array_size(args[0], 1), 1] 57 else: 58 raise RuntimeError('Matrix for object of class ' + str(type(lic)) + ' has inconsistent number of rows.') 60 59 61 for i in range(np.size(lic)): 62 if (np.shape(args[0],1) > 1): 63 lic[i].matrix = args[0][i,:] 64 else: 65 lic[i].matrix = args[0] 60 lic = [linear_inequality_constraint() for i in range(asizec[0]) for j in range(asizec[1])] 66 61 67 if (nargin >= 2): 68 for i in range(np.size(lic)): 69 if (np.size(args[1]) > 1): 70 lic[i].lower = args[1][i] 71 else: 72 lic[i].lower = args[1] 62 for i in range(np.size(lic)): 63 if (np.shape(args[0], 1) > 1): 64 lic[i].matrix = args[0][i, :] 65 else: 66 lic[i].matrix = args[0] 73 67 74 if (nargin >= 3): 75 for i in range(np.size(lic)): 76 if (np.size(args[2]) > 1): 77 lic[i].upper = args[2][i] 78 else: 79 lic[i].upper = args[2] 80 81 if (nargin >= 4): 82 for i in range(np.size(lic)): 83 if (np.size(args[3]) > 1): 84 lic[i].scale_type = args[3][i] 85 else: 86 lic[i].scale_type = str(args[3]) 87 88 if (nargin >= 5): 89 for i in range(np.size(lic)): 90 if (np.size(args[4]) > 1): 91 lic[i].scale = args[4][i] 92 else: 93 lic[i].scale = args[4] 68 if (nargin >= 2): 69 for i in range(np.size(lic)): 70 if (np.size(args[1]) > 1): 71 lic[i].lower = args[1][i] 72 else: 73 lic[i].lower = args[1] 94 74 95 if (nargin > 5): 96 print('WARNING: linear_inequality_constraint:extra_arg: Extra arguments for object of class '+str(type(lic))+'.') 75 if (nargin >= 3): 76 for i in range(np.size(lic)): 77 if (np.size(args[2]) > 1): 78 lic[i].upper = args[2][i] 79 else: 80 lic[i].upper = args[2] 97 81 98 return lic 82 if (nargin >= 4): 83 for i in range(np.size(lic)): 84 if (np.size(args[3]) > 1): 85 lic[i].scale_type = args[3][i] 86 else: 87 lic[i].scale_type = str(args[3]) 99 88 89 if (nargin >= 5): 90 for i in range(np.size(lic)): 91 if (np.size(args[4]) > 1): 92 lic[i].scale = args[4][i] 93 else: 94 lic[i].scale = args[4] 100 95 101 def __repr__(self): 102 # display the object 103 string = '\n' 104 string += 'class "linear_inequality_constraint" object = \n' 105 string += ' matrix: ' +str(string_vec(self.matrix)) + '\n' 106 string += ' lower: ' +str(self.lower) + '\n' 107 string += ' upper: ' +str(self.upper) + '\n' 108 string += ' scale_type: ' +str(self.scale_type) + '\n' 109 string += ' scale: ' +str(self.scale) + '\n' 96 if (nargin > 5): 97 print('WARNING: linear_inequality_constraint:extra_arg: Extra arguments for object of class ' + str(type(lic)) + '.') 110 98 111 return string 99 return lic 112 100 113 @staticmethod 114 def prop_matrix(lic): 115 if type(lic) not in [list,np.ndarray]: 116 return lic.matrix 101 def __repr__(self): 102 # display the object 103 string = '\n' 104 string += 'class "linear_inequality_constraint" object = \n' 105 string += ' matrix: ' + str(string_vec(self.matrix)) + '\n' 106 string += ' lower: ' + str(self.lower) + '\n' 107 string += ' upper: ' + str(self.upper) + '\n' 108 string += ' scale_type: ' + str(self.scale_type) + '\n' 109 string += ' scale: ' + str(self.scale) + '\n' 117 110 118 matrix = np.zeros(np.size(lic)) 119 for i in range(np.size(lic)): 120 matrix[i,0:np.shape(lic[i].matrix)[1]] = lic[i].matrix[0,:] 111 return string 121 112 122 return matrix 113 @staticmethod 114 def prop_matrix(lic): 115 if type(lic) not in [list, np.ndarray]: 116 return lic.matrix 123 117 124 @staticmethod 125 def prop_lower(lic): 126 if type(lic) not in [list,np.ndarray]: 127 return lic.lower 118 matrix = np.zeros(np.size(lic)) 119 for i in range(np.size(lic)): 120 matrix[i, 0:np.shape(lic[i].matrix)[1]] = lic[i].matrix[0, :] 128 121 129 lower = np.zeros(np.shape(lic)) 130 for i in range(np.size(lic)): 131 lower[i] = lic[i].lower 132 133 lower = allequal(lower,-np.Inf) 122 return matrix 134 123 135 return lower 124 @staticmethod 125 def prop_lower(lic): 126 if type(lic) not in [list, np.ndarray]: 127 return lic.lower 136 128 137 @staticmethod 138 def prop_upper(lic): 139 if type(lic) not in [list,np.ndarray]: 140 return lic.upper 129 lower = np.zeros(np.shape(lic)) 130 for i in range(np.size(lic)): 131 lower[i] = lic[i].lower 141 132 142 upper = np.zeros(np.shape(lic)) 143 for i in range(np.size(lic)): 144 upper[i] = lic[i].upper 145 146 upper = allequal(upper,0.) 133 lower = allequal(lower, - np.Inf) 147 134 148 return upper135 return lower 149 136 150 151 def prop_target(lic):152 target=[] 153 return target 137 @staticmethod 138 def prop_upper(lic): 139 if type(lic) not in [list, np.ndarray]: 140 return lic.upper 154 141 155 @staticmethod 156 def prop_stype(lic): 157 if type(lic) not in [list,np.ndarray]: 158 return lic.scale_type 142 upper = np.zeros(np.shape(lic)) 143 for i in range(np.size(lic)): 144 upper[i] = lic[i].upper 159 145 160 stype = ['' for i in range(np.size(lic))] 161 for i in range(np.size(lic)): 162 stype[i] = str(lic[i].scale_type) 163 164 stype = allequal(stype,'none') 146 upper = allequal(upper, 0.) 165 147 166 return stype 148 return upper 167 149 168 169 def prop_scale(lic):170 if type(lic) not in [list,np.ndarray]: 171 return lic.scale 150 @staticmethod 151 def prop_target(lic): 152 target = [] 153 return target 172 154 173 scale = np.zeros(np.shape(lic)) 174 for i in range(np.size(lic)): 175 scale[i] = lic[i].scale 176 177 scale = allequal(scale,1.) 155 @staticmethod 156 def prop_stype(lic): 157 if type(lic) not in [list, np.ndarray]: 158 return lic.scale_type 178 159 179 return scale 180 181 @staticmethod 182 def dakota_write(fidi,dvar): 183 # collect only the variables of the appropriate class 184 lic = [struc_class(i,'linear_inequality_constraint','lic') for i in dvar] 160 stype = ['' for i in range(np.size(lic))] 161 for i in range(np.size(lic)): 162 stype[i] = str(lic[i].scale_type) 185 163 186 # write constraints 187 lclist_write(fidi,'linear_inequality_constraints','linear_inequality',lic) 164 stype = allequal(stype, 'none') 165 166 return stype 167 168 @staticmethod 169 def prop_scale(lic): 170 if type(lic) not in [list, np.ndarray]: 171 return lic.scale 172 173 scale = np.zeros(np.shape(lic)) 174 for i in range(np.size(lic)): 175 scale[i] = lic[i].scale 176 177 scale = allequal(scale, 1.) 178 179 return scale 180 181 @staticmethod 182 def dakota_write(fidi, dvar): 183 # collect only the variables of the appropriate class 184 lic = [struc_class(i, 'linear_inequality_constraint', 'lic') for i in dvar] 185 186 # write constraints 187 lclist_write(fidi, 'linear_inequality_constraints', 'linear_inequality', lic) -
issm/trunk-jpl/src/m/classes/qmu/nonlinear_equality_constraint.py
r23716 r24213 3 3 from MatlabArray import * 4 4 5 5 6 class nonlinear_equality_constraint: 6 7 ''' 7 8 constructor for the nonlinear_equality_constraint class. 8 9 9 10 [nec] = nonlinear_equality_constraint.nonlinear_equality_constraint(args) 10 nec 11 nec = nonlinear_equality_constraint() 11 12 12 13 where the required args are: … … 21 22 arguments constructs a new instance from the arguments. 22 23 ''' 23 24 25 self.target =0.26 27 self.scale =1.24 def __init__(self): 25 self.descriptor = '' 26 self.target = 0. 27 self.scale_type = 'none' 28 self.scale = 1. 28 29 29 30 31 30 @staticmethod 31 def nonlinear_equality_constraint(*args): 32 nargin = len(args) 32 33 33 34 35 34 # create a default object 35 if nargin == 0: 36 return nonlinear_equality_constraint() 36 37 37 38 39 if isinstance(args[0],nonlinear_equality_constraint):40 41 42 raise RuntimeError('Object is a '+str(type(args[0]))+' class object, not "nonlinear_equality_constraint"')38 # copy the object 39 elif nargin == 1: 40 if isinstance(args[0], nonlinear_equality_constraint): 41 nec = args[0] 42 else: 43 raise RuntimeError('Object is a ' + str(type(args[0])) + ' class object, not "nonlinear_equality_constraint"') 43 44 44 45 46 asizec = array_size(*args[0:min(nargin,4)])47 45 # create the object from the input 46 else: 47 asizec = array_size(*args[0:min(nargin, 4)]) 48 nec = [nonlinear_equality_constraint() for i in range(asizec[0]) for j in range(asizec[1])] 48 49 49 50 51 nec[i].descriptor= args[0][i]52 53 nec[i].descriptor= str(args[0])54 55 nec[i].target= args[1][i]56 57 nec[i].target= args[1]50 for i in range(np.size(nec)): 51 if (np.shape(args[0])[0] > 1): 52 nec[i].descriptor = args[0][i] 53 else: 54 nec[i].descriptor = str(args[0]) 55 if (np.size(args[1]) > 1): 56 nec[i].target = args[1][i] 57 else: 58 nec[i].target = args[1] 58 59 59 if (nargin >= 3): 60 for i in range(np.size(nec)): 61 if (np.size(args[2]) > 1): 62 nec[i].scale_type = args[2][i] 63 else: 64 nec[i].scale_type = str(args[2]) 65 66 if (nargin >= 4): 67 for i in range(np.size(nec)): 68 if (np.size(args[3]) > 1): 69 nec[i].scale =args[3][i] 70 else: 71 nec[i].scale =args[3] 60 if (nargin >= 3): 61 for i in range(np.size(nec)): 62 if (np.size(args[2]) > 1): 63 nec[i].scale_type = args[2][i] 64 else: 65 nec[i].scale_type = str(args[2]) 72 66 73 if (nargin > 4): 74 print('WARNING: nonlinear_equality_constraint:extra_arg: Extra arguments for object of class '+str(type(nec))+'.') 67 if (nargin >= 4): 68 for i in range(np.size(nec)): 69 if (np.size(args[3]) > 1): 70 nec[i].scale = args[3][i] 71 else: 72 nec[i].scale = args[3] 75 73 76 return nec 77 74 if (nargin > 4): 75 print('WARNING: nonlinear_equality_constraint:extra_arg: Extra arguments for object of class ' + str(type(nec)) + '.') 78 76 79 def __repr__(self): 80 # display the object 81 string = '\n' 82 string += 'class "nonlinear_equality_constraint" object = \n' 83 string += ' descriptor: ' +str(self.descriptor) + '\n' 84 string += ' target: ' +str(self.target) + '\n' 85 string += ' scale_type: ' +str(self.scale_type) + '\n' 86 string += ' scale: ' +str(self.scale) + '\n' 77 return nec 87 78 88 return string 79 def __repr__(self): 80 # display the object 81 string = '\n' 82 string += 'class "nonlinear_equality_constraint" object = \n' 83 string += ' descriptor: ' + str(self.descriptor) + '\n' 84 string += ' target: ' + str(self.target) + '\n' 85 string += ' scale_type: ' + str(self.scale_type) + '\n' 86 string += ' scale: ' + str(self.scale) + '\n' 89 87 90 @staticmethod 91 def prop_desc(nec,dstr): 92 if type(nec) not in [list,np.ndarray]: 93 if nec.descriptor != '' or type(nec.descriptor) != str: 94 desc = str(nec.descriptor) 95 elif dstr != '': 96 desc = str(dstr) 97 else: 98 desc = 'nec' 99 return desc 88 return string 100 89 101 desc=['' for i in range(np.size(nec))] 102 for i in range(np.size(nec)):103 if nec[i].descriptor != '' or type(nec[i].descriptor) != str:104 desc[i] = str(nec[i].descriptor) 105 elif dstr != '': 106 desc[i] = str(dstr)+str(string_dim(nec,i,'vector')) 107 else: 108 desc[i] = 'nec'+str(string_dim(nec,i,'vector')) 109 110 desc=allempty(desc) 90 @staticmethod 91 def prop_desc(nec, dstr): 92 if type(nec) not in [list, np.ndarray]: 93 if nec.descriptor != '' or type(nec.descriptor) != str: 94 desc = str(nec.descriptor) 95 elif dstr != '': 96 desc = str(dstr) 97 else: 98 desc = 'nec' 99 return desc 111 100 112 return desc 101 desc = ['' for i in range(np.size(nec))] 102 for i in range(np.size(nec)): 103 if nec[i].descriptor != '' or type(nec[i].descriptor) != str: 104 desc[i] = str(nec[i].descriptor) 105 elif dstr != '': 106 desc[i] = str(dstr) + str(string_dim(nec, i, 'vector')) 107 else: 108 desc[i] = 'nec' + str(string_dim(nec, i, 'vector')) 113 109 114 @staticmethod 115 def prop_lower(nec): 116 lower=[] 117 return lower 110 desc = allempty(desc) 118 111 119 @staticmethod 120 def prop_upper(nec): 121 upper=[] 122 return upper 112 return desc 123 113 124 125 def prop_weight(nec):126 weight=[]127 return weight 114 @staticmethod 115 def prop_lower(nec): 116 lower = [] 117 return lower 128 118 129 130 def prop_target(nec):131 if type(nec) not in [list,np.ndarray]: 132 return nec.target 119 @staticmethod 120 def prop_upper(nec): 121 upper = [] 122 return upper 133 123 134 target = np.zeros(np.shape(nec)) 135 for i in range(np.size(nec)): 136 target[i] = nec[i].target 137 138 target = allequal(target,0.) 124 @staticmethod 125 def prop_weight(nec): 126 weight = [] 127 return weight 139 128 140 return target 129 @staticmethod 130 def prop_target(nec): 131 if type(nec) not in [list, np.ndarray]: 132 return nec.target 141 133 142 @staticmethod 143 def prop_stype(nec): 144 if type(nec) not in [list,np.ndarray]: 145 return nec.scale_type 134 target = np.zeros(np.shape(nec)) 135 for i in range(np.size(nec)): 136 target[i] = nec[i].target 146 137 147 stype = ['' for i in range(np.size(nec))] 148 for i in range(np.size(nec)): 149 stype[i] = str(nec[i].scale_type) 150 151 stype = allequal(stype,'none') 138 target = allequal(target, 0.) 152 139 153 return stype 140 return target 154 141 155 156 def prop_scale(nec):157 if type(nec) not in [list,np.ndarray]:158 return nec.scale142 @staticmethod 143 def prop_stype(nec): 144 if type(nec) not in [list, np.ndarray]: 145 return nec.scale_type 159 146 160 scale = np.zeros(np.shape(nec)) 161 for i in range(np.size(nec)): 162 scale[i] = nec[i].scale 163 164 scale = allequal(scale,1.) 147 stype = ['' for i in range(np.size(nec))] 148 for i in range(np.size(nec)): 149 stype[i] = str(nec[i].scale_type) 165 150 166 return scale 167 168 @staticmethod 169 def dakota_write(fidi,dresp,rdesc): 170 # colnect only the variables of the appropriate class 171 nec = [struc_type(i,'nonlinear_equality_constraint','nec') for i in dresp] 151 stype = allequal(stype, 'none') 172 152 173 # write constraints 174 rdesc = rlist_write(fidi,'nonlinear_equality_constraints','nonlinear_equality',nec,rdesc) 175 return rdesc 153 return stype 176 154 177 @staticmethod 178 def dakota_rlev_write(fidi,dresp,params): 179 return 155 @staticmethod 156 def prop_scale(nec): 157 if type(nec) not in [list, np.ndarray]: 158 return nec.scale 159 160 scale = np.zeros(np.shape(nec)) 161 for i in range(np.size(nec)): 162 scale[i] = nec[i].scale 163 164 scale = allequal(scale, 1.) 165 166 return scale 167 168 @staticmethod 169 def dakota_write(fidi, dresp, rdesc): 170 # colnect only the variables of the appropriate class 171 nec = [struc_type(i, 'nonlinear_equality_constraint', 'nec') for i in dresp] 172 173 # write constraints 174 rdesc = rlist_write(fidi, 'nonlinear_equality_constraints', 'nonlinear_equality', nec, rdesc) 175 return rdesc 176 177 @staticmethod 178 def dakota_rlev_write(fidi, dresp, params): 179 return -
issm/trunk-jpl/src/m/classes/qmu/nonlinear_inequality_constraint.py
r23716 r24213 3 3 from MatlabArray import * 4 4 5 5 6 class nonlinear_inequality_constraint: 6 7 ''' 7 8 constructor for the nonlinear_inequality_constraint class. 8 9 9 10 [nic] = nonlinear_inequality_constraint.nonlinear_inequality_constraint(args) 10 nic 11 nic = nonlinear_inequality_constraint() 11 12 12 13 where the required args are: 13 14 descriptor (char, description, '') 14 lower (double, lower bound, - np.inf)15 lower (double, lower bound, - np.inf) 15 16 upper (double, upper bound, 0.) 16 17 and the optional args and defaults are: … … 22 23 arguments constructs a new instance from the arguments. 23 24 ''' 24 25 26 self.lower = -np.inf27 self.upper =0.28 29 self.scale =1.25 def __init__(self): 26 self.descriptor = '' 27 self.lower = - np.inf 28 self.upper = 0. 29 self.scale_type = 'none' 30 self.scale = 1. 30 31 31 @staticmethod 32 33 32 @staticmethod 33 def nonlinear_inequality_constraint(*args): 34 nargin = len(args) 34 35 35 36 37 36 # create a default object 37 if nargin == 0: 38 return nonlinear_inequality_constraint() 38 39 39 40 41 if isinstance(args[0],nonlinear_inequality_constraint):42 43 44 raise RuntimeError('Object is a '+str(type(args[0]))+' class object, not "nonlinear_inequality_constraint".')40 # copy the object 41 if nargin == 1: 42 if isinstance(args[0], nonlinear_inequality_constraint): 43 nic = args[0] 44 else: 45 raise RuntimeError('Object is a ' + str(type(args[0])) + ' class object, not "nonlinear_inequality_constraint".') 45 46 46 47 48 47 # not enough arguments 48 if nargin == 2: 49 raise RuntimeError('Construction of nonlinear_inequality_constraint class object requires at least 3 inputs.') 49 50 50 51 52 asizec = array_size(*args[0:min(nargin,3)])53 51 # create the object from the input 52 else: 53 asizec = array_size(*args[0:min(nargin, 3)]) 54 nic = [nonlinear_inequality_constraint() for i in range(asizec[0]) for j in range(asizec[1])] 54 55 55 56 57 nic[i].descriptor = args[0][i]; 58 59 nic[i].descriptor = str(args[0])+string_dim(nic,i,'vector')60 61 nic[i].lower= args[1][i]62 63 nic[i].lower= args[1]56 for i in range(np.size(nic)): 57 if (np.size(args[0]) > 1): 58 nic[i].descriptor = args[0][i] 59 else: 60 nic[i].descriptor = str(args[0]) + string_dim(nic, i, 'vector') 61 if (np.size(args[1]) > 1): 62 nic[i].lower = args[1][i] 63 else: 64 nic[i].lower = args[1] 64 65 65 66 nic[i].upper= args[2][i]67 68 nic[i].upper= args[2]66 if (np.size(args[2]) > 1): 67 nic[i].upper = args[2][i] 68 else: 69 nic[i].upper = args[2] 69 70 70 71 72 73 74 75 71 if (nargin >= 4): 72 for i in range(np.size(nic)): 73 if (np.size(args[3]) > 1): 74 nic[i].scale_type = args[3][i] 75 else: 76 nic[i].scale_type = str(args[3]) 76 77 77 if (nargin >= 5): 78 for i in range(np.size(nic)): 79 if (np.size(args[4]) > 1): 80 nic[i].upper = args[4][i] 81 else: 82 nic[i].upper = args[4] 83 84 if (nargin > 5): 85 print('WARNING: nonlinear_inequality_constraint:extra_arg: Extra arguments for object of class '+str(type(nic))+'.') 78 if (nargin >= 5): 79 for i in range(np.size(nic)): 80 if (np.size(args[4]) > 1): 81 nic[i].upper = args[4][i] 82 else: 83 nic[i].upper = args[4] 86 84 87 return nic 85 if (nargin > 5): 86 print('WARNING: nonlinear_inequality_constraint:extra_arg: Extra arguments for object of class ' + str(type(nic)) + '.') 88 87 89 def __repr__(self): 90 # display the object 91 string = '\n' 92 string += 'class "nonlinear_inequality_constraint" object = \n' 93 string += ' descriptor: ' +str(self.descriptor) + '\n' 94 string += ' lower: ' +str(self.lower) + '\n' 95 string += ' upper: ' +str(self.upper) + '\n' 96 string += ' scale_type: ' +str(self.scale_type) + '\n' 97 string += ' scale: ' +str(self.scale) + '\n' 88 return nic 98 89 99 return string 90 def __repr__(self): 91 # display the object 92 string = '\n' 93 string += 'class "nonlinear_inequality_constraint" object = \n' 94 string += ' descriptor: ' + str(self.descriptor) + '\n' 95 string += ' lower: ' + str(self.lower) + '\n' 96 string += ' upper: ' + str(self.upper) + '\n' 97 string += ' scale_type: ' + str(self.scale_type) + '\n' 98 string += ' scale: ' + str(self.scale) + '\n' 100 99 101 @staticmethod 102 def prop_desc(nic,dstr): 103 if type(nic) not in [list,np.ndarray]: 104 if nic.descriptor != '' or type(nic.descriptor) != str: 105 desc = str(nic.descriptor) 106 elif dstr != '': 107 desc = str(dstr) 108 else: 109 desc = 'nic' 110 return desc 100 return string 111 101 112 desc = ['' for i in range(np.size(nic))] 113 for i in range(np.size(nic)):114 if nic[i].descriptor != '' or type(nic[i].descriptor) != str:115 desc[i] = str(nic[i].descriptor) 116 elif dstr != '': 117 desc[i] = str(dstr)+str(string_dim(nic,i,'vector')) 118 else: 119 desc[i] = 'nic'+str(string_dim(nic,i,'vector')) 120 121 desc = allempty(desc) 102 @staticmethod 103 def prop_desc(nic, dstr): 104 if type(nic) not in [list, np.ndarray]: 105 if nic.descriptor != '' or type(nic.descriptor) != str: 106 desc = str(nic.descriptor) 107 elif dstr != '': 108 desc = str(dstr) 109 else: 110 desc = 'nic' 111 return desc 122 112 123 return desc 113 desc = ['' for i in range(np.size(nic))] 114 for i in range(np.size(nic)): 115 if nic[i].descriptor != '' or type(nic[i].descriptor) != str: 116 desc[i] = str(nic[i].descriptor) 117 elif dstr != '': 118 desc[i] = str(dstr) + str(string_dim(nic, i, 'vector')) 119 else: 120 desc[i] = 'nic' + str(string_dim(nic, i, 'vector')) 124 121 125 @staticmethod 126 def prop_stype(nic): 127 if type(nic) not in [list,np.ndarray]: 128 return nic.scale_type 122 desc = allempty(desc) 129 123 130 stype = ['' for i in range(np.size(nic))] 131 for i in range(np.size(nic)): 132 stype[i] = str(nic[i].scale_type) 133 134 stype = allequal(stype,'none') 124 return desc 135 125 136 return stype 126 @staticmethod 127 def prop_stype(nic): 128 if type(nic) not in [list, np.ndarray]: 129 return nic.scale_type 137 130 138 @staticmethod 139 def prop_scale(nic): 140 if type(nic) not in [list,np.ndarray]: 141 return nic.scale 131 stype = ['' for i in range(np.size(nic))] 132 for i in range(np.size(nic)): 133 stype[i] = str(nic[i].scale_type) 142 134 143 scale = np.zeros(np.shape(nic)) 144 for i in range(np.size(nic)): 145 scale[i] = nic[i].scale 146 147 scale = allequal(scale,1.) 135 stype = allequal(stype, 'none') 148 136 149 return scale137 return stype 150 138 151 152 def prop_weight(nic):153 weight=[] 154 return weight 139 @staticmethod 140 def prop_scale(nic): 141 if type(nic) not in [list, np.ndarray]: 142 return nic.scale 155 143 156 @staticmethod 157 def prop_lower(nic): 158 if type(nic) not in [list,np.ndarray]: 159 return nic.lower 144 scale = np.zeros(np.shape(nic)) 145 for i in range(np.size(nic)): 146 scale[i] = nic[i].scale 160 147 161 lower = np.zeros(np.shape(nic)) 162 for i in range(np.size(nic)): 163 lower[i] = nic[i].lower 164 165 lower = allequal(lower,-np.inf) 148 scale = allequal(scale, 1.) 166 149 167 return lower 150 return scale 168 151 169 170 def prop_upper(nic):171 if type(nic) not in [list,np.ndarray]: 172 return nic.upper 152 @staticmethod 153 def prop_weight(nic): 154 weight = [] 155 return weight 173 156 174 upper = np.zeros(np.shape(nic)) 175 for i in range(np.size(nic)): 176 upper[i] = nic[i].upper 177 178 upper = allequal(upper,0.) 157 @staticmethod 158 def prop_lower(nic): 159 if type(nic) not in [list, np.ndarray]: 160 return nic.lower 179 161 180 return upper 162 lower = np.zeros(np.shape(nic)) 163 for i in range(np.size(nic)): 164 lower[i] = nic[i].lower 181 165 182 @staticmethod 183 def prop_target(nic): 184 target=[] 185 return target 186 187 @staticmethod 188 def dakota_write(fidi,dresp,rdesc): 189 # collect only the variables of the appropriate class 190 nic = [struc_class(i,'nonlinear_inequality_constraint','nic') for i in dresp] 166 lower = allequal(lower, - np.inf) 191 167 192 # write constraints 193 rdesc = rlist_write(fidi,'nonlinear_inequality_constrants','nonlinear_inequality',nic,rdesc) 194 return rdesc 168 return lower 195 169 196 @staticmethod 197 def dakota_rlev_write(fidi,dresp,params): 198 return 170 @staticmethod 171 def prop_upper(nic): 172 if type(nic) not in [list, np.ndarray]: 173 return nic.upper 174 175 upper = np.zeros(np.shape(nic)) 176 for i in range(np.size(nic)): 177 upper[i] = nic[i].upper 178 179 upper = allequal(upper, 0.) 180 181 return upper 182 183 @staticmethod 184 def prop_target(nic): 185 target = [] 186 return target 187 188 @staticmethod 189 def dakota_write(fidi, dresp, rdesc): 190 # collect only the variables of the appropriate class 191 nic = [struc_class(i, 'nonlinear_inequality_constraint', 'nic') for i in dresp] 192 193 # write constraints 194 rdesc = rlist_write(fidi, 'nonlinear_inequality_constrants', 'nonlinear_inequality', nic, rdesc) 195 return rdesc 196 197 @staticmethod 198 def dakota_rlev_write(fidi, dresp, params): 199 return -
issm/trunk-jpl/src/m/classes/qmu/normal_uncertain.py
r23716 r24213 1 1 import numpy as np 2 #from vlist_write import *3 2 from MatlabArray import * 4 3 4 5 5 class normal_uncertain(object): 6 6 ''' 7 7 definition for the normal_uncertain class. 8 8 9 9 [nuv] = normal_uncertain.normal_uncertain(args) 10 nuv 10 nuv = normal_uncertain() 11 11 12 12 where the required args are: … … 15 15 stddev (float, standard deviation, float('NaN')) 16 16 and the optional args and defaults are: 17 lower (float, lower bound, - np.Inf)18 upper (float, upper bound, 17 lower (float, lower bound, - np.Inf) 18 upper (float, upper bound, np.Inf) 19 19 20 20 note that zero arguments constructs a default instance, one … … 22 22 arguments constructs a new instance from the arguments. 23 23 ''' 24 25 26 self.mean= float('NaN')27 self.stddev= float('NaN')28 self.lower =-np.Inf29 self.upper= np.Inf24 def __init__(self): 25 self.descriptor = '' 26 self.mean = float('NaN') 27 self.stddev = float('NaN') 28 self.lower = - np.Inf 29 self.upper = np.Inf 30 30 31 32 33 31 @staticmethod 32 def normal_uncertain(*args): 33 nargin = len(args) 34 34 35 36 37 35 # create a default object 36 if nargin == 0: 37 return normal_uncertain() 38 38 39 40 41 if isinstance(args[0],normal_uncertain):42 43 44 raise RuntimeError('Object '+str(args[0])+' is a '+str(type(args[0]))+' class object, not "normal_uncertain".')39 # copy the object 40 elif nargin == 1: 41 if isinstance(args[0], normal_uncertain): 42 nuv = args[0] 43 else: 44 raise RuntimeError('Object ' + str(args[0]) + ' is a ' + str(type(args[0])) + ' class object, not "normal_uncertain".') 45 45 46 47 48 46 # not enough arguments 47 elif nargin == 2: 48 raise RuntimeError('Construction of "normal_uncertain" class object requires at least 3 inputs.') 49 49 50 51 52 # lines differ here in other classes/tests; see asizec problem in notes53 nuv=normal_uncertain()54 55 nuv.mean= args[1]56 57 58 59 60 61 62 print('WARNING: normal_uncertain:extra_arg: Extra arguments for object of class '+str(type(nuv))+'.')50 # create the object from the input 51 else: 52 # lines differ here in other classes / tests; see asizec problem in notes 53 nuv = normal_uncertain() 54 nuv.descriptor = str(args[0]) 55 nuv.mean = args[1] 56 nuv.stddev = args[2] 57 if nargin >= 4: 58 nuv.lower = args[3] 59 if nargin >= 5: 60 nuv.upper = args[4] 61 if nargin > 5: 62 print('WARNING: normal_uncertain:extra_arg: Extra arguments for object of class ' + str(type(nuv)) + '.') 63 63 64 64 return [nuv] 65 65 66 67 68 69 70 string += ' descriptor: '+str(self.descriptor) + '\n'71 string += ' mean: '+str(self.mean) + '\n'72 string += ' stddev: '+str(self.stddev) + '\n'73 string += ' lower: '+str(self.lower) + '\n'74 string += ' upper: '+str(self.upper) + '\n'66 def __repr__(self): 67 # display an individual object 68 string = '\n' 69 string += 'class "normal_uncertain" object = \n' 70 string += ' descriptor: ' + str(self.descriptor) + '\n' 71 string += ' mean: ' + str(self.mean) + '\n' 72 string += ' stddev: ' + str(self.stddev) + '\n' 73 string += ' lower: ' + str(self.lower) + '\n' 74 string += ' upper: ' + str(self.upper) + '\n' 75 75 76 76 return string 77 77 78 78 # from here on, nuv is either a single, or a 1d vector of, normal_uncertain 79 79 80 81 def prop_desc(nuv,dstr):82 if type(nuv) not in [list,np.ndarray]:83 84 85 86 87 88 89 80 @staticmethod 81 def prop_desc(nuv, dstr): 82 if type(nuv) not in [list, np.ndarray]: 83 if nuv.descriptor != '' or type(nuv.descriptor) != str: 84 desc = str(nuv.descriptor) 85 elif dstr != '': 86 desc = str(dstr) 87 else: 88 desc = 'nuv' 89 return desc 90 90 91 92 93 94 95 96 desc[i] = str(dstr)+str(string_dim(nuv,i,'vector'))97 98 desc[i] = 'nuv'+str(string_dim(nuv,i,'vector'))91 desc = ['' for i in range(np.size(nuv))] 92 for i in range(np.size(nuv)): 93 if nuv[i].descriptor != '' or type(nuv[i].descriptor) != str: 94 desc[i] = str(nuv[i].descriptor) 95 elif dstr != '': 96 desc[i] = str(dstr) + str(string_dim(nuv, i, 'vector')) 97 else: 98 desc[i] = 'nuv' + str(string_dim(nuv, i, 'vector')) 99 99 100 100 desc = allempty(desc) 101 101 102 102 return desc 103 103 104 105 106 initpt=[]107 104 @staticmethod 105 def prop_initpt(nuv): 106 initpt = [] 107 return initpt 108 108 109 110 111 if type(nuv) not in [list,np.ndarray]:112 109 @staticmethod 110 def prop_lower(nuv): 111 if type(nuv) not in [list, np.ndarray]: 112 return nuv.lower 113 113 114 115 116 114 lower = np.zeros(np.size(nuv)) 115 for i in range(np.size(nuv)): 116 lower[i] = nuv[i].lower 117 117 118 lower = allequal(lower,-np.inf)118 lower = allequal(lower, - np.inf) 119 119 120 120 return lower 121 121 122 123 124 if type(nuv) not in [list,np.ndarray]:125 122 @staticmethod 123 def prop_upper(nuv): 124 if type(nuv) not in [list, np.ndarray]: 125 return nuv.upper 126 126 127 128 129 127 upper = np.zeros(np.size(nuv)) 128 for i in range(np.size(nuv)): 129 upper[i] = nuv[i].upper 130 130 131 upper = allequal(upper,-np.inf)132 131 upper = allequal(upper, - np.inf) 132 return upper 133 133 134 135 136 if type(nuv) not in [list,np.ndarray]:137 134 @staticmethod 135 def prop_mean(nuv): 136 if type(nuv) not in [list, np.ndarray]: 137 return nuv.mean 138 138 139 140 141 139 mean = np.zeros(np.size(nuv)) 140 for i in range(np.size(nuv)): 141 mean[i] = nuv[i].mean 142 142 143 143 return mean 144 144 145 146 147 if type(nuv) not in [list,np.ndarray]:148 145 @staticmethod 146 def prop_stddev(nuv): 147 if type(nuv) not in [list, np.ndarray]: 148 return nuv.stddev 149 149 150 151 152 150 stddev = np.zeros(np.size(nuv)) 151 for i in range(np.size(nuv)): 152 stddev[i] = nuv[i].stddev 153 153 154 154 return stddev 155 155 156 157 158 initst=[]159 156 @staticmethod 157 def prop_initst(nuv): 158 initst = [] 159 return initst 160 160 161 162 163 stype=[]164 161 @staticmethod 162 def prop_stype(nuv): 163 stype = [] 164 return stype 165 165 166 167 168 scale=[]169 166 @staticmethod 167 def prop_scale(nuv): 168 scale = [] 169 return scale 170 170 171 172 def dakota_write(fidi,dvar):173 174 nuv = [struc_class(i,'normal_uncertain','nuv') for i in dvar]171 @staticmethod 172 def dakota_write(fidi, dvar): 173 # collect only the variables of the appropriate class 174 nuv = [struc_class(i, 'normal_uncertain', 'nuv') for i in dvar] 175 175 176 177 178 179 vlist_write(fidi,'normal_uncertain','nuv',nuv)176 # possible namespace pollution, the above import seems not to work 177 from vlist_write import vlist_write 178 # write variables 179 vlist_write(fidi, 'normal_uncertain', 'nuv', nuv) -
issm/trunk-jpl/src/m/classes/qmu/objective_function.py
r23716 r24213 3 3 from MatlabArray import * 4 4 5 5 6 class objective_function(object): 6 7 ''' 7 8 definition for the objective_function class. 8 9 9 10 [of] = objective_function.objective_function(args) 10 of 11 of = objective_function() 11 12 12 13 where the required args are: … … 21 22 arguments constructs a new instance from the arguments. 22 23 ''' 23 24 25 26 self.scale =1.27 self.weight =1.24 def __init__(self): 25 self.descriptor = '' 26 self.scale_type = 'none' 27 self.scale = 1. 28 self.weight = 1. 28 29 29 30 31 30 @staticmethod 31 def objective_function(*args): 32 nargin = len(args) 32 33 33 34 35 34 # create a default object 35 if nargin == 0: 36 return objective_function() 36 37 37 38 39 if (nargin == 1) and isinstance(args[0],objective_function):40 41 42 shapec = array_size(*args[0:min(nargin,4)])43 38 # copy the object or create the object from the input 39 else: 40 if (nargin == 1) and isinstance(args[0], objective_function): 41 of = args[0] 42 else: 43 shapec = array_size(*args[0:min(nargin, 4)]) 44 of = [objective_function() for i in range(shapec[0]) for j in range(shapec[1])] 44 45 45 46 47 48 49 of[i].descriptor = str(args[0])+string_dim(of,i,'vector')46 for i in range(np.size(of)): 47 if (np.size(args[0]) > 1): 48 of[i].descriptor = args[0][i] 49 else: 50 of[i].descriptor = str(args[0]) + string_dim(of, i, 'vector') 50 51 51 52 53 54 55 56 52 if (nargin >= 2): 53 for i in range(np.size(of)): 54 if (np.size(args[1]) > 1): 55 of[i].scale_type = args[1][i] 56 else: 57 of[i].scale_type = str(args[1]) 57 58 58 59 60 61 62 63 59 if (nargin >= 3): 60 for i in range(np.size(of)): 61 if (np.size(args[2]) > 1): 62 of[i].scale = args[2][i] 63 else: 64 of[i].scale = args[2] 64 65 65 66 67 68 69 70 66 if (nargin >= 4): 67 for i in range(np.size(of)): 68 if (np.size(args[3]) > 1): 69 of[i].weight = args[3][i] 70 else: 71 of[i].weight = args[3] 71 72 72 73 print('WARNING: objective_function:extra_arg Extra arguments for object of class '+str(type(of))+'.')73 if (nargin > 4): 74 print('WARNING: objective_function:extra_arg Extra arguments for object of class ' + str(type(of)) + '.') 74 75 75 76 return of 76 77 78 def __repr__(self): 79 # display the object 80 string = '\n' 81 string += 'class "objective_function" object = \n' 82 string += ' descriptor: ' + str(self.descriptor) + '\n' 83 string += ' scale_type: ' + str(self.scale_type) + '\n' 84 string += ' scale: ' + str(self.scale) + '\n' 85 string += ' weight: ' + str(self.weight) + '\n' 86 return string 77 87 78 def __repr__(self): 79 # display the object 80 string = '\n' 81 string += 'class "objective_function" object = \n' 82 string += ' descriptor: ' +str(self.descriptor) + '\n' 83 string += ' scale_type: ' +str(self.scale_type) + '\n' 84 string += ' scale: ' +str(self.scale) + '\n' 85 string += ' weight: ' +str(self.weight) + '\n' 86 return string 88 @staticmethod 89 def prop_desc(of, dstr): 90 if type(of) not in [list, np.ndarray]: 91 if of.descriptor != '' or type(of.descriptor) != str: 92 desc = str(of.descriptor) 93 elif dstr != '': 94 desc = str(dstr) 95 else: 96 desc = 'of' 97 return desc 87 98 88 @staticmethod 89 def prop_desc(of,dstr): 90 if type(of) not in [list,np.ndarray]: 91 if of.descriptor != '' or type(of.descriptor) != str: 92 desc = str(of.descriptor) 93 elif dstr != '': 94 desc = str(dstr) 95 else: 96 desc = 'of' 97 return desc 99 desc = ['' for i in range(np.size(of))] 100 for i in range(np.size(of)): 101 if of[i].descriptor != '' or type(of[i].descriptor) != str: 102 desc[i] = str(of[i].descriptor) 103 elif dstr != '': 104 desc[i] = str(dstr) + str(string_dim(of, i, 'vector')) 105 else: 106 desc[i] = 'of' + str(string_dim(of, i, 'vector')) 98 107 99 desc = ['' for i in range(np.size(of))] 100 for i in range(np.size(of)): 101 if of[i].descriptor != '' or type(of[i].descriptor) != str: 102 desc[i] = str(of[i].descriptor) 103 elif dstr != '': 104 desc[i] = str(dstr)+str(string_dim(of,i,'vector')) 105 else: 106 desc[i] = 'of'+str(string_dim(of,i,'vector')) 108 desc = allempty(desc) 109 return desc 107 110 108 desc = allempty(desc) 109 return desc 111 @staticmethod 112 def prop_lower(of): 113 lower = [] 114 return lower 110 115 111 112 def prop_lower(of):113 lower=[]114 return lower116 @staticmethod 117 def prop_upper(of): 118 upper = [] 119 return upper 115 120 116 117 def prop_upper(of):118 upper=[]119 return upper 121 @staticmethod 122 def prop_target(of): 123 target = [] 124 return target 120 125 121 122 def prop_target(of):123 target=[] 124 return target126 @staticmethod 127 def prop_weight(of): 128 if type(of) not in [list, np.ndarray]: 129 return of.weight 125 130 126 @staticmethod 127 def prop_weight(of): 128 if type(of) not in [list,np.ndarray]: 129 return of.weight 131 weight = np.zeros(np.shape(of)) 132 for i in range(np.size(of)): 133 weight[i] = of[i].weight 130 134 131 weight = np.zeros(np.shape(of)) 132 for i in range(np.size(of)): 133 weight[i] = of[i].weight 135 weight = allequal(weight, 1.) 136 return weight 134 137 135 weight = allequal(weight,1.) 136 return weight 138 @staticmethod 139 def prop_stype(of): 140 if type(of) not in [list, np.ndarray]: 141 return of.scale_type 137 142 138 @staticmethod 139 def prop_stype(of): 140 if type(of) not in [list,np.ndarray]: 141 return of.scale_type 143 stype = ['' for i in range(np.size(of))] 144 for i in range(np.size(of)): 145 stype[i] = str(of[i].scale_type) 142 146 143 stype = ['' for i in range(np.size(of))] 144 for i in range(np.size(of)): 145 stype[i] = str(of[i].scale_type) 147 stype = allequal(stype, 'none') 148 return stype 146 149 147 stype = allequal(stype,'none') 148 return stype 150 @staticmethod 151 def prop_scale(of): 152 if type(of) not in [list, np.ndarray]: 153 return of.scale 149 154 150 @staticmethod 151 def prop_scale(of): 152 if type(of) not in [list,np.ndarray]: 153 return of.scale 155 scale = np.zeros(np.shape(of)) 156 for i in range(np.size(of)): 157 scale[i] = of[i].scale 154 158 155 scale = np.zeros(np.shape(of)) 156 for i in range(np.size(of)): 157 scale[i] = of[i].scale 159 scale = allequal(scale, 1.) 160 return scale 158 161 159 scale = allequal(scale,1.) 160 return scale 162 @staticmethod 163 def dakota_write(fidi, dresp, rdesc): 164 # coloft only the variables of the appropriate class 165 of = [struc_class(i, 'objective_functions', 'of') for i in dresp] 161 166 162 @staticmethod 163 def dakota_write(fidi,dresp,rdesc): 164 # coloft only the variables of the appropriate class 165 of = [struc_class(i,'objective_functions','of') for i in dresp] 167 # write constraints 168 rdesc = rlist_write(fidi, 'objective_functions', 'objective_function', of, rdesc) 169 return rdesc 166 170 167 # write constraints 168 rdesc = rlist_write(fidi,'objective_functions','objective_function',of,rdesc) 169 return rdesc 170 171 @staticmethod 172 def dakota_rlev_write(fidi,dresp,params): 173 return 171 @staticmethod 172 def dakota_rlev_write(fidi, dresp, params): 173 return -
issm/trunk-jpl/src/m/classes/qmu/response_function.py
r23716 r24213 3 3 from rlev_write import * 4 4 from MatlabArray import * 5 6 5 #move this later 7 6 from helpers import * 8 7 8 9 9 class response_function(object): 10 10 ''' 11 11 definition for the response_function class. 12 12 13 13 [rf] = response_function.response_function(args) 14 rf 14 rf = response_function() 15 15 16 16 where the required args are: … … 27 27 ''' 28 28 29 30 31 self.respl= []32 self.probl= []33 self.rell= []34 self.grell= []29 def __init__(self): 30 self.descriptor = '' 31 self.respl = [] 32 self.probl = [] 33 self.rell = [] 34 self.grell = [] 35 35 36 37 36 @staticmethod 37 def response_function(*args): 38 38 39 40 41 42 39 nargin = len(args) 40 # create a default object 41 if nargin == 0: 42 return response_function() 43 43 44 45 46 if nargin == 1 and isinstance(args[0],response_function):47 48 49 asizec = array_size(*args[0:min(nargin,1)])50 44 # copy the object or create the object from the input 45 else: 46 if nargin == 1 and isinstance(args[0], response_function): 47 rf = args[0] 48 else: 49 asizec = array_size(*args[0:min(nargin, 1)]) 50 rf = [response_function() for i in range(asizec[0]) for j in range(asizec[1])] 51 51 52 53 54 55 56 rf[i].descriptor = str(args[0])+string_dim(rf,i,'vector')52 for i in range(np.size(rf)): 53 if (np.size(args[0]) > 1): 54 rf[i].descriptor = args[0][i] 55 else: 56 rf[i].descriptor = str(args[0]) + string_dim(rf, i, 'vector') 57 57 58 59 60 58 if nargin >= 2: 59 for i in range(np.size(rf)): 60 rf[i].respl = args[1] 61 61 62 63 64 62 if nargin >= 3: 63 for i in range(np.size(rf)): 64 rf[i].probl = args[2] 65 65 66 67 68 66 if nargin >= 4: 67 for i in range(np.size(rf)): 68 rf[i].rell = args[3] 69 69 70 71 72 70 if nargin >= 5: 71 for i in range(np.size(rf)): 72 rf[i].grell = args[4] 73 73 74 75 print('WARNING: response_function:extra_arg: Extra arguments for object of class '+str(type(rf))+'.')74 if nargin > 5: 75 print('WARNING: response_function:extra_arg: Extra arguments for object of class ' + str(type(rf)) + '.') 76 76 77 77 return rf 78 78 79 80 81 82 83 string += ' descriptor: ' +str(self.descriptor) + '\n'84 string += ' respl: ' +str(self.respl) + '\n'85 string += ' probl: ' +str(self.probl) + '\n'86 string += ' rell: ' +str(self.rell) + '\n'87 string += ' grell: ' +str(self.grell) + '\n'79 def __repr__(self): 80 # display the object 81 string = '\n' 82 string += 'class "response_function" object = \n' 83 string += ' descriptor: ' + str(self.descriptor) + '\n' 84 string += ' respl: ' + str(self.respl) + '\n' 85 string += ' probl: ' + str(self.probl) + '\n' 86 string += ' rell: ' + str(self.rell) + '\n' 87 string += ' grell: ' + str(self.grell) + '\n' 88 88 89 89 return string 90 90 91 92 return max(len(self.respl),len(self.probl),len(self.rell),len(self.grell))91 def __len__(self): 92 return max(len(self.respl), len(self.probl), len(self.rell), len(self.grell)) 93 93 94 94 # from here on, rf is either a single, or a 1d vector of, response_function 95 95 96 97 def prop_desc(rf,dstr):98 99 if type(rf) not in [list,np.ndarray]:100 96 @staticmethod 97 def prop_desc(rf, dstr): 98 # response_function is always a vector, or should be, even with just 1 99 if type(rf) not in [list, np.ndarray]: 100 rf = [rf] 101 101 102 103 104 105 106 107 desc[i] = str(dstr)+str(string_dim(rf,i,'vector'))108 109 desc[i] = 'rf'+str(string_dim(rf,i,'vector'))102 desc = ['' for i in range(np.size(rf))] 103 for i in range(np.size(rf)): 104 if rf[i].descriptor != '' or type(rf[i].descriptor) != str: 105 desc[i] = str(rf[i].descriptor) 106 elif dstr != '': 107 desc[i] = str(dstr) + str(string_dim(rf, i, 'vector')) 108 else: 109 desc[i] = 'rf' + str(string_dim(rf, i, 'vector')) 110 110 111 112 111 desc = allempty(desc) 112 return desc 113 113 114 115 116 stype=[]117 114 @staticmethod 115 def prop_stype(rf): 116 stype = [] 117 return stype 118 118 119 120 121 scale=[]122 119 @staticmethod 120 def prop_scale(rf): 121 scale = [] 122 return scale 123 123 124 125 126 weight=[]127 124 @staticmethod 125 def prop_weight(rf): 126 weight = [] 127 return weight 128 128 129 130 131 lower=[]132 129 @staticmethod 130 def prop_lower(rf): 131 lower = [] 132 return lower 133 133 134 135 136 upper=[]137 134 @staticmethod 135 def prop_upper(rf): 136 upper = [] 137 return upper 138 138 139 140 141 target=[]142 139 @staticmethod 140 def prop_target(rf): 141 target = [] 142 return target 143 143 144 145 146 147 if type(rf) not in [list,np.ndarray]:148 144 @staticmethod 145 def prop_levels(rf): 146 # response_function is always a vector, or should be, even with just 1 147 if type(rf) not in [list, np.ndarray]: 148 rf = [rf] 149 149 150 151 152 153 150 respl = empty_nd_list(np.size(rf)) 151 probl = empty_nd_list(np.size(rf)) 152 rell = empty_nd_list(np.size(rf)) 153 grell = empty_nd_list(np.size(rf)) 154 154 155 156 157 158 rell[i] = rf[i].rell159 155 for i in range(np.size(rf)): 156 respl[i] = rf[i].respl 157 probl[i] = rf[i].probl 158 rell[i] = rf[i].rell 159 grell[i] = rf[i].grell 160 160 161 162 163 rell= allempty(rell)164 165 return [respl,probl,rell,grell]161 respl = allempty(respl) 162 probl = allempty(probl) 163 rell = allempty(rell) 164 grell = allempty(grell) 165 return [respl, probl, rell, grell] 166 166 167 168 def dakota_write(fidi,dresp,rdesc):169 170 rf = [struc_class(vars(dresp)[i][j],'response_function','rf') for i in fieldnames(dresp) for j in range(len(vars(dresp)[i]))]167 @staticmethod 168 def dakota_write(fidi, dresp, rdesc): 169 # collect only the responses of the appropriate class 170 rf = [struc_class(vars(dresp)[i][j], 'response_function', 'rf') for i in fieldnames(dresp) for j in range(len(vars(dresp)[i]))] 171 171 172 173 174 175 rdesc = rlist_write(fidi,'response_function','rf',rf,rdesc)172 #possible namespace pollution here 173 from rlist_write import rlist_write 174 # write responses 175 rdesc = rlist_write(fidi, 'response_function', 'rf', rf, rdesc) 176 176 177 177 return rdesc 178 178 179 180 def dakota_rlev_write(fidi,dresp,params):181 182 rf = [struc_class(vars(dresp)[i][j],'response_function','rf') for i in fieldnames(dresp) for j in range(len(vars(dresp)[i]))]179 @staticmethod 180 def dakota_rlev_write(fidi, dresp, params): 181 # collect only the responses of the appropriate class 182 rf = [struc_class(vars(dresp)[i][j], 'response_function', 'rf') for i in fieldnames(dresp) for j in range(len(vars(dresp)[i]))] 183 183 184 185 rlev_write(fidi,rf,'response_function',params)184 # write response levels 185 rlev_write(fidi, rf, 'response_function', params) -
issm/trunk-jpl/src/m/classes/qmu/uniform_uncertain.py
r23716 r24213 3 3 from MatlabArray import * 4 4 5 5 6 class uniform_uncertain(object): 6 7 ''' 7 8 definition for the uniform_uncertain class. 8 9 9 10 [uuv] = uniform_uncertain.uniform_uncertain(args) 10 uuv 11 uuv = uniform_uncertain() 11 12 12 13 where the required args are: 13 14 descriptor (str, description, '') 14 lower (float, lower bound, - np.Inf)15 upper (float, upper bound, 15 lower (float, lower bound, - np.Inf) 16 upper (float, upper bound, np.Inf) 16 17 17 18 note that zero arguments constructs a default instance, one … … 20 21 ''' 21 22 22 23 24 self.lower = -np.Inf25 self.upper =np.Inf23 def __init__(self): 24 self.descriptor = '' 25 self.lower = - np.Inf 26 self.upper = np.Inf 26 27 27 28 29 28 @staticmethod 29 def uniform_uncertain(*args): 30 nargin = len(args) 30 31 31 32 33 32 # create a default object 33 if nargin == 0: 34 return uniform_uncertain() 34 35 35 36 37 if isinstance(args[0],uniform_uncertain):38 39 40 raise RuntimeError('Object '+str(args[0])+' is a '+str(type(args[0]))+' class object, not "uniform_uncertain".')36 # copy the object 37 elif nargin == 1: 38 if isinstance(args[0], uniform_uncertain): 39 uuv = args[0] 40 else: 41 raise RuntimeError('Object ' + str(args[0]) + ' is a ' + str(type(args[0])) + ' class object, not "uniform_uncertain".') 41 42 42 43 44 43 # not enough arguments 44 elif nargin == 2: 45 raise RuntimeError('Construction of "uniform_uncertain" class object requires at least 3 inputs.') 45 46 46 47 48 49 #asizec=array_size(*args[0:min(nargin,3)])50 51 52 53 uuv.lower= args[1]54 uuv.upper= args[2]55 56 print('WARNING: uniform_uncertain:extra_arg: Extra arguments for object of class '+type(uuv)+'.')47 # create the object from the input 48 else: 49 # leaving this here in case it becomes important in the future 50 #asizec = array_size(*args[0:min(nargin, 3)]) 51 #uuv = [uniform_uncertain() for i in range(asizec[0]) for j in range(asizec[1])] 52 uuv = uniform_uncertain() 53 uuv.descriptor = str(args[0]) 54 uuv.lower = args[1] 55 uuv.upper = args[2] 56 if (nargin > 3): 57 print('WARNING: uniform_uncertain:extra_arg: Extra arguments for object of class ' + type(uuv) + '.') 57 58 58 59 return [uuv] 59 60 60 61 62 63 64 65 66 61 def __repr__(self): 62 # display an individual object 63 string = '\n' 64 string += 'class "uniform_uncertain" object = \n' 65 string += ' descriptor: ' + str(self.descriptor) + '\n' 66 string += ' lower: ' + str(self.lower) + '\n' 67 string += ' upper: ' + str(self.upper) + '\n' 67 68 68 69 return string 69 70 70 71 # from here on, uuv is either a single, or a 1d vector of, uniform_uncertain 71 72 72 73 def prop_desc(uuv,dstr):74 if type(uuv) not in [list,np.ndarray]:75 76 77 78 79 80 81 73 @staticmethod 74 def prop_desc(uuv, dstr): 75 if type(uuv) not in [list, np.ndarray]: 76 if uuv.descriptor != '' or type(uuv.descriptor) != str: 77 desc = str(uuv.descriptor) 78 elif dstr != '': 79 desc = str(dstr) 80 else: 81 desc = 'uuv' 82 return desc 82 83 83 84 85 86 87 88 desc[i] = str(dstr)+str(string_dim(uuv,i,'vector'))89 90 desc[i] = 'uuv'+str(string_dim(uuv,i,'vector'))84 desc = ['' for i in range(np.size(uuv))] 85 for i in range(np.size(uuv)): 86 if uuv[i].descriptor != '' or type(uuv[i].descriptor) != str: 87 desc[i] = str(uuv[i].descriptor) 88 elif dstr != '': 89 desc[i] = str(dstr) + str(string_dim(uuv, i, 'vector')) 90 else: 91 desc[i] = 'uuv' + str(string_dim(uuv, i, 'vector')) 91 92 92 93 desc = allempty(desc) 93 94 94 95 return desc 95 96 96 97 98 initpt=[]99 97 @staticmethod 98 def prop_initpt(uuv): 99 initpt = [] 100 return initpt 100 101 101 102 103 if type(uuv) not in [list,np.ndarray]:104 102 @staticmethod 103 def prop_lower(uuv): 104 if type(uuv) not in [list, np.ndarray]: 105 return uuv.lower 105 106 106 107 108 107 lower = np.zeros(np.size(uuv)) 108 for i in range(np.size(uuv)): 109 lower[i] = uuv[i].lower 109 110 110 lower = allequal(lower,-np.Inf)111 lower = allequal(lower, - np.Inf) 111 112 112 113 return lower 113 114 114 115 116 if type(uuv) not in [list,np.ndarray]:117 115 @staticmethod 116 def prop_upper(uuv): 117 if type(uuv) not in [list, np.ndarray]: 118 return uuv.upper 118 119 119 120 121 120 upper = np.zeros(np.size(uuv)) 121 for i in range(np.size(uuv)): 122 upper[i] = uuv[i].upper 122 123 123 124 upper = allequal(upper, np.Inf) 124 125 125 126 return upper 126 127 127 128 129 mean=[]130 128 @staticmethod 129 def prop_mean(uuv): 130 mean = [] 131 return mean 131 132 132 133 134 stddev=[]135 133 @staticmethod 134 def prop_stddev(uuv): 135 stddev = [] 136 return stddev 136 137 137 138 139 initst=[]140 138 @staticmethod 139 def prop_initst(uuv): 140 initst = [] 141 return initst 141 142 142 143 144 stype=[]145 143 @staticmethod 144 def prop_stype(uuv): 145 stype = [] 146 return stype 146 147 147 148 149 scale=[]150 148 @staticmethod 149 def prop_scale(uuv): 150 scale = [] 151 return scale 151 152 152 153 def dakota_write(fidi,dvar):154 155 uuv = [struc_class(i,'uniform_uncertain','uuv') for i in dvar]156 157 158 159 vlist_write(fidi,'uniform_uncertain','uuv',uuv)153 @staticmethod 154 def dakota_write(fidi, dvar): 155 # collect only the variables of the appropriate class 156 uuv = [struc_class(i, 'uniform_uncertain', 'uuv') for i in dvar] 157 # possible namespace pollution, the above import seems not to work 158 from vlist_write import vlist_write 159 # write variables 160 vlist_write(fidi, 'uniform_uncertain', 'uuv', uuv) -
issm/trunk-jpl/src/m/classes/radaroverlay.py
r14640 r24213 1 1 from fielddisplay import fielddisplay 2 2 3 3 4 class radaroverlay(object): 4 5 5 """ 6 RADAROVERLAY class definition 6 7 7 8 radaroverlay=radaroverlay(); 9 8 Usage: 9 radaroverlay = radaroverlay() 10 """ 10 11 11 def __init__(self):# {{{12 13 self.x= float('NaN')14 self.y= float('NaN')12 def __init__(self): # {{{ 13 self.pwr = float('NaN') 14 self.x = float('NaN') 15 self.y = float('NaN') 15 16 16 17 17 #set defaults 18 self.setdefaultparameters() 18 19 19 #}}} 20 def __repr__(self): # {{{ 21 string=' radaroverlay parameters:' 22 string="%s\n%s"%(string,fielddisplay(self,'pwr','radar power image (matrix)')) 23 string="%s\n%s"%(string,fielddisplay(self,'x','corresponding x coordinates [m]')) 24 string="%s\n%s"%(string,fielddisplay(self,'y','corresponding y coordinates [m]')) 25 return string 26 #}}} 27 def setdefaultparameters(self): # {{{ 28 return self 29 #}}} 20 #}}} 21 22 def __repr__(self): # {{{ 23 string = ' radaroverlay parameters:' 24 string = "%s\n%s" % (string, fielddisplay(self, 'pwr', 'radar power image (matrix)')) 25 string = "%s\n%s" % (string, fielddisplay(self, 'x', 'corresponding x coordinates [m]')) 26 string = "%s\n%s" % (string, fielddisplay(self, 'y', 'corresponding y coordinates [m]')) 27 return string 28 #}}} 29 30 def setdefaultparameters(self): # {{{ 31 return self 32 #}}} -
issm/trunk-jpl/src/m/classes/regionaloutput.py
r23716 r24213 4 4 from checkfield import checkfield 5 5 from WriteData import WriteData 6 from MeshProfileIntersection import MeshProfileIntersection7 6 from ContourToMesh import ContourToMesh 8 7 import numpy as np 9 8 import os 10 9 10 11 11 class regionaloutput(object): 12 """ 13 REGIONALOUTPUT class definition 14 15 Usage: 16 regionaloutput=regionaloutput(); 17 regionaloutput=regionaloutput('name','Volume1','definitionstring','Outputdefinition1','outputnamestring','IceVolume','mask',mask); 18 regionaloutput=regionaloutput('name','Volume1','definitionstring','Outputdefinition1','outputnamestring','IceVolume','maskexpstring','Exp/Mask.exp','model',md) 19 20 where mask is a vectorial field of size md.mesh.numberofvertices,1 : where vertices with values > 1 are to be included in the calculated region. 21 Alternatively, the user can pass in an Argus file and model object instead of a mask, and mask will be calculated for the user 22 """ 12 """ 13 REGIONALOUTPUT class definition 23 14 24 def __init__(self,*args): # {{{ 15 Usage: 16 regionaloutput = regionaloutput() 17 regionaloutput = regionaloutput('name', 'Volume1', 'definitionstring', 'Outputdefinition1', 'outputnamestring', 'IceVolume', 'mask', mask) 18 regionaloutput = regionaloutput('name', 'Volume1', 'definitionstring', 'Outputdefinition1', 'outputnamestring', 'IceVolume', 'maskexpstring', 'Exp/Mask.exp', 'model', md) 25 19 26 self.name = '' 27 self.definitionstring = '' 28 self.outputnamestring = '' 29 self.mask = float('NaN') 30 self.maskexpstring = '' 20 where mask is a vectorial field of size md.mesh.numberofvertices, 1 : where vertices with values > 1 are to be included in the calculated region. 21 Alternatively, the user can pass in an Argus file and model object instead of a mask, and mask will be calculated for the user 22 """ 31 23 32 #set defaults 33 self.setdefaultparameters() 24 def __init__(self, *args): # {{{ 34 25 35 #use provided options to change fields 36 options=pairoptions(*args) 26 self.name = '' 27 self.definitionstring = '' 28 self.outputnamestring = '' 29 self.mask = float('NaN') 30 self.maskexpstring = '' 37 31 38 #OK get other fields39 self=options.AssignObjectFields(self)32 #set defaults 33 self.setdefaultparameters() 40 34 41 #get name 42 if options.getfieldvalue('model',0): 43 if options.getfieldvalue('maskexpstring',0): 44 modelname=options.getfieldvalue('model') 45 self.maskexpstring=options.getfieldvalue('maskexpstring') 46 self.setmaskfromexp(modelname) 47 48 if (len(self.mask)<=1 & np.any(np.isnan(self.mask))): 49 error('regionaloutput error message: ''mask'' field or ''maskexpstring'' and ''model'' fields should be defined!'); 35 #use provided options to change fields 36 options = pairoptions(*args) 50 37 51 #}}} 52 def __repr__(self): # {{{ 38 #OK get other fields 39 self = options.AssignObjectFields(self) 53 40 54 string=" Regionaloutput:" 55 string="%s\n%s"%(string,fielddisplay(self,'name','identifier for this regional response')) 56 string="%s\n%s"%(string,fielddisplay(self,'definitionstring','string that identifies this output definition uniquely, from Outputdefinition[1-100]')) 57 string="%s\n%s"%(string,fielddisplay(self,'outputnamestring','string that identifies the type of output you want, eg. IceVolume, TotalSmb, GroudedArea')) 58 string="%s\n%s"%(string,fielddisplay(self,'mask','mask vectorial field which identifies the region of interest (value > 0 will be included)')) 59 string="%s\n%s"%(string,fielddisplay(self,'maskexpstring','name of Argus file that can be passed in to define the regional mask')) 60 return string 61 #}}} 62 def extrude(self,md): # {{{ 63 self.mask=project3d(md,'vector',self.mask,'type','node') 64 return self 65 #}}} 66 def setdefaultparameters(self): # {{{ 67 return self 68 #}}} 69 def setmaskfromexp(self,md): # {{{ 70 if len(self.maskexpstring) > 0: 71 self.mask=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,self.maskexpstring,'node',1) 72 73 return self 74 # }}} 75 def checkconsistency(self,md,solution,analyses): # {{{ 76 77 if not isinstance(self.name, str): 78 raise RuntimeError("regionaloutput error message: 'name' field should be a string!") 79 80 if not isinstance(self.outputnamestring, str): 81 raise RuntimeError("regionaloutput error message: 'outputnamestring' field should be a string!") 82 83 if len(self.maskexpstring) > 0: 84 if not os.path.isfile(self.maskexpstring): 85 raise RuntimeError("regionaloutput error message: file name for mask exp does not point to a legitimate file on disk!") 86 else: 87 self.setmaskfromexp(md) 41 #get name 42 if options.getfieldvalue('model', 0): 43 if options.getfieldvalue('maskexpstring', 0): 44 modelname = options.getfieldvalue('model') 45 self.maskexpstring = options.getfieldvalue('maskexpstring') 46 self.setmaskfromexp(modelname) 88 47 89 OutputdefinitionStringArray=[] 90 for i in range(1,100): 91 x='Outputdefinition'+str(i) 92 OutputdefinitionStringArray.append(x) 48 if (len(self.mask) <= 1 & np.any(np.isnan(self.mask))): 49 error('regionaloutput error message: ''mask'' field or ''maskexpstring'' and ''model'' fields should be defined!') 93 50 94 md = checkfield(md,'field',self.definitionstring,'values',OutputdefinitionStringArray) 95 md = checkfield(md,'field',self.mask,'size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 96 return md 97 # }}} 98 def marshall(self,prefix,md,fid): # {{{ 51 #}}} 99 52 100 #before marshalling, make sure mask is set: 101 self.setmaskfromexp(md) 53 def __repr__(self): # {{{ 54 string = " Regionaloutput:" 55 string = "%s\n%s" % (string, fielddisplay(self, 'name', 'identifier for this regional response')) 56 string = "%s\n%s" % (string, fielddisplay(self, 'definitionstring', 'string that identifies this output definition uniquely, from Outputdefinition[1 - 100]')) 57 string = "%s\n%s" % (string, fielddisplay(self, 'outputnamestring', 'string that identifies the type of output you want, eg. IceVolume, TotalSmb, GroudedArea')) 58 string = "%s\n%s" % (string, fielddisplay(self, 'mask', 'mask vectorial field which identifies the region of interest (value > 0 will be included)')) 59 string = "%s\n%s" % (string, fielddisplay(self, 'maskexpstring', 'name of Argus file that can be passed in to define the regional mask')) 60 return string 61 #}}} 102 62 103 #ok, marshall strings and mask: 104 WriteData(fid,prefix,'data',self.name,'name','md.regionaloutput.name','format','String') 105 WriteData(fid,prefix,'data',self.definitionstring,'name','md.regionaloutput.definitionstring','format','String') 106 WriteData(fid,prefix,'data',self.outputnamestring,'name','md.regionaloutput.outputnamestring','format','String'); 107 WriteData(fid,prefix,'data',self.mask,'name','md.regionaloutput.mask','format','DoubleMat','mattype',1); 63 def extrude(self, md): # {{{ 64 self.mask = project3d(md, 'vector', self.mask, 'type', 'node') 65 return self 66 #}}} 108 67 109 # }}} 68 def setdefaultparameters(self): # {{{ 69 return self 70 #}}} 71 72 def setmaskfromexp(self, md): # {{{ 73 if len(self.maskexpstring) > 0: 74 self.mask = ContourToMesh(md.mesh.elements, md.mesh.x, md.mesh.y, self.maskexpstring, 'node', 1) 75 76 return self 77 # }}} 78 def checkconsistency(self, md, solution, analyses): # {{{ 79 80 if not isinstance(self.name, str): 81 raise RuntimeError("regionaloutput error message: 'name' field should be a string!") 82 83 if not isinstance(self.outputnamestring, str): 84 raise RuntimeError("regionaloutput error message: 'outputnamestring' field should be a string!") 85 86 if len(self.maskexpstring) > 0: 87 if not os.path.isfile(self.maskexpstring): 88 raise RuntimeError("regionaloutput error message: file name for mask exp does not point to a legitimate file on disk!") 89 else: 90 self.setmaskfromexp(md) 91 92 OutputdefinitionStringArray = [] 93 for i in range(1, 100): 94 x = 'Outputdefinition' + str(i) 95 OutputdefinitionStringArray.append(x) 96 97 md = checkfield(md, 'field', self.definitionstring, 'values', OutputdefinitionStringArray) 98 md = checkfield(md, 'field', self.mask, 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 99 return md 100 # }}} 101 def marshall(self, prefix, md, fid): # {{{ 102 103 #before marshalling, make sure mask is set: 104 self.setmaskfromexp(md) 105 106 #ok, marshall strings and mask: 107 WriteData(fid, prefix, 'data', self.name, 'name', 'md.regionaloutput.name', 'format', 'String') 108 WriteData(fid, prefix, 'data', self.definitionstring, 'name', 'md.regionaloutput.definitionstring', 'format', 'String') 109 WriteData(fid, prefix, 'data', self.outputnamestring, 'name', 'md.regionaloutput.outputnamestring', 'format', 'String') 110 WriteData(fid, prefix, 'data', self.mask, 'name', 'md.regionaloutput.mask', 'format', 'DoubleMat', 'mattype', 1) 111 112 # }}} -
issm/trunk-jpl/src/m/classes/results.py
r23716 r24213 1 import numpy as np2 from pairoptions import pairoptions3 1 from fielddisplay import fielddisplay 4 import MatlabFuncs as m 2 5 3 6 4 class results(object): 7 8 5 """ 6 RESULTS class definition 9 7 10 11 results=results(); 12 8 Usage: 9 results = results() 10 """ 13 11 14 def __init__(self,*args): # {{{ 15 pass 16 # }}} 17 def __repr__(self): # {{{ 18 s =" Model results:\n" 12 def __init__(self, *args): # {{{ 13 pass 14 # }}} 19 15 20 if 'step' in self.__dict__: 21 s+="%s\n" % fielddisplay(self,'step',"step number") 22 if 'time' in self.__dict__: 23 s+="%s\n" % fielddisplay(self,'time',"time value") 24 if 'SolutionType' in self.__dict__: 25 s+="%s\n" % fielddisplay(self,'SolutionType',"solution type") 16 def __repr__(self): # {{{ 17 s = " Model results:\n" 26 18 27 for name in list(self.__dict__.keys()): 28 if name not in ['step','time','SolutionType','errlog','outlog']: 29 if isinstance(getattr(self,name),list): 30 s+="%s\n" % fielddisplay(self,name,"model results list") 31 elif isinstance(getattr(self,name),results): 32 s+="%s\n" % fielddisplay(self,name,"model results case") 33 else: 34 s+="%s\n" % fielddisplay(self,name,"") 19 if 'step' in self.__dict__: 20 s += "%s\n" % fielddisplay(self, 'step', "step number") 21 if 'time' in self.__dict__: 22 s += "%s\n" % fielddisplay(self, 'time', "time value") 23 if 'SolutionType' in self.__dict__: 24 s += "%s\n" % fielddisplay(self, 'SolutionType', "solution type") 35 25 36 if 'errlog' in self.__dict__: 37 s+="%s\n" % fielddisplay(self,'errlog',"error log file") 38 if 'outlog' in self.__dict__: 39 s+="%s\n" % fielddisplay(self,'outlog',"output log file") 26 for name in list(self.__dict__.keys()): 27 if name not in ['step', 'time', 'SolutionType', 'errlog', 'outlog']: 28 if isinstance(getattr(self, name), list): 29 s += "%s\n" % fielddisplay(self, name, "model results list") 30 elif isinstance(getattr(self, name), results): 31 s += "%s\n" % fielddisplay(self, name, "model results case") 32 else: 33 s += "%s\n" % fielddisplay(self, name, "") 40 34 41 return s 42 # }}} 43 def setdefaultparameters(self): # {{{ 44 #do nothing 45 return self 46 # }}} 47 def checkconsistency(self,md,solution,analyses): # {{{ 48 return md 49 # }}} 50 def marshall(self,prefix,md,fid): # {{{ 51 pass 52 # }}} 35 if 'errlog' in self.__dict__: 36 s += "%s\n" % fielddisplay(self, 'errlog', "error log file") 37 if 'outlog' in self.__dict__: 38 s += "%s\n" % fielddisplay(self, 'outlog', "output log file") 39 40 return s 41 # }}} 42 43 def setdefaultparameters(self): # {{{ 44 #do nothing 45 return self 46 # }}} 47 48 def checkconsistency(self, md, solution, analyses): # {{{ 49 return md 50 # }}} 51 52 def marshall(self, prefix, md, fid): # {{{ 53 pass 54 # }}} -
issm/trunk-jpl/src/m/classes/rifts.py
r23716 r24213 6 6 import MatlabFuncs as m 7 7 8 8 9 class rifts(object): 9 10 10 """ 11 RIFTS class definition 11 12 12 13 rifts=rifts(); 14 13 Usage: 14 rifts = rifts() 15 """ 15 16 16 def __init__(self):# {{{17 self.riftstruct= []18 17 def __init__(self): # {{{ 18 self.riftstruct = [] 19 self.riftproperties = [] 19 20 20 21 21 #set defaults 22 self.setdefaultparameters() 22 23 23 #}}} 24 def __repr__(self): # {{{ 25 string=' rifts parameters:' 24 #}}} 26 25 27 string="%s\n%s"%(string,fielddisplay(self,'riftstruct','structure containing all rift information (vertices coordinates, segments, type of melange, ...)')) 28 string="%s\n%s"%(string,fielddisplay(self,'riftproperties','')) 29 return string 30 #}}} 31 def setdefaultparameters(self): # {{{ 32 return self 33 #}}} 34 def checkconsistency(self,md,solution,analyses): # {{{ 35 if (not self.riftstruct) or np.any(isnans(self.riftstruct)): 36 numrifts=0 37 else: 38 numrifts=len(self.riftstruct) 26 def __repr__(self): # {{{ 27 string = ' rifts parameters:' 39 28 40 if numrifts: 41 if not m.strcmp(md.mesh.domaintype(),'2Dhorizontal'): 42 md.checkmessage("models with rifts are only supported in 2d for now!") 43 if not isinstance(self.riftstruct,list): 44 md.checkmessage("rifts.riftstruct should be a structure!") 45 if np.any(md.mesh.segmentmarkers>=2): 46 #We have segments with rift markers, but no rift structure! 47 md.checkmessage("model should be processed for rifts (run meshprocessrifts)!") 48 for i,rift in enumerate(self.riftstruct): 49 md = checkfield(md,'fieldname',"rifts.riftstruct[{}]['fill']".format(i),'values',['Water','Air','Ice','Melange',0,1,2,3]) 50 else: 51 if self.riftstruct and np.any(np.logical_not(isnans(self.riftstruct))): 52 md.checkmessage("riftstruct should be NaN since numrifts is 0!") 29 string = "%s\n%s" % (string, fielddisplay(self, 'riftstruct', 'structure containing all rift information (vertices coordinates, segments, type of melange, ...)')) 30 string = "%s\n%s" % (string, fielddisplay(self, 'riftproperties', '')) 31 return string 32 #}}} 53 33 54 return md 55 # }}} 56 def marshall(self,prefix,md,fid): # {{{ 34 def setdefaultparameters(self): # {{{ 35 return self 36 #}}} 57 37 58 #Process rift info 59 60 numrifts=061 62 numrifts=len(self.riftstruct)38 def checkconsistency(self, md, solution, analyses): # {{{ 39 if (not self.riftstruct) or np.any(isnans(self.riftstruct)): 40 numrifts = 0 41 else: 42 numrifts = len(self.riftstruct) 63 43 64 numpairs=0 65 for rift in self.riftstruct: 66 numpairs+=np.size(rift['penaltypairs'],axis=0) 44 if numrifts: 45 if not m.strcmp(md.mesh.domaintype(), '2Dhorizontal'): 46 md.checkmessage("models with rifts are only supported in 2d for now!") 47 if not isinstance(self.riftstruct, list): 48 md.checkmessage("rifts.riftstruct should be a structure!") 49 if np.any(md.mesh.segmentmarkers >= 2): 50 #We have segments with rift markers, but no rift structure! 51 md.checkmessage("model should be processed for rifts (run meshprocessrifts)!") 52 for i, rift in enumerate(self.riftstruct): 53 md = checkfield(md, 'fieldname', "rifts.riftstruct[{}]['fill']".format(i), 'values', ['Water', 'Air', 'Ice', 'Melange', 0, 1, 2, 3]) 54 else: 55 if self.riftstruct and np.any(np.logical_not(isnans(self.riftstruct))): 56 md.checkmessage("riftstruct should be NaN since numrifts is 0!") 67 57 68 # Convert strings in riftstruct to hard coded numbers 69 FillDict={'Air':0, 70 'Ice':1, 71 'Melange':2, 72 'Water':3} 73 for rift in self.riftstruct: 74 if rift['fill'] in ['Air','Ice','Melange','Water']: 75 rift['fill'] = FillDict[rift['fill']] 58 return md 59 # }}} 76 60 77 # 2 for nodes + 2 for elements+ 2 for normals + 1 for length + 1 for fill + 1 for friction + 1 for fraction + 1 for fractionincrement + 1 for state. 78 data=np.zeros((numpairs,12)) 79 count=0 80 for rift in self.riftstruct: 81 numpairsforthisrift=np.size(rift['penaltypairs'],0) 82 data[count:count+numpairsforthisrift,0:7]=rift['penaltypairs'] 83 data[count:count+numpairsforthisrift,7]=rift['fill'] 84 data[count:count+numpairsforthisrift,8]=rift['friction'] 85 data[count:count+numpairsforthisrift,9]=rift['fraction'] 86 data[count:count+numpairsforthisrift,10]=rift['fractionincrement'] 87 data[count:count+numpairsforthisrift,11]=rift['state'].reshape(-1) 88 count+=numpairsforthisrift 61 def marshall(self, prefix, md, fid): # {{{ 62 #Process rift info 63 if (not self.riftstruct) or np.any(isnans(self.riftstruct)): 64 numrifts = 0 65 else: 66 numrifts = len(self.riftstruct) 89 67 90 WriteData(fid,prefix,'data',numrifts,'name','md.rifts.numrifts','format','Integer') 91 WriteData(fid,prefix,'data',data,'name','md.rifts.riftstruct','format','DoubleMat','mattype',3) 92 # }}} 68 numpairs = 0 69 for rift in self.riftstruct: 70 numpairs += np.size(rift['penaltypairs'], axis=0) 71 72 # Convert strings in riftstruct to hard coded numbers 73 FillDict = {'Air': 0, 74 'Ice': 1, 75 'Melange': 2, 76 'Water': 3} 77 for rift in self.riftstruct: 78 if rift['fill'] in ['Air', 'Ice', 'Melange', 'Water']: 79 rift['fill'] = FillDict[rift['fill']] 80 81 # 2 for nodes + 2 for elements + 2 for normals + 1 for length + 1 for fill + 1 for friction + 1 for fraction + 1 for fractionincrement + 1 for state. 82 data = np.zeros((numpairs, 12)) 83 count = 0 84 for rift in self.riftstruct: 85 numpairsforthisrift = np.size(rift['penaltypairs'], 0) 86 data[count:count + numpairsforthisrift, 0:7] = rift['penaltypairs'] 87 data[count:count + numpairsforthisrift, 7] = rift['fill'] 88 data[count:count + numpairsforthisrift, 8] = rift['friction'] 89 data[count:count + numpairsforthisrift, 9] = rift['fraction'] 90 data[count:count + numpairsforthisrift, 10] = rift['fractionincrement'] 91 data[count:count + numpairsforthisrift, 11] = rift['state'].reshape(- 1) 92 count += numpairsforthisrift 93 94 WriteData(fid, prefix, 'data', numrifts, 'name', 'md.rifts.numrifts', 'format', 'Integer') 95 WriteData(fid, prefix, 'data', data, 'name', 'md.rifts.riftstruct', 'format', 'DoubleMat', 'mattype', 3) 96 # }}} -
issm/trunk-jpl/src/m/classes/slr.py
r23716 r24213 6 6 from WriteData import WriteData 7 7 8 8 9 class slr(object): 9 """ 10 SLR class definition 11 12 Usage: 13 slr=slr() 14 """ 15 def __init__(self): # {{{ 16 self.deltathickness = float('NaN') 17 self.sealevel = float('NaN') 18 self.spcthickness = float('NaN') 19 self.maxiter = 0 20 self.reltol = 0 21 self.abstol = 0 22 self.love_h = 0 #provided by PREM model() 23 self.love_k = 0 #ideam 24 self.love_l = 0 #ideam 25 self.tide_love_k = 0 #ideam 26 self.tide_love_h = 0 #ideam 27 self.fluid_love = 0 28 self.equatorial_moi = 0 29 self.polar_moi = 0 30 self.angular_velocity = 0 31 self.rigid = 0 32 self.elastic = 0 33 self.rotation = 0 34 self.ocean_area_scaling = 0 35 self.steric_rate = 0 #rate of ocean expansion from steric effects. 36 self.geodetic_run_frequency = 1 #how many time steps we skip before we run the geodetic part of the solver during transient 37 self.geodetic = 0 #compute geodetic SLR? (in addition to steric?) 38 self.degacc = 0 39 self.loop_increment = 0 40 self.horiz = 0 41 self.Ngia = float('NaN') 42 self.Ugia = float('NaN') 43 self.requested_outputs = [] 44 self.transitions = [] 45 46 #set defaults 47 self.setdefaultparameters() 48 #}}} 49 50 def __repr__(self): # {{{ 51 string=' slr parameters:' 52 string="%s\n%s"%(string,fielddisplay(self,'deltathickness','thickness change: ice height equivalent [m]')) 53 string="%s\n%s"%(string,fielddisplay(self,'sealevel','current sea level (prior to computation) [m]')) 54 string="%s\n%s"%(string,fielddisplay(self,'spcthickness','thickness constraints (NaN means no constraint) [m]')) 55 string="%s\n%s"%(string,fielddisplay(self,'reltol','sea level rise relative convergence criterion, (NaN: not applied)')) 56 string="%s\n%s"%(string,fielddisplay(self,'abstol','sea level rise absolute convergence criterion, (default, NaN: not applied)')) 57 string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of nonlinear iterations')) 58 string="%s\n%s"%(string,fielddisplay(self,'love_h','load Love number for radial displacement')) 59 string="%s\n%s"%(string,fielddisplay(self,'love_k','load Love number for gravitational potential perturbation')) 60 string="%s\n%s"%(string,fielddisplay(self,'love_l','load Love number for horizontal displaements')) 61 string="%s\n%s"%(string,fielddisplay(self,'tide_love_k','tidal load Love number (degree 2)')) 62 string="%s\n%s"%(string,fielddisplay(self,'tide_love_h','tidal load Love number (degree 2)')) 63 string="%s\n%s"%(string,fielddisplay(self,'fluid_love','secular fluid Love number')) 64 string="%s\n%s"%(string,fielddisplay(self,'equatorial_moi','mean equatorial moment of inertia [kg m^2]')) 65 string="%s\n%s"%(string,fielddisplay(self,'polar_moi','polar moment of inertia [kg m^2]')) 66 string="%s\n%s"%(string,fielddisplay(self,'angular_velocity','mean rotational velocity of earth [per second]')) 67 string="%s\n%s"%(string,fielddisplay(self,'ocean_area_scaling','correction for model representation of ocean area [default: No correction]')) 68 string="%s\n%s"%(string,fielddisplay(self,'steric_rate','rate of steric ocean expansion [mm/yr]')) 69 string="%s\n%s"%(string,fielddisplay(self,'Ngia','rate of viscous (GIA) geoid expansion (in mm/yr)')) 70 string="%s\n%s"%(string,fielddisplay(self,'Ugia','rate of viscous (GIA) bedrock uplift (in mm/yr)')) 71 string="%s\n%s"%(string,fielddisplay(self,'loop_increment','vector assembly (in the convolution) framentation')) 72 string="%s\n%s"%(string,fielddisplay(self,'geodetic','compute geodetic SLR? ( in addition to steric?) default 0')) 73 string="%s\n%s"%(string,fielddisplay(self,'geodetic_run_frequency','how many time steps we skip before we run SLR solver during transient (default: 1)')) 74 string="%s\n%s"%(string,fielddisplay(self,'rigid','rigid earth graviational potential perturbation')) 75 string="%s\n%s"%(string,fielddisplay(self,'elastic','elastic earth graviational potential perturbation')) 76 string="%s\n%s"%(string,fielddisplay(self,'rotation','earth rotational potential perturbation')) 77 string="%s\n%s"%(string,fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions')) 78 string="%s\n%s"%(string,fielddisplay(self,'transitions','indices into parts of the mesh that will be icecaps')) 79 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 80 81 return string 82 # }}} 83 84 def setdefaultparameters(self): # {{{ 85 #Convergence criterion: absolute, relative and residual 86 self.reltol = 0.01 #default 87 self.abstol = float('NaN') #1 mm of sea level rise 88 89 #maximum of non-linear iterations. 90 self.maxiter = 5 91 self.loop_increment = 200 92 93 #computational flags: 94 self.geodetic = 0 95 self.rigid = 1 96 self.elastic = 1 97 self.ocean_area_scaling = 0 98 self.rotation = 1 99 100 #tidal love numbers: 101 self.tide_love_h = 0.6149 #degree 2 102 self.tide_love_k = 0.3055 #degree 2 103 104 #secular fluid love number: 105 self.fluid_love = 0.942 106 107 #moment of inertia: 108 self.equatorial_moi = 8.0077*10**37 # [kg m^2] 109 self.polar_moi = 8.0345*10**37 # [kg m^2] 110 111 #mean rotational velocity of earth 112 self.angular_velocity = 7.2921*10**-5 # [s^-1] 113 114 #numerical discretization accuracy 115 self.degacc = .01 116 117 #steric: 118 self.steric_rate = 0 119 120 #how many time steps we skip before we run SLR solver during transient 121 self.geodetic_run_frequency = 1 122 123 #output default: 124 self.requested_outputs = ['default'] 125 126 #transitions should be a cell array of vectors: 127 self.transitions = [] 128 129 #horizontal displacement? (not by default) 130 self.horiz = 0 131 132 return self 133 #}}} 134 135 def checkconsistency(self,md,solution,analyses): # {{{ 136 #Early return 137 if (solution!='SealevelriseAnalysis'): 138 return md 139 140 md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofelements]) 141 md = checkfield(md,'fieldname','slr.sealevel','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 142 md = checkfield(md,'fieldname','slr.spcthickness','Inf',1,'timeseries',1) 143 md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1) 144 md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1) 145 md = checkfield(md,'fieldname','slr.love_l','NaN',1,'Inf',1) 146 md = checkfield(md,'fieldname','slr.tide_love_h','NaN',1,'Inf',1) 147 md = checkfield(md,'fieldname','slr.tide_love_k','NaN',1,'Inf',1) 148 md = checkfield(md,'fieldname','slr.fluid_love','NaN',1,'Inf',1) 149 md = checkfield(md,'fieldname','slr.equatorial_moi','NaN',1,'Inf',1) 150 md = checkfield(md,'fieldname','slr.polar_moi','NaN',1,'Inf',1) 151 md = checkfield(md,'fieldname','slr.angular_velocity','NaN',1,'Inf',1) 152 md = checkfield(md,'fieldname','slr.reltol','size',[1,1]) 153 md = checkfield(md,'fieldname','slr.abstol','size',[1,1]) 154 md = checkfield(md,'fieldname','slr.maxiter','size',[1,1],'>=',1) 155 md = checkfield(md,'fieldname','slr.geodetic_run_frequency','size',[1,1],'>=',1) 156 md = checkfield(md,'fieldname','slr.steric_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 157 md = checkfield(md,'fieldname','slr.degacc','size',[1,1],'>=',1e-10) 158 md = checkfield(md,'fieldname','slr.requested_outputs','stringrow',1) 159 md = checkfield(md,'fieldname','slr.loop_increment','NaN',1,'Inf',1,'>=',1) 160 md = checkfield(md,'fieldname','slr.horiz','NaN',1,'Inf',1,'values',[0,1]) 161 md = checkfield(md,'fieldname','slr.Ngia','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 162 md = checkfield(md,'fieldname','slr.Ugia','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 163 164 #check that love numbers are provided at the same level of accuracy: 165 if (size(self.love_h,0) != size(self.love_k,0) | size(self.love_h,0) != size(self.love_l,0)): 166 error('slr error message: love numbers should be provided at the same level of accuracy') 167 168 #cross check that whereever we have an ice load, the mask is <0 on each vertex: 169 pos=np.where(self.deltathickness) 170 maskpos=md.mask.ice_levelset[md.mesh.elements[pos,:]] 171 els=np.where(maskpos>0) 172 if len(els[0])>0: 173 warnings.warn('slr checkconsistency fail: there are elements with ice loads where some vertices are not on the ice!') 174 175 #check that if geodetic is requested, we are a mesh3dsurface model (planet), or if we are not, 176 #a coupler to a planet model is provided. 177 if self.geodetic and not md.transient.iscoupler and domaintype(md.mesh)!='mesh3dsurface': 178 error('model is requesting geodetic computations without being a mesh3dsurface, or being coupled to one!') 179 return md 180 # }}} 181 182 def defaultoutputs(self,md): # {{{ 183 return ['Sealevel'] 184 # }}} 185 186 def marshall(self,prefix,md,fid): # {{{ 187 WriteData(fid,prefix,'object',self,'fieldname','deltathickness','format','DoubleMat','mattype',2) 188 WriteData(fid,prefix,'object',self,'fieldname','sealevel','mattype',1,'format','DoubleMat','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 189 WriteData(fid,prefix,'object',self,'fieldname','spcthickness','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 190 WriteData(fid,prefix,'object',self,'fieldname','reltol','format','Double') 191 WriteData(fid,prefix,'object',self,'fieldname','abstol','format','Double') 192 WriteData(fid,prefix,'object',self,'fieldname','maxiter','format','Integer') 193 WriteData(fid,prefix,'object',self,'fieldname','love_h','format','DoubleMat','mattype',1) 194 WriteData(fid,prefix,'object',self,'fieldname','love_k','format','DoubleMat','mattype',1) 195 WriteData(fid,prefix,'object',self,'fieldname','love_l','format','DoubleMat','mattype',1) 196 WriteData(fid,prefix,'object',self,'fieldname','tide_love_h','format','Double') 197 WriteData(fid,prefix,'object',self,'fieldname','tide_love_k','format','Double') 198 WriteData(fid,prefix,'object',self,'fieldname','fluid_love','format','Double') 199 WriteData(fid,prefix,'object',self,'fieldname','equatorial_moi','format','Double') 200 WriteData(fid,prefix,'object',self,'fieldname','polar_moi','format','Double') 201 WriteData(fid,prefix,'object',self,'fieldname','angular_velocity','format','Double') 202 WriteData(fid,prefix,'object',self,'fieldname','rigid','format','Boolean') 203 WriteData(fid,prefix,'object',self,'fieldname','elastic','format','Boolean') 204 WriteData(fid,prefix,'object',self,'fieldname','rotation','format','Boolean') 205 WriteData(fid,prefix,'object',self,'fieldname','ocean_area_scaling','format','Boolean') 206 WriteData(fid,prefix,'object',self,'fieldname','geodetic_run_frequency','format','Integer') 207 WriteData(fid,prefix,'object',self,'fieldname','steric_rate','format','DoubleMat','mattype',1,'scale',1e-3/md.constants.yts) 208 WriteData(fid,prefix,'object',self,'fieldname','Ngia','format','DoubleMat','mattype',1,'scale',1e-3/md.constants.yts) 209 WriteData(fid,prefix,'object',self,'fieldname','Ugia','format','DoubleMat','mattype',1,'scale',1e-3/md.constants.yts) 210 WriteData(fid,prefix,'object',self,'fieldname','degacc','format','Double') 211 WriteData(fid,prefix,'object',self,'fieldname','transitions','format','MatArray') 212 WriteData(fid,prefix,'object',self,'fieldname','loop_increment','format','Integer') 213 WriteData(fid,prefix,'object',self,'fieldname','horiz','format','Integer') 214 WriteData(fid,prefix,'object',self,'fieldname','geodetic','format','Integer') 215 216 #process requested outputs 217 outputs = self.requested_outputs 218 indices = [i for i, x in enumerate(outputs) if x == 'default'] 219 if len(indices) > 0: 220 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 221 outputs =outputscopy 222 WriteData(fid,prefix,'data',outputs,'name','md.slr.requested_outputs','format','StringArray') 223 # }}} 10 """ 11 SLR class definition 12 13 Usage: 14 slr = slr() 15 """ 16 def __init__(self): # {{{ 17 self.deltathickness = float('NaN') 18 self.sealevel = float('NaN') 19 self.spcthickness = float('NaN') 20 self.maxiter = 0 21 self.reltol = 0 22 self.abstol = 0 23 self.love_h = 0 #provided by PREM model() 24 self.love_k = 0 #ideam 25 self.love_l = 0 #ideam 26 self.tide_love_k = 0 #ideam 27 self.tide_love_h = 0 #ideam 28 self.fluid_love = 0 29 self.equatorial_moi = 0 30 self.polar_moi = 0 31 self.angular_velocity = 0 32 self.rigid = 0 33 self.elastic = 0 34 self.rotation = 0 35 self.ocean_area_scaling = 0 36 self.steric_rate = 0 #rate of ocean expansion from steric effects. 37 self.geodetic_run_frequency = 1 #how many time steps we skip before we run the geodetic part of the solver during transient 38 self.geodetic = 0 #compute geodetic SLR? (in addition to steric?) 39 self.degacc = 0 40 self.loop_increment = 0 41 self.horiz = 0 42 self.Ngia = float('NaN') 43 self.Ugia = float('NaN') 44 self.requested_outputs = [] 45 self.transitions = [] 46 47 #set defaults 48 self.setdefaultparameters() 49 #}}} 50 51 def __repr__(self): # {{{ 52 string = ' slr parameters:' 53 string = "%s\n%s" % (string, fielddisplay(self, 'deltathickness', 'thickness change: ice height equivalent [m]')) 54 string = "%s\n%s" % (string, fielddisplay(self, 'sealevel', 'current sea level (prior to computation) [m]')) 55 string = "%s\n%s" % (string, fielddisplay(self, 'spcthickness', 'thickness constraints (NaN means no constraint) [m]')) 56 string = "%s\n%s" % (string, fielddisplay(self, 'reltol', 'sea level rise relative convergence criterion, (NaN: not applied)')) 57 string = "%s\n%s" % (string, fielddisplay(self, 'abstol', 'sea level rise absolute convergence criterion, (default, NaN: not applied)')) 58 string = "%s\n%s" % (string, fielddisplay(self, 'maxiter', 'maximum number of nonlinear iterations')) 59 string = "%s\n%s" % (string, fielddisplay(self, 'love_h', 'load Love number for radial displacement')) 60 string = "%s\n%s" % (string, fielddisplay(self, 'love_k', 'load Love number for gravitational potential perturbation')) 61 string = "%s\n%s" % (string, fielddisplay(self, 'love_l', 'load Love number for horizontal displaements')) 62 string = "%s\n%s" % (string, fielddisplay(self, 'tide_love_k', 'tidal load Love number (degree 2)')) 63 string = "%s\n%s" % (string, fielddisplay(self, 'tide_love_h', 'tidal load Love number (degree 2)')) 64 string = "%s\n%s" % (string, fielddisplay(self, 'fluid_love', 'secular fluid Love number')) 65 string = "%s\n%s" % (string, fielddisplay(self, 'equatorial_moi', 'mean equatorial moment of inertia [kg m^2]')) 66 string = "%s\n%s" % (string, fielddisplay(self, 'polar_moi', 'polar moment of inertia [kg m^2]')) 67 string = "%s\n%s" % (string, fielddisplay(self, 'angular_velocity', 'mean rotational velocity of earth [per second]')) 68 string = "%s\n%s" % (string, fielddisplay(self, 'ocean_area_scaling', 'correction for model representation of ocean area [default: No correction]')) 69 string = "%s\n%s" % (string, fielddisplay(self, 'steric_rate', 'rate of steric ocean expansion [mm / yr]')) 70 string = "%s\n%s" % (string, fielddisplay(self, 'Ngia', 'rate of viscous (GIA) geoid expansion (in mm / yr)')) 71 string = "%s\n%s" % (string, fielddisplay(self, 'Ugia', 'rate of viscous (GIA) bedrock uplift (in mm / yr)')) 72 string = "%s\n%s" % (string, fielddisplay(self, 'loop_increment', 'vector assembly (in the convolution) framentation')) 73 string = "%s\n%s" % (string, fielddisplay(self, 'geodetic', 'compute geodetic SLR? (in addition to steric?) default 0')) 74 string = "%s\n%s" % (string, fielddisplay(self, 'geodetic_run_frequency', 'how many time steps we skip before we run SLR solver during transient (default: 1)')) 75 string = "%s\n%s" % (string, fielddisplay(self, 'rigid', 'rigid earth graviational potential perturbation')) 76 string = "%s\n%s" % (string, fielddisplay(self, 'elastic', 'elastic earth graviational potential perturbation')) 77 string = "%s\n%s" % (string, fielddisplay(self, 'rotation', 'earth rotational potential perturbation')) 78 string = "%s\n%s" % (string, fielddisplay(self, 'degacc', 'accuracy (default .01 deg) for numerical discretization of the Green''s functions')) 79 string = "%s\n%s" % (string, fielddisplay(self, 'transitions', 'indices into parts of the mesh that will be icecaps')) 80 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 81 82 return string 83 # }}} 84 85 def setdefaultparameters(self): # {{{ 86 #Convergence criterion: absolute, relative and residual 87 self.reltol = 0.01 #default 88 self.abstol = float('NaN') #1 mm of sea level rise 89 #maximum of non - linear iterations. 90 self.maxiter = 5 91 self.loop_increment = 200 92 #computational flags: 93 self.geodetic = 0 94 self.rigid = 1 95 self.elastic = 1 96 self.ocean_area_scaling = 0 97 self.rotation = 1 98 #tidal love numbers: 99 self.tide_love_h = 0.6149 #degree 2 100 self.tide_love_k = 0.3055 #degree 2 101 #secular fluid love number: 102 self.fluid_love = 0.942 103 #moment of inertia: 104 self.equatorial_moi = 8.0077 * 1.0e37 # [kg m^2] 105 self.polar_moi = 8.0345 * 1.0e37 # [kg m^2] 106 #mean rotational velocity of earth 107 self.angular_velocity = 7.2921 * 1.0e-5 # [s^ - 1] 108 #numerical discretization accuracy 109 self.degacc = 0.01 110 #steric: 111 self.steric_rate = 0 112 #how many time steps we skip before we run SLR solver during transient 113 self.geodetic_run_frequency = 1 114 #output default: 115 self.requested_outputs = ['default'] 116 #transitions should be a cell array of vectors: 117 self.transitions = [] 118 #horizontal displacement? (not by default) 119 self.horiz = 0 120 121 return self 122 #}}} 123 124 def checkconsistency(self, md, solution, analyses): # {{{ 125 #Early return 126 if (solution != 'SealevelriseAnalysis'): 127 return md 128 129 md = checkfield(md, 'fieldname', 'slr.deltathickness', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofelements]) 130 md = checkfield(md, 'fieldname', 'slr.sealevel', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 131 md = checkfield(md, 'fieldname', 'slr.spcthickness', 'Inf', 1, 'timeseries', 1) 132 md = checkfield(md, 'fieldname', 'slr.love_h', 'NaN', 1, 'Inf', 1) 133 md = checkfield(md, 'fieldname', 'slr.love_k', 'NaN', 1, 'Inf', 1) 134 md = checkfield(md, 'fieldname', 'slr.love_l', 'NaN', 1, 'Inf', 1) 135 md = checkfield(md, 'fieldname', 'slr.tide_love_h', 'NaN', 1, 'Inf', 1) 136 md = checkfield(md, 'fieldname', 'slr.tide_love_k', 'NaN', 1, 'Inf', 1) 137 md = checkfield(md, 'fieldname', 'slr.fluid_love', 'NaN', 1, 'Inf', 1) 138 md = checkfield(md, 'fieldname', 'slr.equatorial_moi', 'NaN', 1, 'Inf', 1) 139 md = checkfield(md, 'fieldname', 'slr.polar_moi', 'NaN', 1, 'Inf', 1) 140 md = checkfield(md, 'fieldname', 'slr.angular_velocity', 'NaN', 1, 'Inf', 1) 141 md = checkfield(md, 'fieldname', 'slr.reltol', 'size', [1, 1]) 142 md = checkfield(md, 'fieldname', 'slr.abstol', 'size', [1, 1]) 143 md = checkfield(md, 'fieldname', 'slr.maxiter', 'size', [1, 1], '>=', 1) 144 md = checkfield(md, 'fieldname', 'slr.geodetic_run_frequency', 'size', [1, 1], '>=', 1) 145 md = checkfield(md, 'fieldname', 'slr.steric_rate', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 146 md = checkfield(md, 'fieldname', 'slr.degacc', 'size', [1, 1], '>=', 1e-10) 147 md = checkfield(md, 'fieldname', 'slr.requested_outputs', 'stringrow', 1) 148 md = checkfield(md, 'fieldname', 'slr.loop_increment', 'NaN', 1, 'Inf', 1, '>=', 1) 149 md = checkfield(md, 'fieldname', 'slr.horiz', 'NaN', 1, 'Inf', 1, 'values', [0, 1]) 150 md = checkfield(md, 'fieldname', 'slr.Ngia', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 151 md = checkfield(md, 'fieldname', 'slr.Ugia', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 152 153 #check that love numbers are provided at the same level of accuracy: 154 if (size(self.love_h, 0) != size(self.love_k, 0) | size(self.love_h, 0) != size(self.love_l, 0)): 155 error('slr error message: love numbers should be provided at the same level of accuracy') 156 157 #cross check that whereever we have an ice load, the mask is < 0 on each vertex: 158 pos = np.where(self.deltathickness) 159 maskpos = md.mask.ice_levelset[md.mesh.elements[pos, :]] 160 els = np.where(maskpos > 0) 161 if len(els[0]) > 0: 162 warnings.warn('slr checkconsistency fail: there are elements with ice loads where some vertices are not on the ice!') 163 164 #check that if geodetic is requested, we are a mesh3dsurface model (planet), or if we are not, 165 #a coupler to a planet model is provided. 166 if self.geodetic and not md.transient.iscoupler and domaintype(md.mesh) != 'mesh3dsurface': 167 error('model is requesting geodetic computations without being a mesh3dsurface, or being coupled to one!') 168 return md 169 # }}} 170 171 def defaultoutputs(self, md): # {{{ 172 return ['Sealevel'] 173 # }}} 174 175 def marshall(self, prefix, md, fid): # {{{ 176 WriteData(fid, prefix, 'object', self, 'fieldname', 'deltathickness', 'format', 'DoubleMat', 'mattype', 2) 177 WriteData(fid, prefix, 'object', self, 'fieldname', 'sealevel', 'mattype', 1, 'format', 'DoubleMat', 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 178 WriteData(fid, prefix, 'object', self, 'fieldname', 'spcthickness', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 179 WriteData(fid, prefix, 'object', self, 'fieldname', 'reltol', 'format', 'Double') 180 WriteData(fid, prefix, 'object', self, 'fieldname', 'abstol', 'format', 'Double') 181 WriteData(fid, prefix, 'object', self, 'fieldname', 'maxiter', 'format', 'Integer') 182 WriteData(fid, prefix, 'object', self, 'fieldname', 'love_h', 'format', 'DoubleMat', 'mattype', 1) 183 WriteData(fid, prefix, 'object', self, 'fieldname', 'love_k', 'format', 'DoubleMat', 'mattype', 1) 184 WriteData(fid, prefix, 'object', self, 'fieldname', 'love_l', 'format', 'DoubleMat', 'mattype', 1) 185 WriteData(fid, prefix, 'object', self, 'fieldname', 'tide_love_h', 'format', 'Double') 186 WriteData(fid, prefix, 'object', self, 'fieldname', 'tide_love_k', 'format', 'Double') 187 WriteData(fid, prefix, 'object', self, 'fieldname', 'fluid_love', 'format', 'Double') 188 WriteData(fid, prefix, 'object', self, 'fieldname', 'equatorial_moi', 'format', 'Double') 189 WriteData(fid, prefix, 'object', self, 'fieldname', 'polar_moi', 'format', 'Double') 190 WriteData(fid, prefix, 'object', self, 'fieldname', 'angular_velocity', 'format', 'Double') 191 WriteData(fid, prefix, 'object', self, 'fieldname', 'rigid', 'format', 'Boolean') 192 WriteData(fid, prefix, 'object', self, 'fieldname', 'elastic', 'format', 'Boolean') 193 WriteData(fid, prefix, 'object', self, 'fieldname', 'rotation', 'format', 'Boolean') 194 WriteData(fid, prefix, 'object', self, 'fieldname', 'ocean_area_scaling', 'format', 'Boolean') 195 WriteData(fid, prefix, 'object', self, 'fieldname', 'geodetic_run_frequency', 'format', 'Integer') 196 WriteData(fid, prefix, 'object', self, 'fieldname', 'steric_rate', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1e-3 / md.constants.yts) 197 WriteData(fid, prefix, 'object', self, 'fieldname', 'Ngia', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1e-3 / md.constants.yts) 198 WriteData(fid, prefix, 'object', self, 'fieldname', 'Ugia', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1e-3 / md.constants.yts) 199 WriteData(fid, prefix, 'object', self, 'fieldname', 'degacc', 'format', 'Double') 200 WriteData(fid, prefix, 'object', self, 'fieldname', 'transitions', 'format', 'MatArray') 201 WriteData(fid, prefix, 'object', self, 'fieldname', 'loop_increment', 'format', 'Integer') 202 WriteData(fid, prefix, 'object', self, 'fieldname', 'horiz', 'format', 'Integer') 203 WriteData(fid, prefix, 'object', self, 'fieldname', 'geodetic', 'format', 'Integer') 204 205 #process requested outputs 206 outputs = self.requested_outputs 207 indices = [i for i, x in enumerate(outputs) if x == 'default'] 208 if len(indices) > 0: 209 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 210 outputs = outputscopy 211 WriteData(fid, prefix, 'data', outputs, 'name', 'md.slr.requested_outputs', 'format', 'StringArray') 212 # }}} -
issm/trunk-jpl/src/m/classes/steadystate.py
r21303 r24213 4 4 from WriteData import WriteData 5 5 6 6 7 class steadystate(object): 7 8 8 """ 9 STEADYSTATE class definition 9 10 10 11 steadystate=steadystate(); 12 11 Usage: 12 steadystate = steadystate() 13 """ 13 14 14 def __init__(self):# {{{15 self.reltol= 016 self.maxiter= 017 15 def __init__(self): # {{{ 16 self.reltol = 0 17 self.maxiter = 0 18 self.requested_outputs = [] 18 19 19 20 20 #set defaults 21 self.setdefaultparameters() 21 22 22 #}}} 23 def __repr__(self): # {{{ 24 string=' steadystate solution parameters:' 25 string="%s\n%s"%(string,fielddisplay(self,'reltol','relative tolerance criterion')) 26 string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of iterations')) 27 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional requested outputs')) 28 return string 29 #}}} 30 def defaultoutputs(self,md): # {{{ 23 #}}} 24 def __repr__(self): # {{{ 25 string = ' steadystate solution parameters:' 26 string = "%s\n%s" % (string, fielddisplay(self, 'reltol', 'relative tolerance criterion')) 27 string = "%s\n%s" % (string, fielddisplay(self, 'maxiter', 'maximum number of iterations')) 28 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional requested outputs')) 29 return string 30 #}}} 31 31 32 return md.stressbalance.defaultoutputs(md)+md.thermal.defaultoutputs(md) 32 def defaultoutputs(self, md): # {{{ 33 return md.stressbalance.defaultoutputs(md) + md.thermal.defaultoutputs(md) 33 34 34 #}}} 35 def setdefaultparameters(self): # {{{ 36 37 #maximum of steady state iterations 38 self.maxiter=100 35 #}}} 36 def setdefaultparameters(self): # {{{ 37 #maximum of steady state iterations 38 self.maxiter = 100 39 #Relative tolerance for the steadystate convertgence 40 self.reltol = 0.01 41 #default output 42 self.requested_outputs = ['default'] 43 return self 44 #}}} 39 45 40 #Relative tolerance for the steadystate convertgence 41 self.reltol=0.01 46 def checkconsistency(self, md, solution, analyses): # {{{ 47 #Early return 48 if not solution == 'SteadystateSolution': 49 return md 42 50 43 #default output 44 self.requested_outputs=['default'] 45 return self 46 #}}} 47 def checkconsistency(self,md,solution,analyses): # {{{ 51 if not md.timestepping.time_step == 0: 52 md.checkmessage("for a steadystate computation, timestepping.time_step must be zero.") 48 53 49 #Early return 50 if not solution=='SteadystateSolution': 51 return md 54 if np.isnan(md.stressbalance.reltol): 55 md.checkmessage("for a steadystate computation, stressbalance.reltol (relative convergence criterion) must be defined!") 52 56 53 if not md.timestepping.time_step==0: 54 md.checkmessage("for a steadystate computation, timestepping.time_step must be zero.") 57 md = checkfield(md, 'fieldname', 'steadystate.requested_outputs', 'stringrow', 1) 55 58 56 if np.isnan(md.stressbalance.reltol): 57 md.checkmessage("for a steadystate computation, stressbalance.reltol (relative convergence criterion) must be defined!") 59 return md 60 # }}} 58 61 59 md = checkfield(md,'fieldname','steadystate.requested_outputs','stringrow',1) 62 def marshall(self, prefix, md, fid): # {{{ 63 WriteData(fid, prefix, 'object', self, 'fieldname', 'reltol', 'format', 'Double') 64 WriteData(fid, prefix, 'object', self, 'fieldname', 'maxiter', 'format', 'Integer') 60 65 61 return md 62 # }}} 63 def marshall(self,prefix,md,fid): # {{{ 64 WriteData(fid,prefix,'object',self,'fieldname','reltol','format','Double') 65 WriteData(fid,prefix,'object',self,'fieldname','maxiter','format','Integer') 66 67 #process requested outputs 68 outputs = self.requested_outputs 69 indices = [i for i, x in enumerate(outputs) if x == 'default'] 70 if len(indices) > 0: 71 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 72 outputs =outputscopy 73 WriteData(fid,prefix,'data',outputs,'name','md.steadystate.requested_outputs','format','StringArray') 74 # }}} 66 #process requested outputs 67 outputs = self.requested_outputs 68 indices = [i for i, x in enumerate(outputs) if x == 'default'] 69 if len(indices) > 0: 70 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 71 outputs = outputscopy 72 WriteData(fid, prefix, 'data', outputs, 'name', 'md.steadystate.requested_outputs', 'format', 'StringArray') 73 # }}} -
issm/trunk-jpl/src/m/classes/stressbalance.py
r23716 r24213 1 1 import numpy as np 2 2 import sys 3 import copy4 3 from project3d import project3d 5 4 from fielddisplay import fielddisplay … … 8 7 import MatlabFuncs as m 9 8 9 10 10 class stressbalance(object): 11 12 11 """ 12 STRESSBALANCE class definition 13 13 14 15 stressbalance=stressbalance(); 16 14 Usage: 15 stressbalance = stressbalance() 16 """ 17 17 18 def __init__(self):# {{{19 self.spcvx= float('NaN')20 self.spcvy= float('NaN')21 self.spcvz= float('NaN')22 self.restol= 023 self.reltol= 024 self.abstol= 025 self.isnewton= 026 self.FSreconditioning= 027 self.icefront= float('NaN')28 self.maxiter= 029 self.shelf_dampening= 030 self.vertex_pairing= float('NaN')31 self.penalty_factor= float('NaN')32 self.rift_penalty_lock= float('NaN')33 34 self.referential= float('NaN')35 self.loadingforce= float('NaN')36 self.requested_outputs= []18 def __init__(self): # {{{ 19 self.spcvx = float('NaN') 20 self.spcvy = float('NaN') 21 self.spcvz = float('NaN') 22 self.restol = 0 23 self.reltol = 0 24 self.abstol = 0 25 self.isnewton = 0 26 self.FSreconditioning = 0 27 self.icefront = float('NaN') 28 self.maxiter = 0 29 self.shelf_dampening = 0 30 self.vertex_pairing = float('NaN') 31 self.penalty_factor = float('NaN') 32 self.rift_penalty_lock = float('NaN') 33 self.rift_penalty_threshold = 0 34 self.referential = float('NaN') 35 self.loadingforce = float('NaN') 36 self.requested_outputs = [] 37 37 38 39 38 #set defaults 39 self.setdefaultparameters() 40 40 41 #}}} 42 def __repr__(self): # {{{ 43 44 string=' StressBalance solution parameters:' 45 string="%s\n%s"%(string,' Convergence criteria:') 46 string="%s\n%s"%(string,fielddisplay(self,'restol','mechanical equilibrium residual convergence criterion')) 47 string="%s\n%s"%(string,fielddisplay(self,'reltol','velocity relative convergence criterion, NaN: not applied')) 48 string="%s\n%s"%(string,fielddisplay(self,'abstol','velocity absolute convergence criterion, NaN: not applied')) 49 string="%s\n%s"%(string,fielddisplay(self,'isnewton',"0: Picard's fixed point, 1: Newton's method, 2: hybrid")) 50 string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of nonlinear iterations')) 41 #}}} 42 def __repr__(self): # {{{ 51 43 52 string="%s\n%s"%(string,'\n boundary conditions:') 53 string="%s\n%s"%(string,fielddisplay(self,'spcvx','x-axis velocity constraint (NaN means no constraint) [m/yr]')) 54 string="%s\n%s"%(string,fielddisplay(self,'spcvy','y-axis velocity constraint (NaN means no constraint) [m/yr]')) 55 string="%s\n%s"%(string,fielddisplay(self,'spcvz','z-axis velocity constraint (NaN means no constraint) [m/yr]')) 56 string="%s\n%s"%(string,fielddisplay(self,'icefront','segments on ice front list (last column 0: Air, 1: Water, 2: Ice')) 44 string = ' StressBalance solution parameters:' 45 string = "%s\n%s" % (string, ' Convergence criteria:') 46 string = "%s\n%s" % (string, fielddisplay(self, 'restol', 'mechanical equilibrium residual convergence criterion')) 47 string = "%s\n%s" % (string, fielddisplay(self, 'reltol', 'velocity relative convergence criterion, NaN: not applied')) 48 string = "%s\n%s" % (string, fielddisplay(self, 'abstol', 'velocity absolute convergence criterion, NaN: not applied')) 49 string = "%s\n%s" % (string, fielddisplay(self, 'isnewton', "0: Picard's fixed point, 1: Newton's method, 2: hybrid")) 50 string = "%s\n%s" % (string, fielddisplay(self, 'maxiter', 'maximum number of nonlinear iterations')) 57 51 58 string="%s\n%s"%(string,'\n Rift options:') 59 string="%s\n%s"%(string,fielddisplay(self,'rift_penalty_threshold','threshold for instability of mechanical constraints')) 60 string="%s\n%s"%(string,fielddisplay(self,'rift_penalty_lock','number of iterations before rift penalties are locked')) 52 string = "%s\n%s" % (string, '\n boundary conditions:') 53 string = "%s\n%s" % (string, fielddisplay(self, 'spcvx', 'x - axis velocity constraint (NaN means no constraint) [m / yr]')) 54 string = "%s\n%s" % (string, fielddisplay(self, 'spcvy', 'y - axis velocity constraint (NaN means no constraint) [m / yr]')) 55 string = "%s\n%s" % (string, fielddisplay(self, 'spcvz', 'z - axis velocity constraint (NaN means no constraint) [m / yr]')) 56 string = "%s\n%s" % (string, fielddisplay(self, 'icefront', 'segments on ice front list (last column 0: Air, 1: Water, 2: Ice')) 61 57 62 string="%s\n%s"%(string,'\n Penaltyoptions:')63 string="%s\n%s"%(string,fielddisplay(self,'penalty_factor','offset used by penalties: penalty = Kmax*10^offset'))64 string="%s\n%s"%(string,fielddisplay(self,'vertex_pairing','pairs of vertices that are penalized'))58 string = "%s\n%s" % (string, '\n Rift options:') 59 string = "%s\n%s" % (string, fielddisplay(self, 'rift_penalty_threshold', 'threshold for instability of mechanical constraints')) 60 string = "%s\n%s" % (string, fielddisplay(self, 'rift_penalty_lock', 'number of iterations before rift penalties are locked')) 65 61 66 string="%s\n%s"%(string,'\n Other:') 67 string="%s\n%s"%(string,fielddisplay(self,'shelf_dampening','use dampening for floating ice ? Only for FS model')) 68 string="%s\n%s"%(string,fielddisplay(self,'FSreconditioning','multiplier for incompressibility equation. Only for FS model')) 69 string="%s\n%s"%(string,fielddisplay(self,'referential','local referential')) 70 string="%s\n%s"%(string,fielddisplay(self,'loadingforce','loading force applied on each point [N/m^3]')) 71 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 62 string = "%s\n%s" % (string, '\n Penalty options:') 63 string = "%s\n%s" % (string, fielddisplay(self, 'penalty_factor', 'offset used by penalties: penalty = Kmax * 10^offset')) 64 string = "%s\n%s" % (string, fielddisplay(self, 'vertex_pairing', 'pairs of vertices that are penalized')) 72 65 73 return string 74 #}}} 75 def extrude(self,md): # {{{ 76 self.spcvx=project3d(md,'vector',self.spcvx,'type','node') 77 self.spcvy=project3d(md,'vector',self.spcvy,'type','node') 78 self.spcvz=project3d(md,'vector',self.spcvz,'type','node') 79 self.referential=project3d(md,'vector',self.referential,'type','node') 80 self.loadingforce=project3d(md,'vector',self.loadingforce,'type','node') 66 string = "%s\n%s" % (string, '\n Other:') 67 string = "%s\n%s" % (string, fielddisplay(self, 'shelf_dampening', 'use dampening for floating ice ? Only for FS model')) 68 string = "%s\n%s" % (string, fielddisplay(self, 'FSreconditioning', 'multiplier for incompressibility equation. Only for FS model')) 69 string = "%s\n%s" % (string, fielddisplay(self, 'referential', 'local referential')) 70 string = "%s\n%s" % (string, fielddisplay(self, 'loadingforce', 'loading force applied on each point [N / m^3]')) 71 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 81 72 82 return self 83 #}}} 84 def setdefaultparameters(self): # {{{ 85 #maximum of non-linear iterations. 86 self.maxiter=100 73 return string 74 #}}} 87 75 88 #Convergence criterion: absolute, relative and residual 89 self.restol=10**-4 90 self.reltol=0.01 91 self.abstol=10 76 def extrude(self, md): # {{{ 77 self.spcvx = project3d(md, 'vector', self.spcvx, 'type', 'node') 78 self.spcvy = project3d(md, 'vector', self.spcvy, 'type', 'node') 79 self.spcvz = project3d(md, 'vector', self.spcvz, 'type', 'node') 80 self.referential = project3d(md, 'vector', self.referential, 'type', 'node') 81 self.loadingforce = project3d(md, 'vector', self.loadingforce, 'type', 'node') 92 82 93 self.FSreconditioning=10**13 94 self.shelf_dampening=0 83 return self 84 #}}} 95 85 96 #Penalty factor applied kappa=max(stiffness matrix)*10^penalty_factor 97 self.penalty_factor=3 86 def setdefaultparameters(self): # {{{ 87 #maximum of non - linear iterations. 88 self.maxiter = 100 89 #Convergence criterion: absolute, relative and residual 90 self.restol = 10**- 4 91 self.reltol = 0.01 92 self.abstol = 10 93 self.FSreconditioning = 10**13 94 self.shelf_dampening = 0 95 #Penalty factor applied kappa = max(stiffness matrix) * 10^penalty_factor 96 self.penalty_factor = 3 97 #Stop the iterations of rift if below a threshold 98 self.rift_penalty_threshold = 0 99 #in some solutions, it might be needed to stop a run when only 100 #a few constraints remain unstable. For thermal computation, this 101 #parameter is often used. 102 self.rift_penalty_lock = 10 103 #output default: 104 self.requested_outputs = ['default'] 98 105 99 #Stop the iterations of rift if below a threshold 100 self.rift_penalty_threshold=0 106 return self 107 #}}} 101 108 102 #in some solutions, it might be needed to stop a run when only 103 #a few constraints remain unstable. For thermal computation, this 104 #parameter is often used. 105 self.rift_penalty_lock=10 109 def defaultoutputs(self, md): # {{{ 110 if md.mesh.dimension() == 3: 111 list = ['Vx', 'Vy', 'Vz', 'Vel', 'Pressure'] 112 else: 113 list = ['Vx', 'Vy', 'Vel', 'Pressure'] 114 return list 106 115 107 #output default: 108 self.requested_outputs=['default'] 116 #}}} 109 117 110 return self 111 #}}} 112 def defaultoutputs(self,md): # {{{ 118 def checkconsistency(self, md, solution, analyses): # {{{ 119 #Early return 120 if 'StressbalanceAnalysis' not in analyses: 121 return md 113 122 114 if md.mesh.dimension()==3: 115 list = ['Vx','Vy','Vz','Vel','Pressure'] 116 else: 117 list = ['Vx','Vy','Vel','Pressure'] 118 return list 123 md = checkfield(md, 'fieldname', 'stressbalance.spcvx', 'Inf', 1, 'timeseries', 1) 124 md = checkfield(md, 'fieldname', 'stressbalance.spcvy', 'Inf', 1, 'timeseries', 1) 125 if m.strcmp(md.mesh.domaintype(), '3D'): 126 md = checkfield(md, 'fieldname', 'stressbalance.spcvz', 'Inf', 1, 'timeseries', 1) 127 md = checkfield(md, 'fieldname', 'stressbalance.restol', 'size', [1], '>', 0) 128 md = checkfield(md, 'fieldname', 'stressbalance.reltol', 'size', [1]) 129 md = checkfield(md, 'fieldname', 'stressbalance.abstol', 'size', [1]) 130 md = checkfield(md, 'fieldname', 'stressbalance.isnewton', 'numel', [1], 'values', [0, 1, 2]) 131 md = checkfield(md, 'fieldname', 'stressbalance.FSreconditioning', 'size', [1], 'NaN', 1, 'Inf', 1) 132 md = checkfield(md, 'fieldname', 'stressbalance.maxiter', 'size', [1], '>=', 1) 133 md = checkfield(md, 'fieldname', 'stressbalance.referential', 'size', [md.mesh.numberofvertices, 6]) 134 md = checkfield(md, 'fieldname', 'stressbalance.loadingforce', 'size', [md.mesh.numberofvertices, 3]) 135 md = checkfield(md, 'fieldname', 'stressbalance.requested_outputs', 'stringrow', 1) 119 136 120 #}}} 121 def checkconsistency(self,md,solution,analyses): # {{{ 137 #singular solution 138 # if ~any((~isnan(md.stressbalance.spcvx) + ~isnan(md.stressbalance.spcvy)) == 2), 139 if not np.any(np.logical_and(np.logical_not(np.isnan(md.stressbalance.spcvx)), np.logical_not(np.isnan(md.stressbalance.spcvy)))): 140 print("\n !!! Warning: no spc applied, model might not be well posed if no basal friction is applied, check for solution crash\n") 141 #CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES 142 # if any(sum(isnan(md.stressbalance.referential), 2)~=0 & sum(isnan(md.stressbalance.referential), 2)~=6), 143 if np.any(np.logical_and(np.sum(np.isnan(md.stressbalance.referential), axis=1) != 0, np.sum(np.isnan(md.stressbalance.referential), axis=1) != 6)): 144 md.checkmessage("Each line of stressbalance.referential should contain either only NaN values or no NaN values") 145 #CHECK THAT THE TWO VECTORS PROVIDED ARE ORTHOGONAL 146 # if any(sum(isnan(md.stressbalance.referential), 2) == 0), 147 if np.any(np.sum(np.isnan(md.stressbalance.referential), axis=1) == 0): 148 pos = [i for i, item in enumerate(np.sum(np.isnan(md.stressbalance.referential), axis=1)) if item == 0] 149 # np.inner (and np.dot) calculate all the dot product permutations, resulting in a full matrix multiply 150 # if np.any(np.abs(np.inner(md.stressbalance.referential[pos, 0:2], md.stressbalance.referential[pos, 3:5]).diagonal()) > sys.float_info.epsilon): 151 # md.checkmessage("Vectors in stressbalance.referential (columns 1 to 3 and 4 to 6) must be orthogonal") 152 for item in md.stressbalance.referential[pos, :]: 153 if np.abs(np.inner(item[0:2], item[3:5])) > sys.float_info.epsilon: 154 md.checkmessage("Vectors in stressbalance.referential (columns 1 to 3 and 4 to 6) must be orthogonal") 155 #CHECK THAT NO rotation specified for FS Grounded ice at base 156 if m.strcmp(md.mesh.domaintype(), '3D') and md.flowequation.isFS: 157 pos = np.nonzero(np.logical_and(md.mask.groundedice_levelset, md.mesh.vertexonbase)) 158 if np.any(np.logical_not(np.isnan(md.stressbalance.referential[pos, :]))): 159 md.checkmessage("no referential should be specified for basal vertices of grounded ice") 122 160 123 #Early return 124 if 'StressbalanceAnalysis' not in analyses: 125 return md 161 return md 162 # }}} 126 163 127 md = checkfield(md,'fieldname','stressbalance.spcvx','Inf',1,'timeseries',1) 128 md = checkfield(md,'fieldname','stressbalance.spcvy','Inf',1,'timeseries',1) 129 if m.strcmp(md.mesh.domaintype(),'3D'): 130 md = checkfield(md,'fieldname','stressbalance.spcvz','Inf',1,'timeseries',1) 131 md = checkfield(md,'fieldname','stressbalance.restol','size',[1],'>',0) 132 md = checkfield(md,'fieldname','stressbalance.reltol','size',[1]) 133 md = checkfield(md,'fieldname','stressbalance.abstol','size',[1]) 134 md = checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0,1,2]) 135 md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1],'NaN',1,'Inf',1) 136 md = checkfield(md,'fieldname','stressbalance.maxiter','size',[1],'>=',1) 137 md = checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices,6]) 138 md = checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices,3]) 139 md = checkfield(md,'fieldname','stressbalance.requested_outputs','stringrow',1); 164 def marshall(self, prefix, md, fid): # {{{ 140 165 141 #singular solution 142 # if ~any((~isnan(md.stressbalance.spcvx)+~isnan(md.stressbalance.spcvy))==2), 143 if not np.any(np.logical_and(np.logical_not(np.isnan(md.stressbalance.spcvx)),np.logical_not(np.isnan(md.stressbalance.spcvy)))): 144 print("\n !!! Warning: no spc applied, model might not be well posed if no basal friction is applied, check for solution crash\n") 145 #CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES 146 # if any(sum(isnan(md.stressbalance.referential),2)~=0 & sum(isnan(md.stressbalance.referential),2)~=6), 147 if np.any(np.logical_and(np.sum(np.isnan(md.stressbalance.referential),axis=1)!=0,np.sum(np.isnan(md.stressbalance.referential),axis=1)!=6)): 148 md.checkmessage("Each line of stressbalance.referential should contain either only NaN values or no NaN values") 149 #CHECK THAT THE TWO VECTORS PROVIDED ARE ORTHOGONAL 150 # if any(sum(isnan(md.stressbalance.referential),2)==0), 151 if np.any(np.sum(np.isnan(md.stressbalance.referential),axis=1)==0): 152 pos=[i for i,item in enumerate(np.sum(np.isnan(md.stressbalance.referential),axis=1)) if item==0] 153 # np.inner (and np.dot) calculate all the dot product permutations, resulting in a full matrix multiply 154 # if np.any(np.abs(np.inner(md.stressbalance.referential[pos,0:2],md.stressbalance.referential[pos,3:5]).diagonal())>sys.float_info.epsilon): 155 # md.checkmessage("Vectors in stressbalance.referential (columns 1 to 3 and 4 to 6) must be orthogonal") 156 for item in md.stressbalance.referential[pos,:]: 157 if np.abs(np.inner(item[0:2],item[3:5]))>sys.float_info.epsilon: 158 md.checkmessage("Vectors in stressbalance.referential (columns 1 to 3 and 4 to 6) must be orthogonal") 159 #CHECK THAT NO rotation specified for FS Grounded ice at base 160 if m.strcmp(md.mesh.domaintype(),'3D') and md.flowequation.isFS: 161 pos=np.nonzero(np.logical_and(md.mask.groundedice_levelset,md.mesh.vertexonbase)) 162 if np.any(np.logical_not(np.isnan(md.stressbalance.referential[pos,:]))): 163 md.checkmessage("no referential should be specified for basal vertices of grounded ice") 166 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'vertex_pairing', 'format', 'DoubleMat', 'mattype', 3) 164 167 165 return md 166 # }}} 167 def marshall(self,prefix,md,fid): # {{{ 168 yts = md.constants.yts 168 169 169 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','vertex_pairing','format','DoubleMat','mattype',3) 170 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'spcvx', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 171 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'spcvy', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 172 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'spcvz', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 173 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'restol', 'format', 'Double') 174 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'reltol', 'format', 'Double') 175 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'abstol', 'format', 'Double', 'scale', 1. / yts) 176 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'isnewton', 'format', 'Integer') 177 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'FSreconditioning', 'format', 'Double') 178 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'maxiter', 'format', 'Integer') 179 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'shelf_dampening', 'format', 'Integer') 180 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'penalty_factor', 'format', 'Double') 181 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'rift_penalty_lock', 'format', 'Integer') 182 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'rift_penalty_threshold', 'format', 'Integer') 183 WriteData(fid, prefix, 'object', self, 'class', 'stressbalance', 'fieldname', 'referential', 'format', 'DoubleMat', 'mattype', 1) 170 184 171 yts=md.constants.yts 185 if isinstance(self.loadingforce, (list, tuple, np.ndarray)) and np.size(self.loadingforce, 1) == 3: 186 WriteData(fid, prefix, 'data', self.loadingforce[:, 0], 'format', 'DoubleMat', 'mattype', 1, 'name', 'md.stressbalance.loadingforcex') 187 WriteData(fid, prefix, 'data', self.loadingforce[:, 1], 'format', 'DoubleMat', 'mattype', 1, 'name', 'md.stressbalance.loadingforcey') 188 WriteData(fid, prefix, 'data', self.loadingforce[:, 2], 'format', 'DoubleMat', 'mattype', 1, 'name', 'md.stressbalance.loadingforcez') 172 189 173 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','spcvx','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 174 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','spcvy','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 175 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','spcvz','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 176 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','restol','format','Double') 177 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','reltol','format','Double') 178 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','abstol','format','Double','scale',1./yts) 179 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','isnewton','format','Integer') 180 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','FSreconditioning','format','Double') 181 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','maxiter','format','Integer') 182 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','shelf_dampening','format','Integer') 183 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','penalty_factor','format','Double') 184 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer') 185 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer') 186 WriteData(fid,prefix,'object',self,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1) 187 188 if isinstance(self.loadingforce, (list, tuple, np.ndarray)) and np.size(self.loadingforce,1) == 3: 189 WriteData(fid,prefix,'data',self.loadingforce[:,0],'format','DoubleMat','mattype',1,'name','md.stressbalance.loadingforcex') 190 WriteData(fid,prefix,'data',self.loadingforce[:,1],'format','DoubleMat','mattype',1,'name','md.stressbalance.loadingforcey') 191 WriteData(fid,prefix,'data',self.loadingforce[:,2],'format','DoubleMat','mattype',1,'name','md.stressbalance.loadingforcez') 192 193 #process requested outputs 194 outputs = self.requested_outputs 195 indices = [i for i, x in enumerate(outputs) if x == 'default'] 196 if len(indices) > 0: 197 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 198 outputs =outputscopy 199 WriteData(fid,prefix,'data',outputs,'name','md.stressbalance.requested_outputs','format','StringArray') 200 # }}} 190 #process requested outputs 191 outputs = self.requested_outputs 192 indices = [i for i, x in enumerate(outputs) if x == 'default'] 193 if len(indices) > 0: 194 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 195 outputs = outputscopy 196 WriteData(fid, prefix, 'data', outputs, 'name', 'md.stressbalance.requested_outputs', 'format', 'StringArray') 197 # }}} -
issm/trunk-jpl/src/m/classes/taoinversion.py
r23365 r24213 3 3 from WriteData import WriteData 4 4 from checkfield import checkfield 5 from fielddisplay import fielddisplay6 5 from IssmConfig import IssmConfig 7 6 from marshallcostfunctions import marshallcostfunctions … … 9 8 from supportedcostfunctions import * 10 9 10 11 11 class taoinversion(object): 12 13 self.iscontrol= 014 self.incomplete_adjoint= 015 self.control_parameters= float('NaN')16 self.maxsteps= 017 self.maxiter= 018 self.fatol= 019 self.frtol= 020 self.gatol= 021 self.grtol= 022 self.gttol= 023 self.algorithm= ''24 self.cost_functions= float('NaN')25 26 self.min_parameters= float('NaN')27 self.max_parameters= float('NaN')28 self.vx_obs= float('NaN')29 self.vy_obs= float('NaN')30 self.vz_obs= float('NaN')31 self.vel_obs= float('NaN')32 self.thickness_obs= float('NaN')33 self.surface_obs= float('NaN')34 12 def __init__(self): 13 self.iscontrol = 0 14 self.incomplete_adjoint = 0 15 self.control_parameters = float('NaN') 16 self.maxsteps = 0 17 self.maxiter = 0 18 self.fatol = 0 19 self.frtol = 0 20 self.gatol = 0 21 self.grtol = 0 22 self.gttol = 0 23 self.algorithm = '' 24 self.cost_functions = float('NaN') 25 self.cost_functions_coefficients = float('NaN') 26 self.min_parameters = float('NaN') 27 self.max_parameters = float('NaN') 28 self.vx_obs = float('NaN') 29 self.vy_obs = float('NaN') 30 self.vz_obs = float('NaN') 31 self.vel_obs = float('NaN') 32 self.thickness_obs = float('NaN') 33 self.surface_obs = float('NaN') 34 self.setdefaultparameters() 35 35 36 def __repr__(self): 37 string = ' taoinversion parameters:' 38 string = "%s\n\%s"%(string, fieldstring(self,'iscontrol','is inversion activated?')) 39 string="%s\n%s"%(string,fieldstring(self,'mantle_viscosity','mantle viscosity constraints (NaN means no constraint) (Pa s)')) 40 string="%s\n%s"%(string,fieldstring(self,'lithosphere_thickness','lithosphere thickness constraints (NaN means no constraint) (m)')) 41 string="%s\n%s"%(string,fieldstring(self,'cross_section_shape',"1: square-edged, 2: elliptical-edged surface")) 42 string="%s\n%s"%(string,fieldstring(self,'incomplete_adjoint','1: linear viscosity, 0: non-linear viscosity')) 43 string="%s\n%s"%(string,fieldstring(self,'control_parameters','ex: {''FrictionCoefficient''}, or {''MaterialsRheologyBbar''}')) 44 string="%s\n%s"%(string,fieldstring(self,'maxsteps','maximum number of iterations (gradient computation)')) 45 string="%s\n%s"%(string,fieldstring(self,'maxiter','maximum number of Function evaluation (forward run)')) 46 string="%s\n%s"%(string,fieldstring(self,'fatol','convergence criterion: f(X)-f(X*) (X: current iteration, X*: "true" solution, f: cost function)')) 47 string="%s\n%s"%(string,fieldstring(self,'frtol','convergence criterion: |f(X)-f(X*)|/|f(X*)|')) 48 string="%s\n%s"%(string,fieldstring(self,'gatol','convergence criterion: ||g(X)|| (g: gradient of the cost function)')) 49 string="%s\n%s"%(string,fieldstring(self,'grtol','convergence criterion: ||g(X)||/|f(X)|')) 50 string="%s\n%s"%(string,fieldstring(self,'gttol','convergence criterion: ||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)')) 51 string="%s\n%s"%(string,fieldstring(self,'algorithm','minimization algorithm: ''tao_blmvm'', ''tao_cg'', ''tao_lmvm''')) 52 string="%s\n%s"%(string,fieldstring(self,'cost_functions','indicate the type of response for each optimization step')) 53 string="%s\n%s"%(string,fieldstring(self,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter')) 54 string="%s\n%s"%(string,fieldstring(self,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex')) 55 string="%s\n%s"%(string,fieldstring(self,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex')) 56 string="%s\n%s"%(string,fieldstring(self,'vx_obs','observed velocity x component [m/yr]')) 57 string="%s\n%s"%(string,fieldstring(self,'vy_obs','observed velocity y component [m/yr]')) 58 string="%s\n%s"%(string,fieldstring(self,'vel_obs','observed velocity magnitude [m/yr]')) 59 string="%s\n%s"%(string,fieldstring(self,'thickness_obs','observed thickness [m]')) 60 string="%s\n%s"%(string,fieldstring(self,'surface_obs','observed surface elevation [m]')) 61 string="%s\n%s"%(string,'Available cost functions:') 62 string="%s\n%s"%(string, ' 101: SurfaceAbsVelMisfit') 63 string="%s\n%s"%(string, ' 102: SurfaceRelVelMisfit') 64 string="%s\n%s"%(string, ' 103: SurfaceLogVelMisfit') 65 string="%s\n%s"%(string, ' 104: SurfaceLogVxVyMisfit') 66 string="%s\n%s"%(string, ' 105: SurfaceAverageVelMisfit') 67 string="%s\n%s"%(string, ' 201: ThicknessAbsMisfit') 68 string="%s\n%s"%(string, ' 501: DragCoefficientAbsGradient') 69 string="%s\n%s"%(string, ' 502: RheologyBbarAbsGradient') 70 string="%s\n%s"%(string, ' 503: ThicknessAbsGradient') 71 return string 72 def setdefaultparameters(self): 36 def __repr__(self): 37 string = ' taoinversion parameters:' 38 string = "%s\n%s" % (string, fieldstring(self, 'iscontrol', 'is inversion activated?')) 39 string = "%s\n%s" % (string, fieldstring(self, 'mantle_viscosity', 'mantle viscosity constraints (NaN means no constraint) (Pa s)')) 40 string = "%s\n%s" % (string, fieldstring(self, 'lithosphere_thickness', 'lithosphere thickness constraints (NaN means no constraint) (m)')) 41 string = "%s\n%s" % (string, fieldstring(self, 'cross_section_shape', "1: square-edged, 2: elliptical - edged surface")) 42 string = "%s\n%s" % (string, fieldstring(self, 'incomplete_adjoint', '1: linear viscosity, 0: non - linear viscosity')) 43 string = "%s\n%s" % (string, fieldstring(self, 'control_parameters', 'ex: {''FrictionCoefficient''}, or {''MaterialsRheologyBbar''}')) 44 string = "%s\n%s" % (string, fieldstring(self, 'maxsteps', 'maximum number of iterations (gradient computation)')) 45 string = "%s\n%s" % (string, fieldstring(self, 'maxiter', 'maximum number of Function evaluation (forward run)')) 46 string = "%s\n%s" % (string, fieldstring(self, 'fatol', 'convergence criterion: f(X) - f(X * ) (X: current iteration, X * : "true" solution, f: cost function)')) 47 string = "%s\n%s" % (string, fieldstring(self, 'frtol', 'convergence criterion: |f(X) - f(X * )| / |f(X * )|')) 48 string = "%s\n%s" % (string, fieldstring(self, 'gatol', 'convergence criterion: ||g(X)|| (g: gradient of the cost function)')) 49 string = "%s\n%s" % (string, fieldstring(self, 'grtol', 'convergence criterion: ||g(X)|| / |f(X)|')) 50 string = "%s\n%s" % (string, fieldstring(self, 'gttol', 'convergence criterion: ||g(X)|| / ||g(X0)|| (g(X0): gradient at initial guess X0)')) 51 string = "%s\n%s" % (string, fieldstring(self, 'algorithm', 'minimization algorithm: ''tao_blmvm'', ''tao_cg'', ''tao_lmvm''')) 52 string = "%s\n%s" % (string, fieldstring(self, 'cost_functions', 'indicate the type of response for each optimization step')) 53 string = "%s\n%s" % (string, fieldstring(self, 'cost_functions_coefficients', 'cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter')) 54 string = "%s\n%s" % (string, fieldstring(self, 'min_parameters', 'absolute minimum acceptable value of the inversed parameter on each vertex')) 55 string = "%s\n%s" % (string, fieldstring(self, 'max_parameters', 'absolute maximum acceptable value of the inversed parameter on each vertex')) 56 string = "%s\n%s" % (string, fieldstring(self, 'vx_obs', 'observed velocity x component [m / yr]')) 57 string = "%s\n%s" % (string, fieldstring(self, 'vy_obs', 'observed velocity y component [m / yr]')) 58 string = "%s\n%s" % (string, fieldstring(self, 'vel_obs', 'observed velocity magnitude [m / yr]')) 59 string = "%s\n%s" % (string, fieldstring(self, 'thickness_obs', 'observed thickness [m]')) 60 string = "%s\n%s" % (string, fieldstring(self, 'surface_obs', 'observed surface elevation [m]')) 61 string = "%s\n%s" % (string, 'Available cost functions:') 62 string = "%s\n%s" % (string, ' 101: SurfaceAbsVelMisfit') 63 string = "%s\n%s" % (string, ' 102: SurfaceRelVelMisfit') 64 string = "%s\n%s" % (string, ' 103: SurfaceLogVelMisfit') 65 string = "%s\n%s" % (string, ' 104: SurfaceLogVxVyMisfit') 66 string = "%s\n%s" % (string, ' 105: SurfaceAverageVelMisfit') 67 string = "%s\n%s" % (string, ' 201: ThicknessAbsMisfit') 68 string = "%s\n%s" % (string, ' 501: DragCoefficientAbsGradient') 69 string = "%s\n%s" % (string, ' 502: RheologyBbarAbsGradient') 70 string = "%s\n%s" % (string, ' 503: ThicknessAbsGradient') 71 return string 73 72 74 #default is incomplete adjoint for now 75 self.incomplete_adjoint=1 73 def setdefaultparameters(self): 74 #default is incomplete adjoint for now 75 self.incomplete_adjoint = 1 76 #parameter to be inferred by control methods (only 77 #drag and B are supported yet) 78 self.control_parameters = ['FrictionCoefficient'] 79 #number of iterations and steps 80 self.maxsteps = 20 81 self.maxiter = 30 82 #default tolerances 83 self.fatol = 0 84 self.frtol = 0 85 self.gatol = 0 86 self.grtol = 0 87 self.gttol = 1e-4 88 #minimization algorithm 89 PETSCMAJOR = IssmConfig('_PETSC_MAJOR_')[0] 90 PETSCMINOR = IssmConfig('_PETSC_MINOR_')[0] 91 if(PETSCMAJOR > 3 or (PETSCMAJOR == 3 and PETSCMINOR >= 5)): 92 self.algorithm = 'blmvm' 93 else: 94 self.algorithm = 'tao_blmvm' 95 #several responses can be used: 96 self.cost_functions = 101 97 return self 76 98 77 #parameter to be inferred by control methods (only 78 #drag and B are supported yet) 79 self.control_parameters=['FrictionCoefficient'] 99 def extrude(self, md): 100 self.vx_obs = project3d(md, 'vector', self.vx_obs, 'type', 'node') 101 self.vy_obs = project3d(md, 'vector', self.vy_obs, 'type', 'node') 102 self.vel_obs = project3d(md, 'vector', self.vel_obs, 'type', 'node') 103 self.thickness_obs = project3d(md, 'vector', self.thickness_obs, 'type', 'node') 80 104 81 #number of iterations and steps 82 self.maxsteps=20; 83 self.maxiter =30; 105 if numel(self.cost_functions_coefficients) > 1: 106 self.cost_functions_coefficients = project3d(md, 'vector', self.cost_functions_coefficients, 'type', 'node') 84 107 85 #default tolerances 86 self.fatol = 0; 87 self.frtol = 0; 88 self.gatol = 0; 89 self.grtol = 0; 90 self.gttol = 1e-4; 108 if numel(self.min_parameters) > 1: 109 self.min_parameters = project3d(md, 'vector', self.min_parameters, 'type', 'node') 91 110 92 #minimization algorithm 93 PETSCMAJOR = IssmConfig('_PETSC_MAJOR_')[0] 94 PETSCMINOR = IssmConfig('_PETSC_MINOR_')[0] 95 if(PETSCMAJOR>3 or (PETSCMAJOR==3 and PETSCMINOR>=5)): 96 self.algorithm = 'blmvm'; 97 else: 98 self.algorithm = 'tao_blmvm'; 111 if numel(self.max_parameters) > 1: 112 self.max_parameters = project3d(md, 'vector', self.max_parameters, 'type', 'node') 99 113 100 #several responses can be used: 101 self.cost_functions=101; 102 return self 114 return self 103 115 104 def extrude(self,md):105 self.vx_obs=project3d(md,'vector',self.vx_obs,'type','node') 106 self.vy_obs=project3d(md,'vector',self.vy_obs,'type','node') 107 self.vel_obs=project3d(md,'vector',self.vel_obs,'type','node') 108 self.thickness_obs=project3d(md,'vector',self.thickness_obs,'type','node')116 def checkconsistency(self, md, solution, analyses): 117 if not self.iscontrol: 118 return md 119 if not IssmConfig('_HAVE_TAO_')[0]: 120 md = md.checkmessage('TAO has not been installed, ISSM needs to be reconfigured and recompiled with TAO') 109 121 110 if numel(self.cost_functions_coefficients) > 1: 111 self.cost_functions_coefficients=project3d(md,'vector',self.cost_functions_coefficients,'type','node')122 num_controls = np.size(md.inversion.control_parameters) 123 num_costfunc = np.size(md.inversion.cost_functions) 112 124 113 if numel(self.min_parameters) > 1: 114 self.min_parameters=project3d(md,'vector',self.min_parameters,'type','node') 125 md = checkfield(md, 'fieldname', 'inversion.iscontrol', 'values', [0, 1]) 126 md = checkfield(md, 'fieldname', 'inversion.incomplete_adjoint', 'values', [0, 1]) 127 md = checkfield(md, 'fieldname', 'inversion.control_parameters', 'cell', 1, 'values', supportedcontrols()) 128 md = checkfield(md, 'fieldname', 'inversion.maxsteps', 'numel', 1, '>=', 0) 129 md = checkfield(md, 'fieldname', 'inversion.maxiter', 'numel', 1, '>=', 0) 130 md = checkfield(md, 'fieldname', 'inversion.fatol', 'numel', 1, '>=', 0) 131 md = checkfield(md, 'fieldname', 'inversion.frtol', 'numel', 1, '>=', 0) 132 md = checkfield(md, 'fieldname', 'inversion.gatol', 'numel', 1, '>=', 0) 133 md = checkfield(md, 'fieldname', 'inversion.grtol', 'numel', 1, '>=', 0) 134 md = checkfield(md, 'fieldname', 'inversion.gttol', 'numel', 1, '>=', 0) 115 135 116 if numel(self.max_parameters)>1: 117 self.max_parameters=project3d(md,'vector',self.max_parameters,'type','node') 136 PETSCMAJOR = IssmConfig('_PETSC_MAJOR_')[0] 137 PETSCMINOR = IssmConfig('_PETSC_MINOR_')[0] 138 if(PETSCMAJOR > 3 or (PETSCMAJOR == 3 and PETSCMINOR >= 5)): 139 md = checkfield(md, 'fieldname', 'inversion.algorithm', 'values', ['blmvm', 'cg', 'lmvm']) 140 else: 141 md = checkfield(md, 'fieldname', 'inversion.algorithm', 'values', ['tao_blmvm', 'tao_cg', 'tao_lmvm']) 118 142 119 return self 143 md = checkfield(md, 'fieldname', 'inversion.cost_functions', 'size', [num_costfunc], 'values', supportedcostfunctions()) 144 md = checkfield(md, 'fieldname', 'inversion.cost_functions_coefficients', 'size', [md.mesh.numberofvertices, num_costfunc], '>=', 0) 145 md = checkfield(md, 'fieldname', 'inversion.min_parameters', 'size', [md.mesh.numberofvertices, num_controls]) 146 md = checkfield(md, 'fieldname', 'inversion.max_parameters', 'size', [md.mesh.numberofvertices, num_controls]) 120 147 121 def checkconsistency(self,md,solution,analyses): 122 if not self.iscontrol: 123 return md 124 if not IssmConfig('_HAVE_TAO_')[0]: 125 md = md.checkmessage('TAO has not been installed, ISSM needs to be reconfigured and recompiled with TAO') 148 if solution == 'BalancethicknessSolution': 149 md = checkfield(md, 'fieldname', 'inversion.thickness_obs', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 150 elif solution == 'BalancethicknessSoftSolution': 151 md = checkfield(md, 'fieldname', 'inversion.thickness_obs', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 152 else: 153 md = checkfield(md, 'fieldname', 'inversion.vx_obs', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 154 md = checkfield(md, 'fieldname', 'inversion.vy_obs', 'size', [md.mesh.numberofvertices], 'NaN', 1, 'Inf', 1) 126 155 156 def marshall(self, prefix, md, fid): 127 157 128 num_controls= np.size(md.inversion.control_parameters) 129 num_costfunc= np.size(md.inversion.cost_functions) 158 yts = md.constants.yts 159 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'iscontrol', 'format', 'Boolean') 160 WriteData(fid, prefix, 'name', 'md.inversion.type', 'data', 1, 'format', 'Integer') 161 if not self.iscontrol: 162 return 163 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'incomplete_adjoint', 'format', 'Boolean') 164 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'maxsteps', 'format', 'Integer') 165 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'maxiter', 'format', 'Integer') 166 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'fatol', 'format', 'Double') 167 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'frtol', 'format', 'Double') 168 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'gatol', 'format', 'Double') 169 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'grtol', 'format', 'Double') 170 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'gttol', 'format', 'Double') 171 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'algorithm', 'format', 'String') 172 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'cost_functions_coefficients', 'format', 'DoubleMat', 'mattype', 1) 173 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'min_parameters', 'format', 'DoubleMat', 'mattype', 3) 174 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'max_parameters', 'format', 'DoubleMat', 'mattype', 3) 175 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'vx_obs', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 176 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'vy_obs', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 177 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'vz_obs', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts) 178 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'thickness_obs', 'format', 'DoubleMat', 'mattype', 1) 179 WriteData(fid, prefix, 'object', self, 'class', 'inversion', 'fieldname', 'surface_obs', 'format', 'DoubleMat', 'mattype', 1) 130 180 131 md = checkfield(md,'fieldname','inversion.iscontrol','values',[0, 1]) 132 md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0,1]) 133 md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols()) 134 md = checkfield(md,'fieldname','inversion.maxsteps','numel',1,'>=',0) 135 md = checkfield(md,'fieldname','inversion.maxiter','numel',1,'>=',0) 136 md = checkfield(md,'fieldname','inversion.fatol','numel',1,'>=',0) 137 md = checkfield(md,'fieldname','inversion.frtol','numel',1,'>=',0) 138 md = checkfield(md,'fieldname','inversion.gatol','numel',1,'>=',0) 139 md = checkfield(md,'fieldname','inversion.grtol','numel',1,'>=',0) 140 md = checkfield(md,'fieldname','inversion.gttol','numel',1,'>=',0) 181 #process control parameters 182 num_control_parameters = np.size(self.control_parameters) 183 WriteData(fid, prefix, 'object', self, 'fieldname', 'control_parameters', 'format', 'StringArray') 184 WriteData(fid, prefix, 'data', num_control_parameters, 'name', 'md.inversion.num_control_parameters', 'format', 'Integer') 141 185 142 143 PETSCMAJOR = IssmConfig('_PETSC_MAJOR_')[0] 144 PETSCMINOR = IssmConfig('_PETSC_MINOR_')[0] 145 if(PETSCMAJOR>3 or (PETSCMAJOR==3 and PETSCMINOR>=5)): 146 md = checkfield(md,'fieldname','inversion.algorithm','values',['blmvm','cg','lmvm']) 147 else: 148 md = checkfield(md,'fieldname','inversion.algorithm','values',['tao_blmvm','tao_cg','tao_lmvm']) 149 150 151 md = checkfield(md,'fieldname','inversion.cost_functions','size', [num_costfunc],'values',supportedcostfunctions()) 152 md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices, num_costfunc],'>=',0) 153 md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices, num_controls]) 154 md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices, num_controls]) 155 156 157 if solution=='BalancethicknessSolution': 158 md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 159 elif solution=='BalancethicknessSoftSolution': 160 md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 161 else: 162 md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 163 md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1) 164 165 def marshall(self,prefix,md,fid): 166 167 yts=md.constants.yts; 168 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','iscontrol','format','Boolean') 169 WriteData(fid,prefix,'name','md.inversion.type','data',1,'format','Integer') 170 if not self.iscontrol: 171 return 172 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','incomplete_adjoint','format','Boolean') 173 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','maxsteps','format','Integer') 174 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','maxiter','format','Integer') 175 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','fatol','format','Double') 176 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','frtol','format','Double') 177 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','gatol','format','Double') 178 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','grtol','format','Double') 179 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','gttol','format','Double') 180 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','algorithm','format','String') 181 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1) 182 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','min_parameters','format','DoubleMat','mattype',3) 183 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','max_parameters','format','DoubleMat','mattype',3) 184 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts) 185 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts) 186 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts) 187 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',1) 188 WriteData(fid,prefix,'object',self,'class','inversion','fieldname','surface_obs','format','DoubleMat','mattype',1) 189 190 #process control parameters 191 num_control_parameters = np.size(self.control_parameters) 192 WriteData(fid,prefix,'object',self,'fieldname','control_parameters','format','StringArray') 193 WriteData(fid,prefix,'data',num_control_parameters,'name','md.inversion.num_control_parameters','format','Integer') 194 195 #process cost functions 196 num_cost_functions = np.size(self.cost_functions) 197 data= marshallcostfunctions(self.cost_functions) 198 WriteData(fid,prefix,'data',data,'name','md.inversion.cost_functions','format','StringArray') 199 WriteData(fid,prefix,'data',num_cost_functions,'name','md.inversion.num_cost_functions','format','Integer') 186 #process cost functions 187 num_cost_functions = np.size(self.cost_functions) 188 data = marshallcostfunctions(self.cost_functions) 189 WriteData(fid, prefix, 'data', data, 'name', 'md.inversion.cost_functions', 'format', 'StringArray') 190 WriteData(fid, prefix, 'data', num_cost_functions, 'name', 'md.inversion.num_cost_functions', 'format', 'Integer') -
issm/trunk-jpl/src/m/classes/thermal.py
r24141 r24213 1 import numpy as 1 import numpy as np 2 2 from project3d import project3d 3 3 from fielddisplay import fielddisplay … … 5 5 from WriteData import WriteData 6 6 7 7 8 class thermal(object): 8 9 9 """ 10 THERMAL class definition 10 11 11 12 thermal=thermal(); 13 12 Usage: 13 thermal = thermal() 14 """ 14 15 15 def __init__(self):# {{{16 self.spctemperature= float('NaN')17 18 self.stabilization= 019 self.reltol= 020 self.maxiter= 021 self.penalty_lock= 022 self.penalty_factor= 023 self.isenthalpy= 024 25 isdrainicecolumn= 026 27 self.fe= 'P1'28 16 def __init__(self): # {{{ 17 self.spctemperature = float('NaN') 18 self.penalty_threshold = 0 19 self.stabilization = 0 20 self.reltol = 0 21 self.maxiter = 0 22 self.penalty_lock = 0 23 self.penalty_factor = 0 24 self.isenthalpy = 0 25 self.isdynamicbasalspc = 0 26 self.isdrainicecolumn = 0 27 self.watercolumn_upperlimit = 0 28 self.fe = 'P1' 29 self.requested_outputs = [] 29 30 30 31 31 #set defaults 32 self.setdefaultparameters() 32 33 33 #}}} 34 def __repr__(self): # {{{ 35 string=' Thermal solution parameters:' 36 string="%s\n%s"%(string,fielddisplay(self,'spctemperature','temperature constraints (NaN means no constraint) [K]')) 37 string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: SUPG')) 38 string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of non linear iterations')) 39 string="%s\n%s"%(string,fielddisplay(self,'reltol','relative tolerance criterion')) 40 string="%s\n%s"%(string,fielddisplay(self,'penalty_lock','stabilize unstable thermal constraints that keep zigzagging after n iteration (default is 0, no stabilization)')) 41 string="%s\n%s"%(string,fielddisplay(self,'penalty_threshold','threshold to declare convergence of thermal solution (default is 0)')) 42 string="%s\n%s"%(string,fielddisplay(self,'isenthalpy','use an enthalpy formulation to include temperate ice (default is 0)')) 43 string="%s\n%s"%(string,fielddisplay(self,'isdynamicbasalspc','enable dynamic setting of basal forcing. required for enthalpy formulation (default is 0)')) 44 string="%s\n%s"%(string,fielddisplay(self,'isdrainicecolumn','wether waterfraction drainage is enabled for enthalpy formulation (default is 1)')) 45 string="%s\n%s"%(string,fielddisplay(self,'watercolumn_upperlimit','upper limit of basal watercolumn for enthalpy formulation (default is 1000m)')) 46 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 47 return string 48 #}}} 49 def extrude(self,md): # {{{ 50 self.spctemperature=project3d(md,'vector',self.spctemperature,'type','node','layer',md.mesh.numberoflayers,'padding',np.nan) 51 if isinstance(md.initialization.temperature,np.ndarray) and np.size(md.initialization.temperature,axis=0)==md.mesh.numberofvertices: 52 self.spctemperature=float('NaN')*np.ones((md.mesh.numberofvertices)) 53 pos=np.where(md.mesh.vertexonsurface)[0] 54 self.spctemperature[pos]=md.initialization.temperature[pos] #impose observed temperature on surface 55 return self 56 #}}} 57 def defaultoutputs(self,md): # {{{ 34 #}}} 58 35 59 if self.isenthalpy: 60 return ['Enthalpy','Temperature','Waterfraction','Watercolumn','BasalforcingsGroundediceMeltingRate'] 61 else: 62 return ['Temperature','BasalforcingsGroundediceMeltingRate'] 36 def __repr__(self): # {{{ 37 string = ' Thermal solution parameters:' 38 string = "%s\n%s" % (string, fielddisplay(self, 'spctemperature', 'temperature constraints (NaN means no constraint) [K]')) 39 string = "%s\n%s" % (string, fielddisplay(self, 'stabilization', '0: no, 1: artificial_diffusivity, 2: SUPG')) 40 string = "%s\n%s" % (string, fielddisplay(self, 'maxiter', 'maximum number of non linear iterations')) 41 string = "%s\n%s" % (string, fielddisplay(self, 'reltol', 'relative tolerance criterion')) 42 string = "%s\n%s" % (string, fielddisplay(self, 'penalty_lock', 'stabilize unstable thermal constraints that keep zigzagging after n iteration (default is 0, no stabilization)')) 43 string = "%s\n%s" % (string, fielddisplay(self, 'penalty_threshold', 'threshold to declare convergence of thermal solution (default is 0)')) 44 string = "%s\n%s" % (string, fielddisplay(self, 'isenthalpy', 'use an enthalpy formulation to include temperate ice (default is 0)')) 45 string = "%s\n%s" % (string, fielddisplay(self, 'isdynamicbasalspc', 'enable dynamic setting of basal forcing. required for enthalpy formulation (default is 0)')) 46 string = "%s\n%s" % (string, fielddisplay(self, 'isdrainicecolumn', 'wether waterfraction drainage is enabled for enthalpy formulation (default is 1)')) 47 string = "%s\n%s" % (string, fielddisplay(self, 'watercolumn_upperlimit', 'upper limit of basal watercolumn for enthalpy formulation (default is 1000m)')) 48 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'additional outputs requested')) 49 return string 50 #}}} 63 51 64 #}}} 65 def setdefaultparameters(self): # {{{ 66 67 #Number of unstable constraints acceptable 68 self.penalty_threshold=0 52 def extrude(self, md): # {{{ 53 self.spctemperature = project3d(md, 'vector', self.spctemperature, 'type', 'node', 'layer', md.mesh.numberoflayers, 'padding', np.nan) 54 if isinstance(md.initialization.temperature, np.ndarray) and np.size(md.initialization.temperature, axis=0) == md.mesh.numberofvertices: 55 self.spctemperature = float('NaN') * np.ones((md.mesh.numberofvertices)) 56 pos = np.where(md.mesh.vertexonsurface)[0] 57 self.spctemperature[pos] = md.initialization.temperature[pos] #impose observed temperature on surface 58 return self 59 #}}} 69 60 70 #Type of stabilization used 71 self.stabilization=1 61 def defaultoutputs(self, md): # {{{ 62 if self.isenthalpy: 63 return ['Enthalpy', 'Temperature', 'Waterfraction', 'Watercolumn', 'BasalforcingsGroundediceMeltingRate'] 64 else: 65 return ['Temperature', 'BasalforcingsGroundediceMeltingRate'] 72 66 73 #Relative tolerance for the enthalpy convergence 74 self.reltol=0.01 67 #}}} 75 68 76 #Maximum number of iterations 77 self.maxiter=100 69 def setdefaultparameters(self): # {{{ 70 #Number of unstable constraints acceptable 71 self.penalty_threshold = 0 72 #Type of stabilization used 73 self.stabilization = 1 74 #Relative tolerance for the enthalpy convergence 75 self.reltol = 0.01 76 #Maximum number of iterations 77 self.maxiter = 100 78 #factor used to compute the values of the penalties: kappa = max(stiffness matrix) * 10^penalty_factor 79 self.penalty_factor = 3 80 #Should we use cold ice (default) or enthalpy formulation 81 self.isenthalpy = 0 82 #will basal boundary conditions be set dynamically 83 self.isdynamicbasalspc = 0 84 #wether waterfraction drainage is enabled 85 self.isdrainicecolumn = 1 86 #set an upper limit for local stored watercolumn 87 self.watercolumn_upperlimit = 1000 88 #Finite element interpolation 89 self.fe = 'P1' 90 #default output 91 self.requested_outputs = ['default'] 92 return self 78 93 79 #factor used to compute the values of the penalties: kappa=max(stiffness matrix)*10^penalty_factor 80 self.penalty_factor=3 94 #}}} 81 95 82 #Should we use cold ice (default) or enthalpy formulation 83 self.isenthalpy=0 96 def checkconsistency(self, md, solution, analyses): # {{{ 97 #Early return 98 if ('ThermalAnalysis' not in analyses and 'EnthalpyAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isthermal): 99 return md 84 100 85 #will basal boundary conditions be set dynamically 86 self.isdynamicbasalspc=0 101 md = checkfield(md, 'fieldname', 'thermal.stabilization', 'numel', [1], 'values', [0, 1, 2]) 102 md = checkfield(md, 'fieldname', 'thermal.spctemperature', 'Inf', 1, 'timeseries', 1) 103 md = checkfield(md, 'fieldname', 'thermal.requested_outputs', 'stringrow', 1) 87 104 88 #wether waterfraction drainage is enabled 89 self.isdrainicecolumn=1 105 if 'EnthalpyAnalysis' in analyses and md.thermal.isenthalpy and md.mesh.dimension() == 3: 106 md = checkfield(md, 'fieldname', 'thermal.isdrainicecolumn', 'numel', [1], 'values', [0, 1]) 107 md = checkfield(md, 'fieldname', 'thermal.watercolumn_upperlimit', '>=', 0) 90 108 91 #set an upper limit for local stored watercolumn 92 self.watercolumn_upperlimit=1000 109 TEMP = md.thermal.spctemperature[: - 1].flatten(- 1) 110 pos = np.where(~np.isnan(TEMP)) 111 try: 112 spccol = np.size(md.thermal.spctemperature, 1) 113 except IndexError: 114 spccol = 1 93 115 94 #Finite element interpolation 95 self.fe='P1' 116 replicate = np.tile(md.geometry.surface - md.mesh.z, (spccol)).flatten(-1) 117 control = md.materials.meltingpoint - md.materials.beta * md.materials.rho_ice * md.constants.g * replicate + 1.0e-5 118 md = checkfield(md, 'fieldname', 'thermal.spctemperature', 'field', md.thermal.spctemperature.flatten(- 1)[pos], '<=', control[pos], 'message', "spctemperature should be below the adjusted melting point") 119 md = checkfield(md, 'fieldname', 'thermal.isenthalpy', 'numel', [1], 'values', [0, 1]) 120 md = checkfield(md, 'fieldname', 'thermal.isdynamicbasalspc', 'numel', [1], 'values', [0, 1]) 121 if(md.thermal.isenthalpy): 122 if np.isnan(md.stressbalance.reltol): 123 md.checkmessage("for a steadystate computation, thermal.reltol (relative convergence criterion) must be defined!") 124 md = checkfield(md, 'fieldname', 'thermal.reltol', '>', 0., 'message', "reltol must be larger than zero") 96 125 97 #default output 98 self.requested_outputs=['default'] 99 return self 126 return md 127 # }}} 100 128 101 #}}} 102 def checkconsistency(self,md,solution,analyses): # {{{ 129 def marshall(self, prefix, md, fid): # {{{ 130 WriteData(fid, prefix, 'object', self, 'fieldname', 'spctemperature', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 131 WriteData(fid, prefix, 'object', self, 'fieldname', 'penalty_threshold', 'format', 'Integer') 132 WriteData(fid, prefix, 'object', self, 'fieldname', 'stabilization', 'format', 'Integer') 133 WriteData(fid, prefix, 'object', self, 'fieldname', 'reltol', 'format', 'Double') 134 WriteData(fid, prefix, 'object', self, 'fieldname', 'maxiter', 'format', 'Integer') 135 WriteData(fid, prefix, 'object', self, 'fieldname', 'penalty_lock', 'format', 'Integer') 136 WriteData(fid, prefix, 'object', self, 'fieldname', 'penalty_factor', 'format', 'Double') 137 WriteData(fid, prefix, 'object', self, 'fieldname', 'isenthalpy', 'format', 'Boolean') 138 WriteData(fid, prefix, 'object', self, 'fieldname', 'isdrainicecolumn', 'format', 'Boolean') 139 WriteData(fid, prefix, 'object', self, 'fieldname', 'watercolumn_upperlimit', 'format', 'Double') 140 WriteData(fid, prefix, 'object', self, 'fieldname', 'fe', 'format', 'String') 141 WriteData(fid, prefix, 'object', self, 'fieldname', 'isdynamicbasalspc', 'format', 'Boolean') 103 142 104 #Early return 105 if ('ThermalAnalysis' not in analyses and 'EnthalpyAnalysis' not in analyses) or (solution=='TransientSolution' and not md.transient.isthermal): 106 return md 107 108 md = checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0,1,2]) 109 md = checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1) 110 md = checkfield(md,'fieldname','thermal.requested_outputs','stringrow',1) 111 112 if 'EnthalpyAnalysis' in analyses and md.thermal.isenthalpy and md.mesh.dimension()==3: 113 md = checkfield(md,'fieldname','thermal.isdrainicecolumn','numel',[1],'values',[0,1]) 114 md = checkfield(md,'fieldname','thermal.watercolumn_upperlimit','>=',0) 115 116 TEMP = md.thermal.spctemperature[:-1].flatten(-1) 117 pos=np.where(~np.isnan(TEMP)) 118 try: 119 spccol=np.size(md.thermal.spctemperature,1) 120 except IndexError: 121 spccol=1 122 123 replicate=np.tile(md.geometry.surface-md.mesh.z,(spccol)).flatten(-1) 124 125 control=md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate+10**-5 126 127 md = checkfield(md,'fieldname','thermal.spctemperature','field',md.thermal.spctemperature.flatten(-1)[pos],'<=',control[pos],'message',"spctemperature should be below the adjusted melting point") 128 md = checkfield(md,'fieldname','thermal.isenthalpy','numel',[1],'values',[0,1]) 129 md = checkfield(md,'fieldname','thermal.isdynamicbasalspc','numel',[1],'values',[0,1]) 130 if(md.thermal.isenthalpy): 131 if np.isnan(md.stressbalance.reltol): 132 md.checkmessage("for a steadystate computation, thermal.reltol (relative convergence criterion) must be defined!") 133 md = checkfield(md,'fieldname','thermal.reltol','>',0.,'message',"reltol must be larger than zero") 134 135 136 return md 137 # }}} 138 def marshall(self,prefix,md,fid): # {{{ 139 WriteData(fid,prefix,'object',self,'fieldname','spctemperature','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 140 WriteData(fid,prefix,'object',self,'fieldname','penalty_threshold','format','Integer') 141 WriteData(fid,prefix,'object',self,'fieldname','stabilization','format','Integer') 142 WriteData(fid,prefix,'object',self,'fieldname','reltol','format','Double') 143 WriteData(fid,prefix,'object',self,'fieldname','maxiter','format','Integer') 144 WriteData(fid,prefix,'object',self,'fieldname','penalty_lock','format','Integer') 145 WriteData(fid,prefix,'object',self,'fieldname','penalty_factor','format','Double') 146 WriteData(fid,prefix,'object',self,'fieldname','isenthalpy','format','Boolean') 147 WriteData(fid,prefix,'object',self,'fieldname','isdrainicecolumn','format','Boolean') 148 WriteData(fid,prefix,'object',self,'fieldname','watercolumn_upperlimit','format','Double') 149 WriteData(fid,prefix,'object',self,'fieldname','fe','format','String') 150 WriteData(fid,prefix,'object',self,'fieldname','isdynamicbasalspc','format','Boolean') 151 152 #process requested outputs 153 outputs = self.requested_outputs 154 indices = [i for i, x in enumerate(outputs) if x == 'default'] 155 if len(indices) > 0: 156 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 157 outputs =outputscopy 158 WriteData(fid,prefix,'data',outputs,'name','md.thermal.requested_outputs','format','StringArray') 159 # }}} 143 #process requested outputs 144 outputs = self.requested_outputs 145 indices = [i for i, x in enumerate(outputs) if x == 'default'] 146 if len(indices) > 0: 147 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 148 outputs = outputscopy 149 WriteData(fid, prefix, 'data', outputs, 'name', 'md.thermal.requested_outputs', 'format', 'StringArray') 150 # }}} -
issm/trunk-jpl/src/m/classes/timestepping.py
r22459 r24213 3 3 from WriteData import WriteData 4 4 5 5 6 class timestepping(object): 6 7 7 """ 8 TIMESTEPPING Class definition 8 9 9 10 timestepping=timestepping(); 11 10 Usage: 11 timestepping = timestepping() 12 """ 12 13 13 def __init__(self): # {{{ 14 self.start_time = 0. 15 self.final_time = 0. 16 self.time_step = 0. 17 self.interp_forcings = 1 18 self.coupling_time = 0. 19 20 #set defaults 21 self.setdefaultparameters() 14 def __init__(self): # {{{ 15 self.start_time = 0. 16 self.final_time = 0. 17 self.time_step = 0. 18 self.interp_forcings = 1 19 self.coupling_time = 0. 22 20 23 #}}} 24 def __repr__(self): # {{{ 25 string=" timestepping parameters:" 26 string="%s\n%s"%(string,fielddisplay(self,"start_time","simulation starting time [yr]")) 27 string="%s\n%s"%(string,fielddisplay(self,"final_time","final time to stop the simulation [yr]")) 28 string="%s\n%s"%(string,fielddisplay(self,"time_step","length of time steps [yr]")) 29 string="%s\n%s"%(string,fielddisplay(self,"interp_forcings","interpolate in time between requested forcing values ? (0 or 1)")) 30 string="%s\n%s"%(string,fielddisplay(self,"coupling_time","length of coupling time steps with ocean model [yr]")) 31 return string 32 #}}} 33 def setdefaultparameters(self): # {{{ 34 35 #time between 2 time steps 36 self.time_step=1./2. 21 #set defaults 22 self.setdefaultparameters() 37 23 38 #final time 39 self.final_time=10.*self.time_step 24 #}}} 40 25 41 #should we interpolate forcings between timesteps? 42 self.interp_forcings=1 26 def __repr__(self): # {{{ 27 string = " timestepping parameters:" 28 string = "%s\n%s" % (string, fielddisplay(self, "start_time", "simulation starting time [yr]")) 29 string = "%s\n%s" % (string, fielddisplay(self, "final_time", "final time to stop the simulation [yr]")) 30 string = "%s\n%s" % (string, fielddisplay(self, "time_step", "length of time steps [yr]")) 31 string = "%s\n%s" % (string, fielddisplay(self, "interp_forcings", "interpolate in time between requested forcing values ? (0 or 1)")) 32 string = "%s\n%s" % (string, fielddisplay(self, "coupling_time", "length of coupling time steps with ocean model [yr]")) 33 return string 34 #}}} 43 35 44 return self 45 #}}} 46 def checkconsistency(self,md,solution,analyses): # {{{ 36 def setdefaultparameters(self): # {{{ 37 #time between 2 time steps 38 self.time_step = 1. / 2. 39 #final time 40 self.final_time = 10. * self.time_step 41 #should we interpolate forcings between timesteps? 42 self.interp_forcings = 1 47 43 48 md = checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1,'Inf',1) 49 md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1,'Inf',1) 50 md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1,'Inf',1) 51 if self.final_time-self.start_time<0: 52 md.checkmessage("timestepping.final_time should be larger than timestepping.start_time") 53 md = checkfield(md,'fieldname','timestepping.coupling_time','numel',[1],'>=',0,'NaN',1,'Inf',1) 54 md = checkfield(md,'fieldname','timestepping.interp_forcings','numel',[1],'values',[0,1]) 44 return self 45 #}}} 55 46 56 return md 57 # }}} 58 def marshall(self,prefix,md,fid): # {{{ 47 def checkconsistency(self, md, solution, analyses): # {{{ 59 48 60 yts=md.constants.yts 61 WriteData(fid,prefix,'name','md.timestepping.type','data',1,'format','Integer'); 62 WriteData(fid,prefix,'object',self,'fieldname','start_time','format','Double','scale',yts) 63 WriteData(fid,prefix,'object',self,'fieldname','final_time','format','Double','scale',yts) 64 WriteData(fid,prefix,'object',self,'fieldname','time_step','format','Double','scale',yts) 65 WriteData(fid,prefix,'object',self,'fieldname','interp_forcings','format','Boolean') 66 WriteData(fid,prefix,'object',self,'fieldname','coupling_time','format','Double','scale',yts) 67 # }}} 49 md = checkfield(md, 'fieldname', 'timestepping.start_time', 'numel', [1], 'NaN', 1, 'Inf', 1) 50 md = checkfield(md, 'fieldname', 'timestepping.final_time', 'numel', [1], 'NaN', 1, 'Inf', 1) 51 md = checkfield(md, 'fieldname', 'timestepping.time_step', 'numel', [1], '>=', 0, 'NaN', 1, 'Inf', 1) 52 if self.final_time - self.start_time < 0: 53 md.checkmessage("timestepping.final_time should be larger than timestepping.start_time") 54 md = checkfield(md, 'fieldname', 'timestepping.coupling_time', 'numel', [1], '>=', 0, 'NaN', 1, 'Inf', 1) 55 md = checkfield(md, 'fieldname', 'timestepping.interp_forcings', 'numel', [1], 'values', [0, 1]) 56 57 return md 58 # }}} 59 60 def marshall(self, prefix, md, fid): # {{{ 61 62 yts = md.constants.yts 63 WriteData(fid, prefix, 'name', 'md.timestepping.type', 'data', 1, 'format', 'Integer') 64 WriteData(fid, prefix, 'object', self, 'fieldname', 'start_time', 'format', 'Double', 'scale', yts) 65 WriteData(fid, prefix, 'object', self, 'fieldname', 'final_time', 'format', 'Double', 'scale', yts) 66 WriteData(fid, prefix, 'object', self, 'fieldname', 'time_step', 'format', 'Double', 'scale', yts) 67 WriteData(fid, prefix, 'object', self, 'fieldname', 'interp_forcings', 'format', 'Boolean') 68 WriteData(fid, prefix, 'object', self, 'fieldname', 'coupling_time', 'format', 'Double', 'scale', yts) 69 # }}} -
issm/trunk-jpl/src/m/classes/timesteppingadaptive.py
r23716 r24213 3 3 from WriteData import WriteData 4 4 5 5 6 class timesteppingadaptive(object): 6 7 7 """ 8 TIMESTEPPINGADAPTIVE Class definition 8 9 9 10 timesteppingadaptive=timesteppingadaptive(); 11 10 Usage: 11 timesteppingadaptive = timesteppingadaptive() 12 """ 12 13 13 def __init__(self,*args):# {{{14 15 self.start_time= 0.16 self.final_time= 0.17 self.time_step_min= 0.18 self.time_step_max= 0.19 20 21 self.coupling_time= 0.14 def __init__(self, *args): # {{{ 15 if not len(args): 16 self.start_time = 0. 17 self.final_time = 0. 18 self.time_step_min = 0. 19 self.time_step_max = 0. 20 self.cfl_coefficient = 0. 21 self.interp_forcings = 1 22 self.coupling_time = 0. 22 23 23 24 24 #set defaults 25 self.setdefaultparameters() 25 26 26 elif len(args)==1 and args[0].__module__=='timestepping':27 old=args[0]28 29 30 self.start_time= old.start_time31 self.final_time= old.final_time32 33 self.coupling_time= old.coupling_time27 elif len(args) == 1 and args[0].__module__ == 'timestepping': 28 old = args[0] 29 #first call setdefaultparameters: 30 self.setdefaultparameters() 31 self.start_time = old.start_time 32 self.final_time = old.final_time 33 self.interp_forcings = old.interp_forcings 34 self.coupling_time = old.coupling_time 34 35 35 36 37 36 else: 37 raise Exception('constructor not supported') 38 #}}} 38 39 39 def __repr__(self):# {{{40 string=" timesteppingadaptive parameters:"41 string="%s\n%s"%(string,fielddisplay(self,"start_time","simulation starting time [yr]"))42 string="%s\n%s"%(string,fielddisplay(self,"final_time","final time to stop the simulation [yr]"))43 string="%s\n%s"%(string,fielddisplay(self,"time_step_min","minimum length of time steps [yr]"))44 string="%s\n%s"%(string,fielddisplay(self,"time_step_max","maximum length of time steps [yr]"))45 string="%s\n%s"%(string,fielddisplay(self,"cfl_coefficient","coefficient applied to cfl condition"))46 string="%s\n%s"%(string,fielddisplay(self,"interp_forcings","interpolate in time between requested forcing values ? (0 or 1)"))47 string="%s\n%s"%(string,fielddisplay(self,"coupling_time","coupling time steps with ocean model [yr]"))48 49 40 def __repr__(self): # {{{ 41 string = " timesteppingadaptive parameters:" 42 string = "%s\n%s" % (string, fielddisplay(self, "start_time", "simulation starting time [yr]")) 43 string = "%s\n%s" % (string, fielddisplay(self, "final_time", "final time to stop the simulation [yr]")) 44 string = "%s\n%s" % (string, fielddisplay(self, "time_step_min", "minimum length of time steps [yr]")) 45 string = "%s\n%s" % (string, fielddisplay(self, "time_step_max", "maximum length of time steps [yr]")) 46 string = "%s\n%s" % (string, fielddisplay(self, "cfl_coefficient", "coefficient applied to cfl condition")) 47 string = "%s\n%s" % (string, fielddisplay(self, "interp_forcings", "interpolate in time between requested forcing values ? (0 or 1)")) 48 string = "%s\n%s" % (string, fielddisplay(self, "coupling_time", "coupling time steps with ocean model [yr]")) 49 return string 50 # }}} 50 51 51 def setdefaultparameters(self): # {{{ 52 def setdefaultparameters(self): # {{{ 53 #time between 2 time steps 54 self.time_step_min = 0.01 55 self.time_step_max = 10. 56 #final time 57 self.final_time = 10. * self.time_step_max 58 #time adaptation? 59 self.cfl_coefficient = 0.5 60 #should we interpolate forcings between timesteps? 61 self.interp_forcings = 1 62 return self 63 #}}} 52 64 53 #time between 2 time steps 54 self.time_step_min=0.01 55 self.time_step_max=10. 65 def checkconsistency(self, md, solution, analyses): # {{{ 66 md = checkfield(md, 'fieldname', 'timestepping.start_time', 'numel', [1], 'NaN', 1, 'Inf', 1) 67 md = checkfield(md, 'fieldname', 'timestepping.final_time', 'numel', [1], 'NaN', 1, 'Inf', 1) 68 md = checkfield(md, 'fieldname', 'timestepping.time_step_min', 'numel', [1], '>=', 0, 'NaN', 1, 'Inf', 1) 69 md = checkfield(md, 'fieldname', 'timestepping.time_step_max', 'numel', [1], '>=', md.timestepping.time_step_min, 'NaN', 1, 'Inf', 1) 70 md = checkfield(md, 'fieldname', 'timestepping.cfl_coefficient', 'numel', [1], '>', 0, '<=', 1) 71 if self.final_time - self.start_time < 0: 72 md.checkmessage("timestepping.final_time should be larger than timestepping.start_time") 73 md = checkfield(md, 'fieldname', 'timestepping.interp_forcings', 'numel', [1], 'values', [0, 1]) 74 md = checkfield(md, 'fieldname', 'timestepping.coupling_time', 'numel', [1], '>=', 0, 'NaN', 1, 'Inf', 1) 56 75 57 #final time 58 self.final_time=10.*self.time_step_max 76 return md 77 # }}} 59 78 60 #time adaptation? 61 self.cfl_coefficient=0.5 62 63 #should we interpolate forcings between timesteps? 64 self.interp_forcings=1 65 66 return self 67 #}}} 68 69 def checkconsistency(self,md,solution,analyses): # {{{ 70 md = checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1,'Inf',1) 71 md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1,'Inf',1) 72 md = checkfield(md,'fieldname','timestepping.time_step_min','numel',[1],'>=',0,'NaN',1,'Inf',1) 73 md = checkfield(md,'fieldname','timestepping.time_step_max','numel',[1],'>=',md.timestepping.time_step_min,'NaN',1,'Inf',1) 74 md = checkfield(md,'fieldname','timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1) 75 if self.final_time-self.start_time<0: 76 md.checkmessage("timestepping.final_time should be larger than timestepping.start_time") 77 md = checkfield(md,'fieldname','timestepping.interp_forcings','numel',[1],'values',[0,1]) 78 md = checkfield(md,'fieldname','timestepping.coupling_time','numel',[1],'>=',0,'NaN',1,'Inf',1) 79 80 return md 81 # }}} 82 83 def marshall(self,prefix,md,fid): # {{{ 84 yts=md.constants.yts 85 WriteData(fid,prefix,'name','md.timestepping.type','data',2,'format','Integer'); 86 WriteData(fid,prefix,'object',self,'class','timestepping','fieldname','start_time','format','Double','scale',yts) 87 WriteData(fid,prefix,'object',self,'class','timestepping','fieldname','final_time','format','Double','scale',yts) 88 WriteData(fid,prefix,'object',self,'class','timestepping','fieldname','time_step_min','format','Double','scale',yts) 89 WriteData(fid,prefix,'object',self,'class','timestepping','fieldname','time_step_max','format','Double','scale',yts) 90 WriteData(fid,prefix,'object',self,'class','timestepping','fieldname','cfl_coefficient','format','Double') 91 WriteData(fid,prefix,'object',self,'class','timestepping','fieldname','interp_forcings','format','Boolean') 92 WriteData(fid,prefix,'object',self,'class','timestepping','fieldname','coupling_time','format','Double','scale',yts) 93 # }}} 79 def marshall(self, prefix, md, fid): # {{{ 80 yts = md.constants.yts 81 WriteData(fid, prefix, 'name', 'md.timestepping.type', 'data', 2, 'format', 'Integer') 82 WriteData(fid, prefix, 'object', self, 'class', 'timestepping', 'fieldname', 'start_time', 'format', 'Double', 'scale', yts) 83 WriteData(fid, prefix, 'object', self, 'class', 'timestepping', 'fieldname', 'final_time', 'format', 'Double', 'scale', yts) 84 WriteData(fid, prefix, 'object', self, 'class', 'timestepping', 'fieldname', 'time_step_min', 'format', 'Double', 'scale', yts) 85 WriteData(fid, prefix, 'object', self, 'class', 'timestepping', 'fieldname', 'time_step_max', 'format', 'Double', 'scale', yts) 86 WriteData(fid, prefix, 'object', self, 'class', 'timestepping', 'fieldname', 'cfl_coefficient', 'format', 'Double') 87 WriteData(fid, prefix, 'object', self, 'class', 'timestepping', 'fieldname', 'interp_forcings', 'format', 'Boolean') 88 WriteData(fid, prefix, 'object', self, 'class', 'timestepping', 'fieldname', 'coupling_time', 'format', 'Double', 'scale', yts) 89 # }}} -
issm/trunk-jpl/src/m/classes/toolkits.py
r24115 r24213 12 12 13 13 Usage: 14 self =toolkits();14 self = toolkits() 15 15 """ 16 16 17 def __init__(self): 17 def __init__(self): # {{{ 18 18 #default toolkits 19 19 if IssmConfig('_HAVE_PETSC_')[0]: … … 34 34 self.RecoveryAnalysis = self.DefaultAnalysis 35 35 36 36 #The other properties are dynamic 37 37 # }}} 38 def __repr__(self): # {{{ 38 39 def __repr__(self): # {{{ 39 40 s = "List of toolkits options per analysis:\n\n" 40 41 for analysis in list(vars(self).keys()): … … 44 45 # }}} 45 46 46 def addoptions(self, analysis, *args): 47 def addoptions(self, analysis, *args): # {{{ 47 48 # Usage example: 48 # md.toolkits =addoptions(md.toolkits,'StressbalanceAnalysis',FSoptions());49 # md.toolkits =addoptions(md.toolkits,'StressbalanceAnalysis');49 # md.toolkits = addoptions(md.toolkits, 'StressbalanceAnalysis', FSoptions()) 50 # md.toolkits = addoptions(md.toolkits, 'StressbalanceAnalysis') 50 51 51 52 #Create dynamic property if property does not exist yet … … 60 61 # }}} 61 62 62 def checkconsistency(self, md, solution, analyses): 63 def checkconsistency(self, md, solution, analyses): # {{{ 63 64 for analysis in list(vars(self).keys()): 64 65 if not getattr(self, analysis): … … 68 69 # }}} 69 70 70 def ToolkitsFile(self, filename): 71 def ToolkitsFile(self, filename): # {{{ 71 72 """ 72 TOOLKITSFILE - build toolkits file73 TOOLKITSFILE - build toolkits file 73 74 74 Build a Petsc compatible options file, from the toolkits model field 75 Build a Petsc compatible options file, from the toolkits model field + return options string 75 76 This file will also be used when the toolkit used is 'issm' instead of 'petsc' 76 77 77 78 78 Usage: ToolkitsFile(toolkits, filename);79 Usage: ToolkitsFile(toolkits, filename) 79 80 """ 80 81 81 82 #open file for writing 82 83 try: 83 84 fid = open(filename, 'w') 84 85 except IOError as e: 85 raise IOError("ToolkitsFile error: could not open '%s' for writing." % filename)86 raise IOError("ToolkitsFile error: could not open {}' for writing due to".format(filename), e) 86 87 87 88 #write header 88 89 fid.write("%s%s%s\n" % ('%Toolkits options file: ', filename, ' written from Python toolkits array')) 89 90 90 91 #start writing options 91 92 for analysis in list(vars(self).keys()): 92 93 options = getattr(self, analysis) 93 94 94 95 fid.write("\n+ %s\n" % analysis)#append a + to recognize it's an analysis enum96 95 #first write analysis: 96 fid.write("\n+{}\n".format(analysis)) #append a + to recognize it's an analysis enum 97 #now, write options 97 98 for optionname, optionvalue in list(options.items()): 98 99 99 100 if not optionvalue: 100 101 #this option has only one argument 101 fid.write("- %s\n" % optionname)102 fid.write("-{}\n".format(optionname)) 102 103 else: 103 104 #option with value. value can be string or scalar 104 105 if isinstance(optionvalue, (bool, int, float)): 105 fid.write("- %s %g\n" %(optionname, optionvalue))106 fid.write("-{} {}\n".format(optionname, optionvalue)) 106 107 elif isinstance(optionvalue, str): 107 fid.write("- %s %s\n" %(optionname, optionvalue))108 fid.write("-{} {}\n".format(optionname, optionvalue)) 108 109 else: 109 raise TypeError("ToolkitsFile error: option ' %s' is not well formatted." % optionname)110 raise TypeError("ToolkitsFile error: option '{}' is not well formatted.".format(optionname)) 110 111 111 112 fid.close() -
issm/trunk-jpl/src/m/classes/transient.py
r23783 r24213 2 2 from checkfield import checkfield 3 3 from WriteData import WriteData 4 4 5 5 6 class transient(object): … … 8 9 9 10 Usage: 10 transient =transient();11 transient = transient() 11 12 """ 12 13 13 def __init__(self): # {{{14 self.issmb 15 self.ismasstransport 16 self.isstressbalance 17 self.isthermal 18 self.isgroundingline 19 self.isgia 20 self.isesa 14 def __init__(self): # {{{ 15 self.issmb = False 16 self.ismasstransport = False 17 self.isstressbalance = False 18 self.isthermal = False 19 self.isgroundingline = False 20 self.isgia = False 21 self.isesa = False 21 22 self.isdamageevolution = False 22 self.ismovingfront 23 self.ishydrology 24 self.isslr 25 self.iscoupler 26 self.amr_frequency 27 self.isoceancoupling 23 self.ismovingfront = False 24 self.ishydrology = False 25 self.isslr = False 26 self.iscoupler = False 27 self.amr_frequency = 0 28 self.isoceancoupling = False 28 29 self.requested_outputs = [] 29 30 30 31 #set defaults 31 32 self.setdefaultparameters() 32 33 33 34 def __repr__(self): # {{{35 string =' transient solution parameters:'36 string ="%s\n%s"%(string,fielddisplay(self,'issmb','indicates if a surface mass balance solution is used in the transient'))37 string ="%s\n%s"%(string,fielddisplay(self,'ismasstransport','indicates if a masstransport solution is used in the transient'))38 string ="%s\n%s"%(string,fielddisplay(self,'isstressbalance','indicates if a stressbalance solution is used in the transient'))39 string ="%s\n%s"%(string,fielddisplay(self,'isthermal','indicates if a thermal solution is used in the transient'))40 string ="%s\n%s"%(string,fielddisplay(self,'isgroundingline','indicates if a groundingline migration is used in the transient'))41 string ="%s\n%s"%(string,fielddisplay(self,'isgia','indicates if a postglacial rebound is used in the transient'))42 string ="%s\n%s"%(string,fielddisplay(self,'isesa','indicates whether an elastic adjustment model is used in the transient'))43 string ="%s\n%s"%(string,fielddisplay(self,'isdamageevolution','indicates whether damage evolution is used in the transient'))44 string ="%s\n%s"%(string,fielddisplay(self,'ismovingfront','indicates whether a moving front capability is used in the transient'))45 string ="%s\n%s"%(string,fielddisplay(self,'ishydrology','indicates whether an hydrology model is used'))46 string ="%s\n%s"%(string,fielddisplay(self,'isslr','indicates if a sea level rise solution is used in the transient'))47 string ="%s\n%s"%(string,fielddisplay(self,'isoceancoupling','indicates whether coupling with an ocean model is used in the transient'))48 string ="%s\n%s"%(string,fielddisplay(self,'iscoupler','indicates whether different models are being run with need for coupling'))49 string ="%s\n%s"%(string,fielddisplay(self,'amr_frequency','frequency at which mesh is refined in simulations with multiple time_steps'))50 string ="%s\n%s"%(string,fielddisplay(self,'requested_outputs','list of additional outputs requested'))34 #}}} 35 def __repr__(self): # {{{ 36 string = ' transient solution parameters:' 37 string = "%s\n%s" % (string, fielddisplay(self, 'issmb', 'indicates if a surface mass balance solution is used in the transient')) 38 string = "%s\n%s" % (string, fielddisplay(self, 'ismasstransport', 'indicates if a masstransport solution is used in the transient')) 39 string = "%s\n%s" % (string, fielddisplay(self, 'isstressbalance', 'indicates if a stressbalance solution is used in the transient')) 40 string = "%s\n%s" % (string, fielddisplay(self, 'isthermal', 'indicates if a thermal solution is used in the transient')) 41 string = "%s\n%s" % (string, fielddisplay(self, 'isgroundingline', 'indicates if a groundingline migration is used in the transient')) 42 string = "%s\n%s" % (string, fielddisplay(self, 'isgia', 'indicates if a postglacial rebound is used in the transient')) 43 string = "%s\n%s" % (string, fielddisplay(self, 'isesa', 'indicates whether an elastic adjustment model is used in the transient')) 44 string = "%s\n%s" % (string, fielddisplay(self, 'isdamageevolution', 'indicates whether damage evolution is used in the transient')) 45 string = "%s\n%s" % (string, fielddisplay(self, 'ismovingfront', 'indicates whether a moving front capability is used in the transient')) 46 string = "%s\n%s" % (string, fielddisplay(self, 'ishydrology', 'indicates whether an hydrology model is used')) 47 string = "%s\n%s" % (string, fielddisplay(self, 'isslr', 'indicates if a sea level rise solution is used in the transient')) 48 string = "%s\n%s" % (string, fielddisplay(self, 'isoceancoupling', 'indicates whether coupling with an ocean model is used in the transient')) 49 string = "%s\n%s" % (string, fielddisplay(self, 'iscoupler', 'indicates whether different models are being run with need for coupling')) 50 string = "%s\n%s" % (string, fielddisplay(self, 'amr_frequency', 'frequency at which mesh is refined in simulations with multiple time_steps')) 51 string = "%s\n%s" % (string, fielddisplay(self, 'requested_outputs', 'list of additional outputs requested')) 51 52 return string 52 #}}} 53 def defaultoutputs(self,md): # {{{ 53 #}}} 54 55 def defaultoutputs(self, md): # {{{ 54 56 55 57 if self.issmb: … … 59 61 60 62 #}}} 61 def setallnullparameters(self): # {{{ 62 63 64 def setallnullparameters(self): # {{{ 63 65 #Nothing done 64 self.issmb 65 self.ismasstransport 66 self.isstressbalance 67 self.isthermal 68 self.isgroundingline 69 self.isgia 70 self.isesa 66 self.issmb = False 67 self.ismasstransport = False 68 self.isstressbalance = False 69 self.isthermal = False 70 self.isgroundingline = False 71 self.isgia = False 72 self.isesa = False 71 73 self.isdamageevolution = False 72 self.ismovingfront 73 self.ishydrology 74 self.isoceancoupling 75 self.isslr 76 self.iscoupler 77 self.amr_frequency 74 self.ismovingfront = False 75 self.ishydrology = False 76 self.isoceancoupling = False 77 self.isslr = False 78 self.iscoupler = False 79 self.amr_frequency = 0 78 80 79 80 self.requested_outputs =[]81 #default output 82 self.requested_outputs = [] 81 83 return self 82 84 #}}} 83 def deactivateall(self):#{{{ 84 self.issmb = False 85 self.ismasstransport = False 86 self.isstressbalance = False 87 self.isthermal = False 88 self.isgroundingline = False 89 self.isgia = False 90 self.isesa = False 85 86 def deactivateall(self): #{{{ 87 self.issmb = False 88 self.ismasstransport = False 89 self.isstressbalance = False 90 self.isthermal = False 91 self.isgroundingline = False 92 self.isgia = False 93 self.isesa = False 91 94 self.isdamageevolution = False 92 self.ismovingfront 93 self.ishydrology 94 self.isslr 95 self.isoceancoupling 96 self.iscoupler 97 self.amr_frequency 95 self.ismovingfront = False 96 self.ishydrology = False 97 self.isslr = False 98 self.isoceancoupling = False 99 self.iscoupler = False 100 self.amr_frequency = 0 98 101 99 100 self.requested_outputs =[]102 #default output 103 self.requested_outputs = [] 101 104 return self 102 105 #}}} 103 def setdefaultparameters(self): # {{{ 104 106 107 def setdefaultparameters(self): # {{{ 105 108 #full analysis: Stressbalance, Masstransport and Thermal but no groundingline migration for now 106 self.issmb 107 self.ismasstransport 108 self.isstressbalance 109 self.isthermal 110 self.isgroundingline 111 self.isgia 112 self.isesa 109 self.issmb = True 110 self.ismasstransport = True 111 self.isstressbalance = True 112 self.isthermal = True 113 self.isgroundingline = False 114 self.isgia = False 115 self.isesa = False 113 116 self.isdamageevolution = False 114 self.ismovingfront 115 self.ishydrology 116 self.isslr 117 self.isoceancoupling 118 self.iscoupler 119 self.amr_frequency 117 self.ismovingfront = False 118 self.ishydrology = False 119 self.isslr = False 120 self.isoceancoupling = False 121 self.iscoupler = False 122 self.amr_frequency = 0 120 123 121 122 self.requested_outputs =['default']124 #default output 125 self.requested_outputs = ['default'] 123 126 return self 124 127 #}}} 125 def checkconsistency(self,md,solution,analyses): # {{{126 128 129 def checkconsistency(self, md, solution, analyses): # {{{ 127 130 #Early return 128 if not solution =='TransientSolution':131 if not solution == 'TransientSolution': 129 132 return md 130 133 131 md = checkfield(md, 'fieldname','transient.issmb','numel',[1],'values',[0,1])132 md = checkfield(md, 'fieldname','transient.ismasstransport','numel',[1],'values',[0,1])133 md = checkfield(md, 'fieldname','transient.isstressbalance','numel',[1],'values',[0,1])134 md = checkfield(md, 'fieldname','transient.isthermal','numel',[1],'values',[0,1])135 md = checkfield(md, 'fieldname','transient.isgroundingline','numel',[1],'values',[0,1])136 md = checkfield(md, 'fieldname','transient.isgia','numel',[1],'values',[0,1])137 md = checkfield(md, 'fieldname','transient.isesa','numel',[1],'values',[0,1])138 md = checkfield(md, 'fieldname','transient.isdamageevolution','numel',[1],'values',[0,1])139 md = checkfield(md, 'fieldname','transient.ishydrology','numel',[1],'values',[0,1])140 md = checkfield(md, 'fieldname','transient.ismovingfront','numel',[1],'values',[0,1]);141 md = checkfield(md, 'fieldname','transient.isslr','numel',[1],'values',[0,1])142 md = checkfield(md, 'fieldname','transient.isoceancoupling','numel',[1],'values',[0,1])143 md = checkfield(md, 'fieldname','transient.iscoupler','numel',[1],'values',[0,1])144 md = checkfield(md, 'fieldname','transient.amr_frequency','numel',[1],'>=',0,'NaN',1,'Inf',1)145 md = checkfield(md, 'fieldname','transient.requested_outputs','stringrow',1)134 md = checkfield(md, 'fieldname', 'transient.issmb', 'numel', [1], 'values', [0, 1]) 135 md = checkfield(md, 'fieldname', 'transient.ismasstransport', 'numel', [1], 'values', [0, 1]) 136 md = checkfield(md, 'fieldname', 'transient.isstressbalance', 'numel', [1], 'values', [0, 1]) 137 md = checkfield(md, 'fieldname', 'transient.isthermal', 'numel', [1], 'values', [0, 1]) 138 md = checkfield(md, 'fieldname', 'transient.isgroundingline', 'numel', [1], 'values', [0, 1]) 139 md = checkfield(md, 'fieldname', 'transient.isgia', 'numel', [1], 'values', [0, 1]) 140 md = checkfield(md, 'fieldname', 'transient.isesa', 'numel', [1], 'values', [0, 1]) 141 md = checkfield(md, 'fieldname', 'transient.isdamageevolution', 'numel', [1], 'values', [0, 1]) 142 md = checkfield(md, 'fieldname', 'transient.ishydrology', 'numel', [1], 'values', [0, 1]) 143 md = checkfield(md, 'fieldname', 'transient.ismovingfront', 'numel', [1], 'values', [0, 1]) 144 md = checkfield(md, 'fieldname', 'transient.isslr', 'numel', [1], 'values', [0, 1]) 145 md = checkfield(md, 'fieldname', 'transient.isoceancoupling', 'numel', [1], 'values', [0, 1]) 146 md = checkfield(md, 'fieldname', 'transient.iscoupler', 'numel', [1], 'values', [0, 1]) 147 md = checkfield(md, 'fieldname', 'transient.amr_frequency', 'numel', [1], '>=', 0, 'NaN', 1, 'Inf', 1) 148 md = checkfield(md, 'fieldname', 'transient.requested_outputs', 'stringrow', 1) 146 149 147 if (solution !='TransientSolution') and (md.transient.iscoupling):150 if (solution != 'TransientSolution') and (md.transient.iscoupling): 148 151 md.checkmessage("Coupling with ocean can only be done in transient simulations!") 149 if (md.transient.isdamageevolution and not hasattr(md.materials, 'matdamageice')):152 if (md.transient.isdamageevolution and not hasattr(md.materials, 'matdamageice')): 150 153 md.checkmessage("requesting damage evolution but md.materials is not of class matdamageice") 151 154 152 155 return md 153 156 # }}} 154 def marshall(self,prefix,md,fid): # {{{155 WriteData(fid,prefix,'object',self,'fieldname','issmb','format','Boolean')156 WriteData(fid,prefix,'object',self,'fieldname','ismasstransport','format','Boolean')157 WriteData(fid,prefix,'object',self,'fieldname','isstressbalance','format','Boolean')158 WriteData(fid,prefix,'object',self,'fieldname','isthermal','format','Boolean')159 WriteData(fid,prefix,'object',self,'fieldname','isgroundingline','format','Boolean')160 WriteData(fid,prefix,'object',self,'fieldname','isgia','format','Boolean')161 WriteData(fid,prefix,'object',self,'fieldname','isesa','format','Boolean')162 WriteData(fid,prefix,'object',self,'fieldname','isdamageevolution','format','Boolean')163 WriteData(fid,prefix,'object',self,'fieldname','ishydrology','format','Boolean')164 WriteData(fid,prefix,'object',self,'fieldname','ismovingfront','format','Boolean')165 WriteData(fid,prefix,'object',self,'fieldname','isslr','format','Boolean')166 WriteData(fid,prefix,'object',self,'fieldname','isoceancoupling','format','Boolean')167 WriteData(fid,prefix,'object',self,'fieldname','iscoupler','format','Boolean')168 WriteData(fid,prefix,'object',self,'fieldname','amr_frequency','format','Integer')169 157 170 #process requested outputs 158 def marshall(self, prefix, md, fid): # {{{ 159 WriteData(fid, prefix, 'object', self, 'fieldname', 'issmb', 'format', 'Boolean') 160 WriteData(fid, prefix, 'object', self, 'fieldname', 'ismasstransport', 'format', 'Boolean') 161 WriteData(fid, prefix, 'object', self, 'fieldname', 'isstressbalance', 'format', 'Boolean') 162 WriteData(fid, prefix, 'object', self, 'fieldname', 'isthermal', 'format', 'Boolean') 163 WriteData(fid, prefix, 'object', self, 'fieldname', 'isgroundingline', 'format', 'Boolean') 164 WriteData(fid, prefix, 'object', self, 'fieldname', 'isgia', 'format', 'Boolean') 165 WriteData(fid, prefix, 'object', self, 'fieldname', 'isesa', 'format', 'Boolean') 166 WriteData(fid, prefix, 'object', self, 'fieldname', 'isdamageevolution', 'format', 'Boolean') 167 WriteData(fid, prefix, 'object', self, 'fieldname', 'ishydrology', 'format', 'Boolean') 168 WriteData(fid, prefix, 'object', self, 'fieldname', 'ismovingfront', 'format', 'Boolean') 169 WriteData(fid, prefix, 'object', self, 'fieldname', 'isslr', 'format', 'Boolean') 170 WriteData(fid, prefix, 'object', self, 'fieldname', 'isoceancoupling', 'format', 'Boolean') 171 WriteData(fid, prefix, 'object', self, 'fieldname', 'iscoupler', 'format', 'Boolean') 172 WriteData(fid, prefix, 'object', self, 'fieldname', 'amr_frequency', 'format', 'Integer') 173 174 #process requested outputs 171 175 outputs = self.requested_outputs 172 176 indices = [i for i, x in enumerate(outputs) if x == 'default'] 173 177 if len(indices) > 0: 174 outputscopy =outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]175 outputs =outputscopy176 WriteData(fid, prefix,'data',outputs,'name','md.transient.requested_outputs','format','StringArray')178 outputscopy = outputs[0:max(0, indices[0] - 1)] + self.defaultoutputs(md) + outputs[indices[0] + 1:] 179 outputs = outputscopy 180 WriteData(fid, prefix, 'data', outputs, 'name', 'md.transient.requested_outputs', 'format', 'StringArray') 177 181 # }}} -
issm/trunk-jpl/src/m/classes/verbose.py
r23716 r24213 1 1 from pairoptions import pairoptions 2 import MatlabFuncs as m3 2 from WriteData import WriteData 4 3 4 5 5 class verbose(object): 6 7 6 """ 7 VERBOSE class definition 8 8 9 10 mprocessor : model processing 11 12 13 14 15 16 17 18 9 Available verbosity levels: 10 mprocessor : model processing 11 module : modules 12 solution : solution sequence 13 solver : solver info (extensive) 14 convergence : convergence criteria 15 control : control method 16 qmu : sensitivity analysis 17 autodiff : AD analysis 18 smb : SMB analysis 19 19 20 21 verbose=verbose(); 22 verbose=verbose(3); 23 verbose=verbose('001100'); 24 verbose=verbose('module',True,'solver',False); 20 Usage: 21 verbose = verbose() 22 verbose = verbose(3) 23 verbose = verbose('001100') 24 verbose = verbose('module', True, 'solver', False) 25 25 26 WARNING: some parts of this file are Synchronized with src/c/shared/Numerics/Verbosity.h27 Do not modify these sections. See src/c/shared/Numerics/README for more info28 26 WARNING: some parts of this file are Synchronized with src / c / shared / Numerics / Verbosity.h 27 Do not modify these sections. See src / c / shared / Numerics / README for more info 28 """ 29 29 30 def __init__(self,*args):# {{{31 32 self.mprocessor= False33 self.module= False34 self.solution= False35 self.solver= False36 37 self.control= False38 self.qmu= False39 self.autodiff= False40 self.smb= False41 30 def __init__(self, *args): # {{{ 31 #BEGINFIELDS 32 self.mprocessor = False 33 self.module = False 34 self.solution = False 35 self.solver = False 36 self.convergence = False 37 self.control = False 38 self.qmu = False 39 self.autodiff = False 40 self.smb = False 41 #ENDFIELDS 42 42 43 44 45 self.solution=True; 46 self.qmu=True; 47 self.control=True; 48 43 if not len(args): 44 #Don't do anything 45 self.solution = True 46 self.qmu = True 47 self.control = True 48 pass 49 49 50 51 binary=args[0]52 if isinstance(binary,str):53 if binary.lower()=='all':54 binary=2**11-1#all ones55 56 self.solver=False#Do not use by default57 58 binary=int(binary,2)59 60 elif isinstance(binary,(int,float)):61 50 elif len(args) == 1: 51 binary = args[0] 52 if isinstance(binary, str): 53 if binary.lower() == 'all': 54 binary = 2**11 - 1 #all ones 55 self.BinaryToVerbose(binary) 56 self.solver = False #Do not use by default 57 else: 58 binary = int(binary, 2) 59 self.BinaryToVerbose(binary) 60 elif isinstance(binary, (int, float)): 61 self.BinaryToVerbose(int(binary)) 62 62 63 64 65 self=pairoptions(*args).AssignObjectFields(self)63 else: 64 #Use options to initialize object 65 self = pairoptions(*args).AssignObjectFields(self) 66 66 67 #Cast to logicals 68 listproperties=vars(self) 69 for fieldname,fieldvalue in list(listproperties.items()): 70 if isinstance(fieldvalue,bool) or isinstance(fieldvalue,(int,float)): 71 setattr(self,fieldname,bool(fieldvalue)) 72 else: 73 raise TypeError("verbose supported field values are logicals only (True or False)") 74 # }}} 75 def __repr__(self): # {{{ 76 77 #BEGINDISP 78 s ="class '%s' = \n" % type(self) 79 s+=" %15s : %s\n" % ('mprocessor',self.mprocessor) 80 s+=" %15s : %s\n" % ('module',self.module) 81 s+=" %15s : %s\n" % ('solution',self.solution) 82 s+=" %15s : %s\n" % ('solver',self.solver) 83 s+=" %15s : %s\n" % ('convergence',self.convergence) 84 s+=" %15s : %s\n" % ('control',self.control) 85 s+=" %15s : %s\n" % ('qmu',self.qmu) 86 s+=" %15s : %s\n" % ('autodiff',self.autodiff) 87 s+=" %15s : %s\n" % ('smb',self.smb) 88 #ENDDISP 67 #Cast to logicals 68 listproperties = vars(self) 69 for fieldname, fieldvalue in list(listproperties.items()): 70 if isinstance(fieldvalue, bool) or isinstance(fieldvalue, (int, float)): 71 setattr(self, fieldname, bool(fieldvalue)) 72 else: 73 raise TypeError("verbose supported field values are logicals only (True or False)") 74 # }}} 89 75 90 return s 91 # }}} 92 def VerboseToBinary(self): # {{{ 76 def __repr__(self): # {{{ 93 77 94 #BEGINVERB2BIN 95 binary=0 96 if self.mprocessor: 97 binary=binary | 1 98 if self.module: 99 binary=binary | 2 100 if self.solution: 101 binary=binary | 4 102 if self.solver: 103 binary=binary | 8 104 if self.convergence: 105 binary=binary | 16 106 if self.control: 107 binary=binary | 32 108 if self.qmu: 109 binary=binary | 64 110 if self.autodiff: 111 binary=binary | 128 112 if self.smb: 113 binary=binary | 256 114 #ENDVERB2BIN 78 #BEGINDISP 79 s = "class '%s' = \n" % type(self) 80 s += " %15s : %s\n" % ('mprocessor', self.mprocessor) 81 s += " %15s : %s\n" % ('module', self.module) 82 s += " %15s : %s\n" % ('solution', self.solution) 83 s += " %15s : %s\n" % ('solver', self.solver) 84 s += " %15s : %s\n" % ('convergence', self.convergence) 85 s += " %15s : %s\n" % ('control', self.control) 86 s += " %15s : %s\n" % ('qmu', self.qmu) 87 s += " %15s : %s\n" % ('autodiff', self.autodiff) 88 s += " %15s : %s\n" % ('smb', self.smb) 89 #ENDDISP 115 90 116 return binary 117 # }}} 118 def BinaryToVerbose(self,binary): # {{{ 91 return s 92 # }}} 119 93 120 #BEGINBIN2VERB 121 self.mprocessor =bool(binary & 1) 122 self.module =bool(binary & 2) 123 self.solution =bool(binary & 4) 124 self.solver =bool(binary & 8) 125 self.convergence=bool(binary & 16) 126 self.control =bool(binary & 32) 127 self.qmu =bool(binary & 64) 128 self.autodiff =bool(binary & 128) 129 self.smb =bool(binary & 256) 130 #ENDBIN2VERB 131 # }}} 132 def checkconsistency(self,md,solution,analyses): # {{{ 133 return md 134 # }}} 135 def marshall(self,prefix,md,fid): # {{{ 136 WriteData(fid,prefix,'data',self.VerboseToBinary(),'name','md.verbose','format','Integer') 137 # }}} 94 def VerboseToBinary(self): # {{{ 95 #BEGINVERB2BIN 96 binary = 0 97 if self.mprocessor: 98 binary = binary | 1 99 if self.module: 100 binary = binary | 2 101 if self.solution: 102 binary = binary | 4 103 if self.solver: 104 binary = binary | 8 105 if self.convergence: 106 binary = binary | 16 107 if self.control: 108 binary = binary | 32 109 if self.qmu: 110 binary = binary | 64 111 if self.autodiff: 112 binary = binary | 128 113 if self.smb: 114 binary = binary | 256 115 #ENDVERB2BIN 116 117 return binary 118 # }}} 119 120 def BinaryToVerbose(self, binary): # {{{ 121 122 #BEGINBIN2VERB 123 self.mprocessor = bool(binary & 1) 124 self.module = bool(binary & 2) 125 self.solution = bool(binary & 4) 126 self.solver = bool(binary & 8) 127 self.convergence = bool(binary & 16) 128 self.control = bool(binary & 32) 129 self.qmu = bool(binary & 64) 130 self.autodiff = bool(binary & 128) 131 self.smb = bool(binary & 256) 132 #ENDBIN2VERB 133 # }}} 134 135 def checkconsistency(self, md, solution, analyses): # {{{ 136 return md 137 # }}} 138 139 def marshall(self, prefix, md, fid): # {{{ 140 WriteData(fid, prefix, 'data', self.VerboseToBinary(), 'name', 'md.verbose', 'format', 'Integer') 141 # }}} -
issm/trunk-jpl/src/m/consistency/QueueRequirements.py
r19157 r24213 1 def QueueRequirements(queudict, queue,np,time):2 3 4 # Usage: 5 # QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,np,time)1 def QueueRequirements(queudict, queue, np, time): 2 #QUEUEREQUIREMENTS - queue requirements in time, number of cpus, by name of queue. 3 # 4 # Usage: 5 # QueueRequirements(available_queues, queue_requirements_time, queue_requirements_np, np, time) 6 6 7 #Ok, go through requirements for current queue: 8 try: 9 rtime=queudict[queue][0] 10 except KeyError: 11 raise Exception('QueueRequirements error message: availables queues are '+ queuedict.keys) 12 13 if time<=0: 14 raise Exception('QueueRequirements: time should be a positive number') 15 if time>rtime: 16 raise Exception('QueueRequirements: time should be < '+ str(rtime)+ ' for queue: '+ queue) 7 #Ok, go through requirements for current queue: 8 try: 9 rtime = queudict[queue][0] 10 except KeyError: 11 raise Exception('QueueRequirements error message: availables queues are ' + queudict.keys) 17 12 18 #check on np requirements 19 if np<=0: 20 raise Exception('QueueRequirements: np should be a positive number') 13 if time <= 0: 14 raise Exception('QueueRequirements: time should be a positive number') 15 if time > rtime: 16 raise Exception('QueueRequirements: time should be < ' + str(rtime) + ' for queue: ' + queue) 17 18 #check on np requirements 19 if np <= 0: 20 raise Exception('QueueRequirements: np should be a positive number') -
issm/trunk-jpl/src/m/consistency/checkfield.py
r23784 r24213 1 1 import numpy as np 2 2 import os 3 from re import findall, split3 from re import findall, split 4 4 from pairoptions import pairoptions 5 5 from operator import attrgetter 6 6 import MatlabFuncs as m 7 7 8 def checkfield(md,*args): 8 9 def checkfield(md, *args): 9 10 """ 10 11 CHECKFIELD - check field consistency … … 16 17 17 18 Available options: 18 19 20 - >: greater than provided value21 - >=: greater or equal to provided value22 - <: smallerthan provided value23 24 25 26 27 28 29 30 19 - NaN: 1 if check that there is no NaN 20 - size: [lines cols], NaN for non checked dimensions, or 'universal' for any input type (nodal, element, time series, etc) 21 - > : greater than provided value 22 - >= : greater or equal to provided value 23 - < : smallerthan provided value 24 - <=: smaller or equal to provided value 25 - < vec: smallerthan provided values on each vertex 26 - timeseries: 1 if check time series consistency (size and time) 27 - values: cell of strings or vector of acceptable values 28 - numel: list of acceptable number of elements 29 - cell: 1 if check that is cell 30 - empty: 1 if check that non empty 31 - message: overloaded error message 31 32 32 33 Usage: 33 md = checkfield(md, fieldname,options);34 md = checkfield(md, fieldname, options) 34 35 """ 35 36 36 37 #get options 37 options =pairoptions(*args)38 options = pairoptions(*args) 38 39 39 40 #get field from model 40 41 if options.exist('field'): 41 field =options.getfieldvalue('field')42 fieldname =options.getfieldvalue('fieldname','no fieldname')42 field = options.getfieldvalue('field') 43 fieldname = options.getfieldvalue('fieldname', 'no fieldname') 43 44 else: 44 fieldname =options.getfieldvalue('fieldname')45 fieldprefix =split(r'\[(.*?)\]',fieldname)[0]46 fieldindexes =findall(r'\[(.*?)\]',fieldname)47 field =attrgetter(fieldprefix)(md)45 fieldname = options.getfieldvalue('fieldname') 46 fieldprefix = split(r'\[(.*?)\]', fieldname)[0] 47 fieldindexes = findall(r'\[(.*?)\]', fieldname) 48 field = attrgetter(fieldprefix)(md) 48 49 for index in fieldindexes: 49 50 try: 50 field =field[index.strip("\'")]51 field = field[index.strip("\'")] 51 52 except TypeError: 52 field=field[int(index)] #looking for an index and not a key 53 54 # that works for py2 55 # exec("field=md.{}".format(fieldname)) 56 # exec("field=md.{}".format(fieldname),namespace) 57 58 59 if isinstance(field,(bool,int,float)): 60 field=np.array([field]) 53 field = field[int(index)] #looking for an index and not a key 54 55 # that works for py2 56 # exec("field = md.{}".format(fieldname)) 57 # exec("field = md.{}".format(fieldname), namespace) 58 59 if isinstance(field, (bool, int, float)): 60 field = np.array([field]) 61 61 62 62 #check empty 63 63 if options.exist('empty'): 64 64 if not field: 65 md = md.checkmessage(options.getfieldvalue('message', 66 "field '%s' is empty" % fieldname)) 65 md = md.checkmessage(options.getfieldvalue('message', "field '{}' is empty".format(fieldname))) 67 66 68 67 #Check size 69 68 if options.exist('size'): 70 fieldsize =options.getfieldvalue('size')69 fieldsize = options.getfieldvalue('size') 71 70 if type(fieldsize) == str: 72 if m.strcmp(fieldsize, 'universal'):71 if m.strcmp(fieldsize, 'universal'): 73 72 74 73 #Check that vector size will not be confusing for ModelProcessorx 75 if (md.mesh.numberofvertices ==md.mesh.numberofelements):74 if (md.mesh.numberofvertices == md.mesh.numberofelements): 76 75 raise RuntimeError('number of vertices is the same as number of elements') 77 elif (md.mesh.numberofvertices +1==md.mesh.numberofelements):78 raise RuntimeError('number of vertices + 1 is the same as number of elements')79 elif (md.mesh.numberofvertices ==md.mesh.numberofelements+1):80 raise RuntimeError('number of vertices is the same as number of elements + 1')81 76 elif (md.mesh.numberofvertices + 1 == md.mesh.numberofelements): 77 raise RuntimeError('number of vertices + 1 is the same as number of elements') 78 elif (md.mesh.numberofvertices == md.mesh.numberofelements + 1): 79 raise RuntimeError('number of vertices is the same as number of elements + 1') 80 82 81 #Uniform field 83 if (np.size(field, 0)==1):84 if (np.shape(field)[1] !=1):85 md = md.checkmessage(options.getfieldvalue('message', "field '{}' is not supported".format(fieldname)))82 if (np.size(field, 0) == 1): 83 if (np.shape(field)[1] != 1): 84 md = md.checkmessage(options.getfieldvalue('message', "field '{}' is not supported".format(fieldname))) 86 85 87 86 #vertex oriented input, only one column allowed 88 elif (np.shape(field)[0]==md.mesh.numberofvertices): 89 if (np.shape(field)[1]!=1): 90 md = md.checkmessage(options.getfieldvalue('message',"field '{}' is not supported".format(fieldname))) 91 92 #element oriented input, one or more column (patch) is ok 93 elif (np.shape(field)[0]==md.mesh.numberofelements): 87 elif (np.shape(field)[0] == md.mesh.numberofvertices): 88 if (np.shape(field)[1] != 1): 89 md = md.checkmessage(options.getfieldvalue('message', "field '{}' is not supported".format(fieldname))) 90 91 #element oriented input, one or more column (patch) is ok 92 elif (np.shape(field)[0] == md.mesh.numberofelements): 93 #nothing to do here (either constant per element, or defined on nodes) 94 94 pass 95 #nothing to do here (either constant per element, or defined on nodes)96 95 97 96 #vertex time series 98 elif (np.shape(field)[0] ==md.mesh.numberofvertices+1):99 if (np.shape(field)[1] <=1):100 md = md.checkmessage(options.getfieldvalue('message', "field '{}' is not supported".format(fieldname)))97 elif (np.shape(field)[0] == md.mesh.numberofvertices + 1): 98 if (np.shape(field)[1] <= 1): 99 md = md.checkmessage(options.getfieldvalue('message', "field '{}' is not supported".format(fieldname))) 101 100 102 101 #element time series 103 elif (np.shape(field)[0] ==md.mesh.numberofelements+1):104 if (np.shape(field)[1] <=1):105 md = md.checkmessage(options.getfieldvalue('message', "field '{}' is not supported".format(fieldname)))102 elif (np.shape(field)[0] == md.mesh.numberofelements + 1): 103 if (np.shape(field)[1] <= 1): 104 md = md.checkmessage(options.getfieldvalue('message', "field '{}' is not supported".format(fieldname))) 106 105 107 106 #else not supported 108 107 else: 109 md = md.checkmessage(options.getfieldvalue('message', "field '{}' is not supported".format(fieldname)))108 md = md.checkmessage(options.getfieldvalue('message', "field '{}' is not supported".format(fieldname))) 110 109 111 110 else: … … 114 113 else: 115 114 if len(np.shape(field)) < len(fieldsize): 116 md = md.checkmessage(options.getfieldvalue('message',"field {} has size {} but should be size {}".format(fieldname,np.shape(field),fieldsize)))115 md = md.checkmessage(options.getfieldvalue('message', "field {} has size {} but should be size {}".format(fieldname, np.shape(field), fieldsize))) 117 116 else: 118 117 for i in range(np.size(fieldsize)): 119 118 if (not np.isnan(fieldsize[i])) and (np.shape(field)[i] != fieldsize[i]): 120 md = md.checkmessage(options.getfieldvalue('message', "field {} dimension # {} should be of size {}".format(fieldname,i,fieldsize[i])))119 md = md.checkmessage(options.getfieldvalue('message', "field {} dimension # {} should be of size {}".format(fieldname, i, fieldsize[i]))) 121 120 122 121 #Check numel 123 122 if options.exist('numel'): 124 fieldnumel =options.getfieldvalue('numel')123 fieldnumel = options.getfieldvalue('numel') 125 124 if (type(fieldnumel) == int and np.size(field) != fieldnumel) or (type(fieldnumel) == list and np.size(field) not in fieldnumel): 126 if len(fieldnumel)==1: 127 md = md.checkmessage(options.getfieldvalue('message',\ 128 "field '%s' size should be %d" % (fieldname,fieldnumel))) 129 elif len(fieldnumel)==2: 130 md = md.checkmessage(options.getfieldvalue('message',\ 131 "field '%s' size should be %d or %d" % (fieldname,fieldnumel[0],fieldnumel[1]))) 132 else: 133 md = md.checkmessage(options.getfieldvalue('message',\ 134 "field '%s' size should be %s" % (fieldname,fieldnumel))) 125 if len(fieldnumel) == 1: 126 md = md.checkmessage(options.getfieldvalue('message', "field '{}' size should be {}".format(fieldname, fieldnumel))) 127 elif len(fieldnumel) == 2: 128 md = md.checkmessage(options.getfieldvalue('message', "field '{}' size should be {} or {}".format(fieldname, fieldnumel[0], fieldnumel[1]))) 129 else: 130 md = md.checkmessage(options.getfieldvalue('message', "field '{}' size should be {}".format(fieldname, fieldnumel))) 135 131 136 132 #check NaN 137 if options.getfieldvalue('NaN', 0):133 if options.getfieldvalue('NaN', 0): 138 134 if np.any(np.isnan(field)): 139 md = md.checkmessage(options.getfieldvalue('message',\ 140 "NaN values found in field '%s'" % fieldname)) 141 135 md = md.checkmessage(options.getfieldvalue('message', "NaN values found in field '{}'".format(fieldname))) 142 136 143 137 #check Inf 144 if options.getfieldvalue('Inf', 0):138 if options.getfieldvalue('Inf', 0): 145 139 if np.any(np.isinf(field)): 146 md = md.checkmessage(options.getfieldvalue('message',\ 147 "Inf values found in field '%s'" % fieldname)) 148 140 md = md.checkmessage(options.getfieldvalue('message', "Inf values found in field '{}'".format(fieldname))) 149 141 150 142 #check cell 151 if options.getfieldvalue('cell',0): 152 if not isinstance(field,(tuple,list,dict)): 153 md = md.checkmessage(options.getfieldvalue('message',\ 154 "field '%s' should be a cell" % fieldname)) 143 if options.getfieldvalue('cell', 0): 144 if not isinstance(field, (tuple, list, dict)): 145 md = md.checkmessage(options.getfieldvalue('message', "field '{}' should be a cell".format(fieldname))) 155 146 156 147 #check values 157 148 if options.exist('values'): 158 fieldvalues=options.getfieldvalue('values') 159 if False in m.ismember(field,fieldvalues): 160 if len(fieldvalues)==1: 161 md = md.checkmessage(options.getfieldvalue('message',\ 162 "field '%s' value should be '%s'" % (fieldname,fieldvalues[0]))) 163 elif len(fieldvalues)==2: 164 md = md.checkmessage(options.getfieldvalue('message',\ 165 "field '%s' values should be '%s' or '%s'" % (fieldname,fieldvalues[0],fieldvalues[1]))) 166 else: 167 md = md.checkmessage(options.getfieldvalue('message',\ 168 "field '%s' should have values in %s" % (fieldname,fieldvalues))) 149 fieldvalues = options.getfieldvalue('values') 150 if False in m.ismember(field, fieldvalues): 151 if len(fieldvalues) == 1: 152 md = md.checkmessage(options.getfieldvalue('message', "field '{}' value should be '{}'".format(fieldname, fieldvalues[0]))) 153 elif len(fieldvalues) == 2: 154 md = md.checkmessage(options.getfieldvalue('message', "field '{}' values should be '{}' or '%s'".format(fieldname, fieldvalues[0], fieldvalues[1]))) 155 else: 156 md = md.checkmessage(options.getfieldvalue('message', "field '{}' should have values in {}".format(fieldname, fieldvalues))) 169 157 170 158 #check greater … … 172 160 lowerbound = options.getfieldvalue('>=') 173 161 if type(lowerbound) is str: 174 lowerbound =attrgetter(lowerbound)(md)175 if np.size(lowerbound) >1:#checking elementwise176 if any(field <upperbound):177 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values below %d" % (fieldname,upperbound)))178 else: 179 minval =np.nanmin(field)180 if options.getfieldvalue('timeseries', 0):181 minval =np.nanmin(field[:-1])182 elif options.getfieldvalue('singletimeseries', 0):183 if np.size(field) ==1:#some singletimeseries are just one value184 minval =field185 else: 186 minval =np.nanmin(field[0])187 188 if minval <lowerbound:189 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values above %d" % (fieldname,lowerbound)))162 lowerbound = attrgetter(lowerbound)(md) 163 if np.size(lowerbound) > 1: #checking elementwise 164 if any(field < lowerbound): 165 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values above %d" % (fieldname, lowerbound))) 166 else: 167 minval = np.nanmin(field) 168 if options.getfieldvalue('timeseries', 0): 169 minval = np.nanmin(field[: - 1]) 170 elif options.getfieldvalue('singletimeseries', 0): 171 if np.size(field) == 1: #some singletimeseries are just one value 172 minval = field 173 else: 174 minval = np.nanmin(field[0]) 175 176 if minval < lowerbound: 177 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values above %d" % (fieldname, lowerbound))) 190 178 191 179 if options.exist('>'): 192 lowerbound =options.getfieldvalue('>')180 lowerbound = options.getfieldvalue('>') 193 181 if type(lowerbound) is str: 194 lowerbound =attrgetter(lowerbound)(md)195 if np.size(lowerbound) >1:#checking elementwise196 if any(field <=upperbound):197 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values below %d" % (fieldname,upperbound)))198 else: 199 minval =np.nanmin(field)200 if options.getfieldvalue('timeseries', 0):201 minval =np.nanmin(field[:-1])202 elif options.getfieldvalue('singletimeseries', 0):203 if np.size(field) ==1:#some singletimeseries are just one value204 minval =field205 else: 206 minval =np.nanmin(field[0])207 208 if minval <=lowerbound:209 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values above %d" % (fieldname,lowerbound)))182 lowerbound = attrgetter(lowerbound)(md) 183 if np.size(lowerbound) > 1: #checking elementwise 184 if any(field <= lowerbound): 185 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values above %d" % (fieldname, lowerbound))) 186 else: 187 minval = np.nanmin(field) 188 if options.getfieldvalue('timeseries', 0): 189 minval = np.nanmin(field[: - 1]) 190 elif options.getfieldvalue('singletimeseries', 0): 191 if np.size(field) == 1: #some singletimeseries are just one value 192 minval = field 193 else: 194 minval = np.nanmin(field[0]) 195 196 if minval <= lowerbound: 197 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values above %d" % (fieldname, lowerbound))) 210 198 211 199 #check smaller 212 200 if options.exist('<='): 213 upperbound =options.getfieldvalue('<=')201 upperbound = options.getfieldvalue('<=') 214 202 if type(upperbound) is str: 215 upperbound =attrgetter(upperbound)(md)216 if np.size(upperbound) >1:#checking elementwise217 if any(field >upperbound):218 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values below %d" % (fieldname,upperbound)))219 else: 220 maxval =np.nanmax(field)221 if options.getfieldvalue('timeseries', 0):222 maxval =np.nanmax(field[:-1])223 elif options.getfieldvalue('singletimeseries',0):224 if np.size(field) ==1:#some singletimeseries are just one value225 maxval =field226 else: 227 maxval =np.nanmax(field[0])203 upperbound = attrgetter(upperbound)(md) 204 if np.size(upperbound) > 1: #checking elementwise 205 if any(field > upperbound): 206 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values below %d" % (fieldname, upperbound))) 207 else: 208 maxval = np.nanmax(field) 209 if options.getfieldvalue('timeseries', 0): 210 maxval = np.nanmax(field[: - 1]) 211 elif options.getfieldvalue('singletimeseries', 0): 212 if np.size(field) == 1: #some singletimeseries are just one value 213 maxval = field 214 else: 215 maxval = np.nanmax(field[0]) 228 216 elif hasattr(field, 'fov_forward_indices'): 229 maxval =field.fov_forward_indices[0]230 if maxval >upperbound:231 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values below %d" % (fieldname,upperbound)))217 maxval = field.fov_forward_indices[0] 218 if maxval > upperbound: 219 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values below %d" % (fieldname, upperbound))) 232 220 233 221 if options.exist('<'): 234 upperbound =options.getfieldvalue('<')222 upperbound = options.getfieldvalue('<') 235 223 if type(upperbound) is str: 236 upperbound =attrgetter(upperbound)(md)237 if np.size(upperbound) >1:#checking elementwise238 if any(field >=upperbound):239 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values below %d" % (fieldname,upperbound)))240 241 else: 242 maxval =np.nanmax(field)243 if options.getfieldvalue('timeseries', 0):244 maxval =np.nanmax(field[:-1])245 elif options.getfieldvalue('singletimeseries', 0):246 if np.size(field) ==1:#some singletimeseries are just one value247 maxval =field.copy()248 else: 249 maxval =np.nanmax(field[0])250 251 if maxval >=upperbound:252 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values below %d" % (fieldname,upperbound)))224 upperbound = attrgetter(upperbound)(md) 225 if np.size(upperbound) > 1: #checking elementwise 226 if any(field >= upperbound): 227 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values below %d" % (fieldname, upperbound))) 228 229 else: 230 maxval = np.nanmax(field) 231 if options.getfieldvalue('timeseries', 0): 232 maxval = np.nanmax(field[: - 1]) 233 elif options.getfieldvalue('singletimeseries', 0): 234 if np.size(field) == 1: #some singletimeseries are just one value 235 maxval = field.copy() 236 else: 237 maxval = np.nanmax(field[0]) 238 239 if maxval >= upperbound: 240 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have values below %d" % (fieldname, upperbound))) 253 241 254 242 #check file 255 if options.getfieldvalue('file', 0):243 if options.getfieldvalue('file', 0): 256 244 if not os.path.exists(field): 257 md = md.checkmessage("file provided in '%s': '%s' does not exist" % (fieldname, field))245 md = md.checkmessage("file provided in '%s': '%s' does not exist" % (fieldname, field)) 258 246 259 247 #Check row of strings 260 248 if options.exist('stringrow'): 261 if not isinstance(field,list): 262 md = md.checkmessage(options.getfieldvalue('message',\ 263 "field '%s' should be a list" %fieldname)) 249 if not isinstance(field, list): 250 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should be a list" % fieldname)) 264 251 265 252 #Check forcings (size and times) 266 if options.getfieldvalue('timeseries',0): 267 if np.size(field,0)==md.mesh.numberofvertices or np.size(field,0)==md.mesh.numberofelements: 268 if np.ndim(field)>1 and not np.size(field,1)==1: 269 md = md.checkmessage(options.getfieldvalue('message',\ 270 "field '%s' should have only one column as there are md.mesh.numberofvertices lines" % fieldname)) 271 elif np.size(field,0)==md.mesh.numberofvertices+1 or np.size(field,0)==md.mesh.numberofelements+1: 272 if np.ndim(field) > 1 and not all(field[-1,:]==np.sort(field[-1,:])): 273 md = md.checkmessage(options.getfieldvalue('message',\ 274 "field '%s' columns should be sorted chronologically" % fieldname)) 275 if np.ndim(field) > 1 and any(field[-1,0:-1]==field[-1,1:]): 276 md = md.checkmessage(options.getfieldvalue('message',\ 277 "field '%s' columns must not contain duplicate timesteps" % fieldname)) 278 else: 279 md = md.checkmessage(options.getfieldvalue('message',\ 280 "field '%s' should have md.mesh.numberofvertices or md.mesh.numberofvertices+1 lines" % fieldname)) 253 if options.getfieldvalue('timeseries', 0): 254 if np.size(field, 0) == md.mesh.numberofvertices or np.size(field, 0) == md.mesh.numberofelements: 255 if np.ndim(field) > 1 and not np.size(field, 1) == 1: 256 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have only one column as there are md.mesh.numberofvertices lines" % fieldname)) 257 elif np.size(field, 0) == md.mesh.numberofvertices + 1 or np.size(field, 0) == md.mesh.numberofelements + 1: 258 if np.ndim(field) > 1 and not all(field[-1, :] == np.sort(field[-1, :])): 259 md = md.checkmessage(options.getfieldvalue('message', "field '%s' columns should be sorted chronologically" % fieldname)) 260 if np.ndim(field) > 1 and any(field[-1, 0:-1] == field[-1, 1:]): 261 md = md.checkmessage(options.getfieldvalue('message', "field '%s' columns must not contain duplicate timesteps" % fieldname)) 262 else: 263 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have md.mesh.numberofvertices or md.mesh.numberofvertices + 1 lines" % fieldname)) 281 264 282 265 #Check single value forcings (size and times) 283 if options.getfieldvalue('singletimeseries',0): 284 if np.size(field,0)==2: 285 if not all(field[-1,:]==np.sort(field[-1,:])): 286 md = md.checkmessage(options.getfieldvalue('message',\ 287 "field '%s' columns should be sorted chronologically" % fieldname)) 288 if any(field[-1,0:-1]==field[-1,1:]): 289 md = md.checkmessage(options.getfieldvalue('message',\ 290 "field '%s' columns must not contain duplicate timesteps" % fieldname)) 291 elif np.size(field,0) == 1: 292 if np.ndim(field) > 1 and not np.size(field,1) == 1: 293 md = md.checkmessage(options.getfieldvalue('message',\ 294 "field '%s' should be either a scalar or have 2 lines" % fieldname)) 295 else: 296 md = md.checkmessage(options.getfieldvalue('message',\ 297 "field '%s' should have 2 lines or be a scalar" % fieldname)) 266 if options.getfieldvalue('singletimeseries', 0): 267 if np.size(field, 0) == 2: 268 if not all(field[-1, :] == np.sort(field[-1, :])): 269 md = md.checkmessage(options.getfieldvalue('message', "field '%s' columns should be sorted chronologically" % fieldname)) 270 if any(field[-1, 0:-1] == field[-1, 1:]): 271 md = md.checkmessage(options.getfieldvalue('message', "field '%s' columns must not contain duplicate timesteps" % fieldname)) 272 elif np.size(field, 0) == 1: 273 if np.ndim(field) > 1 and not np.size(field, 1) == 1: 274 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should be either a scalar or have 2 lines" % fieldname)) 275 else: 276 md = md.checkmessage(options.getfieldvalue('message', "field '%s' should have 2 lines or be a scalar" % fieldname)) 298 277 299 278 return md -
issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m
r23935 r24213 39 39 40 40 function [analyses]=AnalysisConfiguration(solutiontype), % {{{ 41 %ANALYSISCONFIGURATION - return type of analyses, number of analyses 41 %ANALYSISCONFIGURATION - return type of analyses, number of analyses 42 42 % 43 43 % Usage: … … 71 71 analyses={'EsaAnalysis'}; 72 72 elseif strcmp(solutiontype,'TransientSolution') 73 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis','HydrologyShaktiAnalysis','HydrologyGladsAnalysis' };73 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis','HydrologyShaktiAnalysis','HydrologyGladsAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis'}; 74 74 elseif strcmp(solutiontype,'SealevelriseSolution') 75 75 analyses={'SealevelriseAnalysis'}; -
issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.py
r23935 r24213 4 4 5 5 Usage: 6 [analyses] =AnalysisConfiguration(solutiontype);6 [analyses] = AnalysisConfiguration(solutiontype) 7 7 """ 8 8 … … 28 28 analyses = ['LoveAnalysis'] 29 29 elif solutiontype == 'TransientSolution': 30 analyses = ['StressbalanceAnalysis', 'StressbalanceVerticalAnalysis', 'StressbalanceSIAAnalysis', 'L2ProjectionBaseAnalysis', 'ThermalAnalysis', 'MeltingAnalysis', 'EnthalpyAnalysis', 'MasstransportAnalysis', 'HydrologyShaktiAnalysis','HydrologyGladsAnalysis']30 analyses = ['StressbalanceAnalysis', 'StressbalanceVerticalAnalysis', 'StressbalanceSIAAnalysis', 'L2ProjectionBaseAnalysis', 'ThermalAnalysis', 'MeltingAnalysis', 'EnthalpyAnalysis', 'MasstransportAnalysis', 'HydrologyShaktiAnalysis', 'HydrologyGladsAnalysis', 'HydrologyDCInefficientAnalysis', 'HydrologyDCEfficientAnalysis'] 31 31 elif solutiontype == 'HydrologySolution': 32 32 analyses = ['L2ProjectionBaseAnalysis', 'HydrologyShreveAnalysis', 'HydrologyDCInefficientAnalysis', 'HydrologyDCEfficientAnalysis'] … … 38 38 39 39 return analyses 40 #}}}40 #}}} 41 41 42 42 … … 55 55 solution = md.private.solution 56 56 analyses = AnalysisConfiguration(solution) 57 58 #Go through a model fields, check that it is a class, and call checkconsistency 57 #Go through a model fields, check that it is a class, and call checkconsistency 59 58 #fields = vars(md) 60 59 #for field in fields.iterkeys(): 61 60 for field in md.properties(): 62 63 61 #Some properties do not need to be checked 64 62 if field in ['results', 'debug', 'radaroverlay']: … … 70 68 71 69 #Check consistency of the object 72 exec("md.{}.checkconsistency(md, solution, analyses)".format(field))70 exec("md.{}.checkconsistency(md, '{}', {})".format(field, solution, analyses)) 73 71 74 72 #error message if mode is not consistent 75 73 if not md.private.isconsistent: 76 raise RuntimeError('Model not consistent, 74 raise RuntimeError('Model not consistent, see messages above.') -
issm/trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.py
r23870 r24213 27 27 dimindex = 1 28 28 dimlist = [2, md.mesh.numberofelements, md.mesh.numberofvertices, np.shape(md.mesh.elements)[1]] 29 print(' ===Creating dimensions===')29 print(' == =Creating dimensions == = ') 30 30 for i in range(0, 4): 31 31 if dimlist[i] not in list(DimDict.keys()): … … 38 38 groups = dict.keys(md.__dict__) 39 39 # get all model classes and create respective groups 40 print(' ===Creating and populating groups===')40 print(' == =Creating and populating groups == = ') 41 41 for group in groups: 42 42 NCgroup = NCData.createGroup(str(group)) 43 43 # In each group gather the fields of the class 44 44 fields = dict.keys(md.__dict__[group].__dict__) 45 45 # looping on fields 46 46 for field in fields: 47 47 # Special treatment for list fields … … 80 80 Var = md.__dict__[group].__dict__[field].__getitem__(listindex)[subfield] 81 81 DimDict = CreateVar(NCData, Var, subfield, Listgroup, DimDict, md.__dict__[group], field, listindex) 82 82 # No subgroup, we directly treat the variable 83 83 elif type(md.__dict__[group].__dict__[field]) in typelist or field == 'bamg': 84 84 NCgroup.__setattr__('classtype', md.__dict__[group].__class__.__name__) … … 87 87 elif md.__dict__[group].__dict__[field] is None: 88 88 print('field md.{}.{} is None'.format(group, field)) 89 90 89 # do nothing 90 # if it is a masked array 91 91 elif type(md.__dict__[group].__dict__[field]) is np.ma.core.MaskedArray: 92 92 NCgroup.__setattr__('classtype', md.__dict__[group].__class__.__name__) … … 104 104 NCData.close() 105 105 106 # ============================================================================107 # Define the variables108 109 110 def CreateVar(NCData, var, field, Group, DimDict, * step_args):106 # == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == 107 # Define the variables 108 109 110 def CreateVar(NCData, var, field, Group, DimDict, * step_args): 111 111 # grab type 112 112 try: … … 136 136 elif val_type == list: 137 137 dimensions, DimDict = GetDim(NCData, val_shape, val_type, DimDict, val_dim) 138 138 # try to get the type from the first element 139 139 try: 140 140 nctype = TypeDict[type(var[0])] … … 176 176 return DimDict 177 177 178 # ============================================================================179 # retriev the dimension tuple from a dictionnary178 # == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == 179 # retriev the dimension tuple from a dictionnary 180 180 181 181 -
issm/trunk-jpl/src/m/contrib/defleurian/netCDF/read_netCDF.py
r23772 r24213 1 1 from netCDF4 import Dataset 2 from os import path 3 2 4 3 5 def netCDFRead(filename): 4 5 6 7 8 9 6 def walktree(data): 7 keys = list(data.groups.keys()) 8 yield keys 9 for key in keys: 10 for children in walktree(data.groups[str(key)]): 11 yield children 10 12 11 12 13 NCData=Dataset(filename, 'r')14 class_dict={}13 if path.exists(filename): 14 print(('Opening {} for reading '.format(filename))) 15 NCData = Dataset(filename, 'r') 16 class_dict = {} 15 17 16 17 18 class_dict[str(child)]=str(getattr(NCData.groups[str(child)],'classtype')+'()')18 for children in walktree(NCData): 19 for child in children: 20 class_dict[str(child)] = str(getattr(NCData.groups[str(child)], 'classtype') + '()') 19 21 20 22 print(class_dict) -
issm/trunk-jpl/src/m/contrib/defleurian/paraview/enveloppeVTK.py
r23772 r24213 1 1 import numpy as np 2 2 import os 3 import model4 3 import glob 5 def enveloppeVTK(filename,model,*args):6 '''7 vtk export8 function exportVTK(filename,model)9 creates a directory with the vtk files for displays in paraview10 (only work for triangle and wedges based on their number of nodes)11 4 12 Give only the results for nw but could be extended to geometry, mask...13 5 14 input: filename destination 15 (string) 16 ------------------------------------------------------------------ 17 model this is md 18 ------------------------------------------------------------------ 19 By default only the results are exported, you can add whichever 20 field you need as a string: 21 add 'geometry' to export md.geometry 6 def enveloppeVTK(filename, model, *args): 7 ''' 8 vtk export 9 function exportVTK(filename, model) 10 creates a directory with the vtk files for displays in paraview 11 (only work for triangle and wedges based on their number of nodes) 22 12 23 Basile de Fleurian: 24 ''' 25 Dir=os.path.basename(filename) 26 Path=filename[:-len(Dir)] 13 Give only the results for nw but could be extended to geometry, mask... 27 14 28 if os.path.exists(filename): 29 print(('File {} allready exist'.format(filename))) 30 newname=input('Give a new name or "delete" to replace: ') 31 if newname=='delete': 32 filelist = glob.glob(filename+'/*') 33 for oldfile in filelist: 34 os.remove(oldfile) 35 else: 36 print(('New file name is {}'.format(newname))) 37 filename=newname 38 os.mkdir(filename) 39 else: 40 os.mkdir(filename) 15 input: filename destination 16 (string) 17 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 18 model this is md 19 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 20 By default only the results are exported, you can add whichever 21 field you need as a string: 22 add 'geometry' to export md.geometry 41 23 42 # {{{get the element related variables 43 if 'z' in dict.keys(model.mesh.__dict__): 44 is_enveloppe=np.logical_or(model.mesh.vertexonbase,model.mesh.vertexonsurface) 45 enveloppe_index=np.where(is_enveloppe)[0] 46 convert_index=np.nan*np.ones(np.shape(model.mesh.x)) 47 convert_index=np.asarray([[i,np.where(enveloppe_index==i)[0][0]] for i,val in enumerate(convert_index) if any(enveloppe_index==i)]) 48 points=np.column_stack((model.mesh.x[enveloppe_index], 49 model.mesh.y[enveloppe_index], 50 model.mesh.z[enveloppe_index])) 51 low_elt_num=np.size(np.where(np.isnan(model.mesh.lowerelements))) 52 top_elt_num=np.size(np.where(np.isnan(model.mesh.upperelements))) 53 num_of_elt=low_elt_num+top_elt_num 54 connect=model.mesh.elements[np.where(is_enveloppe[model.mesh.elements-1])].reshape(int(num_of_elt),3)-1 55 for elt in range(0, num_of_elt): 56 connect[elt,0]=convert_index[np.where(convert_index==connect[elt,0])[0],1][0] 57 connect[elt,1]=convert_index[np.where(convert_index==connect[elt,1])[0],1][0] 58 connect[elt,2]=convert_index[np.where(convert_index==connect[elt,2])[0],1][0] 24 Basile de Fleurian: 25 ''' 26 Dir = os.path.basename(filename) 27 Path = filename[: - len(Dir)] 59 28 60 else: 61 points=np.column_stack((model.mesh.x, 62 model.mesh.y, 63 np.zeros(np.shape(model.mesh.x)))) 64 num_of_elt=np.shape(model.mesh.elements)[0] 65 connect=model.mesh.elements-1 66 enveloppe_index=np.arange(0,np.size(model.mesh.x)) 29 if os.path.exists(filename): 30 print(('File {} allready exist'.format(filename))) 31 newname = input('Give a new name or "delete" to replace: ') 32 if newname == 'delete': 33 filelist = glob.glob(filename + '/* ') 34 for oldfile in filelist: 35 os.remove(oldfile) 36 else: 37 print(('New file name is {}'.format(newname))) 38 filename = newname 39 os.mkdir(filename) 40 else: 41 os.mkdir(filename) 67 42 68 every_nodes=np.size(model.mesh.x) 69 num_of_points=np.size(enveloppe_index) 70 dim=3 71 point_per_elt=3 72 celltype=5 #triangles 43 # {{{get the element related variables 44 if 'z' in dict.keys(model.mesh.__dict__): 45 is_enveloppe = np.logical_or(model.mesh.vertexonbase, model.mesh.vertexonsurface) 46 enveloppe_index = np.where(is_enveloppe)[0] 47 convert_index = np.nan * np.ones(np.shape(model.mesh.x)) 48 convert_index = np.asarray([[i, np.where(enveloppe_index == i)[0][0]] for i, val in enumerate(convert_index) if any(enveloppe_index == i)]) 49 points = np.column_stack((model.mesh.x[enveloppe_index], 50 model.mesh.y[enveloppe_index], 51 model.mesh.z[enveloppe_index])) 52 low_elt_num = np.size(np.where(np.isnan(model.mesh.lowerelements))) 53 top_elt_num = np.size(np.where(np.isnan(model.mesh.upperelements))) 54 num_of_elt = low_elt_num + top_elt_num 55 connect = model.mesh.elements[np.where(is_enveloppe[model.mesh.elements - 1])].reshape(int(num_of_elt), 3) - 1 56 for elt in range(0, num_of_elt): 57 connect[elt, 0] = convert_index[np.where(convert_index == connect[elt, 0])[0], 1][0] 58 connect[elt, 1] = convert_index[np.where(convert_index == connect[elt, 1])[0], 1][0] 59 connect[elt, 2] = convert_index[np.where(convert_index == connect[elt, 2])[0], 1][0] 73 60 74 # }}} 75 # {{{this is the result structure 76 res_struct=model.results 77 if (len(res_struct.__dict__)>0): 78 #Getting all the solutions of the model 79 solnames=(dict.keys(res_struct.__dict__)) 80 num_of_sols=len(solnames) 81 num_of_timesteps=1 82 #%building solutionstructure 83 for solution in solnames: 84 #looking for multiple time steps 85 if (np.size(res_struct.__dict__[solution])>num_of_timesteps): 86 num_of_timesteps=np.size(res_struct.__dict__[solution]) 87 num_of_timesteps=int(num_of_timesteps) 88 else: 89 num_of_timesteps=1 90 # }}} 91 # {{{write header and mesh 92 for step in range(0,num_of_timesteps): 93 timestep=step 94 fid=open((filename +'/Timestep.vtk'+str(timestep)+'.vtk'),'w+') 95 fid.write('# vtk DataFile Version 2.0 \n') 96 fid.write('Data for run %s \n' % model.miscellaneous.name) 97 fid.write('ASCII \n') 98 fid.write('DATASET UNSTRUCTURED_GRID \n') 99 fid.write('POINTS %d float\n' % num_of_points) 100 for point in points: 101 fid.write('%f %f %f \n'%(point[0], point[1], point[2])) 61 else: 62 points = np.column_stack((model.mesh.x, 63 model.mesh.y, 64 np.zeros(np.shape(model.mesh.x)))) 65 num_of_elt = np.shape(model.mesh.elements)[0] 66 connect = model.mesh.elements - 1 67 enveloppe_index = np.arange(0, np.size(model.mesh.x)) 102 68 103 fid.write('CELLS %d %d\n' %(num_of_elt, num_of_elt*(point_per_elt+1))) 69 every_nodes = np.size(model.mesh.x) 70 num_of_points = np.size(enveloppe_index) 71 dim = 3 72 point_per_elt = 3 73 celltype = 5 #triangles 104 74 105 for elt in range(0, num_of_elt): 106 fid.write('3 %d %d %d\n' %(connect[elt,0], 107 connect[elt,1], 108 connect[elt,2])) 75 # }}} 76 # {{{this is the result structure 77 res_struct = model.results 78 if (len(res_struct.__dict__) > 0): 79 #Getting all the solutions of the model 80 solnames = (dict.keys(res_struct.__dict__)) 81 num_of_sols = len(solnames) 82 num_of_timesteps = 1 83 #%building solutionstructure 84 for solution in solnames: 85 #looking for multiple time steps 86 if (np.size(res_struct.__dict__[solution]) > num_of_timesteps): 87 num_of_timesteps = np.size(res_struct.__dict__[solution]) 88 num_of_timesteps = int(num_of_timesteps) 89 else: 90 num_of_timesteps = 1 91 # }}} 92 # {{{write header and mesh 93 for step in range(0, num_of_timesteps): 94 timestep = step 95 fid = open((filename + '/Timestep.vtk' + str(timestep) + '.vtk'), 'w + ') 96 fid.write(' # vtk DataFile Version 2.0 \n') 97 fid.write('Data for run %s \n' % model.miscellaneous.name) 98 fid.write('ASCII \n') 99 fid.write('DATASET UNSTRUCTURED_GRID \n') 100 fid.write('POINTS %d float\n' % num_of_points) 101 for point in points: 102 fid.write('%f %f %f \n' % (point[0], point[1], point[2])) 109 103 110 fid.write('CELL_TYPES %d\n' %num_of_elt) 111 for elt in range(0, num_of_elt): 112 fid.write('%d\n' %celltype) 104 fid.write('CELLS %d %d\n' % (num_of_elt, num_of_elt * (point_per_elt + 1))) 113 105 114 fid.write('POINT_DATA %s \n' %str(num_of_points)) 115 # }}} 116 # {{{loop over the different solution structures 117 if 'solnames' in locals(): 118 for sol in solnames: 119 #dealing with results on different timesteps 120 if(np.size(res_struct.__dict__[sol])>timestep): 121 timestep = step 122 else: 123 timestep = np.size(res_struct.__dict__[sol]) 106 for elt in range(0, num_of_elt): 107 fid.write('3 %d %d %d\n' % (connect[elt, 0], 108 connect[elt, 1], 109 connect[elt, 2])) 124 110 125 #getting the fields in the solution 126 if(type(res_struct.__dict__[sol])==list): 127 fieldnames=dict.keys(res_struct.__dict__[sol].__getitem__(timestep).__dict__) 128 else: 129 fieldnames=dict.keys(res_struct.__dict__[sol].__dict__) 130 #check which field is a real result and print 131 for field in fieldnames: 132 if(type(res_struct.__dict__[sol])==list): 133 fieldstruct=res_struct.__dict__[sol].__getitem__(timestep).__dict__[field] 134 else: 135 fieldstruct=res_struct.__dict__[sol].__dict__[field] 111 fid.write('CELL_TYPES %d\n' % num_of_elt) 112 for elt in range(0, num_of_elt): 113 fid.write('%d\n' % celltype) 136 114 137 if ((np.size(fieldstruct))==every_nodes): 138 fid.write('SCALARS %s float 1 \n' % field) 139 fid.write('LOOKUP_TABLE default\n') 140 for node in range(0,num_of_points): 141 #paraview does not like NaN, replacing 142 if np.isnan(fieldstruct[enveloppe_index[node]]): 143 fid.write('%e\n' % -9999.9999) 144 #also checking for verry small value that mess up 145 elif (abs(fieldstruct[enveloppe_index[node]])<1.0e-20): 146 fid.write('%e\n' % 0.0) 147 else: 148 fid.write('%e\n' % fieldstruct[enveloppe_index[node]]) 149 # }}} 150 # {{{loop on arguments, if something other than result is asked, do it now 115 fid.write('POINT_DATA %s \n' % str(num_of_points)) 116 # }}} 117 # {{{loop over the different solution structures 118 if 'solnames' in locals(): 119 for sol in solnames: 120 #dealing with results on different timesteps 121 if(np.size(res_struct.__dict__[sol]) > timestep): 122 timestep = step 123 else: 124 timestep = np.size(res_struct.__dict__[sol]) 151 125 152 for other in args: 153 other_struct=model.__dict__[other] 154 othernames=(dict.keys(other_struct.__dict__)) 155 for field in othernames: 156 if ((np.size(other_struct.__dict__[field]))==every_nodes): 157 fid.write('SCALARS %s float 1 \n' % field) 158 fid.write('LOOKUP_TABLE default\n') 159 for node in range(0,num_of_points): 160 #paraview does not like NaN, replacing 161 if np.isnan(other_struct.__dict__[field][enveloppe_index[node]]): 162 fid.write('%e\n' % -9999.9999) 163 #also checking for verry small value that mess up 164 elif (abs(other_struct.__dict__[field][enveloppe_index[node]])<1.0e-20): 165 fid.write('%e\n' % 0.0) 166 else: 167 fid.write('%e\n' % other_struct.__dict__[field][enveloppe_index[node]]) 126 #getting the fields in the solution 127 if(type(res_struct.__dict__[sol]) == list): 128 fieldnames = dict.keys(res_struct.__dict__[sol].__getitem__(timestep).__dict__) 129 else: 130 fieldnames = dict.keys(res_struct.__dict__[sol].__dict__) 131 #check which field is a real result and print 132 for field in fieldnames: 133 if(type(res_struct.__dict__[sol]) == list): 134 fieldstruct = res_struct.__dict__[sol].__getitem__(timestep).__dict__[field] 135 else: 136 fieldstruct = res_struct.__dict__[sol].__dict__[field] 168 137 169 # }}} 170 fid.close(); 138 if ((np.size(fieldstruct)) == every_nodes): 139 fid.write('SCALARS %s float 1 \n' % field) 140 fid.write('LOOKUP_TABLE default\n') 141 for node in range(0, num_of_points): 142 #paraview does not like NaN, replacing 143 if np.isnan(fieldstruct[enveloppe_index[node]]): 144 fid.write('%e\n' % - 9999.9999) 145 #also checking for verry small value that mess up 146 elif (abs(fieldstruct[enveloppe_index[node]]) < 1.0e-20): 147 fid.write('%e\n' % 0.0) 148 else: 149 fid.write('%e\n' % fieldstruct[enveloppe_index[node]]) 150 # }}} 151 # {{{loop on arguments, if something other than result is asked, do it now 152 153 for other in args: 154 other_struct = model.__dict__[other] 155 othernames = (dict.keys(other_struct.__dict__)) 156 for field in othernames: 157 if ((np.size(other_struct.__dict__[field])) == every_nodes): 158 fid.write('SCALARS %s float 1 \n' % field) 159 fid.write('LOOKUP_TABLE default\n') 160 for node in range(0, num_of_points): 161 #paraview does not like NaN, replacing 162 if np.isnan(other_struct.__dict__[field][enveloppe_index[node]]): 163 fid.write('%e\n' % - 9999.9999) 164 #also checking for verry small value that mess up 165 elif (abs(other_struct.__dict__[field][enveloppe_index[node]]) < 1.0e-20): 166 fid.write('%e\n' % 0.0) 167 else: 168 fid.write('%e\n' % other_struct.__dict__[field][enveloppe_index[node]]) 169 170 # }}} 171 fid.close() -
issm/trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.py
r24115 r24213 7 7 ''' 8 8 vtk export 9 function exportVTK(filename, md)9 function exportVTK(filename, md) 10 10 creates a directory with the vtk files for displays in paraview 11 11 (only work for triangle and wedges based on their number of nodes) 12 12 13 13 Usage: 14 exportVTK('DirName', md)15 exportVTK('DirName', md,'geometry','mesh')16 exportVTK('DirName', md,'geometry','mesh',enveloppe=True)14 exportVTK('DirName', md) 15 exportVTK('DirName', md, 'geometry', 'mesh') 16 exportVTK('DirName', md, 'geometry', 'mesh', enveloppe = True) 17 17 18 18 DirName is the name of the output directory, each timestep then has it … … 27 27 # File checking and creation {{{ 28 28 Dir = path.basename(filename) 29 Path = filename[: -len(Dir)]29 Path = filename[: - len(Dir)] 30 30 if path.exists(filename): 31 31 print(('File {} allready exist'.format(filename))) 32 32 newname = input('Give a new name or "delete" to replace: ') 33 33 if newname == 'delete': 34 filelist = glob(filename + '/* ')34 filelist = glob(filename + '/* ') 35 35 for oldfile in filelist: 36 36 remove(oldfile) … … 102 102 103 103 else: 104 #we get all the mesh, 104 #we get all the mesh, mainly defining dummies 105 105 num_of_elt = every_cells 106 106 connect = md.mesh.elements - 1 … … 120 120 saved_cells = {} 121 121 timestep = step 122 fid = open((filename + '/Timestep.vtk' + str(timestep) + '.vtk'), 'w +')123 fid.write(' # vtk DataFile Version 3.0 \n')122 fid = open((filename + '/Timestep.vtk' + str(timestep) + '.vtk'), 'w + ') 123 fid.write(' # vtk DataFile Version 3.0 \n') 124 124 fid.write('Data for run {} \n'.format(md.miscellaneous.name)) 125 125 fid.write('ASCII \n') 126 126 fid.write('DATASET UNSTRUCTURED_GRID \n') 127 127 fid.write('POINTS {:d} float\n'.format(num_of_points)) 128 128 #updating z for mesh evolution 129 129 if moving_mesh: 130 130 base = np.squeeze(res_struct.__dict__['TransientSolution'][step].__dict__['Base'][enveloppe_index]) … … 157 157 158 158 fid.write('POINT_DATA {:s} \n'.format(str(num_of_points))) 159 160 # loop over the different solution structures{{{161 159 # }}} 160 # {{{loop over the different solution structures 161 # first check if there are solutions to grab 162 162 if 'solnames' in locals(): 163 163 for sol in solnames: 164 164 treated_res = [] 165 165 #dealing with results on different timesteps 166 166 if(np.size(res_struct.__dict__[sol]) > timestep): 167 167 timestep = step … … 169 169 timestep = np.size(res_struct.__dict__[sol]) 170 170 171 171 #getting the fields in the solution 172 172 if(type(res_struct.__dict__[sol]) == list): 173 173 spe_res_struct = res_struct.__dict__[sol].__getitem__(timestep) … … 177 177 fieldnames = dict.keys(spe_res_struct.__dict__) 178 178 179 #Sorting scalars,vectors and tensors179 #Sorting scalars, vectors and tensors 180 180 tensors = [field for field in fieldnames if field[-2:] in ['xx', 'yy', 'xy', 'zz', 'xz', 'yz']] 181 181 non_tensor = [field for field in fieldnames if field not in tensors] 182 182 vectors = [field for field in non_tensor if field[-1] in ['x', 'y', 'z']] 183 183 184 184 #check which field is a real result and print 185 185 for field in fieldnames: 186 186 if field in treated_res: … … 214 214 Txystruct = np.squeeze(spe_res_struct.__dict__[field[:-2] + 'xy']) 215 215 Tyystruct = np.squeeze(spe_res_struct.__dict__[field[:-2] + 'yy']) 216 treated_res += [field[: -2] + 'xx', field[:-2] + 'xy', field[:-2] + 'yy']216 treated_res += [field[: - 2] + 'xx', field[: - 2] + 'xy', field[: - 2] + 'yy'] 217 217 if dim == 3: 218 218 Tzzstruct = np.squeeze(spe_res_struct.__dict__[field[:-2] + 'zz']) 219 219 Txzstruct = np.squeeze(spe_res_struct.__dict__[field[:-2] + 'xz']) 220 220 Tyzstruct = np.squeeze(spe_res_struct.__dict__[field[:-2] + 'yz']) 221 treated_res += [field[: -2] + 'zz', field[:-2] + 'xz', field[:-2] + 'yz']221 treated_res += [field[: - 2] + 'zz', field[: - 2] + 'xz', field[: - 2] + 'yz'] 222 222 223 223 except KeyError: … … 225 225 tensors.remove(field) 226 226 227 fid.write('TENSORS {} float \n'.format(field[: -2]))227 fid.write('TENSORS {} float \n'.format(field[: - 2])) 228 228 for node in range(0, num_of_points): 229 229 Txx = cleanOutliers(Txxstruct[enveloppe_index[node]]) … … 250 250 elif ((np.size(spe_res_struct.__dict__[field])) == every_cells): 251 251 saved_cells[field] = np.squeeze(spe_res_struct.__dict__[field]) 252 253 # loop on arguments, if something other than result is asked,do it now {{{252 # }}} 253 # loop on arguments, if something other than result is asked, do it now {{{ 254 254 for other in args: 255 255 other_struct = md.__dict__[other] … … 264 264 elif (np.size(other_struct.__dict__[field]) == every_cells): 265 265 saved_cells[field] = other_struct.__dict__[field] 266 267 266 # }}} 267 # Now writting cell variables {{{ 268 268 if np.size(list(saved_cells.keys())) > 0: 269 269 fid.write('CELL_DATA {:d} \n'.format(num_of_elt)) … … 274 274 outval = cleanOutliers(saved_cells[key][cell]) 275 275 fid.write('{:f}\n'.format(outval)) 276 276 # }}} 277 277 fid.close() 278 278 279 279 280 280 def cleanOutliers(Val): 281 #paraview does not like NaN, 281 #paraview does not like NaN, replacing 282 282 if np.isnan(Val): 283 CleanVal = - 9999.999284 283 CleanVal = - 9999.999 284 #also checking for very small value that mess up 285 285 elif (abs(Val) < 1.0e-20): 286 286 CleanVal = 0.0 -
issm/trunk-jpl/src/m/contrib/morlighem/bamg/YamsCall.py
r23716 r24213 1 1 import numpy as np 2 import MatlabFuncs as m 2 3 import time 3 4 import subprocess … … 6 7 from ComputeMetric import ComputeMetric 7 8 8 def YamsCall(md,field,hmin,hmax,gradation,epsilon):9 """10 YAMSCALL - call yams11 9 12 build a metric using the Hessian of the given field 13 call Yams and the output mesh is plugged onto the model 14 -hmin = minimum edge length (m) 15 -hmax = maximum edge length (m) 16 -gradation = maximum edge length gradation between 2 elements 17 -epsilon = average error on each element (m/yr) 10 def YamsCall(md, field, hmin, hmax, gradation, epsilon): 11 """ 12 YAMSCALL - call yams 18 13 19 Usage: 20 md=YamsCall(md,field,hmin,hmax,gradation,epsilon); 14 build a metric using the Hessian of the given field 15 call Yams and the output mesh is plugged onto the model 16 - hmin = minimum edge length (m) 17 - hmax = maximum edge length (m) 18 - gradation = maximum edge length gradation between 2 elements 19 - epsilon = average error on each element (m / yr) 21 20 22 Example: 23 md=YamsCall(md,md.inversion.vel_obs,1500,10^8,1.3,0.9); 24 """ 21 Usage: 22 md = YamsCall(md, field, hmin, hmax, gradation, epsilon) 25 23 26 #2d geometric parameter (do not change) 27 scale=2./9. 24 Example: 25 md = YamsCall(md, md.inversion.vel_obs, 1500, 10^8, 1.3, 0.9) 26 """ 28 27 29 #Compute Hessian 30 t1=time.time() 31 print(("%s" % ' computing Hessian...')) 32 hessian=ComputeHessian(md.mesh.elements,md.mesh.x,md.mesh.y,field,'node') 33 t2=time.time() 34 print(("%s%d%s\n" % (' done (',t2-t1,' seconds)'))) 28 #2d geometric parameter (do not change) 29 scale = 2. / 9. 35 30 36 #Compute metric 37 t1=time.time()38 print(("%s" % ' computing metric...'))39 metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,np.empty(0,int))40 t2=time.time()41 print(("%s%d%s\n" % (' done (',t2-t1,' seconds)')))31 #Compute Hessian 32 t1 = time.time() 33 print(("%s" % ' computing Hessian...')) 34 hessian = ComputeHessian(md.mesh.elements, md.mesh.x, md.mesh.y, field, 'node') 35 t2 = time.time() 36 print(("%s%d%s\n" % (' done (', t2 - t1, ' seconds)'))) 42 37 43 #write files 44 t1=time.time() 45 print(("%s" % ' writing initial mesh files...')) 46 np.savetxt('carre0.met',metric) 38 #Compute metric 39 t1 = time.time() 40 print(("%s" % ' computing metric...')) 41 metric = ComputeMetric(hessian, scale, epsilon, hmin, hmax, np.empty(0, int)) 42 t2 = time.time() 43 print(("%s%d%s\n" % (' done (', t2 - t1, ' seconds)'))) 47 44 48 f=open('carre0.mesh','w') 45 #write files 46 t1 = time.time() 47 print(("%s" % ' writing initial mesh files...')) 48 np.savetxt('carre0.met', metric) 49 49 50 #initialiation 51 f.write("\n%s\n%i\n" % ('MeshVersionFormatted',1)) 50 f = open('carre0.mesh', 'w') 52 51 53 #dimension54 f.write("\n%s\n%i\n" % ('Dimension',2))52 #initialiation 53 f.write("\n%s\n%i\n" % ('MeshVersionFormatted', 1)) 55 54 56 #Vertices 57 f.write("\n%s\n%i\n\n" % ('Vertices',md.mesh.numberofvertices)) 58 for i in range(0,md.mesh.numberofvertices): 59 f.write("%8g %8g %i\n" % (md.mesh.x[i],md.mesh.y[i],0)) 55 #dimension 56 f.write("\n%s\n%i\n" % ('Dimension', 2)) 60 57 61 #Triangles 62 f.write("\n\n%s\n%i\n\n" % ('Triangles',md.mesh.numberofelements)) 63 for i in range(0,md.mesh.numberofelements): 64 f.write("%i %i %i %i\n" % (md.mesh.elements[i,0],md.mesh.elements[i,1],md.mesh.elements[i,2],0)) 65 numberofelements1=md.mesh.numberofelements 58 #Vertices 59 f.write("\n%s\n%i\n\n" % ('Vertices', md.mesh.numberofvertices)) 60 for i in range(0, md.mesh.numberofvertices): 61 f.write("%8g %8g %i\n" % (md.mesh.x[i], md.mesh.y[i], 0)) 66 62 67 #Deal with rifts 68 if np.any(not np.isnan(md.rifts.riftstruct)): 63 #Triangles 64 f.write("\n\n%s\n%i\n\n" % ('Triangles', md.mesh.numberofelements)) 65 for i in range(0, md.mesh.numberofelements): 66 f.write("%i %i %i %i\n" % (md.mesh.elements[i, 0], md.mesh.elements[i, 1], md.mesh.elements[i, 2], 0)) 67 numberofelements1 = md.mesh.numberofelements 69 68 70 #we have the list of triangles that make up the rift. keep those triangles around during refinement. 71 triangles=np.empty(0,int) 72 for riftstruct in md.rifts.riftstruct: 73 triangles=np.concatenate((triangles,riftstruct.segments[:,2])) 69 #Deal with rifts 70 if np.any(not np.isnan(md.rifts.riftstruct)): 74 71 75 f.write("\n\n%s\n%i\n\n" % ('RequiredTriangles',np.size(triangles))) 76 for triangle in triangles: 77 f.write("%i\n" % triangle) 72 #we have the list of triangles that make up the rift. keep those triangles around during refinement. 73 triangles = np.empty(0, int) 74 for riftstruct in md.rifts.riftstruct: 75 triangles = np.concatenate((triangles, riftstruct.segments[:, 2])) 78 76 79 #close 80 f.close() 81 t2=time.time() 82 print(("%s%d%s\n" % (' done (',t2-t1,' seconds)'))) 77 f.write("\n\n%s\n%i\n\n" % ('RequiredTriangles', np.size(triangles))) 78 for triangle in triangles: 79 f.write("%i\n" % triangle) 83 80 84 #call yams 85 print(("%s\n" % ' call Yams...')) 86 if m.ispc(): 87 #windows 88 subprocess.call('yams2-win -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True) 89 elif ismac(): 90 #Macosx 91 subprocess.call('yams2-osx -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True) 92 else: 93 #Linux 94 subprocess.call('yams2-linux -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True) 81 #close 82 f.close() 83 t2 = time.time() 84 print(("%s%d%s\n" % (' done (', t2 - t1, ' seconds)'))) 95 85 96 #plug new mesh 97 t1=time.time() 98 print(("\n%s" % ' reading final mesh files...')) 99 Tria=np.loadtxt('carre1.tria',int) 100 Coor=np.loadtxt('carre1.coor',float) 101 md.mesh.x=Coor[:,0] 102 md.mesh.y=Coor[:,1] 103 md.mesh.z=np.zeros((np.size(Coor,axis=0),1)) 104 md.mesh.elements=Tria 105 md.mesh.numberofvertices=np.size(Coor,axis=0) 106 md.mesh.numberofelements=np.size(Tria,axis=0) 107 numberofelements2=md.mesh.numberofelements 108 t2=time.time() 109 print(("%s%d%s\n\n" % (' done (',t2-t1,' seconds)'))) 86 #call yams 87 print(("%s\n" % ' call Yams...')) 88 if m.ispc(): 89 #windows 90 subprocess.call('yams2 - win - O 1 - v - 0 - ecp - hgrad %g carre0 carre1' % gradation, shell=True) 91 elif m.ismac(): 92 #Macosx 93 subprocess.call('yams2 - osx - O 1 - v - 0 - ecp - hgrad %g carre0 carre1' % gradation, shell=True) 94 else: 95 #Linux 96 subprocess.call('yams2 - linux - O 1 - v - 0 - ecp - hgrad %g carre0 carre1' % gradation, shell=True) 110 97 111 #display number of elements 112 print(("\n%s %i" % (' inital number of elements:',numberofelements1))) 113 print(("\n%s %i\n\n" % (' new number of elements:',numberofelements2))) 98 #plug new mesh 99 t1 = time.time() 100 print(("\n%s" % ' reading final mesh files...')) 101 Tria = np.loadtxt('carre1.tria', int) 102 Coor = np.loadtxt('carre1.coor', float) 103 md.mesh.x = Coor[:, 0] 104 md.mesh.y = Coor[:, 1] 105 md.mesh.z = np.zeros((np.size(Coor, axis=0), 1)) 106 md.mesh.elements = Tria 107 md.mesh.numberofvertices = np.size(Coor, axis=0) 108 md.mesh.numberofelements = np.size(Tria, axis=0) 109 numberofelements2 = md.mesh.numberofelements 110 t2 = time.time() 111 print(("%s%d%s\n\n" % (' done (', t2 - t1, ' seconds)'))) 114 112 115 #clean up: 116 os.remove('carre0.mesh') 117 os.remove('carre0.met') 118 os.remove('carre1.tria') 119 os.remove('carre1.coor') 120 os.remove('carre1.meshb') 113 #display number of elements 114 print(("\n%s %i" % (' inital number of elements:', numberofelements1))) 115 print(("\n%s %i\n\n" % (' new number of elements:', numberofelements2))) 121 116 122 return md 117 #clean up: 118 os.remove('carre0.mesh') 119 os.remove('carre0.met') 120 os.remove('carre1.tria') 121 os.remove('carre1.coor') 122 os.remove('carre1.meshb') 123 123 124 return md -
issm/trunk-jpl/src/m/coordsystems/gmtmask.py
r23737 r24213 5 5 import subprocess 6 6 7 def gmtmask(lat,long,*varargin):8 #GMTMASK - figure out which lat,long points are on the ocean9 #10 # Usage:11 # mask.ocean = gmtmask(md.mesh.lat,md.mesh.long);12 #13 lenlat=len(lat)14 mask=np.empty(lenlat)15 16 #are we doing a recursive call?17 if len(varargin)==3:18 recursive=119 else:20 recursive=021 7 22 if recursive: 23 print((' recursing: num vertices #'+str(lenlat))) 24 else: 25 print(('gmtmask: num vertices #'+str(lenlat))) 26 27 #Check lat and long size is not more than 50,000 If so, recursively call gmtmask: 8 def gmtmask(lat, long, * varargin): 9 '''GMTMASK - figure out which lat, long points are on the ocean 28 10 29 if lenlat>50000: 30 for i in range(int(ceil(lenlat/50000))): 31 j=(i+1)*50000-1 32 if j>lenlat: 33 j=lenlat 34 mask[i:j]=gmtmask(lat[i:j],int[i:j],1) 35 return mask 36 37 38 #First, write our lat,long file for gmt: 39 nv=lenlat 40 #print(np.transpose([int, lat, np.arange(1,nv+1)])) 41 np.savetxt('./all_vertices.txt',np.transpose([long, lat, np.arange(1,nv+1)]),delimiter='\t',fmt='%.10f') 11 Usage: 12 mask.ocean = gmtmask(md.mesh.lat, md.mesh.long) 13 ''' 14 lenlat = len(lat) 15 mask = np.empty(lenlat) 42 16 43 #Avoid bypassing of the ld library path by Matlab (:() 44 try: 45 issmdir 46 except: 47 issmdir=getenv('ISSM_DIR') 48 try: 49 ismac 50 except: 51 ismac=False 17 #are we doing a recursive call? 18 if len(varargin) == 3: 19 recursive = 1 20 else: 21 recursive = 0 52 22 53 if ismac: 54 dyld_library_path_old=getenv('DYLD_LIBRARY_PATH') 55 putenv('DYLD_LIBRARY_PATH',issmdir+'/externalpackages/curl/install/lib:'+issmdir+'/externalpackages/hdf5/install/lib:'+issmdir+'/externalpackages/netcdf/install/lib') 56 57 #figure out which vertices are on the ocean, which one on the continent: 58 subprocess.call(issmdir+'/externalpackages/gmt/install/bin/gmt gmtselect ./all_vertices.txt -h0 -Df -R0/360/-90/90 -A0 -JQ180/200 -Nk/s/s/k/s > ./oce_vertices.txt',shell=True) 23 if recursive: 24 print((' recursing: num vertices #' + str(lenlat))) 25 else: 26 print(('gmtmask: num vertices #' + str(lenlat))) 59 27 60 #reset DYLD_LIBRARY_PATH to what it was: 61 if ismac: 62 putenv('DYLD_LIBRARY_PATH',dyld_library_path_old) 63 64 #read the con_vertices.txt file and flag our mesh vertices on the continent 65 fid=open('./oce_vertices.txt','r') 66 line=fid.readline() 67 line=fid.readline() 68 oce_vertices=[] 69 while line: 70 ind=int(float(line.split()[2]))-1; 71 oce_vertices.append(ind) 72 line=fid.readline() 73 fid.close() 28 #Check lat and long size is not more than 50, 000 If so, recursively call gmtmask: 74 29 75 mask=np.zeros(nv) 76 mask[oce_vertices]=1 77 78 subprocess.call('rm -rf ./all_vertices.txt ./oce_vertices.txt ./gmt.history',shell=True) 79 if not recursive: 80 print('gmtmask: done') 81 return mask 30 if lenlat > 50000: 31 for i in range(int(ceil(lenlat / 50000))): 32 j = (i + 1) * 50000 - 1 33 if j > lenlat: 34 j = lenlat 35 mask[i:j] = gmtmask(lat[i:j], int[i:j], 1) 36 return mask 37 38 #First, write our lat, long file for gmt: 39 nv = lenlat 40 #print(np.transpose([int, lat, np.arange(1, nv + 1)])) 41 np.savetxt('./all_vertices.txt', np.transpose([long, lat, np.arange(1, nv + 1)]), delimiter='\t', fmt='%.10f') 42 43 #Avoid bypassing of the ld library path by Matlab (:() 44 try: 45 issmdir 46 except NameError: 47 issmdir = getenv('ISSM_DIR') 48 try: 49 ismac 50 except NameError: 51 ismac = False 52 53 if ismac: 54 dyld_library_path_old = getenv('DYLD_LIBRARY_PATH') 55 putenv('DYLD_LIBRARY_PATH', issmdir + '/externalpackages/curl/install/lib:' + issmdir + '/externalpackages/hdf5/install/lib:' + issmdir + '/externalpackages/netcdf/install/lib') 56 57 #figure out which vertices are on the ocean, which one on the continent: 58 subprocess.call(issmdir + '/externalpackages/gmt/install/bin/gmt gmtselect ./ all_vertices.txt -h0 -Df -R0/360/-90/90 -A0- JQ180/200 - Nk/s/s/k/s > ./oce_vertices.txt', shell=True) 59 60 #reset DYLD_LIBRARY_PATH to what it was: 61 if ismac: 62 putenv('DYLD_LIBRARY_PATH', dyld_library_path_old) 63 64 #read the con_vertices.txt file and flag our mesh vertices on the continent 65 fid = open('./oce_vertices.txt', 'r') 66 line = fid.readline() 67 line = fid.readline() 68 oce_vertices = [] 69 while line: 70 ind = int(float(line.split()[2])) - 1 71 oce_vertices.append(ind) 72 line = fid.readline() 73 fid.close() 74 75 mask = np.zeros(nv) 76 mask[oce_vertices] = 1 77 78 subprocess.call('rm -rf ./all_vertices.txt ./oce_vertices.txt ./gmt.history', shell=True) 79 if not recursive: 80 print('gmtmask: done') 81 return mask -
issm/trunk-jpl/src/m/coordsystems/ll2xy.py
r23716 r24213 1 import numpy as np1 import numpy as np 2 2 3 def ll2xy(lat,lon,sgn=-1,central_meridian=0,standard_parallel=71):4 '''5 LL2XY - converts lat lon to polar stereographic6 3 7 Converts from geodetic latitude and longitude to Polar 8 Stereographic (X,Y) coordinates for the polar regions. 4 def ll2xy(lat, lon, sgn=-1, central_meridian=0, standard_parallel=71): 5 ''' 6 LL2XY - converts lat lon to polar stereographic 7 8 Converts from geodetic latitude and longitude to Polar 9 Stereographic (X, Y) coordinates for the polar regions. 9 10 Author: Michael P. Schodlok, December 2003 (map2ll) 10 11 11 12 Usage: 12 x, y = ll2xy(lat,lon,sgn)13 x, y = ll2xy(lat,lon,sgn,central_meridian,standard_parallel)13 x, y = ll2xy(lat, lon, sgn) 14 x, y = ll2xy(lat, lon, sgn, central_meridian, standard_parallel) 14 15 15 - sgn = Sign of latitude +1 : north latitude (default is mer=45 lat=70)16 -1 : south latitude (default is mer=0 lat=71)17 16 - sgn = Sign of latitude + 1 : north latitude (default is mer = 45 lat = 70) 17 - 1 : south latitude (default is mer = 0 lat = 71) 18 ''' 18 19 19 assert sgn==1 or sgn==-1, 'error: sgn should be either +1 or -1'20 assert sgn == 1 or sgn == - 1, 'error: sgn should be either + 1 or - 1' 20 21 21 #Get central_meridian and standard_parallel depending on hemisphere 22 if sgn == 1: 23 delta = 45 24 slat = 70 25 print(' ll2xy: creating coordinates in north polar stereographic (Std Latitude: 70N Meridian: 45)') 26 else: 27 delta = central_meridian 28 slat = standard_parallel 29 print(' ll2xy: creating coordinates in south polar stereographic (Std Latitude: 71S Meridian: 0)') 30 31 # Conversion constant from degrees to radians 32 cde = 57.29577951 33 # Radius of the earth in meters 34 re = 6378.273*10**3 35 # Eccentricity of the Hughes ellipsoid squared 36 ex2 = .006693883 37 # Eccentricity of the Hughes ellipsoid 38 ex = np.sqrt(ex2) 39 40 latitude = np.abs(lat) * np.pi/180. 41 longitude = (lon + delta) * np.pi/180. 42 43 # compute X and Y in grid coordinates. 44 T = np.tan(np.pi/4-latitude/2) / ((1-ex*np.sin(latitude))/(1+ex*np.sin(latitude)))**(ex/2) 45 46 if (90 - slat) < 1.e-5: 47 rho = 2.*re*T/np.sqrt((1.+ex)**(1.+ex)*(1.-ex)**(1.-ex)) 48 else: 49 sl = slat*np.pi/180. 50 tc = np.tan(np.pi/4.-sl/2.)/((1.-ex*np.sin(sl))/(1.+ex*np.sin(sl)))**(ex/2.) 51 mc = np.cos(sl)/np.sqrt(1.0-ex2*(np.sin(sl)**2)) 52 rho = re*mc*T/tc 53 54 y = -rho * sgn * np.cos(sgn*longitude) 55 x = rho * sgn * np.sin(sgn*longitude) 22 #Get central_meridian and standard_parallel depending on hemisphere 23 if sgn == 1: 24 delta = 45 25 slat = 70 26 print(' ll2xy: creating coordinates in north polar stereographic (Std Latitude: 70N Meridian: 45)') 27 else: 28 delta = central_meridian 29 slat = standard_parallel 30 print(' ll2xy: creating coordinates in south polar stereographic (Std Latitude: 71S Meridian: 0)') 56 31 57 cnt1=np.nonzero(latitude>= np.pi/2.)[0] 58 59 if cnt1: 60 x[cnt1,0] = 0.0 61 y[cnt1,0] = 0.0 62 return x,y 32 # Conversion constant from degrees to radians 33 #cde = 57.29577951 34 # Radius of the earth in meters 35 re = 6378.273 * 10**3 36 # Eccentricity of the Hughes ellipsoid squared 37 ex2 = .006693883 38 # Eccentricity of the Hughes ellipsoid 39 ex = np.sqrt(ex2) 40 41 latitude = np.abs(lat) * np.pi / 180. 42 longitude = (lon + delta) * np.pi / 180. 43 44 # compute X and Y in grid coordinates. 45 T = np.tan(np.pi / 4 - latitude / 2) / ((1 - ex * np.sin(latitude)) / (1 + ex * np.sin(latitude)))**(ex / 2) 46 47 if (90 - slat) < 1.e-5: 48 rho = 2. * re * T / np.sqrt((1. + ex)**(1. + ex) * (1. - ex)**(1. - ex)) 49 else: 50 sl = slat * np.pi / 180. 51 tc = np.tan(np.pi / 4. - sl / 2.) / ((1. - ex * np.sin(sl)) / (1. + ex * np.sin(sl)))**(ex / 2.) 52 mc = np.cos(sl) / np.sqrt(1.0 - ex2 * (np.sin(sl)**2)) 53 rho = re * mc * T / tc 54 55 y = - rho * sgn * np.cos(sgn * longitude) 56 x = rho * sgn * np.sin(sgn * longitude) 57 58 cnt1 = np.nonzero(latitude >= np.pi / 2.)[0] 59 60 if cnt1: 61 x[cnt1, 0] = 0.0 62 y[cnt1, 0] = 0.0 63 return x, y -
issm/trunk-jpl/src/m/coordsystems/xy2ll.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 from math import pi 3 3 4 4 5 def xy2ll(x, y, sgn, *args): 5 ''' 6 XY2LL - converts xy to lat long 7 8 Converts Polar Stereographic (X, Y) coordinates for the polar regions to 9 latitude and longitude Stereographic (X, Y) coordinates for the polar 10 regions. 11 Author: Michael P. Schodlok, December 2003 (map2xy.m) 12 13 Usage: 14 [lat, lon] = xy2ll(x, y, sgn); 15 [lat, lon] = xy2ll(x, y, sgn, central_meridian, standard_parallel); 16 17 - sgn = Sign of latitude +1 : north latitude (default is mer=45 lat=70) 18 -1 : south latitude (default is mer=0 lat=71) 19 ''' 6 ''' 7 XY2LL - converts xy to lat long 20 8 21 #Get central_meridian and standard_parallel depending on hemisphere 22 if len(args) == 2: 23 delta = args[0] 24 slat = args[1] 25 elif len(args) == 0: 26 if sgn == 1: 27 delta = 45. 28 slat = 70. 29 print(' xy2ll: creating coordinates in north polar stereographic (Std Latitude: 70degN Meridian: 45deg)') 30 elif sgn == -1: 31 delta = 0. 32 slat = 71. 33 print(' xy2ll: creating coordinates in south polar stereographic (Std Latitude: 71degS Meridian: 0deg)') 34 else: 35 raise ValueError('sgn should be either +1 or -1') 36 else: 37 raise Exception('bad usage: type "help(xy2ll)" for details') 9 Converts Polar Stereographic (X, Y) coordinates for the polar regions to 10 latitude and longitude Stereographic (X, Y) coordinates for the polar 11 regions. 12 Author: Michael P. Schodlok, December 2003 (map2xy.m) 38 13 39 # if x,y passed as lists, convert to np.arrays 40 if type(x) != "np.ndarray": 41 x=np.array(x) 42 if type(y) != "np.ndarray": 43 y=np.array(y) 14 Usage: 15 [lat, lon] = xy2ll(x, y, sgn) 16 [lat, lon] = xy2ll(x, y, sgn, central_meridian, standard_parallel) 44 17 45 ## Conversion constant from degrees to radians 46 cde = 57.29577951 47 ## Radius of the earth in meters 48 re = 6378.273*10**3 49 ## Eccentricity of the Hughes ellipsoid squared 50 ex2 = .006693883 51 ## Eccentricity of the Hughes ellipsoid 52 ex = np.sqrt(ex2) 53 54 sl = slat*pi/180. 55 rho = np.sqrt(x**2 + y**2) 56 cm = np.cos(sl) / np.sqrt(1.0 - ex2 * (np.sin(sl)**2)) 57 T = np.tan((pi/4.0) - (sl/2.0)) / ((1.0 - ex*np.sin(sl)) / (1.0 + ex*np.sin(sl)))**(ex / 2.0) 58 59 if abs(slat-90.) < 1.e-5: 60 T = rho*np.sqrt((1. + ex)**(1. + ex) * (1. - ex)**(1. - ex)) / 2. / re 61 else: 62 T = rho * T / (re * cm) 63 64 chi = (pi / 2.0) - 2.0 * np.arctan(T) 65 lat = chi + ((ex2 / 2.0) + (5.0 * ex2**2.0 / 24.0) + (ex2**3.0 / 12.0)) * \ 66 np.sin(2 * chi) + ((7.0 * ex2**2.0 / 48.0) + (29.0 * ex2**3 / 240.0)) * \ 67 np.sin(4.0 * chi) + (7.0 * ex2**3.0 / 120.0) * np.sin(6.0 * chi) 68 69 lat = sgn * lat 70 lon = np.arctan2(sgn * x,-sgn * y) 71 lon = sgn * lon 72 73 res1 = np.nonzero(rho <= 0.1)[0] 74 if len(res1) > 0: 75 lat[res1] = pi/2. * sgn 76 lon[res1] = 0.0 77 78 lon = lon * 180. / pi 79 lat = lat * 180. / pi 80 lon = lon - delta 18 - sgn = Sign of latitude + 1 : north latitude (default is mer = 45 lat = 70) 19 - 1 : south latitude (default is mer = 0 lat = 71) 20 ''' 81 21 82 return lat, lon 22 #Get central_meridian and standard_parallel depending on hemisphere 23 if len(args) == 2: 24 delta = args[0] 25 slat = args[1] 26 elif len(args) == 0: 27 if sgn == 1: 28 delta = 45. 29 slat = 70. 30 print(' xy2ll: creating coordinates in north polar stereographic (Std Latitude: 70degN Meridian: 45deg)') 31 elif sgn == - 1: 32 delta = 0. 33 slat = 71. 34 print(' xy2ll: creating coordinates in south polar stereographic (Std Latitude: 71degS Meridian: 0deg)') 35 else: 36 raise ValueError('sgn should be either + 1 or - 1') 37 else: 38 raise Exception('bad usage: type "help(xy2ll)" for details') 39 40 # if x, y passed as lists, convert to np.arrays 41 if type(x) != "np.ndarray": 42 x = np.array(x) 43 if type(y) != "np.ndarray": 44 y = np.array(y) 45 46 # Conversion constant from degrees to radians 47 #cde = 57.29577951 48 # Radius of the earth in meters 49 re = 6378.273 * 10**3 50 # Eccentricity of the Hughes ellipsoid squared 51 ex2 = .006693883 52 # Eccentricity of the Hughes ellipsoid 53 ex = np.sqrt(ex2) 54 55 sl = slat * pi / 180. 56 rho = np.sqrt(x**2 + y**2) 57 cm = np.cos(sl) / np.sqrt(1.0 - ex2 * (np.sin(sl)**2)) 58 T = np.tan((pi / 4.0) - (sl / 2.0)) / ((1.0 - ex * np.sin(sl)) / (1.0 + ex * np.sin(sl)))**(ex / 2.0) 59 60 if abs(slat - 90.) < 1.e-5: 61 T = rho * np.sqrt((1. + ex)**(1. + ex) * (1. - ex)**(1. - ex)) / 2. / re 62 else: 63 T = rho * T / (re * cm) 64 65 chi = (pi / 2.0) - 2.0 * np.arctan(T) 66 lat = chi + ((ex2 / 2.0) + (5.0 * ex2**2.0 / 24.0) + (ex2**3.0 / 12.0)) * np.sin(2 * chi) + ((7.0 * ex2**2.0 / 48.0) + (29.0 * ex2**3 / 240.0)) * np.sin(4.0 * chi) + (7.0 * ex2**3.0 / 120.0) * np.sin(6.0 * chi) 67 68 lat = sgn * lat 69 lon = np.arctan2(sgn * x, - sgn * y) 70 lon = sgn * lon 71 72 res1 = np.nonzero(rho <= 0.1)[0] 73 if len(res1) > 0: 74 lat[res1] = pi / 2. * sgn 75 lon[res1] = 0.0 76 77 lon = lon * 180. / pi 78 lat = lat * 180. / pi 79 lon = lon - delta 80 81 return lat, lon -
issm/trunk-jpl/src/m/dev/ISSM.py
r23716 r24213 1 1 print('WARNING: EXPERIMENTAL FEATURE ISSM.py: universal Python ISSM import') 2 3 2 #Most common imports 4 3 import numpy as np … … 39 38 from dmeth_params_write import * 40 39 40 41 41 #Helper functions 42 42 def python_help(): 43 '''Prints out key code fragments that may be useful to users''' 44 print('Differences between Python and Matlab code:') 45 #... 43 '''Prints out key code fragments that may be useful to users''' 44 print('Differences between Python and Matlab code:') 45 #... 46 46 47 47 48 def find(to_find): 48 '''analagous to matlab's find function but requires separate and/or functions''' 49 return np.array(np.where(to_find)) 49 '''analagous to matlab's find function but requires separate and / or functions''' 50 return np.array(np.where(to_find)) 51 50 52 51 53 def find_and(*args): 52 '''analagous to matlab's a & b functionality when used in conjunction with find(), 53 returns overlap across a and b 54 takes an arbitrary number of arguments of similar shape''' 55 result = args[0] 56 for arg in args[1:]: 57 if type(arg) != np.ndarray: 58 arg = np.array(arg) 59 result = np.intersect1d(result,arg) 60 return result 54 '''analagous to matlab's a & b functionality when used in conjunction with find(), 55 returns overlap across a and b 56 takes an arbitrary number of arguments of similar shape''' 57 result = args[0] 58 for arg in args[1:]: 59 if type(arg) != np.ndarray: 60 arg = np.array(arg) 61 result = np.intersect1d(result, arg) 62 return result 63 61 64 62 65 def find_or(*args): 63 64 65 66 67 68 69 70 result = np.unique(np.concatenate((result,arg)))71 66 '''analagous to matlab's a | b functionality when used in conjunction with find(), 67 returns all unique values across a and b 68 takes an arbitrary number of arguments of similar shape''' 69 result = args[0] 70 for arg in args[1:]: 71 if type(arg) != np.ndarray: 72 arg = np.array(arg) 73 result = np.unique(np.concatenate((result, arg))) 74 return result -
issm/trunk-jpl/src/m/dev/devpath.py
r23759 r24213 1 #!/usr/bin/env python 2 import os, sys 1 #! / usr / bin / env python 2 import os 3 import sys 3 4 import warnings 4 5 … … 10 11 raise NameError('"ISSM_DIR" environment variable is empty! You should define ISSM_DIR in your .cshrc or .bashrc!') 11 12 12 #Go through src/m and append any directory that contains a *.py file to PATH13 #Go through src / m and append any directory that contains a * .py file to PATH 13 14 for root, dirs, files in os.walk(ISSM_DIR + '/src/m'): 14 15 if '.svn' in dirs: 15 16 dirs.remove('.svn') 16 17 for file in files: 17 if file.find(".py") != - 1:18 if file.find(".pyc") == - 1:18 if file.find(".py") != - 1: 19 if file.find(".pyc") == - 1: 19 20 if root not in sys.path: 20 21 sys.path.append(root) 21 22 22 #Also add the Nightly run directory23 #Also add the Nightly run directory 23 24 if ISSM_DIR + '/test/NightlyRun' not in sys.path: 24 25 sys.path.append(ISSM_DIR + '/test/NightlyRun') … … 27 28 if ISSM_DIR + '/src/wrappers/python/.libs' not in sys.path: 28 29 sys.path.append(ISSM_DIR + '/src/wrappers/python/.libs') 29 # If using clusters, we need to have the path to the cluster settings directory30 # If using clusters, we need to have the path to the cluster settings directory 30 31 if JPL_SVN is not None: 31 32 jpl_path = JPL_SVN + '/usr/' + USERNAME … … 34 35 sys.path.append(jpl_path) 35 36 else: 36 warnings.warn('cluster settings should be in, {} /usr/{}'.format(JPL_SVN, USERNAME))37 warnings.warn('cluster settings should be in, {} / usr / {}'.format(JPL_SVN, USERNAME)) 37 38 38 #Manual imports for commonly used functions39 from runme import runme 39 #Manual imports for commonly used functions 40 from runme import runme #first because plotmodel may fail 40 41 from plotmodel import plotmodel 41 42 -
issm/trunk-jpl/src/m/dev/issmversion.py
r23716 r24213 1 1 from IssmConfig import IssmConfig 2 2 3 3 4 def issmversion(): 4 5 5 """ 6 ISSMVERSION - display ISSM version 6 7 7 8 9 8 Usage: 9 issmversion() 10 """ 10 11 11 12 12 13 print(' ') 13 print((IssmConfig('PACKAGE_NAME')[0] +' Version '+IssmConfig('PACKAGE_VERSION')[0]))14 print(('(website: ' +IssmConfig('PACKAGE_URL')[0]+' contact: '+IssmConfig('PACKAGE_BUGREPORT')[0]+')'))14 print((IssmConfig('PACKAGE_NAME')[0] + ' Version ' + IssmConfig('PACKAGE_VERSION')[0])) 15 print(('(website: ' + IssmConfig('PACKAGE_URL')[0] + ' contact: ' + IssmConfig('PACKAGE_BUGREPORT')[0] + ')')) 15 16 print(' ') 16 print(('Build date: ' +IssmConfig('PACKAGE_BUILD_DATE')[0]))17 print('Copyright (c) 2009 -2018 California Institute of Technology')17 print(('Build date: ' + IssmConfig('PACKAGE_BUILD_DATE')[0])) 18 print('Copyright (c) 2009 - 2018 California Institute of Technology') 18 19 print(' ') 19 20 print(' to get started type: issmdoc') -
issm/trunk-jpl/src/m/exp/expcoarsen.py
r23716 r24213 1 1 import os.path 2 import numpy as 2 import numpy as np 3 3 from collections import OrderedDict 4 4 from expread import expread 5 5 from expwrite import expwrite 6 6 7 def expcoarsen(newfile,oldfile,resolution):8 """9 EXPCOARSEN - coarsen an exp contour10 7 11 This routine read an Argus file and remove points with respect to 12 the resolution (in meters) given in input. 8 def expcoarsen(newfile, oldfile, resolution): 9 """ 10 EXPCOARSEN - coarsen an exp contour 13 11 14 Usage: 15 expcoarsen(newfile,oldfile,resolution) 12 This routine read an Argus file and remove points with respect to 13 the resolution (in meters) given in input. 16 14 17 Example: 18 expcoarsen('DomainOutline.exp','Antarctica.exp',4000) 19 """ 15 Usage: 16 expcoarsen(newfile, oldfile, resolution) 20 17 21 #Some checks 22 if not os.path.exists(oldfile): 23 raise OSError("expcoarsen error message: file '%s' not found!" % oldfile) 24 if os.path.exists(newfile): 25 choice=eval(input('A file ' + newfile + ' already exists, do you want to modify it? (y/n)')) 26 if choice not in 'y': 27 print('no modification done ... exiting') 28 return 0 18 Example: 19 expcoarsen('DomainOutline.exp', 'Antarctica.exp', 4000) 20 """ 29 21 30 #Get exp oldfile 31 contours=expread(oldfile) 32 newcontours=[] 22 #Some checks 23 if not os.path.exists(oldfile): 24 raise OSError("expcoarsen error message: file '%s' not found!" % oldfile) 25 if os.path.exists(newfile): 26 choice = eval(input('A file ' + newfile + ' already exists, do you want to modify it? (y / n)')) 27 if choice not in 'y': 28 print('no modification done ... exiting') 29 return 0 33 30 34 for contour in contours: 35 36 numpoints=np.size(contour['x']) 31 #Get exp oldfile 32 contours = expread(oldfile) 33 newcontours = [] 37 34 38 j=0 39 x=contour['x'] 40 y=contour['y'] 35 for contour in contours: 36 numpoints = np.size(contour['x']) 41 37 42 #stop if we have reached end of profile (always keep the last point) 43 while j<numpoints-1: 38 j = 0 39 x = contour['x'] 40 y = contour['y'] 44 41 45 #see whether we keep this point or not 46 distance=np.sqrt((x[j]-x[j+1])**2+(y[j]-y[j+1])**2) 47 if distance<resolution and j<numpoints-2: #do not remove last point 48 x=np.delete(x,j+1,0) 49 y=np.delete(y,j+1,0) 50 numpoints=numpoints-1 51 else: 52 division=int(np.floor(distance/resolution)+1) 53 if division>=2: 54 xi=np.linspace(x[j],x[j+1],division) 55 yi=np.linspace(y[j],y[j+1],division) 56 57 x=np.hstack((x[0:j+1],xi[1:-1],x[j+1:])) 58 y=np.hstack((y[0:j+1],yi[1:-1],y[j+1:])) 42 #stop if we have reached end of profile (always keep the last point) 43 while j < numpoints - 1: 59 44 60 #update current point 61 j=j+1+division-2 62 numpoints=numpoints+division-2 63 else: 64 #update current point 65 j=j+1 66 67 if np.size(x)>1: 68 #keep the (x,y) contour arond 69 newcontour=OrderedDict() 70 newcontour['nods']=np.size(x) 71 newcontour['density']=contour['density'] 72 newcontour['x']=x 73 newcontour['y']=y 74 newcontours.append(newcontour) 45 #see whether we keep this point or not 46 distance = np.sqrt((x[j] - x[j + 1])**2 + (y[j] - y[j + 1])**2) 47 if distance < resolution and j < numpoints - 2: #do not remove last point 48 x = np.delete(x, j + 1, 0) 49 y = np.delete(y, j + 1, 0) 50 numpoints = numpoints - 1 51 else: 52 division = int(np.floor(distance / resolution) + 1) 53 if division >= 2: 54 xi = np.linspace(x[j], x[j + 1], division) 55 yi = np.linspace(y[j], y[j + 1], division) 75 56 76 #write output 77 expwrite(newcontours,newfile) 57 x = np.hstack((x[0:j + 1], xi[1: - 1], x[j + 1:])) 58 y = np.hstack((y[0:j + 1], yi[1: - 1], y[j + 1:])) 59 60 #update current point 61 j = j + 1 + division - 2 62 numpoints = numpoints + division - 2 63 else: 64 #update current point 65 j = j + 1 66 67 if np.size(x) > 1: 68 #keep the (x, y) contour arond 69 newcontour = OrderedDict() 70 newcontour['nods'] = np.size(x) 71 newcontour['density'] = contour['density'] 72 newcontour['x'] = x 73 newcontour['y'] = y 74 newcontours.append(newcontour) 75 76 #write output 77 expwrite(newcontours, newfile) -
issm/trunk-jpl/src/m/exp/expdisp.py
r23716 r24213 1 1 from expread import expread 2 import numpy as 2 import numpy as np 3 3 from matplotlib.path import Path 4 4 import matplotlib.patches as patches 5 5 6 def expdisp(ax,options):7 '''8 plot the contents of a domain outline file9 6 10 This routine reads in an exp file and plots all of the x,y points/lines/patches 7 def expdisp(ax, options): 8 ''' 9 plot the contents of a domain outline file 11 10 12 'ax' is a handle to the current plot axes, onto which we want to plot 11 This routine reads in an exp file and plots all of the x, y points / lines / patches 13 12 14 Usage: 15 expdisp(ax,options) 13 'ax' is a handle to the current plot axes, onto which we want to plot 16 14 17 List of options passable to plotmodel: 18 'expdisp' : path (or list of paths) to the exp file to be plotted 19 'explinewidth' : linewidth 20 'explinestyle' : matplotlib linestyle string 21 'explinecolor' : matplotlib color string 22 'expfill' : (True/False) fill a closed contour 23 'expfillcolor' : Color for a filled contour, only used if expfill is True 24 'expfillalpha' : alpha transparency for filled contour 15 Usage: 16 expdisp(ax, options) 25 17 26 All options should be passed as lists of length len(number of exp files passed) 27 ''' 18 List of options passable to plotmodel: 19 'expdisp' : path (or list of paths) to the exp file to be plotted 20 'explinewidth' : linewidth 21 'explinestyle' : matplotlib linestyle string 22 'explinecolor' : matplotlib color string 23 'expfill' : (True / False) fill a closed contour 24 'expfillcolor' : Color for a filled contour, only used if expfill is True 25 'expfillalpha' : alpha transparency for filled contour 28 26 29 filenames=options.getfieldvalue('expdisp') 30 linewidth=options.getfieldvalue('explinewidth',[1]*len(filenames)) 31 linestyle=options.getfieldvalue('explinestyle',['-']*len(filenames)) 32 linecolor=options.getfieldvalue('explinecolor',['k']*len(filenames)) 33 fill=options.getfieldvalue('expfill',[0]*len(filenames)) 34 alpha=options.getfieldvalue('expfillalpha',[1]*len(filenames)) 35 facecolor=options.getfieldvalue('expfillcolor',['r']*len(filenames)) 36 unitmultiplier=options.getfieldvalue('unit',1) 37 for i in range(len(filenames)): 38 linestylei=linestyle[i] 39 linecolori=linecolor[i] 40 linewidthi=linewidth[i] 41 alphai=alpha[i] 42 facecolori=facecolor[i] 43 filenamei=filenames[i] 44 filli=fill[i] 45 domain=expread(filenamei) 46 for j in range(len(domain)): 47 if domain[j]['nods']==1: 48 ax.plot(domain[j]['x']*unitmultiplier,domain[j]['y']*unitmultiplier,'o',mec='k',mfc='r',ms=10) 49 elif filli: 50 verts=np.column_stack((domain[j]['x'],domain[j]['y'])) 51 codes=[Path.MOVETO] + [Path.LINETO]*(len(domain[j]['x'])-2) + [Path.CLOSEPOLY] 52 path=Path(verts, codes) 53 patch=patches.PathPatch(path,facecolor=facecolori,edgecolor=linecolori,alpha=alphai, 54 lw=linewidthi) 55 ax.add_patch(patch) 56 else: 57 x=domain[j]['x'].tolist() # since expread returns a string representation of the arrays 58 y=domain[j]['y'].tolist() 59 ax.plot(x*unitmultiplier,y*unitmultiplier,ls=linestylei,lw=linewidthi,c=linecolori) 27 All options should be passed as lists of length len(number of exp files passed) 28 ''' 29 30 filenames = options.getfieldvalue('expdisp') 31 linewidth = options.getfieldvalue('explinewidth', [1] * len(filenames)) 32 linestyle = options.getfieldvalue('explinestyle', ['-'] * len(filenames)) 33 linecolor = options.getfieldvalue('explinecolor', ['k'] * len(filenames)) 34 fill = options.getfieldvalue('expfill', [0] * len(filenames)) 35 alpha = options.getfieldvalue('expfillalpha', [1] * len(filenames)) 36 facecolor = options.getfieldvalue('expfillcolor', ['r'] * len(filenames)) 37 unitmultiplier = options.getfieldvalue('unit', 1) 38 for i in range(len(filenames)): 39 linestylei = linestyle[i] 40 linecolori = linecolor[i] 41 linewidthi = linewidth[i] 42 alphai = alpha[i] 43 facecolori = facecolor[i] 44 filenamei = filenames[i] 45 filli = fill[i] 46 domain = expread(filenamei) 47 for j in range(len(domain)): 48 if domain[j]['nods'] == 1: 49 ax.plot(domain[j]['x'] * unitmultiplier, domain[j]['y'] * unitmultiplier, 'o', mec='k', mfc='r', ms=10) 50 elif filli: 51 verts = np.column_stack((domain[j]['x'], domain[j]['y'])) 52 codes = [Path.MOVETO] + [Path.LINETO] * (len(domain[j]['x']) - 2) + [Path.CLOSEPOLY] 53 path = Path(verts, codes) 54 patch = patches.PathPatch(path, facecolor=facecolori, edgecolor=linecolori, alpha=alphai, 55 lw=linewidthi) 56 ax.add_patch(patch) 57 else: 58 x = domain[j]['x'].tolist() # since expread returns a string representation of the arrays 59 y = domain[j]['y'].tolist() 60 ax.plot(x * unitmultiplier, y * unitmultiplier, ls=linestylei, lw=linewidthi, c=linecolori) -
issm/trunk-jpl/src/m/exp/expread.py
r23716 r24213 4 4 import MatlabFuncs as m 5 5 6 6 7 def expread(filename): 8 """ 7 9 8 """ 10 EXPREAD - read a file exp and build a Structure 9 11 10 EXPREAD - read a file exp and build a Structure 12 This routine reads a file .exp and builds a list of dicts containing the 13 fields x and y corresponding to the coordinates, one for the filename of 14 the exp file, for the density, for the nodes, and a field closed to 15 indicate if the domain is closed. 16 The first argument is the .exp file to be read and the second one (optional) 17 indicate if the last point shall be read (1 to read it, 0 not to). 11 18 12 This routine reads a file .exp and builds a list of dicts containing the 13 fields x and y corresponding to the coordinates, one for the filename of 14 the exp file, for the density, for the nodes, and a field closed to 15 indicate if the domain is closed. 16 The first argument is the .exp file to be read and the second one (optional) 17 indicate if the last point shall be read (1 to read it, 0 not to). 19 Usage: 20 contours = expread(filename) 18 21 19 Usage: 20 contours=expread(filename) 22 Example: 23 contours = expread('domainoutline.exp') 24 contours = expread('domainoutline.exp') 21 25 22 Example: 23 contours=expread('domainoutline.exp') 24 contours=expread('domainoutline.exp') 26 See also EXPDOC, EXPWRITEASVERTICES 25 27 26 See also EXPDOC, EXPWRITEASVERTICES 28 """ 29 #some checks 30 if not os.path.exists(filename): 31 raise OSError("expread error message: file '%s' not found!" % filename) 27 32 28 """ 29 #some checks 30 if not os.path.exists(filename): 31 raise OSError("expread error message: file '%s' not found!" % filename) 33 #initialize number of profile 34 contours = [] 35 #open file 36 fid = open(filename, 'r') 37 #loop over the number of profiles 38 while True: 39 #update number of profiles 40 contour = OrderedDict() 41 #Get file name 42 A = fid.readline() 43 while A == '\n': 44 A = fid.readline() 45 if not A: 46 break 47 A = A.split(None, 1) 48 if not (len(A) == 2 and m.strcmp(A[0], '##') and m.strncmp(A[1], 'Name:', 5)): 49 break 32 50 33 #initialize number of profile 34 contours=[] 35 #open file 36 fid=open(filename,'r') 37 #loop over the number of profiles 38 while True: 39 #update number of profiles 40 contour=OrderedDict() 41 #Get file name 42 A=fid.readline() 43 while A=='\n': 44 A=fid.readline() 45 if not A: 46 break 47 A=A.split(None,1) 48 if not (len(A) == 2 and m.strcmp(A[0],'##') and m.strncmp(A[1],'Name:',5)): 49 break 51 if len(A[1]) > 5: 52 contour['name'] = A[1][5: - 1] 53 else: 54 contour['name'] = '' 50 55 51 if len(A[1])>5: 52 contour['name']=A[1][5:-1] 53 else: 54 contour['name']='' 56 #Get Icon 57 A = fid.readline().split(None, 1) 58 if not (len(A) == 2 and m.strcmp(A[0], '##') and m.strncmp(A[1], 'Icon:', 5)): 59 break 60 #Get Info 61 A = fid.readline().split() 62 if not (len(A) == 4 and m.strcmp(A[0], '#') and m.strcmp(A[1], 'Points')): 63 break 55 64 56 #Get Icon 57 A=fid.readline().split(None,1) 58 if not (len(A) == 2 and m.strcmp(A[0],'##') and m.strncmp(A[1],'Icon:',5)): 59 break 60 #Get Info 61 A=fid.readline().split() 62 if not (len(A) == 4 and m.strcmp(A[0],'#') and m.strcmp(A[1],'Points')): 63 break 65 #Get number of nodes and density 66 A = fid.readline().split() 67 contour['nods'] = int(A[0]) 68 contour['density'] = float(A[1]) 64 69 65 #Get number of nodes and density 66 A=fid.readline().split() 67 contour['nods']=int(A[0]) 68 contour['density']=float(A[1]) 70 #Get Info 71 A = fid.readline().split() 72 if not (len(A) == 5 and m.strcmp(A[0], '#') and m.strcmp(A[1], 'X') and m.strcmp(A[2], 'pos') and m.strcmp(A[3], 'Y') and m.strcmp(A[4], 'pos')): 73 break 74 #Get Coordinates 75 contour['x'] = np.empty(contour['nods']) 76 contour['y'] = np.empty(contour['nods']) 77 for i in range(int(contour['nods'])): 78 A = fid.readline().split() 79 contour['x'][i] = float(A[0]) 80 contour['y'][i] = float(A[1]) 69 81 70 #Get Info 71 A=fid.readline().split() 72 if not (len(A) == 5 and m.strcmp(A[0],'#') and m.strcmp(A[1],'X') and m.strcmp(A[2],'pos') 73 and m.strcmp(A[3],'Y') and m.strcmp(A[4],'pos')): 74 break 75 #Get Coordinates 76 contour['x']=np.empty(contour['nods']) 77 contour['y']=np.empty(contour['nods']) 78 for i in range(int(contour['nods'])): 79 A=fid.readline().split() 80 contour['x'][i]=float(A[0]) 81 contour['y'][i]=float(A[1]) 82 #Check if closed 83 if (contour['nods'] > 1) and (contour['x'][-1] == contour['x'][0]) and (contour['y'][-1] == contour['y'][0]): 84 contour['closed'] = True 85 else: 86 contour['closed'] = False 82 87 83 #Check if closed 84 if (contour['nods'] > 1) and \ 85 (contour['x'][-1] == contour['x'][0]) and \ 86 (contour['y'][-1] == contour['y'][0]): 87 contour['closed']=True 88 else: 89 contour['closed']=False 90 91 contours.append(contour) 92 #close file 93 fid.close() 94 return contours 88 contours.append(contour) 89 #close file 90 fid.close() 91 return contours -
issm/trunk-jpl/src/m/exp/expwrite.py
r21303 r24213 1 1 import numpy as np 2 2 3 def expwrite(contours,filename):4 """5 EXPWRITE - write an Argus file from a dictionary given in input6 3 7 This routine writes an Argus file from a dict containing the fields: 8 x and y of the coordinates of the points. 9 The first argument is the list containing the points coordinates 10 and the second one the file to be written. 4 def expwrite(contours, filename): 5 """ 6 EXPWRITE - write an Argus file from a dictionary given in input 11 7 12 Usage: 13 expwrite(contours,filename) 8 This routine writes an Argus file from a dict containing the fields: 9 x and y of the coordinates of the points. 10 The first argument is the list containing the points coordinates 11 and the second one the file to be written. 14 12 15 Example:16 expwrite(coordstruct,'domainoutline.exp')13 Usage: 14 expwrite(contours, filename) 17 15 18 See also EXPDOC, EXPREAD, EXPWRITEASVERTICES 19 """ 16 Example: 17 expwrite(coordstruct, 'domainoutline.exp') 20 18 21 fid=open(filename,'w') 22 for x,y in zip(contours['x'],contours['y']): 23 #if np.size(contour['x'])!=np.size(contour['y']): 24 if len(x)!=len(y): 25 raise RuntimeError("contours x and y coordinates must be of identical size") 26 if 'name' in contours: 27 fid.write("%s%s\n" % ('## Name:',contours['name'])) 28 else: 29 fid.write("%s%s\n" % ('## Name:',filename)) 30 31 #Add density if it's not there FIXME what is this ever used for? 32 #if 'density' not in contours: 33 # contours['density']=1 34 density=1 19 See also EXPDOC, EXPREAD, EXPWRITEASVERTICES 20 """ 35 21 36 fid.write("%s\n" % '## Icon:0')37 fid.write("%s\n" % '# Points Count Value') 38 #fid.write("%i %f\n" % (np.size(contour['x']),contour['density'])) 39 fid.write("%i %f\n" % (np.size(x),density)) 40 fid.write("%s\n" % '# X pos Y pos')41 #for x,y in zip(contour['x'],contour['y']):42 for xi,yi in zip(x,y): 43 fid.write("%10.10f %10.10f\n" % (xi,yi)) 44 fid.write("\n")22 fid = open(filename, 'w') 23 for x, y in zip(contours['x'], contours['y']): 24 #if np.size(contour['x']) != np.size(contour['y']): 25 if len(x) != len(y): 26 raise RuntimeError("contours x and y coordinates must be of identical size") 27 if 'name' in contours: 28 fid.write("%s%s\n" % (' # Name:', contours['name'])) 29 else: 30 fid.write("%s%s\n" % (' # Name:', filename)) 45 31 46 fid.close() 32 #Add density if it's not there FIXME what is this ever used for? 33 #if 'density' not in contours: 34 # contours['density'] = 1 35 density = 1 47 36 37 fid.write("%s\n" % ' # Icon:0') 38 fid.write("%s\n" % ' # Points Count Value') 39 #fid.write("%i %f\n" % (np.size(contour['x']), contour['density'])) 40 fid.write("%i %f\n" % (np.size(x), density)) 41 fid.write("%s\n" % ' # X pos Y pos') 42 #for x, y in zip(contour['x'], contour['y']): 43 for xi, yi in zip(x, y): 44 fid.write("%10.10f %10.10f\n" % (xi, yi)) 45 fid.write("\n") 46 47 fid.close() -
issm/trunk-jpl/src/m/exp/flowlines.py
r24032 r24213 11 11 # 12 12 # Usage: 13 # flowpath =flowlines(index,x,y,u,v,x0,y0,varargin)13 # flowpath = flowlines(index, x, y, u, v, x0, y0, varargin) 14 14 # 15 # the velocity field is given by the couple (u, v) and the coordinates16 # of the seed points are (x0, y0). One can use one or several seed15 # the velocity field is given by the couple (u, v) and the coordinates 16 # of the seed points are (x0, y0). One can use one or several seed 17 17 # points 18 18 # 19 19 # Example: 20 # flowpath =flowlines(md.mesh.elements,md.mesh.x,md.mesh.y,md.initialization.vx,md.initialization.vy,x0,y0)20 # flowpath = flowlines(md.mesh.elements, md.mesh.x, md.mesh.y, md.initialization.vx, md.initialization.vy, x0, y0) 21 21 # 22 22 # Options: 23 # 24 # 25 # 26 # 23 # - 'maxiter': how many steps upstream and downstream of the seed points (default: 200) 24 # - 'precision': division of each segment (higer precision increases number of segments, default: 1) 25 # - 'downstream':flow line upstream of the seed points (default: 1) 26 # - 'upstream': flow line upstream of the seed points (default: 1) 27 27 28 28 #check input 29 29 if (not len(x) == len(y) == len(u) == len(v)): 30 raise IOError('flowlines error message: x, y,u and v must have the same length')30 raise IOError('flowlines error message: x, y, u and v must have the same length') 31 31 32 32 if len(x) < 3: … … 79 79 for flowdirection in ['downstream', 'upstream']: 80 80 print('Dealing with the {} flowlines'.format(flowdirection)) 81 81 #initialization: 82 82 counter = 1 83 83 treatdirection = options.getfieldvalue(flowdirection, 1) … … 91 91 flowindex = 0 92 92 elif flowdirection == 'downstream': 93 flowindex = - 193 flowindex = - 1 94 94 95 95 while not all(done): … … 112 112 #velocity of the current triangle and norm it 113 113 if flowdirection == 'upstream': 114 ut = - u[tria]115 vt = - v[tria]114 ut = - u[tria] 115 vt = - v[tria] 116 116 if flowdirection == 'downstream': 117 117 ut = u[tria] -
issm/trunk-jpl/src/m/extrusion/DepthAverage.py
r23805 r24213 9 9 10 10 Usage: 11 vector_average =DepthAverage(md,vector)11 vector_average = DepthAverage(md, vector) 12 12 13 13 Example: 14 vel_bar =DepthAverage(md,md.initialization.vel)14 vel_bar = DepthAverage(md, md.initialization.vel) 15 15 ''' 16 16 … … 27 27 if vector.ndim == 2: 28 28 vec2d = True 29 vector = vector.reshape(- 1,)29 vector = vector.reshape(- 1, ) 30 30 31 31 #nods data … … 43 43 elements_dz = vertices_dz.mean(1) 44 44 vector_average = vector_average + project2d(md, vector, i) * elements_dz 45 45 #vector_average = vector_average + project2d(md, vector, i) * (project2d(md, md.mesh.z, i + 1) - project2d(md, md.mesh.z, i)) 46 46 vertices_thickness = project2d(md, md.geometry.thickness, 1) 47 47 elements_thickness = vertices_thickness.mean(1) 48 48 vector_average = vector_average / elements_thickness 49 49 #vector_average = vector_average / project2d(md, md.geometry.thickness, 1) 50 50 51 51 else: … … 53 53 54 54 if vec2d: 55 vector_average = vector_average.reshape(- 1,)55 vector_average = vector_average.reshape(- 1, ) 56 56 57 57 return vector_average -
issm/trunk-jpl/src/m/extrusion/project2d.py
r23787 r24213 1 1 import numpy as np 2 2 3 def project2d(md3d,value,layer): 3 4 def project2d(md3d, value, layer): 4 5 ''' 5 6 returns the value of a field for a given layer of the mesh … … 10 11 11 12 Usage: 12 projection_value =project2d(md3d,value,layer)13 projection_value = project2d(md3d, value, layer) 13 14 14 15 Example: 15 vel2 =project2d(md3d,md3d.initialization.vel,2);16 vel2 = project2d(md3d, md3d.initialization.vel, 2) 16 17 returns the velocity of the second layer (1 is the base) 17 18 ''' … … 30 31 vec2d = False 31 32 if value.ndim == 2 and value.shape[1] == 1: 32 value = value.reshape(- 1,)33 value = value.reshape(- 1, ) 33 34 vec2d = True 34 35 … … 36 37 projection_value = value[(layer - 1) * md3d.mesh.numberofelements2d:layer * md3d.mesh.numberofelements2d] 37 38 elif value.shape[0] == md3d.mesh.numberofvertices: 38 #print 'indices: ', (layer -1)*md3d.mesh.numberofvertices2d, layer*md3d.mesh.numberofvertices2d39 #print 'indices: ', (layer - 1) * md3d.mesh.numberofvertices2d, layer * md3d.mesh.numberofvertices2d 39 40 projection_value = value[(layer - 1) * md3d.mesh.numberofvertices2d:layer * md3d.mesh.numberofvertices2d] 40 41 elif value.shape[0] == md3d.mesh.numberofvertices + 1: … … 44 45 45 46 if vec2d: 46 projection_value = projection_value.reshape(- 1,)47 projection_value = projection_value.reshape(- 1, ) 47 48 48 49 return projection_value -
issm/trunk-jpl/src/m/extrusion/project3d.py
r23870 r24213 2 2 from pairoptions import pairoptions 3 3 4 def project3d(md,*args): 4 5 def project3d(md, *args): 5 6 """ 6 7 PROJECT3D - vertically project a vector from 2d mesh 7 8 8 9 vertically project a vector from 2d mesh (split in noncoll and coll areas) into a 3d mesh. 9 This vector can be a node vector of size (md.mesh.numberofvertices2d, N/A) or an10 element vector of size (md.mesh.numberofelements2d, N/A).10 This vector can be a node vector of size (md.mesh.numberofvertices2d, N / A) or an 11 element vector of size (md.mesh.numberofelements2d, N / A). 11 12 arguments: 12 13 'vector': 2d vector … … 18 19 19 20 Examples: 20 extruded_vector =project3d(md,'vector',vector2d,'type','node','layer',1,'padding',NaN)21 extruded_vector =project3d(md,'vector',vector2d,'type','element','padding',0)22 extruded_vector =project3d(md,'vector',vector2d,'type','node')21 extruded_vector = project3d(md, 'vector', vector2d, 'type', 'node', 'layer', 1, 'padding', NaN) 22 extruded_vector = project3d(md, 'vector', vector2d, 'type', 'element', 'padding', 0) 23 extruded_vector = project3d(md, 'vector', vector2d, 'type', 'node') 23 24 """ 24 25 … … 31 32 #retrieve parameters from options. 32 33 options = pairoptions(*args) 33 vector2d = options.getfieldvalue('vector') 34 vectype = options.getfieldvalue('type') 35 layer = options.getfieldvalue('layer', 0) 36 paddingvalue = options.getfieldvalue('padding', 0) 34 vector2d = options.getfieldvalue('vector') #mandatory 35 vectype = options.getfieldvalue('type') #mandatory 36 layer = options.getfieldvalue('layer', 0) #optional (do all layers otherwise) 37 paddingvalue = options.getfieldvalue('padding', 0) #0 by default 37 38 38 39 vector1d = False 39 40 if isinstance(vector2d, np.ndarray) and np.ndim(vector2d) == 1: 40 41 vector1d = True 41 vector2d = vector2d.reshape(- 1,)42 vector2d = vector2d.reshape(- 1, ) 42 43 43 44 if isinstance(vector2d, (bool, int, float)) or np.size(vector2d) == 1: … … 52 53 projected_vector = (paddingvalue * np.ones((md.mesh.numberofvertices + 1))).astype(vector2d.dtype) 53 54 projected_vector[-1] = vector2d[-1] 54 vector2d = vector2d[: -1]55 vector2d = vector2d[: - 1] 55 56 else: 56 57 raise TypeError("vector length not supported") 57 58 #Fill in 58 59 if layer == 0: 59 60 for i in range(md.mesh.numberoflayers): … … 67 68 projected_vector = (paddingvalue * np.ones((md.mesh.numberofvertices + 1, np.size(vector2d, axis=1)))).astype(vector2d.dtype) 68 69 projected_vector[-1, :] = vector2d[-1, :] 69 vector2d = vector2d[: -1, :]70 vector2d = vector2d[: - 1, :] 70 71 else: 71 72 raise TypeError("vector length not supported") 72 73 #Fill in 73 74 if layer == 0: 74 75 for i in range(md.mesh.numberoflayers): … … 85 86 projected_vector = (paddingvalue * np.ones((md.mesh.numberofelements + 1))).astype(vector2d.dtype) 86 87 projected_vector[-1] = vector2d[-1] 87 vector2d = vector2d[: -1]88 vector2d = vector2d[: - 1] 88 89 else: 89 90 raise TypeError("vector length not supported") 90 91 #Fill in 91 92 if layer == 0: 92 93 for i in range(md.mesh.numberoflayers - 1): … … 100 101 projected_vector = (paddingvalue * np.ones((md.mesh.numberofelements + 1, np.size(vector2d, axis=1)))).astype(vector2d.dtype) 101 102 projected_vector[-1, :] = vector2d[-1, :] 102 vector2d = vector2d[: -1, :]103 vector2d = vector2d[: - 1, :] 103 104 else: 104 105 raise TypeError("vector length not supported") 105 106 #Fill in 106 107 if layer == 0: 107 108 for i in range(md.mesh.numberoflayers - 1): … … 114 115 115 116 if vector1d: 116 projected_vector = projected_vector.reshape(- 1,)117 projected_vector = projected_vector.reshape(- 1, ) 117 118 118 119 return projected_vector -
issm/trunk-jpl/src/m/geometry/FlagElements.py
r23716 r24213 1 1 import numpy as np 2 2 import os 3 #from basinzoom import basinzoon4 3 from ContourToMesh import ContourToMesh 5 4 import MatlabFuncs as m 6 5 import PythonFuncs as p 7 6 8 def FlagElements(md,region):9 """10 FLAGELEMENTS - flag the elements in an region11 7 12 The region can be given with an exp file, a list of elements or vertices 8 def FlagElements(md, region): 9 """ 10 FLAGELEMENTS - flag the elements in an region 13 11 14 Usage: 15 flag=FlagElements(md,region); 12 The region can be given with an exp file, a list of elements or vertices 16 13 17 Example: 18 flag=FlagElements(md,'all'); 19 flag=FlagElements(md,''); 20 flag=FlagElements(md,'Domain.exp'); 21 flag=FlagElements(md,'~Domain.exp'); 22 """ 14 Usage: 15 flag = FlagElements(md, region) 23 16 24 if isinstance(region,str): 25 if not region: 26 flag=np.zeros(md.mesh.numberofelements,bool) 27 invert=0 28 elif m.strcmpi(region,'all'): 29 flag=np.ones(md.mesh.numberofelements,bool) 30 invert=0 31 else: 32 #make sure that we actually don't want the elements outside the domain outline! 33 if m.strcmpi(region[0],'~'): 34 region=region[1:] 35 invert=1 36 else: 37 invert=0 17 Example: 18 flag = FlagElements(md, 'all') 19 flag = FlagElements(md, '') 20 flag = FlagElements(md, 'Domain.exp') 21 flag = FlagElements(md, '~Domain.exp') 22 """ 38 23 39 #does the region domain outline exist or do we have to look for xlim,ylim in basinzoom? 40 if not os.path.exists(region): 41 if len(region)>3 and not m.strcmp(region[-4:],'.exp'): 42 raise IOError("Error: File 'region' not found!" % region) 43 raise RuntimeError("FlagElements.py calling basinzoom.py is not complete.") 44 xlim,ylim=basinzoom('basin',region) 45 flag_nodes=p.logical_and_n(md.mesh.x<xlim[1],md.mesh.x>xlim[0],md.mesh.y<ylim[1],md.mesh.y>ylim[0]) 46 flag=np.prod(flag_nodes[md.mesh.elements],axis=1).astype(bool) 47 else: 48 #ok, flag elements 49 flag=ContourToMesh(md.mesh.elements[:,0:3].copy(),md.mesh.x,md.mesh.y,region,'element',1) 50 flag=flag.astype(bool) 24 if isinstance(region, str): 25 if not region: 26 flag = np.zeros(md.mesh.numberofelements, bool) 27 invert = 0 28 elif m.strcmpi(region, 'all'): 29 flag = np.ones(md.mesh.numberofelements, bool) 30 invert = 0 31 else: 32 #make sure that we actually don't want the elements outside the domain outline! 33 if m.strcmpi(region[0], '~'): 34 region = region[1:] 35 invert = 1 36 else: 37 invert = 0 51 38 52 if invert: 53 flag=np.logical_not(flag) 39 #does the region domain outline exist or do we have to look for xlim, ylim in basinzoom? 40 if not os.path.exists(region): 41 if len(region) > 3 and not m.strcmp(region[-4:], '.exp'): 42 raise IOError("Error: File 'region' not found!" % region) 43 raise RuntimeError("FlagElements.py calling basinzoom.py is not complete.") 44 xlim, ylim = basinzoom('basin', region) 45 flag_nodes = p.logical_and_n(md.mesh.x < xlim[1], md.mesh.x > xlim[0], md.mesh.y < ylim[1], md.mesh.y > ylim[0]) 46 flag = np.prod(flag_nodes[md.mesh.elements], axis=1).astype(bool) 47 else: 48 #ok, flag elements 49 flag = ContourToMesh(md.mesh.elements[:, 0:3].copy(), md.mesh.x, md.mesh.y, region, 'element', 1) 50 flag = flag.astype(bool) 54 51 55 elif isinstance(region,np.ndarray) or isinstance(region,bool): 56 if np.size(region,0)==md.mesh.numberofelements: 57 flag=region 58 elif np.size(region,0)==md.mesh.numberofvertices: 59 flag=(np.sum(region[md.mesh.elements-1]>0,axis=1)==np.size(md.mesh.elements,1)) 60 else: 61 raise TypeError("Flaglist for region must be of same size as number of elements in model.") 52 if invert: 53 flag = np.logical_not(flag) 62 54 63 else: 64 raise TypeError("Invalid region option") 55 elif isinstance(region, np.ndarray) or isinstance(region, bool): 56 if np.size(region, 0) == md.mesh.numberofelements: 57 flag = region 58 elif np.size(region, 0) == md.mesh.numberofvertices: 59 flag = (np.sum(region[md.mesh.elements - 1] > 0, axis=1) == np.size(md.mesh.elements, 1)) 60 else: 61 raise TypeError("Flaglist for region must be of same size as number of elements in model.") 65 62 66 return flag 63 else: 64 raise TypeError("Invalid region option") 67 65 66 return flag -
issm/trunk-jpl/src/m/geometry/GetAreas.py
r21303 r24213 1 1 import numpy as np 2 2 3 def GetAreas(index,x,y,z=np.array([])):4 """5 GETAREAS - compute areas or volumes of elements6 3 7 compute areas of triangular elements or volumes 8 of pentahedrons 4 def GetAreas(index, x, y, z=np.array([])): 5 """ 6 GETAREAS - compute areas or volumes of elements 9 7 10 Usage: 11 areas =GetAreas(index,x,y); 12 volumes=GetAreas(index,x,y,z); 8 compute areas of triangular elements or volumes 9 of pentahedrons 13 10 14 Examples: 15 areas =GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y); 16 volumes=GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y,md.z); 17 """ 11 Usage: 12 areas =GetAreas(index, x, y) 13 volumes = GetAreas(index, x, y, z) 18 14 19 #get number of elements and number of nodes 20 nels=np.size(index,axis=0) 21 nods=np.size(x) 15 Examples: 16 areas =GetAreas(md.mesh.elements, md.mesh.x, md.mesh.y) 17 volumes = GetAreas(md.mesh.elements, md.mesh.x, md.mesh.y, md.z) 18 """ 22 19 23 #some checks 24 if np.size(y)!=nods or (z and np.size(z)!=nods): 25 raise TypeError("GetAreas error message: x,y and z do not have the same length.") 26 if np.max(index)>nods: 27 raise TypeError("GetAreas error message: index should not have values above %d." % nods) 28 if (not z and np.size(index,axis=1)!=3): 29 raise TypeError("GetAreas error message: index should have 3 columns for 2d meshes.") 30 if (z and np.size(index,axis=1)!=6): 31 raise TypeError("GetAreas error message: index should have 6 columns for 3d meshes.") 20 #get number of elements and number of nodes 21 nels = np.size(index, axis=0) 22 nods = np.size(x) 32 23 33 #initialization 34 areas=np.zeros(nels) 35 x1=x[index[:,0]-1] 36 x2=x[index[:,1]-1] 37 x3=x[index[:,2]-1] 38 y1=y[index[:,0]-1] 39 y2=y[index[:,1]-1] 40 y3=y[index[:,2]-1] 24 #some checks 25 if np.size(y) != nods or (z and np.size(z) != nods): 26 raise TypeError("GetAreas error message: x, y and z do not have the same length.") 27 if np.max(index) > nods: 28 raise TypeError("GetAreas error message: index should not have values above %d." % nods) 29 if (not z and np.size(index, axis=1) != 3): 30 raise TypeError("GetAreas error message: index should have 3 columns for 2d meshes.") 31 if (z and np.size(index, axis=1) != 6): 32 raise TypeError("GetAreas error message: index should have 6 columns for 3d meshes.") 41 33 42 #compute the volume of each element 43 if not z: 44 #compute the surface of the triangle 45 areas=(0.5*((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1))) 46 else: 47 #V=area(triangle)*1/3(z1+z2+z3) 48 thickness=np.mean(z[index[:,3:6]-1])-np.mean(z[index[:,0:3]-1]) 49 areas=(0.5*((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1)))*thickness 34 #initialization 35 areas = np.zeros(nels) 36 x1 = x[index[:, 0] - 1] 37 x2 = x[index[:, 1] - 1] 38 x3 = x[index[:, 2] - 1] 39 y1 = y[index[:, 0] - 1] 40 y2 = y[index[:, 1] - 1] 41 y3 = y[index[:, 2] - 1] 50 42 51 return areas 43 #compute the volume of each element 44 if not z: 45 #compute the surface of the triangle 46 areas = (0.5 * ((x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1))) 47 else: 48 #V = area(triangle) * 1 / 3(z1 + z2 + z3) 49 thickness = np.mean(z[index[:, 3:6] - 1]) - np.mean(z[index[:, 0:3] - 1]) 50 areas = (0.5 * ((x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1))) * thickness 52 51 52 return areas -
issm/trunk-jpl/src/m/geometry/NowickiProfile.py
r23716 r24213 1 1 import numpy as np 2 2 3 3 4 def NowickiProfile(x): 4 5 5 """ 6 NOWICKIPROFILE - Create profile at the transition zone based on Sophie Nowicki's thesis 6 7 7 8 8 Usage: 9 [b h] = NowickiProfile(x) 9 10 10 11 12 13 14 15 delta = 0.1 #ratio of water density and ice density -116 hg = 1.#ice thickness at grounding line17 sea = hg / (1+delta)#sea level18 lamda = 0.1#ration of deviatoric stress and water pressure19 beta = 5.#friction coefficient20 ms = 0.005#surface accumulation rat21 mu = 5.#viscosity22 q = 0.801#ice mass flux11 - h = ice thickness 12 - b = ice base 13 - x = along flow coordinate 14 """ 15 #Constant for theoretical profile 16 delta = 0.1 #ratio of water density and ice density - 1 17 hg = 1. #ice thickness at grounding line 18 sea = hg / (1 + delta) #sea level 19 lamda = 0.1 #ration of deviatoric stress and water pressure 20 beta = 5. #friction coefficient 21 ms = 0.005 #surface accumulation rat 22 mu = 5. #viscosity 23 q = 0.801 #ice mass flux 23 24 24 25 b = np.zeros((np.size(x),))26 h = np.zeros((np.size(x),))27 s = np.zeros((np.size(x),))25 #mesh parameters 26 b = np.zeros((np.size(x), )) 27 h = np.zeros((np.size(x), )) 28 s = np.zeros((np.size(x), )) 28 29 29 #upstream of the GL 30 for i in range(int(np.size(x)/2)): 31 ss = np.roots([1, 4 * lamda * beta, 0, 0, 6 * lamda * ms * x[i]**2 + 32 12 * lamda * q * x[i] - hg**4 - 4 * lamda * beta * hg**3]) 33 for j in range(4): 34 if (np.isreal(ss[j]) > 0) and (np.imag(ss[j]) == 0): 35 s[i] = ss[j] 36 h[i] = s[i] 37 b[i] = 0. 30 #upstream of the GL 31 for i in range(int(np.size(x) / 2)): 32 ss = np.roots([1, 4 * lamda * beta, 0, 0, 6 * lamda * ms * x[i]**2 + 12 * lamda * q * x[i] - hg**4 - 4 * lamda * beta * hg**3]) 33 for j in range(4): 34 if (np.isreal(ss[j]) > 0) and (np.imag(ss[j]) == 0): 35 s[i] = ss[j] 36 h[i] = s[i] 37 b[i] = 0. 38 38 39 40 for i in range(int(np.size(x)/2), int(np.size(x))):41 h[i] = (x[i] / (4. * (delta+1) * q) + hg**(-2))**(-0.5)# ice thickness for ice shelf from (3.1)42 b[i] = sea - h[i] * (1. / (1+delta))39 #downstream of the GL 40 for i in range(int(np.size(x) / 2), int(np.size(x))): 41 h[i] = (x[i] / (4. * (delta + 1) * q) + hg**(- 2))**(- 0.5) # ice thickness for ice shelf from (3.1) 42 b[i] = sea - h[i] * (1. / (1 + delta)) 43 43 44 44 return [b, h, sea] -
issm/trunk-jpl/src/m/geometry/SegIntersect.py
r21303 r24213 1 1 import numpy as np 2 2 3 def SegIntersect(seg1,seg2):4 """5 SEGINTERSECT - test of segments intersection6 3 7 return 1 if the two segments intersect 8 seg1=[x1 y1; x2 y2] 9 seg2=[x1 y1; x2 y2] 4 def SegIntersect(seg1, seg2): 5 """ 6 SEGINTERSECT - test of segments intersection 10 7 11 Usage: 12 bval=SegIntersect(seg1,seg2) 13 """ 8 return 1 if the two segments intersect 9 seg1 = [x1 y1; x2 y2] 10 seg2 = [x1 y1; x2 y2] 14 11 15 bval=1 12 Usage: 13 bval = SegIntersect(seg1, seg2) 14 """ 16 15 17 xA=seg1[0,0] 18 yA=seg1[0,1] 19 xB=seg1[1,0] 20 yB=seg1[1,1] 21 xC=seg2[0,0] 22 yC=seg2[0,1] 23 xD=seg2[1,0] 24 yD=seg2[1,1] 16 bval = 1 25 17 26 O2A=np.array([xA,yA])-np.array([xD/2.+xC/2.,yD/2.+yC/2.]) 27 O2B=np.array([xB,yB])-np.array([xD/2.+xC/2.,yD/2.+yC/2.]) 28 O1C=np.array([xC,yC])-np.array([xA/2.+xB/2.,yB/2.+yA/2.]) 29 O1D=np.array([xD,yD])-np.array([xA/2.+xB/2.,yB/2.+yA/2.]) 18 xA = seg1[0, 0] 19 yA = seg1[0, 1] 20 xB = seg1[1, 0] 21 yB = seg1[1, 1] 22 xC = seg2[0, 0] 23 yC = seg2[0, 1] 24 xD = seg2[1, 0] 25 yD = seg2[1, 1] 30 26 31 n1=np.array([yA-yB,xB-xA]) #normal vector to segA 32 n2=np.array([yC-yD,xD-xC]) #normal vector to segB 27 O2A = np.array([xA, yA]) - np.array([xD / 2. + xC / 2., yD / 2. + yC / 2.]) 28 O2B = np.array([xB, yB]) - np.array([xD / 2. + xC / 2., yD / 2. + yC / 2.]) 29 O1C = np.array([xC, yC]) - np.array([xA / 2. + xB / 2., yB / 2. + yA / 2.]) 30 O1D = np.array([xD, yD]) - np.array([xA / 2. + xB / 2., yB / 2. + yA / 2.]) 33 31 34 test1=np.dot(n2,O2A) 35 test2=np.dot(n2,O2B) 32 n1 = np.array([yA - yB, xB - xA]) #normal vector to segA 33 n2 = np.array([yC - yD, xD - xC]) #normal vector to segB 36 34 37 if test1*test2>0: 38 bval=0 39 return bval 35 test1 = np.dot(n2, O2A) 36 test2 = np.dot(n2, O2B) 40 37 41 test3=np.dot(n1,O1C) 42 test4=np.dot(n1,O1D) 38 if test1 * test2 > 0: 39 bval = 0 40 return bval 43 41 44 if test3*test4>0: 45 bval=0 46 return bval 42 test3 = np.dot(n1, O1C) 43 test4 = np.dot(n1, O1D) 47 44 48 #if colinear 49 if test1*test2==0 and test3*test4==0 and np.linalg.det(np.hstack((n1.reshape((-1,)),n2.reshape(-1,))))==0: 45 if test3 * test4 > 0: 46 bval = 0 47 return bval 50 48 51 #projection on the axis O1O2 52 O2O1=np.array([xA/2.+xB/2.,yB/2.+yA/2.])-np.array([xD/2.+xC/2.,yD/2.+yC/2.]) 53 O1A=np.dot(O2O1,(O2A-O2O1)) 54 O1B=np.dot(O2O1,(O2B-O2O1)) 55 O1C=np.dot(O2O1,O1C) 56 O1D=np.dot(O2O1,O1D) 49 #if colinear 50 if test1 * test2 == 0 and test3 * test4 == 0 and np.linalg.det(np.hstack((n1.reshape((- 1, )), n2.reshape(- 1, )))) == 0: 57 51 58 #test if one point is included in the other segment (->bval=1) 59 if (O1C-O1A)*(O1D-O1A)<0: 60 bval=1 61 return bval 62 if (O1C-O1B)*(O1D-O1B)<0: 63 bval=1 64 return bval 65 if (O1A-O1C)*(O1B-O1C)<0: 66 bval=1 67 return bval 68 if (O1A-O1D)*(O1B-O1D)<0: 69 bval=1 70 return bval 52 #projection on the axis O1O2 53 O2O1 = np.array([xA / 2. + xB / 2., yB / 2. + yA / 2.]) - np.array([xD / 2. + xC / 2., yD / 2. + yC / 2.]) 54 O1A = np.dot(O2O1, (O2A - O2O1)) 55 O1B = np.dot(O2O1, (O2B - O2O1)) 56 O1C = np.dot(O2O1, O1C) 57 O1D = np.dot(O2O1, O1D) 71 58 72 #test if the 2 segments have the same middle (->bval=1) 73 if O2O1==0: 74 bval=1 75 return bval 59 #test if one point is included in the other segment (- > bval = 1) 60 if (O1C - O1A) * (O1D - O1A) < 0: 61 bval = 1 62 return bval 63 if (O1C - O1B) * (O1D - O1B) < 0: 64 bval = 1 65 return bval 66 if (O1A - O1C) * (O1B - O1C) < 0: 67 bval = 1 68 return bval 69 if (O1A - O1D) * (O1B - O1D) < 0: 70 bval = 1 71 return bval 76 72 77 #else 78 bval=0 79 return bval 73 #test if the 2 segments have the same middle (- > bval = 1) 74 if O2O1 == 0: 75 bval = 1 76 return bval 80 77 81 return bval 78 #else 79 bval = 0 80 return bval 82 81 82 return bval -
issm/trunk-jpl/src/m/geometry/slope.py
r24115 r24213 9 9 10 10 Usage: 11 sx, sy,s=slope(md)12 sx, sy,s=slope(md,md.results.TransientSolution(1).Surface)11 sx, sy, s = slope(md) 12 sx, sy, s = slope(md, md.results.TransientSolution(1).Surface) 13 13 """ 14 14 … … 30 30 raise RuntimeError("slope.py usage error") 31 31 32 #%compute nodal functions coefficients N(x, y)=alpha x + beta y + gamma32 #%compute nodal functions coefficients N(x, y)=alpha x + beta y + gamma 33 33 alpha, beta = GetNodalFunctionsCoeff(index, x, y)[0:2] 34 34 35 35 summation = np.array([[1], [1], [1]]) 36 sx = np.dot(surf[index - 1, 0] * alpha, summation).reshape(- 1,)37 sy = np.dot(surf[index - 1, 0] * beta, summation).reshape(- 1,)36 sx = np.dot(surf[index - 1, 0] * alpha, summation).reshape(- 1, ) 37 sy = np.dot(surf[index - 1, 0] * beta, summation).reshape(- 1, ) 38 38 39 39 s = np.sqrt(sx**2 + sy**2) -
issm/trunk-jpl/src/m/interp/SectionValues.py
r23716 r24213 1 1 import os 2 2 from expread import expread 3 import numpy as 3 import numpy as np 4 4 from project2d import project2d 5 5 #from InterpFromMesh2d import InterpFromMesh2d … … 7 7 from InterpFromMeshToMesh3d import InterpFromMeshToMesh3d 8 8 9 def SectionValues(md,data,infile,resolution):10 '''11 compute the value of a field on a section12 13 This routine gets the value of a given field of the model on points14 given in the file infile (Argus type file). Resolution must be a list15 [horizontal_resolution, vertical_resolution]16 17 Usage:18 [elements,x,y,z,s,data]=SectionValues(md,data,filename,resolution)19 [elements,x,y,z,s,data]=SectionValues(md,data,profile_structure,resolution)20 '''21 9 22 if os.path.isfile(infile): 23 profile=expread(infile)[0] 24 nods=profile['nods'] 25 x=profile['x'] 26 y=profile['y'] 27 else: 28 raise IOError('file %s not found' % infile) 10 def SectionValues(md, data, infile, resolution): 11 ''' 12 compute the value of a field on a section 29 13 30 #get the specified resolution 31 if len(resolution)!=2: 32 raise ValueError('SectionValues error message: Resolution must be a list [horizontal_resolution, vertical_resolution]') 33 else: 34 res_h=resolution[0] 14 This routine gets the value of a given field of the model on points 15 given in the file infile (Argus type file). Resolution must be a list 16 [horizontal_resolution, vertical_resolution] 35 17 36 if md.mesh.domaintype().lower() == '3d': 37 if isinstance(resolution[1],int) or isinstance(resolution[1],float): 38 res_v=resolution[1] 39 else: 40 raise ValueError('SectionValues error: resolution must be a length-2 list of integers or floats') 18 Usage: 19 [elements, x, y, z, s, data] = SectionValues(md, data, filename, resolution) 20 [elements, x, y, z, s, data] = SectionValues(md, data, profile_structure, resolution) 21 ''' 41 22 42 #initialization 43 X=np.array([]) #X-coordinate 44 Y=np.array([]) #Y-coordinate 45 S=np.array([0.]) #curvilinear coordinate 46 47 for i in range(nods-1): 48 49 x_start=x[i] 50 x_end=x[i+1] 51 y_start=y[i] 52 y_end=y[i+1] 53 s_start=S[-1] 54 55 length_segment=np.sqrt((x_end-x_start)**2+(y_end-y_start)**2) 56 portion=np.ceil(length_segment/res_h) 57 58 x_segment=np.zeros(portion) 59 y_segment=np.zeros(portion) 60 s_segment=np.zeros(portion) 23 if os.path.isfile(infile): 24 profile = expread(infile)[0] 25 nods = profile['nods'] 26 x = profile['x'] 27 y = profile['y'] 28 else: 29 raise IOError('file %s not found' % infile) 61 30 62 for j in range(int(portion)): 63 x_segment[j]=x_start+(j)*(x_end-x_start)/portion 64 y_segment[j]=y_start+(j)*(y_end-y_start)/portion 65 s_segment[j]=s_start+j*length_segment/portion 66 67 #plug into X and Y 68 X=np.append(X,x_segment) 69 Y=np.append(Y,y_segment) 70 S=np.append(S,s_segment) 31 #get the specified resolution 32 if len(resolution) != 2: 33 raise ValueError('SectionValues error message: Resolution must be a list [horizontal_resolution, vertical_resolution]') 34 else: 35 res_h = resolution[0] 71 36 72 X=np.append(X,x[nods-1]) 73 Y=np.append(Y,y[nods-1]) 74 75 #Number of nodes: 76 numberofnodes=X.shape[0] 77 78 #Compute Z 79 Z=np.zeros(numberofnodes) 80 81 #New mesh and Data interpolation 82 if '2d' in md.mesh.domaintype().lower(): 83 84 #Interpolation of data on specified points 85 #data_interp=InterpFromMesh2d(md.mesh.elements,md.mesh.x,md.mesh.y,data,X,Y)[0] 86 data_interp=InterpFromMeshToMesh2d(md.mesh.elements,md.mesh.x,md.mesh.y,data,X,Y)[0] 87 #data_interp=griddata(md.mesh.x,md.mesh.y,data,X,Y) 88 89 #Compute index 90 index=np.array([list(range(1,numberofnodes)),list(range(2,numberofnodes+1))]).T 91 92 else: 93 94 #vertically extrude mesh 95 96 #Get base and surface for each 2d point, offset to make sure that it is inside the glacier system 97 offset=1.e-3 98 base=InterpFromMeshToMesh2d(md.mesh.elements2d,md.mesh.x2d,md.mesh.y2d,project2d(md,md.geometry.base,1),X,Y)[0]+offset 99 base=base.reshape(-1,) 100 surface=InterpFromMeshToMesh2d(md.mesh.elements2d,md.mesh.x2d,md.mesh.y2d,project2d(md,md.geometry.surface,1),X,Y)[0]-offset 101 surface=surface.reshape(-1,) 102 103 #Some useful parameters 104 layers=int(np.ceil(np.mean(md.geometry.thickness)/res_v)) 105 nodesperlayer=int(numberofnodes) 106 nodestot=int(nodesperlayer*layers) 107 elementsperlayer=int(nodesperlayer-1) 108 elementstot=int((nodesperlayer-1)*(layers-1)) 109 110 #initialization 111 X3=np.zeros(nodesperlayer*layers) 112 Y3=np.zeros(nodesperlayer*layers) 113 Z3=np.zeros(nodesperlayer*layers) 114 S3=np.zeros(nodesperlayer*layers) 115 index3=np.zeros((elementstot,4)) 116 117 #Get new coordinates in 3d 118 for i in range(1,layers+1): 119 X3[i-1::layers]=X 120 Y3[i-1::layers]=Y 121 Z3[i-1::layers]=base+(i-1)*(surface-base)/(layers-1) 122 S3[i-1::layers]=S 123 124 if i<layers-1: #Build index3 with quads 125 ids=np.vstack((np.arange(i,nodestot-layers,layers),np.arange(i+1,nodestot-layers,layers),np.arange(i+layers+1,nodestot,layers),np.arange(i+layers,nodestot,layers))).T 126 index3[(i-1)*elementsperlayer:i*elementsperlayer,:]=ids 37 if md.mesh.domaintype().lower() == '3d': 38 if isinstance(resolution[1], int) or isinstance(resolution[1], float): 39 res_v = resolution[1] 40 else: 41 raise ValueError('SectionValues error: resolution must be a length - 2 list of integers or floats') 127 42 128 #Interpolation of data on specified points 129 data_interp=InterpFromMeshToMesh3d(md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.z,data,X3,Y3,Z3,np.nan)[0] 130 131 #build outputs 132 X=X3 133 Y=Y3 134 Z=Z3 135 S=S3 43 #initialization 44 X = np.array([]) #X - coordinate 45 Y = np.array([]) #Y - coordinate 46 S = np.array([0.]) #curvilinear coordinate 136 47 137 index=index3 48 for i in range(nods - 1): 138 49 139 return index,X,Y,Z,S,data_interp 50 x_start = x[i] 51 x_end = x[i + 1] 52 y_start = y[i] 53 y_end = y[i + 1] 54 s_start = S[-1] 55 56 length_segment = np.sqrt((x_end - x_start)**2 + (y_end - y_start)**2) 57 portion = np.ceil(length_segment / res_h) 58 59 x_segment = np.zeros(portion) 60 y_segment = np.zeros(portion) 61 s_segment = np.zeros(portion) 62 63 for j in range(int(portion)): 64 x_segment[j] = x_start + (j) * (x_end - x_start) / portion 65 y_segment[j] = y_start + (j) * (y_end - y_start) / portion 66 s_segment[j] = s_start + j * length_segment / portion 67 68 #plug into X and Y 69 X = np.append(X, x_segment) 70 Y = np.append(Y, y_segment) 71 S = np.append(S, s_segment) 72 73 X = np.append(X, x[nods - 1]) 74 Y = np.append(Y, y[nods - 1]) 75 76 #Number of nodes: 77 numberofnodes = X.shape[0] 78 79 #Compute Z 80 Z = np.zeros(numberofnodes) 81 82 #New mesh and Data interpolation 83 if '2d' in md.mesh.domaintype().lower(): 84 85 #Interpolation of data on specified points 86 #data_interp = InterpFromMesh2d(md.mesh.elements, md.mesh.x, md.mesh.y, data, X, Y)[0] 87 data_interp = InterpFromMeshToMesh2d(md.mesh.elements, md.mesh.x, md.mesh.y, data, X, Y)[0] 88 #data_interp = griddata(md.mesh.x, md.mesh.y, data, X, Y) 89 90 #Compute index 91 index = np.array([list(range(1, numberofnodes)), list(range(2, numberofnodes + 1))]).T 92 93 else: 94 #vertically extrude mesh 95 #Get base and surface for each 2d point, offset to make sure that it is inside the glacier system 96 offset = 1.e-3 97 base = InterpFromMeshToMesh2d(md.mesh.elements2d, md.mesh.x2d, md.mesh.y2d, project2d(md, md.geometry.base, 1), X, Y)[0] + offset 98 base = base.reshape(- 1, ) 99 surface = InterpFromMeshToMesh2d(md.mesh.elements2d, md.mesh.x2d, md.mesh.y2d, project2d(md, md.geometry.surface, 1), X, Y)[0] - offset 100 surface = surface.reshape(- 1, ) 101 102 #Some useful parameters 103 layers = int(np.ceil(np.mean(md.geometry.thickness) / res_v)) 104 nodesperlayer = int(numberofnodes) 105 nodestot = int(nodesperlayer * layers) 106 elementsperlayer = int(nodesperlayer - 1) 107 elementstot = int((nodesperlayer - 1) * (layers - 1)) 108 109 #initialization 110 X3 = np.zeros(nodesperlayer * layers) 111 Y3 = np.zeros(nodesperlayer * layers) 112 Z3 = np.zeros(nodesperlayer * layers) 113 S3 = np.zeros(nodesperlayer * layers) 114 index3 = np.zeros((elementstot, 4)) 115 116 #Get new coordinates in 3d 117 for i in range(1, layers + 1): 118 X3[i - 1::layers] = X 119 Y3[i - 1::layers] = Y 120 Z3[i - 1::layers] = base + (i - 1) * (surface - base) / (layers - 1) 121 S3[i - 1::layers] = S 122 123 if i < layers - 1: #Build index3 with quads 124 ids = np.vstack((np.arange(i, nodestot - layers, layers), np.arange(i + 1, nodestot - layers, layers), np.arange(i + layers + 1, nodestot, layers), np.arange(i + layers, nodestot, layers))).T 125 index3[(i - 1) * elementsperlayer:i * elementsperlayer, :] = ids 126 127 #Interpolation of data on specified points 128 data_interp = InterpFromMeshToMesh3d(md.mesh.elements, md.mesh.x, md.mesh.y, md.mesh.z, data, X3, Y3, Z3, np.nan)[0] 129 130 #build outputs 131 X = X3 132 Y = Y3 133 Z = Z3 134 S = S3 135 136 index = index3 137 138 return index, X, Y, Z, S, data_interp -
issm/trunk-jpl/src/m/interp/averaging.py
r24115 r24213 17 17 by taking the average of the element around a node weighted by the 18 18 elements volume 19 For 3d mesh, 19 For 3d mesh, a last argument can be added to specify the layer to be averaged on. 20 20 21 21 Usage: 22 smoothdata =averaging(md, data, iterations)23 smoothdata =averaging(md, data, iterations, layer)22 smoothdata = averaging(md, data, iterations) 23 smoothdata = averaging(md, data, iterations, layer) 24 24 25 25 Examples: 26 velsmoothed =averaging(md, md.initialization.vel, 4)27 pressure =averaging(md, md.initialization.pressure, 0)28 temperature =averaging(md, md.initialization.temperature, 1, 1)26 velsmoothed = averaging(md, md.initialization.vel, 4) 27 pressure = averaging(md, md.initialization.pressure, 0) 28 temperature = averaging(md, md.initialization.temperature, 1, 1) 29 29 ''' 30 30 … … 39 39 #initialization 40 40 if layer == 0: 41 weights = np.zeros(md.mesh.numberofvertices, )41 weights = np.zeros(md.mesh.numberofvertices, ) 42 42 data = data.flatten(1) 43 43 else: 44 weights = np.zeros(md.mesh.numberofvertices2d, )44 weights = np.zeros(md.mesh.numberofvertices2d, ) 45 45 data = data[(layer - 1) * md.mesh.numberofvertices2d + 1:layer * md.mesh.numberofvertices2d, :] 46 46 … … 68 68 index = index - 1 # since python indexes starting from zero 69 69 line = index.flatten(1) 70 areas = np.vstack(areas).reshape(- 1,)71 summation = 1. / rep * np.ones(rep, )70 areas = np.vstack(areas).reshape(- 1, ) 71 summation = 1. / rep * np.ones(rep, ) 72 72 linesize = rep * numberofelements 73 73 74 74 #update weights that holds the volume of all the element holding the node i 75 weights = csc_matrix((np.tile(areas, (rep, 1)).reshape(- 1,), (line, np.zeros(linesize,))), shape=(numberofnodes, 1))75 weights = csc_matrix((np.tile(areas, (rep, 1)).reshape(- 1, ), (line, np.zeros(linesize, ))), shape=(numberofnodes, 1)) 76 76 77 77 #initialization 78 78 if len(data) == numberofelements: 79 average_node = csc_matrix((np.tile(areas * data, (rep, 1)).reshape(- 1,), (line, np.zeros(linesize,))), shape=(numberofnodes, 1))79 average_node = csc_matrix((np.tile(areas * data, (rep, 1)).reshape(- 1, ), (line, np.zeros(linesize, ))), shape=(numberofnodes, 1)) 80 80 average_node = average_node / weights 81 81 average_node = csc_matrix(average_node) 82 82 else: 83 average_node = csc_matrix(data.reshape(- 1, 1))83 average_node = csc_matrix(data.reshape(- 1, 1)) 84 84 85 85 #loop over iteration 86 86 for i in np.arange(1, iterations + 1): 87 average_el = np.asarray(np.dot(average_node.todense()[index].reshape(numberofelements, rep), np.vstack(summation))).reshape(- 1,)88 average_node = csc_matrix((np.tile(areas * average_el.reshape(- 1), (rep, 1)).reshape(-1,), (line, np.zeros(linesize, ))), shape=(numberofnodes, 1))87 average_el = np.asarray(np.dot(average_node.todense()[index].reshape(numberofelements, rep), np.vstack(summation))).reshape(- 1, ) 88 average_node = csc_matrix((np.tile(areas * average_el.reshape(- 1), (rep, 1)).reshape(- 1, ), (line, np.zeros(linesize, ))), shape=(numberofnodes, 1)) 89 89 average_node = average_node / weights 90 90 average_node = csc_matrix(average_node) 91 91 92 92 #return output as a full matrix (C code do not like sparse matrices) 93 average = np.asarray(average_node.todense()).reshape(- 1,)93 average = np.asarray(average_node.todense()).reshape(- 1, ) 94 94 95 95 return average -
issm/trunk-jpl/src/m/interp/holefiller.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 from scipy.spatial import cKDTree 3 3 4 def nearestneighbors(x,y,data,goodids,badids,knn): 5 ''' 6 fill holes using nearest neigbors. Arguments include: 4 5 def nearestneighbors(x, y, data, goodids, badids, knn): 6 ''' 7 fill holes using nearest neigbors. Arguments include: 7 8 8 9 9 x,y: the coordinates of data to be filled 10 data:the data field to be filled (full field, including holes)11 goodids:id's into the vertices that have good data12 badids: id's into the vertices with missing/bad data13 knn:integer representing the k nearest neighbors to use for filling14 holes. The average data value over the k nearest neighbors is 15 10 x, y: the coordinates of data to be filled 11 data: the data field to be filled (full field, including holes) 12 goodids: id's into the vertices that have good data 13 badids: id's into the vertices with missing / bad data 14 knn: integer representing the k nearest neighbors to use for filling 15 holes. The average data value over the k nearest neighbors is 16 then used to fill the hole. 16 17 17 18 filleddata=nearestneighbors(x,y,data,goodids,badids,knn)18 Usage: 19 filleddata = nearestneighbors(x, y, data, goodids, badids, knn) 19 20 20 21 filledthickness=nearestneighbors(x,y,data,goodids,badids,5)22 21 Example: 22 filledthickness = nearestneighbors(x, y, data, goodids, badids, 5) 23 ''' 23 24 24 if type(knn) != int or knn<1:25 raise TypeError('nearestneighbors error: knn should be an integer>1')25 if type(knn) != int or knn < 1: 26 raise TypeError('nearestneighbors error: knn should be an integer > 1') 26 27 27 28 28 if len(x) != len(data) or len(y) != len(data): 29 raise Exception('nearestneighbors error: x and y should have the same length as "data"') 29 30 30 filled=data31 32 XYGood=np.dstack([x[goodids],y[goodids]])[0]33 XYBad=np.dstack([x[badids],y[badids]])[0]34 tree=cKDTree(XYGood)35 nearest=tree.query(XYBad,k=knn)[1]36 37 if knn==1:38 filled[badids]=filled[goodids][nearest] # can add k=N to return the N nearest neighbors39 40 41 neardat=[]42 43 44 filled[badids[i]]=np.mean(neardat)45 46 31 filled = data 32 33 XYGood = np.dstack([x[goodids], y[goodids]])[0] 34 XYBad = np.dstack([x[badids], y[badids]])[0] 35 tree = cKDTree(XYGood) 36 nearest = tree.query(XYBad, k=knn)[1] 37 38 if knn == 1: 39 filled[badids] = filled[goodids][nearest] # can add k = N to return the N nearest neighbors 40 else: 41 for i in range(len(badids)): 42 neardat = [] 43 for j in range(knn): 44 neardat.append(filled[goodids][nearest[i][j]]) 45 filled[badids[i]] = np.mean(neardat) 46 47 return filled -
issm/trunk-jpl/src/m/interp/interp.py
r23716 r24213 1 # module for inperpolating /smoothing data2 import numpy as 1 # module for inperpolating / smoothing data 2 import numpy as np 3 3 from scipy.interpolate import CloughTocher2DInterpolator, Rbf 4 4 from scipy.spatial import cKDTree 5 5 try: 6 6 import matplotlib.pyplot as plt 7 7 except ImportError: 8 print('could not import matplotlib, no plotting functions enabled.\ 9 Set plotonly=False in function call') 10 11 def MeshSplineToMesh2d(x,y,data,xi,yi,tol=1e-6,fill_nans=False,**kwargs):#{{{ 12 ''' 13 Piecewise cubic, C1 smooth, curvature-minimizing interpolant in 2D. 14 The interpolant is guaranteed to be continuously differentiable, 15 and the gradients are chosen such that the curvature of the interpolant 16 is approximately minimized. 17 18 Uses scipy.interpolate.CloughTocher2DInterpolator 19 20 x,y: data point coordinates 21 data: data to be interpolated (same length as x,y) 22 xi,yi: coordintes to interpolate data onto 23 tol: tolerance for gradient estimation (default 1e-6) 24 fill_nans: fill nan's (holes) in data using the spline fit? 25 **kwargs: optional keywork arguments: 26 maxiter: maximum iterations in gradient estimation 27 28 Returns interpolated data at given x,y coordinates. 29 30 Usage: 31 interpdata=CloughToucher2d(x,y,data) 32 33 Examples: 34 interpdata=CloughToucher2d(md.mesh.x,md.mesh.y,data) 35 interpdata=CloughToucher2d(md.mesh.x,md.mesh.y,data,tol=1e-3,maxiter=100) 36 ''' 37 38 # unpack kwargs 39 maxiter=kwargs.pop('maxiter',None) 40 if 'maxiter' in kwargs: del kwargs['maxiter'] 41 if maxiter: 42 assert type(maxiter)==int, 'error, maxiter should be an integer' 43 assert len(kwargs)==0, 'error, unexpected or misspelled kwargs' 44 45 # create sub-vectors that just cover the limits of xi and yi 46 # TODO x,y not necessarily a grid, so need a better definition of dx,dy (e.g. average element size) 47 dx=500 48 dy=500 49 #dx=x[1]-x[0] 50 #dy=y[1]-y[0] 51 xlim=[min(xi)-dx,max(xi)+dx] 52 ylim=[min(yi)-dy,max(yi)+dy] 53 xflag=np.logical_and(x>xlim[0],x<xlim[1]) 54 yflag=np.logical_and(y>ylim[0],y<ylim[1]) 55 bothind=np.nonzero(np.logical_and(xflag,yflag)) 56 subdata=data[bothind] 57 subx=x[bothind] 58 suby=y[bothind] 59 points=np.array([subx,suby]).T 60 61 # mask out any nan's in the data and corresponding coordinate points 62 mask=np.isnan(subdata) 63 ind=np.nonzero(mask)[0] 64 if len(ind) and fill_nans: 65 print(" WARNING: filling nans using spline fit through good data points, which may or may not be appropriate. Check results carefully.") 66 subdata=np.delete(subdata,ind) 67 points=np.delete(points,ind,axis=0) 68 69 if maxiter: 70 spline=CloughTocher2DInterpolator(points,subdata,tol,maxiter=maxiter) 71 else: 72 spline=CloughTocher2DInterpolator(points,subdata,tol) 73 74 interpdata=spline(xi,yi) 75 76 if not fill_nans: 77 # identify nan's in xi,yi using nearest neighbors 78 xyinterp=np.dstack([xi,yi])[0] 79 xg,yg=np.meshgrid(subx,suby) 80 xydata=np.dstack([subx,suby])[0] 81 tree=cKDTree(xydata) 82 nearest=tree.query(xyinterp)[1] 83 pos=np.nonzero(np.isnan(subdata[nearest])) 84 interpdata[pos]=subdata[nearest][pos] 85 86 return interpdata 87 #}}} 88 def GridSplineToMesh2d(x,y,data,xi,yi,default_value=np.nan,plotonly=False,fill_nans=False):#{{{ 89 ''' 90 python analog to InterpFromGridToMesh. This routine uses 91 scipy.interpolate.CloughTocher2dInterpolator to create a bivariate spline 92 interpolation of the input data and then return values of the spline 93 on the x,y coordinates of the model mesh. The interpolant is piece-wise 94 cubic, C1 smooth (continuously differentiable) and has approximately 95 minimized curvature. See "help(scipy.interpolate.CloughTocher2dInterpolator)" 96 for more information on the routine. 97 98 NOTE: this routine will not be appropriate if there are large holes (nan's) in 99 the input data. A non-spline interpolation scheme should be used in that case. 100 101 x,y: vectors defining the coordinates of the input data 102 data: 2D array of input data 103 xi,yi: x and y coordinates to be interpolated onto 104 default_value: default value if points lie outside the convex hull of input 105 points (defaults to nan if not specified) 106 plotonly: plot the data to be interpolated using imshow (useful for 107 fill_nans: fill nan's (holes) in data using the spline fit? 108 109 Usage: 110 interpdata=GridToMesh(x,y,data,xi,yi,default_value=np.nan,plotonly=False,fill_nans=False) 111 112 Examples: 113 interpdata=GridToMesh(x_m,y_m,data,md.mesh.x,md.mesh.y,0) 114 ''' 115 116 if np.ndim(x)==2: 117 x=x.reshape(-1,) 118 if np.ndim(y)==2: 119 y=y.reshape(-1,) 120 if len(x) != data.shape[1]+1 and len(x) != data.shape[1]: 121 raise ValueError('x should have same length as ncols(data) or ncols(data)+1') 122 if len(y) != data.shape[0]+1 and len(y) != data.shape[0]: 123 raise ValueError('y should have same length as nrows(data) or nrows(data)+1') 124 125 # create sub-grid that just covers the limits of xi and yi 126 dx=x[1]-x[0] 127 dy=y[1]-y[0] 128 xlim=[min(xi)-dx,max(xi)+dx] 129 ylim=[min(yi)-dy,max(yi)+dy] 130 131 # TODO create grid differently depending on whether data is defined at x,y 132 # or at the center of a grid cell with corner coordinates defined by xi,yi 133 # create points array and flattened data array 134 if len(x)==data.shape[1] and len(y)==data.shape[0]: 135 print(' x,y taken to define the center of data grid cells') 136 xind=np.nonzero(np.logical_and(x>xlim[0],x<xlim[1]))[0] 137 yind=np.nonzero(np.logical_and(y>ylim[0],y<ylim[1]))[0] 138 xg,yg=np.meshgrid(x[xind],y[yind]) 139 subdata=data[yind[0]:yind[-1]+1,xind[0]:xind[-1]+1] 140 elif len(x)==data.shape[1]+1 and len(y)==data.shape[0]+1: 141 print(' x,y taken to define the corners of data grid cells') 142 xcenter=np.fromiter(((x[i]+x[i+1])/2 for i in range(len(x)-1)),np.float) 143 ycenter=np.fromiter(((y[i]+y[i+1])/2 for i in range(len(y)-1)),np.float) 144 xind=np.nonzero(np.logical_and(xcenter>xlim[0],xcenter<xlim[1]))[0] 145 yind=np.nonzero(np.logical_and(ycenter>ylim[0],ycenter<ylim[1]))[0] 146 xg,yg=np.meshgrid(xcenter[xind],ycenter[yind]) 147 subdata=data[yind[0]:yind[-1]+1,xind[0]:xind[-1]+1] 148 else: 149 raise ValueError('x and y have inconsistent sizes: both should have length ncols(data)/nrows(data) or ncols(data)+1/nrows(data)+1') 150 151 points=np.array([xg.ravel(),yg.ravel()]).T 152 flatsubdata=subdata.ravel() 153 154 if plotonly: 155 plt.imshow(np.flipud(subdata),origin='upper') 156 plt.show() 157 return 158 159 # mask out any nan's in the data and corresponding coordinate points 160 mask=np.isnan(flatsubdata) 161 ind=np.nonzero(mask)[0] 162 if len(ind) and fill_nans: 163 print(" WARNING: filling nans using spline fit through good data points, which may or may not be appropriate. Check results carefully.") 164 goodsubdata=np.delete(flatsubdata,ind) 165 goodpoints=np.delete(points,ind,axis=0) 166 167 # create spline and index spline at mesh points 168 spline=CloughTocher2DInterpolator(goodpoints,goodsubdata) 169 interpdata=spline(xi,yi) 170 171 if not fill_nans: 172 # identify nan's in xi,yi using nearest neighbors 173 xyinterp=np.dstack([xi,yi])[0] 174 xydata=np.dstack([xg.ravel(),yg.ravel()])[0] 175 tree=cKDTree(xydata) 176 nearest=tree.query(xyinterp)[1] 177 pos=np.nonzero(np.isnan(flatsubdata[nearest])) 178 interpdata[pos]=flatsubdata[nearest][pos] 179 180 return interpdata 181 #}}} 182 def RadialInterp(x,y,data,xi,yi,**kwargs):#{{{ 183 ''' 184 Interpolation using a radial basis function in 2 or 3 dimensions. 185 Useful for smoothing input data after interpolation. 186 187 Uses scipy.interpolate.Rbf 188 189 x,y: data point coordinates 190 data: data to be interpolated (same length as x,y) 191 xi,yi: coordinates to interpolate onto 192 function: form of radial basis function for interpolation: 193 'multiquadric': sqrt((r/self.epsilon)**2 + 1) (default) 194 'inverse': 1.0/sqrt((r/self.epsilon)**2 + 1) 195 'gaussian': exp(-(r/self.epsilon)**2) 196 'linear': r 197 'cubic': r**3 198 'quintic': r**5 199 'thin_plate': r**2 * log(r) 200 epsilon: adjustable constant for scaling radial distance. Defaults to 201 approximate average distance between nodes. 202 smooth: float>0, adjusts the amount of smoothing applied. Defaults to 0, 203 such that the function always passes through nodal points. 204 z: coordinate array if interpolating in 3 dimensions 205 zi: coordinate array if interpolating in 3 dimensions 206 207 Usage: 208 interpdata=RadialInterp(x,y,data,**kwargs) 209 210 Examples: 211 interpdata=RadialInterp(md.mesh.x,md.mesh.y,data) 212 interpdata=RadialInterp(md.mesh.x,md.mesh.y,data,function='gaussian',epsilon=100,smooth=1) 213 ''' 214 215 # unpack kwargs 216 function=kwargs.pop('function','gaussian') 217 if 'function' in kwargs: del kwargs['function'] 218 epsilon=kwargs.pop('epsilon',None) 219 if 'epsilon' in kwargs: del kwargs['epsilon'] 220 smooth=kwargs.pop('smooth',0) 221 if 'smooth' in kwargs: del kwargs['smooth'] 222 z=kwargs.pop('z',None) 223 if 'z' in kwargs: del kwargs['z'] 224 assert len(kwargs)==0, 'error, unexpected or misspelled kwargs' 225 226 if z: 227 if epsilon: 228 rbfi=Rbf(x,y,z,data,function=function,smooth=smooth,epsilon=epsilon) 229 else: 230 rbfi=Rbf(x,y,z,data,function=function,smooth=smooth) 231 interpdata=rbfi(xi,yi,zi) 232 else: 233 if epsilon: 234 rbfi=Rbf(x,y,data,function=function,smooth=smooth,epsilon=epsilon) 235 else: 236 rbfi=Rbf(x,y,data,function=function,smooth=smooth) 237 interpdata=rbfi(xi,yi) 238 239 return interpdata 240 #}}} 8 print('could not import matplotlib, no plotting functions enabled. Set plotonly = False in function call') 9 10 11 def MeshSplineToMesh2d(x, y, data, xi, yi, tol=1e-6, fill_nans=False, **kwargs): #{{{ 12 ''' 13 Piecewise cubic, C1 smooth, curvature-minimizing interpolant in 2D. 14 The interpolant is guaranteed to be continuously differentiable, 15 and the gradients are chosen such that the curvature of the interpolant 16 is approximately minimized. 17 18 Uses scipy.interpolate.CloughTocher2DInterpolator 19 20 x, y: data point coordinates 21 data: data to be interpolated (same length as x, y) 22 xi, yi: coordintes to interpolate data onto 23 tol: tolerance for gradient estimation (default 1e-6) 24 fill_nans: fill nan's (holes) in data using the spline fit? 25 **kwargs: optional keywork arguments: 26 maxiter: maximum iterations in gradient estimation 27 28 Returns interpolated data at given x, y coordinates. 29 30 Usage: 31 interpdata = CloughToucher2d(x, y, data) 32 33 Examples: 34 interpdata = CloughToucher2d(md.mesh.x, md.mesh.y, data) 35 interpdata = CloughToucher2d(md.mesh.x, md.mesh.y, data, tol = 1e-3, maxiter = 100) 36 ''' 37 38 # unpack kwargs 39 maxiter = kwargs.pop('maxiter', None) 40 if 'maxiter' in kwargs: 41 del kwargs['maxiter'] 42 if maxiter: 43 assert type(maxiter) == int, 'error, maxiter should be an integer' 44 assert len(kwargs) == 0, 'error, unexpected or misspelled kwargs' 45 46 # create sub - vectors that just cover the limits of xi and yi 47 # TODO x, y not necessarily a grid, so need a better definition of dx, dy (e.g. average element size) 48 dx = 500 49 dy = 500 50 #dx = x[1] - x[0] 51 #dy = y[1] - y[0] 52 xlim = [min(xi) - dx, max(xi) + dx] 53 ylim = [min(yi) - dy, max(yi) + dy] 54 xflag = np.logical_and(x > xlim[0], x < xlim[1]) 55 yflag = np.logical_and(y > ylim[0], y < ylim[1]) 56 bothind = np.nonzero(np.logical_and(xflag, yflag)) 57 subdata = data[bothind] 58 subx = x[bothind] 59 suby = y[bothind] 60 points = np.array([subx, suby]).T 61 62 # mask out any nan's in the data and corresponding coordinate points 63 mask = np.isnan(subdata) 64 ind = np.nonzero(mask)[0] 65 if len(ind) and fill_nans: 66 print(" WARNING: filling nans using spline fit through good data points, which may or may not be appropriate. Check results carefully.") 67 subdata = np.delete(subdata, ind) 68 points = np.delete(points, ind, axis=0) 69 70 if maxiter: 71 spline = CloughTocher2DInterpolator(points, subdata, tol, maxiter=maxiter) 72 else: 73 spline = CloughTocher2DInterpolator(points, subdata, tol) 74 75 interpdata = spline(xi, yi) 76 77 if not fill_nans: 78 # identify nan's in xi, yi using nearest neighbors 79 xyinterp = np.dstack([xi, yi])[0] 80 xg, yg = np.meshgrid(subx, suby) 81 xydata = np.dstack([subx, suby])[0] 82 tree = cKDTree(xydata) 83 nearest = tree.query(xyinterp)[1] 84 pos = np.nonzero(np.isnan(subdata[nearest])) 85 interpdata[pos] = subdata[nearest][pos] 86 87 return interpdata 88 #}}} 89 90 91 def GridSplineToMesh2d(x, y, data, xi, yi, default_value=np.nan, plotonly=False, fill_nans=False): #{{{ 92 ''' 93 python analog to InterpFromGridToMesh. This routine uses 94 scipy.interpolate.CloughTocher2dInterpolator to create a bivariate spline 95 interpolation of the input data and then return values of the spline 96 on the x, y coordinates of the model mesh. The interpolant is piece-wise 97 cubic, C1 smooth (continuously differentiable) and has approximately 98 minimized curvature. See "help(scipy.interpolate.CloughTocher2dInterpolator)" 99 for more information on the routine. 100 101 NOTE: this routine will not be appropriate if there are large holes (nan's) in 102 the input data. A non - spline interpolation scheme should be used in that case. 103 104 x, y: vectors defining the coordinates of the input data 105 data: 2D array of input data 106 xi, yi: x and y coordinates to be interpolated onto 107 default_value: default value if points lie outside the convex hull of input 108 points (defaults to nan if not specified) 109 plotonly: plot the data to be interpolated using imshow (useful for 110 fill_nans: fill nan's (holes) in data using the spline fit? 111 112 Usage: 113 interpdata = GridToMesh(x, y, data, xi, yi, default_value = np.nan, plotonly = False, fill_nans = False) 114 115 Examples: 116 interpdata = GridToMesh(x_m, y_m, data, md.mesh.x, md.mesh.y, 0) 117 ''' 118 119 if np.ndim(x) == 2: 120 x = x.reshape(- 1, ) 121 if np.ndim(y) == 2: 122 y = y.reshape(- 1, ) 123 if len(x) != data.shape[1] + 1 and len(x) != data.shape[1]: 124 raise ValueError('x should have same length as ncols(data) or ncols(data) + 1') 125 if len(y) != data.shape[0] + 1 and len(y) != data.shape[0]: 126 raise ValueError('y should have same length as nrows(data) or nrows(data) + 1') 127 128 # create sub - grid that just covers the limits of xi and yi 129 dx = x[1] - x[0] 130 dy = y[1] - y[0] 131 xlim = [min(xi) - dx, max(xi) + dx] 132 ylim = [min(yi) - dy, max(yi) + dy] 133 134 # TODO create grid differently depending on whether data is defined at x, y 135 # or at the center of a grid cell with corner coordinates defined by xi, yi 136 # create points array and flattened data array 137 if len(x) == data.shape[1] and len(y) == data.shape[0]: 138 print(' x, y taken to define the center of data grid cells') 139 xind = np.nonzero(np.logical_and(x > xlim[0], x < xlim[1]))[0] 140 yind = np.nonzero(np.logical_and(y > ylim[0], y < ylim[1]))[0] 141 xg, yg = np.meshgrid(x[xind], y[yind]) 142 subdata = data[yind[0]:yind[-1] + 1, xind[0]:xind[-1] + 1] 143 elif len(x) == data.shape[1] + 1 and len(y) == data.shape[0] + 1: 144 print(' x, y taken to define the corners of data grid cells') 145 xcenter = np.fromiter(((x[i] + x[i + 1]) / 2 for i in range(len(x) - 1)), np.float) 146 ycenter = np.fromiter(((y[i] + y[i + 1]) / 2 for i in range(len(y) - 1)), np.float) 147 xind = np.nonzero(np.logical_and(xcenter > xlim[0], xcenter < xlim[1]))[0] 148 yind = np.nonzero(np.logical_and(ycenter > ylim[0], ycenter < ylim[1]))[0] 149 xg, yg = np.meshgrid(xcenter[xind], ycenter[yind]) 150 subdata = data[yind[0]:yind[-1] + 1, xind[0]:xind[-1] + 1] 151 else: 152 raise ValueError('x and y have inconsistent sizes: both should have length ncols(data) / nrows(data) or ncols(data) + 1 / nrows(data) + 1') 153 154 points = np.array([xg.ravel(), yg.ravel()]).T 155 flatsubdata = subdata.ravel() 156 157 if plotonly: 158 plt.imshow(np.flipud(subdata), origin='upper') 159 plt.show() 160 return 161 162 # mask out any nan's in the data and corresponding coordinate points 163 mask = np.isnan(flatsubdata) 164 ind = np.nonzero(mask)[0] 165 if len(ind) and fill_nans: 166 print(" WARNING: filling nans using spline fit through good data points, which may or may not be appropriate. Check results carefully.") 167 goodsubdata = np.delete(flatsubdata, ind) 168 goodpoints = np.delete(points, ind, axis=0) 169 170 # create spline and index spline at mesh points 171 spline = CloughTocher2DInterpolator(goodpoints, goodsubdata) 172 interpdata = spline(xi, yi) 173 174 if not fill_nans: 175 # identify nan's in xi, yi using nearest neighbors 176 xyinterp = np.dstack([xi, yi])[0] 177 xydata = np.dstack([xg.ravel(), yg.ravel()])[0] 178 tree = cKDTree(xydata) 179 nearest = tree.query(xyinterp)[1] 180 pos = np.nonzero(np.isnan(flatsubdata[nearest])) 181 interpdata[pos] = flatsubdata[nearest][pos] 182 183 return interpdata 184 #}}} 185 186 187 def RadialInterp(x, y, data, xi, yi, **kwargs): #{{{ 188 ''' 189 Interpolation using a radial basis function in 2 or 3 dimensions. 190 Useful for smoothing input data after interpolation. 191 192 Uses scipy.interpolate.Rbf 193 194 x, y: data point coordinates 195 data: data to be interpolated (same length as x, y) 196 xi, yi: coordinates to interpolate onto 197 function: form of radial basis function for interpolation: 198 'multiquadric': sqrt((r / self.epsilon)**2 + 1) (default) 199 'inverse': 1.0 / sqrt((r / self.epsilon)**2 + 1) 200 'gaussian': exp(- (r / self.epsilon)**2) 201 'linear': r 202 'cubic': r**3 203 'quintic': r**5 204 'thin_plate': r**2 * log(r) 205 epsilon: adjustable constant for scaling radial distance. Defaults to 206 approximate average distance between nodes. 207 smooth: float > 0, adjusts the amount of smoothing applied. Defaults to 0, 208 such that the function always passes through nodal points. 209 z: coordinate array if interpolating in 3 dimensions 210 zi: coordinate array if interpolating in 3 dimensions 211 212 Usage: 213 interpdata = RadialInterp(x, y, data,**kwargs) 214 215 Examples: 216 interpdata = RadialInterp(md.mesh.x, md.mesh.y, data) 217 interpdata = RadialInterp(md.mesh.x, md.mesh.y, data, function = 'gaussian', epsilon = 100, smooth = 1) 218 ''' 219 220 # unpack kwargs 221 function = kwargs.pop('function', 'gaussian') 222 if 'function' in kwargs: 223 del kwargs['function'] 224 epsilon = kwargs.pop('epsilon', None) 225 if 'epsilon' in kwargs: 226 del kwargs['epsilon'] 227 smooth = kwargs.pop('smooth', 0) 228 if 'smooth' in kwargs: 229 del kwargs['smooth'] 230 z = kwargs.pop('z', None) 231 if 'z' in kwargs: 232 del kwargs['z'] 233 assert len(kwargs) == 0, 'error, unexpected or misspelled kwargs' 234 235 if z: 236 if epsilon: 237 rbfi = Rbf(x, y, z, data, function=function, smooth=smooth, epsilon=epsilon) 238 else: 239 rbfi = Rbf(x, y, z, data, function=function, smooth=smooth) 240 interpdata = rbfi(xi, yi, zi) 241 else: 242 if epsilon: 243 rbfi = Rbf(x, y, data, function=function, smooth=smooth, epsilon=epsilon) 244 else: 245 rbfi = Rbf(x, y, data, function=function, smooth=smooth) 246 interpdata = rbfi(xi, yi) 247 248 return interpdata 249 #}}} -
issm/trunk-jpl/src/m/inversions/marshallcostfunctions.py
r21246 r24213 1 import copy2 1 3 2 def marshallcostfunctions(cost_functions): 4 3 5 cfDict={101:'SurfaceAbsVelMisfit',6 102:'SurfaceRelVelMisfit',7 103:'SurfaceLogVelMisfit',8 104:'SurfaceLogVxVyMisfit',9 105:'SurfaceAverageVelMisfit',10 201:'ThicknessAbsMisfit',11 501:'DragCoefficientAbsGradient',12 502:'RheologyBbarAbsGradient',13 503:'ThicknessAbsGradient',14 504:'ThicknessAlongGradient',15 505:'ThicknessAcrossGradient',}4 cfDict = {101: 'SurfaceAbsVelMisfit', 5 102: 'SurfaceRelVelMisfit', 6 103: 'SurfaceLogVelMisfit', 7 104: 'SurfaceLogVxVyMisfit', 8 105: 'SurfaceAverageVelMisfit', 9 201: 'ThicknessAbsMisfit', 10 501: 'DragCoefficientAbsGradient', 11 502: 'RheologyBbarAbsGradient', 12 503: 'ThicknessAbsGradient', 13 504: 'ThicknessAlongGradient', 14 505: 'ThicknessAcrossGradient'} 16 15 17 data=[cfDict[cf] for cf in cost_functions]18 ##copy list first19 # data=copy.deepcopy(cost_functions)16 data = [cfDict[cf] for cf in cost_functions] 17 # #copy list first 18 # data = copy.deepcopy(cost_functions) 20 19 21 # #convert to strings 22 # pos=[i for i,x in enumerate(cost_functions) if x==101]; 23 # for i in pos: data[i]='SurfaceAbsVelMisfit' 24 # pos=[i for i,x in enumerate(cost_functions) if x==102]; 25 # for i in pos: data[i]='SurfaceRelVelMisfit' 26 # pos=[i for i,x in enumerate(cost_functions) if x==103]; 27 # for i in pos: data[i]='SurfaceLogVelMisfit' 28 # pos=[i for i,x in enumerate(cost_functions) if x==104]; 29 # for i in pos: data[i]='SurfaceLogVxVyMisfit' 30 # pos=[i for i,x in enumerate(cost_functions) if x==105]; 31 # for i in pos: data[i]='SurfaceAverageVelMisfit' 32 # pos=[i for i,x in enumerate(cost_functions) if x==201]; 33 # for i in pos: data[i]='ThicknessAbsMisfit' 34 # pos=[i for i,x in enumerate(cost_functions) if x==501]; 35 # for i in pos: data[i]='DragCoefficientAbsGradient' 36 # pos=[i for i,x in enumerate(cost_functions) if x==502]; 37 # for i in pos: data[i]='RheologyBbarAbsGradient' 38 # pos=[i for i,x in enumerate(cost_functions) if x==503]; 39 # for i in pos: data[i]='ThicknessAbsGradient' 40 # pos=[i for i,x in enumerate(cost_functions) if x==504]; 41 # for i in pos: data[i]='ThicknessAlongGradient' 42 # pos=[i for i,x in enumerate(cost_functions) if x==505]; 43 # for i in pos: data[i]='ThicknessAcrossGradient' 20 # #convert to strings 21 # pos = [i for i, x in enumerate(cost_functions) if x == 101] 22 # for i in pos: data[i] = 'SurfaceAbsVelMisfit' 23 # pos = [i for i, x in enumerate(cost_functions) if x == 102] 24 # for i in pos: data[i] = 'SurfaceRelVelMisfit' 25 # pos = [i for i, x in enumerate(cost_functions) if x == 103] 26 # for i in pos: data[i] = 'SurfaceLogVelMisfit' 27 # pos = [i for i, x in enumerate(cost_functions) if x == 104] 28 # for i in pos: data[i] = 'SurfaceLogVxVyMisfit' 29 # pos = [i for i, x in enumerate(cost_functions) if x == 105] 30 # for i in pos: data[i] = 'SurfaceAverageVelMisfit' 31 # pos = [i for i, x in enumerate(cost_functions) if x == 201] 32 # for i in pos: data[i] = 'ThicknessAbsMisfit' 33 # pos = [i for i, x in enumerate(cost_functions) if x == 501] 34 # for i in pos: data[i] = 'DragCoefficientAbsGradient' 35 # pos = [i for i, x in enumerate(cost_functions) if x == 502] 36 # for i in pos: data[i] = 'RheologyBbarAbsGradient' 37 # pos = [i for i, x in enumerate(cost_functions) if x == 503] 38 # for i in pos: data[i] = 'ThicknessAbsGradient' 39 # pos = [i for i, x in enumerate(cost_functions) if x == 504] 40 # for i in pos: data[i] = 'ThicknessAlongGradient' 41 # pos = [i for i, x in enumerate(cost_functions) if x == 505] 42 # for i in pos: data[i] = 'ThicknessAcrossGradient' 44 43 45 44 return data -
issm/trunk-jpl/src/m/inversions/parametercontroldrag.py
r21254 r24213 1 def parametercontroldrag(md,*args): 2 """ 3 PARAMETERCONTROLDRAG - parameterization for control method on drag 1 import numpy as np 2 from pairoptions import pairoptions 4 3 5 It is possible to specify the number of steps, values for the6 minimum and maximum values of the drag, the7 kind of cm_responses to use or the the optscal.8 4 9 Usage: 10 md=parametercontroldrag(md,varargin) 5 def parametercontroldrag(md, *args): 6 """ 7 PARAMETERCONTROLDRAG - parameterization for control method on drag 11 8 12 Example: 13 md=parametercontroldrag(md) 14 md=parametercontroldrag(md,'nsteps',20,'cm_responses',0) 15 md=parametercontroldrag(md,'cm_min',1,'cm_max',150,'cm_jump',0.99,'maxiter',20) 16 md=parametercontroldrag(md,eps_cm',10^-4,'optscal',[10^7 10^8]) 9 It is possible to specify the number of steps, values for the 10 minimum and maximum values of the drag, the 11 kind of cm_responses to use or the the optscal. 17 12 18 See also PARAMETERCONTROLB 19 """ 13 Usage: 14 md = parametercontroldrag(md, varargin) 20 15 21 #process options 22 options=pairoptions(*args) 16 Example: 17 md = parametercontroldrag(md) 18 md = parametercontroldrag(md, 'nsteps', 20, 'cm_responses', 0) 19 md = parametercontroldrag(md, 'cm_min', 1, 'cm_max', 150, 'cm_jump', 0.99, 'maxiter', 20) 20 md = parametercontroldrag(md, eps_cm', 10^ - 4, 'optscal', [10^7 10^8]) 23 21 24 #control type 25 md.inversion.control_parameters='FrictionCoefficient' 22 See also PARAMETERCONTROLB 23 """ 26 24 27 #weights 28 weights=options.getfieldvalue('weights',np.ones(md.mesh.numberofvertices)) 29 if np.size(weights)!=md.mesh.numberofvertices: 30 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices) 31 else: 32 md.inversion.cost_functions_coefficients=weights 25 #process options 26 options = pairoptions(*args) 33 27 34 #nsteps 35 nsteps=options.getfieldvalue('nsteps',100); 36 if (np.size(nsteps)!=1) | (nsteps<=0) | (floor(nsteps)!=nsteps): 37 md.inversion.nsteps=100 38 else: 39 md.inversion.nsteps=nsteps 28 #control type 29 md.inversion.control_parameters = 'FrictionCoefficient' 40 30 41 #cm_min 42 cm_min=options.getfieldvalue('cm_min',ones(md.mesh.numberofvertices)) 43 if (np.size(cm_min)==1): 44 md.inversion.min_parameters=cm_min*ones(md.mesh.numberofvertices) 45 elif (np.size(cm_min)==md.mesh.numberofvertices): 46 md.inversion.min_parameters=cm_min 47 else: 48 md.inversion.min_parameters=cm_min; 31 #weights 32 weights = options.getfieldvalue('weights', np.ones(md.mesh.numberofvertices)) 33 if np.size(weights) != md.mesh.numberofvertices: 34 md.inversion.cost_functions_coefficients = np.ones(md.mesh.numberofvertices) 35 else: 36 md.inversion.cost_functions_coefficients = weights 49 37 50 #cm_max 51 cm_max=options.getfieldvalue('cm_max',250*ones(md.mesh.numberofvertices)) 52 if (np.size(cm_max)==1): 53 md.inversion.max_parameters=cm_max*ones(md.mesh.numberofvertices) 54 elif (np.size(cm_max)==md.mesh.numberofvertices): 55 md.inversion.max_parameters=cm_max 56 else: 57 md.inversion.max_parameters=cm_max 38 #nsteps 39 nsteps = options.getfieldvalue('nsteps', 100) 40 if (np.size(nsteps) != 1) | (nsteps <= 0) | (np.floor(nsteps) != nsteps): 41 md.inversion.nsteps = 100 42 else: 43 md.inversion.nsteps = nsteps 58 44 59 #eps_cm 60 eps_cm=optoins.getfieldvalue('eps_cm',float('nan')) 61 if (np.size(eps_cm)~=1 | eps_cm<0 ): 62 md.inversion.cost_function_threshold=float('nan') 63 else: 64 md.inversion.cost_function_threshold=eps_cm 45 #cm_min 46 cm_min = options.getfieldvalue('cm_min', np.ones(md.mesh.numberofvertices)) 47 if (np.size(cm_min) == 1): 48 md.inversion.min_parameters = cm_min * np.ones(md.mesh.numberofvertices) 49 elif (np.size(cm_min) == md.mesh.numberofvertices): 50 md.inversion.min_parameters = cm_min 51 else: 52 md.inversion.min_parameters = cm_min 65 53 66 #maxiter 67 maxiter=options.getfieldvalue('maxiter',10*ones(md.inversion.nsteps))68 if (np.any(maxiter<0) | np.any(floor(maxiter)~=maxiter)):69 md.inversion.maxiter_per_step=10*ones(md.inversion.nsteps)70 else:71 raise RuntimeError("not implemented yet, see below matlab lines") 72 #md.inversion.maxiter_per_step=repmat(maxiter(:),md.inversion.nsteps,1); 73 #md.inversion.maxiter_per_step(md.inversion.nsteps+1:end)=[]; 54 #cm_max 55 cm_max = options.getfieldvalue('cm_max', 250 * np.ones(md.mesh.numberofvertices)) 56 if (np.size(cm_max) == 1): 57 md.inversion.max_parameters = cm_max * np.ones(md.mesh.numberofvertices) 58 elif (np.size(cm_max) == md.mesh.numberofvertices): 59 md.inversion.max_parameters = cm_max 60 else: 61 md.inversion.max_parameters = cm_max 74 62 75 #cm_jump 76 cm_jump=options.getfieldvalue('cm_jump',0.8*ones(md.inversion.nsteps)) 77 if !np.isreal(cm_jump): 78 md.inversion.step_threshold=0.8*ones(md.inversion.nsteps) 79 else: 80 raise RuntimeError("not implemented yet, see below matlab lines") 81 #md.inversion.step_threshold=repmat(cm_jump(:),md.inversion.nsteps,1); 82 #md.inversion.step_threshold(md.inversion.nsteps+1:end)=[]; 63 #eps_cm 64 eps_cm = options.getfieldvalue('eps_cm', float('nan')) 65 if (np.size(eps_cm) != 1 | eps_cm < 0): 66 md.inversion.cost_function_threshold = float('nan') 67 else: 68 md.inversion.cost_function_threshold = eps_cm 83 69 84 #cm_responses 85 found=0; 86 if options.exist('cm_responses'): 87 cm_responses=options.getfieldvalue('cm_responses') 88 if ~any(~ismember(cm_responses,[101 105])): 89 md.inversion.cost_functions=repmat(cm_responses(:),md.inversion.nsteps,1); 90 md.inversion.cost_functions(md.inversion.nsteps+1:end)=[]; 91 found=1; 92 if ~found 93 third=ceil(md.inversion.nsteps/3); 94 md.inversion.cost_functions=[... 95 103*ones(third,1);... 96 101*ones(third,1);... 97 repmat([101;101;103;101],third,1)... 98 ]; 99 md.inversion.cost_functions(md.inversion.nsteps+1:end)=[]; 100 end 70 #maxiter 71 maxiter = options.getfieldvalue('maxiter', 10 * np.ones(md.inversion.nsteps)) 72 if (np.any(maxiter < 0) | np.any(np.floor(maxiter) != maxiter)): 73 md.inversion.maxiter_per_step = 10 * np.ones(md.inversion.nsteps) 74 else: 75 raise RuntimeError("not implemented yet, see below matlab lines") 76 #md.inversion.maxiter_per_step = repmat(maxiter(:), md.inversion.nsteps, 1) 77 #md.inversion.maxiter_per_step(md.inversion.nsteps + 1:end) = [] 101 78 102 %optscal 103 found=0; 104 if exist(options,'optscal'), 105 optscal=getfieldvalue(options,'optscal'); 106 if ~any(optscal<0), 107 md.inversion.gradient_scaling=repmat(optscal(:),md.inversion.nsteps,1); 108 md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[]; 109 found=1; 110 end 111 end 112 if ~found 113 third=ceil(md.inversion.nsteps/3); 114 md.inversion.gradient_scaling=[50*ones(3,1);15*ones(third-3,1);10*ones(third,1);repmat([10;10;20;10],third,1)]; 115 md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[]; 116 end 79 #cm_jump 80 cm_jump = options.getfieldvalue('cm_jump', 0.8 * np.ones(md.inversion.nsteps)) 81 if not np.isreal(cm_jump): 82 md.inversion.step_threshold = 0.8 * np.ones(md.inversion.nsteps) 83 else: 84 raise RuntimeError("not implemented yet, see below matlab lines") 85 #md.inversion.step_threshold = repmat(cm_jump(:), md.inversion.nsteps, 1) 86 #md.inversion.step_threshold(md.inversion.nsteps + 1:end) = [] 117 87 118 return md 88 #cm_responses 89 found = 0 90 if options.exist('cm_responses'): 91 cm_responses = options.getfieldvalue('cm_responses') 92 if not any(cm_responses not in [101, 105]): 93 md.inversion.cost_functions = np.tile(cm_responses[:], (md.inversion.nsteps, 1)) 94 md.inversion.cost_functions[md.inversion.nsteps:] = [] 95 found = 1 96 if not found: 97 third = np.ceil(md.inversion.nsteps / 3) 98 md.inversion.cost_functions = [103 * np.ones(third, 1), 99 101 * np.ones(third, 1), 100 np.tile([101, 101, 103, 101], (third, 1))] 101 md.inversion.cost_functions[md.inversion.nsteps:] = [] 102 103 #optscal 104 found = 0 105 if options.exist('optscal'): 106 optscal = options.getfieldvalue('optscal') 107 if not any(optscal < 0): 108 md.inversion.gradient_scaling = np.tile(optscal[:], (md.inversion.nsteps, 1)) 109 md.inversion.gradient_scaling[md.inversion.nsteps:] = [] 110 found = 1 111 112 if not found: 113 third = np.ceil(md.inversion.nsteps / 3) 114 md.inversion.gradient_scaling = [50 * np.ones(3, 1), 115 15 * np.ones(third - 3, 1), 116 10 * np.ones(third, 1), 117 np.tile([10, 10, 20, 10], (third, 1))] 118 md.inversion.gradient_scaling[md.inversion.nsteps:] = [] 119 120 return md -
issm/trunk-jpl/src/m/inversions/supportedcontrols.py
r19001 r24213 1 1 def supportedcontrols(): 2 return ['BalancethicknessThickeningRate','FrictionCoefficient','FrictionAs','MaterialsRheologyBbar','DamageDbar','Vx','Vy']2 return ['BalancethicknessThickeningRate', 'FrictionCoefficient', 'FrictionAs', 'MaterialsRheologyBbar', 'DamageDbar', 'Vx', 'Vy'] -
issm/trunk-jpl/src/m/inversions/supportedcostfunctions.py
r18994 r24213 1 1 def supportedcostfunctions(): 2 return [101,102,103,104,105,201,501,502,503,504,505]2 return [101, 102, 103, 104, 105, 201, 501, 502, 503, 504, 505] -
issm/trunk-jpl/src/m/io/loadmodel.py
r23772 r24213 12 12 def loadmodel(path): 13 13 """ 14 LOADMODEL - load a model using built -in load module14 LOADMODEL - load a model using built - in load module 15 15 16 16 check that model prototype has not changed. if so, adapt to new model prototype. 17 17 18 18 Usage: 19 md =loadmodel(path)19 md = loadmodel(path) 20 20 """ 21 21 … … 31 31 except RuntimeError: 32 32 raise IOError("loadmodel error message: file '%s' does not exist" % path) 33 33 # try: 34 34 #recover model on file and name it md 35 35 struc = loadvars(path) -
issm/trunk-jpl/src/m/io/loadvars.py
r23772 r24213 25 25 26 26 Usage: 27 a =loadvars('shelve.dat','a')28 [a, b]=loadvars('shelve.dat',['a','b'])29 nvdict =loadvars('shelve.dat',{'a':None,'b':None})30 nvdict =loadvars('shelve.dat')27 a = loadvars('shelve.dat', 'a') 28 [a, b] = loadvars('shelve.dat', ['a', 'b']) 29 nvdict = loadvars('shelve.dat', {'a':None, 'b':None}) 30 nvdict = loadvars('shelve.dat') 31 31 32 32 """ … … 43 43 raise TypeError("Missing file name.") 44 44 45 if len(args) >= 2 and isinstance(args[1], str): # (filename,name)45 if len(args) >= 2 and isinstance(args[1], str): # (filename, name) 46 46 for name in args[1:]: 47 47 nvdict[name] = None 48 48 49 elif len(args) == 2 and isinstance(args[1], list): # (filename, [names])49 elif len(args) == 2 and isinstance(args[1], list): # (filename, [names]) 50 50 for name in args[1]: 51 51 nvdict[name] = None 52 52 53 elif len(args) == 2 and isinstance(args[1], dict): # (filename, {names:values})53 elif len(args) == 2 and isinstance(args[1], dict): # (filename, {names:values}) 54 54 nvdict = args[1] 55 55 56 elif len(args) == 1: 56 elif len(args) == 1: # (filename) 57 57 pass 58 58 … … 62 62 if whichdb(filename): 63 63 print("Loading variables from file {}.".format(filename)) 64 my_shelf = shelve.open(filename, 'r') # 'r' for read -only64 my_shelf = shelve.open(filename, 'r') # 'r' for read - only 65 65 if nvdict: 66 66 for name in list(nvdict.keys()): … … 89 89 NCFile = Dataset(filename, mode='r') 90 90 for mod in dict.keys(classtype): 91 #print(' -Now treating classtype {}'.format(mod))91 #print(' - Now treating classtype {}'.format(mod)) 92 92 if np.size(classtree[mod]) > 1: 93 93 curclass = NCFile.groups[classtree[mod][0]].groups[classtree[mod][1]] … … 97 97 steplist = [int(key) for key in curclass.groups] 98 98 except ValueError: 99 steplist = [int(findall(r'\d +', key)[0]) for key in keylist]99 steplist = [int(findall(r'\d + ', key)[0]) for key in keylist] 100 100 indexlist = [index * (len(curclass.groups) - 1) / max(1, max(steplist)) for index in steplist] 101 101 listtype = curclass.groups[keylist[0]].classtype … … 112 112 nvdict['md'].__dict__[mod] = getattr(classtype[mod][1], classtype[mod][0])() 113 113 Tree = nvdict['md'].__dict__[classtree[mod][0]] 114 #treating groups that are lists114 #treating groups that are lists 115 115 for i in range(0, max(1, len(curclass.groups))): 116 116 if len(curclass.groups) > 0: … … 180 180 #dealling with dict 181 181 if varval.dtype == str: #that is for toolkits wich needs to be ordered 182 if any(varval[:, 0] == 'toolkit'): 182 if any(varval[:, 0] == 'toolkit'): #toolkit definition have to be first 183 183 Tree.__dict__[str(var)] = OrderedDict([('toolkit', str(varval[np.where(varval[:, 0] == 'toolkit')[0][0], 1]))]) 184 184 strings1 = [str(arg[0]) for arg in varval if arg[0] != 'toolkits'] … … 206 206 print('table dimension greater than 3 not implemented yet') 207 207 for attr in listclass.ncattrs(): 208 if attr != 'classtype': #classtype is for treatment, 208 if attr != 'classtype': #classtype is for treatment, don't get it back 209 209 if type(Tree) == list: 210 210 t = int(indexlist[i]) … … 220 220 Tree.__dict__[str(attr).swapcase()] = False 221 221 NCFile.close() 222 if len(args) >= 2 and isinstance(args[1], str): 222 if len(args) >= 2 and isinstance(args[1], str): # (value) 223 223 value = [nvdict[name] for name in args[1:]] 224 224 return value 225 225 226 elif len(args) == 2 and isinstance(args[1], list): 226 elif len(args) == 2 and isinstance(args[1], list): # ([values]) 227 227 value = [nvdict[name] for name in args[1]] 228 228 return value 229 229 230 elif (len(args) == 2 and isinstance(args[1], dict)) or (len(args) == 1): 230 elif (len(args) == 2 and isinstance(args[1], dict)) or (len(args) == 1): # ({names:values}) 231 231 return nvdict 232 232 -
issm/trunk-jpl/src/m/io/savevars.py
r23716 r24213 2 2 import os.path 3 3 4 4 5 def savevars(*args): 5 6 6 """ 7 SAVEVARS - function to save variables to a file. 7 8 8 9 10 11 12 9 This function saves one or more variables to a file. The names of the variables 10 must be supplied. If more than one variable is specified, it may be done with 11 lists of names and values or a dictionary of name:value pairs. All the variables 12 in the workspace may be saved by specifying the globals() dictionary, but this 13 may include a lot of extraneous data. 13 14 14 15 savevars('shelve.dat','a',a)16 savevars('shelve.dat',['a','b'],[a,b])17 savevars('shelve.dat',{'a':a,'b':b})18 savevars('shelve.dat',globals())15 Usage: 16 savevars('shelve.dat', 'a', a) 17 savevars('shelve.dat', ['a', 'b'], [a, b]) 18 savevars('shelve.dat', {'a':a, 'b':b}) 19 savevars('shelve.dat', globals()) 19 20 20 21 """ 21 22 22 filename=''23 nvdict={}23 filename = '' 24 nvdict = {} 24 25 25 if len(args) >= 1 and isinstance(args[0],str):26 filename=args[0]27 28 filename='/tmp/shelve.dat'26 if len(args) >= 1 and isinstance(args[0], str): 27 filename = args[0] 28 if not filename: 29 filename = '/tmp/shelve.dat' 29 30 30 31 31 else: 32 raise TypeError("Missing file name.") 32 33 33 if len(args) >= 3 and isinstance(args[1],str): # (filename,name,value)34 for i in range(1,len(args),2):35 nvdict[args[i]]=args[i+1]34 if len(args) >= 3 and isinstance(args[1], str): # (filename, name, value) 35 for i in range(1, len(args), 2): 36 nvdict[args[i]] = args[i + 1] 36 37 37 elif len(args) == 3 and isinstance(args[1],list) and isinstance(args[2],list): # (filename,[names],[values])38 for name,value in zip(args[1],args[2]):39 nvdict[name]=value38 elif len(args) == 3 and isinstance(args[1], list) and isinstance(args[2], list): # (filename, [names], [values]) 39 for name, value in zip(args[1], args[2]): 40 nvdict[name] = value 40 41 41 elif len(args) == 2 and isinstance(args[1],dict): # (filename,{names:values})42 nvdict=args[1]42 elif len(args) == 2 and isinstance(args[1], dict): # (filename, {names:values}) 43 nvdict = args[1] 43 44 44 45 45 else: 46 raise TypeError("Unrecognized input arguments.") 46 47 47 48 49 50 48 if os.path.exists(filename): 49 print(("Shelving variables to existing file '%s'." % filename)) 50 else: 51 print(("Shelving variables to new file '%s'." % filename)) 51 52 52 my_shelf = shelve.open(filename,'c')# 'c' for create if not exist, else 'n' for new53 my_shelf = shelve.open(filename, 'c') # 'c' for create if not exist, else 'n' for new 53 54 54 for name,value in list(nvdict.items()):55 56 57 58 59 55 for name, value in list(nvdict.items()): 56 try: 57 my_shelf[name] = value 58 print(("Variable '%s' shelved." % name)) 59 except TypeError: 60 print(("Variable '%s' not shelved." % name)) 60 61 61 my_shelf.close() 62 62 my_shelf.close() -
issm/trunk-jpl/src/m/materials/TMeltingPoint.py
r21303 r24213 1 import numpy as np2 1 3 def TMeltingPoint(reftemp, pressure):4 5 2 def TMeltingPoint(reftemp, pressure): 3 ''' 4 Calculate the pressure melting point of ice at a given pressure 6 5 7 6 reftemp is the melting temperature in K at atmospheric pressure (initialized in md.materials.meltingpoint) 8 7 9 8 pressure is in Pa 10 9 11 12 Tm=TMeltingPoint(md.materials.meltingpoint,pressure)13 10 Usage: 11 Tm = TMeltingPoint(md.materials.meltingpoint, pressure) 12 ''' 14 13 15 16 beta=7.9e-814 #variables 15 beta = 7.9e-8 17 16 18 19 ref=reftemp*np.ones_like(pressure) 17 #ensure ref is same dimension as pressure 18 ref = reftemp - beta * pressure 20 19 21 return reftemp-beta*pressure 20 return ref -
issm/trunk-jpl/src/m/materials/cuffey.py
r23634 r24213 1 1 import numpy as np 2 2 3 3 4 def cuffey(temperature): 4 5 5 """ 6 CUFFEY - calculates ice rigidity as a function of temperature 6 7 7 rigidity (in s^(1/3)Pa) is the flow law parameter in the flow law sigma=B*e(1/3)8 9 8 rigidity (in s^(1 / 3)Pa) is the flow law parameter in the flow law sigma = B * e(1 / 3) 9 (Cuffey and Paterson, p75). 10 temperature is in Kelvin degrees 10 11 11 12 rigidity=cuffey(temperature)13 12 Usage: 13 rigidity = cuffey(temperature) 14 """ 14 15 15 if np.any(temperature<0.):16 16 if np.any(temperature < 0.): 17 raise RuntimeError("input temperature should be in Kelvin (positive)") 17 18 18 if np.ndim(temperature)==2:19 #T = temperature.reshape(-1,)-273.1520 T = temperature.flatten()-273.1521 elif isinstance(temperature,float) or isinstance(temperature,int):22 T = np.array([temperature])-273.1523 24 T = temperature-273.1519 if np.ndim(temperature) == 2: 20 #T = temperature.reshape(- 1, ) - 273.15 21 T = temperature.flatten() - 273.15 22 elif isinstance(temperature, float) or isinstance(temperature, int): 23 T = np.array([temperature]) - 273.15 24 else: 25 T = temperature - 273.15 25 26 27 rigidity = np.zeros_like(T) 28 pos = np.nonzero(T <= - 45) 29 if len(pos): 30 rigidity[pos] = 10**8 * (- 0.000396645116301 * (T[pos] + 50)**3 + 0.013345579471334 * (T[pos] + 50)**2 - 0.356868703259105 * (T[pos] + 50) + 7.272363035371383) 31 pos = np.nonzero(np.logical_and(- 45 <= T, T < - 40)) 32 if len(pos): 33 rigidity[pos] = 10**8 * (- 0.000396645116301 * (T[pos] + 45)**3 + 0.007395902726819 * (T[pos] + 45)**2 - 0.253161292268336 * (T[pos] + 45) + 5.772078366321591) 34 pos = np.nonzero(np.logical_and(- 40 <= T, T < - 35)) 35 if len(pos): 36 rigidity[pos] = 10**8 * (0.000408322072669 * (T[pos] + 40)**3 + 0.001446225982305 * (T[pos] + 40)**2 - 0.208950648722716 * (T[pos] + 40) + 4.641588833612773) 37 pos = np.nonzero(np.logical_and(- 35 <= T, T < - 30)) 38 if len(pos): 39 rigidity[pos] = 10**8 * (- 0.000423888728124 * (T[pos] + 35)**3 + 0.007571057072334 * (T[pos] + 35)**2 - 0.163864233449525 * (T[pos] + 35) + 3.684031498640382) 40 pos = np.nonzero(np.logical_and(- 30 <= T, T < - 25)) 41 if len(pos): 42 rigidity[pos] = 10**8 * (0.000147154327025 * (T[pos] + 30)**3 + 0.001212726150476 * (T[pos] + 30)**2 - 0.119945317335478 * (T[pos] + 30) + 3.001000667185614) 43 pos = np.nonzero(np.logical_and(- 25 <= T, T < - 20)) 44 if len(pos): 45 rigidity[pos] = 10**8 * (- 0.000193435838672 * (T[pos] + 25)**3 + 0.003420041055847 * (T[pos] + 25)**2 - 0.096781481303861 * (T[pos] + 25) + 2.449986525148220) 46 pos = np.nonzero(np.logical_and(- 20 <= T, T < - 15)) 47 if len(pos): 48 rigidity[pos] = 10**8 * (0.000219771255067 * (T[pos] + 20)**3 + 0.000518503475772 * (T[pos] + 20)**2 - 0.077088758645767 * (T[pos] + 20) + 2.027400665191131) 49 pos = np.nonzero(np.logical_and(- 15 <= T, T < - 10)) 50 if len(pos): 51 rigidity[pos] = 10**8 * (- 0.000653438900191 * (T[pos] + 15)**3 + 0.003815072301777 * (T[pos] + 15)**2 - 0.055420879758021 * (T[pos] + 15) + 1.682390865739973) 52 pos = np.nonzero(np.logical_and(- 10 <= T, T < - 5)) 53 if len(pos): 54 rigidity[pos] = 10**8 * (0.000692439419762 * (T[pos] + 10)**3 - 0.005986511201093 * (T[pos] + 10)**2 - 0.066278074254598 * (T[pos] + 10) + 1.418983411970382) 55 pos = np.nonzero(np.logical_and(- 5 <= T, T < - 2)) 56 if len(pos): 57 rigidity[pos] = 10**8 * (- 0.000132282004110 * (T[pos] + 5)**3 + 0.004400080095332 * (T[pos] + 5)**2 - 0.074210229783403 * (T[pos] + 5) + 1.024485188140279) 58 pos = np.nonzero(- 2 <= T) 59 if len(pos): 60 rigidity[pos] = 10**8 * (- 0.000132282004110 * (T[pos] + 2)**3 + 0.003209542058346 * (T[pos] + 2)**2 - 0.051381363322371 * (T[pos] + 2) + 0.837883605537096) 26 61 27 rigidity=np.zeros_like(T) 28 pos=np.nonzero(T<=-45) 29 if len(pos): 30 rigidity[pos]=10**8*(-0.000396645116301*(T[pos]+50)**3+ 0.013345579471334*(T[pos]+50)**2 -0.356868703259105*(T[pos]+50)+7.272363035371383) 31 pos=np.nonzero(np.logical_and(-45<=T,T<-40)) 32 if len(pos): 33 rigidity[pos]=10**8*(-0.000396645116301*(T[pos]+45)**3+ 0.007395902726819*(T[pos]+45)**2 -0.253161292268336*(T[pos]+45)+5.772078366321591) 34 pos=np.nonzero(np.logical_and(-40<=T,T<-35)) 35 if len(pos): 36 rigidity[pos]=10**8*(0.000408322072669*(T[pos]+40)**3+ 0.001446225982305*(T[pos]+40)**2 -0.208950648722716*(T[pos]+40)+4.641588833612773) 37 pos=np.nonzero(np.logical_and(-35<=T,T<-30)) 38 if len(pos): 39 rigidity[pos]=10**8*(-0.000423888728124*(T[pos]+35)**3+ 0.007571057072334*(T[pos]+35)**2 -0.163864233449525*(T[pos]+35)+3.684031498640382) 40 pos=np.nonzero(np.logical_and(-30<=T,T<-25)) 41 if len(pos): 42 rigidity[pos]=10**8*(0.000147154327025*(T[pos]+30)**3+ 0.001212726150476*(T[pos]+30)**2 -0.119945317335478*(T[pos]+30)+3.001000667185614) 43 pos=np.nonzero(np.logical_and(-25<=T,T<-20)) 44 if len(pos): 45 rigidity[pos]=10**8*(-0.000193435838672*(T[pos]+25)**3+ 0.003420041055847*(T[pos]+25)**2 -0.096781481303861*(T[pos]+25)+2.449986525148220) 46 pos=np.nonzero(np.logical_and(-20<=T,T<-15)) 47 if len(pos): 48 rigidity[pos]=10**8*(0.000219771255067*(T[pos]+20)**3+ 0.000518503475772*(T[pos]+20)**2 -0.077088758645767*(T[pos]+20)+2.027400665191131) 49 pos=np.nonzero(np.logical_and(-15<=T,T<-10)) 50 if len(pos): 51 rigidity[pos]=10**8*(-0.000653438900191*(T[pos]+15)**3+ 0.003815072301777*(T[pos]+15)**2 -0.055420879758021*(T[pos]+15)+1.682390865739973) 52 pos=np.nonzero(np.logical_and(-10<=T,T<-5)) 53 if len(pos): 54 rigidity[pos]=10**8*(0.000692439419762*(T[pos]+10)**3 -0.005986511201093 *(T[pos]+10)**2 -0.066278074254598*(T[pos]+10)+1.418983411970382) 55 pos=np.nonzero(np.logical_and(-5<=T,T<-2)) 56 if len(pos): 57 rigidity[pos]=10**8*(-0.000132282004110*(T[pos]+5)**3 +0.004400080095332*(T[pos]+5)**2 -0.074210229783403*(T[pos]+5)+ 1.024485188140279) 58 pos=np.nonzero(-2<=T) 59 if len(pos): 60 rigidity[pos]=10**8*(-0.000132282004110*(T[pos]+2)**3 +0.003209542058346*(T[pos]+2)**2 -0.051381363322371*(T[pos]+2)+ 0.837883605537096) 62 #Now make sure that rigidity is positive 63 pos = np.nonzero(rigidity < 0) 64 rigidity[pos] = 1**6 61 65 62 #Now make sure that rigidity is positive 63 pos=np.nonzero(rigidity<0) 64 rigidity[pos]=1**6 65 66 return rigidity 66 return rigidity -
issm/trunk-jpl/src/m/materials/cuffeytemperate.py
r21303 r24213 2 2 import cuffey 3 3 4 def cuffeytemperate(temperature, waterfraction, stressexp)5 4 6 """ 7 CUFFEYTEMPERATE - calculates ice rigidity as a function of temperature and waterfraction 5 def cuffeytemperate(temperature, waterfraction, stressexp): 6 ''' 7 CUFFEYTEMPERATE - calculates ice rigidity as a function of temperature and waterfraction 8 8 9 rigidity (in s^(1 /3)Pa) is the flow law parameter in the flow law sigma=B*e(1/3)10 (Cuffey and Paterson, p75). 9 rigidity (in s^(1 / 3)Pa) is the flow law parameter in the flow law sigma = B * e(1 / 3) 10 (Cuffey and Paterson, p75). 11 11 temperature is in Kelvin degrees 12 12 13 13 Usage: 14 rigidity =cuffeytemperate(temperature, waterfraction, stressexp)15 """ 14 rigidity = cuffeytemperate(temperature, waterfraction, stressexp) 15 ''' 16 16 17 if np.any(temperature<0.):18 17 if np.any(temperature < 0.): 18 raise RuntimeError("input temperature should be in Kelvin (positive)") 19 19 20 if (np.any(temperature.shape~=waterfraction.shape)), 21 error('input temperature and waterfraction should have same size!'); 22 end 23 if np.any(waterfraction<0 | waterfraction>1) 24 error('input waterfraction should be between 0 and 1'); 25 end 20 if (np.any(temperature.shape in waterfraction.shape)): 21 error('input temperature and waterfraction should have same size!') 26 22 27 rigidity=np.multiply(cuffey(temperature), (1*np.ones(waterfraction.shape)+181.25*np.maximum(np.zeros(waterfraction.shape), np.minimum(0.01*np.ones(waterfraction.shape), waterfraction)))**(-1/stressexp)); 23 if np.any(waterfraction < 0 | waterfraction > 1): 24 error('input waterfraction should be between 0 and 1') 28 25 29 return rigidity 26 rigidity = np.multiply(cuffey(temperature), (1 * np.ones(waterfraction.shape) + 181.25 * np.maximum(np.zeros(waterfraction.shape), np.minimum(0.01 * np.ones(waterfraction.shape), waterfraction)))**(- 1 / stressexp)) 27 28 return rigidity -
issm/trunk-jpl/src/m/materials/nye.py
r24101 r24213 1 1 import numpy as np 2 2 3 3 4 def nye(temperature, ice_type): 4 5 """ 5 6 NYE - figure out the rigidity of ice (either CO2 or H2O) for a given temperature 6 rigidity (in s^(1/n)Pa) is the flow law parameter in the flow law sigma=B*e(1/n) (Nye, p2000).7 7 rigidity (in s^(1 / n)Pa) is the flow law parameter in the flow law sigma = B * e(1 / n) (Nye, p2000). 8 temperature is in Kelvin degrees 8 9 9 10 Usage: 10 rigidity=nye(temperature,ice_type) % ice_type = 1: CO2 ice //ice_type = 2: H2O ice11 11 rigidity = nye(temperature, ice_type) % ice_type = 1: CO2 ice / / ice_type = 2: H2O ice 12 """ 12 13 13 14 if np.ndim(temperature)==2:15 T=temperature.flatten()16 elif isinstance(temperature,float) or isinstance(temperature,int):17 T=np.array([temperature])18 19 T=temperature20 rigidity=np.zeros_like(T)14 # Declaring temperature and rigidity arrays 15 if np.ndim(temperature) == 2: 16 T = temperature.flatten() 17 elif isinstance(temperature, float) or isinstance(temperature, int): 18 T = np.array([temperature]) 19 else: 20 T = temperature 21 rigidity = np.zeros_like(T) 21 22 22 # Beyond-melting-point cases23 if (ice_type==1):24 25 if (200<T[i]<220):26 27 28 if ((T>=220).any()):29 30 elif (ice_type==2) and ((T>273.15).any()):31 23 # Beyond - melting - point cases 24 if (ice_type == 1): 25 for i in range(len(T)): 26 if (200 < T[i] < 220): 27 warnings.warn('CO2 ICE - POSSIBLE MELTING. Some temperature values are between 200K and 220K.') 28 break 29 if ((T >= 220).any()): 30 warnings.warn('CO2 ICE - GUARANTEED MELTING. Some temperature values are beyond 220K.') 31 elif (ice_type == 2) and ((T > 273.15).any()): 32 warnings.warn('H2O ICE - GUARANTEED MELTING. Some temperature values are beyond 273.15K.') 32 33 33 Rg = 8.3144598 # J mol^-1 K^-134 Rg = 8.3144598 # J mol^ - 1 K^ - 1 34 35 35 if ice_type == 1:# CO2 ice36 A_const = 10**(10.8) # s^-1 MPa37 Q = 63000. # J mol^-138 n = 7.# Glen's exponent39 elif ice_type == 2:# H2O ice40 A_const = 9*10**4 # s^-1 MPa41 Q = 60000. # J mol^-142 n = 3.# Glen's exponent43 44 36 if ice_type == 1: # CO2 ice 37 A_const = 10**(10.8) # s^ - 1 MPa 38 Q = 63000. # J mol^ - 1 39 n = 7. # Glen's exponent 40 elif ice_type == 2: # H2O ice 41 A_const = 9 * 10**4 # s^ - 1 MPa 42 Q = 60000. # J mol^ - 1 43 n = 3. # Glen's exponent 44 else: 45 raise RuntimeError('Ice type not supported') 45 46 46 47 A=A_const*np.exp(-1*Q/(T*Rg)) # s^-1 MPa48 rigidity=A**(-1/n)*10**6 # s^(1/n) Pa47 # Arrhenius Law 48 A = A_const * np.exp(- 1 * Q / (T * Rg)) # s^ - 1 MPa 49 rigidity = A**(- 1 / n) * 10**6 # s^(1 / n) Pa 49 50 50 51 51 # Return output 52 return rigidity -
issm/trunk-jpl/src/m/materials/paterson.py
r21303 r24213 1 1 import numpy as np 2 2 3 3 4 def paterson(temperature): 4 5 5 """ 6 PATERSON - figure out the rigidity of ice for a given temperature 6 7 7 rigidity (in s^(1/3)Pa) is the flow law paramter in the flow law sigma=B*e(1/3) (Paterson, p97). 8 8 rigidity (in s^(1 / 3)Pa) is the flow law paramter in the flow law sigma = B * e(1 / 3) (Paterson, p97). 9 temperature is in Kelvin degrees 9 10 10 Usage: 11 rigidity=paterson(temperature) 12 """ 13 14 if np.any(temperature<0.): 15 raise RuntimeError("input temperature should be in Kelvin (positive)") 11 Usage: 12 rigidity = paterson(temperature) 13 """ 16 14 17 if np.ndim(temperature)==2: 18 #T = temperature.reshape(-1,)-273.15 19 T = temperature.flatten()-273.15 20 elif isinstance(temperature,float) or isinstance(temperature,int): 21 T = np.array([temperature])-273.15 22 else: 23 T = temperature-273.15 15 if np.any(temperature < 0.): 16 raise RuntimeError("input temperature should be in Kelvin (positive)") 24 17 25 #The routine below is equivalent to: 18 if np.ndim(temperature) == 2: 19 #T = temperature.reshape(- 1, ) - 273.15 20 T = temperature.flatten() - 273.15 21 elif isinstance(temperature, float) or isinstance(temperature, int): 22 T = np.array([temperature]) - 273.15 23 else: 24 T = temperature - 273.15 26 25 27 # n=3; T=temperature-273; 28 # %From paterson, 29 # Temp=[0;-2;-5;-10;-15;-20;-25;-30;-35;-40;-45;-50]; 30 # A=[6.8*10^-15;2.4*10^-15;1.6*10^-15;4.9*10^-16;2.9*10^-16;1.7*10^-16;9.4* 31 # 10^-17;5.1*10^-17;2.7*10^-17;1.4*10^-17;7.3*10^-18;3.6*10^-18];;%s-1(kPa-3) 32 # %Convert into rigidity B 33 # B=A.^(-1/n)*10^3; %s^(1/3)Pa 34 # %Now, do a cubic fit between Temp and B: 35 # fittedmodel=fit(Temp,B,'cubicspline'); 36 # rigidity=fittedmodel(temperature); 26 #The routine below is equivalent to: 37 27 38 rigidity=np.zeros_like(T) 39 pos1=np.nonzero(T<=-45)[0] 40 if len(pos1): 41 rigidity[pos1]=10**8*(-0.000292866376675*(T[pos1]+50)**3+ 0.011672640664130*(T[pos1]+50)**2 -0.325004442485481*(T[pos1]+50)+ 6.524779401948101) 42 pos2=np.nonzero(np.logical_and(-45<=T,T<-40))[0] 43 if len(pos2): 44 rigidity[pos2]=10**8*(-0.000292866376675*(T[pos2]+45)**3+ 0.007279645014004*(T[pos2]+45)**2 -0.230243014094813*(T[pos2]+45)+ 5.154964909039554) 45 pos3=np.nonzero(np.logical_and(-40<=T,T<-35))[0] 46 if len(pos3): 47 rigidity[pos3]=10**8*(0.000072737147457*(T[pos3]+40)**3+ 0.002886649363879*(T[pos3]+40)**2 -0.179411542205399*(T[pos3]+40)+ 4.149132666831214) 48 pos4=np.nonzero(np.logical_and(-35<=T,T<-30))[0] 49 if len(pos4): 50 rigidity[pos4]=10**8*(-0.000086144770023*(T[pos4]+35)**3+ 0.003977706575736*(T[pos4]+35)**2 -0.145089762507325*(T[pos4]+35)+ 3.333333333333331) 51 pos5=np.nonzero(np.logical_and(-30<=T,T<-25))[0] 52 if len(pos5): 53 rigidity[pos5]=10**8*(-0.000043984685769*(T[pos5]+30)**3+ 0.002685535025386*(T[pos5]+30)**2 -0.111773554501713*(T[pos5]+30)+ 2.696559088937191) 54 pos6=np.nonzero(np.logical_and(-25<=T,T<-20))[0] 55 if len(pos6): 56 rigidity[pos6]=10**8*(-0.000029799523463*(T[pos6]+25)**3+ 0.002025764738854*(T[pos6]+25)**2 -0.088217055680511*(T[pos6]+25)+ 2.199331606342181) 57 pos7=np.nonzero(np.logical_and(-20<=T,T<-15))[0] 58 if len(pos7): 59 rigidity[pos7]=10**8*(0.000136920904777*(T[pos7]+20)**3+ 0.001578771886910*(T[pos7]+20)**2 -0.070194372551690*(T[pos7]+20)+ 1.805165505978111) 60 pos8=np.nonzero(np.logical_and(-15<=T,T<-10))[0] 61 if len(pos8): 62 rigidity[pos8]=10**8*(-0.000899763781026*(T[pos8]+15)**3+ 0.003632585458564*(T[pos8]+15)**2 -0.044137585824322*(T[pos8]+15)+ 1.510778053489523) 63 pos9=np.nonzero(np.logical_and(-10<=T,T<-5))[0] 64 if len(pos9): 65 rigidity[pos9]=10**8*(0.001676964325070*(T[pos9]+10)**3- 0.009863871256831*(T[pos9]+10)**2 -0.075294014815659*(T[pos9]+10)+ 1.268434288203714) 66 pos10=np.nonzero(np.logical_and(-5<=T,T<-2))[0] 67 if len(pos10): 68 rigidity[pos10]=10**8*(-0.003748937622487*(T[pos10]+5)**3+0.015290593619213*(T[pos10]+5)**2 -0.048160403003748*(T[pos10]+5)+ 0.854987973338348) 69 pos11=np.nonzero(-2<=T)[0] 70 if len(pos11): 71 rigidity[pos11]=10**8*(-0.003748937622488*(T[pos11]+2)**3-0.018449844983174*(T[pos11]+2)**2 -0.057638157095631*(T[pos11]+2)+ 0.746900791092860) 28 # n = 3; T = temperature-273 29 # %From paterson, 30 # Temp = [0; - 2; - 5; - 10; - 15; - 20; - 25; - 30; - 35; - 40; - 45; - 50] 31 # A = [6.8 * 10^ - 15;2.4 * 10^ - 15;1.6 * 10^ - 15;4.9 * 10^ - 16;2.9 * 10^ - 16;1.7 * 10^ - 16;9.4 * 32 # 10^ - 17;5.1 * 10^ - 17;2.7 * 10^ - 17;1.4 * 10^ - 17;7.3 * 10^ - 18;3.6 * 10^ - 18];;%s - 1(kPa - 3) 33 # %Convert into rigidity B 34 # B = A.^(- 1 / n) * 10^3; %s^(1 / 3)Pa 35 # %Now, do a cubic fit between Temp and B: 36 # fittedmodel = fit(Temp, B, 'cubicspline') 37 # rigidity = fittedmodel(temperature) 72 38 73 #Now make sure that rigidity is positive 74 pos=np.nonzero(rigidity<0)[0] 75 if len(pos): 76 rigidity[pos]=1.e6 39 rigidity = np.zeros_like(T) 40 pos1 = np.nonzero(T <= - 45)[0] 41 if len(pos1): 42 rigidity[pos1] = 10**8 * (- 0.000292866376675 * (T[pos1] + 50)**3 + 0.011672640664130 * (T[pos1] + 50)**2 - 0.325004442485481 * (T[pos1] + 50) + 6.524779401948101) 43 pos2 = np.nonzero(np.logical_and(- 45 <= T, T < - 40))[0] 44 if len(pos2): 45 rigidity[pos2] = 10**8 * (- 0.000292866376675 * (T[pos2] + 45)**3 + 0.007279645014004 * (T[pos2] + 45)**2 - 0.230243014094813 * (T[pos2] + 45) + 5.154964909039554) 46 pos3 = np.nonzero(np.logical_and(- 40 <= T, T < - 35))[0] 47 if len(pos3): 48 rigidity[pos3] = 10**8 * (0.000072737147457 * (T[pos3] + 40)**3 + 0.002886649363879 * (T[pos3] + 40)**2 - 0.179411542205399 * (T[pos3] + 40) + 4.149132666831214) 49 pos4 = np.nonzero(np.logical_and(- 35 <= T, T < - 30))[0] 50 if len(pos4): 51 rigidity[pos4] = 10**8 * (- 0.000086144770023 * (T[pos4] + 35)**3 + 0.003977706575736 * (T[pos4] + 35)**2 - 0.145089762507325 * (T[pos4] + 35) + 3.333333333333331) 52 pos5 = np.nonzero(np.logical_and(- 30 <= T, T < - 25))[0] 53 if len(pos5): 54 rigidity[pos5] = 10**8 * (- 0.000043984685769 * (T[pos5] + 30)**3 + 0.002685535025386 * (T[pos5] + 30)**2 - 0.111773554501713 * (T[pos5] + 30) + 2.696559088937191) 55 pos6 = np.nonzero(np.logical_and(- 25 <= T, T < - 20))[0] 56 if len(pos6): 57 rigidity[pos6] = 10**8 * (- 0.000029799523463 * (T[pos6] + 25)**3 + 0.002025764738854 * (T[pos6] + 25)**2 - 0.088217055680511 * (T[pos6] + 25) + 2.199331606342181) 58 pos7 = np.nonzero(np.logical_and(- 20 <= T, T < - 15))[0] 59 if len(pos7): 60 rigidity[pos7] = 10**8 * (0.000136920904777 * (T[pos7] + 20)**3 + 0.001578771886910 * (T[pos7] + 20)**2 - 0.070194372551690 * (T[pos7] + 20) + 1.805165505978111) 61 pos8 = np.nonzero(np.logical_and(- 15 <= T, T < - 10))[0] 62 if len(pos8): 63 rigidity[pos8] = 10**8 * (- 0.000899763781026 * (T[pos8] + 15)**3 + 0.003632585458564 * (T[pos8] + 15)**2 - 0.044137585824322 * (T[pos8] + 15) + 1.510778053489523) 64 pos9 = np.nonzero(np.logical_and(- 10 <= T, T < - 5))[0] 65 if len(pos9): 66 rigidity[pos9] = 10**8 * (0.001676964325070 * (T[pos9] + 10)**3 - 0.009863871256831 * (T[pos9] + 10)**2 - 0.075294014815659 * (T[pos9] + 10) + 1.268434288203714) 67 pos10 = np.nonzero(np.logical_and(- 5 <= T, T < - 2))[0] 68 if len(pos10): 69 rigidity[pos10] = 10**8 * (- 0.003748937622487 * (T[pos10] + 5)**3 + 0.015290593619213 * (T[pos10] + 5)**2 - 0.048160403003748 * (T[pos10] + 5) + 0.854987973338348) 70 pos11 = np.nonzero(- 2 <= T)[0] 71 if len(pos11): 72 rigidity[pos11] = 10**8 * (- 0.003748937622488 * (T[pos11] + 2)**3 - 0.018449844983174 * (T[pos11] + 2)**2 - 0.057638157095631 * (T[pos11] + 2) + 0.746900791092860) 77 73 78 return rigidity 74 #Now make sure that rigidity is positive 75 pos = np.nonzero(rigidity < 0)[0] 76 if len(pos): 77 rigidity[pos] = 1.e6 79 78 79 return rigidity -
issm/trunk-jpl/src/m/mech/analyticaldamage.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 from averaging import averaging 3 3 #from plotmodel import plotmodel 4 4 from thomasparams import thomasparams 5 5 6 def analyticaldamage(md,**kwargs):7 '''8 ANALYTICALDAMAGE - compute damage for an ice shelf9 10 This routine computes damage as a function of water/ice11 material properties, ice thickness, strain rate, and ice12 rigidity. The model must contain computed strain rates,13 either from observed or modeled ice velocities.14 15 Available options:16 -eq : analytical equation to use in the calculation. Must be one of:17 'Weertman1D' for a confined ice shelf free to flow in one direction18 'Weertman2D' for an unconfined ice shelf free to spread in any direction19 'Thomas' for a 2D ice shelf, taking into account full strain rate tensor (default)20 -smoothing : the amount of smoothing to be applied to the strain rate data.21 Type 'help averaging' for more information on its usage.22 -coordsys : coordinate system for calculating the strain rate23 components. Must be one of:24 -sigmab : a compressive backstress term to be subtracted from the driving stress25 in the damage calculation26 27 Return values:28 'damage' which is truncated in the range [0,1-1e-9]29 30 'B' is the rigidity, which is equal to md.materials.rheology_B in areas outside31 those defined by 'mask.' Within areas defined by 'mask,' where negative damage32 is inferred, 'B' is updated to make damage equal to zero.33 34 'backstress' is the inferred backstress necessary to balance the analytical solution35 (keeping damage within its appropriate limits, e.g. D in [0,1]).36 37 Usage:38 damage,B,backstress=analyticaldamage(md,kwargs)39 40 Example:41 damage,B,backstress=analyticaldamage(md,eq='Weertman2D',smoothing=2,sigmab=10e3)42 '''43 6 44 #unpack kwargs 45 eq=kwargs.pop('eq','Thomas') 46 if 'eq' in kwargs: del kwargs['eq'] 47 smoothing=kwargs.pop('smoothing',0) 48 if 'smoothing' in kwargs: del kwargs['smoothing'] 49 coordsys=kwargs.pop('coordsys','longitudinal') 50 if 'coordsys' in kwargs: del kwargs['coordsys'] 51 sigmab=kwargs.pop('sigmab',0) 52 if 'sigmab' in kwargs: del kwargs['sigmab'] 53 assert len(kwargs)==0, 'error, unexpected or misspelled kwargs' 7 def analyticaldamage(md, **kwargs): 8 ''' 9 ANALYTICALDAMAGE - compute damage for an ice shelf 54 10 55 if isinstance(sigmab,(int,float)): 56 sigmab=sigmab*np.ones((md.mesh.numberofvertices,)) 11 This routine computes damage as a function of water / ice 12 material properties, ice thickness, strain rate, and ice 13 rigidity. The model must contain computed strain rates, 14 either from observed or modeled ice velocities. 57 15 58 # check inputs 59 if 'strainrate' not in md.results.__dict__: 60 raise Exception('md.results.strainrate not present. Calculate using md=mechanicalproperties(md,vx,vy)') 61 if not '2d' in md.mesh.__doc__: 62 raise Exception('only 2d (planview) model supported currently') 63 if np.any(md.flowequation.element_equation!=2): 64 print('Warning: the model has some non SSA elements. These will be treated like SSA elements') 16 Available options: 17 - eq : analytical equation to use in the calculation. Must be one of: 18 'Weertman1D' for a confined ice shelf free to flow in one direction 19 'Weertman2D' for an unconfined ice shelf free to spread in any direction 20 'Thomas' for a 2D ice shelf, taking into account full strain rate tensor (default) 21 - smoothing : the amount of smoothing to be applied to the strain rate data. 22 Type 'help averaging' for more information on its usage. 23 - coordsys : coordinate system for calculating the strain rate 24 components. Must be one of: 25 - sigmab : a compressive backstress term to be subtracted from the driving stress 26 in the damage calculation 65 27 66 a,b,theta,ex=thomasparams(md,eq=eq,smoothing=smoothing,coordsys=coordsys) 67 68 # spreading stress 69 rhoi=md.materials.rho_ice 70 rhow=md.materials.rho_water 71 C=0.5*rhoi*md.constants.g*(1.-rhoi/rhow) 72 T=C*md.geometry.thickness 73 74 # rheology 75 B=md.materials.rheology_B 76 n=averaging(md,md.materials.rheology_n,0) 77 78 D=1.-(1.+a+a**2+b**2)**((n-1.)/(2.*n))/np.abs(ex)**(1./n)*(T-sigmab)/B/(2.+a)/np.sign(ex) 79 80 # D>1 where (2+a).*sign(ex)<0, compressive regions where high backstress needed 81 pos=np.nonzero(D>1) 82 D[pos]=0 83 84 backstress=np.zeros((md.mesh.numberofvertices,)) 28 Return values: 29 'damage' which is truncated in the range [0, 1 - 1e-9] 85 30 86 # backstress to bring D down to one 87 backstress[pos]=T[pos]-(1.-D[pos])*B[pos]*np.sign(ex[pos])*(2.+a[pos])*np.abs(ex[pos])**(1./n[pos])/(1.+a[pos]+a[pos]**2)**((n[pos]-1.)/2./n[pos]) 88 89 pos=np.nonzero(D<0) 90 #mask=ismember(1:md.mesh.numberofvertices,pos); 91 D[pos]=0 92 93 # backstress to bring negative damage to zero 94 backstress[pos]=T[pos]-(1.-D[pos])*B[pos]*np.sign(ex[pos])*(2.+a[pos])*np.abs(ex[pos])**(1./n[pos])/(1.+a[pos]+a[pos]**2)**((n[pos]-1.)/2./n[pos]) 95 96 pos=np.nonzero(backstress<0) 97 backstress[pos]=0 98 99 # rigidity from Thomas relation for D=0 and backstress=0 100 B=np.sign(ex)/(2.+a)*(1.+a+a**2)**((n-1.)/2./n)*T/(np.abs(ex)**(1./n)) 101 pos=np.nonzero(B<0) 102 B[pos]=md.materials.rheology_B[pos] 103 104 damage=D 105 106 return damage, B, backstress 31 'B' is the rigidity, which is equal to md.materials.rheology_B in areas outside 32 those defined by 'mask.' Within areas defined by 'mask, ' where negative damage 33 is inferred, 'B' is updated to make damage equal to zero. 34 35 'backstress' is the inferred backstress necessary to balance the analytical solution 36 (keeping damage within its appropriate limits, e.g. D in [0, 1]). 37 38 Usage: 39 damage, B, backstress = analyticaldamage(md, kwargs) 40 41 Example: 42 damage, B, backstress = analyticaldamage(md, eq = 'Weertman2D', smoothing = 2, sigmab = 1.0e3) 43 ''' 44 45 #unpack kwargs 46 eq = kwargs.pop('eq', 'Thomas') 47 if 'eq' in kwargs: 48 del kwargs['eq'] 49 smoothing = kwargs.pop('smoothing', 0) 50 if 'smoothing' in kwargs: 51 del kwargs['smoothing'] 52 coordsys = kwargs.pop('coordsys', 'longitudinal') 53 if 'coordsys' in kwargs: 54 del kwargs['coordsys'] 55 sigmab = kwargs.pop('sigmab', 0) 56 if 'sigmab' in kwargs: 57 del kwargs['sigmab'] 58 assert len(kwargs) == 0, 'error, unexpected or misspelled kwargs' 59 60 if isinstance(sigmab, (int, float)): 61 sigmab = sigmab * np.ones((md.mesh.numberofvertices, )) 62 63 # check inputs 64 if 'strainrate' not in md.results.__dict__: 65 raise Exception('md.results.strainrate not present. Calculate using md = mechanicalproperties(md, vx, vy)') 66 if '2d' not in md.mesh.__doc__: 67 raise Exception('only 2d (planview) model supported currently') 68 if np.any(md.flowequation.element_equation != 2): 69 print('Warning: the model has some non SSA elements. These will be treated like SSA elements') 70 71 a, b, theta, ex = thomasparams(md, eq=eq, smoothing=smoothing, coordsys=coordsys) 72 73 # spreading stress 74 rhoi = md.materials.rho_ice 75 rhow = md.materials.rho_water 76 C = 0.5 * rhoi * md.constants.g * (1. - rhoi / rhow) 77 T = C * md.geometry.thickness 78 79 # rheology 80 B = md.materials.rheology_B 81 n = averaging(md, md.materials.rheology_n, 0) 82 83 D = 1. - (1. + a + a**2 + b**2)**((n - 1.) / (2. * n)) / np.abs(ex)**(1. / n) * (T - sigmab) / B / (2. + a) / np.sign(ex) 84 85 # D > 1 where (2 + a). * sign(ex) < 0, compressive regions where high backstress needed 86 pos = np.nonzero(D > 1) 87 D[pos] = 0 88 89 backstress = np.zeros((md.mesh.numberofvertices, )) 90 91 # backstress to bring D down to one 92 backstress[pos] = T[pos] - (1. - D[pos]) * B[pos] * np.sign(ex[pos]) * (2. + a[pos]) * np.abs(ex[pos])**(1. / n[pos]) / (1. + a[pos] + a[pos]**2)**((n[pos] - 1.) / 2. / n[pos]) 93 94 pos = np.nonzero(D < 0) 95 #mask = ismember(1:md.mesh.numberofvertices, pos) 96 D[pos] = 0 97 98 # backstress to bring negative damage to zero 99 backstress[pos] = T[pos] - (1. - D[pos]) * B[pos] * np.sign(ex[pos]) * (2. + a[pos]) * np.abs(ex[pos])**(1. / n[pos]) / (1. + a[pos] + a[pos]**2)**((n[pos] - 1.) / 2. / n[pos]) 100 101 pos = np.nonzero(backstress < 0) 102 backstress[pos] = 0 103 104 # rigidity from Thomas relation for D = 0 and backstress = 0 105 B = np.sign(ex) / (2. + a) * (1. + a + a**2)**((n - 1.) / 2. / n) * T / (np.abs(ex)**(1. / n)) 106 pos = np.nonzero(B < 0) 107 B[pos] = md.materials.rheology_B[pos] 108 109 damage = D 110 111 return damage, B, backstress -
issm/trunk-jpl/src/m/mech/backstressfrominversion.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 from averaging import averaging 3 3 from thomasparams import thomasparams 4 4 5 def backstressfrominversion(md,**kwargs):6 '''7 Compute ice shelf backstress from inversion results.8 5 9 This routine computes backstress based on the analytical formalism of 10 Thomas (1973) and Borstad et al. (2013, The Cryosphere). The model 11 must contain inversion results for ice rigidity. Strain rates must 12 also be included, either from observed or modeled velocities. Ice 13 rigidity B is assumed to be parameterized by the ice temperature in 14 md.materials.rheology_B. 6 def backstressfrominversion(md, **kwargs): 7 ''' 8 Compute ice shelf backstress from inversion results. 9 10 This routine computes backstress based on the analytical formalism of 11 Thomas (1973) and Borstad et al. (2013, The Cryosphere). The model 12 must contain inversion results for ice rigidity. Strain rates must 13 also be included, either from observed or modeled velocities. Ice 14 rigidity B is assumed to be parameterized by the ice temperature in 15 md.materials.rheology_B. 15 16 16 17 Available options: 17 - 'tempmask': mask the inverted rigidity to be no more than18 appropriate for the temperature of the ice? 19 20 - 'smoothing': the amount of smoothing to be applied to the strain rate data.21 22 23 - 'coordsys': coordinate system for calculating the strain rate24 components. Must be one of: 25 26 27 28 'xy': x and y axes same as in polar stereographic projection 18 - 'tempmask' : mask the inverted rigidity to be no more than 19 appropriate for the temperature of the ice? 20 Boolean, defaults to false. 21 - 'smoothing' : the amount of smoothing to be applied to the strain rate data. 22 Type 'help averaging' for more information on its 23 usage. Defaults to 0. 24 - 'coordsys' : coordinate system for calculating the strain rate 25 components. Must be one of: 26 'longitudinal': x axis aligned along a flowline at every point (default) 27 'principal': x axis aligned along maximum principal strain rate 28 at every point 29 'xy': x and y axes same as in polar stereographic projection 29 30 30 31 Return values: 31 32 32 'backstress' is the inferred backstress based on the analytical 33 solution for ice shelf creep 33 34 34 35 Usage: 35 backstress =backstressfrominversion(md,options)36 backstress = backstressfrominversion(md, options) 36 37 37 38 Example: 38 backstress =backstressfrominversion(md,'smoothing',2,'coordsys','longitudinal','tempmask',true);39 39 backstress = backstressfrominversion(md, 'smoothing', 2, 'coordsys', 'longitudinal', 'tempmask', true) 40 ''' 40 41 41 # unpack kwargs 42 tempmask=kwargs.pop('tempmask',False) 43 if 'tempmask' in kwargs: del kwargs['maxiter'] 44 smoothing=kwargs.pop('smoothing',0) 45 if 'smoothing' in kwargs: del kwargs['smoothing'] 46 coordsys=kwargs.pop('coordsys','longitudinal') 47 if 'coordsys' in kwargs: del kwargs['coordsys'] 48 assert len(kwargs)==0, 'error, unexpected or misspelled kwargs' 42 # unpack kwargs 43 tempmask = kwargs.pop('tempmask', False) 44 if 'tempmask' in kwargs: 45 del kwargs['maxiter'] 46 smoothing = kwargs.pop('smoothing', 0) 47 if 'smoothing' in kwargs: 48 del kwargs['smoothing'] 49 coordsys = kwargs.pop('coordsys', 'longitudinal') 50 if 'coordsys' in kwargs: 51 del kwargs['coordsys'] 52 assert len(kwargs) == 0, 'error, unexpected or misspelled kwargs' 49 53 50 51 if not hasattr(md.results,'strainrate'):52 raise Exception('md.results.strainrate not present. Calculate using md=mechanicalproperties(md,vx,vy)')53 if not '2d'in md.mesh.__doc__:54 55 if any(md.flowequation.element_equation!=2):56 raise Exception('Warning: the model has some non-SSA elements. These will be treated like SSA elements')54 # some checks 55 if not hasattr(md.results, 'strainrate'): 56 raise Exception('md.results.strainrate not present. Calculate using md = mechanicalproperties(md, vx, vy)') 57 if '2d' not in md.mesh.__doc__: 58 raise Exception('only 2d (planview) model supported currently') 59 if any(md.flowequation.element_equation != 2): 60 raise Exception('Warning: the model has some non - SSA elements. These will be treated like SSA elements') 57 61 58 T=0.5*md.materials.rho_ice*md.constants.g*(1-md.materials.rho_ice/md.materials.rho_water)*md.geometry.thickness 59 n=averaging(md,md.materials.rheology_n,0) 60 B=md.materials.rheology_B 61 Bi=md.results.StressbalanceSolution.MaterialsRheologyBbar.reshape(-1,) 62 63 a0,b0,theta0,ex0=thomasparams(md,eq='Thomas',smoothing=smoothing,coordsys=coordsys) 64 65 if tempmask: 66 Bi=md.results.StressbalanceSolution.MaterialsRheologyBbar 67 pos=np.nonzero(Bi>md.materials.rheology_B) 68 Bi[pos]=md.materials.rheology_B[pos] 69 70 # analytical backstress solution 71 backstress=T-Bi*np.sign(ex0)*(2+a0)*np.abs(ex0)**(1./n)/((1+a0+a0**2+b0**2)**((n-1.)/2./n)) 72 backstress[np.nonzero(backstress<0)]=0 62 T = 0.5 * md.materials.rho_ice * md.constants.g * (1 - md.materials.rho_ice / md.materials.rho_water) * md.geometry.thickness 63 n = averaging(md, md.materials.rheology_n, 0) 64 Bi = md.results.StressbalanceSolution.MaterialsRheologyBbar.reshape(- 1, ) 73 65 74 return backstress 66 a0, b0, theta0, ex0 = thomasparams(md, eq='Thomas', smoothing=smoothing, coordsys=coordsys) 67 68 if tempmask: 69 Bi = md.results.StressbalanceSolution.MaterialsRheologyBbar 70 pos = np.nonzero(Bi > md.materials.rheology_B) 71 Bi[pos] = md.materials.rheology_B[pos] 72 73 # analytical backstress solution 74 backstress = T - Bi * np.sign(ex0) * (2 + a0) * np.abs(ex0)**(1. / n) / ((1 + a0 + a0**2 + b0**2)**((n - 1.) / 2. / n)) 75 backstress[np.nonzero(backstress < 0)] = 0 76 77 return backstress -
issm/trunk-jpl/src/m/mech/calcbackstress.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 from averaging import averaging 3 3 from thomasparams import thomasparams 4 4 5 def calcbackstress(md,**kwargs):6 '''7 Compute ice shelf backstress.8 5 9 This routine computes backstress based on the analytical formalism of 10 Thomas (1973) and Borstad et al. (2013, The Cryosphere) based on the 11 ice rigidity, thickness, the densities of ice and seawater, and 12 (optionally) damage. Strain rates must also be included, either from 13 observed or modeled velocities. 14 15 Available options: 16 - 'smoothing' : the amount of smoothing to be applied to the strain rate data. 17 Type 'help averaging' for more information on its 18 usage. Defaults to 0. 19 - 'coordsys' : coordinate system for calculating the strain rate 20 components. Must be one of: 21 'longitudinal': x axis aligned along a flowline at every point (default) 22 'principal': x axis aligned along maximum principal strain rate 23 at every point 24 'xy': x and y axes same as in polar stereographic projection 6 def calcbackstress(md, **kwargs): 7 ''' 8 Compute ice shelf backstress. 9 10 This routine computes backstress based on the analytical formalism of 11 Thomas (1973) and Borstad et al. (2013, The Cryosphere) based on the 12 ice rigidity, thickness, the densities of ice and seawater, and 13 (optionally) damage. Strain rates must also be included, either from 14 observed or modeled velocities. 15 16 Available options: 17 - 'smoothing' : the amount of smoothing to be applied to the strain rate data. 18 Type 'help averaging' for more information on its 19 usage. Defaults to 0. 20 - 'coordsys' : coordinate system for calculating the strain rate 21 components. Must be one of: 22 'longitudinal': x axis aligned along a flowline at every point (default) 23 'principal': x axis aligned along maximum principal strain rate 24 at every point 25 'xy': x and y axes same as in polar stereographic projection 25 26 26 27 Return values: 27 28 28 'backstress' is the inferred backstress based on the analytical 29 solution for ice shelf creep 29 30 30 31 Usage: 31 backstress =calcbackstress(md,options)32 backstress = calcbackstress(md, options) 32 33 33 34 Example: 34 backstress =calcbackstress(md,'smoothing',2,'coordsys','longitudinal')35 35 backstress = calcbackstress(md, 'smoothing', 2, 'coordsys', 'longitudinal') 36 ''' 36 37 37 # unpack kwargs 38 smoothing=kwargs.pop('smoothing',0) 39 if 'smoothing' in kwargs: del kwargs['smoothing'] 40 coordsys=kwargs.pop('coordsys','longitudinal') 41 if 'coordsys' in kwargs: del kwargs['coordsys'] 42 assert len(kwargs)==0, 'error, unexpected or misspelled kwargs' 38 # unpack kwargs 39 smoothing = kwargs.pop('smoothing', 0) 40 if 'smoothing' in kwargs: 41 del kwargs['smoothing'] 42 coordsys = kwargs.pop('coordsys', 'longitudinal') 43 if 'coordsys' in kwargs: 44 del kwargs['coordsys'] 45 assert len(kwargs) == 0, 'error, unexpected or misspelled kwargs' 43 46 44 45 if not hasattr(md.results,'strainrate'):46 raise Exception('md.results.strainrate not present. Calculate using md=mechanicalproperties(md,vx,vy)')47 if not '2d'in md.mesh.__doc__:48 49 if any(md.flowequation.element_equation!=2):50 raise Exception('Warning: the model has some non-SSA elements. These will be treated like SSA elements')47 # some checks 48 if not hasattr(md.results, 'strainrate'): 49 raise Exception('md.results.strainrate not present. Calculate using md = mechanicalproperties(md, vx, vy)') 50 if '2d' not in md.mesh.__doc__: 51 raise Exception('only 2d (planview) model supported currently') 52 if any(md.flowequation.element_equation != 2): 53 raise Exception('Warning: the model has some non - SSA elements. These will be treated like SSA elements') 51 54 52 T=0.5*md.materials.rho_ice*md.constants.g*(1-md.materials.rho_ice/md.materials.rho_water)*md.geometry.thickness 53 n=averaging(md,md.materials.rheology_n,0) 54 B=md.materials.rheology_B 55 if md.damage.isdamage: 56 D=md.damage.D 57 else: 58 D=0. 59 60 a0,b0,theta0,ex0=thomasparams(md,eq='Thomas',smoothing=smoothing,coordsys=coordsys) 61 62 # analytical backstress solution 63 backstress=T-(1.-D)*B*np.sign(ex0)*(2+a0)*np.abs(ex0)**(1./n)/((1+a0+a0**2+b0**2)**((n-1.)/2./n)) 64 backstress[np.nonzero(backstress<0)]=0 55 T = 0.5 * md.materials.rho_ice * md.constants.g * (1 - md.materials.rho_ice / md.materials.rho_water) * md.geometry.thickness 56 n = averaging(md, md.materials.rheology_n, 0) 57 B = md.materials.rheology_B 58 if md.damage.isdamage: 59 D = md.damage.D 60 else: 61 D = 0. 65 62 66 return backstress 63 a0, b0, theta0, ex0 = thomasparams(md, eq='Thomas', smoothing=smoothing, coordsys=coordsys) 64 65 # analytical backstress solution 66 backstress = T - (1. - D) * B * np.sign(ex0) * (2 + a0) * np.abs(ex0)**(1. / n) / ((1 + a0 + a0**2 + b0**2)**((n - 1.) / 2. / n)) 67 backstress[np.nonzero(backstress < 0)] = 0 68 69 return backstress -
issm/trunk-jpl/src/m/mech/damagefrominversion.py
r23716 r24213 1 import numpy as np 1 import numpy as np 2 2 3 3 4 def damagefrominversion(md): 4 5 5 ''' 6 compute ice shelf damage from inversion results 6 7 7 This routine computes damage based on the analytical formalism of Borstad et 8 al. (2013, The Cryosphere). The model must contain inversion results for 9 ice rigidity. Ice rigidity B is assumed to be parameterized by the ice 10 temperature in md.materials.rheology_B. 11 12 Usage: 13 damage=damagefrominversion(md) 14 15 Example: 16 damage=damagefrominversion(md) 17 ''' 8 This routine computes damage based on the analytical formalism of Borstad et 9 al. (2013, The Cryosphere). The model must contain inversion results for 10 ice rigidity. Ice rigidity B is assumed to be parameterized by the ice 11 temperature in md.materials.rheology_B. 18 12 19 # check inputs 20 if not hasattr(md.results,'strainrate'): 21 raise Exception('md.results.strainrate is not present. Calculate using md=mechanicalproperties(md,vx,vy)') 22 if not '2d' in md.mesh.__doc__: 23 raise Exception('only 2d (planview) model supported currently') 24 if any(md.flowequation.element_equation!=2): 25 raise Exception('Warning: the model has some non-SSA elements. These will be treated like SSA elements') 26 if np.ndim(md.results.StressbalanceSolution.MaterialsRheologyBbar)==2: 27 Bi=md.results.StressbalanceSolution.MaterialsRheologyBbar.reshape(-1,) 28 else: 29 Bi=md.results.StressbalanceSolution.MaterialsRheologyBbar 30 if np.ndim(md.materials.rheology_B)==2: 31 BT=md.materials.rheology_B.reshape(-1,) 32 else: 33 BT=md.materials.rheology_B 13 Usage: 14 damage = damagefrominversion(md) 34 15 35 damage=np.zeros_like(Bi) 16 Example: 17 damage = damagefrominversion(md) 18 ''' 36 19 37 # Damage where Bi softer than B(T) 38 pos=np.nonzero(Bi<BT)[0] 39 damage[pos]=1.-Bi[pos]/BT[pos] 40 41 pos=np.nonzero(damage<0) 42 damage[pos]=0 20 # check inputs 21 if not hasattr(md.results, 'strainrate'): 22 raise Exception('md.results.strainrate is not present. Calculate using md = mechanicalproperties(md, vx, vy)') 23 if '2d' not in md.mesh.__doc__: 24 raise Exception('only 2d (planview) model supported currently') 25 if any(md.flowequation.element_equation != 2): 26 raise Exception('Warning: the model has some non - SSA elements. These will be treated like SSA elements') 27 if np.ndim(md.results.StressbalanceSolution.MaterialsRheologyBbar) == 2: 28 Bi = md.results.StressbalanceSolution.MaterialsRheologyBbar.reshape(- 1, ) 29 else: 30 Bi = md.results.StressbalanceSolution.MaterialsRheologyBbar 31 if np.ndim(md.materials.rheology_B) == 2: 32 BT = md.materials.rheology_B.reshape(- 1, ) 33 else: 34 BT = md.materials.rheology_B 43 35 44 return damage 36 damage = np.zeros_like(Bi) 37 38 # Damage where Bi softer than B(T) 39 pos = np.nonzero(Bi < BT)[0] 40 damage[pos] = 1. - Bi[pos] / BT[pos] 41 42 pos = np.nonzero(damage < 0) 43 damage[pos] = 0 44 45 return damage -
issm/trunk-jpl/src/m/mech/mechanicalproperties.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 from GetNodalFunctionsCoeff import GetNodalFunctionsCoeff 3 3 from results import results 4 from averaging import averaging5 4 6 def mechanicalproperties(md,vx,vy,**kwargs): 7 """ 8 MECHANICALPROPERTIES - compute stress and strain rate for a goven velocity 9 5 6 def mechanicalproperties(md, vx, vy, **kwargs): 7 """ 8 MECHANICALPROPERTIES - compute stress and strain rate for a goven velocity 9 10 10 this routine computes the components of the stress tensor 11 11 strain rate tensor and their respective principal directions. 12 12 the results are in the model md: md.results 13 13 14 14 Usage: 15 md =mechanicalproperties(md,vx,vy)16 15 md = mechanicalproperties(md, vx, vy) 16 17 17 Example: 18 md =mechanicalproperties(md,md.initialization.vx,md.initialization.vy)19 md =mechanicalproperties(md,md.inversion.vx_obs,md.inversion.vy_obs)20 18 md = mechanicalproperties(md, md.initialization.vx, md.initialization.vy) 19 md = mechanicalproperties(md, md.inversion.vx_obs, md.inversion.vy_obs) 20 """ 21 21 22 #some checks 23 if len(vx)!=md.mesh.numberofvertices or len(vy)!=md.mesh.numberofvertices: 24 raise ValueError('the input velocity should be of size ' + md.mesh.numberofvertices) 25 26 #if md.mesh.dimension!=2: 27 # raise StandardError('only 2D model supported currently') 22 #some checks 23 if len(vx) != md.mesh.numberofvertices or len(vy) != md.mesh.numberofvertices: 24 raise ValueError('the input velocity should be of size ' + md.mesh.numberofvertices) 28 25 29 if np.any(md.flowequation.element_equation!=2):30 print('Warning: the model has some non SSA elements. These will be treated like SSA elements')26 #if md.mesh.dimension != 2: 27 # raise StandardError('only 2D model supported currently') 31 28 32 #unpack kwargs 33 if 'damage' in kwargs: 34 damage=kwargs.pop('damage') 35 if len(damage)!=md.mesh.numberofvertices: 36 raise ValueError('if damage is supplied it should be of size ' + md.mesh.numberofvertices) 37 if np.ndim(damage)==2: 38 damage=damage.reshape(-1,) 39 else: damage=None 29 if np.any(md.flowequation.element_equation != 2): 30 print('Warning: the model has some non SSA elements. These will be treated like SSA elements') 40 31 41 if np.ndim(vx)==2: 42 vx=vx.reshape(-1,) 43 if np.ndim(vy)==2: 44 vy=vy.reshape(-1,) 45 46 #initialization 47 numberofelements=md.mesh.numberofelements 48 numberofvertices=md.mesh.numberofvertices 49 index=md.mesh.elements 50 summation=np.array([[1],[1],[1]]) 51 directionsstress=np.zeros((numberofelements,4)) 52 directionsstrain=np.zeros((numberofelements,4)) 53 valuesstress=np.zeros((numberofelements,2)) 54 valuesstrain=np.zeros((numberofelements,2)) 55 56 #compute nodal functions coefficients N(x,y)=alpha x + beta y +gamma 57 alpha,beta=GetNodalFunctionsCoeff(index,md.mesh.x,md.mesh.y)[0:2] 58 59 #compute shear 60 vxlist=vx[index-1]/md.constants.yts 61 vylist=vy[index-1]/md.constants.yts 62 ux=np.dot((vxlist*alpha),summation).reshape(-1,) 63 uy=np.dot((vxlist*beta),summation).reshape(-1,) 64 vx=np.dot((vylist*alpha),summation).reshape(-1,) 65 vy=np.dot((vylist*beta),summation).reshape(-1,) 66 uyvx=(vx+uy)/2. 67 #clear vxlist vylist 68 69 #compute viscosity 70 nu=np.zeros((numberofelements,)) 71 B_bar=np.dot(md.materials.rheology_B[index-1],summation/3.).reshape(-1,) 72 power=((md.materials.rheology_n-1.)/(2.*md.materials.rheology_n)).reshape(-1,) 73 second_inv=(ux**2.+vy**2.+((uy+vx)**2.)/4.+ux*vy).reshape(-1,) 74 75 #some corrections 76 location=np.nonzero(np.logical_and(second_inv==0,power!=0)) 77 nu[location]=10^18 #arbitrary maximum viscosity to apply where there is no effective shear 78 79 if 'matice' in md.materials.__module__: 80 location=np.nonzero(second_inv) 81 nu[location]=B_bar[location]/(second_inv[location]**power[location]) 82 location=np.nonzero(np.logical_and(second_inv==0,power==0)) 83 nu[location]=B_bar[location] 84 location=np.nonzero(np.logical_and(second_inv==0,power!=0)) 85 nu[location]=10^18 86 elif 'matdamageice' in md.materials.__module__ and damage is not None: 87 print('computing damage-dependent properties!') 88 Zinv=np.dot(1-damage[index-1],summation/3.).reshape(-1,) 89 location=np.nonzero(second_inv) 90 nu[location]=Zinv[location]*B_bar[location]/np.power(second_inv[location],power[location]) 91 location=np.nonzero(np.logical_and(second_inv==0,power==0)) 92 nu[location]=Zinv[location]*B_bar[location] 93 #clear Zinv 94 else: 95 raise Exception('class of md.materials (' + md.materials.__module__ + ') not recognized or not supported') 96 97 #compute stress 98 tau_xx=nu*ux 99 tau_yy=nu*vy 100 tau_xy=nu*uyvx 101 102 #compute principal properties of stress 103 for i in np.arange(numberofelements): 104 105 #compute stress and strainrate matrices 106 stress=np.array([ [tau_xx[i], tau_xy[i]], [tau_xy[i], tau_yy[i]] ]) 107 strain=np.array([ [ux[i], uyvx[i]], [uyvx[i], vy[i]] ]) 108 109 #eigenvalues and vectors for stress 110 value,directions=np.linalg.eig(stress); 111 idx=value.argsort()[::-1] # sort in descending algebraic (not absolute) order 112 value=value[idx] 113 directions=directions[:,idx] 114 valuesstress[i,:]=[value[0],value[1]] 115 directionsstress[i,:]=directions.transpose().flatten() 32 #unpack kwargs 33 if 'damage' in kwargs: 34 damage = kwargs.pop('damage') 35 if len(damage) != md.mesh.numberofvertices: 36 raise ValueError('if damage is supplied it should be of size ' + md.mesh.numberofvertices) 37 if np.ndim(damage) == 2: 38 damage = np.squeeze(damage) 39 else: 40 damage = None 116 41 117 #eigenvalues and vectors for strain 118 value,directions=np.linalg.eig(strain); 119 idx=value.argsort()[::-1] # sort in descending order 120 value=value[idx] 121 directions=directions[:,idx] 122 valuesstrain[i,:]=[value[0],value[1]] 123 directionsstrain[i,:]=directions.transpose().flatten() 42 if np.ndim(vx) == 2: 43 vx = np.squeeze(vx) 44 if np.ndim(vy) == 2: 45 vy = np.squeeze(vy) 124 46 125 ##plug onto the model 126 ##NB: Matlab sorts the eigen value in increasing order, we want the reverse 127 128 strainrate=results() 129 strainrate.xx=ux*md.constants.yts #strain rate in 1/a instead of 1/s 130 strainrate.yy=vy*md.constants.yts 131 strainrate.xy=uyvx*md.constants.yts 132 strainrate.principalvalue1=valuesstrain[:,0]*md.constants.yts 133 strainrate.principalaxis1=directionsstrain[:,0:2] 134 strainrate.principalvalue2=valuesstrain[:,1]*md.constants.yts 135 strainrate.principalaxis2=directionsstrain[:,2:4] 136 strainrate.effectivevalue=1./np.sqrt(2.)*np.sqrt(strainrate.xx**2+strainrate.yy**2+2.*strainrate.xy**2) 137 md.results.strainrate=strainrate 138 139 deviatoricstress=results() 140 deviatoricstress.xx=tau_xx 141 deviatoricstress.yy=tau_yy 142 deviatoricstress.xy=tau_xy 143 deviatoricstress.principalvalue1=valuesstress[:,0] 144 deviatoricstress.principalaxis1=directionsstress[:,1:2] 145 deviatoricstress.principalvalue2=valuesstress[:,1] 146 deviatoricstress.principalaxis2=directionsstress[:,2:4] 147 deviatoricstress.effectivevalue=1./np.sqrt(2.)*np.sqrt(stress.xx**2+stress.yy**2+2.*stress.xy**2) 148 md.results.deviatoricstress=deviatoricstress 47 #initialization 48 numberofelements = md.mesh.numberofelements 49 index = md.mesh.elements 50 summation = np.array([[1], [1], [1]]) 51 directionsstress = np.zeros((numberofelements, 4)) 52 directionsstrain = np.zeros((numberofelements, 4)) 53 valuesstress = np.zeros((numberofelements, 2)) 54 valuesstrain = np.zeros((numberofelements, 2)) 149 55 150 return md 56 #compute nodal functions coefficients N(x, y)=alpha x + beta y + gamma 57 alpha, beta = GetNodalFunctionsCoeff(index, md.mesh.x, md.mesh.y)[0:2] 58 59 #compute shear 60 vxlist = vx[index - 1] / md.constants.yts 61 vylist = vy[index - 1] / md.constants.yts 62 ux = np.dot((vxlist * alpha), summation).reshape(- 1, ) 63 uy = np.dot((vxlist * beta), summation).reshape(- 1, ) 64 vx = np.dot((vylist * alpha), summation).reshape(- 1, ) 65 vy = np.dot((vylist * beta), summation).reshape(- 1, ) 66 uyvx = (vx + uy) / 2. 67 #clear vxlist vylist 68 69 #compute viscosity 70 nu = np.zeros((numberofelements, )) 71 B_bar = np.dot(md.materials.rheology_B[index - 1], summation / 3.).reshape(- 1, ) 72 power = ((md.materials.rheology_n - 1.) / (2. * md.materials.rheology_n)).reshape(- 1, ) 73 second_inv = (ux**2. + vy**2. + ((uy + vx)**2.) / 4. + ux * vy).reshape(- 1, ) 74 75 #some corrections 76 location = np.nonzero(np.logical_and(second_inv == 0, power != 0)) 77 nu[location] = 10**18 #arbitrary maximum viscosity to apply where there is no effective shear 78 79 if 'matice' in md.materials.__module__: 80 location = np.nonzero(second_inv) 81 nu[location] = B_bar[location] / (second_inv[location]**power[location]) 82 location = np.nonzero(np.logical_and(second_inv == 0, power == 0)) 83 nu[location] = B_bar[location] 84 location = np.nonzero(np.logical_and(second_inv == 0, power != 0)) 85 nu[location] = 10**18 86 elif 'matdamageice' in md.materials.__module__ and damage is not None: 87 print('computing damage-dependent properties!') 88 Zinv = np.dot(1 - damage[index - 1], summation / 3.).reshape(- 1, ) 89 location = np.nonzero(second_inv) 90 nu[location] = Zinv[location] * B_bar[location] / np.power(second_inv[location], power[location]) 91 location = np.nonzero(np.logical_and(second_inv == 0, power == 0)) 92 nu[location] = Zinv[location] * B_bar[location] 93 #clear Zinv 94 else: 95 raise Exception('class of md.materials (' + md.materials.__module__ + ') not recognized or not supported') 96 97 #compute stress 98 tau_xx = nu * ux 99 tau_yy = nu * vy 100 tau_xy = nu * uyvx 101 102 #compute principal properties of stress 103 for i in np.arange(numberofelements): 104 105 #compute stress and strainrate matrices 106 stress = np.array([[tau_xx[i], tau_xy[i]], [tau_xy[i], tau_yy[i]]]) 107 strain = np.array([[ux[i], uyvx[i]], [uyvx[i], vy[i]]]) 108 109 #eigenvalues and vectors for stress 110 value, directions = np.linalg.eig(stress) 111 idx = value.argsort()[:: - 1] # sort in descending algebraic (not absolute) order 112 value = value[idx] 113 directions = directions[:, idx] 114 valuesstress[i, :] = [value[0], value[1]] 115 directionsstress[i, :] = directions.transpose().flatten() 116 117 #eigenvalues and vectors for strain 118 value, directions = np.linalg.eig(strain) 119 idx = value.argsort()[:: - 1] # sort in descending order 120 value = value[idx] 121 directions = directions[:, idx] 122 valuesstrain[i, :] = [value[0], value[1]] 123 directionsstrain[i, :] = directions.transpose().flatten() 124 125 #plug onto the model 126 #NB: Matlab sorts the eigen value in increasing order, we want the reverse 127 128 strainrate = results() 129 strainrate.xx = ux * md.constants.yts #strain rate in 1 / a instead of 1 / s 130 strainrate.yy = vy * md.constants.yts 131 strainrate.xy = uyvx * md.constants.yts 132 strainrate.principalvalue1 = valuesstrain[:, 0] * md.constants.yts 133 strainrate.principalaxis1 = directionsstrain[:, 0:2] 134 strainrate.principalvalue2 = valuesstrain[:, 1] * md.constants.yts 135 strainrate.principalaxis2 = directionsstrain[:, 2:4] 136 strainrate.effectivevalue = 1. / np.sqrt(2.) * np.sqrt(strainrate.xx**2 + strainrate.yy**2 + 2. * strainrate.xy**2) 137 md.results.strainrate = strainrate 138 139 deviatoricstress = results() 140 deviatoricstress.xx = tau_xx 141 deviatoricstress.yy = tau_yy 142 deviatoricstress.xy = tau_xy 143 deviatoricstress.principalvalue1 = valuesstress[:, 0] 144 deviatoricstress.principalaxis1 = directionsstress[:, 1:2] 145 deviatoricstress.principalvalue2 = valuesstress[:, 1] 146 deviatoricstress.principalaxis2 = directionsstress[:, 2:4] 147 deviatoricstress.effectivevalue = 1. / np.sqrt(2.) * np.sqrt(stress.xx**2 + stress.yy**2 + 2. * stress.xy**2) 148 md.results.deviatoricstress = deviatoricstress 149 150 return md -
issm/trunk-jpl/src/m/mech/newforcing.py
r22267 r24213 1 1 import numpy as np 2 2 3 def newforcing(t0,t1,deltaT,f0,f1,nodes):4 '''5 FUNCTION NEWFORCING Build forcing that extends temporally from t0 to t1, and in magnitude from f0 to f1. Equal time6 and magnitude spacing.7 3 8 Usage: forcing=newforcing(t0,t1,deltaT,f0,f1,nodes); 9 Where: 10 t0:t1: time interval. 4 def newforcing(t0, t1, deltaT, f0, f1, nodes): 5 ''' 6 FUNCTION NEWFORCING Build forcing that extends temporally from t0 to t1, and in magnitude from f0 to f1. Equal time 7 and magnitude spacing. 8 9 Usage: forcing = newforcing(t0, t1, deltaT, f0, f1, nodes); 10 Where: 11 t0:t1: time interval. 11 12 deltaT: time step 12 13 f0:f1: magnitude interval. 13 14 nodes: number of vertices where we have a temporal forcing 14 15 15 Example: 16 md.smb.mass_balance =newforcing(md.timestepping.start_time,md.timestepping.final_time,17 md.timestepping.time_step, -1,+2,md.mesh.numberofvertices)18 19 #Number of time steps: 20 16 Example: 17 md.smb.mass_balance = newforcing(md.timestepping.start_time, md.timestepping.final_time, 18 md.timestepping.time_step, - 1, + 2, md.mesh.numberofvertices) 19 ''' 20 #Number of time steps: 21 nsteps = (t1 - t0) / deltaT + 1 21 22 22 23 23 #delta forcing: 24 deltaf = (f1 - f0) / (nsteps - 1) 24 25 25 26 times = np.arange(t0,t1+deltaT,deltaT) #Add deltaT to fix python/matlab discrepency26 #creates times: 27 times = np.arange(t0, t1 + deltaT, deltaT) #Add deltaT to fix python / matlab discrepency 27 28 28 29 forcing = np.arange(f0,f1+deltaf,deltaf)#Add deltaf to fix python/matlab discrepency29 #create forcing: 30 forcing = np.arange(f0, f1 + deltaf, deltaf) #Add deltaf to fix python / matlab discrepency 30 31 31 32 forcing = np.tile(forcing, (nodes+1,1))33 forcing[-1,:] = times34 32 #replicate for all nodes 33 forcing = np.tile(forcing, (nodes + 1, 1)) 34 forcing[-1, :] = times 35 return forcing -
issm/trunk-jpl/src/m/mech/robintemperature.py
r21303 r24213 1 import numpy as 1 import numpy as np 2 2 from scipy.special import erf 3 3 4 def robintemperature(heatflux,accumrate,thickness,surftemp,z):5 '''6 Compute vertical temperature profile of an ice sheet (Robin, 1955)7 4 8 This routine computes the vertical temperature profile of an ice sheet 9 according to the solution of Robin (1955), neglecting friction and 10 horizontal advection. The solution is thus most appropriate at an ice 11 divide. 5 def robintemperature(heatflux, accumrate, thickness, surftemp, z): 6 ''' 7 Compute vertical temperature profile of an ice sheet (Robin, 1955) 12 8 13 The coordinate system for the solution runs from z=0 at the base 14 to z=H at the surface of the ice. 9 This routine computes the vertical temperature profile of an ice sheet 10 according to the solution of Robin (1955), neglecting friction and 11 horizontal advection. The solution is thus most appropriate at an ice 12 divide. 15 13 16 Parameters (SI units): 17 -heatflux Geothermal heat flux (W m^-2) 18 -accumrate Surface accumulation rate (m s^-1 ice equivalent) 19 -thickness Ice thickness (m) 20 -surftemp Surface temperature (K) 21 -z Vertical position at which to calculate temperature 22 (z can be a scalar or a vector) 14 The coordinate system for the solution runs from z = 0 at the base 15 to z = H at the surface of the ice. 23 16 24 Returns a vector the same length as z containing the temperature in K 17 Parameters (SI units): 18 - heatflux Geothermal heat flux (W m^ - 2) 19 - accumrate Surface accumulation rate (m s^ - 1 ice equivalent) 20 - thickness Ice thickness (m) 21 - surftemp Surface temperature (K) 22 - z Vertical position at which to calculate temperature 23 (z can be a scalar or a vector) 25 24 26 Usage: 27 tprofile=robintemperature(heatflux,accumrate,thickness,surftemp,z) 28 ''' 25 Returns a vector the same length as z containing the temperature in K 29 26 30 # some constants (from Holland and Jenkins, 1999) 31 alphaT=1.14e-6 # thermal diffusivity (m^2 s^-1) 32 c=2009. # specific heat capacity (J kg^-1 K^-1) 33 rho=917. # ice density (kg m^-3) 34 35 #create vertical coordinate variable 36 zstar=np.sqrt(2.*alphaT*thickness/accumrate) 37 38 tprofile=surftemp+np.sqrt(2.*thickness*np.pi/accumrate/alphaT)*(-heatflux)/2./rho/c*(erf(z/zstar)-erf(thickness/zstar)) 27 Usage: 28 tprofile = robintemperature(heatflux, accumrate, thickness, surftemp, z) 29 ''' 39 30 40 return tprofile 41 # difference between surface and base temperature for check (Cuffey2010 p412): 42 # print tprofile-surftemp 31 # some constants (from Holland and Jenkins, 1999) 32 alphaT = 1.14e-6 # thermal diffusivity (m^2 s^ - 1) 33 c = 2009. # specific heat capacity (J kg^ - 1 K^ - 1) 34 rho = 917. # ice density (kg m^ - 3) 35 36 #create vertical coordinate variable 37 zstar = np.sqrt(2. * alphaT * thickness / accumrate) 38 39 tprofile = surftemp + np.sqrt(2. * thickness * np.pi / accumrate / alphaT) * (- heatflux) / 2. / rho / c * (erf(z / zstar) - erf(thickness / zstar)) 40 41 return tprofile 42 # difference between surface and base temperature for check (Cuffey2010 p412): 43 # print tprofile-surftemp -
issm/trunk-jpl/src/m/mech/steadystateiceshelftemp.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 3 def steadystateiceshelftemp(md,surfacetemp,basaltemp):4 """5 Compute the depth-averaged steady-state temperature of an ice shelf6 This routine computes the depth-averaged temperature accounting for vertical advection7 and diffusion of heat into the base of the ice shelf as a function of surface and basal8 temperature and the basal melting rate. Horizontal advection is ignored.9 The solution is a depth-averaged version of Equation 25 in Holland and Jenkins (1999).10 3 11 In addition to supplying md, the surface and basal temperatures of the ice shelf must be supplied in degrees Kelvin. 4 def steadystateiceshelftemp(md, surfacetemp, basaltemp): 5 """ 6 Compute the depth - averaged steady - state temperature of an ice shelf 7 This routine computes the depth - averaged temperature accounting for vertical advection 8 and diffusion of heat into the base of the ice shelf as a function of surface and basal 9 temperature and the basal melting rate. Horizontal advection is ignored. 10 The solution is a depth - averaged version of Equation 25 in Holland and Jenkins (1999). 12 11 13 The model md must also contain the fields: 14 md.geometry.thickness 15 md.basalforcings.floatingice_melting_rate (positive for melting, negative for freezing) 12 In addition to supplying md, the surface and basal temperatures of the ice shelf must be supplied in degrees Kelvin. 13 14 The model md must also contain the fields: 15 md.geometry.thickness 16 md.basalforcings.floatingice_melting_rate (positive for melting, negative for freezing) 16 17 17 18 Usage: 18 temperature=steadystateiceshelftemp(md,surfacetemp,basaltemp) 19 """ 20 if len(md.geometry.thickness)!=md.mesh.numberofvertices: 21 raise ValueError('steadystateiceshelftemp error message: thickness should have a length of ' + md.mesh.numberofvertices) 22 23 #surface and basal temperatures in degrees C 24 if len(surfacetemp)!=md.mesh.numberofvertices: 25 raise ValueError('steadystateiceshelftemp error message: surfacetemp should have a length of ' + md.mesh.numberofvertices) 26 27 if len(basaltemp)!=md.mesh.numberofvertices: 28 raise ValueError('steadystateiceshelftemp error message: basaltemp should have a length of ' +md.mesh.numberofvertices) 29 30 # Convert temps to Celsius for Holland and Jenkins (1999) equation 31 Ts=-273.15+surfacetemp 32 Tb=-273.15+basaltemp 33 34 Hi=md.geometry.thickness 35 ki=1.14e-6*md.constants.yts # ice shelf thermal diffusivity from Holland and Jenkins (1999) converted to m^2/yr 36 37 #vertical velocity of ice shelf, calculated from melting rate 38 wi=md.materials.rho_water/md.materials.rho_ice*md.basalforcings.floatingice_melting_rate 39 40 #temperature profile is linear if melting rate is zero, depth-averaged temp is simple average in this case 41 temperature=(Ts+Tb)/2 # where wi~=0 42 43 pos=np.nonzero(abs(wi)>=1e-4) # to avoid division by zero 19 temperature = steadystateiceshelftemp(md, surfacetemp, basaltemp) 20 """ 21 if len(md.geometry.thickness) != md.mesh.numberofvertices: 22 raise ValueError('steadystateiceshelftemp error message: thickness should have a length of ' + md.mesh.numberofvertices) 44 23 45 np.seterr(over='raise',divide='raise') # raise errors if floating point exceptions are encountered in following calculation 46 #calculate depth-averaged temperature (in Celsius) 47 try: 48 temperature[pos]=-( (Tb[pos]-Ts[pos])*ki/wi[pos] + Hi[pos]*Tb[pos] - (Hi[pos]*Ts[pos] + (Tb[pos]-Ts[pos])*ki/wi[pos])*np.exp(Hi[pos]*wi[pos]/ki) )/( Hi[pos]*(np.exp(Hi[pos]*wi[pos]/ki)-1)) 49 except FloatingPointError: 50 print('steadystateiceshelf warning: overflow encountered in multipy/divide/exp, trying another formulation.') 51 temperature[pos]=-( ((Tb[pos]-Ts[pos])*ki/wi[pos] + Hi[pos]*Tb[pos])/np.exp(Hi[pos]*wi[pos]/ki) - Hi[pos]*Ts[pos] + (Tb[pos]-Ts[pos])*ki/wi[pos])/( Hi[pos]*(1-np.exp(-Hi[pos]*wi[pos]/ki))) 52 53 #temperature should not be less than surface temp 54 pos=np.nonzero(temperature<Ts) 55 temperature[pos]=Ts[pos] 56 57 # NaN where melt rates are too high (infinity/infinity in exponential) 58 pos=np.nonzero(np.isnan(temperature)) 59 temperature[pos]=Ts[pos] 60 61 #convert to Kelvin 62 temperature=temperature+273.15 24 #surface and basal temperatures in degrees C 25 if len(surfacetemp) != md.mesh.numberofvertices: 26 raise ValueError('steadystateiceshelftemp error message: surfacetemp should have a length of ' + md.mesh.numberofvertices) 63 27 64 return temperature 28 if len(basaltemp) != md.mesh.numberofvertices: 29 raise ValueError('steadystateiceshelftemp error message: basaltemp should have a length of ' + md.mesh.numberofvertices) 30 31 # Convert temps to Celsius for Holland and Jenkins (1999) equation 32 Ts = -273.15 + surfacetemp 33 Tb = -273.15 + basaltemp 34 35 Hi = md.geometry.thickness 36 ki = 1.14e-6 * md.constants.yts # ice shelf thermal diffusivity from Holland and Jenkins (1999) converted to m^2 / yr 37 38 #vertical velocity of ice shelf, calculated from melting rate 39 wi = md.materials.rho_water / md.materials.rho_ice * md.basalforcings.floatingice_melting_rate 40 41 #temperature profile is linear if melting rate is zero, depth - averaged temp is simple average in this case 42 temperature = (Ts + Tb) / 2 # where wi~=0 43 44 pos = np.nonzero(abs(wi) >= 1e-4) # to avoid division by zero 45 46 np.seterr(over='raise', divide='raise') # raise errors if floating point exceptions are encountered in following calculation 47 #calculate depth - averaged temperature (in Celsius) 48 try: 49 temperature[pos] = -((Tb[pos] - Ts[pos]) * ki / wi[pos] + Hi[pos] * Tb[pos] - (Hi[pos] * Ts[pos] + (Tb[pos] - Ts[pos]) * ki / wi[pos]) * np.exp(Hi[pos] * wi[pos] / ki)) / (Hi[pos] * (np.exp(Hi[pos] * wi[pos] / ki) - 1)) 50 except FloatingPointError: 51 print('steadystateiceshelf warning: overflow encountered in multipy / divide / exp, trying another formulation.') 52 temperature[pos] = -(((Tb[pos] - Ts[pos]) * ki / wi[pos] + Hi[pos] * Tb[pos]) / np.exp(Hi[pos] * wi[pos] / ki) - Hi[pos] * Ts[pos] + (Tb[pos] - Ts[pos]) * ki / wi[pos]) / (Hi[pos] * (1 - np.exp(- Hi[pos] * wi[pos] / ki))) 53 54 #temperature should not be less than surface temp 55 pos = np.nonzero(temperature < Ts) 56 temperature[pos] = Ts[pos] 57 58 # NaN where melt rates are too high (infinity / infinity in exponential) 59 pos = np.nonzero(np.isnan(temperature)) 60 temperature[pos] = Ts[pos] 61 62 #convert to Kelvin 63 temperature = temperature + 273.15 64 65 return temperature -
issm/trunk-jpl/src/m/mech/thomasparams.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 from averaging import averaging 3 3 4 def thomasparams(md,**kwargs):5 '''6 compute Thomas' geometric parameters for an ice shelf7 4 8 This routine computes geometric parameters representing ratios between 9 components of the horizontal strain rate tensor for an ice shelf, as 10 originally developed in Thomas (1973). The model must contain computed 11 strain rates, either from observed or modeled ice velocities. 5 def thomasparams(md, **kwargs): 6 ''' 7 compute Thomas' geometric parameters for an ice shelf 8 9 This routine computes geometric parameters representing ratios between 10 components of the horizontal strain rate tensor for an ice shelf, as 11 originally developed in Thomas (1973). The model must contain computed 12 strain rates, either from observed or modeled ice velocities. 12 13 13 14 Available options: 14 -eq: analytical equation to use in the calculation. Must be one of:15 16 17 18 15 - eq : analytical equation to use in the calculation. Must be one of: 16 'Thomas' for a 2D ice shelf, taking into account full strain rate 17 tensor (default) 18 'Weertman1D' for a confined ice shelf free to flow in one direction 19 'Weertman2D' for an unconfined ice shelf free to spread in any direction 19 20 20 -smoothing: an integer smoothing parameter for the averaging function21 21 - smoothing : an integer smoothing parameter for the averaging function 22 (default 0) Type 'help averaging' for more information on its usage. 22 23 23 -coordsys: coordinate system for calculating the strain rate24 25 26 27 28 'xy': x and y axes same as in polar stereographic projection 24 - coordsys : coordinate system for calculating the strain rate 25 components. Must be one of: 26 'longitudinal': x axis aligned along a flowline at every point (default) 27 'principal': x axis aligned along maximum principal strain rate 28 at every point 29 'xy': x and y axes same as in polar stereographic projection 29 30 30 Return values: 31 Return values: 31 32 32 'alpha' which is the ratio e_yy/e_xx between components of the strain33 33 'alpha' which is the ratio e_yy / e_xx between components of the strain 34 rate tensor 34 35 35 'beta' which is the ratio e_xy/e_xx between components of the strain rate36 36 'beta' which is the ratio e_xy / e_xx between components of the strain rate 37 tensor 37 38 38 39 39 'theta' which is a combination of alpha and beta arising from the form of 40 the equivalent stress 40 41 41 'exx' is the strain rate along a coordinate system defined by 'coordsys' 42 'exx' is the strain rate along a coordinate system defined by 'coordsys' 42 43 43 'sigxx' is the deviatoric stress along a coordinate system defined by 'coordsys' 44 'sigxx' is the deviatoric stress along a coordinate system defined by 'coordsys' 44 45 45 Usage: 46 alpha,beta,theta,exx,sigxx=thomasparams(md)46 Usage: 47 alpha, beta, theta, exx, sigxx = thomasparams(md) 47 48 48 Example: 49 alpha,beta,theta,exx,sigxx=thomasparams(md,eq='Thomas',smoothing=2,coordsys='longitudinal')50 49 Example: 50 alpha, beta, theta, exx, sigxx = thomasparams(md, eq = 'Thomas', smoothing = 2, coordsys = 'longitudinal') 51 ''' 51 52 52 #unpack kwargs 53 eq=kwargs.pop('eq','Thomas') 54 if 'eq' in kwargs: del kwargs['eq'] 55 smoothing=kwargs.pop('smoothing',0) 56 if 'smoothing' in kwargs: del kwargs['smoothing'] 57 coordsys=kwargs.pop('coordsys','longitudinal') 58 if 'coordsys' in kwargs: del kwargs['coordsys'] 59 assert len(kwargs)==0, 'error, unexpected or misspelled kwargs' 53 #unpack kwargs 54 eq = kwargs.pop('eq', 'Thomas') 55 if 'eq' in kwargs: 56 del kwargs['eq'] 57 smoothing = kwargs.pop('smoothing', 0) 58 if 'smoothing' in kwargs: 59 del kwargs['smoothing'] 60 coordsys = kwargs.pop('coordsys', 'longitudinal') 61 if 'coordsys' in kwargs: 62 del kwargs['coordsys'] 63 assert len(kwargs) == 0, 'error, unexpected or misspelled kwargs' 60 64 61 62 if not hasattr(md.results,'strainrate'):63 raise Exception('md.results.strainrate not present. Calculate using md=mechanicalproperties(md,vx,vy)')64 if not '2d'in md.mesh.__doc__:65 66 if any(md.flowequation.element_equation!=2):67 raise Exception('Warning: the model has some non-SSA elements. These will be treated like SSA elements')65 # some checks 66 if not hasattr(md.results, 'strainrate'): 67 raise Exception('md.results.strainrate not present. Calculate using md = mechanicalproperties(md, vx, vy)') 68 if '2d' not in md.mesh.__doc__: 69 raise Exception('only 2d (planview) model supported currently') 70 if any(md.flowequation.element_equation != 2): 71 raise Exception('Warning: the model has some non - SSA elements. These will be treated like SSA elements') 68 72 69 # average element strain rates onto vertices 70 e1=averaging(md,md.results.strainrate.principalvalue1,smoothing)/md.constants.yts # convert to s^-1 71 e2=averaging(md,md.results.strainrate.principalvalue2,smoothing)/md.constants.yts 72 exx=averaging(md,md.results.strainrate.xx,smoothing)/md.constants.yts 73 eyy=averaging(md,md.results.strainrate.yy,smoothing)/md.constants.yts 74 exy=averaging(md,md.results.strainrate.xy,smoothing)/md.constants.yts 75 76 # checks: any of e1 or e2 equal to zero? 77 pos=np.nonzero(e1==0) 78 if np.any(pos==1): 79 print('WARNING: first principal strain rate equal to zero. Value set to 1e-13 s^-1') 80 e1[pos]=1.e-13 81 pos=np.nonzero(e2==0) 82 if np.any(pos==1): 83 print('WARNING: second principal strain rate equal to zero. Value set to 1e-13 s^-1') 84 e2[pos]=1.e-13 85 86 # rheology 87 n=averaging(md,md.materials.rheology_n,0) 88 B=md.materials.rheology_B 89 90 if coordsys=='principal': 91 b=np.zeros((md.mesh.numberofvertices,)) 92 ex=e1 93 a=e2/e1 94 pos=np.nonzero(np.logical_and(e1<0,e2>0)) # longitudinal compression and lateral tension 95 a[pos]=e1[pos]/e2[pos] 96 ex[pos]=e2[pos] 97 pos2=np.nonzero(e1<0 & e2<0 & np.abs(e1)<np.abs(e2)) # lateral and longitudinal compression 98 a[pos2]=e1[pos2]/e2[pos2] 99 ex[pos2]=e2[pos2] 100 pos3=np.nonzero(e1>0 & e2>0 & np.abs(e1)<np.abs(e2)) # lateral and longitudinal tension 101 a[pos3]=e1[pos3]/e2[pos3] 102 ex[pos3]=e2[pos3] 103 ind=np.nonzero(e1<0 & e2<0) 104 a[ind]=-a[ind] # where both strain rates are compressive, enforce negative alpha 105 sigxx=(np.abs(ex)/((1.+a+a**2)**((n-1.)/2.)))**(1./n)*B 106 elif coordsys=='xy': 107 ex=exx 108 a=eyy/exx 109 b=exy/exx 110 elif coordsys=='longitudinal': 111 # using longitudinal strain rates defined by observed velocity vector 112 velangle=np.arctan(md.initialization.vy/md.initialization.vx) 113 pos=np.nonzero(md.initialization.vx==0) 114 velangle[pos]=np.pi/2 115 ex=0.5*(exx+eyy)+0.5*(exx-eyy)*np.cos(2.*velangle)+exy*np.sin(2.*velangle) 116 ey=exx+eyy-ex # trace of strain rate tensor is invariant 117 exy=-0.5*(exx-eyy)*np.sin(2.*velangle)+exy*np.cos(2.*velangle) 118 a=ey/ex 119 b=exy/ex 120 sigxx=abs(ex)**(1./n-1.)*ex/((1.+a+a**2+b**2)**((n-1.)/(2.*n)))*B 121 else: 122 raise ValueError('argument passed to "coordsys" not valid') 123 124 # a < -1 in areas of strong lateral compression or longitudinal compression and 125 # theta flips sign at a = -2 126 pos=np.nonzero(np.abs((np.abs(a)-2.))<1.e-3) 127 if len(pos)>0: 128 print(('Warning: ', len(pos), ' vertices have alpha within 1e-3 of -2')) 129 a[pos]=-2+1e-3 73 # average element strain rates onto vertices 74 e1 = averaging(md, md.results.strainrate.principalvalue1, smoothing) / md.constants.yts # convert to s^ - 1 75 e2 = averaging(md, md.results.strainrate.principalvalue2, smoothing) / md.constants.yts 76 exx = averaging(md, md.results.strainrate.xx, smoothing) / md.constants.yts 77 eyy = averaging(md, md.results.strainrate.yy, smoothing) / md.constants.yts 78 exy = averaging(md, md.results.strainrate.xy, smoothing) / md.constants.yts 130 79 131 if eq=='Weertman1D': 132 theta=1./8 133 a=np.zeros((md.mesh.numberofvertices,)) 134 elif eq=='Weertman2D': 135 theta=1./9 136 a=np.ones((md.mesh.numberofvertices,)) 137 elif eq=='Thomas': 138 theta=((1.+a+a**2+b**2)**((n-1.)/2.))/(np.abs(2.+a)**n) 139 else: 140 raise ValueError('argument passed to "eq" not valid') 80 # checks: any of e1 or e2 equal to zero? 81 pos = np.nonzero(e1 == 0) 82 if np.any(pos == 1): 83 print('WARNING: first principal strain rate equal to zero. Value set to 1e-13 s^ - 1') 84 e1[pos] = 1.e-13 85 pos = np.nonzero(e2 == 0) 86 if np.any(pos == 1): 87 print('WARNING: second principal strain rate equal to zero. Value set to 1e-13 s^ - 1') 88 e2[pos] = 1.e-13 141 89 142 alpha=a 143 beta=b 90 # rheology 91 n = averaging(md, md.materials.rheology_n, 0) 92 B = md.materials.rheology_B 144 93 145 return alpha,beta,theta,ex 94 if coordsys == 'principal': 95 b = np.zeros((md.mesh.numberofvertices, )) 96 ex = e1 97 a = e2 / e1 98 pos = np.nonzero(np.logical_and(e1 < 0, e2 > 0)) # longitudinal compression and lateral tension 99 a[pos] = e1[pos] / e2[pos] 100 ex[pos] = e2[pos] 101 pos2 = np.nonzero(e1 < 0 & e2 < 0 & np.abs(e1) < np.abs(e2)) # lateral and longitudinal compression 102 a[pos2] = e1[pos2] / e2[pos2] 103 ex[pos2] = e2[pos2] 104 pos3 = np.nonzero(e1 > 0 & e2 > 0 & np.abs(e1) < np.abs(e2)) # lateral and longitudinal tension 105 a[pos3] = e1[pos3] / e2[pos3] 106 ex[pos3] = e2[pos3] 107 ind = np.nonzero(e1 < 0 & e2 < 0) 108 a[ind] = -a[ind] # where both strain rates are compressive, enforce negative alpha 109 sigxx = (np.abs(ex) / ((1. + a + a**2)**((n - 1.) / 2.)))**(1. / n) * B 110 elif coordsys == 'xy': 111 ex = exx 112 a = eyy / exx 113 b = exy / exx 114 elif coordsys == 'longitudinal': 115 # using longitudinal strain rates defined by observed velocity vector 116 velangle = np.arctan(md.initialization.vy / md.initialization.vx) 117 pos = np.nonzero(md.initialization.vx == 0) 118 velangle[pos] = np.pi / 2 119 ex = 0.5 * (exx + eyy) + 0.5 * (exx - eyy) * np.cos(2. * velangle) + exy * np.sin(2. * velangle) 120 ey = exx + eyy - ex # trace of strain rate tensor is invariant 121 exy = - 0.5 * (exx - eyy) * np.sin(2. * velangle) + exy * np.cos(2. * velangle) 122 a = ey / ex 123 b = exy / ex 124 sigxx = abs(ex)**(1. / n - 1.) * ex / ((1. + a + a**2 + b**2)**((n - 1.) / (2. * n))) * B 125 else: 126 raise ValueError('argument passed to "coordsys" not valid') 127 128 # a < - 1 in areas of strong lateral compression or longitudinal compression and 129 # theta flips sign at a = - 2 130 pos = np.nonzero(np.abs((np.abs(a) - 2.)) < 1.e-3) 131 if len(pos) > 0: 132 print(('Warning: ', len(pos), ' vertices have alpha within 1e-3 of - 2')) 133 a[pos] = -2 + 1e-3 134 135 if eq == 'Weertman1D': 136 theta = 1. / 8 137 a = np.zeros((md.mesh.numberofvertices, )) 138 elif eq == 'Weertman2D': 139 theta = 1. / 9 140 a = np.ones((md.mesh.numberofvertices, )) 141 elif eq == 'Thomas': 142 theta = ((1. + a + a**2 + b**2)**((n - 1.) / 2.)) / (np.abs(2. + a)**n) 143 else: 144 raise ValueError('argument passed to "eq" not valid') 145 146 alpha = a 147 beta = b 148 149 return alpha, beta, theta, ex -
issm/trunk-jpl/src/m/mesh/ComputeHessian.py
r22865 r24213 4 4 import MatlabFuncs as m 5 5 6 def ComputeHessian(index,x,y,field,type):7 """8 COMPUTEHESSIAN - compute hessian matrix from a field9 6 10 Compute the hessian matrix of a given field 11 return the three components Hxx Hxy Hyy 12 for each element or each node 7 def ComputeHessian(index, x, y, field, type): 8 """ 9 COMPUTEHESSIAN - compute hessian matrix from a field 13 10 14 Usage: 15 hessian=ComputeHessian(index,x,y,field,type) 11 Compute the hessian matrix of a given field 12 return the three components Hxx Hxy Hyy 13 for each element or each node 16 14 17 Example: 18 hessian=ComputeHessian(md.mesh.elements,md.mesh.x,md.mesh.y,md.inversion.vel_obs,'node') 19 """ 15 Usage: 16 hessian = ComputeHessian(index, x, y, field, type) 20 17 21 #some variables 22 numberofnodes=np.size(x)23 numberofelements=np.size(index,axis=0) 18 Example: 19 hessian = ComputeHessian(md.mesh.elements, md.mesh.x, md.mesh.y, md.inversion.vel_obs, 'node') 20 """ 24 21 25 #some checks 26 if np.size(field)!=numberofnodes and np.size(field)!=numberofelements: 27 raise TypeError("ComputeHessian error message: the given field size not supported yet") 28 if not m.strcmpi(type,'node') and not m.strcmpi(type,'element'): 29 raise TypeError("ComputeHessian error message: only 'node' or 'element' type supported yet") 22 #some variables 23 numberofnodes = np.size(x) 24 numberofelements = np.size(index, axis=0) 30 25 31 #initialization 32 line=index.reshape(-1,order='F') 33 linesize=3*numberofelements 26 #some checks 27 if np.size(field) != numberofnodes and np.size(field) != numberofelements: 28 raise TypeError("ComputeHessian error message: the given field size not supported yet") 29 if not m.strcmpi(type, 'node') and not m.strcmpi(type, 'element'): 30 raise TypeError("ComputeHessian error message: only 'node' or 'element' type supported yet") 34 31 35 #get areas and nodal functions coefficients N(x,y)=alpha x + beta y + gamma 36 [alpha,beta,dum]=GetNodalFunctionsCoeff(index,x,y)37 areas=GetAreas(index,x,y) 32 #initialization 33 line = index.reshape(-1, order='F') 34 linesize = 3 * numberofelements 38 35 39 #compute weights that hold the volume of all the element holding the node i 40 weights=m.sparse(line,np.ones((linesize,1),dtype=int),np.tile(areas,(3,1)),numberofnodes,1) 36 #get areas and nodal functions coefficients N(x, y)=alpha x + beta y + gamma 37 [alpha, beta, dum] = GetNodalFunctionsCoeff(index, x, y) 38 areas = GetAreas(index, x, y) 41 39 42 #compute field on nodes if on elements 43 if np.size(field,axis=0)==numberofelements: 44 field=m.sparse(line,np.ones((linesize,1),dtype=int),np.tile(areas*field,(3,1)),numberofnodes,1)/weights 40 #compute weights that hold the volume of all the element holding the node i 41 weights = m.sparse(line, np.ones((linesize, 1), dtype=int), np.tile(areas, (3, 1)), numberofnodes, 1) 45 42 46 #Compute gradient for each element 47 grad_elx=np.sum(field[index-1]*alpha,axis=1) 48 grad_ely=np.sum(field[index-1]*beta,axis=1) 43 #compute field on nodes if on elements 44 if np.size(field, axis=0) == numberofelements: 45 field = m.sparse(line, np.ones((linesize, 1), dtype=int), np.tile(areas * field, (3, 1)), numberofnodes, 1) / weights 49 46 50 #Compute gradient for each node (average of the elements around) 51 gradx=m.sparse(line,np.ones((linesize,1),dtype=int),np.tile((areas*grad_elx),(3,1)),numberofnodes,1) 52 grady=m.sparse(line,np.ones((linesize,1),dtype=int),np.tile((areas*grad_ely),(3,1)),numberofnodes,1) 53 gradx=gradx/weights 54 grady=grady/weights 47 #Compute gradient for each element 48 grad_elx = np.sum(field[index - 1] * alpha, axis=1) 49 grad_ely = np.sum(field[index - 1] * beta, axis=1) 55 50 56 #Compute hessian for each element 57 hessian=np.vstack((np.sum(gradx[index-1,0]*alpha,axis=1),np.sum(grady[index-1,0]*alpha,axis=1),np.sum(grady[index-1,0]*beta,axis=1))).T 51 #Compute gradient for each node (average of the elements around) 52 gradx = m.sparse(line, np.ones((linesize, 1), dtype=int), np.tile((areas * grad_elx), (3, 1)), numberofnodes, 1) 53 grady = m.sparse(line, np.ones((linesize, 1), dtype=int), np.tile((areas * grad_ely), (3, 1)), numberofnodes, 1) 54 gradx = gradx / weights 55 grady = grady / weights 58 56 59 if m.strcmpi(type,'node'): 60 #Compute Hessian on the nodes (average of the elements around) 61 hessian=np.hstack((m.sparse(line,np.ones((linesize,1),dtype=int),np.tile((areas*hessian[:,0]),(3,1)),numberofnodes,1)/weights, 62 m.sparse(line,np.ones((linesize,1),dtype=int),np.tile((areas*hessian[:,1]),(3,1)),numberofnodes,1)/weights, 63 m.sparse(line,np.ones((linesize,1),dtype=int),np.tile((areas*hessian[:,2]),(3,1)),numberofnodes,1)/weights )) 57 #Compute hessian for each element 58 hessian = np.vstack((np.sum(gradx[index - 1, 0] * alpha, axis=1), np.sum(grady[index - 1, 0] * alpha, axis=1), np.sum(grady[index - 1, 0] * beta, axis=1))).T 64 59 65 return hessian 60 if m.strcmpi(type, 'node'): 61 #Compute Hessian on the nodes (average of the elements around) 62 hessian = np.hstack((m.sparse(line, np.ones((linesize, 1), dtype=int), np.tile((areas * hessian[:, 0]), (3, 1)), numberofnodes, 1) / weights, 63 m.sparse(line, np.ones((linesize, 1), dtype=int), np.tile((areas * hessian[:, 1]), (3, 1)), numberofnodes, 1) / weights, 64 m.sparse(line, np.ones((linesize, 1), dtype=int), np.tile((areas * hessian[:, 2]), (3, 1)), numberofnodes, 1) / weights)) 65 66 return hessian -
issm/trunk-jpl/src/m/mesh/ComputeMetric.py
r23716 r24213 1 1 import numpy as np 2 2 3 def ComputeMetric(hessian,scale,epsilon,hmin,hmax,pos):4 """5 COMPUTEMETRIC - compute metric from an Hessian6 3 7 Usage:8 metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,pos) 9 pos is contains the positions where the metric is wished to be maximized (water?) 4 def ComputeMetric(hessian, scale, epsilon, hmin, hmax, pos): 5 """ 6 COMPUTEMETRIC - compute metric from an Hessian 10 7 11 Example:12 metric=ComputeMetric(hessian,2/9,10^-1,100,10^5,[])13 """ 8 Usage: 9 metric = ComputeMetric(hessian, scale, epsilon, hmin, hmax, pos) 10 pos is contains the positions where the metric is wished to be maximized (water?) 14 11 15 #first, find the eigen values of each line of H=[hessian(i,1) hessian(i,2); hessian(i,2) hessian(i,3)] 16 a=hessian[:,0] 17 b=hessian[:,1] 18 d=hessian[:,2] 19 lambda1=0.5*((a+d)+np.sqrt(4.*b**2+(a-d)**2)) 20 lambda2=0.5*((a+d)-np.sqrt(4.*b**2+(a-d)**2)) 21 pos1=np.nonzero(lambda1==0.)[0] 22 pos2=np.nonzero(lambda2==0.)[0] 23 pos3=np.nonzero(np.logical_and(b==0.,lambda1==lambda2))[0] 12 Example: 13 metric = ComputeMetric(hessian, 2 / 9, 10^ - 1, 100, 10^5, []) 14 """ 24 15 25 #Modify the eigen values to control the shape of the elements 26 lambda1=np.minimum(np.maximum(np.abs(lambda1)*scale/epsilon,1./hmax**2),1./hmin**2) 27 lambda2=np.minimum(np.maximum(np.abs(lambda2)*scale/epsilon,1./hmax**2),1./hmin**2) 16 #first, find the eigen values of each line of H = [hessian(i, 1) hessian(i, 2); hessian(i, 2) hessian(i, 3)] 17 a = hessian[:, 0] 18 b = hessian[:, 1] 19 d = hessian[:, 2] 20 lambda1 = 0.5 * ((a + d) + np.sqrt(4. * b**2 + (a - d)**2)) 21 lambda2 = 0.5 * ((a + d) - np.sqrt(4. * b**2 + (a - d)**2)) 22 pos1 = np.nonzero(lambda1 == 0.)[0] 23 pos2 = np.nonzero(lambda2 == 0.)[0] 24 pos3 = np.nonzero(np.logical_and(b == 0., lambda1 == lambda2))[0] 28 25 29 #compute eigen vectors 30 norm1=np.sqrt(8.*b**2+2.*(d-a)**2+2.*(d-a)*np.sqrt((a-d)**2+4.*b**2)) 31 v1x=2.*b/norm1 32 v1y=((d-a)+np.sqrt((a-d)**2+4.*b**2))/norm1 33 norm2=np.sqrt(8.*b**2+2.*(d-a)**2-2.*(d-a)*np.sqrt((a-d)**2+4.*b**2)) 34 v2x=2.*b/norm2 35 v2y=((d-a)-np.sqrt((a-d)**2+4.*b**2))/norm2 26 #Modify the eigen values to control the shape of the elements 27 lambda1 = np.minimum(np.maximum(np.abs(lambda1) * scale / epsilon, 1. / hmax**2), 1. / hmin**2) 28 lambda2 = np.minimum(np.maximum(np.abs(lambda2) * scale / epsilon, 1. / hmax**2), 1. / hmin**2) 36 29 37 v1x[pos3]=1. 38 v1y[pos3]=0. 39 v2x[pos3]=0. 40 v2y[pos3]=1. 30 #compute eigen vectors 31 norm1 = np.sqrt(8. * b**2 + 2. * (d - a)**2 + 2. * (d - a) * np.sqrt((a - d)**2 + 4. * b**2)) 32 v1x = 2. * b / norm1 33 v1y = ((d - a) + np.sqrt((a - d)**2 + 4. * b**2)) / norm1 34 norm2 = np.sqrt(8. * b**2 + 2. * (d - a)**2 - 2. * (d - a) * np.sqrt((a - d)**2 + 4. * b**2)) 35 v2x = 2. * b / norm2 36 v2y = ((d - a) - np.sqrt((a - d)**2 + 4. * b**2)) / norm2 41 37 42 #Compute new metric (for each node M=V*Lambda*V^-1) 43 metric=np.vstack((((v1x*v2y-v1y*v2x)**(-1)*( lambda1*v2y*v1x-lambda2*v1y*v2x)).reshape(-1,), 44 ((v1x*v2y-v1y*v2x)**(-1)*( lambda1*v1y*v2y-lambda2*v1y*v2y)).reshape(-1,), 45 ((v1x*v2y-v1y*v2x)**(-1)*(-lambda1*v2x*v1y+lambda2*v1x*v2y)).reshape(-1,))).T 38 v1x[pos3] = 1. 39 v1y[pos3] = 0. 40 v2x[pos3] = 0. 41 v2y[pos3] = 1. 46 42 47 #some corrections for 0 eigen values 48 metric[pos1,:]=np.tile(np.array([[1./hmax**2,0.,1./hmax**2]]),(np.size(pos1),1)) 49 metric[pos2,:]=np.tile(np.array([[1./hmax**2,0.,1./hmax**2]]),(np.size(pos2),1)) 43 #Compute new metric (for each node M = V * Lambda * V^ - 1) 50 44 51 #take care of water elements 52 metric[pos ,:]=np.tile(np.array([[1./hmax**2,0.,1./hmax**2]]),(np.size(pos ),1)) 45 metric = np.vstack((((v1x * v2y - v1y * v2x)**(- 1) * (lambda1 * v2y * v1x - lambda2 * v1y * v2x)).reshape(- 1, ), 46 ((v1x * v2y - v1y * v2x)**(- 1) * (lambda1 * v1y * v2y - lambda2 * v1y * v2y)).reshape(- 1, ), 47 ((v1x * v2y - v1y * v2x)**(- 1) * (- lambda1 * v2x * v1y + lambda2 * v1x * v2y)).reshape(- 1, ))).T 53 48 54 #take care of NaNs if any (use Numpy eig in a loop) 55 pos=np.nonzero(np.isnan(metric))[0] 56 if np.size(pos): 57 print((" %i NaN found in the metric. Use Numpy routine..." % np.size(pos))) 58 for posi in pos: 59 H=np.array([[hessian[posi,0],hessian[posi,1]],[hessian[posi,1],hessian[posi,2]]]) 60 [v,u]=np.linalg.eig(H) 61 v=np.diag(v) 62 lambda1=v[0,0] 63 lambda2=v[1,1] 64 v[0,0]=np.minimum(np.maximum(np.abs(lambda1)*scale/epsilon,1./hmax**2),1./hmin**2) 65 v[1,1]=np.minimum(np.maximum(np.abs(lambda2)*scale/epsilon,1./hmax**2),1./hmin**2) 49 #some corrections for 0 eigen values 50 metric[pos1, :] = np.tile(np.array([[1. / hmax**2, 0., 1. / hmax**2]]), (np.size(pos1), 1)) 51 metric[pos2, :] = np.tile(np.array([[1. / hmax**2, 0., 1. / hmax**2]]), (np.size(pos2), 1)) 66 52 67 metricTria=np.dot(np.dot(u,v),np.linalg.inv(u)) 68 metric[posi,:]=np.array([metricTria[0,0],metricTria[0,1],metricTria[1,1]])53 #take care of water elements 54 metric[pos, :] = np.tile(np.array([[1. / hmax**2, 0., 1. / hmax**2]]), (np.size(pos), 1)) 69 55 70 if np.any(np.isnan(metric)): 71 raise RunTimeError("ComputeMetric error message: NaN in the metric despite our efforts...") 56 #take care of NaNs if any (use Numpy eig in a loop) 57 pos = np.nonzero(np.isnan(metric))[0] 58 if np.size(pos): 59 print((" %i NaN found in the metric. Use Numpy routine..." % np.size(pos))) 60 for posi in pos: 61 H = np.array([[hessian[posi, 0], hessian[posi, 1]], [hessian[posi, 1], hessian[posi, 2]]]) 62 [v, u] = np.linalg.eig(H) 63 v = np.diag(v) 64 lambda1 = v[0, 0] 65 lambda2 = v[1, 1] 66 v[0, 0] = np.minimum(np.maximum(np.abs(lambda1) * scale / epsilon, 1. / hmax**2), 1. / hmin**2) 67 v[1, 1] = np.minimum(np.maximum(np.abs(lambda2) * scale / epsilon, 1. / hmax**2), 1. / hmin**2) 72 68 73 return metric 69 metricTria = np.dot(np.dot(u, v), np.linalg.inv(u)) 70 metric[posi, :] = np.array([metricTria[0, 0], metricTria[0, 1], metricTria[1, 1]]) 74 71 72 if np.any(np.isnan(metric)): 73 raise RunTimeError("ComputeMetric error message: NaN in the metric despite our efforts...") 74 75 return metric -
issm/trunk-jpl/src/m/mesh/ElementsFromEdge.py
r21303 r24213 2 2 import PythonFuncs as p 3 3 4 def ElementsFromEdge(elements,A,B):5 """6 ELEMENTSFROMEDGE: find elements connected to one edge defined by nodes A and B7 4 8 Usage: edgeelements=ElementsFromEdge(elements,A,B) 5 def ElementsFromEdge(elements, A, B): 6 """ 7 ELEMENTSFROMEDGE: find elements connected to one edge defined by nodes A and B 9 8 10 Eg: edgeelements=ElementsFromEdge(md.mesh.elements,tip1,tip2)9 Usage: edgeelements = ElementsFromEdge(elements, A, B) 11 10 12 """ 11 Eg: edgeelements = ElementsFromEdge(md.mesh.elements, tip1, tip2) 13 12 14 edgeelements=np.nonzero(\ 15 p.logical_or_n(np.logical_and(elements[:,0]==A,elements[:,1]==B), \ 16 np.logical_and(elements[:,0]==A,elements[:,2]==B), \ 17 np.logical_and(elements[:,1]==A,elements[:,2]==B), \ 18 np.logical_and(elements[:,1]==A,elements[:,0]==B), \ 19 np.logical_and(elements[:,2]==A,elements[:,0]==B), \ 20 np.logical_and(elements[:,2]==A,elements[:,1]==B), \ 21 ))[0]+1 13 """ 22 14 23 return edgeelements 15 edgeelements = np.nonzero( 16 p.logical_or_n(np.logical_and(elements[:, 0] == A, elements[:, 1] == B), 17 np.logical_and(elements[:, 0] == A, elements[:, 2] == B), 18 np.logical_and(elements[:, 1] == A, elements[:, 2] == B), 19 np.logical_and(elements[:, 1] == A, elements[:, 0] == B), 20 np.logical_and(elements[:, 2] == A, elements[:, 0] == B), 21 np.logical_and(elements[:, 2] == A, elements[:, 1] == B)))[0] + 1 24 22 23 return edgeelements -
issm/trunk-jpl/src/m/mesh/GetNodalFunctionsCoeff.py
r24115 r24213 7 7 8 8 Compute the coefficients alpha beta and optionaly gamma of 9 2d triangular elements. For each element, 9 2d triangular elements. For each element, the nodal function 10 10 is defined as: 11 N(x, y)=sum(i =1:3) alpha_i * x + beta_i * y + gamma_i11 N(x, y)=sum(i = 1:3) alpha_i * x + beta_i * y + gamma_i 12 12 13 13 Usage: 14 [alpha beta] =GetNodalFunctionsCoeff(index, x, y);15 [alpha beta gamma] =GetNodalFunctionsCoeff(index, x, y);14 [alpha beta] = GetNodalFunctionsCoeff(index, x, y) 15 [alpha beta gamma] = GetNodalFunctionsCoeff(index, x, y) 16 16 17 17 Example: 18 [alpha beta gamma] =GetNodalFunctionsCoeff(md.mesh.elements, md.mesh.x, md.mesh.y);18 [alpha beta gamma] = GetNodalFunctionsCoeff(md.mesh.elements, md.mesh.x, md.mesh.y) 19 19 """ 20 20 21 21 #make columns out of x and y 22 x = x.reshape(- 1)23 y = y.reshape(- 1)22 x = x.reshape(- 1) 23 y = y.reshape(- 1) 24 24 25 25 #get nels and nods … … 39 39 beta = np.zeros((nels, 3)) 40 40 41 #compute nodal functions coefficients N(x, y) = alpha x + beta y + gamma41 #compute nodal functions coefficients N(x, y) = alpha x + beta y + gamma 42 42 x1 = x[index[:, 0] - 1] 43 43 x2 = x[index[:, 1] - 1] … … 49 49 50 50 #get alpha and beta 51 alpha = np.vstack(((invdet * (y2 - y3)).reshape(- 1,), (invdet * (y3 - y1)).reshape(-1,), (invdet * (y1 - y2)).reshape(-1,))).T52 beta = np.vstack(((invdet * (x3 - x2)).reshape(- 1,), (invdet * (x1 - x3)).reshape(-1,), (invdet * (x2 - x1)).reshape(-1,))).T51 alpha = np.vstack(((invdet * (y2 - y3)).reshape(- 1, ), (invdet * (y3 - y1)).reshape(- 1, ), (invdet * (y1 - y2)).reshape(- 1, ))).T 52 beta = np.vstack(((invdet * (x3 - x2)).reshape(- 1, ), (invdet * (x1 - x3)).reshape(- 1, ), (invdet * (x2 - x1)).reshape(- 1, ))).T 53 53 54 54 #get gamma if requested 55 55 gamma = np.zeros((nels, 3)) 56 gamma = np.vstack(((invdet * (x2 * y3 - x3 * y2)).reshape(- 1,), (invdet * (y1 * x3 - y3 * x1)).reshape(-1,), (invdet * (x1 * y2 - x2 * y1)).reshape(-1,))).T56 gamma = np.vstack(((invdet * (x2 * y3 - x3 * y2)).reshape(- 1, ), (invdet * (y1 * x3 - y3 * x1)).reshape(- 1, ), (invdet * (x1 * y2 - x2 * y1)).reshape(- 1, ))).T 57 57 58 58 return alpha, beta, gamma -
issm/trunk-jpl/src/m/mesh/bamg.py
r24115 r24213 9 9 from bamgmesh import bamgmesh 10 10 from expread import expread 11 from expwrite import expwrite12 11 from SegIntersect import SegIntersect 13 12 import MatlabFuncs as m … … 20 19 BAMG - mesh generation 21 20 22 Available options (for more details see ISSM website http: / /issm.jpl.nasa.gov / ):23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 21 Available options (for more details see ISSM website http: / / issm.jpl.nasa.gov / ): 22 23 - domain : followed by an ARGUS file that prescribes the domain outline 24 - holes : followed by an ARGUS file that prescribes the holes 25 - subdomains : followed by an ARGUS file that prescribes the list of 26 subdomains (that need to be inside domain) 27 28 - hmin : minimum edge length (default is 10^ - 100) 29 - hmax : maximum edge length (default is 10^100) 30 - hVertices : imposed edge length for each vertex (geometry or mesh) 31 - hminVertices : minimum edge length for each vertex (mesh) 32 - hmaxVertices : maximum edge length for each vertex (mesh) 33 34 - anisomax : maximum ratio between the smallest and largest edges (default is 10^30) 35 - coeff : coefficient applied to the metric (2 - > twice as many elements, default is 1) 36 - cutoff : scalar used to compute the metric when metric type 2 or 3 are applied 37 - err : error used to generate the metric from a field 38 - errg : geometric error (default is 0.1) 39 - field : field of the model that will be used to compute the metric 41 40 to apply several fields, use one column per field 42 43 44 45 46 47 48 49 41 - gradation : maximum ratio between two adjacent edges 42 - Hessiantype : 0 - > use double P2 projection (default) 43 1 - > use Green formula 44 - KeepVertices : try to keep initial vertices when adaptation is done on an existing mesh (default 1) 45 - maxnbv : maximum number of vertices used to allocate memory (default is 10^6) 46 - maxsubdiv : maximum subdivision of exisiting elements (default is 10) 47 - metric : matrix (numberofnodes x 3) used as a metric 48 - Metrictype : 1 - > absolute error c / (err coeff^2) * Abs(H) (default) 50 49 2 - > relative error c / (err coeff^2) * Abs(H) / max(s, cutoff * max(s)) 51 50 3 - > rescaled absolute error c / (err coeff^2) * Abs(H) / (smax - smin) 52 53 54 55 56 57 58 59 60 61 62 63 51 - nbjacoby : correction used by Hessiantype = 1 (default is 1) 52 - nbsmooth : number of metric smoothing procedure (default is 3) 53 - omega : relaxation parameter of the smoothing procedure (default is 1.8) 54 - power : power applied to the metric (default is 1) 55 - splitcorners : split triangles whuch have 3 vertices on the outline (default is 1) 56 - verbose : level of verbosity (default is 1) 57 58 - rifts : followed by an ARGUS file that prescribes the rifts 59 - toltip : tolerance to move tip on an existing point of the domain outline 60 - tracks : followed by an ARGUS file that prescribes the tracks that the mesh will stick to 61 - RequiredVertices : mesh vertices that are required. [x, y, ref]; ref is optional 62 - tol : if the distance between 2 points of the domain outline is less than tol, they 64 63 will be merged 65 64 … … 80 79 81 80 subdomain_ref = 1 82 hole_ref = 183 81 84 82 # Bamg Geometry parameters {{{ … … 108 106 #Check orientation 109 107 nods = domaini['nods'] - 1 #the domain are closed 1 = end 110 111 108 test = np.sum((domaini['x'][1:nods + 1] - domaini['x'][0:nods]) * (domaini['y'][1:nods + 1] + domaini['y'][0:nods])) 112 109 if (i == 0 and test > 0) or (i > 0 and test < 0): 113 print('At least one contour was not correctly oriented and has been re -oriented')110 print('At least one contour was not correctly oriented and has been re-oriented') 114 111 domaini['x'] = np.flipud(domaini['x']) 115 112 domaini['y'] = np.flipud(domaini['y']) 116 113 117 114 #Add all points to bamg_geometry 118 nods = domaini['nods'] - 1 115 nods = domaini['nods'] - 1 #the domain are closed 0 = end 119 116 bamg_geometry.Vertices = np.vstack((bamg_geometry.Vertices, np.vstack((domaini['x'][0:nods], domaini['y'][0:nods], np.ones((nods)))).T)) 120 117 bamg_geometry.Edges = np.vstack((bamg_geometry.Edges, np.vstack((np.arange(count + 1, count + nods + 1), np.hstack((np.arange(count + 2, count + nods + 1), count + 1)), 1. * np.ones((nods)))).T)) … … 153 150 test = np.sum((holei['x'][1:nods + 1] - holei['x'][0:nods]) * (holei['y'][1:nods + 1] + holei['y'][0:nods])) 154 151 if test < 0: 155 print('At least one hole was not correctly oriented and has been re -oriented')152 print('At least one hole was not correctly oriented and has been re-oriented') 156 153 holei['x'] = np.flipud(holei['x']) 157 154 holei['y'] = np.flipud(holei['y']) 158 155 159 156 #Add all points to bamg_geometry 160 nods = holei['nods'] - 1 157 nods = holei['nods'] - 1 #the hole are closed 0 = end 161 158 bamg_geometry.Vertices = np.vstack((bamg_geometry.Vertices, np.vstack((holei['x'][0:nods], holei['y'][0:nods], np.ones((nods)))).T)) 162 159 bamg_geometry.Edges = np.vstack((bamg_geometry.Edges, np.vstack((np.arange(count + 1, count + nods + 1), np.hstack((np.arange(count + 2, count + nods + 1), count + 1)), 1. * np.ones((nods)))).T)) … … 191 188 test = np.sum((subdomaini['x'][1:nods + 1] - subdomaini['x'][0:nods]) * (subdomaini['y'][1:nods + 1] + subdomaini['y'][0:nods])) 192 189 if test > 0: 193 print('At least one subcontour was not correctly oriented and has been re -oriented')190 print('At least one subcontour was not correctly oriented and has been re-oriented') 194 191 subdomaini['x'] = np.flipud(subdomaini['x']) 195 192 subdomaini['y'] = np.flipud(subdomaini['y']) 196 193 197 194 #Add all points to bamg_geometry 198 nods = subdomaini['nods'] - 1 195 nods = subdomaini['nods'] - 1 #the subdomain are closed 0 = end 199 196 bamg_geometry.Vertices = np.vstack((bamg_geometry.Vertices, np.vstack((subdomaini['x'][0:nods], subdomaini['y'][0:nods], np.ones((nods)))).T)) 200 197 bamg_geometry.Edges = np.vstack((bamg_geometry.Edges, np.vstack((np.arange(count + 1, count + nods + 1), np.hstack((np.arange(count + 2, count + nods + 1), count + 1)), 1. * np.ones((nods)))).T)) … … 218 215 219 216 for i, rifti in enumerate(rift): 220 221 217 #detect whether all points of the rift are inside the domain 222 218 flags = ContourToNodes(rifti['x'], rifti['y'], domain[0], 0)[0] … … 227 223 #We LOTS of work to do 228 224 print("Rift tip outside of or on the domain has been detected and is being processed...") 229 230 225 #check that only one point is outside (for now) 231 226 if np.sum(np.logical_not(flags).astype(int)) != 1: … … 255 250 256 251 #rift is crossing edge [i1 i2] of the domain 257 #Get coordinate of intersection point (http: / / mathworld.wolfram.com / Line -LineIntersection.html)252 #Get coordinate of intersection point (http: / / mathworld.wolfram.com / Line-LineIntersection.html) 258 253 x3 = domain[0]['x'][i1] 259 254 y3 = domain[0]['y'][i1] … … 285 280 np.hstack((np.arange(count + 1, count + nods).reshape(- 1, ), np.arange(count + 2, count + nods + 1).reshape(- 1, ), (1 + i) * np.ones((nods - 1, 1)))))) 286 281 count += nods 287 288 282 break 289 283 … … 309 303 np.hstack((np.arange(count + 1, count + nods).reshape(- 1, ), np.arange(count + 2, count + nods + 1).reshape(- 1, ), (1 + i) * np.ones((nods - 1, 1)))))) 310 304 count += nods 311 312 305 break 313 306 … … 327 320 track = np.hstack((A.x.reshape(- 1, ), A.y.reshape(- 1, ))) 328 321 else: 329 track = float(track) 330 if np.size(track, axis =1) == 2:331 track = np.hstack((track, 3. * np.ones((size(track, axis =0), 1))))322 track = float(track) #for some reason, it is of class "single" 323 if np.size(track, axis=1) == 2: 324 track = np.hstack((track, 3. * np.ones((size(track, axis=0), 1)))) 332 325 333 326 #only keep those inside … … 336 329 337 330 #Add all points to bamg_geometry 338 nods = np.size(track, axis =0)331 nods = np.size(track, axis=0) 339 332 bamg_geometry.Vertices = np.vstack((bamg_geometry.Vertices, track)) 340 bamg_geometry.Edges = np.vstack((bamg_geometry.Edges, np.hstack((np.arange(count + 1, count + nods).reshape(- 1, ), np.arange(count + 2, count + nods + 1).reshape(-1, ), 3. * np.ones((nods - 1, 1))))))333 bamg_geometry.Edges = np.vstack((bamg_geometry.Edges, np.hstack((np.arange(count + 1, count + nods).reshape(- 1, ), np.arange(count + 2, count + nods + 1).reshape(- 1, ), 3. * np.ones((nods - 1, 1)))))) 341 334 342 335 #update counter … … 347 340 348 341 #recover RequiredVertices 349 requiredvertices = options.getfieldvalue('RequiredVertices') 350 if np.size(requiredvertices, axis =1) == 2:351 requiredvertices = np.hstack((requiredvertices, 4. * np.ones((np.size(requiredvertices, axis =0), 1))))342 requiredvertices = options.getfieldvalue('RequiredVertices') #for some reason, it is of class "single" 343 if np.size(requiredvertices, axis=1) == 2: 344 requiredvertices = np.hstack((requiredvertices, 4. * np.ones((np.size(requiredvertices, axis=0), 1)))) 352 345 353 346 #only keep those inside … … 355 348 requiredvertices = requiredvertices[np.nonzero(flags)[0], :] 356 349 #Add all points to bamg_geometry 357 nods = np.size(requiredvertices, axis =0)350 nods = np.size(requiredvertices, axis=0) 358 351 bamg_geometry.Vertices = np.vstack((bamg_geometry.Vertices, requiredvertices)) 359 352 … … 361 354 count += nods 362 355 363 #process geom 364 #bamg_geometry = processgeometry(bamg_geometry, options.getfieldvalue('tol', float(nan)), domain[0]) 365 356 #process geom 357 #bamg_geometry = processgeometry(bamg_geometry, options.getfieldvalue('tol', float(nan)), domain[0]) 366 358 elif isinstance(md.private.bamg, dict) and 'geometry' in md.private.bamg: 367 359 bamg_geometry = bamggeom(md.private.bamg['geometry'].__dict__) … … 386 378 bamg_options['anisomax'] = options.getfieldvalue('anisomax', 10.**18) 387 379 bamg_options['coeff'] = options.getfieldvalue('coeff', 1.) 388 bamg_options['cutoff'] = options.getfieldvalue('cutoff', 10.**- 5)380 bamg_options['cutoff'] = options.getfieldvalue('cutoff', 10.**- 5) 389 381 bamg_options['err'] = options.getfieldvalue('err', np.array([[0.01]])) 390 382 bamg_options['errg'] = options.getfieldvalue('errg', 0.1) … … 392 384 bamg_options['gradation'] = options.getfieldvalue('gradation', 1.5) 393 385 bamg_options['Hessiantype'] = options.getfieldvalue('Hessiantype', 0) 394 bamg_options['hmin'] = options.getfieldvalue('hmin', 10.**- 100)386 bamg_options['hmin'] = options.getfieldvalue('hmin', 10.**- 100) 395 387 bamg_options['hmax'] = options.getfieldvalue('hmax', 10.**100) 396 388 bamg_options['hminVertices'] = options.getfieldvalue('hminVertices', np.empty((0, 1))) … … 483 475 484 476 485 def processgeometry(geom, tol, outline): # {{{ 486 477 def processgeometry(geom, tol, outline): # {{{ 487 478 raise RuntimeError("bamg.py / processgeometry is not complete.") 488 479 #Deal with edges … … 500 491 color1 = geom.Edges[i, 2] 501 492 502 j = i 493 j = i #test edges located AFTER i only 503 494 while (j < np.size(geom.Edges, axis=0)): 504 495 #edge counter … … 519 510 if SegIntersect(np.array([[x1, y1], [x2, y2]]), np.array([[x3, y3], [x4, y4]])): 520 511 521 #Get coordinate of intersection point (http: / / mathworld.wolfram.com / Line -LineIntersection.html)512 #Get coordinate of intersection point (http: / / mathworld.wolfram.com / Line-LineIntersection.html) 522 513 x = np.linalg.det(np.array([np.linalg.det(np.array([[x1, y1], [x2, y2]])), x1 - x2], [np.linalg.det(np.array([[x3, y3], [x4, y4]])), x3 - x4]) / np.linalg.det(np.array([[x1 - x2, y1 - y2], [x3 - x4, y3 - y4]]))) 523 514 y = np.linalg.det(np.array([np.linalg.det(np.array([[x1, y1], [x2, y2]])), y1 - y2], [np.linalg.det(np.array([[x3, y3], [x4, y4]])), y3 - y4]) / np.linalg.det(np.array([[x1 - x2, y1 - y2], [x3 - x4, y3 - y4]]))) … … 556 547 #Remove points from list of Vertices 557 548 num += 1 558 geom.Vertices[i, :] =[]549 geom.Vertices[i, :] = [] 559 550 560 551 #update edges 561 552 posedges = np.nonzero(geom.Edges == i) 562 geom.Edges[posedges[0], :] =[]553 geom.Edges[posedges[0], :] = [] 563 554 posedges = np.nonzero(geom.Edges > i) 564 555 geom.Edges[posedges] = geom.Edges[posedges] - 1 … … 598 589 599 590 %Remove points from list of Vertices 600 geom.Vertices(j, :) =[]591 geom.Vertices(j, :) = [] 601 592 602 593 %update edges … … 614 605 end 615 606 %remove empty edges 616 geom.Edges(find(geom.Edges(:, 1) == geom.Edges(:, 2)), :) =[]607 geom.Edges(find(geom.Edges(:, 1) == geom.Edges(:, 2)), :) = [] 617 608 """ 618 609 return geom 619 # }}}610 # }}} -
issm/trunk-jpl/src/m/mesh/bamgflowband.py
r22274 r24213 1 import numpy as 1 import numpy as np 2 2 from model import * 3 3 from collections import OrderedDict … … 5 5 from mesh2dvertical import * 6 6 7 def bamgflowband(md,x,surf,base,*args):8 """9 BAMGFLOWBAND - create flowband mesh with bamg10 7 11 Usage: 12 md=bamgflowband(md,x,surf,base,OPTIONS) 8 def bamgflowband(md, x, surf, base, *args): 9 """ 10 BAMGFLOWBAND - create flowband mesh with bamg 13 11 14 surf and bed are the surface elevation and base for each x provided 15 x must be increasing 16 OPTIONS are bamg options 12 Usage: 13 md = bamgflowband(md, x, surf, base, OPTIONS) 17 14 18 Example: 19 x =np.arrange(1,3001,100) 20 h=linspace(1000,300,numel(x)) 21 b=-917/1023*h 22 md=bamgflowband(model,b+h,b,'hmax',80,'vertical',1,'Markers',m) 23 """ 15 surf and bed are the surface elevation and base for each x provided 16 x must be increasing 17 OPTIONS are bamg options 24 18 25 #Write expfile with domain outline 26 A = OrderedDict() 27 A['x'] = np.concatenate((x,np.flipud(x),[x[0]])) 28 A['y'] = np.concatenate((base,np.flipud(surf),[base[0]])) 29 A['nods'] = np.size(A['x']) 19 Example: 20 x =np.arrange(1, 3001, 100) 21 h = linspace(1000, 300, numel(x)) 22 b= - 917 / 1023 * h 23 md = bamgflowband(model, b + h, b, 'hmax', 80, 'vertical', 1, 'Markers', m) 24 """ 30 25 31 #markers: 32 m = np.ones((np.size(A['x'])-1,)) # base = 1 33 m[np.size(x) - 1] = 2 # right side = 2 34 m[np.size(x):2 * np.size(x) - 1] = 3 # top surface = 3 35 m[2 * np.size(x) - 1] = 4 # left side = 4 26 #Write expfile with domain outline 27 A = OrderedDict() 28 A['x'] = np.concatenate((x, np.flipud(x), [x[0]])) 29 A['y'] = np.concatenate((base, np.flipud(surf), [base[0]])) 30 A['nods'] = np.size(A['x']) 36 31 37 #mesh domain 38 md = bamg(model(),'domain',[A],'vertical',1,'Markers',m,*args) 39 #print md.mesh.numberofvertices 32 #markers: 33 m = np.ones((np.size(A['x']) - 1, )) # base = 1 34 m[np.size(x) - 1] = 2 # right side = 2 35 m[np.size(x):2 * np.size(x) - 1] = 3 # top surface = 3 36 m[2 * np.size(x) - 1] = 4 # left side = 4 40 37 41 #Deal with vertices on bed 42 md.mesh.vertexonbase = np.zeros((md.mesh.numberofvertices,)) 43 md.mesh.vertexonbase[np.where(md.mesh.vertexflags(1))] = 1 44 md.mesh.vertexonsurface = np.zeros((md.mesh.numberofvertices,)) 45 md.mesh.vertexonsurface[np.where(md.mesh.vertexflags(3))] = 1 38 #mesh domain 39 md = bamg(model(), 'domain', [A], 'vertical', 1, 'Markers', m, *args) 40 #print md.mesh.numberofvertices 46 41 47 return md 42 #Deal with vertices on bed 43 md.mesh.vertexonbase = np.zeros((md.mesh.numberofvertices, )) 44 md.mesh.vertexonbase[np.where(md.mesh.vertexflags(1))] = 1 45 md.mesh.vertexonsurface = np.zeros((md.mesh.numberofvertices, )) 46 md.mesh.vertexonsurface[np.where(md.mesh.vertexflags(3))] = 1 47 48 return md -
issm/trunk-jpl/src/m/mesh/meshconvert.py
r21303 r24213 1 1 import numpy as np 2 2 from collections import OrderedDict 3 from BamgConvertMesh import BamgConvertMesh 4 from mesh2d 3 from BamgConvertMesh import BamgConvertMesh 4 from mesh2d import mesh2d 5 5 from bamgmesh import bamgmesh 6 6 from bamggeom import bamggeom 7 7 8 def meshconvert(md,*args):9 """10 CONVERTMESH - convert mesh to bamg mesh11 8 12 Usage: 13 md=meshconvert(md); 14 md=meshconvert(md,index,x,y); 15 """ 9 def meshconvert(md, *args): 10 """ 11 CONVERTMESH - convert mesh to bamg mesh 16 12 17 if not len(args)==0 and not len(args)==3: 18 raise TypeError("meshconvert error message: bad usage") 13 Usage: 14 md = meshconvert(md) 15 md = meshconvert(md, index, x, y) 16 """ 19 17 20 if not len(args): 21 index = md.mesh.elements 22 x = md.mesh.x 23 y = md.mesh.y 24 else: 25 index = args[0] 26 x = args[1] 27 y = args[2] 18 if not len(args) == 0 and not len(args) == 3: 19 raise TypeError("meshconvert error message: bad usage") 28 20 29 #call Bamg 30 bamgmesh_out,bamggeom_out=BamgConvertMesh(index,x,y) 21 if not len(args): 22 index = md.mesh.elements 23 x = md.mesh.x 24 y = md.mesh.y 25 else: 26 index = args[0] 27 x = args[1] 28 y = args[2] 31 29 32 # plug results onto model 33 md.private.bamg = OrderedDict() 34 md.private.bamg['mesh'] = bamgmesh(bamgmesh_out) 35 md.private.bamg['geometry'] = bamggeom(bamggeom_out) 36 md.mesh = mesh2d() 37 md.mesh.x = bamgmesh_out['Vertices'][:,0].copy() 38 md.mesh.y = bamgmesh_out['Vertices'][:,1].copy() 39 md.mesh.elements = bamgmesh_out['Triangles'][:,0:3].astype(int) 40 md.mesh.edges = bamgmesh_out['IssmEdges'].astype(int) 41 md.mesh.segments = bamgmesh_out['IssmSegments'][:,0:3].astype(int) 42 md.mesh.segmentmarkers = bamgmesh_out['IssmSegments'][:,3].astype(int) 30 #call Bamg 31 bamgmesh_out, bamggeom_out = BamgConvertMesh(index, x, y) 43 32 44 #Fill in rest of fields: 45 md.mesh.numberofelements = np.size(md.mesh.elements,axis=0) 46 md.mesh.numberofvertices = np.size(md.mesh.x) 47 md.mesh.numberofedges = np.size(md.mesh.edges,axis=0) 48 md.mesh.vertexonboundary = np.zeros(md.mesh.numberofvertices,bool) 49 md.mesh.vertexonboundary[md.mesh.segments[:,0:2]-1] = True 33 # plug results onto model 34 md.private.bamg = OrderedDict() 35 md.private.bamg['mesh'] = bamgmesh(bamgmesh_out) 36 md.private.bamg['geometry'] = bamggeom(bamggeom_out) 37 md.mesh = mesh2d() 38 md.mesh.x = bamgmesh_out['Vertices'][:, 0].copy() 39 md.mesh.y = bamgmesh_out['Vertices'][:, 1].copy() 40 md.mesh.elements = bamgmesh_out['Triangles'][:, 0:3].astype(int) 41 md.mesh.edges = bamgmesh_out['IssmEdges'].astype(int) 42 md.mesh.segments = bamgmesh_out['IssmSegments'][:, 0:3].astype(int) 43 md.mesh.segmentmarkers = bamgmesh_out['IssmSegments'][:, 3].astype(int) 50 44 51 return md 45 #Fill in rest of fields: 46 md.mesh.numberofelements = np.size(md.mesh.elements, axis=0) 47 md.mesh.numberofvertices = np.size(md.mesh.x) 48 md.mesh.numberofedges = np.size(md.mesh.edges, axis=0) 49 md.mesh.vertexonboundary = np.zeros(md.mesh.numberofvertices, bool) 50 md.mesh.vertexonboundary[md.mesh.segments[:, 0:2] - 1] = True 52 51 52 return md -
issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py
r22806 r24213 6 6 import subprocess 7 7 8 def gmshplanet(*varargin):9 #GMSHPLANET - mesh generation for a sphere. Very specific code for gmsh. From demo/sphere.geo10 #11 # Available options (for more details see ISSM website http://issm.jpl.nasa.gov/):12 #13 # - radius: radius of the planet in km14 # - resolution: resolution in km15 # - refine: provide mesh16 # - refinemetric: mesh quantity to specify resolution17 #18 # Returns 'mesh3dsurface' type mesh19 #20 # Examples:21 # md.mesh=gmshplanet('radius',6000,'resolution',100);22 # md.mesh=gmshplanet('radius',6000,'resolution',100);23 8 24 #process options 25 options=pairoptions(*varargin) 26 #options=deleteduplicates(options,1) 9 def gmshplanet(* varargin): 10 #GMSHPLANET - mesh generation for a sphere. Very specific code for gmsh. From demo / sphere.geo 11 # 12 # Available options (for more details see ISSM website http: / / issm.jpl.nasa.gov / ): 13 # 14 # - radius: radius of the planet in km 15 # - resolution: resolution in km 16 # - refine: provide mesh 17 # - refinemetric: mesh quantity to specify resolution 18 # 19 # Returns 'mesh3dsurface' type mesh 20 # 21 # Examples: 22 # md.mesh = gmshplanet('radius', 6000, 'resolution', 100); 23 # md.mesh = gmshplanet('radius', 6000, 'resolution', 100); 27 24 28 #recover parameters: 29 radius=options.getfieldvalue('radius')*1000 30 resolution=options.getfieldvalue('resolution')*1000 25 #process options 26 options = pairoptions(* varargin) 27 #options = deleteduplicates(options, 1) 31 28 32 #initialize mesh: 33 mesh=mesh3dsurface() 29 #recover parameters: 30 radius = options.getfieldvalue('radius') * 1000 31 resolution = options.getfieldvalue('resolution') * 1000 34 32 35 #create .geo file: {{{ 36 fid=open('sphere.geo','w')33 #initialize mesh: 34 mesh = mesh3dsurface() 37 35 38 fid.write('Mesh.Algorithm = 1;\n') 39 if options.exist('refine'): 40 fid.write('Mesh.Algorithm = 7;\n') 41 fid.write('Mesh.CharacteristicLengthFromPoints= 0;\n') 42 fid.write('Mesh.SmoothRatio= 3;\n') 43 fid.write('Mesh.RemeshAlgorithm= 1;\n') 44 fid.write('resolution=%g;\n'%resolution) 45 fid.write('radius=%g;\n'%radius) 46 fid.write('Point(1) = {0.0,0.0,0.0,resolution};\n') 47 fid.write('Point(2) = {radius,0.0,0.0,resolution};\n') 48 fid.write('Point(3) = {0,radius,0.0,resolution};\n') 49 fid.write('Circle(1) = {2,1,3};\n') 50 fid.write('Point(4) = {-radius,0,0.0,resolution};\n') 51 fid.write('Point(5) = {0,-radius,0.0,resolution};\n') 52 fid.write('Circle(2) = {3,1,4};\n') 53 fid.write('Circle(3) = {4,1,5};\n') 54 fid.write('Circle(4) = {5,1,2};\n') 55 fid.write('Point(6) = {0,0,-radius,resolution};\n') 56 fid.write('Point(7) = {0,0,radius,resolution};\n') 57 fid.write('Circle(5) = {3,1,6};\n') 58 fid.write('Circle(6) = {6,1,5};\n') 59 fid.write('Circle(7) = {5,1,7};\n') 60 fid.write('Circle(8) = {7,1,3};\n') 61 fid.write('Circle(9) = {2,1,7};\n') 62 fid.write('Circle(10) = {7,1,4};\n') 63 fid.write('Circle(11) = {4,1,6};\n') 64 fid.write('Circle(12) = {6,1,2};\n') 65 fid.write('Line Loop(13) = {2,8,-10};\n') 66 fid.write('Surface(14) = {13};\n') 67 fid.write('Line Loop(15) = {10,3,7};\n') 68 fid.write('Surface(16) = {15};\n') 69 fid.write('Line Loop(17) = {-8,-9,1};\n') 70 fid.write('Surface(18) = {17};\n') 71 fid.write('Line Loop(19) = {-11,-2,5};\n') 72 fid.write('Surface(20) = {19};\n') 73 fid.write('Line Loop(21) = {-5,-12,-1};\n') 74 fid.write('Surface(22) = {21};\n') 75 fid.write('Line Loop(23) = {-3,11,6};\n') 76 fid.write('Surface(24) = {23};\n') 77 fid.write('Line Loop(25) = {-7,4,9};\n') 78 fid.write('Surface(26) = {25};\n') 79 fid.write('Line Loop(27) = {-4,12,-6};\n') 80 fid.write('Surface(28) = {27};\n') 81 fid.write('Surface Loop(29) = {28,26,16,14,20,24,22,18};\n') 82 fid.write('Volume(30) = {29};\n') 83 fid.write('Physical Surface(1) = {28,26,16,14,20,24,22,18};\n') 84 fid.write('Physical Volume(2) = 30;\n') 85 fid.close() 86 #}}} 36 #create .geo file: {{{ 37 fid = open('sphere.geo', 'w') 87 38 88 if options.exist('refine'): 89 meshini=options.getfieldvalue('refine') 90 metric=options.getfieldvalue('refinemetric') 39 fid.write('Mesh.Algorithm = 1;\n') 40 if options.exist('refine'): 41 fid.write('Mesh.Algorithm = 7;\n') 42 fid.write('Mesh.CharacteristicLengthFromPoints= 0;\n') 43 fid.write('Mesh.SmoothRatio= 3;\n') 44 fid.write('Mesh.RemeshAlgorithm= 1;\n') 45 fid.write('resolution=%g;\n' % resolution) 46 fid.write('radius=%g;\n' % radius) 47 fid.write('Point(1) = {0.0, 0.0, 0.0, resolution};\n') 48 fid.write('Point(2) = {radius, 0.0, 0.0, resolution};\n') 49 fid.write('Point(3) = {0, radius, 0.0, resolution};\n') 50 fid.write('Circle(1) = {2, 1, 3};\n') 51 fid.write('Point(4) = { - radius, 0, 0.0, resolution};\n') 52 fid.write('Point(5) = {0, - radius, 0.0, resolution};\n') 53 fid.write('Circle(2) = {3, 1, 4};\n') 54 fid.write('Circle(3) = {4, 1, 5};\n') 55 fid.write('Circle(4) = {5, 1, 2};\n') 56 fid.write('Point(6) = {0, 0, - radius, resolution};\n') 57 fid.write('Point(7) = {0, 0, radius, resolution};\n') 58 fid.write('Circle(5) = {3, 1, 6};\n') 59 fid.write('Circle(6) = {6, 1, 5};\n') 60 fid.write('Circle(7) = {5, 1, 7};\n') 61 fid.write('Circle(8) = {7, 1, 3};\n') 62 fid.write('Circle(9) = {2, 1, 7};\n') 63 fid.write('Circle(10) = {7, 1, 4};\n') 64 fid.write('Circle(11) = {4, 1, 6};\n') 65 fid.write('Circle(12) = {6, 1, 2};\n') 66 fid.write('Line Loop(13) = {2, 8, - 10};\n') 67 fid.write('Surface(14) = {13};\n') 68 fid.write('Line Loop(15) = {10, 3, 7};\n') 69 fid.write('Surface(16) = {15};\n') 70 fid.write('Line Loop(17) = { - 8, - 9, 1};\n') 71 fid.write('Surface(18) = {17};\n') 72 fid.write('Line Loop(19) = { - 11, - 2, 5};\n') 73 fid.write('Surface(20) = {19};\n') 74 fid.write('Line Loop(21) = { - 5, - 12, - 1};\n') 75 fid.write('Surface(22) = {21};\n') 76 fid.write('Line Loop(23) = { - 3, 11, 6};\n') 77 fid.write('Surface(24) = {23};\n') 78 fid.write('Line Loop(25) = { - 7, 4, 9};\n') 79 fid.write('Surface(26) = {25};\n') 80 fid.write('Line Loop(27) = { - 4, 12, - 6};\n') 81 fid.write('Surface(28) = {27};\n') 82 fid.write('Surface Loop(29) = {28, 26, 16, 14, 20, 24, 22, 18};\n') 83 fid.write('Volume(30) = {29};\n') 84 fid.write('Physical Surface(1) = {28, 26, 16, 14, 20, 24, 22, 18};\n') 85 fid.write('Physical Volume(2) = 30;\n') 86 fid.close() 87 #}}} 91 88 92 #create .pos file with existing mesh and refining metric: {{{ 93 fid=open('sphere.pos','w') 89 if options.exist('refine'): 90 meshini = options.getfieldvalue('refine') 91 metric = options.getfieldvalue('refinemetric') 94 92 95 fid.write('View "background mesh" [;\n') 96 for i in range(meshini.numberofelements): 97 fid.write('ST(%g,%g,%g,%g,%g,%g,%g,%g,%g)[%g,%g,%g];\n', 98 meshini.x(meshini.elements(i,0)), meshini.y(meshini.elements(i,0)), meshini.z(meshini.elements(i,0)), 99 meshini.x(meshini.elements(i,1)), meshini.y(meshini.elements(i,1)), meshini.z(meshini.elements(i,1)), 100 meshini.x(meshini.elements(i,2)), meshini.y(meshini.elements(i,2)), meshini.z(meshini.elements(i,2)), 101 metric(meshini.elements(i,0)), metric(meshini.elements(i,1)), metric(meshini.elements(i,2))) 102 fid.write('];\n') 103 104 fid.close() 105 # }}} 93 #create .pos file with existing mesh and refining metric: {{{ 94 fid = open('sphere.pos', 'w') 106 95 107 #call gmsh 108 if options.exist('refine'): 109 subprocess.call('gmsh -tol 1e-8 -2 sphere.geo -bgm sphere.pos',shell=True) 110 else: 111 #call gmsh 112 subprocess.call('gmsh -tol 1e-8 -2 sphere.geo',shell=True) 96 fid.write('View "background mesh" [;\n') 97 for i in range(meshini.numberofelements): 98 fid.write('ST(%g, %g, %g, %g, %g, %g, %g, %g, %g)[%g, %g, %g];\n', 99 meshini.x(meshini.elements(i, 0)), meshini.y(meshini.elements(i, 0)), meshini.z(meshini.elements(i, 0)), 100 meshini.x(meshini.elements(i, 1)), meshini.y(meshini.elements(i, 1)), meshini.z(meshini.elements(i, 1)), 101 meshini.x(meshini.elements(i, 2)), meshini.y(meshini.elements(i, 2)), meshini.z(meshini.elements(i, 2)), 102 metric(meshini.elements(i, 0)), metric(meshini.elements(i, 1)), metric(meshini.elements(i, 2))) 103 fid.write('];\n') 104 fid.close() 105 # }}} 113 106 114 #import mesh: {{{ 115 fid=open('sphere.msh','r') 107 #call gmsh 108 if options.exist('refine'): 109 subprocess.call('gmsh - tol 1e-8 - 2 sphere.geo - bgm sphere.pos', shell=True) 110 else: 111 #call gmsh 112 subprocess.call('gmsh - tol 1e-8 - 2 sphere.geo', shell=True) 116 113 117 #Get Mesh format 118 A=fid.readline().strip() 119 if not strcmp(A,'$MeshFormat'): 120 raise RuntimeError(['Expecting $MeshFormat (', A, ')']) 114 #import mesh: {{{ 115 fid = open('sphere.msh', 'r') 121 116 122 A=fid.readline().split() 123 A=fid.readline().strip()124 if not strcmp(A,'$EndMeshFormat'):125 raise RuntimeError(['Expecting $EndMeshFormat (', A, ')'])117 #Get Mesh format 118 A = fid.readline().strip() 119 if not strcmp(A, '$MeshFormat'): 120 raise RuntimeError(['Expecting $MeshFormat (', A, ')']) 126 121 127 #Nodes 128 A=fid.readline().strip()129 if not strcmp(A,'$Nodes'):130 raise RuntimeError(['Expecting $Nodes(', A, ')'])122 A = fid.readline().split() 123 A = fid.readline().strip() 124 if not strcmp(A, '$EndMeshFormat'): 125 raise RuntimeError(['Expecting $EndMeshFormat (', A, ')']) 131 126 132 mesh.numberofvertices=int(fid.readline().strip()) 133 mesh.x=np.empty(mesh.numberofvertices) 134 mesh.y=np.empty(mesh.numberofvertices) 135 mesh.z=np.empty(mesh.numberofvertices) 136 for i in range(mesh.numberofvertices): 137 A=fid.readline().split() 138 mesh.x[i]=float(A[1]) 139 mesh.y[i]=float(A[2]) 140 mesh.z[i]=float(A[3]) 127 #Nodes 128 A = fid.readline().strip() 129 if not strcmp(A, '$Nodes'): 130 raise RuntimeError(['Expecting $Nodes (', A, ')']) 141 131 142 A=fid.readline().strip() 143 if not strcmp(A,'$EndNodes'): 144 raise RuntimeError(['Expecting $EndNodes (', A, ')']) 132 mesh.numberofvertices = int(fid.readline().strip()) 133 mesh.x = np.empty(mesh.numberofvertices) 134 mesh.y = np.empty(mesh.numberofvertices) 135 mesh.z = np.empty(mesh.numberofvertices) 136 for i in range(mesh.numberofvertices): 137 A = fid.readline().split() 138 mesh.x[i] = float(A[1]) 139 mesh.y[i] = float(A[2]) 140 mesh.z[i] = float(A[3]) 145 141 146 #Elements 147 A=fid.readline().strip() 148 if not strcmp(A,'$Elements'): 149 raise RuntimeError(['Expecting $Elements (', A, ')']) 150 mesh.numberofelements=int(fid.readline().strip()) 151 mesh.elements=np.zeros([mesh.numberofelements,3]) 152 for i in range(mesh.numberofelements): 153 A=fid.readline().split() 154 mesh.elements[i]=[int(A[5]),int(A[6]),int(A[7])] 155 mesh.elements=mesh.elements.astype(int) 156 A=fid.readline().strip() 157 if not strcmp(A,'$EndElements'): 158 raise RuntimeError(['Expecting $EndElements (', A, ')']) 159 fid.close() 160 #}}} 142 A = fid.readline().strip() 143 if not strcmp(A, '$EndNodes'): 144 raise RuntimeError(['Expecting $EndNodes (', A, ')']) 161 145 162 #figure out other fields in mesh3dsurface: 163 mesh.r=np.sqrt(mesh.x**2+mesh.y**2+mesh.z**2) 164 mesh.lat=np.arcsin(mesh.z/mesh.r)/np.pi*180 165 mesh.long=np.arctan2(mesh.y,mesh.x)/np.pi*180 146 #Elements 147 A = fid.readline().strip() 148 if not strcmp(A, '$Elements'): 149 raise RuntimeError(['Expecting $Elements (', A, ')']) 150 mesh.numberofelements = int(fid.readline().strip()) 151 mesh.elements = np.zeros([mesh.numberofelements, 3]) 152 for i in range(mesh.numberofelements): 153 A = fid.readline().split() 154 mesh.elements[i] = [int(A[5]), int(A[6]), int(A[7])] 155 mesh.elements = mesh.elements.astype(int) 156 A = fid.readline().strip() 157 if not strcmp(A, '$EndElements'): 158 raise RuntimeError(['Expecting $EndElements (', A, ')']) 159 fid.close() 160 #}}} 166 161 167 #erase files: 168 subprocess.call('rm -rf sphere.geo sphere.msh sphere.pos',shell=True) 162 #figure out other fields in mesh3dsurface: 163 mesh.r = np.sqrt(mesh.x**2 + mesh.y**2 + mesh.z**2) 164 mesh.lat = np.arcsin(mesh.z / mesh.r) / np.pi * 180 165 mesh.long = np.arctan2(mesh.y, mesh.x) / np.pi * 180 169 166 170 #return mesh: 171 return mesh 167 #erase files: 168 subprocess.call('rm -rf sphere.geo sphere.msh sphere.pos', shell=True) 169 170 #return mesh: 171 return mesh -
issm/trunk-jpl/src/m/mesh/rifts/meshprocessoutsiderifts.py
r21303 r24213 2 2 from ElementsFromEdge import ElementsFromEdge 3 3 import MatlabFuncs as m 4 from ContourToMesh import ContourToMesh 4 5 5 def meshprocessoutsiderifts(md,domainoutline):6 """7 MESHPROCESSOUTSIDERIFTS - process rifts when they touch the domain outline8 6 9 Usage: 10 md=meshprocessoutsiderifts(md,domain) 7 def meshprocessoutsiderifts(md, domainoutline): 8 """ 9 MESHPROCESSOUTSIDERIFTS - process rifts when they touch the domain outline 11 10 12 """ 11 Usage: 12 md = meshprocessoutsiderifts(md, domain) 13 13 14 #go through rifts, and figure out which ones touch the domain outline 15 for rift in md.rifts.riftstruct: 16 17 #first, flag nodes that belong to the domain outline 18 flags=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,domainoutline,'node',0) 14 """ 19 15 20 tips=rift.tips 21 outsidetips=tips[np.nonzero(flags[rift.tips-1])[0]] 16 #go through rifts, and figure out which ones touch the domain outline 17 for rift in md.rifts.riftstruct: 22 18 23 #we have found outsidetips, tips that touch the domain outline. go through them 24 for tip in outsidetips: 25 26 #find tip in the segments, take first segment (there should be 2) that holds tip, 27 #and node_connected_to_tip is the other node on this segment: 28 tipindex=np.nonzero(rift.segments[:,0]==tip)[0] 29 if tipindex: 30 tipindex=tipindex[0] 31 node_connected_to_tip=rift.segments[tipindex,1] 32 else: 33 tipindex=np.nonzero(rift.segments[:,1]==tip)[0] 34 tipindex=tipindex[0] 35 node_connected_to_tip=rift.segments[tipindex,1] 19 #first, flag nodes that belong to the domain outline 20 flags = ContourToMesh(md.mesh.elements, md.mesh.x, md.mesh.y, domainoutline, 'node', 0) 36 21 37 #ok, we have the tip node, and the first node connected to it, on the rift. Now, 38 #identify all the elements that are connected to the tip, and that are on the same 39 #side of the rift. 40 A=tip 41 B=node_connected_to_tip 22 tips = rift.tips 23 outsidetips = tips[np.nonzero(flags[rift.tips - 1])[0]] 42 24 43 elements=np.empty(0,int) 25 #we have found outsidetips, tips that touch the domain outline. go through them 26 for tip in outsidetips: 27 #find tip in the segments, take first segment (there should be 2) that holds tip, 28 #and node_connected_to_tip is the other node on this segment: 29 tipindex = np.nonzero(rift.segments[:, 0] == tip)[0] 30 if tipindex: 31 tipindex = tipindex[0] 32 node_connected_to_tip = rift.segments[tipindex, 1] 33 else: 34 tipindex = np.nonzero(rift.segments[:, 1] == tip)[0] 35 tipindex = tipindex[0] 36 node_connected_to_tip = rift.segments[tipindex, 1] 44 37 45 while flags(B): #as long as B does not belong to the domain outline, keep looking. 46 #detect elements on edge A,B: 47 edgeelements=ElementsFromEdge(md.mesh.elements,A,B) 48 #rule out those we already detected 49 already_detected=m.ismember(edgeelements,elements) 50 nextelement=edgeelements(np.nonzero(np.logical_not(already_detected))[0]) 51 #add new detected element to the list of elements we are looking for. 52 elements=np.concatenate((elements,nextelement)) 53 #new B: 54 B=md.mesh.elements[nextelement-1,np.nonzero(np.logical_not(m.ismember(md.mesh.elements[nextelement-1,:],np.array([A,B]))))] 55 56 #take the list of elements on one side of the rift that connect to the tip, 57 #and duplicate the tip on them, so as to open the rift to the outside. 58 num=np.size(md.mesh.x)+1 59 md.mesh.x=np.concatenate((md.mesh.x,md.mesh.x[tip])) 60 md.mesh.y=np.concatenate((md.mesh.y,md.mesh.y[tip])) 61 md.mesh.numberofvertices=num 62 63 #replace tip in elements 64 newelements=md.mesh.elements[elements-1,:] 65 pos=np.nonzero(newelements==tip) 66 newelements[pos]=num 67 md.mesh.elements[elements-1,:]=newelements 68 rift.tips=np.concatenate((rift.tips,num)) 38 #ok, we have the tip node, and the first node connected to it, on the rift. Now, 39 #identify all the elements that are connected to the tip, and that are on the same 40 #side of the rift. 41 A = tip 42 B = node_connected_to_tip 69 43 70 #deal with segments 71 tipsegments=np.nonzero(np.logical_or(md.mesh.segments[:,0]==tip,md.mesh.segments[:,1]==tip))[0] 72 for segment_index in tipsegments: 73 pos=np.nonzero(md.mesh.segments[segment_index,0:2]!=tip)[0] 74 other_node=md.mesh.segments[segment_index,pos] 75 if not isconnected(md.mesh.elements,other_node,tip): 76 pos=np.nonzero(md.mesh.segments[segment_index,0:2]==tip)[0] 77 md.mesh.segments[segment_index,pos]=num 44 elements = np.empty(0, int) 78 45 79 #Fill in rest of fields: 80 md.mesh.numberofelements=np.size(md.mesh.elements,axis=0) 81 md.mesh.numberofvertices=np.size(md.mesh.x) 82 md.mesh.vertexonboundary=np.zeros(np.size(md.mesh.x),bool) 83 md.mesh.vertexonboundary[md.mesh.segments[:,0:2]-1]=True 84 md.rifts.numrifts=length(md.rifts.riftstruct) 46 while flags(B): #as long as B does not belong to the domain outline, keep looking. 47 #detect elements on edge A, B: 48 edgeelements = ElementsFromEdge(md.mesh.elements, A, B) 49 #rule out those we already detected 50 already_detected = m.ismember(edgeelements, elements) 51 nextelement = edgeelements(np.nonzero(np.logical_not(already_detected))[0]) 52 #add new detected element to the list of elements we are looking for. 53 elements = np.concatenate((elements, nextelement)) 54 #new B: 55 B = md.mesh.elements[nextelement - 1, np.nonzero(np.logical_not(m.ismember(md.mesh.elements[nextelement - 1, :], np.array([A, B]))))] 85 56 86 return md 57 #take the list of elements on one side of the rift that connect to the tip, 58 #and duplicate the tip on them, so as to open the rift to the outside. 59 num = np.size(md.mesh.x) + 1 60 md.mesh.x = np.concatenate((md.mesh.x, md.mesh.x[tip])) 61 md.mesh.y = np.concatenate((md.mesh.y, md.mesh.y[tip])) 62 md.mesh.numberofvertices = num 87 63 88 def isconnected(elements,A,B): # {{{ 89 """ 90 ISCONNECTED: are two nodes connected by a triangulation? 64 #replace tip in elements 65 newelements = md.mesh.elements[elements - 1, :] 66 pos = np.nonzero(newelements == tip) 67 newelements[pos] = num 68 md.mesh.elements[elements - 1, :] = newelements 69 rift.tips = np.concatenate((rift.tips, num)) 91 70 92 Usage: flag=isconnected(elements,A,B) 71 #deal with segments 72 tipsegments = np.nonzero(np.logical_or(md.mesh.segments[:, 0] == tip, md.mesh.segments[:, 1] == tip))[0] 73 for segment_index in tipsegments: 74 pos = np.nonzero(md.mesh.segments[segment_index, 0:2] != tip)[0] 75 other_node = md.mesh.segments[segment_index, pos] 76 if not isconnected(md.mesh.elements, other_node, tip): 77 pos = np.nonzero(md.mesh.segments[segment_index, 0:2] == tip)[0] 78 md.mesh.segments[segment_index, pos] = num 93 79 94 """ 80 #Fill in rest of fields: 81 md.mesh.numberofelements = np.size(md.mesh.elements, axis=0) 82 md.mesh.numberofvertices = np.size(md.mesh.x) 83 md.mesh.vertexonboundary = np.zeros(np.size(md.mesh.x), bool) 84 md.mesh.vertexonboundary[md.mesh.segments[:, 0:2] - 1] = True 85 md.rifts.numrifts = np.length(md.rifts.riftstruct) 95 86 96 elements=ElementsFromEdge(elements,A,B) 97 if not elements: 98 flag=0 99 else: 100 flag=1 87 return md 101 88 102 return flag103 # }}}104 89 90 def isconnected(elements, A, B): # {{{ 91 """ 92 ISCONNECTED: are two nodes connected by a triangulation? 93 94 Usage: flag = isconnected(elements, A, B) 95 96 """ 97 98 elements = ElementsFromEdge(elements, A, B) 99 if not elements: 100 flag = 0 101 else: 102 flag = 1 103 104 return flag 105 # }}} -
issm/trunk-jpl/src/m/mesh/rifts/meshprocessrifts.py
r22498 r24213 5 5 from GetAreas import GetAreas 6 6 7 def meshprocessrifts(md,domainoutline):8 """9 MESHPROCESSRIFTS - process mesh when rifts are present10 7 11 split rifts inside mesh (rifts are defined by presence of 12 segments inside the domain outline) 13 if domain outline is provided, check for rifts that could touch it, and open them up. 8 def meshprocessrifts(md, domainoutline): 9 """ 10 MESHPROCESSRIFTS - process mesh when rifts are present 14 11 15 Usage: 16 md=meshprocessrifts(md,domainoutline) 12 split rifts inside mesh (rifts are defined by presence of 13 segments inside the domain outline) 14 if domain outline is provided, check for rifts that could touch it, and open them up. 17 15 18 Ex: 19 md=meshprocessrifts(md,'DomainOutline.exp'); 20 21 """ 16 Usage: 17 md = meshprocessrifts(md, domainoutline) 22 18 23 #Call MEX file 24 md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.segments,md.mesh.segmentmarkers,md.rifts.riftstruct=ProcessRifts(md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.segments,md.mesh.segmentmarkers) 25 md.mesh.elements=md.mesh.elements.astype(int) 26 md.mesh.x=md.mesh.x.reshape(-1) 27 md.mesh.y=md.mesh.y.reshape(-1) 28 md.mesh.segments=md.mesh.segments.astype(int) 29 md.mesh.segmentmarkers=md.mesh.segmentmarkers.astype(int) 30 if not isinstance(md.rifts.riftstruct,list) or not md.rifts.riftstruct: 31 raise RuntimeError("ProcessRifts did not find any rift") 19 Ex: 20 md = meshprocessrifts(md, 'DomainOutline.exp') 32 21 33 #Fill in rest of fields: 34 numrifts=len(md.rifts.riftstruct) 35 md.mesh.numberofelements=np.size(md.mesh.elements,axis=0) 36 md.mesh.numberofvertices=np.size(md.mesh.x) 37 md.mesh.vertexonboundary=np.zeros(np.size(md.mesh.x),bool) 38 md.mesh.vertexonboundary[md.mesh.segments[:,0:2]-1]=True 22 """ 39 23 40 #get coordinates of rift tips 41 for rift in md.rifts.riftstruct: 42 rift['tip1coordinates']=np.hstack((md.mesh.x[rift['tips'][0,0].astype(int)-1].reshape(-1,),md.mesh.y[rift['tips'][0,0].astype(int)-1].reshape(-1,))) 43 rift['tip2coordinates']=np.hstack((md.mesh.x[rift['tips'][0,1].astype(int)-1].reshape(-1,),md.mesh.y[rift['tips'][0,1].astype(int)-1].reshape(-1,))) 24 #Call MEX file 25 md.mesh.elements, md.mesh.x, md.mesh.y, md.mesh.segments, md.mesh.segmentmarkers, md.rifts.riftstruct = ProcessRifts(md.mesh.elements, md.mesh.x, md.mesh.y, md.mesh.segments, md.mesh.segmentmarkers) 26 md.mesh.elements = md.mesh.elements.astype(int) 27 md.mesh.x = md.mesh.x.reshape(- 1) 28 md.mesh.y = md.mesh.y.reshape(- 1) 29 md.mesh.segments = md.mesh.segments.astype(int) 30 md.mesh.segmentmarkers = md.mesh.segmentmarkers.astype(int) 31 if not isinstance(md.rifts.riftstruct, list) or not md.rifts.riftstruct: 32 raise RuntimeError("ProcessRifts did not find any rift") 44 33 45 #In case we have rifts that open up the domain outline, we need to open them: 46 flags=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,domainoutline,'node',0) 47 found=0 48 for rift in md.rifts.riftstruct: 49 if flags[rift['tips'][0,0].astype(int)-1]==0: 50 found=1 51 break 52 if flags[rift['tips'][0,1].astype(int)-1]==0: 53 found=1 54 break 55 if found: 56 md=meshprocessoutsiderifts(md,domainoutline) 34 #Fill in rest of fields: 35 md.mesh.numberofelements = np.size(md.mesh.elements, axis=0) 36 md.mesh.numberofvertices = np.size(md.mesh.x) 37 md.mesh.vertexonboundary = np.zeros(np.size(md.mesh.x), bool) 38 md.mesh.vertexonboundary[md.mesh.segments[:, 0:2] - 1] = True 57 39 58 #get elements that are not correctly oriented in the correct direction: 59 aires=GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y) 60 pos=np.nonzero(aires<0)[0] 61 md.mesh.elements[pos,:]=np.vstack((md.mesh.elements[pos,1],md.mesh.elements[pos,0],md.mesh.elements[pos,2])).T 40 #get coordinates of rift tips 41 for rift in md.rifts.riftstruct: 42 rift['tip1coordinates'] = np.hstack((md.mesh.x[rift['tips'][0, 0].astype(int) - 1].reshape(- 1, ), md.mesh.y[rift['tips'][0, 0].astype(int) - 1].reshape(- 1, ))) 43 rift['tip2coordinates'] = np.hstack((md.mesh.x[rift['tips'][0, 1].astype(int) - 1].reshape(- 1, ), md.mesh.y[rift['tips'][0, 1].astype(int) - 1].reshape(- 1, ))) 62 44 63 return md 45 #In case we have rifts that open up the domain outline, we need to open them: 46 flags = ContourToMesh(md.mesh.elements, md.mesh.x, md.mesh.y, domainoutline, 'node', 0) 47 found = 0 48 for rift in md.rifts.riftstruct: 49 if flags[rift['tips'][0, 0].astype(int) - 1] == 0: 50 found = 1 51 break 52 if flags[rift['tips'][0, 1].astype(int) - 1] == 0: 53 found = 1 54 break 55 if found: 56 md = meshprocessoutsiderifts(md, domainoutline) 64 57 58 #get elements that are not correctly oriented in the correct direction: 59 aires = GetAreas(md.mesh.elements, md.mesh.x, md.mesh.y) 60 pos = np.nonzero(aires < 0)[0] 61 md.mesh.elements[pos, :] = np.vstack((md.mesh.elements[pos, 1], md.mesh.elements[pos, 0], md.mesh.elements[pos, 2])).T 62 63 return md -
issm/trunk-jpl/src/m/mesh/roundmesh.py
r24115 r24213 5 5 from triangle import triangle 6 6 7 7 8 def roundmesh(md, radius, resolution): 8 9 """ … … 10 11 11 12 This script will generate a structured round mesh 12 13 13 - radius : specifies the radius of the circle in meters 14 - resolution : specifies the resolution in meters 14 15 15 16 Usage: 16 md =roundmesh(md,radius,resolution)17 md = roundmesh(md, radius, resolution) 17 18 """ 18 19 … … 20 21 21 22 #Get number of points on the circle 22 pointsonedge = np.floor((2. * np.pi * radius) / resolution) + 1 # +1 to close the outline23 pointsonedge = np.floor((2. * np.pi * radius) / resolution) + 1 # + 1 to close the outline 23 24 24 25 #Calculate the cartesians coordinates of the points … … 30 31 A['y'] = [y_list] 31 32 A['density'] = 1. 32 print('now writing mesh')33 33 expwrite(A, 'RoundDomainOutline.exp') 34 34 35 35 #Call Bamg 36 print('now meshing')37 36 md = triangle(md, 'RoundDomainOutline.exp', resolution) 38 #md = bamg(md, 'domain','RoundDomainOutline.exp','hmin',resolution)37 #md = bamg(md, 'domain', 'RoundDomainOutline.exp', 'hmin', resolution) 39 38 40 39 #move the closest node to the center -
issm/trunk-jpl/src/m/mesh/squaremesh.py
r23716 r24213 1 1 import numpy as np 2 2 from NodeConnectivity import NodeConnectivity 3 from ElementConnectivity import ElementConnectivity 3 from ElementConnectivity import ElementConnectivity 4 4 from mesh2d import mesh2d 5 5 6 def squaremesh(md,Lx,Ly,nx,ny):7 """8 SQUAREMESH - create a structured square mesh9 6 10 This script will generate a structured square mesh 11 Lx and Ly are the dimension of the domain (in meters) 12 nx anx ny are the number of nodes in the x and y direction 13 The coordinates x and y returned are in meters. 7 def squaremesh(md, Lx, Ly, nx, ny): 8 """ 9 SQUAREMESH - create a structured square mesh 14 10 15 Usage: 16 [md]=squaremesh(md,Lx,Ly,nx,ny) 17 """ 11 This script will generate a structured square mesh 12 Lx and Ly are the dimension of the domain (in meters) 13 nx anx ny are the number of nodes in the x and y direction 14 The coordinates x and y returned are in meters. 18 15 19 #get number of elements and number of nodes 20 nel=(nx-1)*(ny-1)*2 21 nods=nx*ny 16 Usage: 17 [md] = squaremesh(md, Lx, Ly, nx, ny) 18 """ 22 19 23 #initialization 24 index=np.zeros((nel,3),int) 25 x=np.zeros((nx*ny)) 26 y=np.zeros((nx*ny)) 20 #get number of elements and number of nodes 21 nel = (nx - 1) * (ny - 1) * 2 22 nods = nx * ny 27 23 28 #create coordinates 29 for n in range(0,nx): 30 for m in range(0,ny): 31 x[n*ny+m]=float(n) 32 y[n*ny+m]=float(m) 24 #initialization 25 index = np.zeros((nel, 3), int) 26 x = np.zeros((nx * ny)) 27 y = np.zeros((nx * ny)) 33 28 34 #create index 35 for n in range(0,nx-1): 36 for m in range(0,ny-1): 37 A=n*ny+(m+1) 38 B=A+1 39 C=(n+1)*ny+(m+1) 40 D=C+1 41 index[n*(ny-1)*2+2*m,:]=[A,C,B] 42 index[n*(ny-1)*2+2*(m+1)-1,:]=[B,C,D] 29 #create coordinates 30 for n in range(0, nx): 31 for m in range(0, ny): 32 x[n * ny + m] = float(n) 33 y[n * ny + m] = float(m) 43 34 44 #Scale x and y 45 x=x/np.max(x)*Lx 46 y=y/np.max(y)*Ly 35 #create index 36 for n in range(0, nx - 1): 37 for m in range(0, ny - 1): 38 A = n * ny + (m + 1) 39 B = A + 1 40 C = (n + 1) * ny + (m + 1) 41 D = C + 1 42 index[n * (ny - 1) * 2 + 2 * m, :] = [A, C, B] 43 index[n * (ny - 1) * 2 + 2 * (m + 1) - 1, :] = [B, C, D] 47 44 48 #create segments 49 segments=np.zeros((2*(nx-1)+2*(ny-1),3),int) 50 #left edge: 51 segments[0:ny-1,:]=np.vstack((np.arange(2,ny+1),np.arange(1,ny),(2*np.arange(1,ny)-1))).T 52 #right edge: 53 segments[ny-1:2*(ny-1),:]=np.vstack((np.arange(ny*(nx-1)+1,nx*ny),np.arange(ny*(nx-1)+2,nx*ny+1),2*np.arange((ny-1)*(nx-2)+1,(nx-1)*(ny-1)+1))).T 54 #front edge: 55 segments[2*(ny-1):2*(ny-1)+(nx-1),:]=np.vstack((np.arange(2*ny,ny*nx+1,ny),np.arange(ny,ny*(nx-1)+1,ny),np.arange(2*(ny-1),2*(nx-1)*(ny-1)+1,2*(ny-1)))).T 56 #back edge 57 segments[2*(ny-1)+(nx-1):2*(nx-1)+2*(ny-1),:]=np.vstack((np.arange(1,(nx-2)*ny+2,ny),np.arange(ny+1,ny*(nx-1)+2,ny),np.arange(1,2*(nx-2)*(ny-1)+2,2*(ny-1)))).T 45 #Scale x and y 46 x = x / np.max(x) * Lx 47 y = y / np.max(y) * Ly 58 48 59 #plug coordinates and nodes 60 md.mesh=mesh2d() 61 md.mesh.x=x 62 md.mesh.y=y 63 md.mesh.numberofvertices=nods 64 md.mesh.vertexonboundary=np.zeros((nods),bool) 65 md.mesh.vertexonboundary[segments[:,0:2]-1]=True 49 #create segments 50 segments = np.zeros((2 * (nx - 1) + 2 * (ny - 1), 3), int) 51 #left edge: 52 segments[0:ny - 1, :] = np.vstack((np.arange(2, ny + 1), np.arange(1, ny), (2 * np.arange(1, ny) - 1))).T 53 #right edge: 54 segments[ny - 1:2 * (ny - 1), :] = np.vstack((np.arange(ny * (nx - 1) + 1, nx * ny), np.arange(ny * (nx - 1) + 2, nx * ny + 1), 2 * np.arange((ny - 1) * (nx - 2) + 1, (nx - 1) * (ny - 1) + 1))).T 55 #front edge: 56 segments[2 * (ny - 1):2 * (ny - 1) + (nx - 1), :] = np.vstack((np.arange(2 * ny, ny * nx + 1, ny), np.arange(ny, ny * (nx - 1) + 1, ny), np.arange(2 * (ny - 1), 2 * (nx - 1) * (ny - 1) + 1, 2 * (ny - 1)))).T 57 #back edge 58 segments[2 * (ny - 1) + (nx - 1):2 * (nx - 1) + 2 * (ny - 1), :] = np.vstack((np.arange(1, (nx - 2) * ny + 2, ny), np.arange(ny + 1, ny * (nx - 1) + 2, ny), np.arange(1, 2 * (nx - 2) * (ny - 1) + 2, 2 * (ny - 1)))).T 66 59 67 #plug elements 68 md.mesh.elements=index 69 md.mesh.segments=segments 70 md.mesh.numberofelements=nel 60 #plug coordinates and nodes 61 md.mesh = mesh2d() 62 md.mesh.x = x 63 md.mesh.y = y 64 md.mesh.numberofvertices = nods 65 md.mesh.vertexonboundary = np.zeros((nods), bool) 66 md.mesh.vertexonboundary[segments[:, 0:2] - 1] = True 71 67 72 #Now, build the connectivity tables for this mesh. 73 md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices)[0] 74 md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity)[0] 68 #plug elements 69 md.mesh.elements = index 70 md.mesh.segments = segments 71 md.mesh.numberofelements = nel 75 72 76 return md 73 #Now, build the connectivity tables for this mesh. 74 md.mesh.vertexconnectivity = NodeConnectivity(md.mesh.elements, md.mesh.numberofvertices)[0] 75 md.mesh.elementconnectivity = ElementConnectivity(md.mesh.elements, md.mesh.vertexconnectivity)[0] 76 77 return md -
issm/trunk-jpl/src/m/mesh/triangle.py
r24115 r24213 17 17 18 18 Usage: 19 md =triangle(md,domainname,resolution)20 or md =triangle(md,domainname, resolution, riftname)19 md = triangle(md, domainname, resolution) 20 or md = triangle(md, domainname, resolution, riftname) 21 21 22 22 Examples: 23 md =triangle(md,'DomainOutline.exp',1000);24 md =triangle(md,'DomainOutline.exp',1000,'Rifts.exp');23 md = triangle(md, 'DomainOutline.exp', 1000) 24 md = triangle(md, 'DomainOutline.exp', 1000, 'Rifts.exp') 25 25 """ 26 26 27 27 #Figure out a characteristic area. Resolution is a node oriented concept (ex a 1000m resolution node would 28 #be made of 1000 *1000 area squares).28 #be made of 1000 * 1000 area squares). 29 29 30 30 if len(args) == 1: … … 37 37 #Check that mesh was not already run, and warn user: 38 38 if md.mesh.numberofelements: 39 choice = eval(input('This model already has a mesh. Are you sure you want to go ahead? (y/n)'))39 choice = input('This model already has a mesh. Are you sure you want to go ahead? (y / n)') 40 40 if choice not in ['y', 'n']: 41 41 print("bad answer try you should use 'y' or 'n' ... exiting") -
issm/trunk-jpl/src/m/miscellaneous/MatlabFuncs.py
r22865 r24213 1 1 def oshostname(): 2 2 import socket 3 3 4 return socket.gethostname() 4 return socket.gethostname() 5 5 6 6 7 def ispc(): 7 8 import platform 8 9 9 if 'Windows' in platform.system(): 10 return True 11 else: 12 return False 10 if 'Windows' in platform.system(): 11 return True 12 else: 13 return False 14 13 15 14 16 def ismac(): 15 17 import platform 16 18 17 18 19 20 19 if 'Darwin' in platform.system(): 20 return True 21 else: 22 return False 21 23 22 def strcmp(s1,s2):23 24 24 if s1 == s2: 25 return True 26 else: 27 return False 25 def strcmp(s1, s2): 28 26 29 def strncmp(s1,s2,n): 27 if s1 == s2: 28 return True 29 else: 30 return False 30 31 31 if s1[0:n] == s2[0:n]:32 return True33 else:34 return False35 32 36 def str cmpi(s1,s2):33 def strncmp(s1, s2, n): 37 34 38 if s1.lower() == s2.lower():39 40 41 35 if s1[0:n] == s2[0:n]: 36 return True 37 else: 38 return False 42 39 43 def strncmpi(s1,s2,n):44 40 45 if s1.lower()[0:n] == s2.lower()[0:n]: 46 return True 47 else: 48 return False 41 def strcmpi(s1, s2): 49 42 50 def ismember(a,s): 51 import numpy as np 43 if s1.lower() == s2.lower(): 44 return True 45 else: 46 return False 52 47 53 if not isinstance(s,(tuple,list,dict,np.ndarray)):54 s=[s]55 48 56 if not isinstance(a,(tuple,list,dict,np.ndarray)): 57 a=[a] 49 def strncmpi(s1, s2, n): 58 50 59 if not isinstance(a,np.ndarray): 60 b=[item in s for item in a] 51 if s1.lower()[0:n] == s2.lower()[0:n]: 52 return True 53 else: 54 return False 61 55 62 else:63 if not isinstance(s,np.ndarray):64 b=np.empty_like(a)65 for i,item in enumerate(a.flat):66 b.flat[i]=item in s67 else:68 b=np.in1d(a.flat,s.flat).reshape(a.shape)69 56 70 return b 57 def ismember(a, s): 58 import numpy as np 59 60 if not isinstance(s, (tuple, list, dict, np.ndarray)): 61 s = [s] 62 63 if not isinstance(a, (tuple, list, dict, np.ndarray)): 64 a = [a] 65 66 if not isinstance(a, np.ndarray): 67 b = [item in s for item in a] 68 69 else: 70 if not isinstance(s, np.ndarray): 71 b = np.empty_like(a) 72 for i, item in enumerate(a.flat): 73 b.flat[i] = item in s 74 else: 75 b = np.in1d(a.flat, s.flat).reshape(a.shape) 76 77 return b 78 71 79 72 80 def det(a): 73 import numpy as np74 81 75 if a.shape==(1,):76 77 elif a.shape==(1,1):78 return a[0,0]79 elif a.shape==(2,2):80 return a[0,0]*a[1,1]-a[0,1]*a[1,0]81 82 82 if a.shape == (1, ): 83 return a[0] 84 elif a.shape == (1, 1): 85 return a[0, 0] 86 elif a.shape == (2, 2): 87 return a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0] 88 else: 89 raise TypeError("MatlabFunc.det only implemented for shape (2, 2), not for shape %s." % str(a.shape)) 83 90 84 def sparse(ivec,jvec,svec,m=0,n=0,nzmax=0):85 import numpy as np86 91 87 if not m: 88 m=np.max(ivec) 89 if not n: 90 n=np.max(jvec) 92 def sparse(ivec, jvec, svec, m=0, n=0, nzmax=0): 93 import numpy as np 91 94 92 a=np.zeros((m,n)) 95 if not m: 96 m = np.max(ivec) 97 if not n: 98 n = np.max(jvec) 93 99 94 for i,j,s in zip(ivec.reshape(-1,order='F'),jvec.reshape(-1,order='F'),svec.reshape(-1,order='F')): 95 a[i-1,j-1]+=s 100 a = np.zeros((m, n)) 96 101 97 return a 102 for i, j, s in zip(ivec.reshape(-1, order='F'), jvec.reshape(-1, order='F'), svec.reshape(-1, order='F')): 103 a[i - 1, j - 1] += s 104 105 return a 106 98 107 99 108 def heaviside(x): 100 109 import numpy as np 101 110 102 y=np.zeros_like(x)103 y[np.nonzero(x> 0.)]=1.104 y[np.nonzero(x==0.)]=0.5111 y = np.zeros_like(x) 112 y[np.nonzero(x > 0.)] = 1. 113 y[np.nonzero(x == 0.)] = 0.5 105 114 106 115 return y -
issm/trunk-jpl/src/m/miscellaneous/PythonFuncs.py
r21303 r24213 1 1 import numpy as np 2 2 3 def logical_and_n(*arg):4 5 if len(arg):6 result=arg[0]7 for item in arg[1:]:8 result=logical_and(result,item)9 return result10 3 11 else: 12 return None 4 def logical_and_n(* arg): 13 5 14 def logical_or_n(*arg): 15 16 if len(arg): 17 result=arg[0] 18 for item in arg[1:]: 19 result=logical_or(result,item) 20 return result 6 if len(arg): 7 result = arg[0] 8 for item in arg[1:]: 9 result = np.logical_and(result, item) 10 return result 21 11 22 23 12 else: 13 return None 24 14 15 16 def logical_or_n(* arg): 17 18 if len(arg): 19 result = arg[0] 20 for item in arg[1:]: 21 result = np.logical_or(result, item) 22 return result 23 24 else: 25 return None -
issm/trunk-jpl/src/m/miscellaneous/fielddisplay.py
r23716 r24213 1 #Module import2 1 import numpy as np 3 from math import isnan4 2 import MatlabFuncs as m 5 3 6 def fielddisplay(md,name,comment):7 """8 FIELDDISPLAY - display model field9 4 10 Usage:11 fielddisplay(md,name,comment) 12 """ 5 def fielddisplay(md, name, comment): 6 """ 7 FIELDDISPLAY - display model field 13 8 14 #get field 15 field=getattr(md,name) 9 Usage: 10 fielddisplay(md, name, comment) 11 """ 16 12 17 #disp corresponding line as a function of field type (offset set as 9 spaces) 18 return parsedisplay(" ",name,field,comment); 13 #get field 14 field = getattr(md, name) 19 15 20 def parsedisplay(offset,name,field,comment): # {{{ 16 #disp corresponding line as a function of field type (offset set as 9 spaces) 17 return parsedisplay(" ", name, field, comment) 21 18 22 #string23 if isinstance(field,str):24 19 25 if len(field)>30: 26 string=displayunit(offset,name,"not displayed",comment) 27 else: 28 string=displayunit(offset,name,"'%s'" % field,comment) 20 def parsedisplay(offset, name, field, comment): # {{{ 29 21 30 #numeric 31 elif isinstance(field,(int,float)): 32 string=displayunit(offset,name,str(field),comment) 22 #string 23 if isinstance(field, str): 33 24 34 #matrix 35 elif isinstance(field,np.ndarray): 36 string=displayunit(offset,name,str(field.shape),comment) 25 if len(field) > 30: 26 string = displayunit(offset, name, "not displayed", comment) 27 else: 28 string = displayunit(offset, name, "'%s'" % field, comment) 37 29 38 #logical 39 elif isinstance(field,bool): 40 if field: 41 string=displayunit(offset,name,"True",comment) 42 else: 43 string=displayunit(offset,name,"False",comment) 44 45 #dictionary 46 elif isinstance(field,dict): 47 string=dict_display(offset,name,field,comment) 30 #numeric 31 elif isinstance(field, (int, float)): 32 string = displayunit(offset, name, str(field), comment) 48 33 49 #list or tuple 50 elif isinstance(field,(list,tuple)):51 string=list_display(offset,name,field,comment)34 #matrix 35 elif isinstance(field, np.ndarray): 36 string = displayunit(offset, name, str(field.shape), comment) 52 37 53 #None 54 elif field is None: 55 string=displayunit(offset,name,"None",comment) 38 #logical 39 elif isinstance(field, bool): 40 if field: 41 string = displayunit(offset, name, "True", comment) 42 else: 43 string = displayunit(offset, name, "False", comment) 56 44 57 else: 58 string=displayunit(offset,name,"not displayed",comment) 59 60 return string 61 # }}} 45 #dictionary 46 elif isinstance(field, dict): 47 string = dict_display(offset, name, field, comment) 62 48 63 def dict_display(offset,name,field,comment): # {{{ 49 #list or tuple 50 elif isinstance(field, (list, tuple)): 51 string = list_display(offset, name, field, comment) 64 52 65 if field: 66 string =displayunit(offset,name,'{dictionary}',comment)+'\n' 67 offset+=' ' 53 #None 54 elif field is None: 55 string = displayunit(offset, name, "None", comment) 68 56 69 for structure_field,sfield in list(field.items()):70 string+=parsedisplay(offset,str(structure_field),sfield,'')+'\n' 57 else: 58 string = displayunit(offset, name, "not displayed", comment) 71 59 72 if string and string[-1]=='\n': 73 string=string[:-1] 60 return string 61 # }}} 74 62 75 else:76 string=displayunit(offset,name,'N/A',comment)77 63 78 return string 79 # }}} 64 def dict_display(offset, name, field, comment): # {{{ 80 65 81 def list_display(offset,name,field,comment): # {{{ 66 if field: 67 string = displayunit(offset, name, '{dictionary}', comment) + '\n' 68 offset += ' ' 82 69 83 #initialization 84 if isinstance(field,list): 85 sbeg='[' 86 send=']' 87 elif isinstance(field,tuple): 88 sbeg='(' 89 send=')' 90 string=sbeg 70 for structure_field, sfield in list(field.items()): 71 string += parsedisplay(offset, str(structure_field), sfield, '') + '\n' 91 72 92 #go through the cell and fill string 93 if len(field)<5: 94 for fieldi in field: 95 if isinstance(fieldi,str): 96 string+="'%s'," % fieldi 97 elif isinstance(fieldi,(bool,int,float)): 98 string+="%s," % str(fieldi) 99 else: 100 string=sbeg 101 break 73 if string and string[-1] == '\n': 74 string = string[:-1] 102 75 103 if m.strcmp(string,sbeg): 104 string="%s%dx1%s" % (sbeg,len(field),send) 105 else: 106 string=string[:-1]+send 76 else: 77 string = displayunit(offset, name, 'N/A', comment) 107 78 108 #call displayunit 109 return displayunit(offset,name,string,comment) 110 # }}} 79 return string 80 # }}} 111 81 112 def displayunit(offset,name,characterization,comment): # {{{113 82 114 #take care of name 115 if len(name)>23: 116 name="%s..." % name[:20] 117 118 #take care of characterization 119 if m.strcmp(characterization,"''") or m.strcmp(characterization,'""') or m.strcmpi(characterization,'nan'): 120 characterization="N/A" 121 122 if len(characterization)>15: 123 characterization="%s..." % characterization[:12] 124 125 #print 126 if not comment: 127 string="%s%-23s: %-15s" % (offset,name,characterization) 128 else: 129 if isinstance(comment,str): 130 string="%s%-23s: %-15s -- %s" % (offset,name,characterization,comment) 131 elif isinstance(comment,list): 132 string="%s%-23s: %-15s -- %s" % (offset,name,characterization,comment[0]) 133 for commenti in comment: 134 string+="\n%s%-23s %-15s %s" % (offset,'','',commenti) 135 else: 136 raise RuntimeError("fielddisplay error message: format for comment not supported yet") 83 def list_display(offset, name, field, comment): # {{{ 137 84 138 return string 139 # }}} 85 #initialization 86 if isinstance(field, list): 87 sbeg = '[' 88 send = ']' 89 elif isinstance(field, tuple): 90 sbeg = '(' 91 send = ')' 92 string = sbeg 140 93 94 #go through the cell and fill string 95 if len(field) < 5: 96 for fieldi in field: 97 if isinstance(fieldi, str): 98 string += "'%s', " % fieldi 99 elif isinstance(fieldi, (bool, int, float)): 100 string += "%s, " % str(fieldi) 101 else: 102 string = sbeg 103 break 104 105 if m.strcmp(string, sbeg): 106 string = "%s%dx1%s" % (sbeg, len(field), send) 107 else: 108 string = string[: - 1] + send 109 110 #call displayunit 111 return displayunit(offset, name, string, comment) 112 # }}} 113 114 115 def displayunit(offset, name, characterization, comment): # {{{ 116 117 #take care of name 118 if len(name) > 23: 119 name = "%s..." % name[:20] 120 121 #take care of characterization 122 if m.strcmp(characterization, "''") or m.strcmp(characterization, '""') or m.strcmpi(characterization, 'nan'): 123 characterization = "N / A" 124 125 if len(characterization) > 15: 126 characterization = "%s..." % characterization[:12] 127 128 #print 129 if not comment: 130 string = "%s% - 23s: % - 15s" % (offset, name, characterization) 131 else: 132 if isinstance(comment, str): 133 string = "%s% - 23s: % - 15s - - %s" % (offset, name, characterization, comment) 134 elif isinstance(comment, list): 135 string = "%s% - 23s: % - 15s - - %s" % (offset, name, characterization, comment[0]) 136 for commenti in comment: 137 string += "\n%s% - 23s % - 15s %s" % (offset, '', '', commenti) 138 else: 139 raise RuntimeError("fielddisplay error message: format for comment not supported yet") 140 141 return string 142 # }}} -
issm/trunk-jpl/src/m/miscellaneous/isnans.py
r21303 r24213 1 1 import numpy as np 2 2 3 3 4 def isnans(array): 4 5 5 """ 6 ISNANS: figure out if an array is nan. wrapper to isnan from matlab which stupidly does not allow this test for structures! 6 7 7 8 Usage: isnans(array) 8 9 9 See also : ISNAN 10 10 See also : ISNAN 11 """ 11 12 12 if isinstance(array,(tuple,list,dict)): 13 returnvalue=014 15 returnvalue=np.isnan(array)13 if isinstance(array, (tuple, list, dict)): 14 returnvalue = 0 15 else: 16 returnvalue = np.isnan(array) 16 17 17 return returnvalue 18 18 return returnvalue -
issm/trunk-jpl/src/m/miscellaneous/normfit_issm.py
r23095 r24213 1 1 import numpy as np 2 3 from scipy.stats import chi2,t 4 5 # 2 from scipy.stats import chi2, t 6 3 # wrapper for normfit to avoid using the matlab statistics toolbox. 7 #8 def normfit_issm(x,alpha=None):9 10 if alpha == None:11 alpha=0.0512 13 14 # check for any NaN in any columns15 if not np.isnan(x).any():16 17 # explicitly calculate the moments18 muhat =np.mean(x,0)19 # numpy defaults to 0 delta degrees of freedom; matlab uses 120 sigmahat=np.std(x,0,ddof=1)21 22 # no way to ask this in python, assume 4 outputs23 #if (nargout>2):24 25 prob=1.-alpha/2.26 27 if (np.size(x,0) == 1):28 # operate like matlab normfit, mean, std, etc.29 n=np.size(x)30 else:31 n=np.size(x,0)32 33 muci =np.zeros((2,np.size(muhat )))34 sigmaci =np.zeros((2,np.size(sigmahat)))35 36 try:37 muci[0,:] =muhat-t.ppf(prob,n-1)*sigmahat/np.sqrt(n)38 muci[1,:] =muhat+t.ppf(prob,n-1)*sigmahat/np.sqrt(n)39 sigmaci[0,:]=sigmahat*np.sqrt((n-1)/chi2.ppf(prob ,n-1))40 sigmaci[1,:]=sigmahat*np.sqrt((n-1)/chi2.ppf(1.-prob,n-1))41 except:42 muci[0,:] =muhat43 muci[1,:] =muhat44 sigmaci[0,:]=sigmahat45 sigmaci[1,:]=sigmahat46 else:47 # must loop over columns, since number of elements could be different48 muhat =np.zeros((1,np.size(x,1)))49 sigmahat=np.zeros((1,np.size(x,1)))50 muci =np.zeros((2,np.size(x,1)))51 sigmaci =np.zeros((2,np.size(x,1)))52 53 # remove any NaN and recursively call column54 for j in range(np.shape(x,1)):55 [muhat[j],sigmahat[j],muci[:,j],sigmaci[:,j]]=normfit_issm(x[not np.isnan(x[:,j]),j],alpha)56 57 return [muhat,sigmahat,muci,sigmaci]58 59 60 4 61 5 6 def normfit_issm(x, alpha=None): 7 8 if alpha is None: 9 alpha = 0.05 10 11 # check for any NaN in any columns 12 if not np.isnan(x).any(): 13 14 # explicitly calculate the moments 15 muhat = np.mean(x, 0) 16 # numpy defaults to 0 delta degrees of freedom; matlab uses 1 17 sigmahat = np.std(x, 0, ddof=1) 18 19 # no way to ask this in python, assume 4 outputs 20 #if (nargout > 2): 21 prob = 1. - alpha / 2. 22 23 if (np.size(x, 0) == 1): 24 # operate like matlab normfit, mean, std, etc. 25 n = np.size(x) 26 else: 27 n = np.size(x, 0) 28 29 muci = np.zeros((2, np.size(muhat))) 30 sigmaci = np.zeros((2, np.size(sigmahat))) 31 32 try: 33 muci[0, :] = muhat - t.ppf(prob, n - 1) * sigmahat / np.sqrt(n) 34 muci[1, :] = muhat + t.ppf(prob, n - 1) * sigmahat / np.sqrt(n) 35 sigmaci[0, :] = sigmahat * np.sqrt((n - 1) / chi2.ppf(prob, n - 1)) 36 sigmaci[1, :] = sigmahat * np.sqrt((n - 1) / chi2.ppf(1. - prob, n - 1)) 37 except: 38 muci[0, :] = muhat 39 muci[1, :] = muhat 40 sigmaci[0, :] = sigmahat 41 sigmaci[1, :] = sigmahat 42 else: 43 # must loop over columns, since number of elements could be different 44 muhat = np.zeros((1, np.size(x, 1))) 45 sigmahat = np.zeros((1, np.size(x, 1))) 46 muci = np.zeros((2, np.size(x, 1))) 47 sigmaci = np.zeros((2, np.size(x, 1))) 48 49 # remove any NaN and recursively call column 50 for j in range(np.shape(x, 1)): 51 [muhat[j], sigmahat[j], muci[:, j], sigmaci[:, j]] = normfit_issm(x[not np.isnan(x[:, j]), j], alpha) 52 53 return [muhat, sigmahat, muci, sigmaci] -
issm/trunk-jpl/src/m/miscellaneous/parallelrange.py
r23716 r24213 1 #! /usr/bin/env python 2 def parallelrange(rank,numprocs,globalsize): 3 """ 4 PARALLELRANGE - from a rank, and a number of processors, figure out a range, for parallel tasks. 5 6 Usage: 7 i1,i2=parallelrange(rank,numprocs,globalsize) 8 """ 1 #! / usr / bin / env python 2 def parallelrange(rank, numprocs, globalsize): 3 """ 4 PARALLELRANGE - from a rank, and a number of processors, figure out a range, for parallel tasks. 9 5 10 #We use floor. we under distribute rows. The rows left are then redistributed, therefore resulting in a more even distribution. 11 num_local_rows=[int(globalsize/numprocs) for i in range(numprocs)] 6 Usage: 7 i1, i2 = parallelrange(rank, numprocs, globalsize) 8 """ 12 9 13 #There may be some rows left. Distribute evenly.14 row_rest=globalsize - numprocs*int(globalsize/numprocs) 10 #We use floor. we under distribute rows. The rows left are then redistributed, therefore resulting in a more even distribution. 11 num_local_rows = [int(globalsize / numprocs) for i in range(numprocs)] 15 12 16 for i in range(row_rest): 17 num_local_rows[i]=num_local_rows[i]+1 13 #There may be some rows left. Distribute evenly. 14 row_rest = globalsize - numprocs * int(globalsize / numprocs) 18 15 19 i1=0 20 for i in range(rank-1): 21 i1+=num_local_rows[i] 22 i2=i1+num_local_rows[rank-1]-1 16 for i in range(row_rest): 17 num_local_rows[i] = num_local_rows[i] + 1 23 18 24 return i1,i2 19 i1 = 0 20 for i in range(rank - 1): 21 i1 += num_local_rows[i] 22 i2 = i1 + num_local_rows[rank - 1] - 1 25 23 24 return i1, i2 -
issm/trunk-jpl/src/m/miscellaneous/prctile_issm.py
r23095 r24213 2 2 from scipy.interpolate import interp1d 3 3 4 # 4 5 5 # wrapper for prctile to avoid using the matlab statistics toolbox. 6 # 7 def prctile_issm(x,p,dim): 6 def prctile_issm(x, p, dim): 8 7 9 10 8 try: 9 raise RuntimeError('hello world') 11 10 12 13 #y = np.percentile(x,p,dim,interpolation='higher')14 15 16 raise RuntimeError('Number of dimensions #d not implemented.'+str(len(np.shape(x))))11 #numpy has no interpolation method that matches matlab's percentile function 12 #y = np.percentile(x, p, dim, interpolation = 'higher') 13 except: 14 if len(np.shape(x)) > 2: 15 raise RuntimeError('Number of dimensions #d not implemented.' + str(len(np.shape(x)))) 17 16 18 # presumably at least 1 input value has been given 19 # np.shape(integer) -> (), must be at least (1,) 20 psize=np.shape(p) or (1,) 21 if len(psize) > 1 and np.size(p,1)>1: 22 p=p.T 23 24 xsize=np.shape(x) or (1,) 25 if dim==2: 26 x=x.T 17 # presumably at least 1 input value has been given 18 # np.shape(integer) - > (), must be at least (1, ) 19 psize = np.shape(p) or (1, ) 20 if len(psize) > 1 and np.size(p, 1) > 1: 21 p = p.T 27 22 28 # check for any NaN in any columns 29 if not np.isnan(x).any(): 30 x=np.sort(x,axis=0) 31 n=np.size(x,0) 23 xsize = np.shape(x) or (1, ) 24 if dim == 2: 25 x = x.T 32 26 33 # branch based on number of elements 34 if n>1: 35 # set up percent values and interpolate 36 xi=[((i+0.5)*100/n) for i in range(n)] 37 # scipy's interp1d returns a function 38 y=interp1d(xi,x,axis=dim,bounds_error=False) 39 y=y(p) 27 # check for any NaN in any columns 28 if not np.isnan(x).any(): 29 x = np.sort(x, axis=0) 30 n = np.size(x, 0) 40 31 41 # fill in high and low values outside of interp range 42 if p>xi[n-1]: 43 y=np.tile(x[n-1,:],1) 44 if p<xi[0]: 45 y=np.tile(x[0,:],1) 32 # branch based on number of elements 33 if n > 1: 34 # set up percent values and interpolate 35 xi = [((i + 0.5) * 100 / n) for i in range(n)] 36 # scipy's interp1d returns a function 37 y = interp1d(xi, x, axis=dim, bounds_error=False) 38 y = y(p) 46 39 47 # if one value, just copy it 48 elif n==1: 49 y=np.tile(x[0,:],(len(p),1)) 40 # fill in high and low values outside of interp range 41 if p > xi[n - 1]: 42 y = np.tile(x[n - 1, :], 1) 43 if p < xi[0]: 44 y = np.tile(x[0, :], 1) 50 45 51 # if no values, use NaN 52 else: 53 y=np.tile(float('NaN'),(size(p,0),size(x,0))) 54 else: 55 # must loop over columns, since number of elements could be different 56 y=np.zeros((np.size(p,0),np.size(x,1))) 57 for j in range(np.size(x,1)): 58 # remove any NaN and recursively call column 59 y[:,j]=prctile_issm(x[np.where(not np.isnan(x[:,j]),j)],p) 46 # if one value, just copy it 47 elif n == 1: 48 y = np.tile(x[0, :], (len(p), 1)) 60 49 61 if (np.min(xsize)==1 and len(xsize) > 1 and xsize[dim]>1 and len(p) > 1 and psize[1]>1) or (np.min(xsize)> 1 and dim==2): 62 y=y.T 50 # if no values, use NaN 51 else: 52 y = np.tile(float('NaN'), (np.size(p, 0), np.size(x, 0))) 53 else: 54 # must loop over columns, since number of elements could be different 55 y = np.zeros((np.size(p, 0), np.size(x, 1))) 56 for j in range(np.size(x, 1)): 57 # remove any NaN and recursively call column 58 y[:, j] = prctile_issm(x[np.where(not np.isnan(x[:, j]), j)], p) 63 59 64 return y 60 if (np.min(xsize) == 1 and len(xsize) > 1 and xsize[dim] > 1 and len(p) > 1 and psize[1] > 1) or (np.min(xsize) > 1 and dim == 2): 61 y = y.T 65 62 63 return y -
issm/trunk-jpl/src/m/modules/BamgConvertMesh.py
r20909 r24213 1 1 from BamgConvertMesh_python import BamgConvertMesh_python 2 2 3 def BamgConvertMesh(index,x,y):4 """5 BAMGCONVERTMESH - Convert [index, x, y] to a bamg geom and mesh geom6 3 7 Usage: 8 bamggeom, bamgmesh = BamgConvertMesh(index, x, y) 9 index: index of the mesh 10 x,y: coordinates of the nodes 11 """ 12 13 #Call mex module 14 bamggeom, bamgmesh = BamgConvertMesh_python(index,x,y) 4 def BamgConvertMesh(index, x, y): 5 """ 6 BAMGCONVERTMESH - Convert [index, x, y] to a bamg geom and mesh geom 15 7 16 #return 17 return bamggeom, bamgmesh 8 Usage: 9 bamggeom, bamgmesh = BamgConvertMesh(index, x, y) 10 index: index of the mesh 11 x, y: coordinates of the nodes 12 """ 13 14 #Call mex module 15 bamggeom, bamgmesh = BamgConvertMesh_python(index, x, y) 16 17 #return 18 return bamggeom, bamgmesh -
issm/trunk-jpl/src/m/modules/BamgMesher.py
r24115 r24213 7 7 8 8 Usage: 9 bamgmesh, bamggeom = BamgMesher(bamgmesh,bamggeom,bamgoptions);9 bamgmesh, bamggeom = BamgMesher(bamgmesh, bamggeom, bamgoptions) 10 10 11 11 bamgmesh: input bamg mesh -
issm/trunk-jpl/src/m/modules/BamgTriangulate.py
r20909 r24213 1 1 from BamgTriangulate_python import BamgTriangulate_python 2 2 3 def BamgTriangulate(x,y):4 """5 BAMGTRIANGULATE6 3 7 Usage: 8 index = BamgTriangulate(x,y) 4 def BamgTriangulate(x, y): 5 """ 6 BAMGTRIANGULATE 9 7 10 index: index of the triangulation 11 x,y: coordinates of the nodes 12 """ 8 Usage: 9 index = BamgTriangulate(x, y) 13 10 14 # Call mex module 15 index = BamgTriangulate_python(x,y) 16 # return 17 return index 11 index: index of the triangulation 12 x, y: coordinates of the nodes 13 """ 14 15 # Call mex module 16 index = BamgTriangulate_python(x, y) 17 # return 18 return index -
issm/trunk-jpl/src/m/modules/Chaco.py
r23231 r24213 1 1 from Chaco_python import Chaco_python 2 2 3 def Chaco(A,vwgts,ewgts,x,y,z,options,nparts,goal): 4 '''CHACO 3 4 def Chaco(A, vwgts, ewgts, x, y, z, options, nparts, goal): 5 '''CHACO 5 6 6 7 Usage: 7 assgn = Chaco(A, vwgts,ewgts,x,y,z,options,nparts,goal);8 assgn = Chaco(A, vwgts, ewgts, x, y, z, options, nparts, goal) 8 9 9 A: 10 vwgts: 11 ewgts: 12 x, y,z:coordinates for inertial method13 options: 14 nparts: 15 goal: 10 A: Input adjacency matrix 11 vwgts: weights for all vertices 12 ewgts: weights for all edges 13 x, y, z: coordinates for inertial method 14 options: architecture and partitioning options 15 nparts: number of parts options 16 goal: desired set sizes 16 17 ''' 17 # Call mex module 18 assgn = Chaco_python(A,vwgts,ewgts,x,y,z,options,nparts,goal) 19 20 return assgn 18 # Call mex module 19 assgn = Chaco_python(A, vwgts, ewgts, x, y, z, options, nparts, goal) 20 return assgn -
issm/trunk-jpl/src/m/modules/ContourToMesh.py
r20909 r24213 1 1 from ContourToMesh_python import ContourToMesh_python 2 2 3 def ContourToMesh(index,x,y,contourname,interptype,edgevalue):4 """5 6 CONTOURTOMESH - Flag the elements or nodes inside a contour7 3 8 Usage:9 [in_nod,in_elem]=ContourToMesh(index,x,y,contourname,interptype,edgevalue) 4 def ContourToMesh(index, x, y, contourname, interptype, edgevalue): 5 """ 10 6 11 index,x,y: mesh triangulation. 12 contourname: name of .exp file containing the contours. 13 interptype: string defining type of interpolation ('element', or 'node'). 14 edgevalue: integer (0, 1 or 2) defining the value associated to the nodes on the edges of the polygons. 15 in_nod: vector of flags (0 or 1), of size nel if interptype is set to 'node' or 'element and node', 16 or of size 0 otherwise. 17 in_elem: vector of flags (0 or 1), of size nel if interptype is set to 'element' or 'element and node', 18 or of size 0 otherwise. 7 CONTOURTOMESH - Flag the elements or nodes inside a contour 19 8 20 Example: 21 in_nod=ContourToMesh(md.elements,md.x,md.y,'Contour.exp','node',1) 22 in_elements=ContourToMesh(md.elements,md.x,md.y,'Contour.exp','element',0) 23 [in_nodes,in_elements]=ContourToMesh(md.elements,md.x,md.y,'Contour.exp','element and node',0) 24 """ 25 #Call mex module 26 in_nod,in_elem = ContourToMesh_python(index,x,y,contourname,interptype,edgevalue) 9 Usage: 10 [in_nod, in_elem] = ContourToMesh(index, x, y, contourname, interptype, edgevalue) 27 11 28 if interptype=='element': 29 return in_elem 30 elif interptype=='node': 31 return in_nod 32 elif interptype=='element and node': 33 return in_nod,in_elem 34 else: 35 raise TypeError('interpolation type "{}" not supported yet'.format(interptype)) 12 index, x, y: mesh triangulation. 13 contourname: name of .exp file containing the contours. 14 interptype: string defining type of interpolation ('element', or 'node'). 15 edgevalue: integer (0, 1 or 2) defining the value associated to the nodes on the edges of the polygons. 16 in_nod: vector of flags (0 or 1), of size nel if interptype is set to 'node' or 'element and node', 17 or of size 0 otherwise. 18 in_elem: vector of flags (0 or 1), of size nel if interptype is set to 'element' or 'element and node', 19 or of size 0 otherwise. 20 21 Example: 22 in_nod = ContourToMesh(md.elements, md.x, md.y, 'Contour.exp', 'node', 1) 23 in_elements = ContourToMesh(md.elements, md.x, md.y, 'Contour.exp', 'element', 0) 24 [in_nodes, in_elements] = ContourToMesh(md.elements, md.x, md.y, 'Contour.exp', 'element and node', 0) 25 """ 26 #Call mex module 27 in_nod, in_elem = ContourToMesh_python(index, x, y, contourname, interptype, edgevalue) 28 29 if interptype == 'element': 30 return in_elem 31 elif interptype == 'node': 32 return in_nod 33 elif interptype == 'element and node': 34 return in_nod, in_elem 35 else: 36 raise TypeError('interpolation type "{}" not supported yet'.format(interptype)) -
issm/trunk-jpl/src/m/modules/ContourToNodes.py
r20909 r24213 1 1 from ContourToNodes_python import ContourToNodes_python 2 2 3 def ContourToNodes(x,y,contourname,edgevalue):4 """5 CONTOURTONODES - flags vertices inside contour6 3 7 Usage: 8 flags = ContourToNodes(x,y,contourname,edgevalue); 4 def ContourToNodes(x, y, contourname, edgevalue): 5 """ 6 CONTOURTONODES - flags vertices inside contour 9 7 10 x,y: list of nodes 11 contourname: name of .exp file containing the contours, or resulting structure from call to expread 12 edgevalue: integer (0, 1 or 2) defining the value associated to the nodes on the edges of the polygons 13 flags: vector of flags (0 or 1), of size nodes 14 """ 8 Usage: 9 flags = ContourToNodes(x, y, contourname, edgevalue) 15 10 16 #Call mex module 17 flags = ContourToNodes_python(x,y,contourname,edgevalue) 11 x, y: list of nodes 12 contourname: name of .exp file containing the contours, or resulting structure from call to expread 13 edgevalue: integer (0, 1 or 2) defining the value associated to the nodes on the edges of the polygons 14 flags: vector of flags (0 or 1), of size nodes 15 """ 18 16 19 #return 20 return flags 17 #Call mex module 18 flags = ContourToNodes_python(x, y, contourname, edgevalue) 19 20 #return 21 return flags -
issm/trunk-jpl/src/m/modules/ElementConnectivity.py
r20909 r24213 1 1 from ElementConnectivity_python import ElementConnectivity_python 2 2 3 def ElementConnectivity(elements,nodeconnectivity):4 """5 ELEMENTCONNECTIVITY - Build element connectivity using node connectivity and elements6 3 7 Usage: 8 elementconnectivity = ElementConnectivity(elements,nodeconnectivity); 9 """ 10 #Call mex module 11 elementconnectivity = ElementConnectivity_python(elements,nodeconnectivity) 12 13 #Return 14 return elementconnectivity 4 def ElementConnectivity(elements, nodeconnectivity): 5 """ 6 ELEMENTCONNECTIVITY - Build element connectivity using node connectivity and elements 7 8 Usage: 9 elementconnectivity = ElementConnectivity(elements, nodeconnectivity) 10 """ 11 #Call mex module 12 elementconnectivity = ElementConnectivity_python(elements, nodeconnectivity) 13 14 #Return 15 return elementconnectivity -
issm/trunk-jpl/src/m/modules/InterpFromGridToMesh.py
r20909 r24213 1 1 from InterpFromGridToMesh_python import InterpFromGridToMesh_python 2 2 3 def InterpFromGridToMesh(x,y,data,x_mesh,y_mesh,default_value): 4 """ 5 INTERPFROMGRIDTOMESH - Interpolation from a grid onto a list of points 3 4 def InterpFromGridToMesh(x, y, data, x_mesh, y_mesh, default_value): 5 """ 6 INTERPFROMGRIDTOMESH - Interpolation from a grid onto a list of points 6 7 7 8 Usage: 8 data_mesh =InterpFromGridToMesh(x,y,data,x_mesh,y_mesh,default_value);9 data_mesh = InterpFromGridToMesh(x, y, data, x_mesh, y_mesh, default_value) 9 10 10 data: 11 x, y:coordinates of matrix data (x and y must be in increasing order)12 x_mesh, y_mesh:coordinates of the points onto which we interpolate13 default_value:vector of mesh interpolated data11 data: matrix holding the data to be interpolated onto the mesh 12 x, y: coordinates of matrix data (x and y must be in increasing order) 13 x_mesh, y_mesh: coordinates of the points onto which we interpolate 14 default_value: vector of mesh interpolated data 14 15 15 16 load('velocities.mat'); 17 md.inversion.vx_obs=InterpFromGridToMesh(x_n,y_m,vx,md.mesh.x,md.mesh.y,0); 18 19 20 data_mesh=InterpFromGridToMesh_python(x,y,data,x_mesh,y_mesh,default_value)21 22 16 Example: 17 load('velocities.mat') 18 md.inversion.vx_obs = InterpFromGridToMesh(x_n, y_m, vx, md.mesh.x, md.mesh.y, 0) 19 """ 20 # Call mex module 21 data_mesh = InterpFromGridToMesh_python(x, y, data, x_mesh, y_mesh, default_value) 22 # Return 23 return data_mesh -
issm/trunk-jpl/src/m/modules/InterpFromMeshToGrid.py
r21828 r24213 1 1 from InterpFromMeshToGrid_python import InterpFromMeshToGrid_python 2 2 3 def InterpFromMeshToGrid(index,x,y,data,xgrid,ygrid,default_value):4 """5 INTERPFROMMESHTOGRID - Interpolation of a data defined on a mesh onto a grid6 3 7 This function is a multi-threaded mex file that interpolates a field defined 8 on a triangular mesh onto a regular grid 4 def InterpFromMeshToGrid(index, x, y, data, xgrid, ygrid, default_value): 5 """ 6 INTERPFROMMESHTOGRID - Interpolation of a data defined on a mesh onto a grid 9 7 10 index,x,y: delaunay triangulation defining the mesh 11 meshdata: vertex values of data to be interpolated8 This function is a multi - threaded mex file that interpolates a field defined 9 on a triangular mesh onto a regular grid 12 10 13 xgrid,ygrid,: parameters that define the grid 14 default_value: value of points located out of the mesh 15 """ 16 # Call mex module 17 grid=InterpFromMeshToGrid_python(index,x,y,data,xgrid,ygrid,default_value) 18 # Return 19 return grid 11 index, x, y: delaunay triangulation defining the mesh 12 meshdata: vertex values of data to be interpolated 13 14 xgrid, ygrid, : parameters that define the grid 15 default_value: value of points located out of the mesh 16 """ 17 # Call mex module 18 grid = InterpFromMeshToGrid_python(index, x, y, data, xgrid, ygrid, default_value) 19 # Return 20 return grid -
issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh2d.py
r23168 r24213 1 from InterpFromMeshToMesh2d_python import InterpFromMeshToMesh2d_python 1 from InterpFromMeshToMesh2d_python import InterpFromMeshToMesh2d_python 2 2 3 3 4 def InterpFromMeshToMesh2d(*args): 4 5 5 """ 6 INTERPFROMMESHTOMESH2D - Interpolation from a 2d triangular mesh onto a list of points 6 7 7 Usage: 8 data_interp=InterpFromMeshToMesh2d(index,x,y,data,x_interp,y_interp); 9 or data_interp=InterpFromMeshToMesh2d(index,x,y,data,x_interp,y_interp,OPTIONS); 10 11 index: index of the mesh where data is defined (e.g. md.mesh.elements) 12 x,y: coordinates of the nodes where data is defined 13 data: matrix holding the data to be interpolated onto the mesh (one column per field) 14 x_interp,y_interp: coordinates of the points onto which we interpolate 15 data_interp: vector of mesh interpolated data 16 Available options: 17 default: default value if point is outsite of triangulation (instead of linear interpolation) 8 Usage: 9 data_interp = InterpFromMeshToMesh2d(index, x, y, data, x_interp, y_interp) 10 or data_interp = InterpFromMeshToMesh2d(index, x, y, data, x_interp, y_interp, OPTIONS) 18 11 19 Example: 20 load('temperature.mat'); 21 md.initialization.temperature=InterpFromMeshToMesh2d(index,x,y,temperature,md.mesh.x,md.mesh.y); 22 md.initialization.temperature=InterpFromMeshToMesh2d(index,x,y,temperature,md.mesh.x,md.mesh.y,'default',253); 23 """ 24 # Call mex module 25 data_interp = InterpFromMeshToMesh2d_python(*args) 26 # Return 27 return data_interp 12 index: index of the mesh where data is defined (e.g. md.mesh.elements) 13 x, y: coordinates of the nodes where data is defined 14 data: matrix holding the data to be interpolated onto the mesh (one column per field) 15 x_interp, y_interp: coordinates of the points onto which we interpolate 16 data_interp: vector of mesh interpolated data 17 Available options: 18 default: default value if point is outsite of triangulation (instead of linear interpolation) 19 20 Example: 21 load('temperature.mat') 22 md.initialization.temperature = InterpFromMeshToMesh2d(index, x, y, temperature, md.mesh.x, md.mesh.y) 23 md.initialization.temperature = InterpFromMeshToMesh2d(index, x, y, temperature, md.mesh.x, md.mesh.y, 'default', 253) 24 """ 25 # Call mex module 26 data_interp = InterpFromMeshToMesh2d_python(*args) 27 # Return 28 return data_interp -
issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh3d.py
r20909 r24213 1 1 from InterpFromMeshToMesh3d_python import InterpFromMeshToMesh3d_python 2 2 3 def InterpFromMeshToMesh3d(index,x,y,z,data,x_prime,y_prime,z_prime,default_value): 4 """ 5 INTERPFROMMESHTOMESH3D - Interpolation from a 3d hexahedron mesh onto a list of points 3 4 def InterpFromMeshToMesh3d(index, x, y, z, data, x_prime, y_prime, z_prime, default_value): 5 """ 6 INTERPFROMMESHTOMESH3D - Interpolation from a 3d hexahedron mesh onto a list of points 6 7 7 8 Usage: 8 index: 9 x, y,z:coordinates of the nodes where data is defined10 data: 11 x_prime, y_prime,z_prime:coordinates of the points onto which we interpolate12 default_value: 13 data_prime: 9 index: index of the mesh where data is defined 10 x, y, z: coordinates of the nodes where data is defined 11 data: matrix holding the data to be interpolated onto the mesh 12 x_prime, y_prime, z_prime: coordinates of the points onto which we interpolate 13 default_value: default value if no data is found (holes) 14 data_prime: vector of mesh interpolated data 14 15 15 16 Example: 16 load('temperature.mat') ;17 md.initialization.temperature =InterpFromMeshToMesh3d(index,x,y,z,temperature,md.mesh.x,md.mesh.y,md.mesh.z,253);18 19 20 data_prime = InterpFromMeshToMesh3d_python(index,x,y,z,data,x_prime,y_prime,z_prime,default_value)21 22 23 17 load('temperature.mat') 18 md.initialization.temperature = InterpFromMeshToMesh3d(index, x, y, z, temperature, md.mesh.x, md.mesh.y, md.mesh.z, 253) 19 """ 20 # Call mex module 21 data_prime = InterpFromMeshToMesh3d_python(index, x, y, z, data, x_prime, y_prime, z_prime, default_value) 22 23 # Return 24 return data_prime -
issm/trunk-jpl/src/m/modules/IssmConfig.py
r20909 r24213 1 1 from IssmConfig_python import IssmConfig_python 2 2 3 3 4 def IssmConfig(string): 4 5 5 """ 6 ISSMCONFIG 6 7 7 8 value = IssmConfig('string'); 9 8 Usage: 9 value = IssmConfig('string') 10 """ 10 11 11 # Call mex module 12 value = IssmConfig_python(string) 13 # Return 14 return value 15 12 # Call mex module 13 value = IssmConfig_python(string) 14 # Return 15 return value -
issm/trunk-jpl/src/m/modules/MeshPartition.py
r23716 r24213 1 1 from MeshPartition_python import MeshPartition_python 2 3 2 from mesh3dprisms import * 4 3 from mesh2d import * 5 4 from mesh2dvertical import * 6 5 7 def MeshPartition(md,numpartitions):8 '''MESHPARTITION - Partition mesh according to the number of areas, using Metis library.9 6 10 Usage:11 [element_partitioning,node_partitioning]=MeshPartition(md.mesh,numpartitions) 7 def MeshPartition(md, numpartitions): 8 '''MESHPARTITION - Partition mesh according to the number of areas, using Metis library. 12 9 13 element_partitioning: Vector of partitioning area numbers, for every element. 14 node_partitioning: Vector of partitioning area numbers, for every node. 10 Usage: 11 [element_partitioning, node_partitioning] = MeshPartition(md.mesh, numpartitions) 12 13 element_partitioning: Vector of partitioning area numbers, for every element. 14 node_partitioning: Vector of partitioning area numbers, for every node. 15 15 ''' 16 if md == None or numpartitions ==None:17 18 16 if md is None or numpartitions is None: 17 print((MeshPartition.__doc__)) 18 raise RuntimeError('Wrong usage (see above)') 19 19 20 #Get mesh info from md.mesh 21 numberofvertices = md.mesh.numberofvertices 22 numberofelements = md.mesh.numberofelements 23 elements = md.mesh.elements 24 numberofelements2d = 0 25 numberofvertices2d = 0 26 numberoflayers = 1 27 elements2d = [] 28 if isinstance(md.mesh,mesh3dprisms): 29 elementtype = 'Penta' 30 numberofelements2d = md.mesh.numberofelements2d 31 numberofvertices2d = md.mesh.numberofvertices2d 32 numberoflayers = md.mesh.numberoflayers 33 elements2d = md.mesh.elements2d 34 elif isinstance(md.mesh,mesh2d): 35 elementtype = 'Tria' 36 elif isinstance(md.mesh,mesh2dvertical): 37 elementtype = 'Tria' 20 #Get mesh info from md.mesh 21 numberofvertices = md.mesh.numberofvertices 22 elements = md.mesh.elements 23 numberofvertices2d = 0 24 numberoflayers = 1 25 elements2d = [] 26 if isinstance(md.mesh, mesh3dprisms): 27 elementtype = 'Penta' 28 numberofvertices2d = md.mesh.numberofvertices2d 29 numberoflayers = md.mesh.numberoflayers 30 elements2d = md.mesh.elements2d 31 elif isinstance(md.mesh, mesh2d): 32 elementtype = 'Tria' 33 elif isinstance(md.mesh, mesh2dvertical): 34 elementtype = 'Tria' 38 35 39 40 [element_partitioning, node_partitioning] = MeshPartition_python(numberofvertices, elements, numberofvertices2d, elements2d, numberoflayers,elementtype, numpartitions)36 #Call module 37 [element_partitioning, node_partitioning] = MeshPartition_python(numberofvertices, elements, numberofvertices2d, elements2d, numberoflayers, elementtype, numpartitions) 41 38 42 39 return [element_partitioning, node_partitioning] -
issm/trunk-jpl/src/m/modules/MeshProfileIntersection.py
r20909 r24213 1 1 from MeshProfileIntersection_python import MeshProfileIntersection_python 2 2 3 def MeshProfileIntersection(index,x,y,filename):4 """5 MESHPROFILEINTERSECTION - Takes a .exp file (made of several profiles), and figures out its intersection with a mesh6 Usage:7 [segments]=MeshProfileIntersection(index,x,y,filename);8 9 input:10 index,x,y is a triangulation11 filename: name of Argus style .exp file containing the segments (can be groups of disconnected segments)12 3 13 output: 14 segments: array made of x1,y1,x2,y2,element_id lines (x1,y1) and (x2,y2) are segment extremities for a segment 15 belonging to the elemnt_id element. there are as many lines in segments as there are segments intersecting the 16 mesh. 17 """ 18 19 # Call mex module 20 segments = MeshProfileIntersection_python(index,x,y,filename) 4 def MeshProfileIntersection(index, x, y, filename): 5 """ 6 MESHPROFILEINTERSECTION - Takes a .exp file (made of several profiles), and figures out its intersection with a mesh 7 Usage: 8 [segments] = MeshProfileIntersection(index, x, y, filename) 21 9 22 # Return 23 return segments 10 input: 11 index, x, y is a triangulation 12 filename: name of Argus style .exp file containing the segments (can be groups of disconnected segments) 13 14 output: 15 segments: array made of x1, y1, x2, y2, element_id lines (x1, y1) and (x2, y2) are segment extremities for a segment 16 belonging to the elemnt_id element. there are as many lines in segments as there are segments intersecting the 17 mesh. 18 """ 19 20 # Call mex module 21 segments = MeshProfileIntersection_python(index, x, y, filename) 22 23 # Return 24 return segments -
issm/trunk-jpl/src/m/modules/NodeConnectivity.py
r20909 r24213 1 1 from NodeConnectivity_python import NodeConnectivity_python 2 2 3 def NodeConnectivity(elements,numnodes):4 """5 NODECONNECTIVITY - Build node connectivity from elements6 3 7 Usage: 8 connectivity = NodeConnectivity(elements, numnodes); 9 """ 10 # Call mex module 11 connectivity = NodeConnectivity_python(elements,numnodes) 4 def NodeConnectivity(elements, numnodes): 5 """ 6 NODECONNECTIVITY - Build node connectivity from elements 12 7 13 # Return 14 return connectivity 8 Usage: 9 connectivity = NodeConnectivity(elements, numnodes) 10 """ 11 # Call mex module 12 connectivity = NodeConnectivity_python(elements, numnodes) 15 13 14 # Return 15 return connectivity -
issm/trunk-jpl/src/m/modules/ProcessRifts.py
r22498 r24213 1 1 from ProcessRifts_python import ProcessRifts_python 2 2 3 def ProcessRifts(index1,x1,y1,segments1,segmentmarkers1):4 """5 TRIMESHPROCESSRIFTS - Split a mesh where a rift (or fault) is present6 3 7 Usage: 8 [index2,x2,y2,segments2,segmentmarkers2,rifts2]=ProcessRifts(index1,x1,y1,segments1,segmentmarkers1); 4 def ProcessRifts(index1, x1, y1, segments1, segmentmarkers1): 5 """ 6 TRIMESHPROCESSRIFTS - Split a mesh where a rift (or fault) is present 9 7 10 (index1,x1,y1,segments1,segmentmarkers1): An initial triangulation. 11 [index2,x2,y2,segments2,segmentmarkers2,rifts2]: The resulting triangulation where rifts have been processed. 12 """ 13 # Call mex module 14 index2,x2,y2,segments2,segmentmarkers2,rifts2 = ProcessRifts_python(index1,x1,y1,segments1,segmentmarkers1) 15 # Return 16 return index2,x2,y2,segments2,segmentmarkers2,rifts2 8 Usage: 9 [index2, x2, y2, segments2, segmentmarkers2, rifts2] = ProcessRifts(index1, x1, y1, segments1, segmentmarkers1) 10 11 (index1, x1, y1, segments1, segmentmarkers1): An initial triangulation. 12 [index2, x2, y2, segments2, segmentmarkers2, rifts2]: The resulting triangulation where rifts have been processed. 13 """ 14 # Call mex module 15 index2, x2, y2, segments2, segmentmarkers2, rifts2 = ProcessRifts_python(index1, x1, y1, segments1, segmentmarkers1) 16 # Return 17 return index2, x2, y2, segments2, segmentmarkers2, rifts2 -
issm/trunk-jpl/src/m/modules/Scotch.py
r23231 r24213 1 1 from Scotch_python import Scotch_python 2 2 3 def Scotch(*varargin): 4 '''SCOTCH - Scotch partitioner 3 4 def Scotch(* varargin): 5 '''SCOTCH - Scotch partitioner 5 6 6 7 Usage: 7 maptab =Scotch(adjmat,vertlb,vertwt,edgewt,archtyp,archpar,Scotch-specific parameters)8 maptab = Scotch(adjmat, vertlb, vertwt, edgewt, archtyp, archpar, Scotch - specific parameters) 8 9 ''' 9 10 maptab=Scotch_python(*varargin)10 # Call mex module 11 maptab = Scotch_python(* varargin) 11 12 12 13 return maptab -
issm/trunk-jpl/src/m/os/issmdir.py
r17480 r24213 2 2 import MatlabFuncs as m 3 3 4 4 5 def issmdir(): 5 """ 6 ISSMDIR - Get ISSM_DIR environment variable 7 8 Usage: 9 ISSM_DIR=issmdir() 10 """ 6 """ 7 ISSMDIR - Get ISSM_DIR environment variable 11 8 12 if not m.ispc(): 13 ISSM_DIR =os.environ['ISSM_DIR'] 14 else: 15 ISSM_DIR =os.environ['ISSM_DIR_WIN'] 16 if m.strcmpi(ISSM_DIR[-1],'/') or m.strcmpi(ISSM_DIR[-1],'\\'): 17 ISSM_DIR = ISSM_DIR[:-1] #shave off the last '/' 9 Usage: 10 ISSM_DIR = issmdir() 11 """ 18 12 19 if not ISSM_DIR: 20 raise RuntimeError("issmdir error message: 'ISSM_DIR' environment variable is empty! You should define ISSM_DIR in your .cshrc or .bashrc!") 13 if not m.ispc(): 14 ISSM_DIR = os.environ['ISSM_DIR'] 15 else: 16 ISSM_DIR = os.environ['ISSM_DIR_WIN'] 17 if m.strcmpi(ISSM_DIR[-1], '/') or m.strcmpi(ISSM_DIR[-1], '\\'): 18 ISSM_DIR = ISSM_DIR[: - 1] #shave off the last '/' 21 19 22 return ISSM_DIR 20 if not ISSM_DIR: 21 raise RuntimeError("issmdir error message: 'ISSM_DIR' environment variable is empty! You should define ISSM_DIR in your .cshrc or .bashrc!") 23 22 23 return ISSM_DIR -
issm/trunk-jpl/src/m/os/issmscpin.py
r23772 r24213 5 5 import MatlabFuncs as m 6 6 7 def issmscpin(host, login,port,path, packages):8 """9 ISSMSCPIN get packages from host, using scp on unix, and pscp on windows10 7 11 usage: issmscpin(host,packages,path) 12 """ 8 def issmscpin(host, login, port, path, packages): 9 """ 10 ISSMSCPIN get packages from host, using scp on unix, and pscp on windows 13 11 14 #first get hostname 15 hostname=gethostname() 12 usage: issmscpin(host, packages, path) 13 """ 16 14 17 #first be sure packages are not in the current directory, this could conflict with pscp on windows. 18 #remove warnings in case the files do not exist 19 for package in packages: 20 try: 21 os.remove(package) 22 except OSError as e: 23 pass 15 #first get hostname 16 hostname = gethostname() 24 17 25 #if hostname and host are the same, do a simple copy 26 if m.strcmpi(hostname,host): 18 #first be sure packages are not in the current directory, this could conflict with pscp on windows. 19 #remove warnings in case the files do not exist 20 for package in packages: 21 try: 22 os.remove(package) 23 except OSError as e: 24 pass 27 25 28 for package in packages: 29 try: 30 shutil.copy(os.path.join(path,package),os.getcwd()) #keep going, even if success=0 31 except OSError as e: 32 pass 26 #if hostname and host are the same, do a simple copy 27 if m.strcmpi(hostname, host): 33 28 34 else: 35 if m.ispc(): 36 #use the putty project pscp.exe: it should be in the path. 37 #get ISSM_DIR variable 38 if 'ISSM_DIR_WIN' in os.environ: 39 ISSM_DIR=os.environ['ISSM_DIR_WIN'][1:-2] 40 else: 41 raise OSError("issmscpin error message: could not find ISSM_DIR_WIN environment variable.") 29 for package in packages: 30 try: 31 shutil.copy(os.path.join(path, package), os.getcwd()) #keep going, even if success = 0 32 except OSError as e: 33 pass 42 34 43 username=eval(input('Username: (quoted string) ')) 44 key=eval(input('Key: (quoted string) ')) 35 else: 36 if m.ispc(): 37 #use the putty project pscp.exe: it should be in the path. 38 #get ISSM_DIR variable 39 if 'ISSM_DIR_WIN' in os.environ: 40 ISSM_DIR = os.environ['ISSM_DIR_WIN'][1: - 2] 41 else: 42 raise OSError("issmscpin error message: could not find ISSM_DIR_WIN environment variable.") 45 43 46 for package in packages: 47 try: 48 subprocess.check_call('%s/externalpackages/ssh/pscp.exe -l "%s" -pw "%s" %s:%s %s' % (ISSM_DIR,username,key,host,os.path.join(path,package),os.getcwd()),shell=True) 49 except CalledProcessError as e: 50 raise CalledProcessError("issmscpin error message: could not call putty pscp.") 44 username = eval(input('Username: (quoted string) ')) 45 key = eval(input('Key: (quoted string) ')) 51 46 52 else: 53 #just use standard unix scp 54 #string to copy multiple files using scp: 55 string="'{"+','.join([str(x) for x in packages])+"}'" 56 if port: 57 subprocess.call('scp -P {} {}@localhost:{} {}/. '.format(port,login,os.path.join(path,string),os.getcwd()),shell=True) 58 else: 59 subprocess.call('scp -T {}@{}:{} {}/.'.format(login,host,os.path.join(path,string),os.getcwd()),shell=True) 60 #check scp worked 61 for package in packages: 62 if not os.path.exists(os.path.join('.',package)): 63 raise OSError("issmscpin error message: could not call scp on *nix system for file '{}'".format(package)) 47 for package in packages: 48 try: 49 subprocess.check_call('%s/externalpackages/ssh/pscp.exe -l "%s" -pw "%s" %s:%s %s' % (ISSM_DIR, username, key, host, os.path.join(path, package), os.getcwd()), shell=True) 50 except CalledProcessError as e: 51 raise CalledProcessError("issmscpin error message: could not call putty pscp.") 52 53 else: 54 #just use standard unix scp 55 #string to copy multiple files using scp: 56 string = "'{" + ','.join([str(x) for x in packages]) + "}'" 57 if port: 58 subprocess.call('scp -P {} {}@localhost:{} {}/. '.format(port, login, os.path.join(path, string), os.getcwd()), shell=True) 59 else: 60 subprocess.call('scp -T {}@{}:{} {}/.'.format(login, host, os.path.join(path, string), os.getcwd()), shell=True) 61 #check scp worked 62 for package in packages: 63 if not os.path.exists(os.path.join('.', package)): 64 raise OSError("issmscpin error message: could not call scp on * nix system for file '{}'".format(package)) -
issm/trunk-jpl/src/m/os/issmscpout.py
r23716 r24213 1 from socket 1 from socket import gethostname 2 2 import subprocess 3 3 import os 4 4 import MatlabFuncs as m 5 5 6 def issmscpout(host,path,login,port,packages):7 """8 ISSMSCPOUT send packages to a host, using scp on unix, and pscp on windows9 10 usage: issmscpout(host,path,packages)11 """12 6 13 #get hostname 14 hostname=gethostname(); 7 def issmscpout(host, path, login, port, packages): 8 """ 9 ISSMSCPOUT send packages to a host, using scp on unix, and pscp on windows 15 10 16 #if hostname and host are the same, do a simple copy 11 usage: issmscpout(host, path, packages) 12 """ 17 13 18 if m.strcmpi(host,hostname): 19 for package in packages: 20 here=os.getcwd() 21 os.chdir(path) 22 try: 23 os.remove(package) 24 except OSError as e: 25 pass 26 subprocess.call('ln -s %s %s' % (os.path.join(here,package),path),shell=True) 27 os.chdir(here) 28 else: 29 if m.ispc(): 30 #use the putty project pscp.exe: it should be in the path. 31 32 #get ISSM_DIR variable 33 if 'ISSM_DIR_WIN' in os.environ: 34 ISSM_DIR=os.environ['ISSM_DIR_WIN'][1:-2] 35 else: 36 raise OSError("issmscpout error message: could not find ISSM_DIR_WIN environment variable.") 14 #get hostname 15 hostname = gethostname() 37 16 38 username=eval(input('Username: (quoted string) ')) 39 key=eval(input('Key: (quoted string) ')) 17 #if hostname and host are the same, do a simple copy 40 18 41 for package in packages: 42 try: 43 subprocess.check_call('%s/externalpackages/ssh/pscp.exe -l "%s" -pw "%s" %s %s:%s' % (ISSM_DIR,username,key,package,host,path),shell=True) 44 except CalledProcessError as e: 45 raise CalledProcessError("issmscpout error message: could not call putty pscp.") 19 if m.strcmpi(host, hostname): 20 for package in packages: 21 here = os.getcwd() 22 os.chdir(path) 23 try: 24 os.remove(package) 25 except OSError: 26 pass 27 subprocess.call('ln -s %s %s' % (os.path.join(here, package), path), shell=True) 28 os.chdir(here) 29 else: 30 if m.ispc(): 31 #use the putty project pscp.exe: it should be in the path. 32 #get ISSM_DIR variable 33 if 'ISSM_DIR_WIN' in os.environ: 34 ISSM_DIR = os.environ['ISSM_DIR_WIN'][1: - 2] 35 else: 36 raise OSError("issmscpout error message: could not find ISSM_DIR_WIN environment variable.") 46 37 47 else: 48 #just use standard unix scp 49 #create string of packages being sent 50 string='' 51 for package in packages: 52 string+=' '+package 53 string+=' ' 54 55 if port: 56 subprocess.call('scp -P %d %s %s@localhost:%s' % (port,string,login,path),shell=True) 57 else: 58 subprocess.call('scp %s %s@%s:%s' % (string,login,host,path),shell=True) 38 username = eval(input('Username: (quoted string) ')) 39 key = eval(input('Key: (quoted string) ')) 59 40 41 for package in packages: 42 try: 43 subprocess.check_call('%s/externalpackages/ssh/pscp.exe -l "%s" -pw "%s" %s %s:%s' % (ISSM_DIR, username, key, package, host, path), shell=True) 44 except CalledProcessError as e: 45 raise CalledProcessError("issmscpout error message: could not call putty pscp.") 46 47 else: 48 #just use standard unix scp 49 #create string of packages being sent 50 string = '' 51 for package in packages: 52 string += ' ' + package 53 string += ' ' 54 55 if port: 56 subprocess.call('scp - P %d %s %s@localhost:%s' % (port, string, login, path), shell=True) 57 else: 58 subprocess.call('scp %s %s@%s:%s' % (string, login, host, path), shell=True) -
issm/trunk-jpl/src/m/os/issmssh.py
r23716 r24213 5 5 import MatlabFuncs as m 6 6 7 def issmssh(host,login,port,command):8 """9 ISSMSSH - wrapper for OS independent ssh command.10 11 usage:12 issmssh(host,command)13 """14 7 15 #first get hostname 16 hostname=gethostname() 8 def issmssh(host, login, port, command): 9 """ 10 ISSMSSH - wrapper for OS independent ssh command. 17 11 18 #if same as host, just run the command. 19 if m.strcmpi(host,hostname): 20 subprocess.call(command,shell=True) 21 else: 22 if m.ispc(): 23 #use the putty project plink.exe: it should be in the path. 24 25 #get ISSM_DIR variable 26 if 'ISSM_DIR_WIN' in os.environ: 27 ISSM_DIR=os.environ['ISSM_DIR_WIN'][1:-2] 28 else: 29 raise OSError("issmssh error message: could not find ISSM_DIR_WIN environment variable.") 12 usage: 13 issmssh(host, command) 14 """ 30 15 31 username=eval(input('Username: (quoted string) ')) 32 key=eval(input('Key: (quoted string) '))16 #first get hostname 17 hostname = gethostname() 33 18 34 subprocess.call('%s/externalpackages/ssh/plink.exe -ssh -l "%s" -pw "%s" %s "%s"' % (ISSM_DIR,username,key,host,command),shell=True); 19 #if same as host, just run the command. 20 if m.strcmpi(host, hostname): 21 subprocess.call(command, shell=True) 22 else: 23 if m.ispc(): 24 #use the putty project plink.exe: it should be in the path. 25 #get ISSM_DIR variable 26 if 'ISSM_DIR_WIN' in os.environ: 27 ISSM_DIR = os.environ['ISSM_DIR_WIN'][1: - 2] 28 else: 29 raise OSError("issmssh error message: could not find ISSM_DIR_WIN environment variable.") 35 30 36 else: 37 #just use standard unix ssh 38 if port: 39 subprocess.call('ssh -l %s -p %d localhost "%s"' % (login,port,command),shell=True) 40 else: 41 subprocess.call('ssh -l %s %s "%s"' % (login,host,command),shell=True) 31 username = eval(input('Username: (quoted string) ')) 32 key = eval(input('Key: (quoted string) ')) 42 33 43 # The following code was added to fix: 44 # "IOError: [Errno 35] Resource temporarily unavailable" 45 # on the Mac when trying to display md after the solution. 46 # (from http://code.google.com/p/robotframework/issues/detail?id=995) 34 subprocess.call('%s/externalpackages/ssh/plink.exe-ssh - l "%s" - pw "%s" %s "%s"' % (ISSM_DIR, username, key, host, command), shell=True) 47 35 48 if _platform == "darwin": 49 # Make FreeBSD use blocking I/O like other platforms 50 import sys 51 import fcntl 52 from os import O_NONBLOCK 53 54 fd = sys.stdin.fileno() 55 flags = fcntl.fcntl(fd, fcntl.F_GETFL) 56 fcntl.fcntl(fd, fcntl.F_SETFL, flags & ~O_NONBLOCK) 57 58 fd = sys.stdout.fileno() 59 flags = fcntl.fcntl(fd, fcntl.F_GETFL) 60 fcntl.fcntl(fd, fcntl.F_SETFL, flags & ~O_NONBLOCK) 36 else: 37 #just use standard unix ssh 38 if port: 39 subprocess.call('ssh - l %s - p %d localhost "%s"' % (login, port, command), shell=True) 40 else: 41 subprocess.call('ssh - l %s %s "%s"' % (login, host, command), shell=True) 61 42 43 # The following code was added to fix: 44 # "IOError: [Errno 35] Resource temporarily unavailable" 45 # on the Mac when trying to display md after the solution. 46 # (from http: / / code.google.com / p / robotframework / issues / detail?id = 995) 47 if _platform == "darwin": 48 # Make FreeBSD use blocking I / O like other platforms 49 import sys 50 import fcntl 51 from os import O_NONBLOCK 52 53 fd = sys.stdin.fileno() 54 flags = fcntl.fcntl(fd, fcntl.F_GETFL) 55 fcntl.fcntl(fd, fcntl.F_SETFL, flags & ~O_NONBLOCK) 56 57 fd = sys.stdout.fileno() 58 flags = fcntl.fcntl(fd, fcntl.F_GETFL) 59 fcntl.fcntl(fd, fcntl.F_SETFL, flags & ~O_NONBLOCK) -
issm/trunk-jpl/src/m/parameterization/contourenvelope.py
r23716 r24213 4 4 from NodeConnectivity import NodeConnectivity 5 5 from ElementConnectivity import ElementConnectivity 6 from mesh2d import mesh2d 7 from mesh3dprisms import mesh3dprisms 6 from ContourToMesh import ContourToMesh 8 7 import MatlabFuncs as m 9 8 10 def contourenvelope(md,*args):11 """12 CONTOURENVELOPE - build a set of segments enveloping a contour .exp13 9 14 Usage: 15 segments=contourenvelope(md,varargin) 10 def contourenvelope(md, *args): 11 """ 12 CONTOURENVELOPE - build a set of segments enveloping a contour .exp 16 13 17 Example: 18 segments=contourenvelope(md,'Stream.exp'); 19 segments=contourenvelope(md); 20 """ 14 Usage: 15 segments = contourenvelope(md, varargin) 21 16 22 #some checks 23 if len(args)>1: 24 raise RuntimeError("contourenvelope error message: bad usage") 17 Example: 18 segments = contourenvelope(md, 'Stream.exp') 19 segments = contourenvelope(md) 20 """ 25 21 26 if len(args)==1: 27 flags=args[0] 22 #some checks 23 if len(args) > 1: 24 raise RuntimeError("contourenvelope error message: bad usage") 28 25 29 if isinstance(flags,str): 30 file=flags 31 if not os.path.exists(file): 32 raise IOError("contourenvelope error message: file '%s' not found" % file) 33 isfile=1 34 elif isinstance(flags,(bool,int,float)): 35 #do nothing for now 36 isfile=0 37 else: 38 raise TypeError("contourenvelope error message: second argument should be a file or an elements flag") 26 if len(args) == 1: 27 flags = args[0] 39 28 40 #Now, build the connectivity tables for this mesh. 41 #Computing connectivity 42 if np.size(md.mesh.vertexconnectivity,axis=0)!=md.mesh.numberofvertices and np.size(md.mesh.vertexconnectivity,axis=0)!=md.mesh.numberofvertices2d: 43 md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices)[0] 44 if np.size(md.mesh.elementconnectivity,axis=0)!=md.mesh.numberofelements and np.size(md.mesh.elementconnectivity,axis=0)!=md.mesh.numberofelements2d: 45 md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity)[0] 29 if isinstance(flags, str): 30 file = flags 31 if not os.path.exists(file): 32 raise IOError("contourenvelope error message: file '%s' not found" % file) 33 isfile = 1 34 elif isinstance(flags, (bool, int, float)): 35 #do nothing for now 36 isfile = 0 37 else: 38 raise TypeError("contourenvelope error message: second argument should be a file or an elements flag") 46 39 47 #get nodes inside profile 48 elementconnectivity=copy.deepcopy(md.mesh.elementconnectivity) 49 if md.mesh.dimension()==2: 50 elements=copy.deepcopy(md.mesh.elements) 51 x=copy.deepcopy(md.mesh.x) 52 y=copy.deepcopy(md.mesh.y) 53 numberofvertices=copy.deepcopy(md.mesh.numberofvertices) 54 numberofelements=copy.deepcopy(md.mesh.numberofelements) 55 else: 56 elements=copy.deepcopy(md.mesh.elements2d) 57 x=copy.deepcopy(md.mesh.x2d) 58 y=copy.deepcopy(md.mesh.y2d) 59 numberofvertices=copy.deepcopy(md.mesh.numberofvertices2d) 60 numberofelements=copy.deepcopy(md.mesh.numberofelements2d) 40 #Now, build the connectivity tables for this mesh. 41 #Computing connectivity 42 if np.size(md.mesh.vertexconnectivity, axis=0) != md.mesh.numberofvertices and np.size(md.mesh.vertexconnectivity, axis=0) != md.mesh.numberofvertices2d: 43 md.mesh.vertexconnectivity = NodeConnectivity(md.mesh.elements, md.mesh.numberofvertices)[0] 44 if np.size(md.mesh.elementconnectivity, axis=0) != md.mesh.numberofelements and np.size(md.mesh.elementconnectivity, axis=0) != md.mesh.numberofelements2d: 45 md.mesh.elementconnectivity = ElementConnectivity(md.mesh.elements, md.mesh.vertexconnectivity)[0] 61 46 62 if len(args)==1: 47 #get nodes inside profile 48 elementconnectivity = copy.deepcopy(md.mesh.elementconnectivity) 49 if md.mesh.dimension() == 2: 50 elements = copy.deepcopy(md.mesh.elements) 51 x = copy.deepcopy(md.mesh.x) 52 y = copy.deepcopy(md.mesh.y) 53 numberofvertices = copy.deepcopy(md.mesh.numberofvertices) 54 numberofelements = copy.deepcopy(md.mesh.numberofelements) 55 else: 56 elements = copy.deepcopy(md.mesh.elements2d) 57 x = copy.deepcopy(md.mesh.x2d) 58 y = copy.deepcopy(md.mesh.y2d) 59 numberofvertices = copy.deepcopy(md.mesh.numberofvertices2d) 60 numberofelements = copy.deepcopy(md.mesh.numberofelements2d) 63 61 64 if isfile: 65 #get flag list of elements and nodes inside the contour 66 nodein=ContourToMesh(elements,x,y,file,'node',1) 67 elemin=(np.sum(nodein(elements),axis=1)==np.size(elements,axis=1)) 68 #modify element connectivity 69 elemout=np.nonzero(np.logical_not(elemin))[0] 70 elementconnectivity[elemout,:]=0 71 elementconnectivity[np.nonzero(m.ismember(elementconnectivity,elemout+1))]=0 72 else: 73 #get flag list of elements and nodes inside the contour 74 nodein=np.zeros(numberofvertices) 75 elemin=np.zeros(numberofelements) 62 if len(args) == 1: 76 63 77 pos=np.nonzero(flags) 78 elemin[pos]=1 79 nodein[elements[pos,:]-1]=1 64 if isfile: 65 #get flag list of elements and nodes inside the contour 66 nodein = ContourToMesh(elements, x, y, file, 'node', 1) 67 elemin = (np.sum(nodein(elements), axis=1) == np.size(elements, axis=1)) 68 #modify element connectivity 69 elemout = np.nonzero(np.logical_not(elemin))[0] 70 elementconnectivity[elemout, :] = 0 71 elementconnectivity[np.nonzero(m.ismember(elementconnectivity, elemout + 1))] = 0 72 else: 73 #get flag list of elements and nodes inside the contour 74 nodein = np.zeros(numberofvertices) 75 elemin = np.zeros(numberofelements) 80 76 81 #modify element connectivity 82 elemout=np.nonzero(np.logical_not(elemin))[0] 83 elementconnectivity[elemout,:]=0 84 elementconnectivity[np.nonzero(m.ismember(elementconnectivity,elemout+1))]=0 77 pos = np.nonzero(flags) 78 elemin[pos] = 1 79 nodein[elements[pos, :] - 1] = 1 85 80 86 #Find element on boundary 87 #First: find elements on the boundary of the domain 88 flag=copy.deepcopy(elementconnectivity) 89 if len(args)==1: 90 flag[np.nonzero(flag)]=elemin[flag[np.nonzero(flag)]] 91 elementonboundary=np.logical_and(np.prod(flag,axis=1)==0,np.sum(flag,axis=1)>0) 81 #modify element connectivity 82 elemout = np.nonzero(np.logical_not(elemin))[0] 83 elementconnectivity[elemout, :] = 0 84 elementconnectivity[np.nonzero(m.ismember(elementconnectivity, elemout + 1))] = 0 92 85 93 #Find segments on boundary 94 pos=np.nonzero(elementonboundary)[0] 95 num_segments=np.size(pos) 96 segments=np.zeros((num_segments*3,3),int) 97 count=0 86 #Find element on boundary 87 #First: find elements on the boundary of the domain 88 flag = copy.deepcopy(elementconnectivity) 89 if len(args) == 1: 90 flag[np.nonzero(flag)] = elemin[flag[np.nonzero(flag)]] 91 elementonboundary = np.logical_and(np.prod(flag, axis=1) == 0, np.sum(flag, axis=1) > 0) 98 92 99 for el1 in pos: 100 els2=elementconnectivity[el1,np.nonzero(elementconnectivity[el1,:])[0]]-1 101 if np.size(els2)>1: 102 flag=np.intersect1d(np.intersect1d(elements[els2[0],:],elements[els2[1],:]),elements[el1,:]) 103 nods1=elements[el1,:] 104 nods1=np.delete(nods1,np.nonzero(nods1==flag)) 105 segments[count,:]=[nods1[0],nods1[1],el1+1] 93 #Find segments on boundary 94 pos = np.nonzero(elementonboundary)[0] 95 num_segments = np.size(pos) 96 segments = np.zeros((num_segments * 3, 3), int) 97 count = 0 106 98 107 ord1=np.nonzero(nods1[0]==elements[el1,:])[0][0] 108 ord2=np.nonzero(nods1[1]==elements[el1,:])[0][0] 99 for el1 in pos: 100 els2 = elementconnectivity[el1, np.nonzero(elementconnectivity[el1, :])[0]] - 1 101 if np.size(els2) > 1: 102 flag = np.intersect1d(np.intersect1d(elements[els2[0], :], elements[els2[1], :]), elements[el1, :]) 103 nods1 = elements[el1, :] 104 nods1 = np.delete(nods1, np.nonzero(nods1 == flag)) 105 segments[count, :] = [nods1[0], nods1[1], el1 + 1] 109 106 110 #swap segment nodes if necessary 111 if ( (ord1==0 and ord2==1) or (ord1==1 and ord2==2) or (ord1==2 and ord2==0) ): 112 temp=segments[count,0] 113 segments[count,0]=segments[count,1] 114 segments[count,1]=temp 115 segments[count,0:2]=np.flipud(segments[count,0:2]) 116 count+=1 117 else: 118 nods1=elements[el1,:] 119 flag=np.setdiff1d(nods1,elements[els2,:]) 120 for j in range(0,3): 121 nods=np.delete(nods1,j) 122 if np.any(m.ismember(flag,nods)): 123 segments[count,:]=[nods[0],nods[1],el1+1] 124 ord1=np.nonzero(nods[0]==elements[el1,:])[0][0] 125 ord2=np.nonzero(nods[1]==elements[el1,:])[0][0] 126 if ( (ord1==0 and ord2==1) or (ord1==1 and ord2==2) or (ord1==2 and ord2==0) ): 127 temp=segments[count,0] 128 segments[count,0]=segments[count,1] 129 segments[count,1]=temp 130 segments[count,0:2]=np.flipud(segments[count,0:2]) 131 count+=1 132 segments=segments[0:count,:] 107 ord1 = np.nonzero(nods1[0] == elements[el1, :])[0][0] 108 ord2 = np.nonzero(nods1[1] == elements[el1, :])[0][0] 133 109 134 return segments 110 #swap segment nodes if necessary 111 if ((ord1 == 0 and ord2 == 1) or (ord1 == 1 and ord2 == 2) or (ord1 == 2 and ord2 == 0)): 112 temp = segments[count, 0] 113 segments[count, 0] = segments[count, 1] 114 segments[count, 1] = temp 115 segments[count, 0:2] = np.flipud(segments[count, 0:2]) 116 count += 1 117 else: 118 nods1 = elements[el1, :] 119 flag = np.setdiff1d(nods1, elements[els2, :]) 120 for j in range(0, 3): 121 nods = np.delete(nods1, j) 122 if np.any(m.ismember(flag, nods)): 123 segments[count, :] = [nods[0], nods[1], el1 + 1] 124 ord1 = np.nonzero(nods[0] == elements[el1, :])[0][0] 125 ord2 = np.nonzero(nods[1] == elements[el1, :])[0][0] 126 if ((ord1 == 0 and ord2 == 1) or (ord1 == 1 and ord2 == 2) or (ord1 == 2 and ord2 == 0)): 127 temp = segments[count, 0] 128 segments[count, 0] = segments[count, 1] 129 segments[count, 1] = temp 130 segments[count, 0:2] = np.flipud(segments[count, 0:2]) 131 count += 1 132 segments = segments[0:count, :] 135 133 134 return segments -
issm/trunk-jpl/src/m/parameterization/parameterize.py
r23716 r24213 2 2 import datetime 3 3 4 def parameterize(md,parametername):5 """6 PARAMETERIZE - parameterize a model7 4 8 from a parameter python file, start filling in all the model fields that were not 9 filled in by the mesh.py and mask.py model methods. 10 Warning: the parameter file must be able to be run in Python 5 def parameterize(md, parametername): 6 """ 7 PARAMETERIZE - parameterize a model 11 8 12 Usage: 13 md=parameterize(md,parametername) 9 from a parameter python file, start filling in all the model fields that were not 10 filled in by the mesh.py and mask.py model methods. 11 Warning: the parameter file must be able to be run in Python 14 12 15 Example: 16 md=parameterize(md,'Square.par'); 17 """ 13 Usage: 14 md = parameterize(md, parametername) 18 15 19 #some checks 20 if not os.path.exists(parametername): 21 raise IOError("parameterize error message: file '%s' not found!" % parametername) 16 Example: 17 md = parameterize(md, 'Square.par') 18 """ 22 19 23 #Try and run parameter file. 24 exec(compile(open(parametername).read(), parametername, 'exec')) 20 #some checks 21 if not os.path.exists(parametername): 22 raise IOError("parameterize error message: file '%s' not found!" % parametername) 25 23 26 #Name and notes 27 if not md.miscellaneous.name: 28 md.miscellaneous.name=os.path.basename(parametername).split('.')[0] 24 #Try and run parameter file. 25 exec(compile(open(parametername).read(), parametername, 'exec')) 29 26 30 md.miscellaneous.notes="Model created by using parameter file: '%s' on: %s." % (parametername,datetime.datetime.strftime(datetime.datetime.now(),'%c')) 27 #Name and notes 28 if not md.miscellaneous.name: 29 md.miscellaneous.name = os.path.basename(parametername).split('.')[0] 31 30 32 return md 31 md.miscellaneous.notes = "Model created by using parameter file: '%s' on: %s." % (parametername, datetime.datetime.strftime(datetime.datetime.now(), '%c')) 33 32 33 return md -
issm/trunk-jpl/src/m/parameterization/setflowequation.py
r24058 r24213 4 4 from FlagElements import FlagElements 5 5 6 def setflowequation(md,*args): 7 """ 8 SETFLOWEQUATION - associate a solution type to each element 9 10 This routine works like plotmodel: it works with an even number of inputs 11 'SIA','SSA','HO','L1L2','FS' and 'fill' are the possible options 12 that must be followed by the corresponding exp file or flags list 13 It can either be a domain file (argus type, .exp extension), or an array of element flags. 14 If user wants every element outside the domain to be 15 setflowequationd, add '~' to the name of the domain file (ex: '~HO.exp'); 16 an empty string '' will be considered as an empty domain 17 a string 'all' will be considered as the entire domain 18 You can specify the type of coupling, 'penalties' or 'tiling', to use with the input 'coupling' 19 20 Usage: 21 md=setflowequation(md,varargin) 22 23 Example: 24 md=setflowequation(md,'HO','HO.exp',fill','SIA','coupling','tiling'); 25 """ 26 27 #some checks on list of arguments 28 if not isinstance(md,model) or not len(args): 29 raise TypeError("setflowequation error message") 30 31 #process options 32 options=pairoptions(*args) 33 # options=deleteduplicates(options,1); 34 35 #Find_out what kind of coupling to use 36 coupling_method=options.getfieldvalue('coupling','tiling') 37 if not coupling_method in ['tiling','penalties']: 38 raise TypeError("coupling type can only be: tiling or penalties") 39 40 #recover elements distribution 41 SIAflag = FlagElements(md,options.getfieldvalue('SIA','')) 42 SSAflag = FlagElements(md,options.getfieldvalue('SSA','')) 43 HOflag = FlagElements(md,options.getfieldvalue('HO','')) 44 L1L2flag = FlagElements(md,options.getfieldvalue('L1L2','')) 45 FSflag = FlagElements(md,options.getfieldvalue('FS','')) 46 filltype = options.getfieldvalue('fill','none') 47 #Flag the elements that have not been flagged as filltype 48 if 'SIA' in filltype: 49 SIAflag= ~SSAflag & ~HOflag 50 elif 'SSA' in filltype: 51 SSAflag=~SIAflag & ~HOflag & ~FSflag 52 elif 'HO' in filltype: 53 HOflag=~SIAflag & ~SSAflag & ~FSflag 54 #check that each element has at least one flag 55 if not any(SIAflag+SSAflag+L1L2flag+HOflag+FSflag): 56 raise TypeError("elements type not assigned, supported models are 'SIA','SSA','HO' and 'FS'") 57 58 #check that each element has only one flag 59 if any(SIAflag+SSAflag+L1L2flag+HOflag+FSflag>1): 60 print("setflowequation warning message: some elements have several types, higher order type is used for them") 61 SIAflag[np.where(np.logical_and(SIAflag,SSAflag))]=False 62 SIAflag[np.where(np.logical_and(SIAflag,HOflag))]=False 63 SSAflag[np.where(np.logical_and(SSAflag,HOflag))]=False 64 65 #check that L1L2 is not coupled to any other model for now 66 if any(L1L2flag) and any(SIAflag+SSAflag+HOflag+FSflag): 67 raise TypeError('L1L2 cannot be coupled to any other model') 68 69 #Check that no HO or FS for 2d mesh 70 if domaintype(md.mesh)=='2Dhorizontal': 71 if any(FSflag+HOflag): 72 raise TypeError('FS and HO elements not allowed in 2d mesh, extrude it first') 73 74 #FS can only be used alone for now: 75 if any(FSflag) and any(SIAflag): 76 raise TypeError("FS cannot be used with any other model for now, put FS everywhere") 77 78 #Initialize node fields 79 nodeonSIA=np.zeros(md.mesh.numberofvertices,bool) 80 nodeonSIA[md.mesh.elements[np.where(SIAflag),:]-1]=True 81 nodeonSSA=np.zeros(md.mesh.numberofvertices,bool) 82 nodeonSSA[md.mesh.elements[np.where(SSAflag),:]-1]=True 83 nodeonL1L2=np.zeros(md.mesh.numberofvertices,bool) 84 nodeonL1L2[md.mesh.elements[np.where(L1L2flag),:]-1]=True 85 nodeonHO=np.zeros(md.mesh.numberofvertices,bool) 86 nodeonHO[md.mesh.elements[np.where(HOflag),:]-1]=True 87 nodeonFS=np.zeros(md.mesh.numberofvertices,bool) 88 noneflag=np.zeros(md.mesh.numberofelements,bool) 89 90 #First modify FSflag to get rid of elements contrained everywhere (spc + border with HO or SSA) 91 if any(FSflag): 92 fullspcnodes=np.logical_or(~np.isnan(md.stressbalance.spcvx)+~np.isnan(md.stressbalance.spcvy)+~np.isnan(md.stressbalance.spcvz),np.logical_and(nodeonHO,nodeonFS)) #find all the nodes on the boundary of the domain without icefront 93 fullspcelems=np.sum(fullspcnodes[md.mesh.elements-1],axis=1)==6 #find all the nodes on the boundary of the domain without icefront 94 FSflag[np.where(fullspcelems.reshape(-1))]=False 95 nodeonFS[md.mesh.elements[np.where(FSflag),:]-1]=True 96 97 #Then complete with NoneApproximation or the other model used if there is no FS 98 if any(FSflag): 99 if any(HOflag): #fill with HO 100 HOflag[~FSflag]=True 101 nodeonHO[md.mesh.elements[np.where(HOflag),:]-1]=True 102 elif any(SSAflag): #fill with SSA 103 SSAflag[~FSflag]=True 104 nodeonSSA[md.mesh.elements[np.where(SSAflag),:]-1]=True 105 else: #fill with none 106 noneflag[np.where(~FSflag)]=True 107 108 #Now take care of the coupling between SSA and HO 109 if not coupling_method in ['penalties']: 110 md.stressbalance.vertex_pairing=np.array([]) 111 nodeonSSAHO=np.zeros(md.mesh.numberofvertices,bool) 112 nodeonHOFS=np.zeros(md.mesh.numberofvertices,bool) 113 nodeonSSAFS=np.zeros(md.mesh.numberofvertices,bool) 114 SSAHOflag=np.zeros(md.mesh.numberofelements,bool) 115 SSAFSflag=np.zeros(md.mesh.numberofelements,bool) 116 HOFSflag=np.zeros(md.mesh.numberofelements,bool) 117 if coupling_method=='penalties': 118 #Create the border nodes between HO and SSA and extrude them 119 numnodes2d=md.mesh.numberofvertices2d 120 numlayers=md.mesh.numberoflayers 121 bordernodes2d=np.where(np.logical_and(nodeonHO[0:numnodes2d],nodeonSSA[0:numnodes2d]))[0]+1 #Nodes connected to two different types of elements 122 123 #initialize and fill in penalties structure 124 if np.all(np.logical_not(np.isnan(bordernodes2d))): 125 penalties=np.zeros((0,2)) 126 for i in range(1,numlayers): 127 penalties=np.vstack((penalties,np.vstack((bordernodes2d,bordernodes2d+md.mesh.numberofvertices2d*(i))).T)) 128 md.stressbalance.vertex_pairing=penalties 129 130 elif coupling_method=='tiling': 131 if any(SSAflag) and any(HOflag): #coupling SSA HO 132 #Find node at the border 133 nodeonSSAHO[np.where(np.logical_and(nodeonSSA,nodeonHO))]=True 134 #SSA elements in contact with this layer become SSAHO elements 135 matrixelements=nodeonSSAHO[md.mesh.elements-1] 136 commonelements=np.sum(matrixelements,axis=1)!=0 137 commonelements[np.where(HOflag)]=False #only one layer: the elements previously in SSA 138 SSAflag[np.where(commonelements)]=False #these elements are now SSAHOelements 139 SSAHOflag[np.where(commonelements)]=True 140 nodeonSSA[:]=False 141 nodeonSSA[md.mesh.elements[np.where(SSAflag),:]-1]=True 142 143 #rule out elements that don't touch the 2 boundaries 144 pos=np.where(SSAHOflag)[0] 145 elist=np.zeros(np.size(pos),dtype=int) 146 elist = elist + np.sum(nodeonSSA[md.mesh.elements[pos,:]-1],axis=1).astype(bool) 147 elist = elist - np.sum(nodeonHO[md.mesh.elements[pos,:]-1] ,axis=1).astype(bool) 148 pos1=np.where(elist==1)[0] 149 SSAflag[pos[pos1]]=True 150 SSAHOflag[pos[pos1]]=False 151 pos2=np.where(elist==-1)[0] 152 HOflag[pos[pos2]]=True 153 SSAHOflag[pos[pos2]]=False 154 155 #Recompute nodes associated to these elements 156 nodeonSSA[:]=False 157 nodeonSSA[md.mesh.elements[np.where(SSAflag),:]-1]=True 158 nodeonHO[:]=False 159 nodeonHO[md.mesh.elements[np.where(HOflag),:]-1]=True 160 nodeonSSAHO[:]=False 161 nodeonSSAHO[md.mesh.elements[np.where(SSAHOflag),:]-1]=True 162 163 elif any(HOflag) and any(FSflag): #coupling HO FS 164 #Find node at the border 165 nodeonHOFS[np.where(np.logical_and(nodeonHO,nodeonFS))]=True 166 #FS elements in contact with this layer become HOFS elements 167 matrixelements=nodeonHOFS[md.mesh.elements-1] 168 commonelements=np.sum(matrixelements,axis=1)!=0 169 commonelements[np.where(HOflag)]=False #only one layer: the elements previously in SSA 170 FSflag[np.where(commonelements)]=False #these elements are now SSAHOelements 171 HOFSflag[np.where(commonelements)]=True 172 nodeonFS=np.zeros(md.mesh.numberofvertices,bool) 173 nodeonFS[md.mesh.elements[np.where(FSflag),:]-1]=True 174 175 #rule out elements that don't touch the 2 boundaries 176 pos=np.where(HOFSflag)[0] 177 elist=np.zeros(np.size(pos),dtype=int) 178 elist = elist + np.sum(nodeonFS[md.mesh.elements[pos,:]-1],axis=1).astype(bool) 179 elist = elist - np.sum(nodeonHO[md.mesh.elements[pos,:]-1],axis=1).astype(bool) 180 pos1=np.where(elist==1)[0] 181 FSflag[pos[pos1]]=True 182 HOFSflag[pos[pos1]]=False 183 pos2=np.where(elist==-1)[0] 184 HOflag[pos[pos2]]=True 185 HOFSflag[pos[pos2]]=False 186 187 #Recompute nodes associated to these elements 188 nodeonFS[:]=False 189 nodeonFS[md.mesh.elements[np.where(FSflag),:]-1]=True 190 nodeonHO[:]=False 191 nodeonHO[md.mesh.elements[np.where(HOflag),:]-1]=True 192 nodeonHOFS[:]=False 193 nodeonHOFS[md.mesh.elements[np.where(HOFSflag),:]-1]=True 194 elif any(FSflag) and any(SSAflag): 195 #Find node at the border 196 nodeonSSAFS[np.where(np.logical_and(nodeonSSA,nodeonFS))]=True 197 #FS elements in contact with this layer become SSAFS elements 198 matrixelements=nodeonSSAFS[md.mesh.elements-1] 199 commonelements=np.sum(matrixelements,axis=1)!=0 200 commonelements[np.where(SSAflag)]=False #only one layer: the elements previously in SSA 201 FSflag[np.where(commonelements)]=False #these elements are now SSASSAelements 202 SSAFSflag[np.where(commonelements)]=True 203 nodeonFS=np.zeros(md.mesh.numberofvertices,bool) 204 nodeonFS[md.mesh.elements[np.where(FSflag),:]-1]=True 205 206 #rule out elements that don't touch the 2 boundaries 207 pos=np.where(SSAFSflag)[0] 208 elist=np.zeros(np.size(pos),dtype=int) 209 elist = elist + np.sum(nodeonSSA[md.mesh.elements[pos,:]-1],axis=1).astype(bool) 210 elist = elist - np.sum(nodeonFS[md.mesh.elements[pos,:]-1],axis=1).astype(bool) 211 pos1=np.where(elist==1)[0] 212 SSAflag[pos[pos1]]=True 213 SSAFSflag[pos[pos1]]=False 214 pos2=np.where(elist==-1)[0] 215 FSflag[pos[pos2]]=True 216 SSAFSflag[pos[pos2]]=False 217 218 #Recompute nodes associated to these elements 219 nodeonSSA[:]=False 220 nodeonSSA[md.mesh.elements[np.where(SSAflag),:]-1]=True 221 nodeonFS[:]=False 222 nodeonFS[md.mesh.elements[np.where(FSflag),:]-1]=True 223 nodeonSSAFS[:]=False 224 nodeonSSAFS[md.mesh.elements[np.where(SSAFSflag),:]-1]=True 225 226 elif any(FSflag) and any(SIAflag): 227 raise TypeError("type of coupling not supported yet") 228 229 #Create SSAHOApproximation where needed 230 md.flowequation.element_equation=np.zeros(md.mesh.numberofelements,int) 231 md.flowequation.element_equation[np.where(noneflag)]=0 232 md.flowequation.element_equation[np.where(SIAflag)]=1 233 md.flowequation.element_equation[np.where(SSAflag)]=2 234 md.flowequation.element_equation[np.where(L1L2flag)]=3 235 md.flowequation.element_equation[np.where(HOflag)]=4 236 md.flowequation.element_equation[np.where(FSflag)]=5 237 md.flowequation.element_equation[np.where(SSAHOflag)]=6 238 md.flowequation.element_equation[np.where(SSAFSflag)]=7 239 md.flowequation.element_equation[np.where(HOFSflag)]=8 240 241 #border 242 md.flowequation.borderHO=nodeonHO 243 md.flowequation.borderSSA=nodeonSSA 244 md.flowequation.borderFS=nodeonFS 245 246 #Create vertices_type 247 md.flowequation.vertex_equation=np.zeros(md.mesh.numberofvertices,int) 248 pos=np.where(nodeonSSA) 249 md.flowequation.vertex_equation[pos]=2 250 pos=np.where(nodeonL1L2) 251 md.flowequation.vertex_equation[pos]=3 252 pos=np.where(nodeonHO) 253 md.flowequation.vertex_equation[pos]=4 254 pos=np.where(nodeonFS) 255 md.flowequation.vertex_equation[pos]=5 256 #DO SIA LAST! Otherwise spcs might not be set up correctly (SIA should have priority) 257 pos=np.where(nodeonSIA) 258 md.flowequation.vertex_equation[pos]=1 259 if any(FSflag): 260 pos=np.where(np.logical_not(nodeonFS)) 261 if not (any(HOflag) or any(SSAflag)): 262 md.flowequation.vertex_equation[pos]=0 263 pos=np.where(nodeonSSAHO) 264 md.flowequation.vertex_equation[pos]=6 265 pos=np.where(nodeonHOFS) 266 md.flowequation.vertex_equation[pos]=7 267 pos=np.where(nodeonSSAFS) 268 md.flowequation.vertex_equation[pos]=8 269 270 #figure out solution types 271 md.flowequation.isSIA=any(md.flowequation.element_equation==1) 272 md.flowequation.isSSA=any(md.flowequation.element_equation==2) 273 md.flowequation.isL1L2=any(md.flowequation.element_equation==3) 274 md.flowequation.isHO=any(md.flowequation.element_equation==4) 275 md.flowequation.isFS=any(md.flowequation.element_equation==5) 276 277 return md 278 279 #Check that tiling can work: 280 if any(md.flowequation.borderSSA) and any(md.flowequation.borderHO) and any(md.flowequation.borderHO + md.flowequation.borderSSA !=1): 281 raise TypeError("error coupling domain too irregular") 282 if any(md.flowequation.borderSSA) and any(md.flowequation.borderFS) and any(md.flowequation.borderFS + md.flowequation.borderSSA !=1): 283 raise TypeError("error coupling domain too irregular") 284 if any(md.flowequation.borderFS) and any(md.flowequation.borderHO) and any(md.flowequation.borderHO + md.flowequation.borderFS !=1): 285 raise TypeError("error coupling domain too irregular") 286 287 return md 6 7 def setflowequation(md, *args): 8 """ 9 SETFLOWEQUATION - associate a solution type to each element 10 11 This routine works like plotmodel: it works with an even number of inputs 12 'SIA', 'SSA', 'HO', 'L1L2', 'FS' and 'fill' are the possible options 13 that must be followed by the corresponding exp file or flags list 14 It can either be a domain file (argus type, .exp extension), or an array of element flags. 15 If user wants every element outside the domain to be 16 setflowequationd, add '~' to the name of the domain file (ex: '~HO.exp') 17 an empty string '' will be considered as an empty domain 18 a string 'all' will be considered as the entire domain 19 You can specify the type of coupling, 'penalties' or 'tiling', to use with the input 'coupling' 20 21 Usage: 22 md = setflowequation(md, varargin) 23 24 Example: 25 md = setflowequation(md, 'HO', 'HO.exp', fill', 'SIA', 'coupling', 'tiling') 26 """ 27 28 #some checks on list of arguments 29 if not isinstance(md, model) or not len(args): 30 raise TypeError("setflowequation error message") 31 32 #process options 33 options = pairoptions(*args) 34 # options = deleteduplicates(options, 1) 35 36 #Find_out what kind of coupling to use 37 coupling_method = options.getfieldvalue('coupling', 'tiling') 38 if coupling_method not in ['tiling', 'penalties']: 39 raise TypeError("coupling type can only be: tiling or penalties") 40 41 #recover elements distribution 42 SIAflag = FlagElements(md, options.getfieldvalue('SIA', '')) 43 SSAflag = FlagElements(md, options.getfieldvalue('SSA', '')) 44 HOflag = FlagElements(md, options.getfieldvalue('HO', '')) 45 L1L2flag = FlagElements(md, options.getfieldvalue('L1L2', '')) 46 FSflag = FlagElements(md, options.getfieldvalue('FS', '')) 47 filltype = options.getfieldvalue('fill', 'none') 48 #Flag the elements that have not been flagged as filltype 49 if 'SIA' in filltype: 50 SIAflag = ~SSAflag & ~HOflag 51 elif 'SSA' in filltype: 52 SSAflag = ~SIAflag & ~HOflag & ~FSflag 53 elif 'HO' in filltype: 54 HOflag = ~SIAflag & ~SSAflag & ~FSflag 55 #check that each element has at least one flag 56 if not any(SIAflag + SSAflag + L1L2flag + HOflag + FSflag): 57 raise TypeError("elements type not assigned, supported models are 'SIA', 'SSA', 'HO' and 'FS'") 58 59 #check that each element has only one flag 60 if any(SIAflag + SSAflag + L1L2flag + HOflag + FSflag > 1): 61 print("setflowequation warning message: some elements have several types, higher order type is used for them") 62 SIAflag[np.where(np.logical_and(SIAflag, SSAflag))] = False 63 SIAflag[np.where(np.logical_and(SIAflag, HOflag))] = False 64 SSAflag[np.where(np.logical_and(SSAflag, HOflag))] = False 65 66 #check that L1L2 is not coupled to any other model for now 67 if any(L1L2flag) and any(SIAflag + SSAflag + HOflag + FSflag): 68 raise TypeError('L1L2 cannot be coupled to any other model') 69 70 #Check that no HO or FS for 2d mesh 71 if md.mesh.domaintype == '2Dhorizontal': 72 if any(FSflag + HOflag): 73 raise TypeError('FS and HO elements not allowed in 2d mesh, extrude it first') 74 75 #FS can only be used alone for now: 76 if any(FSflag) and any(SIAflag): 77 raise TypeError("FS cannot be used with any other model for now, put FS everywhere") 78 79 #Initialize node fields 80 nodeonSIA = np.zeros(md.mesh.numberofvertices, bool) 81 nodeonSIA[md.mesh.elements[np.where(SIAflag), :] - 1] = True 82 nodeonSSA = np.zeros(md.mesh.numberofvertices, bool) 83 nodeonSSA[md.mesh.elements[np.where(SSAflag), :] - 1] = True 84 nodeonL1L2 = np.zeros(md.mesh.numberofvertices, bool) 85 nodeonL1L2[md.mesh.elements[np.where(L1L2flag), :] - 1] = True 86 nodeonHO = np.zeros(md.mesh.numberofvertices, bool) 87 nodeonHO[md.mesh.elements[np.where(HOflag), :] - 1] = True 88 nodeonFS = np.zeros(md.mesh.numberofvertices, bool) 89 noneflag = np.zeros(md.mesh.numberofelements, bool) 90 91 #First modify FSflag to get rid of elements contrained everywhere (spc + border with HO or SSA) 92 if any(FSflag): 93 fullspcnodes = np.logical_or(~np.isnan(md.stressbalance.spcvx) + ~np.isnan(md.stressbalance.spcvy) + ~np.isnan(md.stressbalance.spcvz), np.logical_and(nodeonHO, nodeonFS)) #find all the nodes on the boundary of the domain without icefront 94 fullspcelems = np.sum(fullspcnodes[md.mesh.elements - 1], axis=1) == 6 #find all the nodes on the boundary of the domain without icefront 95 FSflag[np.where(fullspcelems.reshape(- 1))] = False 96 nodeonFS[md.mesh.elements[np.where(FSflag), :] - 1] = True 97 98 #Then complete with NoneApproximation or the other model used if there is no FS 99 if any(FSflag): 100 if any(HOflag): #fill with HO 101 HOflag[~FSflag] = True 102 nodeonHO[md.mesh.elements[np.where(HOflag), :] - 1] = True 103 elif any(SSAflag): #fill with SSA 104 SSAflag[~FSflag] = True 105 nodeonSSA[md.mesh.elements[np.where(SSAflag), :] - 1] = True 106 else: #fill with none 107 noneflag[np.where(~FSflag)] = True 108 109 #Now take care of the coupling between SSA and HO 110 if coupling_method not in ['penalties']: 111 md.stressbalance.vertex_pairing = np.array([]) 112 nodeonSSAHO = np.zeros(md.mesh.numberofvertices, bool) 113 nodeonHOFS = np.zeros(md.mesh.numberofvertices, bool) 114 nodeonSSAFS = np.zeros(md.mesh.numberofvertices, bool) 115 SSAHOflag = np.zeros(md.mesh.numberofelements, bool) 116 SSAFSflag = np.zeros(md.mesh.numberofelements, bool) 117 HOFSflag = np.zeros(md.mesh.numberofelements, bool) 118 if coupling_method == 'penalties': 119 #Create the border nodes between HO and SSA and extrude them 120 numnodes2d = md.mesh.numberofvertices2d 121 numlayers = md.mesh.numberoflayers 122 bordernodes2d = np.where(np.logical_and(nodeonHO[0:numnodes2d], nodeonSSA[0:numnodes2d]))[0] + 1 #Nodes connected to two different types of elements 123 124 #initialize and fill in penalties structure 125 if np.all(np.logical_not(np.isnan(bordernodes2d))): 126 penalties = np.zeros((0, 2)) 127 for i in range(1, numlayers): 128 penalties = np.vstack((penalties, np.vstack((bordernodes2d, bordernodes2d + md.mesh.numberofvertices2d * (i))).T)) 129 md.stressbalance.vertex_pairing = penalties 130 131 elif coupling_method == 'tiling': 132 if any(SSAflag) and any(HOflag): #coupling SSA HO 133 #Find node at the border 134 nodeonSSAHO[np.where(np.logical_and(nodeonSSA, nodeonHO))] = True 135 #SSA elements in contact with this layer become SSAHO elements 136 matrixelements = nodeonSSAHO[md.mesh.elements - 1] 137 commonelements = np.sum(matrixelements, axis=1) != 0 138 commonelements[np.where(HOflag)] = False #only one layer: the elements previously in SSA 139 SSAflag[np.where(commonelements)] = False #these elements are now SSAHOelements 140 SSAHOflag[np.where(commonelements)] = True 141 nodeonSSA[:] = False 142 nodeonSSA[md.mesh.elements[np.where(SSAflag), :] - 1] = True 143 144 #rule out elements that don't touch the 2 boundaries 145 pos = np.where(SSAHOflag)[0] 146 elist = np.zeros(np.size(pos), dtype=int) 147 elist = elist + np.sum(nodeonSSA[md.mesh.elements[pos, :] - 1], axis=1).astype(bool) 148 elist = elist - np.sum(nodeonHO[md.mesh.elements[pos, :] - 1], axis=1).astype(bool) 149 pos1 = np.where(elist == 1)[0] 150 SSAflag[pos[pos1]] = True 151 SSAHOflag[pos[pos1]] = False 152 pos2 = np.where(elist == - 1)[0] 153 HOflag[pos[pos2]] = True 154 SSAHOflag[pos[pos2]] = False 155 156 #Recompute nodes associated to these elements 157 nodeonSSA[:] = False 158 nodeonSSA[md.mesh.elements[np.where(SSAflag), :] - 1] = True 159 nodeonHO[:] = False 160 nodeonHO[md.mesh.elements[np.where(HOflag), :] - 1] = True 161 nodeonSSAHO[:] = False 162 nodeonSSAHO[md.mesh.elements[np.where(SSAHOflag), :] - 1] = True 163 164 elif any(HOflag) and any(FSflag): #coupling HO FS 165 #Find node at the border 166 nodeonHOFS[np.where(np.logical_and(nodeonHO, nodeonFS))] = True 167 #FS elements in contact with this layer become HOFS elements 168 matrixelements = nodeonHOFS[md.mesh.elements - 1] 169 commonelements = np.sum(matrixelements, axis=1) != 0 170 commonelements[np.where(HOflag)] = False #only one layer: the elements previously in SSA 171 FSflag[np.where(commonelements)] = False #these elements are now SSAHOelements 172 HOFSflag[np.where(commonelements)] = True 173 nodeonFS = np.zeros(md.mesh.numberofvertices, bool) 174 nodeonFS[md.mesh.elements[np.where(FSflag), :] - 1] = True 175 176 #rule out elements that don't touch the 2 boundaries 177 pos = np.where(HOFSflag)[0] 178 elist = np.zeros(np.size(pos), dtype=int) 179 elist = elist + np.sum(nodeonFS[md.mesh.elements[pos, :] - 1], axis=1).astype(bool) 180 elist = elist - np.sum(nodeonHO[md.mesh.elements[pos, :] - 1], axis=1).astype(bool) 181 pos1 = np.where(elist == 1)[0] 182 FSflag[pos[pos1]] = True 183 HOFSflag[pos[pos1]] = False 184 pos2 = np.where(elist == - 1)[0] 185 HOflag[pos[pos2]] = True 186 HOFSflag[pos[pos2]] = False 187 188 #Recompute nodes associated to these elements 189 nodeonFS[:] = False 190 nodeonFS[md.mesh.elements[np.where(FSflag), :] - 1] = True 191 nodeonHO[:] = False 192 nodeonHO[md.mesh.elements[np.where(HOflag), :] - 1] = True 193 nodeonHOFS[:] = False 194 nodeonHOFS[md.mesh.elements[np.where(HOFSflag), :] - 1] = True 195 elif any(FSflag) and any(SSAflag): 196 #Find node at the border 197 nodeonSSAFS[np.where(np.logical_and(nodeonSSA, nodeonFS))] = True 198 #FS elements in contact with this layer become SSAFS elements 199 matrixelements = nodeonSSAFS[md.mesh.elements - 1] 200 commonelements = np.sum(matrixelements, axis=1) != 0 201 commonelements[np.where(SSAflag)] = False #only one layer: the elements previously in SSA 202 FSflag[np.where(commonelements)] = False #these elements are now SSASSAelements 203 SSAFSflag[np.where(commonelements)] = True 204 nodeonFS = np.zeros(md.mesh.numberofvertices, bool) 205 nodeonFS[md.mesh.elements[np.where(FSflag), :] - 1] = True 206 207 #rule out elements that don't touch the 2 boundaries 208 pos = np.where(SSAFSflag)[0] 209 elist = np.zeros(np.size(pos), dtype=int) 210 elist = elist + np.sum(nodeonSSA[md.mesh.elements[pos, :] - 1], axis=1).astype(bool) 211 elist = elist - np.sum(nodeonFS[md.mesh.elements[pos, :] - 1], axis=1).astype(bool) 212 pos1 = np.where(elist == 1)[0] 213 SSAflag[pos[pos1]] = True 214 SSAFSflag[pos[pos1]] = False 215 pos2 = np.where(elist == - 1)[0] 216 FSflag[pos[pos2]] = True 217 SSAFSflag[pos[pos2]] = False 218 219 #Recompute nodes associated to these elements 220 nodeonSSA[:] = False 221 nodeonSSA[md.mesh.elements[np.where(SSAflag), :] - 1] = True 222 nodeonFS[:] = False 223 nodeonFS[md.mesh.elements[np.where(FSflag), :] - 1] = True 224 nodeonSSAFS[:] = False 225 nodeonSSAFS[md.mesh.elements[np.where(SSAFSflag), :] - 1] = True 226 227 elif any(FSflag) and any(SIAflag): 228 raise TypeError("type of coupling not supported yet") 229 230 #Create SSAHOApproximation where needed 231 md.flowequation.element_equation = np.zeros(md.mesh.numberofelements, int) 232 md.flowequation.element_equation[np.where(noneflag)] = 0 233 md.flowequation.element_equation[np.where(SIAflag)] = 1 234 md.flowequation.element_equation[np.where(SSAflag)] = 2 235 md.flowequation.element_equation[np.where(L1L2flag)] = 3 236 md.flowequation.element_equation[np.where(HOflag)] = 4 237 md.flowequation.element_equation[np.where(FSflag)] = 5 238 md.flowequation.element_equation[np.where(SSAHOflag)] = 6 239 md.flowequation.element_equation[np.where(SSAFSflag)] = 7 240 md.flowequation.element_equation[np.where(HOFSflag)] = 8 241 242 #border 243 md.flowequation.borderHO = nodeonHO 244 md.flowequation.borderSSA = nodeonSSA 245 md.flowequation.borderFS = nodeonFS 246 247 #Create vertices_type 248 md.flowequation.vertex_equation = np.zeros(md.mesh.numberofvertices, int) 249 pos = np.where(nodeonSSA) 250 md.flowequation.vertex_equation[pos] = 2 251 pos = np.where(nodeonL1L2) 252 md.flowequation.vertex_equation[pos] = 3 253 pos = np.where(nodeonHO) 254 md.flowequation.vertex_equation[pos] = 4 255 pos = np.where(nodeonFS) 256 md.flowequation.vertex_equation[pos] = 5 257 #DO SIA LAST! Otherwise spcs might not be set up correctly (SIA should have priority) 258 pos = np.where(nodeonSIA) 259 md.flowequation.vertex_equation[pos] = 1 260 if any(FSflag): 261 pos = np.where(np.logical_not(nodeonFS)) 262 if not (any(HOflag) or any(SSAflag)): 263 md.flowequation.vertex_equation[pos] = 0 264 pos = np.where(nodeonSSAHO) 265 md.flowequation.vertex_equation[pos] = 6 266 pos = np.where(nodeonHOFS) 267 md.flowequation.vertex_equation[pos] = 7 268 pos = np.where(nodeonSSAFS) 269 md.flowequation.vertex_equation[pos] = 8 270 271 #figure out solution types 272 md.flowequation.isSIA = any(md.flowequation.element_equation == 1) 273 md.flowequation.isSSA = any(md.flowequation.element_equation == 2) 274 md.flowequation.isL1L2 = any(md.flowequation.element_equation == 3) 275 md.flowequation.isHO = any(md.flowequation.element_equation == 4) 276 md.flowequation.isFS = any(md.flowequation.element_equation == 5) 277 278 return md 279 280 #Check that tiling can work: 281 if any(md.flowequation.borderSSA) and any(md.flowequation.borderHO) and any(md.flowequation.borderHO + md.flowequation.borderSSA != 1): 282 raise TypeError("error coupling domain too irregular") 283 if any(md.flowequation.borderSSA) and any(md.flowequation.borderFS) and any(md.flowequation.borderFS + md.flowequation.borderSSA != 1): 284 raise TypeError("error coupling domain too irregular") 285 if any(md.flowequation.borderFS) and any(md.flowequation.borderHO) and any(md.flowequation.borderHO + md.flowequation.borderFS != 1): 286 raise TypeError("error coupling domain too irregular") 287 288 return md -
issm/trunk-jpl/src/m/parameterization/sethydrostaticmask.py
r21303 r24213 1 1 import numpy as np 2 import os3 from model import model4 from FlagElements import FlagElements5 import pairoptions6 from ContourToMesh import ContourToMesh7 2 8 def setmask(md)9 """10 SETHYDROSTATICMASK - establish groundedice_levelset field11 3 12 Determines grounded and floating ice position based on 4 def setmask(md): 5 """ 6 SETHYDROSTATICMASK - establish groundedice_levelset field 7 8 Determines grounded and floating ice position based on 13 9 md.geometry.bed and md.geometry.thickness 14 10 15 11 Usage: 16 md =sethydrostaticmask(md)12 md = sethydrostaticmask(md) 17 13 18 14 Examples: 19 md =sethydrostaticmask(md);15 md = sethydrostaticmask(md) 20 16 """ 21 17 22 if np.size(md.geometry.bed,axis=0)!=md.mesh.numberofvertices or np.size(md.geometry.base,axis=0)!=md.mesh.numberofvertices or np.size(md.geometry.thickness,axis=0)!=md.mesh.numberofvertices:23 18 if np.size(md.geometry.bed, axis=0) != md.mesh.numberofvertices or np.size(md.geometry.base, axis=0) != md.mesh.numberofvertices or np.size(md.geometry.thickness, axis=0) != md.mesh.numberofvertices: 19 raise IOError("hydrostaticmask error message: fields in md.geometry do not have the right size.") 24 20 25 # grounded ice level set26 md.mask.groundedice_levelset=md.geometry.thickness+md.geometry.bed*md.materials.rho_water/md.materials.rho_ice21 # grounded ice level set 22 md.mask.groundedice_levelset = md.geometry.thickness + md.geometry.bed * md.materials.rho_water / md.materials.rho_ice 27 23 28 #Check consistency of geometry29 if any(md.geometry.base[np.nonzero(md.mask.groundedice_levelset>0.)]!=md.geometry.bed[np.nonzero(md.mask.groundedice_levelset>0.)]):30 print "WARNING: md.geometry.bed and md.geometry.base not equal on grounded ice" 24 #Check consistency of geometry 25 if any(md.geometry.base[np.nonzero(md.mask.groundedice_levelset > 0.)] != md.geometry.bed[np.nonzero(md.mask.groundedice_levelset > 0.)]): 26 print("WARNING: md.geometry.bed and md.geometry.base not equal on grounded ice") 31 27 32 if any(md.geometry.base[np.nonzero(md.mask.groundedice_levelset<=0.)]<md.geometry.bed[np.nonzero(md.mask.groundedice_levelset<=0.)]):33 print "WARNING: md.geometry.base < md.geometry.bed on floating ice" 28 if any(md.geometry.base[np.nonzero(md.mask.groundedice_levelset <= 0.)] < md.geometry.bed[np.nonzero(md.mask.groundedice_levelset <= 0.)]): 29 print("WARNING: md.geometry.base < md.geometry.bed on floating ice") 34 30 35 31 return md -
issm/trunk-jpl/src/m/parameterization/setmask.py
r23716 r24213 6 6 from ContourToMesh import ContourToMesh 7 7 8 8 9 def setmask(md, floatingicename, groundedicename, *args): 9 10 10 """ 11 SETMASK - establish boundaries between grounded and floating ice. 11 12 12 13 14 15 13 By default, ice is considered grounded. The contour floatingicename defines nodes 14 for which ice is floating. The contour groundedicename defines nodes inside an floatingice, 15 that are grounded (ie: ice rises, islands, etc ...) 16 All input files are in the Argus format (extension .exp). 16 17 17 18 md=setmask(md,floatingicename,groundedicename)18 Usage: 19 md = setmask(md, floatingicename, groundedicename) 19 20 20 21 md=setmask(md,'all',''); 22 md=setmask(md,'Iceshelves.exp','Islands.exp'); 23 24 25 if not isinstance(md,model):26 21 Examples: 22 md = setmask(md, 'all', '') 23 md = setmask(md, 'Iceshelves.exp', 'Islands.exp') 24 """ 25 #some checks on list of arguments 26 if not isinstance(md, model): 27 raise TypeError("setmask error message") 27 28 28 if len(args)%2:29 29 if len(args) % 2: 30 raise TypeError("odd number of arguments provided in setmask") 30 31 31 32 options=pairoptions.pairoptions(*args)32 #process options 33 options = pairoptions.pairoptions(*args) 33 34 34 35 36 37 35 #Get assigned fields 36 x = md.mesh.x 37 y = md.mesh.y 38 elements = md.mesh.elements 38 39 39 40 41 40 #Assign elementonfloatingice, elementongroundedice, vertexongroundedice and vertexonfloatingice. Only change at your own peril! This is synchronized heavily with the GroundingLineMigration module. {{{ 41 elementonfloatingice = FlagElements(md, floatingicename) 42 elementongroundedice = FlagElements(md, groundedicename) 42 43 43 44 44 #Because groundedice nodes and elements can be included into an floatingice, we need to update. Remember, all the previous 45 #arrays come from domain outlines that can intersect one another: 45 46 46 elementonfloatingice = np.logical_and(elementonfloatingice,np.logical_not(elementongroundedice))47 47 elementonfloatingice = np.logical_and(elementonfloatingice, np.logical_not(elementongroundedice)) 48 elementongroundedice = np.logical_not(elementonfloatingice) 48 49 49 50 vertexonfloatingice = np.zeros(md.mesh.numberofvertices,'bool')51 vertexongroundedice = np.zeros(md.mesh.numberofvertices,'bool')52 vertexongroundedice[md.mesh.elements[np.nonzero(elementongroundedice),:]-1]=True53 vertexonfloatingice[np.nonzero(np.logical_not(vertexongroundedice))]=True54 50 #the order here is important. we choose vertexongroundedice as default on the grounding line. 51 vertexonfloatingice = np.zeros(md.mesh.numberofvertices, 'bool') 52 vertexongroundedice = np.zeros(md.mesh.numberofvertices, 'bool') 53 vertexongroundedice[md.mesh.elements[np.nonzero(elementongroundedice), :] - 1] = True 54 vertexonfloatingice[np.nonzero(np.logical_not(vertexongroundedice))] = True 55 #}}} 55 56 56 57 md.mask.groundedice_levelset = -1.*np.ones(md.mesh.numberofvertices)58 md.mask.groundedice_levelset[md.mesh.elements[np.nonzero(elementongroundedice),:]-1]=1.57 #level sets 58 md.mask.groundedice_levelset = - 1. * np.ones(md.mesh.numberofvertices) 59 md.mask.groundedice_levelset[md.mesh.elements[np.nonzero(elementongroundedice), :] - 1] = 1. 59 60 60 61 md.mask.ice_levelset = 1.*np.ones(md.mesh.numberofvertices)62 icedomainfile = options.getfieldvalue('icedomain','none')63 64 65 66 vertexinsideicedomain,elementinsideicedomain=ContourToMesh(elements,x,y,icedomainfile,'node',1)67 md.mask.ice_levelset[np.nonzero(vertexinsideicedomain)[0]] = -1.68 69 md.mask.ice_levelset = -1.*np.ones(md.mesh.numberofvertices)61 if(len(args)): 62 md.mask.ice_levelset = 1. * np.ones(md.mesh.numberofvertices) 63 icedomainfile = options.getfieldvalue('icedomain', 'none') 64 if not os.path.exists(icedomainfile): 65 raise IOError("setmask error message: ice domain file '%s' not found." % icedomainfile) 66 #use contourtomesh to set ice values inside ice domain 67 vertexinsideicedomain, elementinsideicedomain = ContourToMesh(elements, x, y, icedomainfile, 'node', 1) 68 md.mask.ice_levelset[np.nonzero(vertexinsideicedomain)[0]] = - 1. 69 else: 70 md.mask.ice_levelset = - 1. * np.ones(md.mesh.numberofvertices) 70 71 71 72 return md -
issm/trunk-jpl/src/m/partition/AreaAverageOntoPartition.py
r24179 r24213 1 1 import numpy as np 2 2 import copy 3 from adjacency import adjacency 4 from project2d import project2d 3 5 4 def AreaAverageOntoPartition(md,vector,layer=None): 5 '''AREAAVERAGEONTOPARTITION 6 7 def AreaAverageOntoPartition(md, vector, layer=None): 8 '''AREAAVERAGEONTOPARTITION 6 9 compute partition values for a certain vector expressed on the vertices of the mesh. 7 10 Use area weighted average. 8 11 9 12 Usage: 10 average =AreaAverageOntoPartition(md,vector)11 average =AreaAverageOntoPartition(md,vector,layer)#if in 3D, chose which layer is partitioned13 average = AreaAverageOntoPartition(md, vector) 14 average = AreaAverageOntoPartition(md, vector, layer) #if in 3D, chose which layer is partitioned 12 15 ''' 13 14 if(md.mesh.dimension()==3):15 if layer ==None:16 16 #some checks 17 if(md.mesh.dimension() == 3): 18 if layer is None: 19 raise RuntimeError('AreaAverageOntoPartition: layer should be provided onto which Area Averaging occurs') 17 20 18 19 21 #save 3D model 22 md3d = copy.deepcopy(md) 20 23 21 22 23 24 25 26 27 24 md.mesh.elements = md.mesh.elements2d 25 md.mesh.x = md.mesh.x2d 26 md.mesh.y = md.mesh.y2d 27 md.mesh.numberofvertices = md.mesh.numberofvertices2d 28 md.mesh.numberofelements = md.mesh.numberofelements2d 29 md.qmu.vertex_weight = [] 30 md.mesh.vertexconnectivity = [] 28 31 29 30 32 #run connectivity routine 33 md = adjacency(md) 31 34 32 #finally, project vector: 33 vector = project2d(md3d,vector,layer)34 md.qmu.vpartition = project2d(md3d,md3d.qmu.vpartition,layer)35 #finally, project vector: 36 vector = project2d(md3d, vector, layer) 37 md.qmu.vpartition = project2d(md3d, md3d.qmu.vpartition, layer) 35 38 39 #ok, first check that part is Matlab indexed 40 part = (md.qmu.vpartition).copy() 41 part = part.flatten() + 1 36 42 37 #ok, first check that part is Matlab indexed 38 part = (md.qmu.vpartition).copy() 39 part = part.flatten() + 1 43 #some check: 44 if md.qmu.numberofpartitions != max(part): 45 raise RuntimeError('AreaAverageOntoPartition error message: ''npart'' should be equal to max(md.qmu.vpartition)') 40 46 41 #some check: 42 if md.qmu.numberofpartitions != max(part): 43 raise RuntimeError('AreaAverageOntoPartition error message: ''npart'' should be equal to max(md.qmu.vpartition)') 47 #initialize output 48 partvector = np.zeros((max(part))) 44 49 50 #start weight average 51 weightedvector = vector.flatten() * md.qmu.vertex_weight 52 for i in range(max(part)): 53 pos = np.where((part - 1) == i) 54 partvector[i] = sum(weightedvector[pos]) / sum(md.qmu.vertex_weight[pos]) 45 55 46 #initialize output 47 partvector = np.zeros((max(part))) 56 #in 3D, restore 3D model: 57 if(md.mesh.dimension() == 3): 58 md = copy.deepcopy(md3d) 48 59 49 #start weight average 50 weightedvector = vector.flatten()*md.qmu.vertex_weight 51 for i in range(max(part)): 52 pos=np.where((part-1)==i) 53 partvector[i]=sum(weightedvector[pos])/sum(md.qmu.vertex_weight[pos]) 54 55 56 #in 3D, restore 3D model: 57 if(md.mesh.dimension()==3): 58 md = copy.deepcopy(md3d) 59 60 61 return partvector 62 60 return partvector -
issm/trunk-jpl/src/m/partition/adjacency.py
r23095 r24213 4 4 from GetAreas import * 5 5 6 6 7 def adjacency(md): 7 #ADJACENCY -compute adjacency matrix, list of vertices and list of weights.8 9 10 11 12 13 8 #ADJACENCY - compute adjacency matrix, list of vertices and list of weights. 9 # 10 # function to create the adjacency matrix from the connectivity table. 11 # 12 # the required output is: 13 # md.adj_mat (double [sparse nv x nv], vertex adjacency matrix) 14 # md.qmu.vertex_weight (double [nv], vertex weights) 14 15 15 indi=np.array([md.mesh.elements[:,0],md.mesh.elements[:,1],md.mesh.elements[:,2]])16 indj=np.array([md.mesh.elements[:,1],md.mesh.elements[:,2],md.mesh.elements[:,0]])17 values=np.ones(np.shape(indi))16 indi = np.array([md.mesh.elements[:, 0], md.mesh.elements[:, 1], md.mesh.elements[:, 2]]) 17 indj = np.array([md.mesh.elements[:, 1], md.mesh.elements[:, 2], md.mesh.elements[:, 0]]) 18 values = np.ones(np.shape(indi)) 18 19 19 md.qmu.adjacency=m.sparse(indi,indj,values,md.mesh.numberofvertices,md.mesh.numberofvertices)20 md.qmu.adjacency=np.logical_or(md.qmu.adjacency, md.qmu.adjacency.T).astype(float) #change to reshape(-1,1) if needed20 md.qmu.adjacency = m.sparse(indi, indj, values, md.mesh.numberofvertices, md.mesh.numberofvertices) 21 md.qmu.adjacency = np.logical_or(md.qmu.adjacency, md.qmu.adjacency.T).astype(float) #change to reshape(- 1, 1) if needed 21 22 22 23 areas=GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y)23 #now, build vwgt: 24 areas = GetAreas(md.mesh.elements, md.mesh.x, md.mesh.y) 24 25 25 26 md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices)26 #get node connectivity 27 md.mesh.vertexconnectivity = NodeConnectivity(md.mesh.elements, md.mesh.numberofvertices) 27 28 28 connectivity=md.mesh.vertexconnectivity[0][:,0:-1]29 pos=np.where(connectivity)30 connectivity[pos]=areas[connectivity[pos]-1]/3.31 md.qmu.vertex_weight=np.sum(connectivity,1)29 connectivity = md.mesh.vertexconnectivity[0][:, 0: - 1] 30 pos = np.where(connectivity) 31 connectivity[pos] = areas[connectivity[pos] - 1] / 3. 32 md.qmu.vertex_weight = np.sum(connectivity, 1) 32 33 33 34 return md -
issm/trunk-jpl/src/m/partition/partitioner.py
r24173 r24213 2 2 import copy 3 3 from pairoptions import * 4 import MatlabFuncs as m5 4 from adjacency import * 6 5 from Chaco import * 7 #from Scotch import *8 6 from MeshPartition import * 9 7 from project3d import * 10 8 from mesh2d import * 11 9 12 def partitioner(md,*varargin):13 help ='''14 PARTITIONER - partition mesh15 10 16 List of options to partitioner: 11 def partitioner(md, * varargin): 12 help = ''' 13 PARTITIONER - partition mesh 14 15 List of options to partitioner: 17 16 18 17 package: 'chaco', 'metis' 19 18 npart: number of partitions. 20 19 weighting: 'on' or 'off': default off 21 section: 1 by defaults(1 =bisection, 2=quadrisection, 3=octasection)20 section: 1 by defaults(1 = bisection, 2 = quadrisection, 3 = octasection) 22 21 recomputeadjacency: 'on' by default (set to 'off' to compute existing one) 23 22 type: 'node' or 'element' partition vector (default to 'node') 24 23 Output: md.qmu.partition recover the partition vector 25 24 26 25 Usage: 27 md =partitioner(md,'package','chaco','npart',100,'weighting','on')28 26 md = partitioner(md, 'package', 'chaco', 'npart', 100, 'weighting', 'on') 27 ''' 29 28 30 #get options: 31 options=pairoptions(*varargin)29 #get options: 30 options = pairoptions(* varargin) 32 31 33 #set defaults 34 options.addfielddefault('package','chaco')35 options.addfielddefault('npart',10)36 options.addfielddefault('weighting','on') 37 options.addfielddefault('section',1) 38 options.addfielddefault('recomputeadjacency','on') 39 options.addfielddefault('type','node')32 #get options: 33 section = options.getfieldvalue('section', 1) 34 weighting = options.getfieldvalue('weighting', 'on') 35 package = options.getfieldvalue('package', 'chaco') #default to chaco 36 npart = options.getfieldvalue('npart', 10) # default to 10 37 recomputeadjacency = options.getfieldvalue('recomputeadjacency', 'on') # default to on 38 vectortype = options.getfieldvalue('type', 'node') #default to node 40 39 41 #get package: 42 package=options.getfieldvalue('package') 43 npart=options.getfieldvalue('npart') 44 recomputeadjacency=options.getfieldvalue('recomputeadjacency') 45 vectortype=options.getfieldvalue('type') 40 if vectortype == 'element' and not package == 'linear': 41 raise RuntimeError('partitioner error message: package ' + str(package) + ' does not allow element partitions.') 46 42 47 if m.strcmpi(vectortype,'element') and not m.strcmpi(package,'linear'): 48 raise RuntimeError('partitioner error message: package '+str(package)+' does not allow element partitions.') 43 if(md.mesh.dimension() == 3): 44 #partitioning essentially happens in 2D. So partition in 2D, then 45 #extrude the partition vector vertically. 46 md3d = copy.deepcopy(md) 47 md.mesh.elements = md.mesh.elements2d 48 md.mesh.x = md.mesh.x2d 49 md.mesh.y = md.mesh.y2d 50 md.mesh.numberofvertices = md.mesh.numberofvertices2d 51 md.mesh.numberofelements = md.mesh.numberofelements2d 52 md.qmu.vertex_weight = [] 53 md.mesh.vertexconnectivity = [] 54 recomputeadjacency = 'on' 49 55 50 if(md.mesh.dimension()==3): 51 #partitioning essentially happens in 2D. So partition in 2D, then 52 #extrude the partition vector vertically. 53 md3d = copy.deepcopy(md) 54 md.mesh.elements=md.mesh.elements2d 55 md.mesh.x=md.mesh.x2d 56 md.mesh.y=md.mesh.y2d 57 md.mesh.numberofvertices=md.mesh.numberofvertices2d 58 md.mesh.numberofelements=md.mesh.numberofelements2d 59 md.qmu.vertex_weight=[] 60 md.mesh.vertexconnectivity=[] 61 recomputeadjacency='on' 56 #adjacency matrix if needed: 57 if recomputeadjacency == 'on': 58 md = adjacency(md) 59 else: 60 print('skipping adjacency matrix computation as requested in the options') 62 61 63 #adjacency matrix if needed: 64 if m.strcmpi(recomputeadjacency,'on'): 65 md=adjacency(md) 66 else: 67 print('skipping adjacency matrix computation as requested in the options') 62 if package == 'chaco': 63 #raise RuntimeError('Chaco is not currently supported for this function') 64 # default method (from chaco.m) 65 method = np.array([1, 1, 0, 0, 1, 1, 50, 0, 0.001, 7654321]) 66 method[0] = 3 # global method (3 = inertial (geometric)) 67 method[2] = 0 # vertex weights (0 = off, 1 = on) 68 #specify bisection 69 method[5] = section # ndims (1 = bisection, 2 = quadrisection, 3 = octasection) 68 70 69 if m.strcmpi(package,'chaco'): 70 #raise RuntimeError('Chaco is not currently supported for this function') 71 #are we using weights? 72 if weighting == 'on': 73 weights = np.floor(md.qmu.vertex_weight / min(md.qmu.vertex_weight)) 74 method[2] = 1 75 else: 76 weights = [] 71 77 72 # default method (from chaco.m) 73 method=np.array([1,1,0,0,1,1,50,0,.001,7654321]) 74 method[0]=3 # global method (3=inertial (geometric)) 75 method[2]=0 # vertex weights (0=off, 1=on) 78 method = method.reshape(- 1, 1) # transpose to 1x10 instead of 10 79 # partition into nparts 80 if isinstance(md.mesh, mesh2d): 81 part = np.array(Chaco(md.qmu.adjacency, weights, np.array([]), md.mesh.x, md.mesh.y, np.zeros((md.mesh.numberofvertices, )), method, npart, np.array([]))).T + 1 #index partitions from 1 up. like metis. 82 else: 83 part = np.array(Chaco(md.qmu.adjacency, weights, np.array([]), md.mesh.x, md.mesh.y, md.mesh.z, method, npart, np.array([]))).T + 1 #index partitions from 1 up. like metis. 76 84 77 #specify bisection 78 method[5]=options.getfieldvalue('section')# ndims (1=bisection, 2=quadrisection, 3=octasection)85 elif package == 'scotch': 86 raise RuntimeError('Scotch is not currently supported for this function') 79 87 80 #are we using weights? 81 if m.strcmpi(options.getfieldvalue('weighting'),'on'): 82 weights=np.floor(md.qmu.vertex_weight/min(md.qmu.vertex_weight)) 83 method[2]=1 84 else: 85 weights=[] 86 87 method = method.reshape(-1,1) # transpose to 1x10 instead of 10 88 #are we using weights? 89 #if m.strcmpi(options.getfieldvalue('weighting'), 'on'): 90 #weights = np.floor(md.qmu.vertex_weight / min(md.qmu.vertex_weight)) 91 #else: 92 #weights = [] 93 #maptab = Scotch(md.qmu.adjacency, [], weights, [], 'cmplt', [npart]) 94 #part = maptab[:, 1] + 1 #index partitions from 1 up. like metis. 88 95 89 # partition into nparts 90 if isinstance(md.mesh,mesh2d): 91 part=np.array(Chaco(md.qmu.adjacency,weights,np.array([]),md.mesh.x, md.mesh.y,np.zeros((md.mesh.numberofvertices,)),method,npart,np.array([]))).T+1 #index partitions from 1 up. like metis. 92 else: 93 part=np.array(Chaco(md.qmu.adjacency,weights,np.array([]),md.mesh.x, md.mesh.y,md.mesh.z,method,npart,np.array([]))).T+1 #index partitions from 1 up. like metis. 94 95 elif m.strcmpi(package,'scotch'): 96 raise RuntimeError('Scotch is not currently supported for this function') 96 elif package == 'linear': 97 97 98 #are we using weights? 99 #if m.strcmpi(options.getfieldvalue('weighting'),'on'): 100 #weights=np.floor(md.qmu.vertex_weight/min(md.qmu.vertex_weight)) 101 #else: 102 #weights=[] 103 104 #maptab=Scotch(md.qmu.adjacency,[],weights,[],'cmplt',[npart]) 98 if (npart == md.mesh.numberofelements) or (md.qmu.numberofpartitions == md.mesh.numberofelements): 99 part = np.arange(1, 1 + md.mesh.numberofelements, 1) 100 print('Linear partitioner requesting partitions on elements') 101 else: 102 part = np.arange(1, 1 + md.mesh.numberofvertices, 1) 105 103 106 #part=maptab[:,1]+1#index partitions from 1 up. like metis. 104 elif package == 'metis': 105 raise RuntimeError('Metis/MeshPartition is not currently supported for this function') 106 #[element_partitioning, part] = MeshPartition(md, md.qmu.numberofpartitions) 107 107 108 elif m.strcmpi(package,'linear'): 108 else: 109 print(help) 110 raise RuntimeError('partitioner error message: could not find ' + str(package) + ' partitioner') 109 111 110 if (npart == md.mesh.numberofelements) or (md.qmu.numberofpartitions == md.mesh.numberofelements): 111 part=np.arange(1,1+md.mesh.numberofelements,1) 112 print('Linear partitioner requesting partitions on elements') 113 else: 114 part=np.arange(1,1+md.mesh.numberofvertices,1) 112 #extrude if we are in 3D: 113 if md.mesh.dimension() == 3: 114 md3d.qmu.vertex_weight = md.qmu.vertex_weight 115 md3d.qmu.adjacency = md.qmu.adjacency 116 md = md3d 117 if vectortype == 'element': 118 part = project3d(md, 'vector', np.squeeze(part), 'type', 'element') 119 else: 120 part = project3d(md, 'vector', np.squeeze(part), 'type', 'node') 115 121 116 elif m.strcmpi(package,'metis'): 117 raise RuntimeError('Metis/MeshPartition is not currently supported for this function') 118 #[element_partitioning,part]=MeshPartition(md,md.qmu.numberofpartitions) 122 part = part.reshape(- 1, 1) 119 123 120 else: 121 print(help) 122 raise RuntimeError('partitioner error message: could not find '+str(package)+' partitioner') 123 124 #extrude if we are in 3D: 125 if md.mesh.dimension()==3: 126 md3d.qmu.vertex_weight=md.qmu.vertex_weight 127 md3d.qmu.adjacency=md.qmu.adjacency 128 md=md3d 129 if m.strcmpi(vectortype,'element'): 130 part=project3d(md,'vector',np.squeeze(part),'type','element') 131 else: 132 part=project3d(md,'vector',np.squeeze(part),'type','node') 133 134 part=part.reshape(-1,1) 135 136 if m.strcmpi(vectortype,'element'): 137 md.qmu.epartition=part 138 if np.size(md.qmu.vpartition) == 0 or (np.size(md.qmu.vpartition) == 1 and np.isnan(md.qmu.vpartition)): 139 md.qmu.vpartition=np.zeros((md.mesh.numberofvertices,1)) 140 141 else: 142 md.qmu.vpartition=part 143 if np.size(md.qmu.epartition) == 0 or (np.size(md.qmu.epartition) == 1 and np.isnan(md.qmu.epartition)): 144 md.qmu.epartition=np.zeros((md.mesh.numberofelements,1)) 145 146 return md 124 if vectortype == 'element': 125 md.qmu.epartition = part 126 if np.size(md.qmu.vpartition) == 0 or (np.size(md.qmu.vpartition) == 1 and np.isnan(md.qmu.vpartition)): 127 md.qmu.vpartition = np.zeros((md.mesh.numberofvertices, 1)) 128 else: 129 md.qmu.vpartition = part 130 if np.size(md.qmu.epartition) == 0 or (np.size(md.qmu.epartition) == 1 and np.isnan(md.qmu.epartition)): 131 md.qmu.epartition = np.zeros((md.mesh.numberofelements, 1)) 132 return md -
issm/trunk-jpl/src/m/plot/applyoptions.py
r23920 r24213 1 import numpy as 1 import numpy as np 2 2 from cmaptools import getcolormap 3 3 from plot_contour import plot_contour … … 7 7 try: 8 8 from matplotlib.ticker import MaxNLocator 9 from mpl_toolkits.axes_grid1 import make_axes_locatable10 from mpl_toolkits.mplot3d import Axes3D11 9 import matplotlib as mpl 12 10 import matplotlib.pyplot as plt … … 14 12 print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled") 15 13 16 def applyoptions(md,data,options,fig,axgrid,gridindex): 14 15 def applyoptions(md, data, options, fig, axgrid, gridindex): 17 16 ''' 18 17 APPLYOPTIONS - apply options to current plot … … 22 21 23 22 Usage: 24 applyoptions(md, data,options)23 applyoptions(md, data, options) 25 24 26 25 See also: PLOTMODEL, PARSE_OPTIONS … … 29 28 # get handle to current figure and axes instance 30 29 #fig = p.gcf() 31 ax =axgrid[gridindex]30 ax = axgrid[gridindex] 32 31 33 32 # {{{ font 34 fontsize =options.getfieldvalue('fontsize',8)35 fontweight =options.getfieldvalue('fontweight','normal')36 fontfamily =options.getfieldvalue('fontfamily','sans-serif')37 font ={'fontsize' :fontsize,38 'fontweight' :fontweight,39 'family' :fontfamily}33 fontsize = options.getfieldvalue('fontsize', 8) 34 fontweight = options.getfieldvalue('fontweight', 'normal') 35 fontfamily = options.getfieldvalue('fontfamily', 'sans - serif') 36 font = {'fontsize': fontsize, 37 'fontweight': fontweight, 38 'family': fontfamily} 40 39 # }}} 41 40 # {{{ title 42 41 if options.exist('title'): 43 title =options.getfieldvalue('title')42 title = options.getfieldvalue('title') 44 43 if options.exist('titlefontsize'): 45 titlefontsize =options.getfieldvalue('titlefontsize')46 else: 47 titlefontsize =fontsize44 titlefontsize = options.getfieldvalue('titlefontsize') 45 else: 46 titlefontsize = fontsize 48 47 if options.exist('titlefontweight'): 49 titlefontweight =options.getfieldvalue('titlefontweight')50 else: 51 titlefontweight =fontweight52 53 titlefont =font.copy()54 titlefont['size'] =titlefontsize55 titlefont['weight'] =titlefontweight56 ax.set_title(title, **titlefont)48 titlefontweight = options.getfieldvalue('titlefontweight') 49 else: 50 titlefontweight = fontweight 51 #title font 52 titlefont = font.copy() 53 titlefont['size'] = titlefontsize 54 titlefont['weight'] = titlefontweight 55 ax.set_title(title, **titlefont) 57 56 # }}} 58 57 # {{{ xlabel, ylabel, zlabel 59 58 if options.exist('labelfontsize'): 60 labelfontsize =options.getfieldvalue('labelfontsize')59 labelfontsize = options.getfieldvalue('labelfontsize') 61 60 else: 62 labelfontsize =fontsize61 labelfontsize = fontsize 63 62 if options.exist('labelfontweight'): 64 labelfontweight =options.getfieldvalue('labelfontweight')63 labelfontweight = options.getfieldvalue('labelfontweight') 65 64 else: 66 labelfontweight =fontweight65 labelfontweight = fontweight 67 66 68 67 #font dict for labels 69 labelfont =font.copy()70 labelfont['fontsize'] =labelfontsize71 labelfont['fontweight'] =labelfontweight68 labelfont = font.copy() 69 labelfont['fontsize'] = labelfontsize 70 labelfont['fontweight'] = labelfontweight 72 71 73 72 if options.exist('xlabel'): 74 ax.set_xlabel(options.getfieldvalue('xlabel'), **labelfont)73 ax.set_xlabel(options.getfieldvalue('xlabel'), **labelfont) 75 74 if options.exist('ylabel'): 76 ax.set_ylabel(options.getfieldvalue('ylabel'), **labelfont)75 ax.set_ylabel(options.getfieldvalue('ylabel'), **labelfont) 77 76 if options.exist('zlabel'): 78 ax.set_zlabel(options.getfieldvalue('zlabel'), **labelfont)77 ax.set_zlabel(options.getfieldvalue('zlabel'), **labelfont) 79 78 # }}} 80 79 # {{{ xticks, yticks, zticks (tick locations) 81 80 if options.exist('xticks'): 82 81 if options.exist('xticklabels'): 83 xticklabels =options.getfieldvalue('xticklabels')84 ax.set_xticks(options.getfieldvalue('xticks'), xticklabels)82 xticklabels = options.getfieldvalue('xticklabels') 83 ax.set_xticks(options.getfieldvalue('xticks'), xticklabels) 85 84 else: 86 85 ax.set_xticks(options.getfieldvalue('xticks')) 87 86 if options.exist('yticks'): 88 87 if options.exist('yticklabels'): 89 yticklabels =options.getfieldvalue('yticklabels')90 ax.set_yticks(options.getfieldvalue('yticks'), yticklabels)88 yticklabels = options.getfieldvalue('yticklabels') 89 ax.set_yticks(options.getfieldvalue('yticks'), yticklabels) 91 90 else: 92 91 ax.set_yticks(options.getfieldvalue('yticks')) 93 92 if options.exist('zticks'): 94 93 if options.exist('zticklabels'): 95 zticklabels =options.getfieldvalue('zticklabels')96 ax.set_zticks(options.getfieldvalue('zticks'), zticklabels)94 zticklabels = options.getfieldvalue('zticklabels') 95 ax.set_zticks(options.getfieldvalue('zticks'), zticklabels) 97 96 else: 98 97 ax.set_zticks(options.getfieldvalue('zticks')) 99 98 # }}} 100 # {{{ xticklabels, yticklabels,zticklabels101 if options.getfieldvalue('ticklabels', 'off')=='off' or options.getfieldvalue('ticklabels',0)==0:102 options.addfielddefault('xticklabels', [])103 options.addfielddefault('yticklabels', [])104 # TODO check if ax has a z-axis (e.g. is 3D)99 # {{{ xticklabels, yticklabels, zticklabels 100 if options.getfieldvalue('ticklabels', 'off') == 'off' or options.getfieldvalue('ticklabels', 0) == 0: 101 options.addfielddefault('xticklabels', []) 102 options.addfielddefault('yticklabels', []) 103 # TODO check if ax has a z - axis (e.g. is 3D) 105 104 if options.exist('xticklabels'): 106 xticklabels =options.getfieldvalue('xticklabels')105 xticklabels = options.getfieldvalue('xticklabels') 107 106 ax.set_xticklabels(xticklabels) 108 107 if options.exist('yticklabels'): 109 yticklabels =options.getfieldvalue('yticklabels')108 yticklabels = options.getfieldvalue('yticklabels') 110 109 ax.set_yticklabels(yticklabels) 111 110 if options.exist('zticklabels'): 112 zticklabels =options.getfieldvalue('zticklabels')111 zticklabels = options.getfieldvalue('zticklabels') 113 112 ax.set_zticklabels(zticklabels) 114 113 # }}} 115 114 # {{{ ticklabel notation 116 #ax.ticklabel_format(style ='sci',scilimits=(0,0))115 #ax.ticklabel_format(style = 'sci', scilimits=(0, 0)) 117 116 # }}} 118 117 # {{{ ticklabelfontsize … … 120 119 for label in ax.get_xticklabels() + ax.get_yticklabels(): 121 120 label.set_fontsize(options.getfieldvalue('ticklabelfontsize')) 122 if int(md.mesh.dimension) ==3:121 if int(md.mesh.dimension) == 3: 123 122 for label in ax.get_zticklabels(): 124 123 label.set_fontsize(options.getfieldvalue('ticklabelfontsize')) … … 126 125 # {{{ view TOFIX 127 126 #if int(md.mesh.dimension) == 3 and options.exist('layer'): 128 # 129 # ax =fig.gca(projection='3d')127 # #options.getfieldvalue('view') ? 128 # ax = fig.gca(projection = '3d') 130 129 #plt.show() 131 130 # }}} 132 131 # {{{ axis 133 132 if options.exist('axis'): 134 if options.getfieldvalue('axis', True)=='off':133 if options.getfieldvalue('axis', True) == 'off': 135 134 ax.ticklabel_format(style='plain') 136 135 p.setp(ax.get_xticklabels(), visible=False) … … 157 156 # {{{ clim 158 157 if options.exist('clim'): 159 lims =options.getfieldvalue('clim')160 assert len(lims) ==2, 'error, clim should be passed as a list of length 2'158 lims = options.getfieldvalue('clim') 159 assert len(lims) == 2, 'error, clim should be passed as a list of length 2' 161 160 elif options.exist('caxis'): 162 lims =options.getfieldvalue('caxis')163 assert len(lims) ==2, 'error, caxis should be passed as a list of length 2'164 options.addfielddefault('clim', lims)161 lims = options.getfieldvalue('caxis') 162 assert len(lims) == 2, 'error, caxis should be passed as a list of length 2' 163 options.addfielddefault('clim', lims) 165 164 else: 166 if len(data) >0:167 lims =[data.min(),data.max()]168 else: 169 lims =[0,1]165 if len(data) > 0: 166 lims = [data.min(), data.max()] 167 else: 168 lims = [0, 1] 170 169 # }}} 171 170 # {{{ shading TODO … … 174 173 # {{{ grid 175 174 if options.exist('grid'): 176 if 'on' in options.getfieldvalue('grid', 'on'):175 if 'on' in options.getfieldvalue('grid', 'on'): 177 176 ax.grid() 178 177 # }}} 179 178 # {{{ colormap 180 179 if options.exist('colornorm'): 181 norm =options.getfieldvalue('colornorm')180 norm = options.getfieldvalue('colornorm') 182 181 if options.exist('colormap'): 183 cmap =getcolormap(options)184 cbar_extend =0182 cmap = getcolormap(options) 183 cbar_extend = 0 185 184 if options.exist('cmap_set_over'): 186 cbar_extend +=1185 cbar_extend += 1 187 186 if options.exist('cmap_set_under'): 188 cbar_extend +=2187 cbar_extend += 2 189 188 # }}} 190 189 # {{{ contours 191 190 if options.exist('contourlevels'): 192 plot_contour(md, data,options,ax)191 plot_contour(md, data, options, ax) 193 192 # }}} 194 193 # {{{ wrapping TODO 195 194 # }}} 196 195 # {{{ colorbar 197 if options.getfieldvalue('colorbar', 1)==1:198 if cbar_extend ==0:199 extend ='neither'200 elif cbar_extend ==1:201 extend ='max'202 elif cbar_extend ==2:203 extend ='min'204 elif cbar_extend ==3:205 extend ='both'206 207 cb = mpl.colorbar.ColorbarBase(ax.cax, cmap=cmap, norm=norm, extend=extend)196 if options.getfieldvalue('colorbar', 1) == 1: 197 if cbar_extend == 0: 198 extend = 'neither' 199 elif cbar_extend == 1: 200 extend = 'max' 201 elif cbar_extend == 2: 202 extend = 'min' 203 elif cbar_extend == 3: 204 extend = 'both' 205 206 cb = mpl.colorbar.ColorbarBase(ax.cax, cmap=cmap, norm=norm, extend=extend) 208 207 if options.exist('alpha'): 209 208 cb.set_alpha(options.getfieldvalue('alpha')) 210 209 if options.exist('colorbarnumticks'): 211 cb.locator =MaxNLocator(nbins=options.getfieldvalue('colorbarnumticks',5))212 else: 213 cb.locator =MaxNLocator(nbins=5)# default 5 ticks210 cb.locator = MaxNLocator(nbins=options.getfieldvalue('colorbarnumticks', 5)) 211 else: 212 cb.locator = MaxNLocator(nbins=5) # default 5 ticks 214 213 if options.exist('colorbartickspacing'): 215 locs =np.arange(lims[0],lims[1]+1,options.getfieldvalue('colorbartickspacing'))214 locs = np.arange(lims[0], lims[1] + 1, options.getfieldvalue('colorbartickspacing')) 216 215 cb.set_ticks(locs) 217 216 if options.exist('colorbarlines'): 218 locs =np.arange(lims[0],lims[1]+1,options.getfieldvalue('colorbarlines'))219 cb.add_lines(locs, ['k' for i in range(len(locs))],np.ones_like(locs))217 locs = np.arange(lims[0], lims[1] + 1, options.getfieldvalue('colorbarlines')) 218 cb.add_lines(locs, ['k' for i in range(len(locs))], np.ones_like(locs)) 220 219 if options.exist('colorbarlineatvalue'): 221 locs =options.getfieldvalue('colorbarlineatvalue')222 colors =options.getfieldvalue('colorbarlineatvaluecolor',['k' for i in range(len(locs))])223 widths =options.getfieldvalue('colorbarlineatvaluewidth',np.ones_like(locs))224 cb.add_lines(locs, colors,widths)220 locs = options.getfieldvalue('colorbarlineatvalue') 221 colors = options.getfieldvalue('colorbarlineatvaluecolor', ['k' for i in range(len(locs))]) 222 widths = options.getfieldvalue('colorbarlineatvaluewidth', np.ones_like(locs)) 223 cb.add_lines(locs, colors, widths) 225 224 if options.exist('colorbartitle'): 226 225 if options.exist('colorbartitlepad'): 227 226 cb.set_label(options.getfieldvalue('colorbartitle'), 228 labelpad=options.getfieldvalue('colorbartitlepad'),fontsize=fontsize) 227 labelpad=options.getfieldvalue('colorbartitlepad'), 228 fontsize=fontsize) 229 229 else: 230 cb.set_label(options.getfieldvalue('colorbartitle'), fontsize=fontsize)230 cb.set_label(options.getfieldvalue('colorbartitle'), fontsize=fontsize) 231 231 cb.ax.tick_params(labelsize=fontsize) 232 232 cb.solids.set_rasterized(True) … … 234 234 cb.draw_all() 235 235 if options.exist('colorbarfontsize'): 236 colorbarfontsize =options.getfieldvalue('colorbarfontsize')236 colorbarfontsize = options.getfieldvalue('colorbarfontsize') 237 237 cb.ax.tick_params(labelsize=colorbarfontsize) 238 # cb.set_ticks([0,-10])239 # cb.set_ticklabels([-10,0,10])238 # cb.set_ticks([0, - 10]) 239 # cb.set_ticklabels([-10, 0, 10]) 240 240 if options.exist('colorbarticks'): 241 colorbarticks =options.getfieldvalue('colorbarticks')241 colorbarticks = options.getfieldvalue('colorbarticks') 242 242 cb.set_ticks(colorbarticks) 243 plt.sca(ax) # return to original axes control243 plt.sca(ax) # return to original axes control 244 244 # }}} 245 245 # {{{ expdisp 246 246 if options.exist('expdisp'): 247 expdisp(ax,options)247 expdisp(ax, options) 248 248 # }}} 249 249 # {{{ area TODO … … 251 251 # {{{ text 252 252 if options.exist('text'): 253 text =options.getfieldvalue('text')254 textx =options.getfieldvalue('textx')255 texty =options.getfieldvalue('texty')256 textcolor =options.getfieldvalue('textcolor')257 textweight =options.getfieldvalue('textweight')258 textrotation =options.getfieldvalue('textrotation')259 textfontsize =options.getfieldvalue('textfontsize')260 for label, x,y,size,color,weight,rotation in zip(text,textx,texty,textfontsize,textcolor,textweight,textrotation):261 ax.text(x, y,label,transform=ax.transAxes,fontsize=size,color=color,weight=weight,rotation=rotation)253 text = options.getfieldvalue('text') 254 textx = options.getfieldvalue('textx') 255 texty = options.getfieldvalue('texty') 256 textcolor = options.getfieldvalue('textcolor') 257 textweight = options.getfieldvalue('textweight') 258 textrotation = options.getfieldvalue('textrotation') 259 textfontsize = options.getfieldvalue('textfontsize') 260 for label, x, y, size, color, weight, rotation in zip(text, textx, texty, textfontsize, textcolor, textweight, textrotation): 261 ax.text(x, y, label, transform=ax.transAxes, fontsize=size, color=color, weight=weight, rotation=rotation) 262 262 # }}} 263 263 # {{{ north arrow TODO … … 267 267 # {{{ streamlines TOFIX 268 268 if options.exist('streamlines'): 269 plot_streamlines(md, options,ax)269 plot_streamlines(md, options, ax) 270 270 # }}} 271 271 # {{{ axis positions TODO -
issm/trunk-jpl/src/m/plot/checkplotoptions.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 3 def checkplotoptions(md,options):4 '''5 CHECKPLOTOPTIONS - build a structure that holds all plot options6 3 7 Usage: 8 options=checkplotoptions(md,options) 4 def checkplotoptions(md, options): 5 ''' 6 CHECKPLOTOPTIONS - build a structure that holds all plot options 9 7 10 See also: PLOTMODEL 8 Usage: 9 options = checkplotoptions(md, options) 11 10 12 NOTE: not fully implemented yet 13 ''' 11 See also: PLOTMODEL 14 12 15 # {{{ units 16 if options.exist('unit'): 17 if 'km' in options.getfieldvalue('unit','km'): 18 options.changefieldvalue('unit',10**-3) 19 elif '100km' in options.getfieldvalue('unit','100km'): 20 options.changefieldvalue('unit',10**-5) 21 # }}} 22 # {{{ density 23 if options.exist('density'): 24 density=options.getfieldvalue('density') 25 options.changefieldvalue('density',abs(ceil(density))) 26 # }}} 27 # {{{ show section 28 if options.exist('showsection'): 29 if 'on' in options.getfieldvalue('showsection','on'): 30 options.changefieldvalue('showsection',4) 31 # }}} 32 # {{{ smooth values 33 if options.exist('smooth'): 34 if 'on' in options.getfieldvalue('smooth','on'): 35 options.changefieldvalue('smooth',0) 36 # }}} 37 # {{{ contouronly values 38 if options.exist('contouronly'): 39 if 'on' in options.getfieldvalue('contouronly','on'): 40 options.changefieldvalue('contouronly',1) 41 # }}} 42 # {{{ colorbar 43 if options.exist('colorbar'): 44 if 'on' in options.getfieldvalue('colorbar','on'): 45 options.changefieldvalue('colorbar',1) 46 elif 'off' in options.getfieldvalue('colorbar','off'): 47 options.changefieldvalue('colorbar',0) 48 # }}} 49 # {{{ text 50 if options.exist('text'): 51 # text values (coerce to list for consistent functionality) 52 textlist=[] 53 text=options.getfieldvalue('text','default text') 54 textlist.extend([text] if isinstance(text,str) else text) 55 numtext=len(textlist) 56 # text position 57 textpos=options.getfieldvalue('textposition',[0.5,0.5]) 58 if not isinstance(textpos,list): 59 raise Exception('textposition should be passed as a list') 60 if any(isinstance(i,list) for i in textpos): 61 textx=[item[0] for item in textpos] 62 texty=[item[1] for item in textpos] 63 else: 64 textx=[textpos[0]] 65 texty=[textpos[1]] 66 if len(textx)!=numtext or len(texty)!=numtext: 67 raise Exception('textposition should contain one list of x,y vertices for every text instance') 13 NOTE: not fully implemented yet 14 ''' 68 15 69 # font size 70 if options.exist('textfontsize'): 71 textfontsize=options.getfieldvalue('textfontsize',12) 72 sizelist=[] 73 sizelist.extend(textsize if isinstance(textfontsize,list) else [textfontsize]) 74 else: 75 sizelist=[12] 76 if len(sizelist)==1: 77 sizelist=np.tile(sizelist,numtext) 16 # {{{ units 17 if options.exist('unit'): 18 if 'km' in options.getfieldvalue('unit', 'km'): 19 options.changefieldvalue('unit', 10**- 3) 20 elif '100km' in options.getfieldvalue('unit', '100km'): 21 options.changefieldvalue('unit', 10**- 5) 22 # }}} 23 # {{{ density 24 if options.exist('density'): 25 density = options.getfieldvalue('density') 26 options.changefieldvalue('density', abs(np.ceil(density))) 27 # }}} 28 # {{{ show section 29 if options.exist('showsection'): 30 if 'on' in options.getfieldvalue('showsection', 'on'): 31 options.changefieldvalue('showsection', 4) 32 # }}} 33 # {{{ smooth values 34 if options.exist('smooth'): 35 if 'on' in options.getfieldvalue('smooth', 'on'): 36 options.changefieldvalue('smooth', 0) 37 # }}} 38 # {{{ contouronly values 39 if options.exist('contouronly'): 40 if 'on' in options.getfieldvalue('contouronly', 'on'): 41 options.changefieldvalue('contouronly', 1) 42 # }}} 43 # {{{ colorbar 44 if options.exist('colorbar'): 45 if 'on' in options.getfieldvalue('colorbar', 'on'): 46 options.changefieldvalue('colorbar', 1) 47 elif 'off' in options.getfieldvalue('colorbar', 'off'): 48 options.changefieldvalue('colorbar', 0) 49 # }}} 50 # {{{ layer 51 if options.exist('layer'): 52 if options.getfieldvalue('layer') == 0: 53 raise Exception('Due to Matlab history first layer is numbered 1') 54 if options.getfieldvalue('layer') == md.mesh.numberoflayers - 1: 55 print('WARNING : you are plotting layer {}, surface is layer{}.'.format(md.mesh.numberoflayers - 1, md.mesh.numberoflayers)) 56 # }}} 57 # {{{ text 58 if options.exist('text'): 59 # text values (coerce to list for consistent functionality) 60 textlist = [] 61 text = options.getfieldvalue('text', 'default text') 62 textlist.extend([text] if isinstance(text, str) else text) 63 numtext = len(textlist) 64 # text position 65 textpos = options.getfieldvalue('textposition', [0.5, 0.5]) 66 if not isinstance(textpos, list): 67 raise Exception('textposition should be passed as a list') 68 if any(isinstance(i, list) for i in textpos): 69 textx = [item[0] for item in textpos] 70 texty = [item[1] for item in textpos] 71 else: 72 textx = [textpos[0]] 73 texty = [textpos[1]] 74 if len(textx) != numtext or len(texty) != numtext: 75 raise Exception('textposition should contain one list of x, y vertices for every text instance') 78 76 79 # font color 80 if options.exist('textcolor'):81 textcolor=options.getfieldvalue('textcolor','k')82 colorlist=[]83 colorlist.extend(textcolor if isinstance(textcolor,list) else [textcolor])84 85 colorlist=['k']86 if len(colorlist)==1:87 colorlist=np.tile(colorlist,numtext)77 # font size 78 if options.exist('textfontsize'): 79 textfontsize = options.getfieldvalue('textfontsize', 12) 80 sizelist = [] 81 sizelist.extend(textfontsize if isinstance(textfontsize, list) else [textfontsize]) 82 else: 83 sizelist = [12] 84 if len(sizelist) == 1: 85 sizelist = np.tile(sizelist, numtext) 88 86 89 # textweight 90 if options.exist('textweight'):91 textweight=options.getfieldvalue('textweight')92 weightlist=[]93 weightlist.extend(textweight if isinstance(textweight,list) else [textweight])94 95 weightlist=['normal']96 if len(weightlist)==1:97 weightlist=np.tile(weightlist,numtext)87 # font color 88 if options.exist('textcolor'): 89 textcolor = options.getfieldvalue('textcolor', 'k') 90 colorlist = [] 91 colorlist.extend(textcolor if isinstance(textcolor, list) else [textcolor]) 92 else: 93 colorlist = ['k'] 94 if len(colorlist) == 1: 95 colorlist = np.tile(colorlist, numtext) 98 96 99 # text rotation 100 if options.exist('textrotation'):101 textrotation=options.getfieldvalue('textrotation',0)102 rotationlist=[]103 rotationlist.extend(textrotation if isinstance(textrotation,list) else [textrotation])104 105 rotationlist=[0]106 if len(rotationlist)==1:107 rotationlist=np.tile(rotationlist,numtext)97 # textweight 98 if options.exist('textweight'): 99 textweight = options.getfieldvalue('textweight') 100 weightlist = [] 101 weightlist.extend(textweight if isinstance(textweight, list) else [textweight]) 102 else: 103 weightlist = ['normal'] 104 if len(weightlist) == 1: 105 weightlist = np.tile(weightlist, numtext) 108 106 109 options.changefieldvalue('text',textlist) 110 options.addfield('textx',textx) 111 options.addfield('texty',texty) 112 options.changefieldvalue('textfontsize',sizelist) 113 options.changefieldvalue('textcolor',colorlist) 114 options.changefieldvalue('textweight',weightlist) 115 options.changefieldvalue('textrotation',rotationlist) 116 # }}} 117 # {{{ expdisp 118 expdispvaluesarray=[] 119 expstylevaluesarray=[] 120 expstylevalues=[] 121 if options.exist('expstyle'): 122 expstylevalues=options.getfieldvalue('expstyle') 123 if type(expstylevalues)==str: 124 expstylevalues=[expstylevalues] 125 if options.exist('expdisp'): 126 expdispvalues=options.getfieldvalue('expdisp') 127 if type(expdispvalues)==str: 128 expdispvalues=[expdispvalues] 129 for i in np.arange(len(expdispvalues)): 130 expdispvaluesarray.append(expdispvalues[i]) 131 if len(expstylevalues)>i: 132 expstylevaluesarray.append(expstylevalues[i]) 133 else: 134 expstylevaluesarray.append('-k') 135 options.changefieldvalue('expstyle',expstylevaluesarray) 136 options.changefieldvalue('expdisp',expdispvaluesarray) 137 # }}} 138 # {{{ latlonnumbering 139 if options.exist('latlonclick'): 140 if 'on' in options.getfieldvalue('latlonclick','on'): 141 options.changefieldvalue('latlonclick',1) 142 # }}} 143 # {{{ northarrow 144 if options.exist('northarrow'): 145 if 'on' in options.getfieldvalue('northarrow','on'): 146 #default values 147 Lx=max(md.mesh.x)-min(md.mesh.x) 148 Ly=max(md.mesh.y)-min(md.mesh.y) 149 options.changefieldvalue('northarrow',[min(md.mesh.x)+1./6.*Lx, min(md.mesh.y)+5./6.*Ly, 1./15.*Ly, 0.25, 1./250.*Ly]) 150 # }}} 151 # {{{ scale ruler 152 if options.exist('scaleruler'): 153 if 'on' in options.getfieldvalue('scaleruler','off'): 154 Lx=max(md.mesh.x)-min(md.mesh.x) 155 Ly=max(md.mesh.y)-min(md.mesh.y) 156 options.changefieldvalue('scaleruler',[min(md.mesh.x)+6./8.*Lx, min(md.mesh.y)+1./10.*Ly, 10**(np.ceil(np.log10(Lx)))/5, np.floor(Lx/100), 5]) 157 # }}} 158 # {{{ log scale 159 if options.exist('log'): 160 options.changefieldvalue('cutoff',np.log10(options.getfieldvalue('cutoff',1.5))/np.log10(options.getfieldvalue('log'))) 161 # }}} 162 return options 107 # text rotation 108 if options.exist('textrotation'): 109 textrotation = options.getfieldvalue('textrotation', 0) 110 rotationlist = [] 111 rotationlist.extend(textrotation if isinstance(textrotation, list) else [textrotation]) 112 else: 113 rotationlist = [0] 114 if len(rotationlist) == 1: 115 rotationlist = np.tile(rotationlist, numtext) 116 117 options.changefieldvalue('text', textlist) 118 options.addfield('textx', textx) 119 options.addfield('texty', texty) 120 options.changefieldvalue('textfontsize', sizelist) 121 options.changefieldvalue('textcolor', colorlist) 122 options.changefieldvalue('textweight', weightlist) 123 options.changefieldvalue('textrotation', rotationlist) 124 # }}} 125 # {{{ expdisp 126 expdispvaluesarray = [] 127 expstylevaluesarray = [] 128 expstylevalues = [] 129 if options.exist('expstyle'): 130 expstylevalues = options.getfieldvalue('expstyle') 131 if type(expstylevalues) == str: 132 expstylevalues = [expstylevalues] 133 if options.exist('expdisp'): 134 expdispvalues = options.getfieldvalue('expdisp') 135 if type(expdispvalues) == str: 136 expdispvalues = [expdispvalues] 137 for i in np.arange(len(expdispvalues)): 138 expdispvaluesarray.append(expdispvalues[i]) 139 if len(expstylevalues) > i: 140 expstylevaluesarray.append(expstylevalues[i]) 141 else: 142 expstylevaluesarray.append(' - k') 143 options.changefieldvalue('expstyle', expstylevaluesarray) 144 options.changefieldvalue('expdisp', expdispvaluesarray) 145 # }}} 146 # {{{ latlonnumbering 147 if options.exist('latlonclick'): 148 if 'on' in options.getfieldvalue('latlonclick', 'on'): 149 options.changefieldvalue('latlonclick', 1) 150 # }}} 151 # {{{ northarrow 152 if options.exist('northarrow'): 153 if 'on' in options.getfieldvalue('northarrow', 'on'): 154 #default values 155 Lx = max(md.mesh.x) - min(md.mesh.x) 156 Ly = max(md.mesh.y) - min(md.mesh.y) 157 options.changefieldvalue('northarrow', [min(md.mesh.x) + 1. / 6. * Lx, min(md.mesh.y) + 5. / 6. * Ly, 1. / 15. * Ly, 0.25, 1. / 250. * Ly]) 158 # }}} 159 # {{{ scale ruler 160 if options.exist('scaleruler'): 161 if 'on' in options.getfieldvalue('scaleruler', 'off'): 162 Lx = max(md.mesh.x) - min(md.mesh.x) 163 Ly = max(md.mesh.y) - min(md.mesh.y) 164 options.changefieldvalue('scaleruler', [min(md.mesh.x) + 6. / 8. * Lx, min(md.mesh.y) + 1. / 10. * Ly, 10**(np.ceil(np.log10(Lx))) / 5, np.floor(Lx / 100), 5]) 165 # }}} 166 # {{{ log scale 167 if options.exist('log'): 168 options.changefieldvalue('cutoff', np.log10(options.getfieldvalue('cutoff', 1.5)) / np.log10(options.getfieldvalue('log'))) 169 # }}} 170 return options -
issm/trunk-jpl/src/m/plot/colormaps/cmaptools.py
r23920 r24213 1 import numpy as np 2 from demmap import * 1 import numpy as np 3 2 4 3 try: 5 6 7 from matplotlib.colors import ListedColormap, rgb_to_hsv, hsv_to_rgb4 import matplotlib as mpl 5 import matplotlib.pyplot as plt 6 from matplotlib.colors import ListedColormap, hsv_to_rgb 8 7 except ImportError: 9 print('cannot import matplotlib, no plotting capabilities enabled') 8 print('cannot import matplotlib, no plotting capabilities enabled') 9 10 10 11 11 def getcolormap(options): 12 12 ''' 13 13 get colormap from options and apply 14 14 15 15 default: viridis 16 16 supported: 17 17 matplotlib defaults (see: pyplot.colormaps()) 18 18 Rignot 19 demmap(50, -300,1200)20 demmap(50, -300,1200,'ibcao')21 19 demmap(50, - 300, 1200) 20 demmap(50, - 300, 1200, 'ibcao') 21 22 22 Usage: 23 23 cmap = getcolormap(options) 24 24 ''' 25 25 26 26 map_name = options.getfieldvalue('colormap') 27 27 cmap = 'viridis' 28 28 29 29 # already a valid colormap, the name of a valid colormap, or empty (use default) 30 30 if type(map_name) == mpl.colors.ListedColormap: … … 34 34 elif map_name == '': 35 35 return cmap 36 36 37 37 # if we don't have a matching colormap, build one 38 38 if map_name == 'Rignot': 39 alpha =options.getfieldvalue('alpha',1)40 cmap = np.array((np.linspace(0, 1,128,False),np.ones(128,),np.ones(128,))).T41 cmap[:, 1] =np.maximum(np.minimum((0.1+cmap[:,0]**(1/alpha)),1),0)39 alpha = options.getfieldvalue('alpha', 1) 40 cmap = np.array((np.linspace(0, 1, 128, False), np.ones(128, ), np.ones(128, ))).T 41 cmap[:, 1] = np.maximum(np.minimum((0.1 + cmap[:, 0]**(1 / alpha)), 1), 0) 42 42 cmap = hsv_to_rgb(cmap) 43 # construct a colormap object from an array of shape (n,3/4)43 # construct a colormap object from an array of shape (n, 3 / 4) 44 44 cmap = ListedColormap(cmap) 45 45 46 46 #elif map_name == 'Ala': 47 47 48 48 else: 49 49 # map is a library or executable function that constructs a colormap, … … 52 52 cmap = ListedColormap(eval(map_name)) 53 53 except: 54 raise RuntimeError("getcolormap: Error: provided colormap must be supported map or map -constructing function with syntax: 'jet' or 'function(args)'")54 raise RuntimeError("getcolormap: Error: provided colormap must be supported map or map - constructing function with syntax: 'jet' or 'function(args)'") 55 55 56 56 return cmap … … 58 58 59 59 def truncate_colormap(cmap, minval=0.0, maxval=1.0, n=100): 60 61 truncate a colormap within normalized limits [0,1]60 ''' 61 truncate a colormap within normalized limits [0, 1] 62 62 63 64 65 66 63 cmap - a matplotlib colormap 64 minval - minimum value, normalized, of cmap to be returned. 65 maxval - maximum value, normalized, of cmap to be returned. 66 n - number of levels to use in constructing the new colormap 67 67 68 69 newcmap=truncate_colormap(oldcmap,minval=0.2,maxval=0.8,n=128)68 Example: 69 newcmap = truncate_colormap(oldcmap, minval = 0.2, maxval = 0.8, n = 128) 70 70 71 71 ''' 72 72 73 new_cmap = mpl.colors.LinearSegmentedColormap.from_list('trunc({n},{a:.2f},{b:.2f})'.format(n=cmap.name, 74 a=minval, b=maxval), cmap(np.linspace(minval, maxval, n))) 75 76 return new_cmap 73 new_cmap = mpl.colors.LinearSegmentedColormap.from_list('trunc({n}, {a:.2f}, {b:.2f})'.format(n=cmap.name, a=minval, b=maxval), cmap(np.linspace(minval, maxval, n))) 74 75 return new_cmap -
issm/trunk-jpl/src/m/plot/colormaps/demmap.py
r23920 r24213 5 5 from ibcao import ibcao 6 6 7 def demmap(ncolors,minZ,maxZ,colorscheme='dem'): 7 8 def demmap(ncolors, minZ, maxZ, colorscheme='dem'): 8 9 '''DEMMAP - concatenate sea and land color deping on zmin and zmax 9 10 10 11 Usage: 11 cmap = demmap(n, zmin,zmax,colorscheme)12 cmap = demmap(n, zmin, zmax, colorscheme) 12 13 13 14 Example: 14 cmap = demmap(50, -300,1200)15 cmap = demmap(50, -300,1200,'dem')16 cmap = demmap(50, -300,1200,'ibcao')15 cmap = demmap(50, - 300, 1200) 16 cmap = demmap(50, - 300, 1200, 'dem') 17 cmap = demmap(50, - 300, 1200, 'ibcao') 17 18 ''' 18 19 19 20 if type(colorscheme) != str: 20 raise RuntimeError('demmap: Error: optional argument "colorscheme" should be a string') 21 raise RuntimeError('demmap: Error: optional argument "colorscheme" should be a string') 21 22 22 23 # determine appropriate number of sea and land colors 23 24 if minZ == maxZ: 24 maxZ = minZ +125 maxZ = minZ + 1 25 26 26 27 cmn = minZ … … 36 37 else: 37 38 # find optimal ratio of land to sea colors 38 maxminratio = maxZ /abs(minZ)39 n1 = np.floor(ncolors /2)40 n2 = np.ceil(ncolors /2)41 if maxminratio >1:42 sea = np.arange(1, n1+1)43 land = np.arange(ncolors -1,n2-1,-1)39 maxminratio = maxZ / abs(minZ) 40 n1 = np.floor(ncolors / 2) 41 n2 = np.ceil(ncolors / 2) 42 if maxminratio > 1: 43 sea = np.arange(1, n1 + 1) 44 land = np.arange(ncolors - 1, n2 - 1, - 1) 44 45 else: 45 land = np.arange(1, n1+1)46 sea = np.arange(ncolors -1,n2-1,-1)47 48 ratio = land /sea46 land = np.arange(1, n1 + 1) 47 sea = np.arange(ncolors - 1, n2 - 1, - 1) 48 49 ratio = land / sea 49 50 errors = abs(ratio - maxminratio) / maxminratio 50 51 indx = np.where(errors == min(errors)) … … 52 53 nland = land[indx] 53 54 54 55 seaint = abs(minZ) /nsea56 landint = maxZ /nland55 # determine color limits 56 seaint = abs(minZ) / nsea 57 landint = maxZ / nland 57 58 if seaint >= landint: 58 59 interval = seaint 59 60 else: 60 61 interval = landint 61 62 cmn = -nsea*interval*(1 + 1e-9) # zero values treated as land63 cmx = nland*interval64 62 63 cmn = - nsea * interval * (1 + 1e-9) # zero values treated as land 64 cmx = nland * interval 65 65 66 clim = [cmn, cmx]66 clim = [cmn, cmx] 67 67 68 if strcmpi(colorscheme, 'dem'):68 if strcmpi(colorscheme, 'dem'): 69 69 # concatenate and transpose to match matplotlib's colormap format 70 cmap = np.concatenate((seacolor(nsea), landcolor(nland)**1.3),axis=1).T71 elif strcmpi(colorscheme, 'ibcao'):72 cmap = ibcao(nsea, nland)73 70 cmap = np.concatenate((seacolor(nsea), landcolor(nland)**1.3), axis=1).T 71 elif strcmpi(colorscheme, 'ibcao'): 72 cmap = ibcao(nsea, nland) 73 74 74 return cmap 75 -
issm/trunk-jpl/src/m/plot/colormaps/ibcao.py
r23920 r24213 1 1 import numpy as np 2 2 3 def ibcao(nsea,nland): 3 4 def ibcao(nsea, nland): 4 5 '''IBCAO - IBCAO color map 5 6 6 7 Usage: 7 map = ibcap(nsea, nland)8 map = ibcap(nsea, nland) 8 9 ''' 9 10 10 Jsea = [ 11 0.18039,0.29020,0.57255, 12 0.18039,0.29020,0.57255, 13 0.05882,0.44314,0.65490, 14 0.05882,0.44314,0.65490, 15 0.02745,0.49804,0.73725, 16 0.02745,0.49804,0.73725, 17 0.01176,0.54510,0.78824, 18 0.01176,0.54510,0.78824, 19 0.00784,0.63529,0.83922, 20 0.00784,0.63529,0.83922, 21 0.06667,0.71765,0.86667, 22 0.06667,0.71765,0.86667, 23 0.17647,0.75294,1.00000, 24 0.17647,0.75294,1.00000, 25 0.23529,0.76471,0.85882, 26 0.23529,0.76471,0.85882, 27 0.24314,0.76471,0.83922, 28 0.24314,0.76471,0.83922, 29 0.25882,0.76078,0.81176, 30 0.25882,0.76078,0.81176, 31 0.27451,0.76078,0.76078, 32 0.27451,0.76078,0.76078, 33 0.41961,0.78431,0.74902, 34 0.41961,0.78431,0.74902, 35 0.60000,0.83137,0.74902, 36 0.60000,0.83137,0.74902 37 ] 11 Jsea = [0.18039, 0.29020, 0.57255, 12 0.18039, 0.29020, 0.57255, 13 0.05882, 0.44314, 0.65490, 14 0.05882, 0.44314, 0.65490, 15 0.02745, 0.49804, 0.73725, 16 0.02745, 0.49804, 0.73725, 17 0.01176, 0.54510, 0.78824, 18 0.01176, 0.54510, 0.78824, 19 0.00784, 0.63529, 0.83922, 20 0.00784, 0.63529, 0.83922, 21 0.06667, 0.71765, 0.86667, 22 0.06667, 0.71765, 0.86667, 23 0.17647, 0.75294, 1.00000, 24 0.17647, 0.75294, 1.00000, 25 0.23529, 0.76471, 0.85882, 26 0.23529, 0.76471, 0.85882, 27 0.24314, 0.76471, 0.83922, 28 0.24314, 0.76471, 0.83922, 29 0.25882, 0.76078, 0.81176, 30 0.25882, 0.76078, 0.81176, 31 0.27451, 0.76078, 0.76078, 32 0.27451, 0.76078, 0.76078, 33 0.41961, 0.78431, 0.74902, 34 0.41961, 0.78431, 0.74902, 35 0.60000, 0.83137, 0.74902, 36 0.60000, 0.83137, 0.74902] 38 37 39 Jland = [ 40 0.85098,0.84314,0.30588, 41 0.85098,0.84314,0.30588, 42 0.93333,0.89020,0.41961, 43 0.93333,0.89020,0.41961, 44 0.93725,0.80784,0.35686, 45 0.93725,0.80784,0.35686, 46 0.89804,0.74510,0.31765, 47 0.89804,0.74510,0.31765, 48 0.85098,0.63922,0.21961, 49 0.85098,0.63922,0.21961, 50 0.75686,0.55294,0.22353, 51 0.75686,0.55294,0.22353, 52 0.71765,0.50980,0.22353, 53 0.71765,0.50980,0.22353, 54 0.68627,0.48235,0.21961, 55 0.68627,0.48235,0.21961, 56 0.65490,0.45882,0.21569, 57 0.65490,0.45882,0.21569, 58 0.58824,0.39608,0.20392, 59 0.58824,0.39608,0.20392, 60 1.00000,1.00000,1.00000 61 ] 38 Jland = [0.85098, 0.84314, 0.30588, 39 0.85098, 0.84314, 0.30588, 40 0.93333, 0.89020, 0.41961, 41 0.93333, 0.89020, 0.41961, 42 0.93725, 0.80784, 0.35686, 43 0.93725, 0.80784, 0.35686, 44 0.89804, 0.74510, 0.31765, 45 0.89804, 0.74510, 0.31765, 46 0.85098, 0.63922, 0.21961, 47 0.85098, 0.63922, 0.21961, 48 0.75686, 0.55294, 0.22353, 49 0.75686, 0.55294, 0.22353, 50 0.71765, 0.50980, 0.22353, 51 0.71765, 0.50980, 0.22353, 52 0.68627, 0.48235, 0.21961, 53 0.68627, 0.48235, 0.21961, 54 0.65490, 0.45882, 0.21569, 55 0.65490, 0.45882, 0.21569, 56 0.58824, 0.39608, 0.20392, 57 0.58824, 0.39608, 0.20392, 58 1.00000, 1.00000, 1.00000] 62 59 63 # Jsea and Jland are each a series of r,g,b triples, reshape them as such 64 65 lsea = int(len(Jsea)/3) 66 Jsea = np.array(Jsea).reshape(lsea,3) 67 a = np.linspace(1,lsea,nsea) 68 b = np.arange(1,lsea+1) 69 # interpolate color on each channel r,g,b 70 ysea = np.array([np.interp(a, b, Jsea[:,i]) for i in range(3)]) 60 # Jsea and Jland are each a series of r, g, b triples, reshape them as such 71 61 72 lland = int(len(Jland)/3) 73 Jland = np.array(Jland).reshape(lland,3) 74 a = np.linspace(1,lland,nland) 75 b = np.arange(1,lland+1) 76 # interpolate color on each channel r,g,b 77 yland = np.array([np.interp(a, b, Jland[:,i]) for i in range(3)]) 62 lsea = int(len(Jsea) / 3) 63 Jsea = np.array(Jsea).reshape(lsea, 3) 64 a = np.linspace(1, lsea, nsea) 65 b = np.arange(1, lsea + 1) 66 # interpolate color on each channel r, g, b 67 ysea = np.array([np.interp(a, b, Jsea[:, i]) for i in range(3)]) 68 69 lland = int(len(Jland) / 3) 70 Jland = np.array(Jland).reshape(lland, 3) 71 a = np.linspace(1, lland, nland) 72 b = np.arange(1, lland + 1) 73 # interpolate color on each channel r, g, b 74 yland = np.array([np.interp(a, b, Jland[:, i]) for i in range(3)]) 78 75 79 76 # concatenate and transpose to match matplotlib's colormap format 80 map = np.concatenate((ysea, yland),axis=1).T77 map = np.concatenate((ysea, yland), axis=1).T 81 78 82 79 return map -
issm/trunk-jpl/src/m/plot/colormaps/landcolor.py
r23920 r24213 1 1 import numpy as np 2 2 3 3 4 def landcolor(n=256): 4 5 '''LANDCOLOR Land colormap''' 5 6 6 J = [ 7 0.095678,0.53427,0.21682, 8 0.15785,0.5979,0.23274, 9 0.21286,0.64673,0.2514, 10 0.26411,0.68789,0.27268, 11 0.32959,0.72416,0.31308, 12 0.39794,0.75695,0.36038, 13 0.46153,0.7871,0.40624, 14 0.52108,0.81516,0.45135, 15 0.57702,0.84152,0.49547, 16 0.62973,0.86645,0.53891, 17 0.67946,0.89016,0.58187, 18 0.72647,0.91282,0.62427, 19 0.77095,0.93455,0.66619, 20 0.81306,0.95546,0.70772, 21 0.85292,0.97563,0.7489, 22 0.89066,0.99514,0.78976, 23 0.88379,0.98595,0.77038, 24 0.86389,0.96758,0.73236, 25 0.84615,0.94972,0.69623, 26 0.8303,0.93233,0.66186, 27 0.81612,0.91536,0.6291, 28 0.80341,0.8988,0.59784, 29 0.79201,0.8826,0.56795, 30 0.78191,0.86676,0.53946, 31 0.7729,0.85123,0.51224, 32 0.76479,0.83602,0.48615, 33 0.75747,0.8211,0.46111, 34 0.75084,0.80645,0.43704, 35 0.74506,0.79206,0.41414, 36 0.73981,0.77792,0.39211, 37 0.73501,0.76401,0.37089, 38 0.73068,0.75033,0.35052, 39 0.72683,0.73685,0.33106, 40 0.72042,0.72074,0.31228, 41 0.71032,0.70085,0.29417, 42 0.69761,0.67821,0.27694, 43 0.68489,0.65558,0.26026, 44 0.67235,0.63313,0.24418, 45 0.65997,0.61082,0.22889, 46 0.64775,0.58874,0.21406, 47 0.63568,0.56689,0.19983, 48 0.62376,0.54527,0.18622, 49 0.61197,0.52391,0.17299, 50 0.60033,0.50283,0.16046, 51 0.58881,0.48203,0.14832, 52 0.57742,0.46151,0.13667, 53 0.56616,0.44133,0.12555, 54 0.55502,0.4214,0.11472, 55 0.54398,0.4019,0.10456, 56 0.53306,0.38266,0.094633, 57 0.52226,0.36382,0.085242, 58 0.51155,0.3453,0.076179, 59 0.50095,0.32714,0.067515, 60 0.49045,0.30938,0.059259, 61 0.48005,0.29193,0.051294, 62 0.46973,0.27495,0.043796, 63 0.45951,0.25823,0.0365, 64 0.44938,0.24206,0.029715, 65 0.43934,0.22609,0.023063, 66 0.42938,0.21074,0.016949, 67 0.41951,0.19556,0.010917, 68 0.40971,0.18105,0.0054326, 69 0.4,0.16667,0 70 ] 7 J = [0.095678, 0.53427, 0.21682, 8 0.15785, 0.5979, 0.23274, 9 0.21286, 0.64673, 0.2514, 10 0.26411, 0.68789, 0.27268, 11 0.32959, 0.72416, 0.31308, 12 0.39794, 0.75695, 0.36038, 13 0.46153, 0.7871, 0.40624, 14 0.52108, 0.81516, 0.45135, 15 0.57702, 0.84152, 0.49547, 16 0.62973, 0.86645, 0.53891, 17 0.67946, 0.89016, 0.58187, 18 0.72647, 0.91282, 0.62427, 19 0.77095, 0.93455, 0.66619, 20 0.81306, 0.95546, 0.70772, 21 0.85292, 0.97563, 0.7489, 22 0.89066, 0.99514, 0.78976, 23 0.88379, 0.98595, 0.77038, 24 0.86389, 0.96758, 0.73236, 25 0.84615, 0.94972, 0.69623, 26 0.8303, 0.93233, 0.66186, 27 0.81612, 0.91536, 0.6291, 28 0.80341, 0.8988, 0.59784, 29 0.79201, 0.8826, 0.56795, 30 0.78191, 0.86676, 0.53946, 31 0.7729, 0.85123, 0.51224, 32 0.76479, 0.83602, 0.48615, 33 0.75747, 0.8211, 0.46111, 34 0.75084, 0.80645, 0.43704, 35 0.74506, 0.79206, 0.41414, 36 0.73981, 0.77792, 0.39211, 37 0.73501, 0.76401, 0.37089, 38 0.73068, 0.75033, 0.35052, 39 0.72683, 0.73685, 0.33106, 40 0.72042, 0.72074, 0.31228, 41 0.71032, 0.70085, 0.29417, 42 0.69761, 0.67821, 0.27694, 43 0.68489, 0.65558, 0.26026, 44 0.67235, 0.63313, 0.24418, 45 0.65997, 0.61082, 0.22889, 46 0.64775, 0.58874, 0.21406, 47 0.63568, 0.56689, 0.19983, 48 0.62376, 0.54527, 0.18622, 49 0.61197, 0.52391, 0.17299, 50 0.60033, 0.50283, 0.16046, 51 0.58881, 0.48203, 0.14832, 52 0.57742, 0.46151, 0.13667, 53 0.56616, 0.44133, 0.12555, 54 0.55502, 0.4214, 0.11472, 55 0.54398, 0.4019, 0.10456, 56 0.53306, 0.38266, 0.094633, 57 0.52226, 0.36382, 0.085242, 58 0.51155, 0.3453, 0.076179, 59 0.50095, 0.32714, 0.067515, 60 0.49045, 0.30938, 0.059259, 61 0.48005, 0.29193, 0.051294, 62 0.46973, 0.27495, 0.043796, 63 0.45951, 0.25823, 0.0365, 64 0.44938, 0.24206, 0.029715, 65 0.43934, 0.22609, 0.023063, 66 0.42938, 0.21074, 0.016949, 67 0.41951, 0.19556, 0.010917, 68 0.40971, 0.18105, 0.0054326, 69 0.4, 0.16667, 0] 71 70 72 # J is a series of r, g,b triples, reshape it as such73 l = int(len(J)/3)74 J = np.array(J).reshape(l ,3)75 a = np.linspace(1, l,n)76 b = np.arange(1, l+1)71 # J is a series of r, g, b triples, reshape it as such 72 length = int(len(J) / 3) 73 J = np.array(J).reshape(length, 3) 74 a = np.linspace(1, length, n) 75 b = np.arange(1, length + 1) 77 76 78 # interpolate color on each channel r, g,b79 y = np.array([np.interp(a, b, J[:, i]) for i in range(3)])77 # interpolate color on each channel r, g, b 78 y = np.array([np.interp(a, b, J[:, i]) for i in range(3)]) 80 79 81 80 return y -
issm/trunk-jpl/src/m/plot/colormaps/seacolor.py
r23920 r24213 1 1 import numpy as np 2 2 3 3 4 def seacolor(n=256): 4 5 '''SEACOLOR Sea colormap''' 5 6 6 J = [ 7 0.0392, 0, 0.4745, 8 0.1020, 0, 0.5373, 9 0.1020, 0, 0.5373, 10 0.1490, 0, 0.5961, 11 0.1490, 0, 0.5961, 12 0.1059, 0.0118, 0.6510, 13 0.1059, 0.0118, 0.6510, 14 0.0627, 0.0235, 0.7059, 15 0.0627, 0.0235, 0.7059, 16 0.0196, 0.0353, 0.7569, 17 0.0196, 0.0353, 0.7569, 18 0, 0.0549, 0.7961, 19 0, 0.0549, 0.7961, 20 0, 0.0863, 0.8235, 21 0, 0.0863, 0.8235, 22 0, 0.1176, 0.8471, 23 0, 0.1176, 0.8471, 24 0, 0.1529, 0.8745, 25 0, 0.1529, 0.8745, 26 0.0471, 0.2667, 0.9059, 27 0.0471, 0.2667, 0.9059, 28 0.1020, 0.4000, 0.9412, 29 0.1020, 0.4000, 0.9412, 30 0.0745, 0.4588, 0.9569, 31 0.0745, 0.4588, 0.9569, 32 0.0549, 0.5216, 0.9765, 33 0.0549, 0.5216, 0.9765, 34 0.0824, 0.6196, 0.9882, 35 0.0824, 0.6196, 0.9882, 36 0.1176, 0.6980, 1.0000, 37 0.1176, 0.6980, 1.0000, 38 0.1686, 0.7294, 1.0000, 39 0.1686, 0.7294, 1.0000, 40 0.2157, 0.7569, 1.0000, 41 0.2157, 0.7569, 1.0000, 42 0.2549, 0.7843, 1.0000, 43 0.2549, 0.7843, 1.0000, 44 0.3098, 0.8235, 1.0000, 45 0.3098, 0.8235, 1.0000, 46 0.3686, 0.8745, 1.0000, 47 0.3686, 0.8745, 1.0000, 48 0.5412, 0.8902, 1.0000, 49 0.5412, 0.8902, 1.0000, 50 0.7373, 0.9020, 1.0000 51 ] 7 J = [0.0392, 0, 0.4745, 8 0.1020, 0, 0.5373, 9 0.1020, 0, 0.5373, 10 0.1490, 0, 0.5961, 11 0.1490, 0, 0.5961, 12 0.1059, 0.0118, 0.6510, 13 0.1059, 0.0118, 0.6510, 14 0.0627, 0.0235, 0.7059, 15 0.0627, 0.0235, 0.7059, 16 0.0196, 0.0353, 0.7569, 17 0.0196, 0.0353, 0.7569, 18 0, 0.0549, 0.7961, 19 0, 0.0549, 0.7961, 20 0, 0.0863, 0.8235, 21 0, 0.0863, 0.8235, 22 0, 0.1176, 0.8471, 23 0, 0.1176, 0.8471, 24 0, 0.1529, 0.8745, 25 0, 0.1529, 0.8745, 26 0.0471, 0.2667, 0.9059, 27 0.0471, 0.2667, 0.9059, 28 0.1020, 0.4000, 0.9412, 29 0.1020, 0.4000, 0.9412, 30 0.0745, 0.4588, 0.9569, 31 0.0745, 0.4588, 0.9569, 32 0.0549, 0.5216, 0.9765, 33 0.0549, 0.5216, 0.9765, 34 0.0824, 0.6196, 0.9882, 35 0.0824, 0.6196, 0.9882, 36 0.1176, 0.6980, 1.0000, 37 0.1176, 0.6980, 1.0000, 38 0.1686, 0.7294, 1.0000, 39 0.1686, 0.7294, 1.0000, 40 0.2157, 0.7569, 1.0000, 41 0.2157, 0.7569, 1.0000, 42 0.2549, 0.7843, 1.0000, 43 0.2549, 0.7843, 1.0000, 44 0.3098, 0.8235, 1.0000, 45 0.3098, 0.8235, 1.0000, 46 0.3686, 0.8745, 1.0000, 47 0.3686, 0.8745, 1.0000, 48 0.5412, 0.8902, 1.0000, 49 0.5412, 0.8902, 1.0000, 50 0.7373, 0.9020, 1.0000] 52 51 53 # J is a series of r, g,b triples, reshape it as such54 l = int(len(J)/3)55 J = np.array(J).reshape(l ,3)56 a = np.linspace(1, l,n)57 b = np.arange(1, l+1)52 # J is a series of r, g, b triples, reshape it as such 53 length = int(len(J) / 3) 54 J = np.array(J).reshape(length, 3) 55 a = np.linspace(1, length, n) 56 b = np.arange(1, length + 1) 58 57 59 # interpolate color on each channel r, g,b60 y = np.array([np.interp(a, b, J[:, i]) for i in range(3)])58 # interpolate color on each channel r, g, b 59 y = np.array([np.interp(a, b, J[:, i]) for i in range(3)]) 61 60 62 61 return y -
issm/trunk-jpl/src/m/plot/export_gl.py
r23716 r24213 2 2 from checkplotoptions import checkplotoptions 3 3 from model import model 4 import numpy as 4 import numpy as np 5 5 import math 6 6 from writejsfile import writejsfile 7 7 8 def export_gl(md,*varargin):9 class ResultObj(object):10 def __getattr__(self, attr):11 return self.__dict__.get(attr)12 8 13 print ('getting options') 14 templist=plotoptions(varargin); 15 optionslist=templist.list; 16 options=optionslist[1]; 17 options=checkplotoptions(md,options); 18 #print (templist,options) 19 #templist contains options 0-3. Use in the future to rework. 20 21 #Setup unique directory in present dir: 22 print ('setting directory') 23 directory=optionslist[0].getfieldvalue('directory'); 24 databasename=optionslist[0].getfieldvalue('database'); 25 26 #scaling factor: 27 print ('setting scaling factor') 28 scaling_factor=optionslist[0].getfieldvalue('scaling_factor'); 9 def export_gl(md, * varargin): 10 class ResultObj(object): 11 def __getattr__(self, attr): 12 return self.__dict__.get(attr) 29 13 30 #Deal with title: 31 print ('setting title') 32 if optionslist[0].exist('title'): 33 title=optionslist[0].getfieldvalue('title'); 34 else: 35 title=''; 14 print('getting options') 15 templist = plotoptions(varargin) 16 optionslist = templist.list 17 options = optionslist[1] 18 options = checkplotoptions(md, options) 19 #print (templist, options) 20 #templist contains options 0 - 3. Use in the future to rework. 36 21 37 #initialize model: 38 print ('initializing model')39 model.title=title; 40 model.initialZoomFactor=options.getfieldvalue('zoom',-.25); 22 #Setup unique directory in present dir: 23 print('setting directory') 24 directory = optionslist[0].getfieldvalue('directory') 25 databasename = optionslist[0].getfieldvalue('database') 41 26 42 #Deal with contour {{{ 43 print ('getting contour') 44 print((md.mesh.segments)) 45 segmenets0 = [s - 1 for s in md.mesh.segments[:,0]]; 46 segmenets1 = [s - 1 for s in md.mesh.segments[:,1]]; 47 48 contour_lat1=md.mesh.lat.take(segmenets0) 49 contour_lat2=md.mesh.lat.take(segmenets1); 50 contour_long1=md.mesh.long.take(segmenets0); 51 contour_long2=md.mesh.long.take(segmenets1); 52 contour_surface1=md.geometry.surface.take(segmenets0); 53 contour_surface2=md.geometry.surface.take(segmenets1); 27 #scaling factor: 28 print('setting scaling factor') 29 scaling_factor = optionslist[0].getfieldvalue('scaling_factor') 54 30 55 R1=6371000*np.ones(len(contour_surface1))+scaling_factor*contour_surface1; 56 R2=6371000*np.ones(len(contour_surface2))+scaling_factor*contour_surface2; 31 #Deal with title: 32 print('setting title') 33 if optionslist[0].exist('title'): 34 title = optionslist[0].getfieldvalue('title') 35 else: 36 title = '' 57 37 58 model.contourx1 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.cos(math.radians(int)), R1, contour_lat1, contour_long1)); 59 model.contoury1 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.sin(math.radians(int)), R1, contour_lat1, contour_long1)); 60 model.contourz1 = list(map(lambda r, lat: r * math.sin(math.radians(lat)), R1, contour_lat1)); 61 62 model.contourx2 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.cos(math.radians(int)), R2, contour_lat2, contour_long2)); 63 model.contoury2 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.sin(math.radians(int)), R2, contour_lat2, contour_long2)); 64 model.contourz2 = list(map(lambda r, lat: r * math.sin(math.radians(lat)), R2, contour_lat2)); 38 #initialize model: 39 print('initializing model') 40 model.title = title 41 model.initialZoomFactor = options.getfieldvalue('zoom', - .25) 65 42 66 #}}} 67 #Deal with mesh and results {{{ 68 print ('getting mesh') 69 surface=md.geometry.surface.flatten(); 70 numberofelements=md.mesh.numberofelements; 71 numberofvertices=md.mesh.numberofvertices; 72 R=6371000*np.ones(len(md.mesh.lat))+scaling_factor*surface; 73 74 x = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.cos(math.radians(int)), R, md.mesh.lat,md.mesh.long)); 75 y = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.sin(math.radians(int)), R, md.mesh.lat,md.mesh.long)); 76 z = list(map(lambda r, lat: r * math.sin(math.radians(lat)), R, md.mesh.lat)); 77 78 #Deal with triangulation: 79 print('getting triangulation') 80 model.index=md.mesh.elements; 81 model.x=x; 82 model.y=y; 83 model.z=z; 84 model.surface=surface; 85 86 results = [] 87 print(optionslist) 88 #Deal with data: 89 print('getting data') 90 for i in range(0,len(optionslist)): 91 options=optionslist[i]; 92 options=checkplotoptions(md,options); 93 data=options.getfieldvalue('data').flatten(); 94 results.append(ResultObj()) 95 results[i].data=data; 96 results[i].caxis=options.getfieldvalue('caxis',[min(data), max(data)]); 43 #Deal with contour {{{ 44 print('getting contour') 45 print(md.mesh.segments) 46 segmenets0 = [s - 1 for s in md.mesh.segments[:, 0]] 47 segmenets1 = [s - 1 for s in md.mesh.segments[:, 1]] 97 48 98 label=options.getfieldvalue('label',''); 99 if label=='': 100 #create generic label: 101 label=['data', str(i)]; 102 results[i].label=label; 49 contour_lat1 = md.mesh.lat.take(segmenets0) 50 contour_lat2 = md.mesh.lat.take(segmenets1) 51 contour_long1 = md.mesh.long.take(segmenets0) 52 contour_long2 = md.mesh.long.take(segmenets1) 53 contour_surface1 = md.geometry.surface.take(segmenets0) 54 contour_surface2 = md.geometry.surface.take(segmenets1) 103 55 104 shortlabel=options.getfieldvalue('shortlabel',''); 105 if shortlabel=='': 106 #create generic short label: 107 shortlabel=['data', str(i)]; 108 results[i].shortlabel=shortlabel; 56 R1 = 6371000 * np.ones(len(contour_surface1)) + scaling_factor * contour_surface1 57 R2 = 6371000 * np.ones(len(contour_surface2)) + scaling_factor * contour_surface2 109 58 110 if type(data[2])!=np.float64: 111 time_range=options.getfieldvalue('time_range',[0, 100]); 112 results[i].time_range=time_range; 59 model.contourx1 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.cos(math.radians(int)), R1, contour_lat1, contour_long1)) 60 model.contoury1 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.sin(math.radians(int)), R1, contour_lat1, contour_long1)) 61 model.contourz1 = list(map(lambda r, lat: r * math.sin(math.radians(lat)), R1, contour_lat1)) 113 62 114 unit=options.getfieldvalue('unit',''); 115 if unit=='': 116 #create generic unit: 117 unit='SI'; 118 results[i].unit=unit; 119 model.results=results; 120 121 #Write model to javascript database file: 122 print('writing to file') 123 writejsfile(directory + databasename + '.js',model,databasename); 124 #}}} 63 model.contourx2 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.cos(math.radians(int)), R2, contour_lat2, contour_long2)) 64 model.contoury2 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.sin(math.radians(int)), R2, contour_lat2, contour_long2)) 65 model.contourz2 = list(map(lambda r, lat: r * math.sin(math.radians(lat)), R2, contour_lat2)) 66 67 #}}} 68 #Deal with mesh and results {{{ 69 print('getting mesh') 70 surface = md.geometry.surface.flatten() 71 numberofelements = md.mesh.numberofelements 72 numberofvertices = md.mesh.numberofvertices 73 R = 6371000 * np.ones(len(md.mesh.lat)) + scaling_factor * surface 74 75 x = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.cos(math.radians(int)), R, md.mesh.lat, md.mesh.long)) 76 y = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.sin(math.radians(int)), R, md.mesh.lat, md.mesh.long)) 77 z = list(map(lambda r, lat: r * math.sin(math.radians(lat)), R, md.mesh.lat)) 78 79 #Deal with triangulation: 80 print('getting triangulation') 81 model.index = md.mesh.elements 82 model.x = x 83 model.y = y 84 model.z = z 85 model.surface = surface 86 87 results = [] 88 print(optionslist) 89 #Deal with data: 90 print('getting data') 91 for i in range(0, len(optionslist)): 92 options = optionslist[i] 93 options = checkplotoptions(md, options) 94 data = options.getfieldvalue('data').flatten() 95 results.append(ResultObj()) 96 results[i].data = data 97 results[i].caxis = options.getfieldvalue('caxis', [min(data), max(data)]) 98 99 label = options.getfieldvalue('label', '') 100 if label == '': 101 #create generic label: 102 label = ['data', str(i)] 103 results[i].label = label 104 105 shortlabel = options.getfieldvalue('shortlabel', '') 106 if shortlabel == '': 107 #create generic short label: 108 shortlabel = ['data', str(i)] 109 results[i].shortlabel = shortlabel 110 111 if type(data[2]) != np.float64: 112 time_range = options.getfieldvalue('time_range', [0, 100]) 113 results[i].time_range = time_range 114 115 unit = options.getfieldvalue('unit', '') 116 if unit == '': 117 #create generic unit: 118 unit = 'SI' 119 results[i].unit = unit 120 model.results = results 121 122 #Write model to javascript database file: 123 print('writing to file') 124 writejsfile(directory + databasename + '.js', model, databasename) 125 #}}} -
issm/trunk-jpl/src/m/plot/plot_BC.py
r23716 r24213 1 try: 2 import pylab as p 3 except ImportError: 4 print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled") 5 6 import numpy as np 1 import numpy as np 7 2 from processmesh import processmesh 8 3 from applyoptions import applyoptions 9 4 from plot_icefront import plot_icefront 5 from hydrologydc import hydrologydc 10 6 from mpl_toolkits.mplot3d import Axes3D 7 from mpl_toolkits.axes_grid1.inset_locator import inset_axes 11 8 12 def plot_BC(md,options,fig,axgrid,gridindex):13 '''14 PLOT_BC - plot model boundary conditions15 9 16 Usage: 17 plot_BC(md,options,fig,axes) 10 def plot_BC(md, options, fig, axgrid, gridindex): 11 ''' 12 PLOT_BC - plot model boundary conditions 18 13 19 See also: PLOTMODEL 20 ''' 21 x,y,z,elements,is2d,isplanet=processmesh(md,[],options) 22 23 ax=axgrid[gridindex] 24 fig.delaxes(axgrid.cbar_axes[gridindex]) 14 Usage: 15 plot_BC(md, options, fig, axes) 25 16 26 if not is2d: 27 ax=inset_locator.inset_axes(axgrid[gridindex],width='100%',height='100%',loc=3,borderpad=0,axes_class=Axes3D) 17 See also: PLOTMODEL 18 ''' 19 x, y, z, elements, is2d, isplanet = processmesh(md, [], options) 28 20 29 #plot neuman 30 plot_icefront(md,options,fig,ax)21 ax = axgrid[gridindex] 22 fig.delaxes(axgrid.cbar_axes[gridindex]) 31 23 32 XLims=[np.min(x),np.max(x)] 33 YLims=[np.min(y),np.max(y)] 34 #plot dirichlets 35 dirichleton=options.getfieldvalue('dirichlet','on') 36 if dirichleton=='on': 37 ax.scatter(x[np.where(~np.isnan(md.stressbalance.spcvx))], 38 y[np.where(~np.isnan(md.stressbalance.spcvx))], 39 marker='o',c='r',s=240,label='vx Dirichlet',linewidth=0) 40 ax.scatter(x[np.where(~np.isnan(md.stressbalance.spcvy))], 41 y[np.where(~np.isnan(md.stressbalance.spcvy))], 42 marker='o',c='b',s=160,label='vy Dirichlet',linewidth=0) 43 ax.scatter(x[np.where(~np.isnan(md.stressbalance.spcvz))], 44 y[np.where(~np.isnan(md.stressbalance.spcvz))], 45 marker='o',c='y',s=80,label='vz Dirichlet',linewidth=0) 46 try: 47 ax.scatter(x[np.where(~np.isnan(md.hydrology.spcepl_head))], 48 y[np.where(~np.isnan(md.hydrology.spcepl_head))], 49 marker='v',c='r',s=240,label='EPL Head',linewidth=0) 50 ax.scatter(x[np.where(~np.isnan(md.hydrology.spcsediment_head))], 51 y[np.where(~np.isnan(md.hydrology.spcsediment_head))], 52 marker='^',c='b',s=240,label='IDS head',linewidth=0) 53 except AttributeError: 54 print ('Not treating Hydrologydc, skipping these boundaries') 55 ax.set_xlim(XLims) 56 ax.set_ylim(YLims) 57 ax.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, 58 ncol=3, mode="expand", borderaxespad=0.) 59 #apply options 60 options.addfielddefault('title','Boundary conditions') 61 options.addfielddefault('colorbar','off') 62 applyoptions(md,[],options,fig,axgrid,gridindex) 63 24 if not is2d: 25 ax = inset_axes(axgrid[gridindex], width='100%', height='100%', loc=3, borderpad=0, axes_class=Axes3D) 26 27 #plot neuman 28 plot_icefront(md, options, fig, ax) 29 30 XLims = [np.min(x), np.max(x)] 31 YLims = [np.min(y), np.max(y)] 32 #plot dirichlets 33 dirichleton = options.getfieldvalue('dirichlet', 'on') 34 35 if dirichleton == 'on': 36 #define what to plot with plot style 37 spc_dict = {'spcvx': ['stressbalance', 'o', 'r', 240, 'vx Dirichlet'], 38 'spcvy': ['stressbalance', 'o', 'b', 160, 'vy Dirichlet']} 39 if not is2d: 40 spc_dict['spcvz'] = ['stressbalance', 'o', 'y', 80, 'vy Dirichlet'] 41 42 if isinstance(md.hydrology, hydrologydc): 43 spc_dict['spcepl_head'] = ['hydrology', 'v', 'r', 240, 'EPL Head'] 44 if md.hydrology.isefficientlayer: 45 spc_dict['spcsediment_head'] = ['hydrology', '^', 'b', 240, 'IDS Head'] 46 47 for key in spc_dict: 48 #first reduce vectors if layer is used 49 if options.getfieldvalue('layer', 0) >= 1: 50 plotlayer = options.getfieldvalue('layer', 0) 51 slicesize = len(x) 52 fulldata = md.__dict__[str(spc_dict[str(key)][0])].__dict__[str(key)] 53 print(key) 54 data = fulldata[(plotlayer - 1) * slicesize:plotlayer * slicesize] 55 print(np.shape(data)) 56 mark = spc_dict[str(key)][1] 57 color = spc_dict[str(key)][2] 58 size = spc_dict[str(key)][3] 59 name = spc_dict[str(key)][4] 60 ax.scatter(x[np.where(~np.isnan(data))], 61 y[np.where(~np.isnan(data))], 62 marker=mark, c=color, s=size, label=name, linewidth=0) 63 ax.set_xlim(XLims) 64 ax.set_ylim(YLims) 65 ax.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, 66 ncol=3, mode="expand", borderaxespad=0.) 67 #apply options 68 options.addfielddefault('title', 'Boundary conditions') 69 options.addfielddefault('colorbar', 'off') 70 applyoptions(md, [], options, fig, axgrid, gridindex) -
issm/trunk-jpl/src/m/plot/plot_contour.py
r23716 r24213 1 import numpy as np 1 2 from averaging import averaging 2 3 from processmesh import processmesh 3 4 from processdata import processdata 4 try:5 import matplotlib.pyplot as plt6 except ImportError:7 print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled")8 5 9 def plot_contour(md,datain,options,ax):10 '''11 plot contours of a given field (called within plotmodel)12 6 13 Usage: 14 plot_contour(md,data,options) 7 def plot_contour(md, datain, options, ax): 8 ''' 9 plot contours of a given field (called within plotmodel) 15 10 16 See also: plotmodel 17 ''' 11 Usage: 12 plot_contour(md, data, options) 18 13 19 x,y,z,elements,is2d,isplanet=processmesh(md,datain,options) 20 data,datatype=processdata(md,datain,options) 14 See also: plotmodel 15 ''' 21 16 22 # process data: must be on nodes 23 if datatype==1: # element data 24 data=averaging(md,data,0) 25 elif datatype==2: 26 pass 27 elif datatype==3: # quiver (vector) data 28 data=np.sqrt(datain**2) 29 else: 30 raise ValueError('datatype not supported in call to plot_contour') 17 x, y, z, elements, is2d, isplanet = processmesh(md, datain, options) 18 data, datatype = processdata(md, datain, options) 31 19 32 # contouronly TODO (cla will also clear an overlay image) 20 # process data: must be on nodes 21 if datatype == 1: # element data 22 data = averaging(md, data, 0) 23 elif datatype == 2: 24 pass 25 elif datatype == 3: # quiver (vector) data 26 data = np.sqrt(datain**2) 27 else: 28 raise ValueError('datatype not supported in call to plot_contour') 33 29 34 # retrieve necessary options 35 levels=options.getfieldvalue('contourlevels') 36 norm=options.getfieldvalue('colornorm') 37 colors=options.getfieldvalue('contourcolors','y') 38 linestyles=options.getfieldvalue('contourlinestyles','-') 39 linewidths=options.getfieldvalue('contourlinewidths',1) 30 # contouronly TODO (cla will also clear an overlay image) 40 31 41 ax.tricontour(x,y,elements,data,levels,colors=colors,norm=norm,linestyles=linestyles,linewidths=linewidths) 32 # retrieve necessary options 33 levels = options.getfieldvalue('contourlevels') 34 norm = options.getfieldvalue('colornorm') 35 colors = options.getfieldvalue('contourcolors', 'y') 36 linestyles = options.getfieldvalue('contourlinestyles', ' - ') 37 linewidths = options.getfieldvalue('contourlinewidths', 1) 38 39 ax.tricontour(x, y, elements, data, levels, colors=colors, norm=norm, linestyles=linestyles, linewidths=linewidths) -
issm/trunk-jpl/src/m/plot/plot_elementnumbering.py
r23716 r24213 1 try: 2 import pylab as p 3 except ImportError: 4 print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled") 5 6 import numpy as np 1 import numpy as np 7 2 from processmesh import processmesh 8 3 from applyoptions import applyoptions 9 from plot_icefront import plot_icefront10 4 11 def plot_elementnumbering(md,options,fig,axgrid,gridindex):12 '''13 plot_elementnumbering - plot element numberign (starting at 1 matlab and c convention)14 5 15 Usage: 16 plot_elementnumbering(md,options,fig,axes) 6 def plot_elementnumbering(md, options, fig, axgrid, gridindex): 7 ''' 8 plot_elementnumbering - plot element numberign (starting at 1 matlab and c convention) 17 9 18 See also: PLOTMODEL 19 ''' 20 x,y,z,elements,is2d,isplanet=processmesh(md,[],options) 10 Usage: 11 plot_elementnumbering(md, options, fig, axes) 21 12 22 ax=axgrid[gridindex] 23 fig.delaxes(axgrid.cbar_axes[gridindex]) 24 25 if is2d: 26 ax.triplot(x,y,elements) 27 else: 28 print('Not Implemented Yet') 13 See also: PLOTMODEL 14 ''' 15 x, y, z, elements, is2d, isplanet = processmesh(md, [], options) 29 16 30 XLims=[np.min(x),np.max(x)] 31 YLims=[np.min(y),np.max(y)] 32 #plot mesh 33 ax.triplot(x,y,elements) 34 highlightpos=options.getfieldvalue('highlight','none') 35 if highlightpos!='none': 36 #if just one element duplicate it to avoid coloring issues 37 if type(highlightpos)==int: 38 highlightpos=[highlightpos,highlightpos] 39 #convert from to matlab numbering 40 highlightpos=[pos-1 for pos in highlightpos] 41 colors=np.asarray([0.5 for element in elements[highlightpos]]) 42 ax.tripcolor(x,y,elements[highlightpos],facecolors=colors,alpha=0.5) 43 # and numbers 44 for i,element in enumerate(elements): 45 ax.text(np.mean(x[element]),np.mean(y[element]),str(i+1),ha='center',va='center',clip_on=True) 46 47 #apply options 48 options.addfielddefault('title','Element numbers (matlab indexation)') 49 options.addfielddefault('colorbar','off') 50 applyoptions(md,[],options,fig,axgrid,gridindex) 51 17 ax = axgrid[gridindex] 18 fig.delaxes(axgrid.cbar_axes[gridindex]) 19 20 if is2d: 21 ax.triplot(x, y, elements) 22 else: 23 print('Not Implemented Yet') 24 25 #plot mesh 26 ax.triplot(x, y, elements) 27 highlightpos = options.getfieldvalue('highlight', 'none') 28 if highlightpos != 'none': 29 #if just one element duplicate it to avoid coloring issues 30 if type(highlightpos) == int: 31 highlightpos = [highlightpos, highlightpos] 32 #convert from to matlab numbering 33 highlightpos = [pos - 1 for pos in highlightpos] 34 colors = np.asarray([0.5 for element in elements[highlightpos]]) 35 ax.tripcolor(x, y, elements[highlightpos], facecolors=colors, alpha=0.5) 36 # and numbers 37 for i, element in enumerate(elements): 38 ax.text(np.mean(x[element]), np.mean(y[element]), str(i + 1), ha='center', va='center', clip_on=True) 39 40 #apply options 41 options.addfielddefault('title', 'Element numbers (matlab indexation)') 42 options.addfielddefault('colorbar', 'off') 43 applyoptions(md, [], options, fig, axgrid, gridindex) -
issm/trunk-jpl/src/m/plot/plot_icefront.py
r23716 r24213 1 try: 2 import pylab as p 3 except ImportError: 4 print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled") 5 import numpy as np 1 import numpy as np 6 2 from processmesh import processmesh 7 from applyoptions import applyoptions 3 from mpl_toolkits.mplot3d.art3d import Line3DCollection 4 from mpl_toolkits.axes_grid1.inset_locator import inset_axes 5 from mpl_toolkits.mplot3d import Axes3D 8 6 9 def plot_icefront(md,options,fig,ax):10 #PLOT_ICEFRONT - plot segment on neumann BC11 #12 # Usage:13 # plot_icefront(md,options,width,i)14 #15 # See also: PLOTMODEL16 #process mesh and data17 x,y,z,elements,is2d,isplanet=processmesh(md,[],options)18 7 19 #icefront check 20 icefront=np.where(np.abs(np.sum(md.mask.ice_levelset[elements],1))!=3) 21 onlyice=np.where(np.sum(md.mask.ice_levelset[elements],1)==-3) 22 noice=np.where(np.sum(md.mask.ice_levelset[elements],1)==3) 8 def plot_icefront(md, options, fig, ax): 9 #PLOT_ICEFRONT - plot segment on neumann BC 10 # 11 # Usage: 12 # plot_icefront(md, options, width, i) 13 # 14 # See also: PLOTMODEL 15 #process mesh and data 16 x, y, z, elements, is2d, isplanet = processmesh(md, [], options) 23 17 24 #plot mesh 25 ax.triplot(x,y,elements) 18 if options.exist('layer'): 19 nodes_per_elt = np.shape(md.mesh.elements2d)[1] 20 else: 21 nodes_per_elt = np.shape(md.mesh.elements)[1] 22 #icefront check 23 icefront = np.where(np.abs(np.sum(md.mask.ice_levelset[elements], 1)) != nodes_per_elt) 26 24 27 #highlight elements on neumann 28 if len(icefront[0])>0: 29 colors=np.asarray([0.5 for element in elements[icefront]]) 30 ax.tripcolor(x,y,elements[icefront],facecolors=colors,alpha=0.5,label='elements on ice front') 25 #plot mesh 26 if is2d: 27 ax.triplot(x, y, elements) 31 28 32 #apply options 33 options.addfielddefault('title','Neumann boundary conditions') 34 options.addfielddefault('colorbar','off') 29 #highlight elements on neumann 30 if len(icefront[0]) > 0: 31 colors = np.asarray([0.5 for element in elements[icefront]]) 32 ax.tripcolor(x, y, elements[icefront], facecolors=colors, alpha=0.5, label='elements on ice front') 33 else: 34 ax = inset_axes(ax, width='100%', height='100%', loc=3, borderpad=0, axes_class=Axes3D) 35 36 AB = elements[:, 0:2] 37 BC = elements[:, 1:3] 38 CA = np.vstack((elements[:, 2], elements[:, 0])).T 39 DE = elements[:, 3:5] 40 EF = elements[:, 4:] 41 FD = np.vstack((elements[:, 5], elements[:, 3])).T 42 AD = np.vstack((elements[:, 0], elements[:, 3])).T 43 BE = np.vstack((elements[:, 1], elements[:, 4])).T 44 CF = np.vstack((elements[:, 2], elements[:, 5])).T 45 46 tmpa = np.vstack((AB, BC, CA, DE, EF, FD, AD, BE, CF)) 47 #deleting segments that appear multiple times 48 tmpb = np.ascontiguousarray(tmpa).view(np.dtype((np.void, tmpa.dtype.itemsize * tmpa.shape[1]))) 49 _, idx = np.unique(tmpb, return_index=True) 50 triel = tmpa[idx] 51 52 for t, triangle in enumerate(triel): 53 tri = list(zip(x[triangle], y[triangle], z[triangle])) 54 facecolor = [0, 0, 0] 55 if t in icefront: 56 facecolor = [0.5, 0.5, 0.5] 57 pl3 = Line3DCollection([tri], edgecolor='r', facecolor=facecolor) 58 ax.add_collection3d(pl3) 59 60 ax.set_xlim([min(x), max(x)]) 61 ax.set_ylim([min(y), max(y)]) 62 ax.set_zlim([min(z), max(z)]) 63 #highlight elements on neumann 64 65 #apply options 66 options.addfielddefault('title', 'Neumann boundary conditions') 67 options.addfielddefault('colorbar', 'off') -
issm/trunk-jpl/src/m/plot/plot_manager.py
r23716 r24213 1 try:2 import pylab as p3 import matplotlib.pyplot as plt4 except ImportError:5 print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled")6 1 7 2 from checkplotoptions import checkplotoptions … … 16 11 17 12 try: 18 19 overlaysupport=True13 from osgeo import gdal 14 overlaysupport = True 20 15 except ImportError: 21 22 overlaysupport=False16 print('osgeo/gdal for python not installed, overlay plots are not enabled') 17 overlaysupport = False 23 18 24 19 if overlaysupport: 25 20 from plot_overlay import plot_overlay 26 21 27 def plot_manager(md,options,fig,axgrid,gridindex):28 '''29 PLOT_MANAGER - distribute the plots called by plotmodel30 22 31 'fig' is a handle to the figure instance created by plotmodel. 23 def plot_manager(md, options, fig, axgrid, gridindex): 24 ''' 25 PLOT_MANAGER - distribute the plots called by plotmodel 32 26 33 'ax' is a handle to the axes instance created by plotmodel. This is 34 currently generated using matplotlib's AxesGrid toolkit. 27 'fig' is a handle to the figure instance created by plotmodel. 35 28 36 Usage: 37 plot_manager(md,options,fig,ax); 29 'ax' is a handle to the axes instance created by plotmodel. This is 30 currently generated using matplotlib's AxesGrid toolkit. 38 31 39 See also: PLOTMODEL, PLOT_UNIT 40 ''' 32 Usage: 33 plot_manager(md, options, fig, ax) 41 34 42 #parse options and get a structure of options 43 options=checkplotoptions(md,options) 44 #get data to be plotted 45 data=options.getfieldvalue('data') 46 #add ticklabel has a default option 47 options.addfielddefault('ticklabels','on') 35 See also: PLOTMODEL, PLOT_UNIT 36 ''' 48 37 49 ax=axgrid[gridindex] 50 # {{{ basemap plot TOFIX 51 #if options.exist('basemap'): 52 # plot_basemap(md,data,options,nrows,ncols,i) 53 # }}} 54 # {{{ overlay plot 55 if options.exist('overlay') and overlaysupport: 56 plot_overlay(md,data,options,ax) 57 options.addfielddefault('alpha',0.5) 58 options.addfielddefault('xlim',[min(md.mesh.x),max(md.mesh.x)]) 59 options.addfielddefault('ylim',[min(md.mesh.y),max(md.mesh.y)]) 60 # }}} 61 # {{{ dealing with special plot 62 if isinstance(data,str): 63 if data=='mesh': 64 plot_mesh(md,options,fig,axgrid,gridindex) 38 #parse options and get a structure of options 39 options = checkplotoptions(md, options) 40 #get data to be plotted 41 data = options.getfieldvalue('data') 42 #add ticklabel has a default option 43 options.addfielddefault('ticklabels', 'on') 65 44 66 #fig.delaxes(fig.axes[1]) # hack to remove colorbar after the fact 67 return 68 elif data=='BC': 69 plot_BC(md,options,fig,axgrid,gridindex) 70 return 71 elif data=='elementnumbering': 72 plot_elementnumbering(md,options,fig,axgrid,gridindex) 73 return 74 elif data=='vertexnumbering': 75 plot_vertexnumbering(md,options,fig,axgrid,gridindex) 76 return 77 elif data=='none': 78 print('no data provided to plot (TODO: write plot_none.py)') 79 applyoptions(md,[],options,fig,axgrid,gridindex) 80 return 81 else: 82 print(("WARNING: '%s' is not implemented or is not a valid string for option 'data'" % data)) 83 # }}} 84 # {{{ Gridded plot TODO 85 # }}} 86 # {{{ Section plot TODO 87 # }}} 88 # {{{ Profile plot TODO 89 # }}} 45 ax = axgrid[gridindex] 46 # {{{ basemap plot TOFIX 47 #if options.exist('basemap'): 48 # plot_basemap(md, data, options, nrows, ncols, i) 49 # }}} 50 # {{{ overlay plot 51 if options.exist('overlay') and overlaysupport: 52 plot_overlay(md, data, options, ax) 53 options.addfielddefault('alpha', 0.5) 54 options.addfielddefault('xlim', [min(md.mesh.x), max(md.mesh.x)]) 55 options.addfielddefault('ylim', [min(md.mesh.y), max(md.mesh.y)]) 56 # }}} 57 # {{{ dealing with special plot 58 if isinstance(data, str): 59 if data == 'mesh': 60 plot_mesh(md, options, fig, axgrid, gridindex) 90 61 91 #process data and model 92 x,y,z,elements,is2d,isplanet=processmesh(md,data,options) 93 data2,datatype=processdata(md,data,options) 94 #plot unit 95 plot_unit(x,y,z,elements,data2,is2d,isplanet,datatype,options,fig,axgrid,gridindex) 96 #apply all options 97 applyoptions(md,data2,options,fig,axgrid,gridindex) 62 #fig.delaxes(fig.axes[1]) # hack to remove colorbar after the fact 63 return 64 elif data == 'BC': 65 plot_BC(md, options, fig, axgrid, gridindex) 66 return 67 elif data == 'elementnumbering': 68 plot_elementnumbering(md, options, fig, axgrid, gridindex) 69 return 70 elif data == 'vertexnumbering': 71 plot_vertexnumbering(md, options, fig, axgrid, gridindex) 72 return 73 elif data == 'none': 74 print('no data provided to plot (TODO: write plot_none.py)') 75 applyoptions(md, [], options, fig, axgrid, gridindex) 76 return 77 else: 78 print(("WARNING: '%s' is not implemented or is not a valid string for option 'data'" % data)) 79 # }}} 80 # {{{ Gridded plot TODO 81 # }}} 82 # {{{ Section plot TODO 83 # }}} 84 # {{{ Profile plot TODO 85 # }}} 98 86 99 #ground overlay on kml plot_unit 87 #process data and model 88 x, y, z, elements, is2d, isplanet = processmesh(md, data, options) 89 data2, datatype = processdata(md, data, options) 90 #plot unit 91 plot_unit(x, y, z, elements, data2, is2d, isplanet, datatype, options, fig, axgrid, gridindex) 92 #apply all options 93 applyoptions(md, data2, options, fig, axgrid, gridindex) 100 94 101 # Bits and pieces 102 #initialize plot handle variable 103 #handle=None 95 #ground overlay on kml plot_unit 104 96 105 # initialize subplot 106 #p.subplot(nrows,ncols,i,aspect='equal') 97 # Bits and pieces 98 #initialize plot handle variable 99 #handle = None 107 100 108 #standard plot 109 #if not handle: 110 # p.subplot(nrows,ncols,i,aspect='equal') 101 # initialize subplot 102 #p.subplot(nrows, ncols, i, aspect = 'equal') 111 103 112 #elif data in vars(md): 113 #else: 114 #print "'data' not a string, plotting model properties yet to be implemented..." 104 #standard plot 105 #if not handle: 106 # p.subplot(nrows, ncols, i, aspect = 'equal') 107 108 #elif data in vars(md): 109 #else: 110 #print "'data' not a string, plotting model properties yet to be implemented..." -
issm/trunk-jpl/src/m/plot/plot_mesh.py
r23716 r24213 1 try:2 import pylab as p3 except ImportError:4 print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled")5 6 1 import numpy as np 7 2 from processmesh import processmesh 8 3 from applyoptions import applyoptions 9 4 from mpl_toolkits.mplot3d.art3d import Line3DCollection 10 from mpl_toolkits.axes_grid1 import inset_locator5 from mpl_toolkits.axes_grid1.inset_locator import inset_axes 11 6 from mpl_toolkits.mplot3d import Axes3D 12 def plot_mesh(md,options,fig,axgrid,gridindex):13 '''14 PLOT_MESH - plot model mesh15 7 16 Usage:17 plot_mesh(md,options,nlines,ncols,i)18 8 19 See also: PLOTMODEL 20 21 x,y,z,elements,is2d,isplanet=processmesh(md,'mesh',options) 9 def plot_mesh(md, options, fig, axgrid, gridindex): 10 ''' 11 PLOT_MESH - plot model mesh 22 12 23 ax=axgrid[gridindex] 24 fig.delaxes(axgrid.cbar_axes[gridindex]) 25 26 if is2d: 27 ax.triplot(x,y,elements) 28 else: 29 ax=inset_locator.inset_axes(axgrid[gridindex],width='100%',height='100%',loc=3,borderpad=0,axes_class=Axes3D) 30 31 AB=elements[:,0:2] 32 BC=elements[:,1:3] 33 CA=np.vstack((elements[:,2],elements[:,0])).T 34 DE=elements[:,3:5] 35 EF=elements[:,4:] 36 FD=np.vstack((elements[:,5],elements[:,3])).T 37 AD=np.vstack((elements[:,0],elements[:,3])).T 38 BE=np.vstack((elements[:,1],elements[:,4])).T 39 CF=np.vstack((elements[:,2],elements[:,5])).T 40 41 tmpa=np.vstack((AB,BC,CA,DE,EF,FD,AD,BE,CF)) 42 #deleting segments that appear multiple times 43 tmpb = np.ascontiguousarray(tmpa).view(np.dtype((np.void, tmpa.dtype.itemsize * tmpa.shape[1]))) 44 _, idx = np.unique(tmpb, return_index=True) 45 triel= tmpa[idx] 46 47 for triangle in triel: 48 tri=list(zip(x[triangle],y[triangle],z[triangle])) 49 pl3=Line3DCollection([tri],edgecolor='r') 50 ax.add_collection3d(pl3) 51 52 ax.set_xlim([min(x),max(x)]) 53 ax.set_ylim([min(y),max(y)]) 54 ax.set_zlim([min(z),max(z)]) 55 #apply options 56 options.addfielddefault('title','Mesh') 57 options.addfielddefault('colorbar','off') 58 options.addfielddefault('ticklabels','on') 59 applyoptions(md,[],options,fig,axgrid,gridindex) 13 Usage: 14 plot_mesh(md, options, nlines, ncols, i) 15 16 See also: PLOTMODEL 17 ''' 18 x, y, z, elements, is2d, isplanet = processmesh(md, 'mesh', options) 19 20 ax = axgrid[gridindex] 21 fig.delaxes(axgrid.cbar_axes[gridindex]) 22 23 if is2d: 24 ax.triplot(x, y, elements) 25 else: 26 ax = inset_axes(axgrid[gridindex], width='100%', height='100%', loc=3, borderpad=0, axes_class=Axes3D) 27 28 AB = elements[:, 0:2] 29 BC = elements[:, 1:3] 30 CA = np.vstack((elements[:, 2], elements[:, 0])).T 31 DE = elements[:, 3:5] 32 EF = elements[:, 4:] 33 FD = np.vstack((elements[:, 5], elements[:, 3])).T 34 AD = np.vstack((elements[:, 0], elements[:, 3])).T 35 BE = np.vstack((elements[:, 1], elements[:, 4])).T 36 CF = np.vstack((elements[:, 2], elements[:, 5])).T 37 38 tmpa = np.vstack((AB, BC, CA, DE, EF, FD, AD, BE, CF)) 39 #deleting segments that appear multiple times 40 tmpb = np.ascontiguousarray(tmpa).view(np.dtype((np.void, tmpa.dtype.itemsize * tmpa.shape[1]))) 41 _, idx = np.unique(tmpb, return_index=True) 42 triel = tmpa[idx] 43 44 for triangle in triel: 45 tri = list(zip(x[triangle], y[triangle], z[triangle])) 46 pl3 = Line3DCollection([tri], edgecolor='r') 47 ax.add_collection3d(pl3) 48 49 ax.set_xlim([min(x), max(x)]) 50 ax.set_ylim([min(y), max(y)]) 51 ax.set_zlim([min(z), max(z)]) 52 #apply options 53 options.addfielddefault('title', 'Mesh') 54 options.addfielddefault('colorbar', 'off') 55 options.addfielddefault('ticklabels', 'on') 56 applyoptions(md, [], options, fig, axgrid, gridindex) -
issm/trunk-jpl/src/m/plot/plot_overlay.py
r23772 r24213 1 import numpy as 1 import numpy as np 2 2 from processmesh import processmesh 3 3 from processdata import processdata … … 7 7 import os 8 8 try: 9 9 from mpl_toolkits.basemap import Basemap 10 10 except ImportError: 11 11 print('Basemap toolkit not installed') 12 12 try: 13 13 from osgeo import gdal 14 14 except ImportError: 15 15 print('osgeo/gdal for python not installed, plot_overlay is disabled') 16 16 17 17 18 def plot_overlay(md, data,options,ax):19 20 21 22 18 def plot_overlay(md, data, options, ax): 19 ''' 20 Function for plotting a georeferenced image. This function is called 21 from within the plotmodel code. 22 ''' 23 23 24 x,y,z,elements,is2d,isplanet=processmesh(md,[],options)25 26 data,datatype=processdata(md,data,options)27 imageonly=028 except (TypeError,ValueError):#that should catch None and 'none' but may also catch unwanted errors29 imageonly=130 data=np.float('nan')*np.ones((md.mesh.numberofvertices,))31 datatype=124 x, y, z, elements, is2d, isplanet = processmesh(md, [], options) 25 try: 26 data, datatype = processdata(md, data, options) 27 imageonly = 0 28 except (TypeError, ValueError): #that should catch None and 'none' but may also catch unwanted errors 29 imageonly = 1 30 data = np.float('nan') * np.ones((md.mesh.numberofvertices, )) 31 datatype = 1 32 32 33 34 33 if not is2d: 34 raise Exception('overlay plot not supported for 3D meshes, project on a 2D layer first') 35 35 36 37 38 image=options.getfieldvalue('overlay_image')36 if not options.exist('overlay_image'): 37 raise Exception('overlay error: provide overlay_image with path to geotiff file') 38 image = options.getfieldvalue('overlay_image') 39 39 40 xlim=options.getfieldvalue('xlim',[min(md.mesh.x),max(md.mesh.x)])41 ylim=options.getfieldvalue('ylim',[min(md.mesh.y),max(md.mesh.y)])40 xlim = options.getfieldvalue('xlim', [min(md.mesh.x), max(md.mesh.x)]) 41 ylim = options.getfieldvalue('ylim', [min(md.mesh.y), max(md.mesh.y)]) 42 42 43 gtif=gdal.Open(image)44 trans=gtif.GetGeoTransform()45 xmin=trans[0]46 xmax=trans[0]+gtif.RasterXSize*trans[1]47 ymin=trans[3]+gtif.RasterYSize*trans[5]48 ymax=trans[3]49 50 x0=max(min(xlim),xmin)51 x1=min(max(xlim),xmax)52 y0=max(min(ylim),ymin)53 y1=min(max(ylim),ymax)54 inputname='temp.tif'55 os.system('gdal_translate -quiet -projwin ' + str(x0) + ' ' + str(y1) + ' ' + str(x1) + ' ' + str(y0) + ' ' + image+ ' ' + inputname)43 gtif = gdal.Open(image) 44 trans = gtif.GetGeoTransform() 45 xmin = trans[0] 46 xmax = trans[0] + gtif.RasterXSize * trans[1] 47 ymin = trans[3] + gtif.RasterYSize * trans[5] 48 ymax = trans[3] 49 # allow supplied image to have limits smaller than basemap or model limits 50 x0 = max(min(xlim), xmin) 51 x1 = min(max(xlim), xmax) 52 y0 = max(min(ylim), ymin) 53 y1 = min(max(ylim), ymax) 54 inputname = 'temp.tif' 55 os.system('gdal_translate-quiet - projwin ' + str(x0) + ' ' + str(y1) + ' ' + str(x1) + ' ' + str(y0) + ' ' + image + ' ' + inputname) 56 56 57 gtif=gdal.Open(inputname)58 arr=gtif.ReadAsArray()59 #os.system('rm -rf ./temp.tif')57 gtif = gdal.Open(inputname) 58 arr = gtif.ReadAsArray() 59 #os.system('rm -rf . / temp.tif') 60 60 61 if gtif.RasterCount>=3: # RGB array62 r=gtif.GetRasterBand(1).ReadAsArray()63 g=gtif.GetRasterBand(2).ReadAsArray()64 b=gtif.GetRasterBand(3).ReadAsArray()65 arr=0.299*r+0.587*g+0.114*b61 if gtif.RasterCount >= 3: # RGB array 62 r = gtif.GetRasterBand(1).ReadAsArray() 63 g = gtif.GetRasterBand(2).ReadAsArray() 64 b = gtif.GetRasterBand(3).ReadAsArray() 65 arr = 0.299 * r + 0.587 * g + 0.114 * b 66 66 67 68 arr=arr/np.float(np.max(arr.ravel()))69 arr=1.-arr# somehow the values got flipped67 # normalize array 68 arr = arr / np.float(np.max(arr.ravel())) 69 arr = 1. - arr # somehow the values got flipped 70 70 71 if options.getfieldvalue('overlayhist',0)==1:72 ax=plt.gca()73 num=274 75 76 77 78 num+=179 80 plt.hist(arr.flatten(),bins=256,range=(0.,1.))81 82 83 plt.sca(ax) # return to original axes/figure71 if options.getfieldvalue('overlayhist', 0) == 1: 72 ax = plt.gca() 73 num = 2 74 while True: 75 if not plt.fignum_exists(num): 76 break 77 else: 78 num += 1 79 plt.figure(num) 80 plt.hist(arr.flatten(), bins=256, range=(0., 1.)) 81 plt.title('histogram of overlay image, use for setting overlaylims') 82 plt.show() 83 plt.sca(ax) # return to original axes / figure 84 84 85 86 trans=gtif.GetGeoTransform()87 xmin=trans[0]88 xmax=trans[0]+gtif.RasterXSize*trans[1]89 ymin=trans[3]+gtif.RasterYSize*trans[5]90 ymax=trans[3]91 dx=trans[1]92 dy=trans[5]85 # get parameters from cropped geotiff 86 trans = gtif.GetGeoTransform() 87 xmin = trans[0] 88 xmax = trans[0] + gtif.RasterXSize * trans[1] 89 ymin = trans[3] + gtif.RasterYSize * trans[5] 90 ymax = trans[3] 91 dx = trans[1] 92 dy = trans[5] 93 93 94 xarr=np.arange(xmin,xmax,dx)95 yarr=np.arange(ymin,ymax,-dy) # -dy since origin='upper' (not sure how robust this is)96 xg,yg=np.meshgrid(xarr,yarr)97 overlaylims=options.getfieldvalue('overlaylims',[min(arr.ravel()),max(arr.ravel())])98 norm=mpl.colors.Normalize(vmin=overlaylims[0],vmax=overlaylims[1])94 xarr = np.arange(xmin, xmax, dx) 95 yarr = np.arange(ymin, ymax, - dy) # - dy since origin = 'upper' (not sure how robust this is) 96 xg, yg = np.meshgrid(xarr, yarr) 97 overlaylims = options.getfieldvalue('overlaylims', [min(arr.ravel()), max(arr.ravel())]) 98 norm = mpl.colors.Normalize(vmin=overlaylims[0], vmax=overlaylims[1]) 99 99 100 pc=ax.pcolormesh(xg, yg, np.flipud(arr), cmap=mpl.cm.Greys, norm=norm)100 pc = ax.pcolormesh(xg, yg, np.flipud(arr), cmap=mpl.cm.Greys, norm=norm) 101 101 102 103 104 if md.mesh.epsg==3413:105 hemisphere=1106 st_lat=70107 lon_0=45108 elif md.mesh.epsg==3031:109 hemisphere=-1110 st_lat=71111 lon_0=0112 113 hemisphere=eval(input('epsg code {} is not supported chose your hemisphere (1 for North, -1 for south)'.format(mesh.epsg)))102 if options.exist('basemap'): 103 # create coordinate grid in map projection units (for plotting) 104 if md.mesh.epsg == 3413: 105 hemisphere = 1 106 st_lat = 70 107 lon_0 = 45 108 elif md.mesh.epsg == 3031: 109 hemisphere = -1 110 st_lat = 71 111 lon_0 = 0 112 else: 113 hemisphere = eval(input('epsg code {} is not supported chose your hemisphere (1 for North, - 1 for south)'.format(md.mesh.epsg))) 114 114 115 lat,lon=xy2ll(xlim,ylim,hemisphere,lon_0,st_lat)116 extent=[np.diff(xlim)[0],np.diff(ylim)[0]]117 center=[lon[0]+np.diff(lon)[0]*0.5,lat[0]+np.diff(lat)[0]*0.5]118 m=Basemap(llcrnrlon=lon[0],llcrnrlat=lat[0],urcrnrlon=lon[1],urcrnrlat=lat[1],119 lon_0=center[0],lat_0=center[1],#width=extent[0],height=extent[1],# 120 epsg=md.mesh.epsg,anchor='NW',121 resolution='i',ax=ax)115 lat, lon = xy2ll(xlim, ylim, hemisphere, lon_0, st_lat) 116 extent = [np.diff(xlim)[0], np.diff(ylim)[0]] 117 center = [lon[0] + np.diff(lon)[0] * 0.5, lat[0] + np.diff(lat)[0] * 0.5] 118 m = Basemap(llcrnrlon=lon[0], llcrnrlat=lat[0], urcrnrlon=lon[1], urcrnrlat=lat[1], 119 lon_0=center[0], lat_0=center[1], width=extent[0], height=extent[1], 120 epsg=md.mesh.epsg, anchor='NW', 121 resolution='i', ax=ax) 122 122 123 meridians=np.arange(np.floor(lon[0]),np.ceil(lon[1]),1.)124 parallels=np.arange(np.floor(lat[0]),np.ceil(lat[1]),1.)125 m.drawparallels(parallels,labels=[1,0,0,0],ax=ax) # labels=[left,right,top,bottom]126 m.drawmeridians(meridians,labels=[0,0,1,0],ax=ax)127 128 123 meridians = np.arange(np.floor(lon[0]), np.ceil(lon[1]), 1.) 124 parallels = np.arange(np.floor(lat[0]), np.ceil(lat[1]), 1.) 125 m.drawparallels(parallels, labels=[1, 0, 0, 0], ax=ax) # labels = [left, right, top, bottom] 126 m.drawmeridians(meridians, labels=[0, 0, 1, 0], ax=ax) 127 m.drawcoastlines(ax=ax) 128 m.drawmapboundary(ax=ax) 129 129 130 131 if options.getfieldvalue('rasterized',0):132 130 #rasterization? 131 if options.getfieldvalue('rasterized', 0): 132 pc.set_rasterized(True) -
issm/trunk-jpl/src/m/plot/plot_quiver.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 3 def plot_quiver(x,y,data,options,ax):4 vx=data[:,0]5 vy=data[:,1]6 Xdist=max(x)-min(x)7 Ydist=max(y)-min(y)8 datanorm=np.sqrt(vx**2+vy**2)9 scaler=max(datanorm)/(np.sqrt(Xdist*Ydist/len(x)))10 3 11 #define colors, unicolor or value codded 12 color=options.getfieldvalue('quivercol','k') 13 if color=='values': 14 color=datanorm 15 #scaling of arrow length (giving info to change as it seems that there is no better way to work arround it) 16 scale=options.getfieldvalue('scaling',scaler) 17 print(('the current value for "scaling" is {}, increase it to shorten the arrows'.format(scale))) 18 #sizing of the arrows 19 width=options.getfieldvalue('width',5.0e-3) 20 headwidth=options.getfieldvalue('headwidth',6) 21 headlength=options.getfieldvalue('headlength',headwidth) 22 #set the unit to the smaller of the two axes 23 if Xdist>Ydist: 24 units='height' 25 else: 26 units='width' 27 28 if type(color)==str: 29 Q=ax.quiver(x,y,vx,vy,color=color, 30 scale=scale,scale_units='xy', 31 units=units,headwidth=headwidth,headlength=headlength,width=width, 32 angles='xy') 33 else: 34 if options.exist('colornorm'): 35 norm=options.getfieldvalue('colornorm') 36 if options.exist('colormap'): 37 cmap=options.getfieldvalue('colormap') 38 Q=ax.quiver(x,y,vx,vy,color,cmap=cmap,norm=norm, 39 scale=scale,scale_units='xy', 40 units=units,headwidth=headwidth,headlength=headlength,width=width, 41 angles='xy') 42 return Q 4 def plot_quiver(x, y, data, options, ax): 5 vx = data[:, 0] 6 vy = data[:, 1] 7 Xdist = max(x) - min(x) 8 Ydist = max(y) - min(y) 9 datanorm = np.sqrt(vx**2 + vy**2) 10 scaler = max(datanorm) / (np.sqrt(Xdist * Ydist / len(x))) 11 12 #define colors, unicolor or value codded 13 color = options.getfieldvalue('quivercol', 'k') 14 if color == 'values': 15 color = datanorm 16 #scaling of arrow length (giving info to change as it seems that there is no better way to work arround it) 17 scale = options.getfieldvalue('scaling', scaler) 18 print(('the current value for "scaling" is {}, increase it to shorten the arrows'.format(scale))) 19 #sizing of the arrows 20 width = options.getfieldvalue('width', 5.0e-3) 21 headwidth = options.getfieldvalue('headwidth', 6) 22 headlength = options.getfieldvalue('headlength', headwidth) 23 #set the unit to the smaller of the two axes 24 if Xdist > Ydist: 25 units = 'height' 26 else: 27 units = 'width' 28 29 if type(color) == str: 30 Q = ax.quiver(x, y, vx, vy, color=color, 31 scale=scale, scale_units='xy', 32 units=units, headwidth=headwidth, headlength=headlength, width=width, 33 angles='xy') 34 else: 35 if options.exist('colornorm'): 36 norm = options.getfieldvalue('colornorm') 37 if options.exist('colormap'): 38 cmap = options.getfieldvalue('colormap') 39 Q = ax.quiver(x, y, vx, vy, color, cmap=cmap, norm=norm, 40 scale=scale, scale_units='xy', 41 units=units, headwidth=headwidth, headlength=headlength, width=width, 42 angles='xy') 43 return Q -
issm/trunk-jpl/src/m/plot/plot_streamlines.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 from processmesh import processmesh 3 3 from processdata import processdata 4 from ContourToMesh import ContourToMesh5 4 try: 6 import matplotlib.pyplot as plt 7 import matplotlib.tri as tri 8 from scipy.interpolate import griddata 5 import matplotlib.tri as tri 6 from scipy.interpolate import griddata 9 7 except ImportError: 10 8 print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled") 11 9 12 def plot_streamlines(md,options,ax): 10 11 def plot_streamlines(md, options, ax): 13 12 ''' 14 13 plot streamlines on a figure, using by default vx and vy components in md.initialization. 15 14 16 15 Usage: 17 plot_streamlines(md, options,ax)16 plot_streamlines(md, options, ax) 18 17 19 available options, to be passed to plotmodel as a string -value pair:18 available options, to be passed to plotmodel as a string - value pair: 20 19 streamlinesvx : vx component (default md.initialization.vx) 21 20 streamlinesvy : vy component (default md.initialization.vy) … … 29 28 30 29 # retrieve options 31 vx =options.getfieldvalue('streamlinesvx',md.initialization.vx)32 vy =options.getfieldvalue('streamlinesvy',md.initialization.vy)33 color =options.getfieldvalue('streamlinescolor','k')34 linewidth =options.getfieldvalue('streamlineswidth',1)35 density =options.getfieldvalue('streamlinesdensity',1)36 arrowsize =options.getfieldvalue('streamlinesarrowsize',1)30 vx = options.getfieldvalue('streamlinesvx', md.initialization.vx) 31 vy = options.getfieldvalue('streamlinesvy', md.initialization.vy) 32 color = options.getfieldvalue('streamlinescolor', 'k') 33 linewidth = options.getfieldvalue('streamlineswidth', 1) 34 density = options.getfieldvalue('streamlinesdensity', 1) 35 arrowsize = options.getfieldvalue('streamlinesarrowsize', 1) 37 36 38 37 #process mesh and data 39 x, y,z,elements,is2d,isplanet=processmesh(md,vx,options)40 u, datatype=processdata(md,vx,options)41 v, datatype=processdata(md,vy,options)38 x, y, z, elements, is2d, isplanet = processmesh(md, vx, options) 39 u, datatype = processdata(md, vx, options) 40 v, datatype = processdata(md, vy, options) 42 41 43 42 if not is2d: … … 45 44 46 45 # format data for matplotlib streamplot function 47 yg, xg=np.mgrid[min(md.mesh.y):max(md.mesh.y):100j,min(md.mesh.x):max(md.mesh.x):100j]48 ug =griddata((x,y),u,(xg,yg),method='linear')49 vg =griddata((x,y),v,(xg,yg),method='linear')46 yg, xg = np.mgrid[min(md.mesh.y):max(md.mesh.y):100j, min(md.mesh.x):max(md.mesh.x):100j] 47 ug = griddata((x, y), u, (xg, yg), method='linear') 48 vg = griddata((x, y), v, (xg, yg), method='linear') 50 49 51 50 # create triangulation instance 52 triang =tri.Triangulation(md.mesh.x,md.mesh.y,md.mesh.elements-1)51 triang = tri.Triangulation(md.mesh.x, md.mesh.y, md.mesh.elements - 1) 53 52 54 53 # interpolate to regularly spaced quad grid 55 interp_lin_u =tri.LinearTriInterpolator(triang,u)56 interp_lin_v =tri.LinearTriInterpolator(triang,v)57 ug =interp_lin_u(xg,yg)58 vg =interp_lin_v(xg,yg)54 interp_lin_u = tri.LinearTriInterpolator(triang, u) 55 interp_lin_v = tri.LinearTriInterpolator(triang, v) 56 ug = interp_lin_u(xg, yg) 57 vg = interp_lin_v(xg, yg) 59 58 60 if linewidth =='vel':61 scale =options.getfieldvalue('streamlineswidthscale',3)62 vel =np.sqrt(ug**2+vg**2)63 linewidth =scale*vel/np.amax(vel)64 linewidth[linewidth <0.5]=0.559 if linewidth == 'vel': 60 scale = options.getfieldvalue('streamlineswidthscale', 3) 61 vel = np.sqrt(ug**2 + vg**2) 62 linewidth = scale * vel / np.amax(vel) 63 linewidth[linewidth < 0.5] = 0.5 65 64 66 65 # plot streamlines 67 ax.streamplot(xg, yg,ug,vg,color=color,linewidth=linewidth,density=density,arrowsize=arrowsize)66 ax.streamplot(xg, yg, ug, vg, color=color, linewidth=linewidth, density=density, arrowsize=arrowsize) -
issm/trunk-jpl/src/m/plot/plot_unit.py
r24115 r24213 9 9 from mpl_toolkits.mplot3d.art3d import Poly3DCollection 10 10 except ImportError: 11 print("could not import pylab, matplotlib has not been installed,no plotting capabilities enabled")11 print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled") 12 12 13 13 14 14 def plot_unit(x, y, z, elements, data, is2d, isplanet, datatype, options, fig, axgrid, gridindex): 15 15 """ 16 PLOT_UNIT - unit plot, 16 PLOT_UNIT - unit plot, display data 17 17 18 18 Usage: 19 19 plot_unit(x, y, z, elements, data, is2d, isplanet, datatype, options) 20 20 21 See also: PLOTMODEL, 21 See also: PLOTMODEL, PLOT_MANAGER 22 22 """ 23 23 #if we are plotting 3d replace the current axis 24 print(is2d) 24 25 if not is2d: 25 26 axgrid[gridindex].axis('off') … … 59 60 options.addfield('colormap', cmap) 60 61 # }}} 61 # {{{ if plotting only one of several layers reduce dataset, 62 # {{{ if plotting only one of several layers reduce dataset, same for surface 62 63 if options.getfieldvalue('layer', 0) >= 1: 63 64 plotlayer = options.getfieldvalue('layer', 0) … … 104 105 #first deal with colormap 105 106 loccmap = plt.cm.ScalarMappable(cmap=cmap) 106 loccmap.set_array([ min(data),max(data)])107 loccmap.set_clim(vmin= min(data), vmax=max(data))108 109 107 loccmap.set_array([np.nanmin(data), np.nanmax(data)]) 108 loccmap.set_clim(vmin=np.nanmin(data), vmax=np.nanmax(data)) 109 110 #dealing with prism sides 110 111 recface = np.vstack((elements[:, 0], elements[:, 1], elements[:, 4], elements[:, 3])).T 111 112 eltind = np.arange(0, np.shape(elements)[0]) … … 126 127 ax.add_collection3d(pl3) 127 128 128 129 #dealing with prism bases 129 130 triface = np.vstack((elements[:, 0:3], elements[:, 3:6])) 130 131 eltind = np.arange(0, np.shape(elements)[0]) … … 132 133 tmp = np.ascontiguousarray(triface).view(np.dtype((np.void, triface.dtype.itemsize * triface.shape[1]))) 133 134 _, idx, recur = np.unique(tmp, return_index=True, return_counts=True) 134 135 #we keep only top and bottom elements 135 136 triel = triface[idx[np.where(recur == 1)]] 136 137 triindex = eltind[idx[np.where(recur == 1)]] … … 147 148 ax.set_zlim([min(z), max(z)]) 148 149 149 150 #raise ValueError('plot_unit error: 3D element plot not supported yet') 150 151 return 151 152 … … 160 161 else: 161 162 triangles = mpl.tri.Triangulation(x, y, elements) 162 #tri = ax.tricontourf(triangles, data, colorlevels, cmap = cmap, norm =norm, alpha = alpha)163 #tri = ax.tricontourf(triangles, data, colorlevels, cmap = cmap, norm=norm, alpha = alpha) 163 164 if options.exist('log'): 164 165 if alpha < 1: #help with antialiasing … … 174 175 #first deal with the colormap 175 176 loccmap = plt.cm.ScalarMappable(cmap=cmap) 176 loccmap.set_array([ min(data),max(data)])177 loccmap.set_clim(vmin= min(data), vmax=max(data))178 179 177 loccmap.set_array([np.nanmin(data), np.nanmax(data)]) 178 loccmap.set_clim(vmin=np.nanmin(data), vmax=np.nanmax(data)) 179 180 #deal with prism sides 180 181 recface = np.vstack((elements[:, 0], elements[:, 1], elements[:, 4], elements[:, 3])).T 181 182 recface = np.vstack((recface, np.vstack((elements[:, 1], elements[:, 2], elements[:, 5], elements[:, 4])).T)) … … 192 193 ax.add_collection3d(pl3) 193 194 194 195 #deal with prism faces 195 196 triface = np.vstack((elements[:, 0:3], elements[:, 3:6])) 196 197 tmp = np.ascontiguousarray(triface).view(np.dtype((np.void, triface.dtype.itemsize * triface.shape[1]))) 197 198 _, idx, recur = np.unique(tmp, return_index=True, return_counts=True) 198 199 #we keep only top and bottom elements 199 200 triel = triface[idx[np.where(recur == 1)]] 200 201 for triangle in triel: … … 209 210 ax.set_ylim([min(y), max(y)]) 210 211 ax.set_zlim([min(z), max(z)]) 211 212 #raise ValueError('plot_unit error: 3D element plot not supported yet') 212 213 return 213 214 -
issm/trunk-jpl/src/m/plot/plot_vertexnumbering.py
r23716 r24213 1 try: 2 import pylab as p 3 except ImportError: 4 print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled") 5 6 import numpy as np 1 import numpy as np 7 2 from processmesh import processmesh 8 3 from applyoptions import applyoptions 9 from plot_icefront import plot_icefront10 4 11 def plot_vertexnumbering(md,options,fig,axgrid,gridindex):12 '''13 PLOT_VERTEXNUMBERING - plot vertex numbering14 15 Usage:16 plot_vertexnumbering(md,options,fig,axes);17 18 See also: PLOTMODEL19 20 '''21 #process data and model22 x,y,z,elements,is2d,isplanet=processmesh(md,[],options)23 5 24 ax=axgrid[gridindex] 25 fig.delaxes(axgrid.cbar_axes[gridindex]) 26 27 if is2d: 28 ax.triplot(x,y,elements) 29 else: 30 print('Not Implemented Yet') 6 def plot_vertexnumbering(md, options, fig, axgrid, gridindex): 7 ''' 8 PLOT_VERTEXNUMBERING - plot vertex numbering 31 9 32 XPad=0.1*(np.max(x)-np.min(x)) 33 YPad=0.1*(np.max(y)-np.min(y)) 34 #plot mesh 35 ax.triplot(x,y,elements) 36 ax.set_xlim((np.min(x)-XPad,np.max(x)+XPad)) 37 ax.set_ylim((np.min(y)-XPad,np.max(y)+XPad)) 10 Usage: 11 plot_vertexnumbering(md, options, fig, axes) 38 12 39 highlightpos=options.getfieldvalue('highlight',[]) 40 if highlightpos!='none': 41 #if just one element duplicate it to avoid coloring issues 42 if type(highlightpos)==int: 43 highlightpos=[highlightpos,highlightpos] 44 #convert from to matlab numbering 45 highlightpos=[pos-1 for pos in highlightpos] 13 See also: PLOTMODEL 46 14 47 # and numbers 48 for i,Xcoord in enumerate(x): 49 if i in highlightpos: 50 props = dict(boxstyle='circle', pad=0.1,color='r') 51 else: 52 props = dict(boxstyle='circle', pad=0.1,color='w') 53 ax.text(x[i],y[i],str(i+1),ha='center',va='center',backgroundcolor='w',clip_on=True,bbox=props) 54 55 #apply options 56 options.addfielddefault('title','Vertex numbers (matlab indexation)') 57 options.addfielddefault('colorbar','off') 58 applyoptions(md,[],options,fig,axgrid,gridindex) 15 ''' 16 #process data and model 17 x, y, z, elements, is2d, isplanet = processmesh(md, [], options) 18 19 ax = axgrid[gridindex] 20 fig.delaxes(axgrid.cbar_axes[gridindex]) 21 22 if is2d: 23 ax.triplot(x, y, elements) 24 else: 25 print('Not Implemented Yet') 26 27 XPad = 0.1 * (np.nanmax(x) - np.nanmin(x)) 28 YPad = 0.1 * (np.nanmax(y) - np.nanmin(y)) 29 #plot mesh 30 ax.triplot(x, y, elements) 31 ax.set_xlim((np.min(x) - XPad, np.max(x) + XPad)) 32 ax.set_ylim((np.min(y) - YPad, np.max(y) + YPad)) 33 34 highlightpos = options.getfieldvalue('highlight', []) 35 if highlightpos != 'none': 36 #if just one element duplicate it to avoid coloring issues 37 if type(highlightpos) == int: 38 highlightpos = [highlightpos, highlightpos] 39 #convert from to matlab numbering 40 highlightpos = [pos - 1 for pos in highlightpos] 41 42 # and numbers 43 for i, Xcoord in enumerate(x): 44 if i in highlightpos: 45 props = dict(boxstyle='circle', pad=0.1, color='r') 46 else: 47 props = dict(boxstyle='circle', pad=0.1, color='w') 48 ax.text(x[i], y[i], str(i + 1), ha='center', va='center', backgroundcolor='w', clip_on=True, bbox=props) 49 50 #apply options 51 options.addfielddefault('title', 'Vertex numbers (matlab indexation)') 52 options.addfielddefault('colorbar', 'off') 53 applyoptions(md, [], options, fig, axgrid, gridindex) -
issm/trunk-jpl/src/m/plot/plotdoc.py
r23716 r24213 1 1 def plotdoc(): 2 '''PLOTDOC - plot documentation 3 %As of now it is more a TODO list 4 % Usage: 5 % plotdoc() 6 ''' 7 pydata={'quiver':' quiver plot give data and a vector array [Vx,Vy]', 8 'mesh':' draw mesh using trisurf', 9 'BC':' this will draw all the boundary conditions (Dirichlet and Neumann).', 10 'elementnumbering':' numbering of elements (matlab indices)', 11 '3D disclaimer':'3D is implemented with plot3d for now this is not optimal and may change to mayavi at some point. The impelementation is on the development side for now so expect some issue and question your plotting before you results.'} 12 TODOdata={'basal_drag':' plot the basal drag on the bed (in kPa) based on the velocity in md.initialization', 13 'basal_dragx or basal_dragy' :' plot a component of the basal drag on the bed (in kPa)', 14 'boundaries':' this will draw all the segment boundaries to the model, including rifts.', 15 'icefront':' this will show segments that are used to define the icefront of the model (Neumann boundary conditions).', 16 'deviatoricstress_tensor':' plot the components of the deviatoric stress tensor (tauxx,tauyy,tauzz,tauxy,tauxz,tauyz, if computed', 17 'deviatoricstress_principal':' plot the deviatoricstress tensor principal axis and principal values', 18 'deviatoricstress_principalaxis1':' arrow plot the first principal axis of the deviatoricstress tensor(replace 1 by 2 or 3 if needed)', 19 'driving_stress':' plot the driving stress (in kPa)', 20 'elements_type':' model used for each element', 21 'highlightvertices':' to highlight vertices (use highlight option to enter the vertex list', 22 'referential':' stressbalance referential', 23 'riftvel':' velocities along rifts', 24 'riftrelvel':' relative velocities along rifts', 25 'riftpenetration':' penetration levels for a fault', 26 'riftfraction':' fill fractions for every node of the rifts', 27 'rifts':' plot mesh with an offset so that rifts are visible', 28 'strainrate_tensor':' plot the components of the strainrate tensor (exx,eyy,ezz,exy,exz,eyz) if computed', 29 'strainrate_principal':' plot the strainrate tensor principal axis and principal values)', 30 'strainrate_principalaxis1':' arrow plot the first principal axis of the strainrate tensor(replace 1 by 2 or 3 if needed)', 31 'stress_tensor':' plot the components of stress tensor (sxx,syy,szz,sxy,sxz,syz) if computed', 32 'stress_principal':' plot the stress tensor principal axis and principal values', 33 'stress_principalaxis1':' arrow plot the first principal axis of the stress tensor(replace 1 by 2 or 3 if needed)', 34 'transient_results':' this will printlay all the time steps of a transient run (use steps to specify the steps requested)', 35 'transient_vel':' this will printlay the velocity for the time steps requested in ''steps'' of a transient run', 36 'transient_vel':' vel can be by any field of the transient results (vx, vy, vz, vel, temperature, melting, pressure, bed, thickness, surface)', 37 'transient_field':' dynamic plot of results. specify ''steps'' option, as fell as ''field'' (defaults are all steps, for ''Vel'' field)', 38 'transient_movie':' this will printlay the time steps of a given field of a transient run', 39 'transient_movie_field':' field to be printlayed when doing transient_movie data printlay', 40 'transient_movie_output':' filename if output is desired for movie', 41 'transient_movie_time':' time for each image (default 2 seconds)', 42 'thermaltransient_results':' this will printlay all the time steps of a thermal transient run', 43 'qmuhistnorm':' histogram normal distribution. needs option qmudata', 44 'qmumean':' plot of mean distribution in sampling analysis with scaled response. needs option qmudata for descriptor', 45 'qmustddev':' plot of stddev distribution in sampling analysis with scaled response. needs option qmudata for descriptor', 46 'part_hist':' partitioning node and area histogram'} 47 48 pyoptions={'axis':" show ('on') or hide ('off') axes", 49 'caxis':" modify colorbar range. (array of type [a b] where b>=a)", 50 'colorlevels':" N, number of levels to use", 51 'colorbar':" add colorbar (string 'on','off' or 'one')", 52 'axes_pad':" spacing between axes (default is 0.25)", 53 'colorbartitle':" colorbar title (string)", 54 'colorbarticks':" set colorbar ticks manually (list)", 55 'colorbarfontsize':" specify colorbar fontsize", 56 'colormap':" change the default colormap ('viridis' is the default)", 57 'contourlevels':" N or [value1,...] add the contours of the specified values or N contours", 58 'streamlines':" TOFIX argument does nothing", 59 'edgecolor':" color of mesh edges. RGB tuple or standard string", 60 'fontsize':" fontsize for the title", 61 'fontweight':" fontweight for the title 'normal', 'bold'", 62 'fontcolor':" TODO", 63 'highlight':" highlights certain nodes or elements when using 'vetrexnumbering' or 'elementnumbering' or 'highlightvertices ' or 'highlightelements' option", 64 'title':" subplot title (string)", 65 'xlim':" limits of X axis (all subplots) (ex: [0,500])", 66 'ylim':" limits of Y axis (all subplots) (ex: [0,500])", 67 'xlabel':" X axis title", 68 'ylabel':" Y axis title", 69 'scaling':" scaling factor used by quiver plots.", 70 'quivercol':" color of quiver arrows, 'values' give value colored arrows", 71 'text':" print string or list of strings", 72 'textposition':" [x,y] position of text, list if several texts (position betwee 0 and 1)", 73 'textsize':" text fontsize TOFIX ", 74 'textweight':" text fontweight", 75 'textcolor':" text color", 76 'textrotation':" text rotation angle", 77 'mask':" condition. Only 'true' values are plotted ", 78 'log':" cutoff value for log", 79 'backgroundcolor':" plot background color. RGB tuple or standard string", 80 'expdisp':" path (or list of paths) to the exp file to be plotted ", 81 'explinewidth':" linewidth ", 82 'explinestyle':" matplotlib linestyle string ", 83 'explinecolor':" matplotlib color string ", 84 'expfill':" (True/False) fill a closed contour ", 85 'expfillcolor':" Color for a filled contour, only used if expfill is True ", 86 'expfillalpha':" alpha transparency for filled contour ", 87 'overlay':" True/False. Overlay a georeferenced image (radar/visible) ", 88 'overlay_image':" path to overlay image ", 89 'overlayhist':" plot a histogram of overlay image, used for setting overlaylims ", 90 'overlaylims':" normalized limits to clip and stretch contrast of overlay image (in [0,1], ex. [0.25,0.75]) ", 91 'alpha':" set transparency of plotted data (in [0,1]) ", 92 'vertexnumbering':' numbering of vertices', 93 'elementnumbering':' numbering of elements (matlab indices)', 94 'highlightelements':' to highlight elements to highlight the element list', 95 'layer':"number of the layer to display for 3D runs"} 2 '''PLOTDOC - plot documentation 3 %As of now it is more a TODO list 4 % Usage: 5 % plotdoc() 6 ''' 7 pydata = {'quiver': ' quiver plot give data and a vector array [Vx, Vy]', 8 'mesh': ' draw mesh using trisurf', 9 'BC': ' this will draw all the boundary conditions (Dirichlet and Neumann).', 10 'elementnumbering': ' numbering of elements (matlab indices)', 11 '3D disclaimer': '3D is implemented with plot3d for now this is not optimal and may change to mayavi at some point. The impelementation is on the development side for now so expect some issue and question your plotting before you results.'} 12 # TODOdata = {'basal_drag': ' plot the basal drag on the bed (in kPa) based on the velocity in md.initialization', 13 # 'basal_dragx or basal_dragy': ' plot a component of the basal drag on the bed (in kPa)', 14 # 'boundaries': ' this will draw all the segment boundaries to the model, including rifts.', 15 # 'icefront': ' this will show segments that are used to define the icefront of the model (Neumann boundary conditions).', 16 # 'deviatoricstress_tensor': ' plot the components of the deviatoric stress tensor (tauxx, tauyy, tauzz, tauxy, tauxz, tauyz, if computed', 17 # 'deviatoricstress_principal': ' plot the deviatoricstress tensor principal axis and principal values', 18 # 'deviatoricstress_principalaxis1': ' arrow plot the first principal axis of the deviatoricstress tensor(replace 1 by 2 or 3 if needed)', 19 # 'driving_stress': ' plot the driving stress (in kPa)', 20 # 'elements_type': ' model used for each element', 21 # 'highlightvertices': ' to highlight vertices (use highlight option to enter the vertex list', 22 # 'referential': ' stressbalance referential', 23 # 'riftvel': ' velocities along rifts', 24 # 'riftrelvel': ' relative velocities along rifts', 25 # 'riftpenetration': ' penetration levels for a fault', 26 # 'riftfraction': ' fill fractions for every node of the rifts', 27 # 'rifts': ' plot mesh with an offset so that rifts are visible', 28 # 'strainrate_tensor': ' plot the components of the strainrate tensor (exx, eyy, ezz, exy, exz, eyz) if computed', 29 # 'strainrate_principal': ' plot the strainrate tensor principal axis and principal values)', 30 # 'strainrate_principalaxis1': ' arrow plot the first principal axis of the strainrate tensor(replace 1 by 2 or 3 if needed)', 31 # 'stress_tensor': ' plot the components of stress tensor (sxx, syy, szz, sxy, sxz, syz) if computed', 32 # 'stress_principal': ' plot the stress tensor principal axis and principal values', 33 # 'stress_principalaxis1': ' arrow plot the first principal axis of the stress tensor(replace 1 by 2 or 3 if needed)', 34 # 'transient_results': ' this will printlay all the time steps of a transient run (use steps to specify the steps requested)', 35 # 'transient_vel': ' vel can be by any field of the transient results (vx, vy, vz, vel, temperature, melting, pressure, bed, thickness, surface)', 36 # 'transient_field': ' dynamic plot of results. specify ''steps'' option, as fell as ''field'' (defaults are all steps, for ''Vel'' field)', 37 # 'transient_movie': ' this will printlay the time steps of a given field of a transient run', 38 # 'transient_movie_field': ' field to be printlayed when doing transient_movie data printlay', 39 # 'transient_movie_output': ' filename if output is desired for movie', 40 # 'transient_movie_time': ' time for each image (default 2 seconds)', 41 # 'thermaltransient_results': ' this will printlay all the time steps of a thermal transient run', 42 # 'qmuhistnorm': ' histogram normal distribution. needs option qmudata', 43 # 'qmumean': ' plot of mean distribution in sampling analysis with scaled response. needs option qmudata for descriptor', 44 # 'qmustddev': ' plot of stddev distribution in sampling analysis with scaled response. needs option qmudata for descriptor', 45 # 'part_hist': ' partitioning node and area histogram'} 96 46 97 TODOoptions={'basin':" zoom on a given basin ('pineislandglacier','ronneiceshelf', use isbasin to identify a basin", 98 'figurebackgroundcolor':" figure background color. (default is 'none',", 99 'coord':" 'xy' (default) or 'latlon'", 100 'colorbarpos':" [x,y,dx,dy] where x,y,dx and dy are within [0 1]", 101 'colorbarcornerposition':" 'West','North',etc ...", 102 'colorbartitlerotation':" -90, etc ...", 103 'colorbarwidth':" multiplier (default 1) to the default width colorbar", 104 'colorbarheight':" multiplier (default 1) to the default height colorbar", 105 'contourticks':" 'on' or 'off' to printlay the ticks of the contours", 106 'contouronly':" 'on' or 'off' to printlay the contours on a white background", 107 'contourcolor':" ticks and contour color", 108 'density':" density of quivers (one arrow every N nodes, N integer)", 109 'inset':" add an inset (zoom) of the current figure if 1 (use 'insetx', 'insety' and 'insetpos' to determine the inset position and content)", 110 'insetx':" [min(x) max(x)] where min(x) and max(x) are values determining the inset content", 111 'insety':" [min(y) max(y)] where min(y) and max(y) are values determining the inset content", 112 'insetpos':" [x,y,dx,dy] where x,y,dx and dy are within [0 1]", 113 'resolution':" resolution used by section value (array of type [horizontal_resolution vertical_resolution])", 114 'showsection':" show section used by 'sectionvalue' (string 'on' or a number of labels)", 115 'sectionvalue':" give the value of data on a profile given by an Argus file (string 'Argusfile_name.exp',", 116 'profile':" give the value of data along a vertical profile ([xlocation ylocation])", 117 'smooth':" smooth element data (string 'yes' or integer)", 118 'view':" same as standard matlab option (ex: 2, 3 or [90 180]", 119 'zlim':" same as standard matlab option", 120 'xticklabel':" specifiy xticklabel", 121 'yticklabel':" specifiy yticklabel", 122 'contrast':" (default 1) coefficient to add contrast to the radar amplitude image used in overlays", 123 'highres':" resolution of overlayed radar amplitude image (default is 0, high resolution is 1).", 124 'alpha':" transparency coefficient (the higher, the more transparent). Default is 1.5", 125 'scaling':" scaling factor used by quiver plots. Default is 0.4", 126 'autoscale':" set to 'off' to have all the quivers with the same size. Default is 'on'", 127 'linewidth':" line width for expprint plot (use a cell of strings if more than one)", 128 'border':" size of printlay border (in pixels). active only for overlay plots", 129 'nan':" value assigned to NaNs (convenient when plotting BC)", 130 'partitionedges':" 'off' by default. overlay plot of partition edges", 131 'latlon':" 'on' or {latstep lonstep [resolution [color]]} where latstep,longstep and resolution are in degrees, color is a [r g b] array", 132 'latlonnumbering':" 'on' or {latgap longap colornumber latangle lonangle} where latgap and longap are pixel gaps for the numbers", 133 'latlonclick':" 'on' to click on latlon ticks positions colornumber is a [r g b] array and latangle and lonangle are angles to flip the numbers", 134 'northarrow':" add an arrow pointing north, 'on' for default value or [x0 y0 length [ratio width fontsize]] where (x0,y0) are the coordinates of the base, ratio=headlength/length", 135 'offset':" mesh offset used by 'rifts', default is 500", 136 'scaleruler':" add a scale ruler, 'on' for default value or [x0 y0 length width numberofticks] where (x0,y0) are the coordinates of the lower left corner", 137 'showregion':" show domain in Antarctica on an inset, use 'insetpos' properties", 138 'visible':" 'off' to make figure unvisible, default is 'on'", 139 'wrapping':" repeat 'n' times the colormap ('n' must be an integer)", 140 'unit':" by default, in m, otherwise, 'km' is available", 141 'legend_position':" by default, 'NorthEasth'", 142 'qmudata':" ", 143 'figposition':" position of figure: 'fullscreen', 'halfright', 'halfleft', 'portrait', 'landscape',... (hardcoded in applyoptions.m)", 144 'offsetaxispos':" offset of current axis position to get more space (ex: [-0.02 0 0.04 0])", 145 'axispos':" axis position to get more space", 146 'hmin':" (numeric, minimum for histogram)", 147 'hmax':" (numeric, maximum for histogram)", 148 'hnint':" (numeric, number of intervals for histogram)", 149 'ymin1':" (numeric, minimum of histogram y-axis)", 150 'ymax1':" (numeric, maximum of histogram y-axis)", 151 'ymin2':" (numeric, minimum of cdf y-axis)", 152 'ymax2':" (numeric, maximum of cdf y-axis)", 153 'cdfplt':" (char, 'off' to turn off cdf line plots)", 154 'cdfleg':" (char, 'off' to turn off cdf legends)", 155 'segmentnumbering':" ('off' by default)", 156 'kmlgroundoverlay':" ('off' by default)", 157 'kmlfilename':" ('tempfile.kml' by default)", 158 'kmlroot':" ('./' by default)", 159 'kmlimagename':" ('tempimage' by default)", 160 'kmlimagetype':" ('png' by default)", 161 'kmlresolution':" (1 by default)", 162 'kmlfolder':" ('Ground Overlay' by default)", 163 'kmlfolderdescription':" ('' by default)", 164 'kmlgroundoverlayname':" ('' by default)", 165 'kmlgroundoverlaydescription':"N/A by default')"} 47 pyoptions = {'axis': " show ('on') or hide ('off') axes", 48 'caxis': " modify colorbar range. (array of type [a b] where b >= a)", 49 'colorlevels': " N, number of levels to use", 50 'colorbar': " add colorbar (string 'on', 'off' or 'one')", 51 'axes_pad': " spacing between axes (default is 0.25)", 52 'colorbartitle': " colorbar title (string)", 53 'colorbarticks': " set colorbar ticks manually (list)", 54 'colorbarfontsize': " specify colorbar fontsize", 55 'colormap': " change the default colormap ('viridis' is the default)", 56 'contourlevels': " N or [value1, ...] add the contours of the specified values or N contours", 57 'streamlines': " TOFIX argument does nothing", 58 'edgecolor': " color of mesh edges. RGB tuple or standard string", 59 'fontsize': " fontsize for the title", 60 'fontweight': " fontweight for the title 'normal', 'bold'", 61 'fontcolor': " TODO", 62 'highlight': " highlights certain nodes or elements when using 'vetrexnumbering' or 'elementnumbering' or 'highlightvertices ' or 'highlightelements' option", 63 'title': " subplot title (string)", 64 'xlim': " limits of X axis (all subplots) (ex: [0, 500])", 65 'ylim': " limits of Y axis (all subplots) (ex: [0, 500])", 66 'xlabel': " X axis title", 67 'ylabel': " Y axis title", 68 'scaling': " scaling factor used by quiver plots.", 69 'quivercol': " color of quiver arrows, 'values' give value colored arrows", 70 'text': " print string or list of strings", 71 'textposition': " [x, y] position of text, list if several texts (position betwee 0 and 1)", 72 'textsize': " text fontsize TOFIX ", 73 'textweight': " text fontweight", 74 'textcolor': " text color", 75 'textrotation': " text rotation angle", 76 'mask': " condition. Only 'true' values are plotted ", 77 'log': " cutoff value for log", 78 'backgroundcolor': " plot background color. RGB tuple or standard string", 79 'expdisp': " path (or list of paths) to the exp file to be plotted ", 80 'explinewidth': " linewidth ", 81 'explinestyle': " matplotlib linestyle string ", 82 'explinecolor': " matplotlib color string ", 83 'expfill': " (True / False) fill a closed contour ", 84 'expfillcolor': " Color for a filled contour, only used if expfill is True ", 85 'expfillalpha': " alpha transparency for filled contour ", 86 'overlay': " True / False. Overlay a georeferenced image (radar / visible) ", 87 'overlay_image': " path to overlay image ", 88 'overlayhist': " plot a histogram of overlay image, used for setting overlaylims ", 89 'overlaylims': " normalized limits to clip and stretch contrast of overlay image (in [0, 1], ex. [0.25, 0.75]) ", 90 'alpha': " set transparency of plotted data (in [0, 1]) ", 91 'vertexnumbering': ' numbering of vertices', 92 'elementnumbering': ' numbering of elements (matlab indices)', 93 'highlightelements': ' to highlight elements to highlight the element list', 94 'layer': "number of the layer to display for 3D runs"} 166 95 96 # TODOoptions = {'basin': " zoom on a given basin ('pineislandglacier', 'ronneiceshelf', use isbasin to identify a basin", 97 # 'figurebackgroundcolor': " figure background color. (default is 'none', ", 98 # 'coord': " 'xy' (default) or 'latlon'", 99 # 'colorbarpos': " [x, y, dx, dy] where x, y, dx and dy are within [0 1]", 100 # 'colorbarcornerposition': " 'West', 'North', etc ...", 101 # 'colorbartitlerotation': " - 90, etc ...", 102 # 'colorbarwidth': " multiplier (default 1) to the default width colorbar", 103 # 'colorbarheight': " multiplier (default 1) to the default height colorbar", 104 # 'contourticks': " 'on' or 'off' to printlay the ticks of the contours", 105 # 'contouronly': " 'on' or 'off' to printlay the contours on a white background", 106 # 'contourcolor': " ticks and contour color", 107 # 'density': " density of quivers (one arrow every N nodes, N integer)", 108 # 'inset': " add an inset (zoom) of the current figure if 1 (use 'insetx', 'insety' and 'insetpos' to determine the inset position and content)", 109 # 'insetx': " [min(x) max(x)] where min(x) and max(x) are values determining the inset content", 110 # 'insety': " [min(y) max(y)] where min(y) and max(y) are values determining the inset content", 111 # 'insetpos': " [x, y, dx, dy] where x, y, dx and dy are within [0 1]", 112 # 'resolution': " resolution used by section value (array of type [horizontal_resolution vertical_resolution])", 113 # 'showsection': " show section used by 'sectionvalue' (string 'on' or a number of labels)", 114 # 'sectionvalue': " give the value of data on a profile given by an Argus file (string 'Argusfile_name.exp', ", 115 # 'profile': " give the value of data along a vertical profile ([xlocation ylocation])", 116 # 'smooth': " smooth element data (string 'yes' or integer)", 117 # 'view': " same as standard matlab option (ex: 2, 3 or [90 180]", 118 # 'zlim': " same as standard matlab option", 119 # 'xticklabel': " specifiy xticklabel", 120 # 'yticklabel': " specifiy yticklabel", 121 # 'contrast': " (default 1) coefficient to add contrast to the radar amplitude image used in overlays", 122 # 'highres': " resolution of overlayed radar amplitude image (default is 0, high resolution is 1).", 123 # 'alpha': " transparency coefficient (the higher, the more transparent). Default is 1.5", 124 # 'scaling': " scaling factor used by quiver plots. Default is 0.4", 125 # 'autoscale': " set to 'off' to have all the quivers with the same size. Default is 'on'", 126 # 'linewidth': " line width for expprint plot (use a cell of strings if more than one)", 127 # 'border': " size of printlay border (in pixels). active only for overlay plots", 128 # 'nan': " value assigned to NaNs (convenient when plotting BC)", 129 # 'partitionedges': " 'off' by default. overlay plot of partition edges", 130 # 'latlon': " 'on' or {latstep lonstep [resolution [color]]} where latstep, longstep and resolution are in degrees, color is a [r g b] array", 131 # 'latlonnumbering': " 'on' or {latgap longap colornumber latangle lonangle} where latgap and longap are pixel gaps for the numbers", 132 # 'latlonclick': " 'on' to click on latlon ticks positions colornumber is a [r g b] array and latangle and lonangle are angles to flip the numbers", 133 # 'northarrow': " add an arrow pointing north, 'on' for default value or [x0 y0 length [ratio width fontsize]] where (x0, y0) are the coordinates of the base, ratio = headlength / length", 134 # 'offset': " mesh offset used by 'rifts', default is 500", 135 # 'scaleruler': " add a scale ruler, 'on' for default value or [x0 y0 length width numberofticks] where (x0, y0) are the coordinates of the lower left corner", 136 # 'showregion': " show domain in Antarctica on an inset, use 'insetpos' properties", 137 # 'visible': " 'off' to make figure unvisible, default is 'on'", 138 # 'wrapping': " repeat 'n' times the colormap ('n' must be an integer)", 139 # 'unit': " by default, in m, otherwise, 'km' is available", 140 # 'legend_position': " by default, 'NorthEasth'", 141 # 'qmudata': " ", 142 # 'figposition': " position of figure: 'fullscreen', 'halfright', 'halfleft', 'portrait', 'landscape', ... (hardcoded in applyoptions.m)", 143 # 'offsetaxispos': " offset of current axis position to get more space (ex: [ - 0.02 0 0.04 0])", 144 # 'axispos': " axis position to get more space", 145 # 'hmin': " (numeric, minimum for histogram)", 146 # 'hmax': " (numeric, maximum for histogram)", 147 # 'hnint': " (numeric, number of intervals for histogram)", 148 # 'ymin1': " (numeric, minimum of histogram y - axis)", 149 # 'ymax1': " (numeric, maximum of histogram y - axis)", 150 # 'ymin2': " (numeric, minimum of cdf y - axis)", 151 # 'ymax2': " (numeric, maximum of cdf y - axis)", 152 # 'cdfplt': " (char, 'off' to turn off cdf line plots)", 153 # 'cdfleg': " (char, 'off' to turn off cdf legends)", 154 # 'segmentnumbering': " ('off' by default)", 155 # 'kmlgroundoverlay': " ('off' by default)", 156 # 'kmlfilename': " ('tempfile.kml' by default)", 157 # 'kmlroot': " ('./' by default)", 158 # 'kmlimagename': " ('tempimage' by default)", 159 # 'kmlimagetype': " ('png' by default)", 160 # 'kmlresolution': " (1 by default)", 161 # 'kmlfolder': " ('Ground Overlay' by default)", 162 # 'kmlfolderdescription': " ('' by default)", 163 # 'kmlgroundoverlayname': " ('' by default)", 164 # 'kmlgroundoverlaydescription': "N/A by default')"} 167 165 168 print(" Plot usage: plotmodel(model,varargin)")169 170 print(" Options:")171 print(" 'data' :and a model field or one of the following options.")172 173 print((" - {} : {}".format(key,pydata[key])))174 175 176 177 print((" - {} : {}".format(key,pyoptions[key])))178 print(" any options (except 'data') can be followed by '#i' where 'i' is the subplot number, or '#all' if applied to all plots")166 print(" Plot usage: plotmodel(model, varargin)") 167 print(" plotting is done with couples of keywords values, the type and style of data to display is given by one (or several) of the followings") 168 print(" Options: ") 169 print(" 'data' : and a model field or one of the following options.") 170 for key in list(pydata.keys()): 171 print((" - {} : {}".format(key, pydata[key]))) 172 print("") 173 print(" The general look of the plot is then given by the following keywords") 174 for key in sorted(pyoptions): 175 print((" - {} : {}".format(key, pyoptions[key]))) 176 print(" any options (except 'data') can be followed by ' #i' where 'i' is the subplot number, or ' #all' if applied to all plots") -
issm/trunk-jpl/src/m/plot/plotmodel.py
r23870 r24213 1 import numpy as 1 import numpy as np 2 2 from plotoptions import plotoptions 3 3 from plot_manager import plot_manager … … 27 27 hold = options.list[0].getfieldvalue('hold', False) 28 28 29 #if nrows and ncols specified, 29 #if nrows and ncols specified, then bypass 30 30 if options.list[0].exist('nrows'): 31 31 nrows = options.list[0].getfieldvalue('nrows') … … 46 46 #check that nrows and ncols were given at the same time! 47 47 if not nr == nc: 48 raise Exception('error: nrows and ncols need to be specified together, 48 raise Exception('error: nrows and ncols need to be specified together, or not at all') 49 49 50 50 #Go through plots … … 67 67 'off': 'None', 68 68 'one': 'single'} 69 69 # options needed to define plot grid 70 70 plotnum = options.numberofplots 71 71 if plotnum == 1: … … 76 76 share_all = options.list[0].getfieldvalue('share_all', True) # True, False 77 77 label_mode = options.list[0].getfieldvalue('label_mode', 'L') # 1, L, all 78 colorbar = options.list[0].getfieldvalue('colorbar', 'on') # on, 78 colorbar = options.list[0].getfieldvalue('colorbar', 'on') # on, off (single) 79 79 cbar_mode = translator[colorbar] 80 80 cbar_location = options.list[0].getfieldvalue('colorbarpos', 'right') # right, top … … 84 84 axgrid = ImageGrid(fig, 111, 85 85 nrows_ncols=(nrows, ncols), 86 #ngrids=plotnum,87 86 direction=direction, 88 87 axes_pad=axes_pad, -
issm/trunk-jpl/src/m/plot/processdata.py
r23716 r24213 1 import numpy as 1 import numpy as np 2 2 3 def processdata(md,data,options):4 """5 PROCESSDATA - process data to be plotted6 7 datatype = 1 -> elements8 datatype = 2 -> nodes9 datatype = 3 -> node quivers10 datatype = 4 -> patch11 12 Usage:13 data,datatype=processdata(md,data,options);14 15 See also: PLOTMODEL, PROCESSMESH16 """17 # {{{ Initialisation and grabbing auxiliaries18 # check format19 if (len(data)==0 or (len(data)==1 and not isinstance(data,dict) and np.isnan(data).all())):20 raise ValueError("processdata error message: 'data' provided is empty")21 # get the shape22 if 'numberofvertices2d' in dir(md.mesh):23 numberofvertices2d=md.mesh.numberofvertices2d24 numberofelements2d=md.mesh.numberofelements2d25 else:26 numberofvertices2d=np.nan27 numberofelements2d=np.nan28 procdata=np.copy(data)29 #initialize datatype30 datatype=031 # get datasize32 if np.ndim(procdata)==1:33 datasize=(np.shape(procdata)[0],1)34 elif np.ndim(procdata)==2:35 datasize=np.shape(procdata)36 elif np.ndim(procdata)==3:37 if np.shape(procdata)[0]==2:38 #treating a dim two list that needs to be stacked39 procdata=np.hstack((procdata[0,:,:],procdata[1,:,:]))40 datasize=np.shape(procdata)41 else:42 raise ValueError('data list contains more than two vectore, we can not cope with that')43 else:44 raise ValueError('data passed to plotmodel has bad dimensions; check that column vectors are rank-1')45 # }}}46 # {{{ process NaN's if any47 nanfill=options.getfieldvalue('nan',-9999)48 if np.any(np.isnan(procdata)):49 lb=np.nanmin(procdata)50 ub=np.nanmax(procdata)51 if lb==ub:52 lb=lb-0.553 ub=ub+0.554 nanfill=lb-155 #procdata[np.isnan(procdata)]=nanfill56 procdata=np.ma.array(procdata,mask=np.isnan(procdata))57 options.addfielddefault('clim',[lb,ub])58 options.addfielddefault('cmap_set_under','1')59 print(("WARNING: nan's treated as", nanfill, "by default. Change using pairoption 'nan',nan_fill_value in plotmodel call"))60 # }}}61 # {{{ log62 if options.exist('log'):63 cutoff=options.getfieldvalue('log',1)64 procdata[np.where(procdata<cutoff)]=cutoff65 # }}}66 # {{{ quiver plot67 if datasize[1]>1 and datasize[0]!= md.mesh.numberofvertices+1:68 if datasize[0]==md.mesh.numberofvertices and datasize[1]==2:69 datatype=370 else:71 raise ValueError('plotmodel error message: data should have two columns of length md.mesh.numberofvertices for a quiver plot')72 # }}}73 # {{{ element data74 3 75 if datasize[0]==md.mesh.numberofelements and datasize[1]==1: 76 #initialize datatype if non patch 77 if datatype!=4 and datatype!=5: 78 datatype=1 79 # {{{mask 80 if options.exist('mask'): 81 flags=options.getfieldvalue('mask') 82 hide=np.invert(flags) 83 if np.size(flags)==md.mesh.numberofvertices: 84 EltMask=np.asarray([np.any(np.in1d(index,np.where(hide))) for index in md.mesh.elements-1]) 85 procdata=np.ma.array(procdata,mask=EltMask) 86 options.addfielddefault('cmap_set_bad','w') 87 elif np.size(flags)==md.mesh.numberofelements: 88 procdata=np.ma.array(procdata,mask=hide) 89 options.addfielddefault('cmap_set_bad','w') 90 else: 91 print('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements') 92 # }}} 4 def processdata(md, data, options): 5 """ 6 PROCESSDATA - process data to be plotted 93 7 94 # }}} 95 # {{{ node data 96 if datasize[0]==md.mesh.numberofvertices and datasize[1]==1: 97 datatype=2 98 # {{{ Mask 99 if options.exist('mask'): 100 flags=options.getfieldvalue('mask') 101 hide=np.invert(flags) 102 if np.size(flags)==md.mesh.numberofvertices: 103 procdata=np.ma.array(procdata,mask=hide) 104 options.addfielddefault('cmap_set_bad','w') 105 elif np.size(flags)==md.mesh.numberofelements: 106 NodeMask=np.zeros(np.shape(md.mesh.x),dtype=bool) 107 HideElt=md.mesh.elements[np.where(hide)[0]]-1 108 NodeMask[HideElt]=True 109 procdata=np.ma.array(procdata,mask=NodeMask) 110 options.addfielddefault('cmap_set_bad','w') 111 else: 112 print('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements') 113 # }}} 114 # }}} 115 # {{{ spc time series 116 if datasize[0]==md.mesh.numberofvertices+1: 117 datatype=2 118 spccol=options.getfieldvalue('spccol',0) 119 print('multiple-column spc field; specify column to plot using option "spccol"') 120 print(('column ', spccol, ' plotted for time: ', procdata[-1,spccol])) 121 procdata=procdata[0:-1,spccol] 122 123 #mask? 124 8 datatype = 1 - > elements 9 datatype = 2 - > nodes 10 datatype = 3 - > node quivers 11 datatype = 4 - > patch 12 13 Usage: 14 data, datatype = processdata(md, data, options) 15 16 See also: PLOTMODEL, PROCESSMESH 17 """ 18 # {{{ Initialisation and grabbing auxiliaries 19 # check format 20 if (len(data) == 0 or (len(data) == 1 and not isinstance(data, dict) and np.isnan(data).all())): 21 raise ValueError("processdata error message: 'data' provided is empty") 22 # get the shape 23 if 'numberofvertices2d' in dir(md.mesh): 24 numberofvertices2d = md.mesh.numberofvertices2d 25 numberofelements2d = md.mesh.numberofelements2d 26 else: 27 numberofvertices2d = np.nan 28 numberofelements2d = np.nan 29 procdata = np.copy(data) 30 #initialize datatype 31 datatype = 0 32 # get datasize 33 if np.ndim(procdata) == 1: 34 datasize = (np.shape(procdata)[0], 1) 35 elif np.ndim(procdata) == 2: 36 datasize = np.shape(procdata) 37 elif np.ndim(procdata) == 3: 38 if np.shape(procdata)[0] == 2: 39 #treating a dim two list that needs to be stacked 40 procdata = np.hstack((procdata[0, :, :], procdata[1, :, :])) 41 datasize = np.shape(procdata) 42 else: 43 raise ValueError('data list contains more than two vectore, we can not cope with that') 44 else: 45 raise ValueError('data passed to plotmodel has bad dimensions; check that column vectors are rank - 1') 46 # }}} 47 # {{{ process NaN's if any 48 nanfill = options.getfieldvalue('nan', - 9999) 49 if np.any(np.isnan(procdata)): 50 lb = np.nanmin(procdata) 51 ub = np.nanmax(procdata) 52 if lb == ub: 53 lb = lb - 0.5 54 ub = ub + 0.5 55 nanfill = lb - 1 56 #procdata[np.isnan(procdata)] = nanfill 57 procdata = np.ma.array(procdata, mask=np.isnan(procdata)) 58 options.addfielddefault('clim', [lb, ub]) 59 options.addfielddefault('cmap_set_under', '1') 60 print(("WARNING: nan's treated as", nanfill, "by default. Change using pairoption 'nan', nan_fill_value in plotmodel call")) 61 # }}} 62 # {{{ log 63 if options.exist('log'): 64 cutoff = options.getfieldvalue('log', 1) 65 procdata[np.where(procdata < cutoff)] = cutoff 66 # }}} 67 # {{{ quiver plot 68 if datasize[1] > 1 and datasize[0] != md.mesh.numberofvertices + 1: 69 if datasize[0] == md.mesh.numberofvertices and datasize[1] == 2: 70 datatype = 3 71 else: 72 raise ValueError('plotmodel error message: data should have two columns of length md.mesh.numberofvertices for a quiver plot') 73 # }}} 74 # {{{ element data 75 76 if datasize[0] == md.mesh.numberofelements and datasize[1] == 1: 77 #initialize datatype if non patch 78 if datatype != 4 and datatype != 5: 79 datatype = 1 80 # {{{mask 81 if options.exist('mask'): 82 flags = options.getfieldvalue('mask') 83 hide = np.invert(flags) 84 if np.size(flags) == md.mesh.numberofvertices: 85 EltMask = np.asarray([np.any(np.in1d(index, np.where(hide))) for index in md.mesh.elements - 1]) 86 procdata = np.ma.array(procdata, mask=EltMask) 87 options.addfielddefault('cmap_set_bad', 'w') 88 elif np.size(flags) == md.mesh.numberofelements: 89 procdata = np.ma.array(procdata, mask=hide) 90 options.addfielddefault('cmap_set_bad', 'w') 91 else: 92 print('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements') 93 # }}} 94 95 # }}} 96 # {{{ node data 97 if datasize[0] == md.mesh.numberofvertices and datasize[1] == 1: 98 datatype = 2 99 # {{{ Mask 100 if options.exist('mask'): 101 flags = options.getfieldvalue('mask') 102 hide = np.invert(flags) 103 if np.size(flags) == md.mesh.numberofvertices: 104 procdata = np.ma.array(procdata, mask=hide) 105 options.addfielddefault('cmap_set_bad', 'w') 106 elif np.size(flags) == md.mesh.numberofelements: 107 NodeMask = np.zeros(np.shape(md.mesh.x), dtype=bool) 108 HideElt = md.mesh.elements[np.where(hide)[0]] - 1 109 NodeMask[HideElt] = True 110 procdata = np.ma.array(procdata, mask=NodeMask) 111 options.addfielddefault('cmap_set_bad', 'w') 112 else: 113 print('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements') 114 # }}} 115 # }}} 116 # {{{ spc time series 117 if datasize[0] == md.mesh.numberofvertices + 1: 118 datatype = 2 119 spccol = options.getfieldvalue('spccol', 0) 120 print('multiple-column spc field; specify column to plot using option "spccol"') 121 print(('column ', spccol, ' plotted for time: ', procdata[-1, spccol])) 122 procdata = procdata[0: - 1, spccol] 123 124 #mask? 125 125 126 #layer projection? 126 127 127 128 #control arrow density if quiver plot 128 # }}} 129 # {{{ convert rank-2 array to rank-1130 if np.ndim(procdata)==2 and np.shape(procdata)[1]==1:131 procdata=procdata.reshape(-1,)132 # }}} 133 134 if datatype==0:135 136 137 138 # }}}129 # }}} 130 # {{{ convert rank - 2 array to rank - 1 131 if np.ndim(procdata) == 2 and np.shape(procdata)[1] == 1: 132 procdata = procdata.reshape(- 1, ) 133 # }}} 134 # {{{ if datatype is still zero, error out 135 if datatype == 0: 136 raise ValueError("processdata error: data provided not recognized or not supported") 137 else: 138 return procdata, datatype 139 # }}} -
issm/trunk-jpl/src/m/plot/processmesh.py
r21440 r24213 1 from math import isnan 2 import numpy as np 1 import numpy as np 3 2 4 def processmesh(md,data,options):5 """6 PROCESSMESH - process the mesh for plotting7 8 Usage:9 x,y,z,elements,is2d=processmech(md,data,options)10 11 See also: PLOTMODEL, PROCESSDATA12 """13 14 # {{{ check mesh size parameters15 if md.mesh.numberofvertices==0:16 raise ValueError('processmesh error: mesh is empty')17 if md.mesh.numberofvertices==md.mesh.numberofelements:18 raise ValueError('processmesh error: the number of elements is the same as the number of nodes')19 # }}}20 # {{{ treating coordinates21 3 22 try: 23 z=md.mesh.z 24 except AttributeError: 25 z=np.zeros(np.shape(md.mesh.x)) 26 elements=md.mesh.elements-1 27 28 if options.getfieldvalue('layer',0)>=1: 29 x=md.mesh.x2d 30 y=md.mesh.y2d 31 z=np.zeros(np.shape(x)) 32 elements=md.mesh.elements2d-1 33 elif 'latlon' in options.getfieldvalue('coord','xy'): 34 x=md.mesh.long 35 y=md.mesh.lat 36 else: 37 x=md.mesh.x 38 y=md.mesh.y 4 def processmesh(md, data, options): 5 """ 6 PROCESSMESH - process the mesh for plotting 39 7 40 #is it a 2D plot? 41 if md.mesh.dimension()==2 or options.getfieldvalue('layer',0)>=1: 42 is2d=1 43 else: 44 is2d=0 45 46 #units 47 if options.exist('unit'): 48 unit=options.getfieldvalue('unit') 49 x=x*unit 50 y=y*unit 51 z=z*unit 8 Usage: 9 x, y, z, elements, is2d = processmech(md, data, options) 52 10 53 #is model a member of planet class? (workaround until planet class defined) 54 if md.__class__.__name__!='model': 55 isplanet=1 56 else: 57 isplanet=0 11 See also: PLOTMODEL, PROCESSDATA 12 """ 58 13 59 return x,y,z,elements,is2d,isplanet 14 # {{{ check mesh size parameters 15 if md.mesh.numberofvertices == 0: 16 raise ValueError('processmesh error: mesh is empty') 17 if md.mesh.numberofvertices == md.mesh.numberofelements: 18 raise ValueError('processmesh error: the number of elements is the same as the number of nodes') 19 # }}} 20 # {{{ treating coordinates 21 22 try: 23 z = md.mesh.z 24 except AttributeError: 25 z = np.zeros(np.shape(md.mesh.x)) 26 elements = md.mesh.elements - 1 27 28 if options.getfieldvalue('layer', 0) >= 1: 29 x = md.mesh.x2d 30 y = md.mesh.y2d 31 z = np.zeros(np.shape(x)) 32 elements = md.mesh.elements2d - 1 33 elif 'latlon' in options.getfieldvalue('coord', 'xy'): 34 x = md.mesh.long 35 y = md.mesh.lat 36 else: 37 x = md.mesh.x 38 y = md.mesh.y 39 40 #is it a 2D plot? 41 if md.mesh.dimension() == 2 or options.getfieldvalue('layer', 0) >= 1: 42 is2d = 1 43 else: 44 is2d = 0 45 46 #units 47 if options.exist('unit'): 48 unit = options.getfieldvalue('unit') 49 x = x * unit 50 y = y * unit 51 z = z * unit 52 53 #is model a member of planet class? (workaround until planet class defined) 54 if md.__class__.__name__ != 'model': 55 isplanet = 1 56 else: 57 isplanet = 0 58 59 return x, y, z, elements, is2d, isplanet -
issm/trunk-jpl/src/m/plot/writejsfield.py
r23716 r24213 1 1 import numpy as np 2 def writejsfield(fid,name,variable,nods): 3 #WRITEJSFIELD - write variable to javascript file 4 # 5 # Usage: 6 # writejsfield(fid,name,variable) 7 # 8 #write array: 9 #if not isinstance(variable, list): 10 if type(variable[0])==np.float64: 11 fid.write('<!-- {0}{{{{{{-->\n'.format(name)) 12 fid.write('{0}=['.format(name)) 13 for i in range(0, nods-1): 14 fid.write('{0},'.format(variable[i])) 15 fid.write('{0}];\n'.format(variable[-1])) 16 fid.write('<!--}}}}}}-->\n') 17 else: 18 #multi-sized array: 19 fid.write('<!-- {0}{{{{{{-->\n'.format(name)) 20 fid.write('{0}=[]\n'.format(name)) 21 for i in range(0, len(variable[2])): 22 fid.write('{0}["{1}"]=['.format(name,i)) 23 for j in range(1, nods-1): 24 fid.write('{0},'.format(variable[j][i])) 25 fid.write('{0}];\n'.format(variable[-1][i])) 26 fid.write('<!--}}}}}}-->\n') 2 3 4 def writejsfield(fid, name, variable, nods): 5 #WRITEJSFIELD - write variable to javascript file 6 # 7 # Usage: 8 # writejsfield(fid, name, variable) 9 # 10 #write array: 11 #if not isinstance(variable, list): 12 if type(variable[0]) == np.float64: 13 fid.write('<!-- {0}{{{{{{-->\n'.format(name)) 14 fid.write('{0}=['.format(name)) 15 for i in range(0, nods - 1): 16 fid.write('{0}, '.format(variable[i])) 17 fid.write('{0}];\n'.format(variable[-1])) 18 fid.write('<!--}}}}}}-->\n') 19 else: 20 #multi - sized array: 21 fid.write('<!-- {0}{{{{{{-->\n'.format(name)) 22 fid.write('{0} = []\n'.format(name)) 23 for i in range(0, len(variable[2])): 24 fid.write('{0}["{1}"] = ['.format(name, i)) 25 for j in range(1, nods - 1): 26 fid.write('{0}, '.format(variable[j][i])) 27 fid.write('{0}];\n'.format(variable[-1][i])) 28 fid.write('<!--}}}}}}-->\n') -
issm/trunk-jpl/src/m/plot/writejsfile.py
r23716 r24213 1 1 import numpy as np 2 2 from writejsfield import writejsfield 3 def writejsfile(filename,model,keyname):4 #WRITEJSFILE - write model file to javascript database5 #6 # Usage:7 # writejsfile(filename,model,keyname)8 #9 3 10 nods=len(model.x)11 nel=len(model.index)12 nx=len(model.contourx1)13 print(filename)14 fid=open(filename,'w', 0)15 4 16 fid.write('model = {};\n') 17 fid.write('model["title"]="{0}";\n'.format(model.title)) 18 fid.write('model["initialZoomFactor"]={0};\n'.format(model.initialZoomFactor)) 19 #write index: 20 fid.write('<!-- model["index"]{{{-->\n') 21 fid.write('model["index"]=[') 22 for i in range(0, nel-1): 23 fid.write('[{0}, {1}, {2}],'.format(model.index[i][0],model.index[i][1],model.index[i][2])) 24 fid.write('[{0}, {1}, {2}]];\n'.format(model.index[-1][0],model.index[-1][1],model.index[-1][2])) 25 fid.write('<!--}}}-->\n') 26 print('writing model coordinates') 27 writejsfield(fid,'model["x"]',model.x,nods) 28 writejsfield(fid,'model["y"]',model.y,nods) 29 writejsfield(fid,'model["z"]',model.z,nods) 30 writejsfield(fid,'model["surface"]',model.surface,nods) 31 writejsfield(fid,'model["contourx1"]',model.contourx1,nx) 32 writejsfield(fid,'model["contoury1"]',model.contoury1,nx) 33 writejsfield(fid,'model["contourz1"]',model.contourz1,nx) 34 writejsfield(fid,'model["contourx2"]',model.contourx2,nx) 35 writejsfield(fid,'model["contoury2"]',model.contoury2,nx) 36 writejsfield(fid,'model["contourz2"]',model.contourz2,nx) 5 def writejsfile(filename, model, keyname): 6 #WRITEJSFILE - write model file to javascript database 7 # 8 # Usage: 9 # writejsfile(filename, model, keyname) 10 # 37 11 38 print('writing results') 39 results=model.results 40 fid.write('results={};\n') 12 nods = len(model.x) 13 nel = len(model.index) 14 nx = len(model.contourx1) 15 print(filename) 16 fid = open(filename, 'w', 0) 41 17 42 for i in range(0,len(results)): 43 fid.write('result={};\n') 44 writejsfield(fid,'result["data"]',results[i].data,nods) 45 fid.write('<!--{{{-->\n') 46 fid.write('result["caxis"]=[{0},{1}];\n'.format(results[i].caxis[0],results[i].caxis[1])) 47 fid.write('result["label"]="{0}";\n'.format(results[i].label)) 48 fid.write('result["shortlabel"]="{0}";\n'.format(results[i].shortlabel)) 49 fid.write('result["unit"]="{0}";\n'.format(results[i].unit)) 50 if type(results[i].data)==np.float64: 51 fid.write('result["time_range"]=[{0},{1}];\n'.format(results[i].time_range[0],results[i].time_range[1])) 52 fid.write('results["{0}"]=result;\n'.format(i)) 53 fid.write('<!--}}}-->\n') 54 fid.write('model.results=results;\n') 55 fid.write('models["{0}"]=model;\n'.format(keyname)) 18 fid.write('model = {};\n') 19 fid.write('model["title"] = "{0}";\n'.format(model.title)) 20 fid.write('model["initialZoomFactor"]={0};\n'.format(model.initialZoomFactor)) 21 #write index: 22 fid.write(' < ! - - model["index"]{{{ - - > \n') 23 fid.write('model["index"] = [') 24 for i in range(0, nel - 1): 25 fid.write('[{0}, {1}, {2}], '.format(model.index[i][0], model.index[i][1], model.index[i][2])) 26 fid.write('[{0}, {1}, {2}]];\n'.format(model.index[-1][0], model.index[-1][1], model.index[-1][2])) 27 fid.write(' < ! - - }}} - - > \n') 28 print('writing model coordinates') 29 writejsfield(fid, 'model["x"]', model.x, nods) 30 writejsfield(fid, 'model["y"]', model.y, nods) 31 writejsfield(fid, 'model["z"]', model.z, nods) 32 writejsfield(fid, 'model["surface"]', model.surface, nods) 33 writejsfield(fid, 'model["contourx1"]', model.contourx1, nx) 34 writejsfield(fid, 'model["contoury1"]', model.contoury1, nx) 35 writejsfield(fid, 'model["contourz1"]', model.contourz1, nx) 36 writejsfield(fid, 'model["contourx2"]', model.contourx2, nx) 37 writejsfield(fid, 'model["contoury2"]', model.contoury2, nx) 38 writejsfield(fid, 'model["contourz2"]', model.contourz2, nx) 56 39 57 fid.close() 40 print('writing results') 41 results = model.results 42 fid.write('results={};\n') 43 44 for i in range(0, len(results)): 45 fid.write('result={};\n') 46 writejsfield(fid, 'result["data"]', results[i].data, nods) 47 fid.write(' < ! - - {{{ - - > \n') 48 fid.write('result["caxis"] = [{0}, {1}];\n'.format(results[i].caxis[0], results[i].caxis[1])) 49 fid.write('result["label"] = "{0}";\n'.format(results[i].label)) 50 fid.write('result["shortlabel"] = "{0}";\n'.format(results[i].shortlabel)) 51 fid.write('result["unit"] = "{0}";\n'.format(results[i].unit)) 52 if type(results[i].data) == np.float64: 53 fid.write('result["time_range"] = [{0}, {1}];\n'.format(results[i].time_range[0], results[i].time_range[1])) 54 fid.write('results["{0}"] = result;\n'.format(i)) 55 fid.write(' < ! - - }}} - - > \n') 56 fid.write('model.results = results;\n') 57 fid.write('models["{0}"] = model;\n'.format(keyname)) 58 59 fid.close() -
issm/trunk-jpl/src/m/qmu/dakota_in_data.py
r23716 r24213 6 6 from MatlabFuncs import * 7 7 8 def dakota_in_data(dmeth,variables,responses,dparams,filei,*args): 9 ''' 8 9 def dakota_in_data(dmeth, variables, responses, dparams, filei, *args): 10 ''' 10 11 define the data to write the dakota .in and .m files. 11 12 12 [] =dakota_in_data(dmeth,variables,responses,dparams,filei,*args)13 [] = dakota_in_data(dmeth, variables, responses, dparams, filei, *args) 13 14 14 15 where the required input is: … … 16 17 variables (structure array, variable class objects) 17 18 responses (structure array, response class objects) 18 dparams (structure array, method -independent parameters)19 dparams (structure array, method - independent parameters) 19 20 filei (character, name of .in and .m files) 20 21 … … 29 30 it collects the parameters and applies some defaults that 30 31 are unique to the environment. second, some analysis package 31 variables and /or responses may be treated differently by32 variables and / or responses may be treated differently by 32 33 dakota. for example, an analysis package variable may be 33 34 defined as an array, so the QmuSetupDesign brancher will … … 42 43 ''' 43 44 44 ## parameters45 46 params=dakota_in_params(struct())47 48 49 fnames=fieldnames(dparams)45 # parameters 46 # get default set of parameters 47 params = dakota_in_params(struct()) 48 # merge specified parameters into default set, whether or not 49 # they already exist 50 fnames = fieldnames(dparams) 50 51 51 52 if not isfield(params,fieldname):53 54 52 for fieldname in fnames: 53 if not isfield(params, fieldname): 54 print('WARNING: dakota_in_data:unknown_param: No parameter {} in default parameter set.'.format(str(fieldname))) 55 exec('params.{} = vars(dparams)[fieldname]'.format(fieldname)) 55 56 56 57 58 params.analysis_driver='matlab'57 # use matlab even though we are running python 58 if params.direct and params.analysis_driver == '': 59 params.analysis_driver = 'matlab' 59 60 60 if strcmpi(params.analysis_driver,'matlab') and params.analysis_components == '':61 [pathstr,name,ext] = fileparts(filei)62 params.analysis_components=fullfile(pathstr,name+'.py')61 if strcmpi(params.analysis_driver, 'matlab') and params.analysis_components == '': 62 [pathstr, name, ext] = fileparts(filei) 63 params.analysis_components = fullfile(pathstr, name + '.py') 63 64 64 65 # dmeth=dmeth_params_merge(dmeth,dparams)65 # merge method parameters, though they shouldn't be in dparams 66 # dmeth = dmeth_params_merge(dmeth, dparams) 66 67 67 ## variables68 fnames=fieldnames(variables)68 # variables 69 fnames = fieldnames(variables) 69 70 70 # works like matlab arbitrary structs/classes, remembers order of input attributes71 72 71 # works like matlab arbitrary structs / classes, remembers order of input attributes 72 dvar = OrderedStruct() 73 dresp = OrderedStruct() 73 74 74 75 76 exec(('dvar.%s = vars(variables)[fnames[i]]')%(fnames[i]))75 for i in range(len(fnames)): 76 # currently all variable types can just be copied 77 exec(('dvar.%s = vars(variables)[fnames[i]]') % (fnames[i])) 77 78 78 ## responses79 fnames=fieldnames(responses)79 # responses 80 fnames = fieldnames(responses) 80 81 81 82 83 exec(('dresp.%s = vars(responses)[fnames[i]]')%(fnames[i]))82 for i in range(len(fnames)): 83 # currently all response types can just be copied 84 exec(('dresp.%s = vars(responses)[fnames[i]]') % (fnames[i])) 84 85 85 86 ## write files 87 #Write in file 88 dakota_in_write(dmeth,dvar,dresp,params,filei,*args) 86 # write files 87 #Write in file 88 dakota_in_write(dmeth, dvar, dresp, params, filei, *args) -
issm/trunk-jpl/src/m/qmu/dakota_in_params.py
r23716 r24213 1 1 from dakota_in_data import * 2 3 2 #move this later: 4 3 from helpers import * 5 4 5 6 6 def dakota_in_params(params): 7 7 ''' 8 8 populate a Dakota parameter structure. 9 9 10 params =dakota_in_params(params)10 params = dakota_in_params(params) 11 11 12 12 where the optional input is: 13 params (structure array, method -independent parameters)13 params (structure array, method - independent parameters) 14 14 15 15 and the output is the same. 16 16 17 this function takes a structure of method -independent dakota17 this function takes a structure of method - independent dakota 18 18 parameters, which may be empty, and adds default parameters 19 19 for those parameters which do not exist. … … 25 25 or absence. 26 26 27 note that the method -dependent parameters are contained in27 note that the method - dependent parameters are contained in 28 28 the dakota_method class object. 29 29 ''' 30 if params ==None:31 32 30 if params is None: 31 help(dakota_in_params) 32 return 33 33 34 ## process the input parameters35 36 params=struct()34 # process the input parameters 35 if len(fieldnames(params)) == 0: 36 params = struct() 37 37 38 ## strategy section39 if not isfield(params,'graphics'):40 params.graphics=False38 # strategy section 39 if not isfield(params, 'graphics'): 40 params.graphics = False 41 41 42 if not isfield(params,'tabular_graphics_data'):43 params.tabular_graphics_data=False42 if not isfield(params, 'tabular_graphics_data'): 43 params.tabular_graphics_data = False 44 44 45 46 if not isfield(params,'tabular_graphics_file'):47 params.tabular_graphics_file=False45 # could use unique file name rather than 'dakota_tabular.dat' 46 if not isfield(params, 'tabular_graphics_file'): 47 params.tabular_graphics_file = False 48 48 49 ## method section50 51 52 if not isfield(params,'compute'):53 params.compute='probabilities'49 # method section 50 # nearly all method parameters are in the dakota_method class 51 # or result from the response level lists 52 if not isfield(params, 'compute'): 53 params.compute = 'probabilities' 54 54 55 if not isfield(params,'distribution'):56 params.distribution='cumulative'55 if not isfield(params, 'distribution'): 56 params.distribution = 'cumulative' 57 57 58 ## model section58 # model section 59 59 60 ## interface section61 if not isfield(params,'system'):62 params.system=False60 # interface section 61 if not isfield(params, 'system'): 62 params.system = False 63 63 64 if not isfield(params,'fork'):65 params.fork=False64 if not isfield(params, 'fork'): 65 params.fork = False 66 66 67 if not isfield(params,'direct'):68 params.direct=False67 if not isfield(params, 'direct'): 68 params.direct = False 69 69 70 71 if not isfield(params,'asynchronous'):72 params.asynchronous=True70 # interface parallelism controls 71 if not isfield(params, 'asynchronous'): 72 params.asynchronous = True 73 73 74 if not isfield(params,'evaluation_concurrency'):75 params.evaluation_concurrency=False74 if not isfield(params, 'evaluation_concurrency'): 75 params.evaluation_concurrency = False 76 76 77 if not isfield(params,'analysis_concurrency'):78 params.analysis_concurrency=False77 if not isfield(params, 'analysis_concurrency'): 78 params.analysis_concurrency = False 79 79 80 if not isfield(params,'evaluation_servers'):81 params.evaluation_servers=False80 if not isfield(params, 'evaluation_servers'): 81 params.evaluation_servers = False 82 82 83 if not isfield(params,'evaluation_self_scheduling'):84 params.evaluation_self_scheduling=False83 if not isfield(params, 'evaluation_self_scheduling'): 84 params.evaluation_self_scheduling = False 85 85 86 if not isfield(params,'evaluation_static_scheduling'):87 params.evaluation_static_scheduling=True86 if not isfield(params, 'evaluation_static_scheduling'): 87 params.evaluation_static_scheduling = True 88 88 89 if not isfield(params,'evaluation_scheduling'):90 params.evaluation_scheduling=False89 if not isfield(params, 'evaluation_scheduling'): 90 params.evaluation_scheduling = False 91 91 92 if not isfield(params,'processors_per_evaluation'):93 params.processors_per_evaluation=False92 if not isfield(params, 'processors_per_evaluation'): 93 params.processors_per_evaluation = False 94 94 95 if not isfield(params,'analysis_servers'):96 params.analysis_servers=False95 if not isfield(params, 'analysis_servers'): 96 params.analysis_servers = False 97 97 98 if not isfield(params,'analysis_self_scheduling'):99 params.analysis_self_scheduling=False98 if not isfield(params, 'analysis_self_scheduling'): 99 params.analysis_self_scheduling = False 100 100 101 if not isfield(params,'analysis_static_scheduling'):102 params.analysis_static_scheduling=False101 if not isfield(params, 'analysis_static_scheduling'): 102 params.analysis_static_scheduling = False 103 103 104 105 if not isfield(params,'algebraic_mappings'):106 params.algebraic_mappings=False104 # algebraic mappings 105 if not isfield(params, 'algebraic_mappings'): 106 params.algebraic_mappings = False 107 107 108 109 if not isfield(params,'analysis_driver'):110 params.analysis_driver=''108 # simulation interface controls 109 if not isfield(params, 'analysis_driver'): 110 params.analysis_driver = '' 111 111 112 if not isfield(params,'analysis_components'):113 params.analysis_components=''112 if not isfield(params, 'analysis_components'): 113 params.analysis_components = '' 114 114 115 if not isfield(params,'input_filter'):116 params.input_filter=''115 if not isfield(params, 'input_filter'): 116 params.input_filter = '' 117 117 118 if not isfield(params,'output_filter'):119 params.output_filter=''118 if not isfield(params, 'output_filter'): 119 params.output_filter = '' 120 120 121 if not isfield(params,'failure_capture'):122 params.failure_capture='abort'121 if not isfield(params, 'failure_capture'): 122 params.failure_capture = 'abort' 123 123 124 if not isfield(params,'deactivate'):125 params.deactivate='evaluation_cache restart_file'124 if not isfield(params, 'deactivate'): 125 params.deactivate = 'evaluation_cache restart_file' 126 126 127 128 if not isfield(params,'parameters_file'):129 params.parameters_file='params.in'127 # system call or fork interface 128 if not isfield(params, 'parameters_file'): 129 params.parameters_file = 'params.in' 130 130 131 if not isfield(params,'results_file'):132 params.results_file='results.out'131 if not isfield(params, 'results_file'): 132 params.results_file = 'results.out' 133 133 134 if not isfield(params,'verbatim'):135 params.verbatim=False134 if not isfield(params, 'verbatim'): 135 params.verbatim = False 136 136 137 if not isfield(params,'aprepro'):138 params.aprepro=False137 if not isfield(params, 'aprepro'): 138 params.aprepro = False 139 139 140 if not isfield(params,'file_tag'):141 params.file_tag=True140 if not isfield(params, 'file_tag'): 141 params.file_tag = True 142 142 143 if not isfield(params,'file_save'):144 params.file_save=True143 if not isfield(params, 'file_save'): 144 params.file_save = True 145 145 146 147 if not isfield(params,'processors_per_analysis'):148 params.processors_per_analysis=False146 # direct function interface 147 if not isfield(params, 'processors_per_analysis'): 148 params.processors_per_analysis = False 149 149 150 ## responses section151 if not isfield(params,'numerical_gradients'):152 params.numerical_gradients=False150 # responses section 151 if not isfield(params, 'numerical_gradients'): 152 params.numerical_gradients = False 153 153 154 if not isfield(params,'method_source'):155 params.method_source='dakota'154 if not isfield(params, 'method_source'): 155 params.method_source = 'dakota' 156 156 157 if not isfield(params,'interval_type'):158 params.interval_type='forward'157 if not isfield(params, 'interval_type'): 158 params.interval_type = 'forward' 159 159 160 if not isfield(params,'fd_gradient_step_size'):161 params.fd_gradient_step_size=0.001160 if not isfield(params, 'fd_gradient_step_size'): 161 params.fd_gradient_step_size = 0.001 162 162 163 if not isfield(params,'analytic_gradients'):164 params.analytic_gradients=False163 if not isfield(params, 'analytic_gradients'): 164 params.analytic_gradients = False 165 165 166 167 if not isfield(params,'mixed_gradients'):168 params.mixed_gradients=False166 # mixed_gradients not fully implemented 167 if not isfield(params, 'mixed_gradients'): 168 params.mixed_gradients = False 169 169 170 if not isfield(params,'id_analytic_gradients'):171 params.id_analytic_gradients=False170 if not isfield(params, 'id_analytic_gradients'): 171 params.id_analytic_gradients = False 172 172 173 if not isfield(params,'id_numerical_gradients'):174 params.id_numerical_gradients=False173 if not isfield(params, 'id_numerical_gradients'): 174 params.id_numerical_gradients = False 175 175 176 177 if not isfield(params,'numerical_hessians'):178 params.numerical_hessians=True176 # hessians not fully implemented 177 if not isfield(params, 'numerical_hessians'): 178 params.numerical_hessians = True 179 179 180 if not isfield(params,'hessian_gradient_step_size'):181 params.hessian_gradient_step_size=0.001180 if not isfield(params, 'hessian_gradient_step_size'): 181 params.hessian_gradient_step_size = 0.001 182 182 183 183 return params -
issm/trunk-jpl/src/m/qmu/dakota_in_write.py
r23735 r24213 11 11 import itertools 12 12 13 def dakota_in_write(method,dvar,dresp,params,filei,*args): 14 ''' 13 14 def dakota_in_write(method, dvar, dresp, params, filei, *args): 15 ''' 15 16 write a Dakota .in input file. 16 17 17 [] =dakota_in_write(method,dvar,dresp,params,filei,args)18 [] =dakota_in_write(dmeth ,dvar,dresp,params,filei,args)18 [] = dakota_in_write(method, dvar, dresp, params, filei, args) 19 [] = dakota_in_write(dmeth , dvar, dresp, params, filei, args) 19 20 20 21 where the required input is: … … 23 24 dvar (structure array, variable class objects) 24 25 dresp (structure array, response class objects) 25 params (structure array, method -indepent parameters)26 params (structure array, method - indepent parameters) 26 27 filei (character, name of .in file) 27 28 … … 41 42 ''' 42 43 43 # process the input parameters 44 if len(fieldnames(method)) == 0: 45 method=str(eval(input('Method? '))) 46 47 if type(method) == str: 48 dmeth=dakota_method(method) 49 elif isinstance(method,dakota_method): 50 dmeth=method 51 else: 52 raise RuntimeError('Method '+str(method)+' is unrecognized class '+str(type(method))+'. (should be either "str" or "dakota_method")') 53 54 if len(filei) == 0: 55 filei=str(eval(input('Dakota input file to write? '))) 56 57 [pathstr,name,ext] = fileparts(filei) 58 if len(ext) == 0: 59 # fileparts only considers '.in' to be the extension, not '.qmu.in' 60 ext='.qmu.in' 61 62 filei2=fullfile(pathstr,name+ext) 63 64 print('Opening Dakota input file \''+filei2 + '\'.') 65 try: 66 with open(filei2,'w+') as fidi: 67 68 if len(fieldnames(params)) == 0: 69 params=struct() 70 71 params=dakota_in_params(params) 72 73 # write the strategy section 74 if float(IssmConfig('_DAKOTA_VERSION_')[0]) < 6: 75 strategy_write(fidi,params) 76 else: 77 environment_write(fidi,params) 78 79 # write the method section 80 method_write(fidi,dmeth,dresp,params) 81 82 # write the model section 83 model_write(fidi) 84 85 # write the variables section 86 variables_write(fidi,dmeth,dvar) 87 88 # write the interface section 89 interface_write(fidi,params) 90 91 # write the responses section 92 responses_write(fidi,dmeth,dresp,params) 93 94 except IOError: 95 print(filei2 + ' could not be opened.') 96 97 print('End of file successfully written.') 98 99 100 ## function to write the strategy section of the file 101 102 def strategy_write(fidi,params): 103 104 print('Writing strategy section of Dakota input file.') 105 106 fidi.write('strategy,\n') 107 fidi.write('\tsingle_method\n\n') 108 param_write(fidi,'\t ','graphics','','\n',params) 109 param_write(fidi,'\t ','tabular_graphics_data','','\n',params) 110 param_write(fidi,'\t ','tabular_graphics_file',' ','\n',params) 111 fidi.write('\n') 112 113 114 ## function to write the environment section of the file 115 116 def environment_write(fidi,params): 117 118 print('Writing environment section of Dakota input file.') 119 120 fidi.write('environment,\n') 121 param_write(fidi,'\t ','graphics','','\n',params) 122 param_write(fidi,'\t ','tabular_graphics_data','','\n',params) 123 param_write(fidi,'\t ','tabular_graphics_file',' ','\n',params) 124 fidi.write('\n') 125 126 127 ## function to write the method section of the file 128 129 def method_write(fidi,dmeth,dresp,params): 130 131 print('Writing method section of Dakota input file.') 132 133 fidi.write('method,\n') 134 fidi.write('\t'+str(dmeth.method)+'\n') 135 136 dmeth_params_write(dmeth,fidi) 137 138 # write response levels 139 140 if strcmp(dmeth.type,'nond'): 141 for i in range(len(dmeth.responses)): 142 str_name = dmeth.responses[i] 143 resp = eval("{}.{}()".format(str_name,str_name)) 144 resp.dakota_rlev_write(fidi,dresp,params) 145 146 fidi.write('\n') 147 148 149 ## function to write the model section of the file 150 44 # process the input parameters 45 if len(fieldnames(method)) == 0: 46 method = str(eval(input('Method? '))) 47 48 if type(method) == str: 49 dmeth = dakota_method(method) 50 elif isinstance(method, dakota_method): 51 dmeth = method 52 else: 53 raise RuntimeError('Method ' + str(method) + ' is unrecognized class ' + str(type(method)) + '. (should be either "str" or "dakota_method")') 54 55 if len(filei) == 0: 56 filei = str(eval(input('Dakota input file to write? '))) 57 58 [pathstr, name, ext] = fileparts(filei) 59 if len(ext) == 0: 60 # fileparts only considers '.in' to be the extension, not '.qmu.in' 61 ext = '.qmu.in' 62 63 filei2 = fullfile(pathstr, name + ext) 64 65 print('Opening Dakota input file \'' + filei2 + '\'.') 66 try: 67 with open(filei2, 'w+') as fidi: 68 69 if len(fieldnames(params)) == 0: 70 params = struct() 71 72 params = dakota_in_params(params) 73 74 # write the strategy section 75 if float(IssmConfig('_DAKOTA_VERSION_')[0]) < 6: 76 strategy_write(fidi, params) 77 else: 78 environment_write(fidi, params) 79 80 # write the method section 81 method_write(fidi, dmeth, dresp, params) 82 # write the model section 83 model_write(fidi) 84 # write the variables section 85 variables_write(fidi, dmeth, dvar) 86 # write the interface section 87 interface_write(fidi, params) 88 # write the responses section 89 responses_write(fidi, dmeth, dresp, params) 90 91 except IOError: 92 print(filei2 + ' could not be opened.') 93 94 print('End of file successfully written.') 95 96 97 # function to write the strategy section of the file 98 def strategy_write(fidi, params): 99 100 print('Writing strategy section of Dakota input file.') 101 102 fidi.write('strategy, \n') 103 fidi.write('\tsingle_method\n\n') 104 param_write(fidi, '\t ', 'graphics', '', '\n', params) 105 param_write(fidi, '\t ', 'tabular_graphics_data', '', '\n', params) 106 param_write(fidi, '\t ', 'tabular_graphics_file', ' ', '\n', params) 107 fidi.write('\n') 108 109 110 # function to write the environment section of the file 111 def environment_write(fidi, params): 112 113 print('Writing environment section of Dakota input file.') 114 115 fidi.write('environment, \n') 116 param_write(fidi, '\t ', 'graphics', '', '\n', params) 117 param_write(fidi, '\t ', 'tabular_graphics_data', '', '\n', params) 118 param_write(fidi, '\t ', 'tabular_graphics_file', ' ', '\n', params) 119 fidi.write('\n') 120 121 122 # function to write the method section of the file 123 def method_write(fidi, dmeth, dresp, params): 124 125 print('Writing method section of Dakota input file.') 126 127 fidi.write('method, \n') 128 fidi.write('\t' + str(dmeth.method) + '\n') 129 130 dmeth_params_write(dmeth, fidi) 131 132 # write response levels 133 134 if strcmp(dmeth.type, 'nond'): 135 for i in range(len(dmeth.responses)): 136 str_name = dmeth.responses[i] 137 resp = eval("{}.{}()".format(str_name, str_name)) 138 resp.dakota_rlev_write(fidi, dresp, params) 139 140 fidi.write('\n') 141 142 143 # function to write the model section of the file 151 144 def model_write(fidi): 152 145 153 print('Writing model section of Dakota input file.') 154 155 fidi.write('model,\n') 156 fidi.write('\tsingle\n\n') 157 158 159 ## function to write the variables section of the file 160 161 def variables_write(fidi,dmeth,dvar): 162 163 print('Writing variables section of Dakota input file.') 164 165 fidi.write('variables,\n') 166 167 # variables vary by method 168 fd = fieldnames(dvar) 169 types = [] 170 var = [] 171 for i in range(len(fd)): 172 i_type = eval('dvar.{}[0].__class__.__name__'.format(fd[i])) 173 j = dmeth.variables.index(i_type) 174 str_name = dmeth.variables[j] 175 176 # organize so that multiple instances of the same qmu class 177 # (2 different variable instances of "normal_uncertain" for example) 178 # are in the same dakota_write call regardless of individual size; 179 # but that each class has its own dakota_write call 180 if str_name not in types: 181 types.append(str_name) 182 var.append(eval('dvar.{}'.format(fd[i]))) 183 else: 184 t = types.index(str_name) 185 var[t].extend(eval('dvar.{}'.format(fd[i]))) 186 187 for t in range(len(types)): 188 v = eval('{}.{}()'.format(types[t],types[t])) 189 v.dakota_write(fidi,var[t]) 190 191 # linear constraints vary by method 192 fc = dmeth.lcspec 193 194 for i in range(len(dmeth.lcspec)): 195 str_name = dmeth.lcspec[i] 196 var = eval('{}.{}()'.format(str_name,str_name)) 197 # check that str_name is correct against matlab version which has no argument there 198 var.dakota_write(fidi,eval('dvar.{}[i]'.format(j)),str_name) 199 200 fidi.write('\n') 201 202 203 ## function to write the interface section of the file 204 205 def interface_write(fidi,params): 206 207 print('Writing interface section of Dakota input file.') 208 209 fidi.write('interface,\n') 210 211 if (not params.system) and (not params.fork) and (not params.direct): 212 params.fork=True 213 elif params.system+params.fork+params.direct > 1: 214 raise RuntimeError('Too many interfaces selected.') 215 if params.system or params.fork: 216 param_write(fidi,'\t','asynchronous','','\n',params) 217 param_write(fidi,'\t ','evaluation_concurrency',' = ','\n',params) 218 param_write(fidi,'\t ','analysis_concurrency',' = ','\n',params) 219 param_write(fidi,'\t ','evaluation_servers',' = ','\n',params) 220 param_write(fidi,'\t ','evaluation_self_scheduling','','\n',params) 221 param_write(fidi,'\t ','evaluation_static_scheduling','','\n',params) 222 param_write(fidi,'\t ','analysis_servers',' = ','\n',params) 223 param_write(fidi,'\t ','analysis_self_scheduling','','\n',params) 224 param_write(fidi,'\t ','analysis_static_scheduling','','\n',params) 225 param_write(fidi,'\t','algebraic_mappings',' = ','\n',params) 226 param_write(fidi,'\t','system','','\n',params) 227 param_write(fidi,'\t','fork','','\n',params) 228 param_write(fidi,'\t ','analysis_driver',' = \'','\'\n',params) 229 if len(params.input_filter) != 0: 230 param_write(fidi,'\t ','input_filter',' = ','\n',params) 231 232 if len(params.output_filter) != 0: 233 param_write(fidi,'\t ','output_filter',' = ','\n',params) 234 235 param_write(fidi,'\t ','failure_capture',' ','\n',params) 236 param_write(fidi,'\t ','deactivate',' ','\n',params) 237 param_write(fidi,'\t ','parameters_file',' = \'','\'\n',params) 238 param_write(fidi,'\t ','results_file',' = \'','\'\n',params) 239 param_write(fidi,'\t ','verbatim', '','\n',params) 240 param_write(fidi,'\t ','aprepro', '','\n',params) 241 param_write(fidi,'\t ','file_tag', '','\n',params) 242 param_write(fidi,'\t ','file_save','','\n',params) 243 elif params.direct: 244 # Error: asynchronous capability not yet supported in direct interfaces. 245 # Update: it is now possible to run in parallel in direct interfaces. 246 param_write(fidi,'\t','algebraic_mappings',' = ','\n',params) 247 param_write(fidi,'\t','direct','','\n',params) 248 param_write(fidi,'\t ','analysis_driver',' = \'','\'\n',params) 249 if float(IssmConfig('_DAKOTA_VERSION_')[0]) < 6: 250 param_write(fidi,'\t ','evaluation_static_scheduling','','\n',params) 251 else: 252 param_write(fidi,'\t ','evaluation_scheduling',' ','\n',params) 253 param_write(fidi,'\t ','processors_per_evaluation',' = ','\n',params) 254 if len(params.analysis_components) != 0: 255 [pathstr,name,ext] = fileparts(params.analysis_components) 256 if ext != '': 257 ext='.py' 258 259 params.analysis_components=fullfile(pathstr,name+ext) 260 param_write(fidi,'\t ','analysis_components',' = \'','\'\n',params) 261 262 if len(params.input_filter) != 0: 263 param_write(fidi,'\t ','input_filter',' = ','\n',params) 264 265 if len(params.output_filter) != 0: 266 param_write(fidi,'\t ','output_filter',' = ','\n',params) 267 268 param_write(fidi,'\t ','failure_capture',' ','\n',params) 269 param_write(fidi,'\t ','deactivate',' ','\n',params) 270 param_write(fidi,'\t ','processors_per_analysis',' = ','\n',params) 271 272 fidi.write('\n') 273 274 275 ## function to write the responses section of the file 276 277 def responses_write(fidi,dmeth,dresp,params): 278 279 print('Writing responses section of Dakota input file.') 280 281 fidi.write('responses,\n') 282 #fidi.write('calibration_terms = 1 \n') 283 284 # functions, gradients, and hessians vary by method 285 286 rdesc=[] 287 288 for i in range(len(dmeth.responses)): 289 resp = eval(dmeth.responses[i]) 290 rdesc = resp.dakota_write(fidi,dresp,rdesc) 291 292 # write accumulated response descriptors for all response classes 293 294 if len(rdesc) != 0: 295 fidi.write('\tresponse_descriptors =\n') 296 vector_write(fidi,'\t ',rdesc,6,76) 297 298 ghspec_write(fidi,params,dmeth.ghspec) 299 300 fidi.write('\n') 301 302 303 ## function to write gradient and hessian specifications 304 305 def ghspec_write(fidi,params,ghspec): 306 307 # gradients 308 if 'grad' in ghspec: 309 if (not params.numerical_gradients) and (not params.analytic_gradients): 310 params.numerical_gradients=True 311 elif (params.numerical_gradients+params.analytic_gradients > 1): 312 raise RuntimeError('Too many gradients selected.') 313 314 if params.numerical_gradients: 315 param_write(fidi,'\t','numerical_gradients','','\n',params) 316 param_write(fidi,'\t ','method_source',' ','\n',params) 317 param_write(fidi,'\t ','interval_type',' ','\n',params) 318 param_write(fidi,'\t ','fd_gradient_step_size',' = ','\n',params) 319 elif params.analytic_gradients: 320 param_write(fidi,'\t','analytic_gradients','','\n',params) 321 # elif params.mixed_gradients 322 else: 323 fidi.write('\tno_gradients\n') 324 325 # hessians (no implemented methods use them yet) 326 if 'hess' in ghspec: 327 raise RuntimeError('Hessians needed by method but not provided.') 328 else: 329 fidi.write('\tno_hessians\n') 146 print('Writing model section of Dakota input file.') 147 148 fidi.write('model, \n') 149 fidi.write('\tsingle\n\n') 150 151 152 # function to write the variables section of the file 153 def variables_write(fidi, dmeth, dvar): 154 155 print('Writing variables section of Dakota input file.') 156 157 fidi.write('variables, \n') 158 159 # variables vary by method 160 fd = fieldnames(dvar) 161 types = [] 162 var = [] 163 for i in range(len(fd)): 164 i_type = eval('dvar.{}[0].__class__.__name__'.format(fd[i])) 165 j = dmeth.variables.index(i_type) 166 str_name = dmeth.variables[j] 167 168 # organize so that multiple instances of the same qmu class 169 # (2 different variable instances of "normal_uncertain" for example) 170 # are in the same dakota_write call regardless of individual size 171 # but that each class has its own dakota_write call 172 if str_name not in types: 173 types.append(str_name) 174 var.append(eval('dvar.{}'.format(fd[i]))) 175 else: 176 t = types.index(str_name) 177 var[t].extend(eval('dvar.{}'.format(fd[i]))) 178 179 for t in range(len(types)): 180 v = eval('{}.{}()'.format(types[t], types[t])) 181 v.dakota_write(fidi, var[t]) 182 183 # linear constraints vary by method 184 fc = dmeth.lcspec 185 186 for i in range(len(dmeth.lcspec)): 187 str_name = dmeth.lcspec[i] 188 var = eval('{}.{}()'.format(str_name, str_name)) 189 # check that str_name is correct against matlab version which has no argument there 190 var.dakota_write(fidi, eval('dvar.{}[i]'.format(j)), str_name) 191 192 fidi.write('\n') 193 194 195 # function to write the interface section of the file 196 def interface_write(fidi, params): 197 198 print('Writing interface section of Dakota input file.') 199 200 fidi.write('interface, \n') 201 202 if (not params.system) and (not params.fork) and (not params.direct): 203 params.fork = True 204 elif params.system + params.fork + params.direct > 1: 205 raise RuntimeError('Too many interfaces selected.') 206 if params.system or params.fork: 207 param_write(fidi, '\t', 'asynchronous', '', '\n', params) 208 param_write(fidi, '\t ', 'evaluation_concurrency', '=', '\n', params) 209 param_write(fidi, '\t ', 'analysis_concurrency', '=', '\n', params) 210 param_write(fidi, '\t ', 'evaluation_servers', '=', '\n', params) 211 param_write(fidi, '\t ', 'evaluation_self_scheduling', '', '\n', params) 212 param_write(fidi, '\t ', 'evaluation_static_scheduling', '', '\n', params) 213 param_write(fidi, '\t ', 'analysis_servers', '=', '\n', params) 214 param_write(fidi, '\t ', 'analysis_self_scheduling', '', '\n', params) 215 param_write(fidi, '\t ', 'analysis_static_scheduling', '', '\n', params) 216 param_write(fidi, '\t', 'algebraic_mappings', '=', '\n', params) 217 param_write(fidi, '\t', 'system', '', '\n', params) 218 param_write(fidi, '\t', 'fork', '', '\n', params) 219 param_write(fidi, '\t ', 'analysis_driver', ' = \'', '\'\n', params) 220 if len(params.input_filter) != 0: 221 param_write(fidi, '\t ', 'input_filter', '=', '\n', params) 222 223 if len(params.output_filter) != 0: 224 param_write(fidi, '\t ', 'output_filter', '=', '\n', params) 225 226 param_write(fidi, '\t ', 'failure_capture', ' ', '\n', params) 227 param_write(fidi, '\t ', 'deactivate', ' ', '\n', params) 228 param_write(fidi, '\t ', 'parameters_file', ' = \'', '\'\n', params) 229 param_write(fidi, '\t ', 'results_file', ' = \'', '\'\n', params) 230 param_write(fidi, '\t ', 'verbatim', '', '\n', params) 231 param_write(fidi, '\t ', 'aprepro', '', '\n', params) 232 param_write(fidi, '\t ', 'file_tag', '', '\n', params) 233 param_write(fidi, '\t ', 'file_save', '', '\n', params) 234 elif params.direct: 235 # Error: asynchronous capability not yet supported in direct interfaces. 236 # Update: it is now possible to run in parallel in direct interfaces. 237 param_write(fidi, '\t', 'algebraic_mappings', '=', '\n', params) 238 param_write(fidi, '\t', 'direct', '', '\n', params) 239 param_write(fidi, '\t ', 'analysis_driver', ' = \'', '\'\n', params) 240 if float(IssmConfig('_DAKOTA_VERSION_')[0]) < 6: 241 param_write(fidi, '\t ', 'evaluation_static_scheduling', '', '\n', params) 242 else: 243 param_write(fidi, '\t ', 'evaluation_scheduling', ' ', '\n', params) 244 param_write(fidi, '\t ', 'processors_per_evaluation', '=', '\n', params) 245 if len(params.analysis_components) != 0: 246 [pathstr, name, ext] = fileparts(params.analysis_components) 247 if ext != '': 248 ext = '.py' 249 250 params.analysis_components = fullfile(pathstr, name + ext) 251 param_write(fidi, '\t ', 'analysis_components', ' = \'', '\'\n', params) 252 253 if len(params.input_filter) != 0: 254 param_write(fidi, '\t ', 'input_filter', '=', '\n', params) 255 256 if len(params.output_filter) != 0: 257 param_write(fidi, '\t ', 'output_filter', '=', '\n', params) 258 259 param_write(fidi, '\t ', 'failure_capture', ' ', '\n', params) 260 param_write(fidi, '\t ', 'deactivate', ' ', '\n', params) 261 param_write(fidi, '\t ', 'processors_per_analysis', '=', '\n', params) 262 263 fidi.write('\n') 264 265 266 # function to write the responses section of the file 267 def responses_write(fidi, dmeth, dresp, params): 268 269 print('Writing responses section of Dakota input file.') 270 271 fidi.write('responses, \n') 272 #fidi.write('calibration_terms = 1 \n') 273 274 # functions, gradients, and hessians vary by method 275 276 rdesc = [] 277 278 for i in range(len(dmeth.responses)): 279 resp = eval(dmeth.responses[i]) 280 rdesc = resp.dakota_write(fidi, dresp, rdesc) 281 282 # write accumulated response descriptors for all response classes 283 284 if len(rdesc) != 0: 285 fidi.write('\tresponse_descriptors =\n') 286 vector_write(fidi, '\t ', rdesc, 6, 76) 287 288 ghspec_write(fidi, params, dmeth.ghspec) 289 290 fidi.write('\n') 291 292 293 # function to write gradient and hessian specifications 294 def ghspec_write(fidi, params, ghspec): 295 296 # gradients 297 if 'grad' in ghspec: 298 if (not params.numerical_gradients) and (not params.analytic_gradients): 299 params.numerical_gradients = True 300 elif (params.numerical_gradients + params.analytic_gradients > 1): 301 raise RuntimeError('Too many gradients selected.') 302 303 if params.numerical_gradients: 304 param_write(fidi, '\t', 'numerical_gradients', '', '\n', params) 305 param_write(fidi, '\t ', 'method_source', ' ', '\n', params) 306 param_write(fidi, '\t ', 'interval_type', ' ', '\n', params) 307 param_write(fidi, '\t ', 'fd_gradient_step_size', '=', '\n', params) 308 elif params.analytic_gradients: 309 param_write(fidi, '\t', 'analytic_gradients', '', '\n', params) 310 # elif params.mixed_gradients 311 else: 312 fidi.write('\tno_gradients\n') 313 314 # hessians (no implemented methods use them yet) 315 if 'hess' in ghspec: 316 raise RuntimeError('Hessians needed by method but not provided.') 317 else: 318 fidi.write('\tno_hessians\n') -
issm/trunk-jpl/src/m/qmu/dakota_out_parse.py
r23716 r24213 1 1 import numpy as np 2 3 from os.path import isfile,getsize 2 from os.path import isfile, getsize 4 3 import re 5 6 4 from MatlabFuncs import * 7 5 from prctile_issm import * … … 10 8 from helpers import * 11 9 12 #Note: this may be re-written later to take advantage of Python's file i/o mechanics 13 # as it is written now it is often difficult to work with, but is analagous to 14 # the Matlab version of dakota_out_parse 15 16 def dakota_out_parse(filei): # [[[ 17 ''' 10 #Note: this may be re-written later to take advantage of Python's file i / o mechanics 11 # as it is written now it is often difficult to work with, but is analagous to 12 # the Matlab version of dakota_out_parse 13 14 15 def dakota_out_parse(filei): # {{{ 16 ''' 18 17 read a Dakota .out or .dat output file and parse it. 19 18 20 [method, dresp,scm,pcm,srcm,prcm]=dakota_out_parse(filei)19 [method, dresp, scm, pcm, srcm, prcm] = dakota_out_parse(filei) 21 20 22 21 where the required input is: … … 39 38 40 39 this function reads a dakota .out output file and parses it 41 into the matlab workspace. it operates in a content -driven40 into the matlab workspace. it operates in a content - driven 42 41 fashion, where it skips the intermediate data and then parses 43 42 whatever output data it encounters in the order in which it … … 47 46 48 47 this data would typically be used for plotting and other 49 post -processing within matlab or excel.48 post - processing within matlab or excel. 50 49 ''' 51 if filei == None: 52 help(dakota_out_parse) 53 return 54 55 if not isfile(filei) or getsize(filei) == 0: 56 filei=str(eval(input('Input file? '))) 57 58 #fidi=fopen(sprintf('%s',filei),'r') 59 #try: 60 with open(filei, 'r') as fidi: 61 ## check the first line for the Dakota tabular output file 62 method=[] 63 fline=fidi.readline() 64 if getsize(filei) == 0 or fline == '': 65 raise RuntimeError('File '+filei+' is empty.') 66 67 dresp=[] # of struct() 68 scm =struct() 69 pcm =struct() 70 srcm=struct() 71 prcm=struct() 72 73 if strncmpi(fline,'%eval_id',8): 74 method='unknown' 75 dresp=dak_tab_out(fidi,fline) 76 return [method,dresp,scm,pcm,srcm,prcm] 77 else: 78 fidi.seek(0,0) 79 80 ## loop through the file to find the Dakota method name 81 fline=findline(fidi,'method',True) 82 if fline == None: 83 #do nothing 84 pass 85 else: 86 if fline[6] == ',': 87 fline = fidi.readline() 88 [ntokens,tokens]=fltokens(fline) 89 method=tokens[0].strip() 90 print('Dakota method =\''+method+'\'.') 91 elif fline[6] in ['N','n']: 92 fline=findline(fidi,'methodName = '); 93 [ntokens,tokens]=fltokens(fline) 94 method=tokens[2].strip() 95 print('Dakota methodName="'+method+'".') 96 97 ## loop through the file to find the function evaluation summary 98 counter = 0 99 fline='' 100 nfeval=nfeval_read(fidi,fline) 101 102 ## process each results section based on content of the file 103 while counter < 10: 104 # because python makes file i/o difficult 105 # if we see 10+ blank lines in a row then we have reached EOF 106 # (tests show actual maximum number of blank lines is around 5) 107 if counter >= 10: 108 break 109 if fline == '' or fline.isspace(): 110 counter += 1 111 else: 112 counter = 0 113 114 #print fline 115 # ipos=ftell(fidi) 116 fline = fidi.readline() 117 if fline == '' or fline.isspace(): 118 pass 119 elif strncmp(fline,'<<<<< Function evaluation summary',33): 120 nfeval=nfeval_read(fidi,fline) 121 elif strncmp(fline,'Statistics based on ',20): 122 nsamp=nsamp_read(fidi,fline) 123 elif strncmp(fline,'Moments for each response function',34): 124 dresp=moments_read(fidi,dresp,fline) 125 elif strncmp(fline,'Moment-based statistics for each response function',50): 126 dresp=mbstats_read(fidi,dresp,fline) 127 elif strncmp(fline,'95% confidence intervals for each response function',51): 128 dresp=cis_read(fidi,dresp,fline) 129 elif strncmp(fline,'Probabilities for each response function',40) or strncmp(fline,'Level mappings for each response function',41): 130 dresp=cdfs_read(fidi,dresp,fline) 131 elif strncmp(fline,'Probability Density Function (PDF) histograms for each response function',72): 132 dresp=pdfs_read(fidi,dresp,fline) 133 elif strncmp(fline,'Simple Correlation Matrix',25): 134 scm=corrmat_read(fidi,'Simple Correlation Matrix',fline) 135 elif strncmp(fline,'Partial Correlation Matrix',26): 136 pcm=corrmat_read(fidi,'Partial Correlation Matrix',fline) 137 elif strncmp(fline,'Simple Rank Correlation Matrix',30): 138 srcm=corrmat_read(fidi,'Simple Rank Correlatio:n Matrix',fline) 139 elif strncmp(fline,'Partial Rank Correlation Matrix',31): 140 prcm=corrmat_read(fidi,'Partial Rank Correlation Matrix',fline) 141 elif strncmp(fline,'MV Statistics for ',18): 142 dresp=mvstats_read(fidi,dresp,fline) 143 elif strncmp(fline,'<<<<< Best ',11): 144 dresp=best_read(fidi,dresp,fline) 145 elif strncmp(fline,'The following lists volumetric uniformity measures',50): 146 dresp=vum_read(fidi,dresp,fline) 147 elif strncmp(fline,'<<<<< Iterator ',15) and (len(fline) > 26) and (' completed.' in fline[15:]): 148 method=itcomp_read(fidi,fline) 149 elif strncmp(fline,'-----',5): 150 pass 151 else: 152 'Unexpected line: '+str(fline) 153 154 # fidi.seek(ipos,0) 155 156 ## loop through the file to verify the end 157 158 # fline=findline(fidi,'<<<<< Single Method Strategy completed') 159 # if not ischar(fline) 160 # return 161 # 162 print('End of file successfully reached.') 163 #close(fidi) 164 #except Exception as err: 165 #print "ERROR in dakota_out_parse: " + err 166 #raise err 167 #raise RuntimeError(filei+' could not be opened.') 168 169 return [method,dresp,scm,pcm,srcm,prcm] 170 # ]]] 171 172 def dak_tab_out(fidi,fline): # [[[ 173 ## function to parse the dakota tabular output file 174 175 print('Reading Dakota tabular output file.') 176 177 # process column headings of matrix (skipping eval_id) 178 [ntokens,tokens]=fltokens(fline) 179 180 # New file DAKOTA versions>6 181 if strncmpi(fline,'%eval_id interface',18): 182 offset=2 183 else: #DAKOTA versions<6 184 offset=1 185 186 desc=[['' for i in range(ntokens-offset)]] 187 data=np.zeros((1,ntokens-offset)) 188 189 for i in range(ntokens-offset): 190 desc[0][i]=str(tokens[i+offset]) 191 192 print("Number of columns (Dakota V+R)="+str(ntokens-2)+'.') 193 194 # process rows of matrix 195 nrow=0 196 while True: 197 198 fline=fidi.readline() 199 200 if fline == '' or fline.isspace(): 201 break 202 203 if nrow > 0: 204 data = np.concatenate((data,[np.zeros(ntokens-offset)])) 205 206 [ntokens,tokens]=fltokens(fline) 207 208 # add row values to matrix (skipping eval_id) 209 210 for i in range(ntokens-offset): 211 data[nrow,i] = tokens[i+offset] 212 213 nrow=nrow+1 214 215 print('Number of rows (Dakota func evals)='+str(nrow)+'.') 216 217 # calculate statistics 218 219 # since normfit doesn't have a dim argument, and matlab isvector is True 220 # for a 1xn matrix, handle the case of one row explicitly 221 222 # Update: normfit_issm.py does handle this case 223 if (np.size(data,0) > 1): 224 #dmean =mean (data) 225 #dstddev=std (data,0) 226 [dmean,dstddev,dmeanci,dstddevci]=normfit_issm(data,0.05) 227 else: 228 dmean =np.zeros((1,np.size(data,1))) 229 dstddev =np.zeros((1,np.size(data,1))) 230 dmeanci =np.zeros((2,np.size(data,1))) 231 dstddevci=np.zeros((2,np.size(data,1))) 232 for i in range(np.size(data,1)): 233 [dmean[0,i],dstddev[0,i],dmeanci[:,i],dstddevci[:,i]]=normfit_issm(data[:,i],0.05) 234 235 dmin =data.min(0) 236 dquart1=prctile_issm(data,25,0) 237 dmedian=np.median(data,0) 238 dquart3=prctile_issm(data,75,0) 239 dmax =data.max(0) 240 dmin95 =prctile_issm(data,5,0) 241 dmax95 =prctile_issm(data,95,0) 242 243 # Note: the following line may cause the following warning 244 # (should not crash or invalidate results) when one of 245 # the inputs does not change with respect to the 246 # other/s causing an internal divide-by-zero error 247 248 #/usr/local/lib/python2.7/dist-packages/numpy/lib/function_base.py:3163: 249 # RuntimeWarning: invalid value encountered in true_divide 250 # c /= stddev[:,None] 251 252 # (and/or the same but with "c /= stddev[None, :]") 253 254 dcorrel=np.corrcoef(data.T) 255 256 # divide the data into structures for consistency 257 dresp = [] 258 259 for i in range(len(desc)): 260 dresp.append(struct()) 261 dresp[i].descriptor=str(desc[i]) 262 dresp[i].sample =data[:,i] 263 dresp[i].mean =dmean[i] 264 dresp[i].stddev =dstddev[i] 265 dresp[i].meanci =dmeanci[:,i] 266 dresp[i].stddevci =dstddevci[:,i] 267 dresp[i].min =dmin[i] 268 dresp[i].quart1 =dquart1[i] 269 dresp[i].median =dmedian[i] 270 dresp[i].quart3 =dquart3[i] 271 dresp[i].max =dmax[i] 272 dresp[i].dmin95 =dmin95[i] 273 dresp[i].dmax95 =dmax95[i] 274 275 # draw box plot 276 277 # figure 278 # subplot(2,1,1) 279 # plot_boxplot(dresp) 280 281 # draw normal probability plot 282 283 # subplot(2,1,2) 284 # plot_normplot(dresp) 285 286 return dresp 287 # ]]] 288 289 def nfeval_read(fidi,fline): # [[[ 290 ## function to find and read the number of function evaluations 291 292 if fline == None or fline == '' or fline.isspace(): 293 fline=findline(fidi,'<<<<< Function evaluation summary') 294 nfeval = 0 295 return 296 297 [ntokens,tokens]=fltokens(fline) 298 nfeval=tokens[4] 299 print(' Dakota function evaluations='+str(int(nfeval))+'.') 300 301 return nfeval 302 # ]]] 303 304 def nsamp_read(fidi,fline): # [[[ 305 ## function to find and read the number of samples 306 307 if fline == None or fline == '' or fline.isspace(): 308 fline=findline(fidi,'Statistics based on ') 309 return 310 311 [ntokens,tokens]=fltokens(fline) 312 nsamp=tokens[3] 313 print(' Dakota samples='+str(int(nsamp))+'.') 314 315 return nsamp 316 # ]]] 317 318 def moments_read(fidi,dresp,fline): # [[[ 319 ## function to find and read the moments 320 321 if fline == None or fline == '' or fline.isspace(): 322 fline=findline(fidi,'Moments for each response function') 323 return 324 325 print('Reading moments for response functions:') 326 327 while True: 328 fline=fidi.readline() 329 if fline == '' or fline.isspace(): 330 break 331 332 [ntokens,tokens]=fltokens(fline) 333 334 # add new response function and moments 335 336 dresp.append(struct()) 337 dresp[-1].descriptor=tokens[ 0] 338 print(' '+str(dresp[-1].descriptor)) 339 dresp[-1].mean =tokens[ 3] 340 dresp[-1].stddev =tokens[ 6] 341 dresp[-1].coefvar =tokens[12] 342 343 print(' Number of Dakota response functions='+str(len(dresp))+'.') 344 345 return dresp 346 # ]]] 347 348 def mbstats_read(fidi,dresp,fline): # [[[ 349 ## function to find and read the moment-based statistics 350 351 if fline == None or fline == '' or fline.isspace(): 352 fline=findline(fidi,'Moment-based statistics for each response function') 353 return 354 355 print('Reading moment-based statistics for response functions:') 356 357 # skip column headings of moment-based statistics 358 359 fline=fidi.readline() 360 361 while True: 362 fline=fidi.readline() 363 if fline == '' or fline.isspace(): 364 break 365 366 [ntokens,tokens]=fltokens(fline) 367 368 # add new response function and moment-based statistics 369 370 dresp.append(struct()) 371 dresp[-1].descriptor=tokens[ 0] 372 print(' '+str(dresp[-1].descriptor)) 373 dresp[-1].mean =tokens[ 1] 374 dresp[-1].stddev =tokens[ 2] 375 dresp[-1].skewness =tokens[ 3] 376 dresp[-1].kurtosis =tokens[ 4] 377 378 print(' Number of Dakota response functions='+str(len(dresp))+'.') 379 380 return dresp 381 # ]]] 382 383 def cis_read(fidi,dresp,fline): # [[[ 384 ## function to find and read the confidence intervals 385 386 if fline == None or fline == '' or fline.isspace(): 387 fline=findline(fidi,'95% confidence intervals for each response function') 388 return 389 390 print('Reading 95% confidence intervals for response functions:') 391 392 while True: 393 fline=fidi.readline() 394 if fline == '' or fline.isspace(): 395 break 396 397 [ntokens,tokens]=fltokens(fline) 398 399 # check for column headings in Dakota 5.2 400 401 if (ntokens == 4): 402 fline=fidi.readline() 403 if fline == '' or fline.isspace(): 404 break 405 406 [ntokens,tokens]=fltokens(fline) 407 408 # find response function associated with confidence intervals 409 410 idresp=-1 411 for i in range(len(dresp)): 412 if strcmpi(tokens[0],dresp[i].descriptor): 413 idresp=i 414 break 415 416 if idresp < 0: 417 idresp=len(dresp) 418 dresp.append(struct()) 419 dresp[idresp].descriptor=tokens[0] 420 print(' '+str(dresp[idresp].descriptor)) 421 422 # add confidence intervals to response functions 423 dresp[i].meanci = np.array([[np.nan],[np.nan]]) 424 dresp[i].stddevci = np.array([[np.nan],[np.nan]]) 425 426 if (ntokens == 14): 427 dresp[i].meanci [0,0]=tokens[ 4] 428 dresp[i].meanci [1,0]=tokens[ 5] 429 dresp[i].stddevci[0,0]=tokens[11] 430 dresp[i].stddevci[1,0]=tokens[12] 431 else: 432 dresp[i].meanci [0,0]=tokens[ 1] 433 dresp[i].meanci [1,0]=tokens[ 2] 434 dresp[i].stddevci[0,0]=tokens[ 3] 435 dresp[i].stddevci[1,0]=tokens[ 4] 436 437 print(' Number of Dakota response functions='+str(len(dresp))+'.') 438 439 return dresp 440 # ]]] 441 442 def cdfs_read(fidi,dresp,fline): # [[[ 443 ## function to find and read the cdf's 444 445 if fline == None or fline == '' or fline.isspace(): 446 fline=findline(fidi,'Probabilities for each response function') 447 if fline == None: 448 fline=findline(fidi,'Level mappings for each response function') 449 if fline == None: 450 return 451 452 print('Reading CDF''s for response functions:') 453 454 while fline == '' or fline.isspace(): 455 fline=fidi.readline() 456 if fline == '' or fline.isspace(): 457 break 458 459 # process header line of cdf 460 461 while (fline != '' and not fline.isspace()): 462 [ntokens,tokens]=fltokens(fline) 463 464 # find response function associated with cdf 465 # idresp is an index, so it can be 0, default to -1 466 idresp=-1 467 for i in range(len(dresp)): 468 if strcmpi(tokens[ 5],dresp[i].descriptor): 469 idresp=i 470 break 471 472 473 if idresp < 0: 474 idresp=len(dresp) 475 dresp.append(struct()) 476 dresp[idresp].descriptor=tokens[ 5] 477 print(' '+str(dresp(idresp).descriptor)) 478 479 480 # skip column headings of cdf 481 482 fline=fidi.readline() 483 fline=fidi.readline() 484 485 # read and add cdf table to response function 486 487 fline=fidi.readline() 488 icdf=0 489 while (fline != '' and not fline.isspace()) and not strncmpi(fline,'Cumulative Distribution Function',32): 490 [ntokens,tokens]=fltokens(fline) 491 icdf=icdf+1 492 dresp[idresp].cdf = np.zeros((icdf,4)) 493 dresp[idresp].cdf[icdf-1,0:4]=np.nan 494 # in later versions of Dakota, uncalculated columns are now blank 495 itoken=0 496 for i in range(len(fline)/19): 497 if not isempty(fline[(i-1)*19:i*19]): 498 itoken=itoken+1 499 dresp[idresp].cdf[icdf-1,i]=tokens[itoken] 500 501 fline=fidi.readline() 502 503 print(' Number of Dakota response functions='+str(len(dresp))+'.') 504 505 return dresp 506 # ]]] 507 508 def pdfs_read(fidi,dresp,fline): # [[[ 509 ## function to find and read the pdf's 510 511 if fline == None or fline == '' or fline.isspace(): 512 fline=findline(fidi,'Probability Density Function (PDF) histograms for each response function') 513 return 514 515 print('Reading PDF''s for response functions:') 516 517 while (fline != '' and not fline.isspace()): 518 fline=fidi.readline() 519 if fline == '' or fline.isspace(): 520 break 521 522 523 # process header line of pdf 524 525 while (fline != '' and not fline.isspace()): 526 [ntokens,tokens]=fltokens(fline) 527 528 # find response function associated with pdf 529 # idresp is an index, so it can be 0, default to -1 530 idresp=-1 531 for i in range(len(dresp)): 532 if strcmpi(tokens[ 2],dresp[i].descriptor): 533 idresp=i 534 break 535 536 537 if idresp < 0: 538 idresp=len(dresp) 539 dresp.append(struct) 540 dresp[idresp].descriptor=tokens[ 2] 541 print(' '+str(dresp[idresp].descriptor)) 542 543 544 # skip column headings of pdf 545 546 fline=fidi.readline() 547 fline=fidi.readline() 548 549 # read and add pdf table to response function 550 551 fline=fidi.readline() 552 ipdf=0 553 while (fline != '' and not fline.isspace()) and not strncmpi(fline,'PDF for', 7): 554 [ntokens,tokens]=fltokens(fline) 555 ipdf=ipdf+1 556 dresp[idresp].pdf = np.zeros((ipdf,4)) 557 dresp[idresp].pdf[ipdf-1,0:3]=np.nan 558 for i in range(3): 559 dresp[idresp].pdf[ipdf-1,i]=tokens[i] 560 561 fline=fidi.readline() 562 563 print(' Number of Dakota response functions='+str(len(dresp))+'.') 564 565 return dresp 566 # ]]] 567 568 def corrmat_read(fidi,cmstr,fline): # [[[ 569 ## function to find and read a correlation matrix 570 571 if fline == None or fline == '' or fline.isspace(): 572 fline=findline(fidi,cmstr) 573 if fline == '' or fline.isspace(): 574 cmat=struct() 575 return 576 577 print('Reading ' +fline+ '.') 578 579 cmat.title=fline 580 581 while (fline != '' and not fline.isspace()): 582 fline=fidi.readline() 583 if fline == '' or fline.isspace(): 584 break 585 586 # process column headings of matrix 587 588 [ntokens,tokens]=fltokens(fline) 589 cmat.column= np.empty((1,ntokens)) 590 cmat.column.fill(0.0) 591 cmat.row = np.empty((1,1)) 592 cmat.row.fill(0.0) 593 cmat.matrix=np.zeros((1,ntokens)) 594 595 for i in range(ntokens): 596 cmat.column[1,i]=str(tokens[i]) 597 598 # process rows of matrix, reading until blank line 599 600 nrow=0 601 while True: 602 fline=fidi.readline() 603 if fline == '' or fline.isspace(): 604 break 605 606 [ntokens,tokens]=fltokens(fline) 607 608 # add row heading to matrix 609 610 nrow=nrow+1 611 cmat.row[nrow-1,0]=str(tokens[0]) 612 613 # add row values to matrix 614 615 for i in range(1,ntokens): 616 cmat.matrix[nrow-1,i-1]=tokens[i] 617 618 return cmat 619 # ]]] 620 621 def mvstats_read(fidi,dresp,fline): # [[[ 622 ## function to find and read the MV statistics 623 624 if fline == None or fline == '' or fline.isspace(): 625 fline=findline(fidi,'MV Statistics for ') 626 if fline == None: 627 return 628 629 print('Reading MV statistics for response functions:') 630 631 ndresp=0 632 633 while (fline != '' and not fline.isspace()) and strncmpi(fline,'MV Statistics for ',18): 634 635 # add new response function and moments 636 637 [ntokens,tokens]=fltokens(fline) 638 dresp.append(struct()) 639 dresp[-1].descriptor=tokens[3] 640 print(' '+str(dresp[-1].descriptor)) 641 fline=fidi.readline() 642 [ntokens,tokens]=fltokens(fline) 643 dresp[-1].mean =tokens[4] 644 fline=fidi.readline() 645 [ntokens,tokens]=fltokens(fline) 646 dresp[-1].stddev =tokens[6] 647 648 # read and add importance factors to response function 649 650 idvar=0 651 fline=fidi.readline() 652 if fline == '' or fline.isspace(): 653 break 654 655 # shape: [[0],[0],[0]...] 656 dresp[-1].var = [] 657 dresp[-1].impfac = [] 658 dresp[-1].sens = [] 659 660 while (fline != '' and not fline.isspace()) and strncmpi(fline,' Importance Factor for variable ',33): 661 [ntokens,tokens]=fltokens(fline) 662 idvar=idvar+1 663 dresp[-1].var.append(str(tokens[4])) 664 dresp[-1].impfac.append(tokens[6]) 665 if (ntokens >= 10): 666 dresp[-1].sens.append(tokens[9]) 667 else: 668 dresp[-1].sens.append(np.nan) 669 670 671 fline=fidi.readline() 672 673 # if importance factors missing, skip to cdf 674 675 if not idvar: 676 print(' Importance Factors not available.') 677 dresp[-1].var =[] 678 dresp[-1].impfac=[] 679 dresp[-1].sens =[] 680 while type(fline) == str and (fline != '' and not fline.isspace()) and not strncmpi(fline,'Cumulative Distribution Function',32) and not strncmpi(fline,'MV Statistics for ',18) and not strncmp(fline,'-',1): 681 fline=fidi.readline() 682 683 # process header line of cdf 684 685 icdf=0 686 687 # If there is a warning it MAY involve a lot of spaces; skip over them 688 if fline == '' or fline.isspace(): 689 fline=fidi.readline() 690 # Usually: "Warning: negligible standard deviation renders CDF results suspect." 691 if strncmpi(fline,'Warn',4): 692 fline = fidi.readline() 693 if fline == '' or fline.isspace(): 694 fline = fidi.readline() 695 696 while (fline != '' and not fline.isspace()) and strncmpi(fline,'Cumulative Distribution Function',32): 697 [ntokens,tokens]=fltokens(fline) 698 699 # find response function associated with cdf 700 # idresp is an index, so it can be 0, default to -1 701 idresp=-1 702 for i in range(len(dresp)): 703 if strcmpi(tokens[ 5],dresp[i].descriptor): 704 idresp=i 705 break 706 707 if idresp < 0: 708 idresp=len(dresp) 709 dresp.append(struct()) 710 dresp[idresp].descriptor=tokens[ 5] 711 print(' '+str(dresp[idresp].descriptor)) 712 713 # skip column headings of cdf 714 fline=fidi.readline() 715 fline=fidi.readline() 716 717 # read and add cdf table to response function 718 719 fline=fidi.readline() 720 while (fline != '' and not fline.isspace()) and not strncmpi(fline,'MV Statistics for ',18) and not strncmp (fline,'-',1): 721 [ntokens,tokens]=fltokens(fline) 722 icdf=icdf+1 723 dresp[idresp].cdf = np.zeros((icdf,4)) 724 dresp[idresp].cdf[icdf-1,0]=tokens[0] 725 dresp[idresp].cdf[icdf-1,1]=tokens[1] 726 if (ntokens == 4): 727 dresp[idresp].cdf[icdf-1,2]=tokens[2] 728 dresp[idresp].cdf[icdf-1,3]=tokens[3] 729 else: 730 dresp[idresp].cdf[icdf-1,2]=np.nan 731 dresp[idresp].cdf[icdf-1,3]=np.nan 732 733 fline=fidi.readline() 734 735 # if cdf missing, skip to end of response function 736 737 if not icdf: 738 print(' Cumulative Distribution Function not available.') 739 dresp[ndresp].cdf=[] 740 while (fline != '' and not fline.isspace()) and not strncmpi(fline,'MV Statistics for ',18) and not strncmp (fline,'-',1): 741 fline=fidi.readline() 742 743 print(' Number of Dakota response functions='+str(len(dresp))+'.') 744 745 return dresp 746 # ]]] 747 748 def best_read(fidi,dresp,fline): # [[[ 749 ## function to find and read the best evaluation 750 751 if fline == None or fline == '' or fline.isspace(): 752 fline=findline(fidi,'<<<<< Best ') 753 if fline == None: 754 return 755 756 if isempty(dresp): 757 dresp.append(struct()) 758 dresp[-1].best=struct() 759 760 print('Reading values for best function evaluation:') 761 762 while (fline != '' and not fline.isspace()) and strncmpi(fline,'<<<<< Best ',11): 763 [ntokens,tokens]=fltokens(fline) 764 765 # read and add best parameter(s) 766 767 if strncmpi(str(tokens[2]),'parameter', 9): 768 print(' '+fline) 769 770 fline=fidi.readline() 771 dresp.best.param =[] 772 dresp.best.descriptor='' 773 774 while (fline != '' and not fline.isspace()) and not strncmpi(fline,'<<<<< Best ',11): 775 [ntokens,tokens]=fltokens(fline) 776 dresp.best.param.append([0]) 777 dresp.best.param[-1]= tokens[0] 778 dresp.best.descriptor= str(tokens[1]) 779 fline=fidi.readline() 780 781 # read and add best objective function(s) 782 783 elif strncmpi(str(tokens[2]),'objective', 9) and strncmpi(str(tokens[3]),'function' , 8): 784 print(' '+fline) 785 786 fline=fidi.readline() 787 dresp.best.of=[] 788 789 while (fline != '' and not fline.isspace()) and not strncmpi(fline,'<<<<< Best ',11): 790 [ntokens,tokens]=fltokens(fline) 791 dresp.best.of.append(0) 792 dresp.best.of[-1]=tokens[0] 793 fline=fidi.readline() 794 795 # read and add best residual norms 796 797 elif strncmpi(str(tokens[2]),'residual', 8) and strncmpi(str(tokens[3]),'norm' , 4): 798 print(' '+fline) 799 dresp.best.norm = tokens[ 5] 800 dresp.best.hnormsq= tokens[10] 801 802 fline=fidi.readline() 803 804 while (fline != '' and not fline.isspace()) and not strncmpi(fline,'<<<<< Best ',11): 805 fline=fidi.readline() 806 807 # read and add best residual term(s) 808 809 elif strncmpi(str(tokens[2]),'residual', 8) and strncmpi(str(tokens[3]),'term' , 4): 810 print(' '+fline) 811 812 fline=fidi.readline() 813 dresp.best.res=[] 814 815 while (fline != '' and not fline.isspace()) and not strncmpi(fline,'<<<<< Best ',11): 816 [ntokens,tokens]=fltokens(fline) 817 dresp.best.res.append(0) 818 dresp.best.res[-1]= tokens[0] 819 fline=fidi.readline() 820 821 # read and add best constraint value(s) 822 823 elif strncmpi(str(tokens[2]),'constraint',10) and strncmpi(str(tokens[3]),'value' , 5): 824 print(' '+fline) 825 826 fline=fidi.readline() 827 dresp.best.nc=[] 828 829 while (fline != '' and not fline.isspace()) and not strncmpi(fline,'<<<<< Best ',11): 830 [ntokens,tokens]=fltokens(fline) 831 dresp.best.nc.append(0) 832 dresp.best.nc[-1]= tokens[0] 833 fline=fidi.readline() 834 835 # read and add best data captured 836 837 elif strncmpi(str(tokens[2]),'data' , 4) and strncmpi(str(tokens[3]),'captured', 8): 838 print(' '+fline) 839 dresp.best.eval= tokens[7] 840 841 fline=fidi.readline() 842 843 while (fline != '' and not fline.isspace()) and not strncmpi(fline,'<<<<< Best ',11): 844 fline=fidi.readline() 845 846 # read until next best or blank or end 847 else: 848 print(' '+fline+' (ignored)') 849 850 fline=fidi.readline() 851 852 while (fline != '' and not fline.isspace()) and not strncmpi(fline,'<<<<< Best ',11): 853 fline=fidi.readline() 854 855 return dresp 856 # ]]] 857 858 def vum_read(fidi,dresp,fline): # [[[ 859 ## function to find and read the volumetric uniformity measures 860 861 if fline == None or fline == '' or fline.isspace(): 862 fline=findline(fidi,'The following lists volumetric uniformity measures') 863 if fline == None: 864 return 865 866 if isempty(dresp): 867 dresp.append(struct()) 868 dresp[-1].vum=[] 869 870 print('Reading measures for volumetric uniformity.') 871 872 fline=fidi.readline() 873 fline=fidi.readline() 874 875 while (fline != '' and not fline.isspace()): 876 [ntokens,tokens]=fltokens(fline) 877 check = tokens[0].lower() 878 if check == 'chi': 879 dresp.vum.chi=tokens[3] 880 elif check == 'd': 881 dresp.vum.d =tokens[3] 882 elif check == 'h': 883 dresp.vum.h =tokens[3] 884 elif check == 'tau': 885 dresp.vum.tau=tokens[3] 886 887 fline=fidi.readline() 888 889 return dresp 890 # ]]] 891 892 def itcomp_read(fidi,fline): # [[[ 893 ## function to find and read the iterator completion 894 895 if fline == None or fline == '' or fline.isspace(): 896 while True: 897 fline=findline(fidi,'<<<<< Iterator ') 898 if fline == None: 899 return 900 901 if (len(fline) > 26) and not (' completed.' in fline[15:]): 902 break 903 904 [ntokens,tokens]=fltokens(fline) 905 method=tokens[2] 906 print('Dakota iterator \''+str(method)+'\' completed.') 907 908 return method 909 # ]]] 910 911 def findline(fidi,string,goto_line=False): # [[[ 912 ## function to find a file line starting with a specified string 913 ## by default, return to previous position, before search 914 ## if final argument is True, return such that fidi.readline() will read the line 915 ## immediately after the searched line (or the first line if the search failed) 916 917 ipos=fidi.tell() 918 npos = 0 919 for fline in fidi: 920 npos += len(fline) 921 if (strncmpi(fline,string,len(string))): 922 if goto_line: 923 fidi.seek(npos,0) 924 else: 925 fidi.seek(ipos,0) 926 return fline 927 928 # issue warning and reset file position 929 print('Warning: findline:str_not_found: String '+str(string)+' not found in file.') 930 fidi.seek(ipos,0) 931 return None 932 # ]]] 933 934 def fltokens(fline): # [[[ 935 ## function to parse a file line into tokens 936 if fline == None: 937 ntokens=-1 938 tokens=[] 939 return [None,None] 940 941 if fline == '' or fline.isspace(): 942 ntokens=0 943 tokens=[] 944 return [None,None] 945 946 # split wherever ' ' (space) or ':' occur 947 strings = re.split(':| ',fline) 948 # remove blank strings 949 strings = [a for a in strings if (a != '' and not a.isspace())] 950 951 ntokens=0 952 tokens = ['' for i in range(len(strings))] 953 954 # try to format substrings to float where possible and count tokens and ignore invalid values 955 for i in range(len(strings)): 956 if isempty(strings[i]): 957 continue 958 959 # if the string is a number, make it a float, otherwise leave it alone 960 try: 961 tokens[ntokens] = float(strings[i]) 962 except ValueError: 963 tokens[ntokens] = strings[i] 964 965 ntokens=ntokens+1 966 967 return [ntokens,tokens] 968 # ]]] 969 970 50 if filei is None: 51 help(dakota_out_parse) 52 return 53 54 if not isfile(filei) or getsize(filei) == 0: 55 filei = str(eval(input('Input file? '))) 56 57 #fidi = fopen(sprintf('%s', filei), 'r') 58 #try: 59 with open(filei, 'r') as fidi: 60 # check the first line for the Dakota tabular output file 61 method = [] 62 fline = fidi.readline() 63 if getsize(filei) == 0 or fline == '': 64 raise RuntimeError('File ' + filei + ' is empty.') 65 66 dresp = [] # of struct() 67 scm = struct() 68 pcm = struct() 69 srcm = struct() 70 prcm = struct() 71 72 if '%eval_id' in fline: 73 method = 'unknown' 74 dresp = dak_tab_out(fidi, fline) 75 return [method, dresp, scm, pcm, srcm, prcm] 76 else: 77 fidi.seek(0, 0) 78 79 # loop through the file to find the Dakota method name 80 fline = findline(fidi, 'method', True) 81 if fline is None: 82 #do nothing 83 pass 84 else: 85 if fline[6] == ',': 86 fline = fidi.readline() 87 [ntokens, tokens] = fltokens(fline) 88 method = tokens[0].strip() 89 print('Dakota method =\'' + method + '\'.') 90 elif fline[6] in ['N', 'n']: 91 fline = findline(fidi, 'methodName = ') 92 [ntokens, tokens] = fltokens(fline) 93 method = tokens[2].strip() 94 print('Dakota methodName = "' + method + '".') 95 96 # loop through the file to find the function evaluation summary 97 counter = 0 98 fline = '' 99 nfeval = nfeval_read(fidi, fline) 100 101 # process each results section based on content of the file 102 while counter < 10: 103 # because python makes file i / o difficult 104 # if we see 10 + blank lines in a row then we have reached EOF 105 # (tests show actual maximum number of blank lines is around 5) 106 if fline == '' or fline.isspace(): 107 counter += 1 108 else: 109 counter = 0 110 # ipos = ftell(fidi) 111 fline = fidi.readline() 112 if fline == '' or fline.isspace(): 113 pass 114 elif '<<<<< Function evaluation summary' in fline: 115 nfeval = nfeval_read(fidi, fline) 116 elif 'Statistics based on ' in fline: 117 nsamp = nsamp_read(fidi, fline) 118 elif 'Moments for each response function' in fline: 119 dresp = moments_read(fidi, dresp, fline) 120 elif 'Moment-based statistics for each response function' in fline: 121 dresp = mbstats_read(fidi, dresp, fline) 122 elif '95% confidence intervals for each response function' in fline: 123 dresp = cis_read(fidi, dresp, fline) 124 elif 'Probabilities for each response function' in fline or 'Level mappings for each response function' in fline: 125 dresp = cdfs_read(fidi, dresp, fline) 126 elif 'Probability Density Function (PDF) histograms for each response function' in fline: 127 dresp = pdfs_read(fidi, dresp, fline) 128 elif 'Simple Correlation Matrix' in fline: 129 scm = corrmat_read(fidi, 'Simple Correlation Matrix', fline) 130 elif 'Partial Correlation Matrix' in fline: 131 pcm = corrmat_read(fidi, 'Partial Correlation Matrix', fline) 132 elif 'Simple Rank Correlation Matrix' in fline: 133 srcm = corrmat_read(fidi, 'Simple Rank Correlatio:n Matrix', fline) 134 elif 'Partial Rank Correlation Matrix' in fline: 135 prcm = corrmat_read(fidi, 'Partial Rank Correlation Matrix', fline) 136 elif 'MV Statistics for ' in fline: 137 dresp = mvstats_read(fidi, dresp, fline) 138 elif '<<<<< Best ' in fline: 139 dresp = best_read(fidi, dresp, fline) 140 elif 'The following lists volumetric uniformity measures' in fline: 141 dresp = vum_read(fidi, dresp, fline) 142 elif '<<<<< Iterator ' in fline and (len(fline) > 26) and (' completed.' in fline[15:]): 143 method = itcomp_read(fidi, fline) 144 elif '-----' in fline: 145 pass 146 else: 147 'Unexpected line: ' + str(fline) 148 149 # fidi.seek(ipos, 0) 150 151 # loop through the file to verify the end 152 153 # fline = findline(fidi, '<<<<< Single Method Strategy completed') 154 # if not ischar(fline) 155 # return 156 # 157 print('End of file successfully reached.') 158 #close(fidi) 159 #except Exception as err: 160 #print "ERROR in dakota_out_parse: " + err 161 #raise err 162 #raise RuntimeError(filei + ' could not be opened.') 163 164 return [method, dresp, scm, pcm, srcm, prcm] 165 # }}} 166 167 168 def dak_tab_out(fidi, fline): # {{{ 169 # function to parse the dakota tabular output file 170 171 print('Reading Dakota tabular output file.') 172 173 # process column headings of matrix (skipping eval_id) 174 [ntokens, tokens] = fltokens(fline) 175 176 # New file DAKOTA versions > 6 177 if strncmpi(fline, '%eval_id interface', 18): 178 offset = 2 179 else: #DAKOTA versions < 6 180 offset = 1 181 182 desc = [['' for i in range(ntokens - offset)]] 183 data = np.zeros((1, ntokens - offset)) 184 185 for i in range(ntokens - offset): 186 desc[0][i] = str(tokens[i + offset]) 187 188 print("Number of columns (Dakota V + R)=" + str(ntokens - 2) + '.') 189 190 # process rows of matrix 191 nrow = 0 192 while True: 193 194 fline = fidi.readline() 195 196 if fline == '' or fline.isspace(): 197 break 198 199 if nrow > 0: 200 data = np.concatenate((data, [np.zeros(ntokens - offset)])) 201 202 [ntokens, tokens] = fltokens(fline) 203 204 # add row values to matrix (skipping eval_id) 205 206 for i in range(ntokens - offset): 207 data[nrow, i] = tokens[i + offset] 208 209 nrow = nrow + 1 210 211 print('Number of rows (Dakota func evals) = ' + str(nrow) + '.') 212 213 # calculate statistics 214 215 # since normfit doesn't have a dim argument, and matlab isvector is True 216 # for a 1xn matrix, handle the case of one row explicitly 217 218 # Update: normfit_issm.py does handle this case 219 if (np.size(data, 0) > 1): 220 #dmean =mean (data) 221 #dstddev = std (data, 0) 222 [dmean, dstddev, dmeanci, dstddevci] = normfit_issm(data, 0.05) 223 else: 224 dmean = np.zeros((1, np.size(data, 1))) 225 dstddev = np.zeros((1, np.size(data, 1))) 226 dmeanci = np.zeros((2, np.size(data, 1))) 227 dstddevci = np.zeros((2, np.size(data, 1))) 228 for i in range(np.size(data, 1)): 229 [dmean[0, i], dstddev[0, i], dmeanci[:, i], dstddevci[:, i]] = normfit_issm(data[:, i], 0.05) 230 231 dmin = data.min(0) 232 dquart1 = prctile_issm(data, 25, 0) 233 dmedian = np.median(data, 0) 234 dquart3 = prctile_issm(data, 75, 0) 235 dmax = data.max(0) 236 dmin95 = prctile_issm(data, 5, 0) 237 dmax95 = prctile_issm(data, 95, 0) 238 239 # Note: the following line may cause the following warning 240 # (should not crash or invalidate results) when one of 241 # the inputs does not change with respect to the 242 # other / s causing an internal divide-by - zero error 243 244 # / usr / local / lib / python2.7 / dist - packages / numpy / lib / function_base.py:3163: 245 # RuntimeWarning: invalid value encountered in true_divide 246 # c / = stddev[:, None] 247 248 # (and / or the same but with "c / = stddev[None, :]") 249 250 dcorrel = np.corrcoef(data.T) 251 252 # divide the data into structures for consistency 253 dresp = [] 254 255 for i in range(len(desc)): 256 dresp.append(struct()) 257 dresp[i].descriptor = str(desc[i]) 258 dresp[i].sample = data[:, i] 259 dresp[i].mean = dmean[i] 260 dresp[i].stddev = dstddev[i] 261 dresp[i].meanci = dmeanci[:, i] 262 dresp[i].stddevci = dstddevci[:, i] 263 dresp[i].min = dmin[i] 264 dresp[i].quart1 = dquart1[i] 265 dresp[i].median = dmedian[i] 266 dresp[i].quart3 = dquart3[i] 267 dresp[i].max = dmax[i] 268 dresp[i].dmin95 = dmin95[i] 269 dresp[i].dmax95 = dmax95[i] 270 271 # draw box plot 272 273 # figure 274 # subplot(2, 1, 1) 275 # plot_boxplot(dresp) 276 277 # draw normal probability plot 278 279 # subplot(2, 1, 2) 280 # plot_normplot(dresp) 281 282 return dresp 283 # }}} 284 285 286 def nfeval_read(fidi, fline): # {{{ 287 # function to find and read the number of function evaluations 288 289 if fline is None or fline == '' or fline.isspace(): 290 fline = findline(fidi, '<<<<< Function evaluation summary') 291 nfeval = 0 292 return 293 294 [ntokens, tokens] = fltokens(fline) 295 nfeval = tokens[4] 296 print(' Dakota function evaluations = ' + str(int(nfeval)) + '.') 297 298 return nfeval 299 # }}} 300 301 302 def nsamp_read(fidi, fline): # {{{ 303 # function to find and read the number of samples 304 305 if fline is None or fline == '' or fline.isspace(): 306 fline = findline(fidi, 'Statistics based on ') 307 return 308 309 [ntokens, tokens] = fltokens(fline) 310 nsamp = tokens[3] 311 print(' Dakota samples = ' + str(int(nsamp)) + '.') 312 313 return nsamp 314 # }}} 315 316 317 def moments_read(fidi, dresp, fline): # {{{ 318 # function to find and read the moments 319 320 if fline is None or fline == '' or fline.isspace(): 321 fline = findline(fidi, 'Moments for each response function') 322 return 323 324 print('Reading moments for response functions:') 325 326 while True: 327 fline = fidi.readline() 328 if fline == '' or fline.isspace(): 329 break 330 331 [ntokens, tokens] = fltokens(fline) 332 333 # add new response function and moments 334 335 dresp.append(struct()) 336 dresp[-1].descriptor = tokens[0] 337 print(' ' + str(dresp[-1].descriptor)) 338 dresp[-1].mean = tokens[3] 339 dresp[-1].stddev = tokens[6] 340 dresp[-1].coefvar = tokens[12] 341 342 print(' Number of Dakota response functions = ' + str(len(dresp)) + '.') 343 344 return dresp 345 # }}} 346 347 348 def mbstats_read(fidi, dresp, fline): # {{{ 349 # function to find and read the moment - based statistics 350 351 if fline is None or fline == '' or fline.isspace(): 352 fline = findline(fidi, 'Moment - based statistics for each response function') 353 return 354 355 print('Reading moment - based statistics for response functions:') 356 357 # skip column headings of moment - based statistics 358 359 fline = fidi.readline() 360 361 while True: 362 fline = fidi.readline() 363 if fline == '' or fline.isspace(): 364 break 365 366 [ntokens, tokens] = fltokens(fline) 367 368 # add new response function and moment - based statistics 369 370 dresp.append(struct()) 371 dresp[-1].descriptor = tokens[0] 372 print(' ' + str(dresp[-1].descriptor)) 373 dresp[-1].mean = tokens[1] 374 dresp[-1].stddev = tokens[2] 375 dresp[-1].skewness = tokens[3] 376 dresp[-1].kurtosis = tokens[4] 377 378 print(' Number of Dakota response functions = ' + str(len(dresp)) + '.') 379 380 return dresp 381 # }}} 382 383 384 def cis_read(fidi, dresp, fline): # {{{ 385 # function to find and read the confidence intervals 386 387 if fline is None or fline == '' or fline.isspace(): 388 fline = findline(fidi, '95% confidence intervals for each response function') 389 return 390 391 print('Reading 95% confidence intervals for response functions:') 392 393 while True: 394 fline = fidi.readline() 395 if fline == '' or fline.isspace(): 396 break 397 398 [ntokens, tokens] = fltokens(fline) 399 # check for column headings in Dakota 5.2 400 if (ntokens == 4): 401 fline = fidi.readline() 402 if fline == '' or fline.isspace(): 403 break 404 405 [ntokens, tokens] = fltokens(fline) 406 407 # find response function associated with confidence intervals 408 idresp = -1 409 for i in range(len(dresp)): 410 if strcmpi(tokens[0], dresp[i].descriptor): 411 idresp = i 412 break 413 414 if idresp < 0: 415 idresp = len(dresp) 416 dresp.append(struct()) 417 dresp[idresp].descriptor = tokens[0] 418 print(' ' + str(dresp[idresp].descriptor)) 419 420 # add confidence intervals to response functions 421 dresp[i].meanci = np.array([[np.nan], [np.nan]]) 422 dresp[i].stddevci = np.array([[np.nan], [np.nan]]) 423 424 if (ntokens == 14): 425 dresp[i].meanci[0, 0] = tokens[4] 426 dresp[i].meanci[1, 0] = tokens[5] 427 dresp[i].stddevci[0, 0] = tokens[11] 428 dresp[i].stddevci[1, 0] = tokens[12] 429 else: 430 dresp[i].meanci[0, 0] = tokens[1] 431 dresp[i].meanci[1, 0] = tokens[2] 432 dresp[i].stddevci[0, 0] = tokens[3] 433 dresp[i].stddevci[1, 0] = tokens[4] 434 435 print(' Number of Dakota response functions = ' + str(len(dresp)) + '.') 436 437 return dresp 438 # }}} 439 440 441 def cdfs_read(fidi, dresp, fline): # {{{ 442 # function to find and read the cdf's 443 444 if fline is None or fline == '' or fline.isspace(): 445 fline = findline(fidi, 'Probabilities for each response function') 446 if fline is None: 447 fline = findline(fidi, 'Level mappings for each response function') 448 if fline is None: 449 return 450 451 print('Reading CDF''s for response functions:') 452 453 while fline == '' or fline.isspace(): 454 fline = fidi.readline() 455 if fline == '' or fline.isspace(): 456 break 457 458 # process header line of cdf 459 460 while (fline != '' and not fline.isspace()): 461 [ntokens, tokens] = fltokens(fline) 462 463 # find response function associated with cdf 464 # idresp is an index, so it can be 0, default to - 1 465 idresp = -1 466 for i in range(len(dresp)): 467 if strcmpi(tokens[5], dresp[i].descriptor): 468 idresp = i 469 break 470 if idresp < 0: 471 idresp = len(dresp) 472 dresp.append(struct()) 473 dresp[idresp].descriptor = tokens[5] 474 print(' ' + str(dresp(idresp).descriptor)) 475 476 # skip column headings of cdf 477 fline = fidi.readline() 478 fline = fidi.readline() 479 480 # read and add cdf table to response function 481 fline = fidi.readline() 482 icdf = 0 483 while (fline != '' and not fline.isspace()) and not strncmpi(fline, 'Cumulative Distribution Function', 32): 484 [ntokens, tokens] = fltokens(fline) 485 icdf = icdf + 1 486 dresp[idresp].cdf = np.zeros((icdf, 4)) 487 dresp[idresp].cdf[icdf - 1, 0:4] = np.nan 488 # in later versions of Dakota, uncalculated columns are now blank 489 itoken = 0 490 for i in range(len(fline) / 19): 491 if not isempty(fline[(i - 1) * 19:i * 19]): 492 itoken = itoken + 1 493 dresp[idresp].cdf[icdf - 1, i] = tokens[itoken] 494 495 fline = fidi.readline() 496 497 print(' Number of Dakota response functions = ' + str(len(dresp)) + '.') 498 499 return dresp 500 # }}} 501 502 503 def pdfs_read(fidi, dresp, fline): # {{{ 504 # function to find and read the pdf's 505 506 if fline is None or fline == '' or fline.isspace(): 507 fline = findline(fidi, 'Probability Density Function (PDF) histograms for each response function') 508 return 509 510 print('Reading PDF''s for response functions:') 511 512 while (fline != '' and not fline.isspace()): 513 fline = fidi.readline() 514 if fline == '' or fline.isspace(): 515 break 516 517 # process header line of pdf 518 while (fline != '' and not fline.isspace()): 519 [ntokens, tokens] = fltokens(fline) 520 521 # find response function associated with pdf 522 # idresp is an index, so it can be 0, default to - 1 523 idresp = -1 524 for i in range(len(dresp)): 525 if strcmpi(tokens[2], dresp[i].descriptor): 526 idresp = i 527 break 528 529 if idresp < 0: 530 idresp = len(dresp) 531 dresp.append(struct) 532 dresp[idresp].descriptor = tokens[2] 533 print(' ' + str(dresp[idresp].descriptor)) 534 535 # skip column headings of pdf 536 fline = fidi.readline() 537 fline = fidi.readline() 538 539 # read and add pdf table to response function 540 fline = fidi.readline() 541 ipdf = 0 542 while (fline != '' and not fline.isspace()) and not strncmpi(fline, 'PDF for', 7): 543 [ntokens, tokens] = fltokens(fline) 544 ipdf = ipdf + 1 545 dresp[idresp].pdf = np.zeros((ipdf, 4)) 546 dresp[idresp].pdf[ipdf - 1, 0:3] = np.nan 547 for i in range(3): 548 dresp[idresp].pdf[ipdf - 1, i] = tokens[i] 549 550 fline = fidi.readline() 551 552 print(' Number of Dakota response functions = ' + str(len(dresp)) + '.') 553 554 return dresp 555 # }}} 556 557 558 def corrmat_read(fidi, cmstr, fline): # {{{ 559 # function to find and read a correlation matrix 560 561 if fline is None or fline == '' or fline.isspace(): 562 fline = findline(fidi, cmstr) 563 if fline == '' or fline.isspace(): 564 cmat = struct() 565 return 566 567 print('Reading ' + fline + '.') 568 569 cmat.title = fline 570 571 while (fline != '' and not fline.isspace()): 572 fline = fidi.readline() 573 if fline == '' or fline.isspace(): 574 break 575 576 # process column headings of matrix 577 [ntokens, tokens] = fltokens(fline) 578 cmat.column = np.empty((1, ntokens)) 579 cmat.column.fill(0.0) 580 cmat.row = np.empty((1, 1)) 581 cmat.row.fill(0.0) 582 cmat.matrix = np.zeros((1, ntokens)) 583 584 for i in range(ntokens): 585 cmat.column[1, i] = str(tokens[i]) 586 587 # process rows of matrix, reading until blank line 588 nrow = 0 589 while True: 590 fline = fidi.readline() 591 if fline == '' or fline.isspace(): 592 break 593 594 [ntokens, tokens] = fltokens(fline) 595 596 # add row heading to matrix 597 nrow = nrow + 1 598 cmat.row[nrow - 1, 0] = str(tokens[0]) 599 600 # add row values to matrix 601 for i in range(1, ntokens): 602 cmat.matrix[nrow - 1, i - 1] = tokens[i] 603 604 return cmat 605 # }}} 606 607 608 def mvstats_read(fidi, dresp, fline): # {{{ 609 # function to find and read the MV statistics 610 611 if fline is None or fline == '' or fline.isspace(): 612 fline = findline(fidi, 'MV Statistics for ') 613 if fline is None: 614 return 615 616 print('Reading MV statistics for response functions:') 617 618 ndresp = 0 619 620 while (fline != '' and not fline.isspace()) and strncmpi(fline, 'MV Statistics for ', 18): 621 622 # add new response function and moments 623 [ntokens, tokens] = fltokens(fline) 624 dresp.append(struct()) 625 dresp[-1].descriptor = tokens[3] 626 print(' ' + str(dresp[-1].descriptor)) 627 fline = fidi.readline() 628 [ntokens, tokens] = fltokens(fline) 629 dresp[-1].mean = tokens[4] 630 fline = fidi.readline() 631 [ntokens, tokens] = fltokens(fline) 632 dresp[-1].stddev = tokens[6] 633 634 # read and add importance factors to response function 635 idvar = 0 636 fline = fidi.readline() 637 if fline == '' or fline.isspace(): 638 break 639 640 # shape: [[0], [0], [0]...] 641 dresp[-1].var = [] 642 dresp[-1].impfac = [] 643 dresp[-1].sens = [] 644 645 while (fline != '' and not fline.isspace()) and strncmpi(fline, ' Importance Factor for variable ', 33): 646 [ntokens, tokens] = fltokens(fline) 647 idvar = idvar + 1 648 dresp[-1].var.append(str(tokens[4])) 649 dresp[-1].impfac.append(tokens[6]) 650 if (ntokens >= 10): 651 dresp[-1].sens.append(tokens[9]) 652 else: 653 dresp[-1].sens.append(np.nan) 654 655 fline = fidi.readline() 656 657 # if importance factors missing, skip to cdf 658 if not idvar: 659 print(' Importance Factors not available.') 660 dresp[-1].var = [] 661 dresp[-1].impfac = [] 662 dresp[-1].sens = [] 663 while type(fline) == str and (fline != '' and not fline.isspace()) and not strncmpi(fline, 'Cumulative Distribution Function', 32) and not strncmpi(fline, 'MV Statistics for ', 18) and not strncmp(fline, ' - ', 1): 664 fline = fidi.readline() 665 666 # process header line of cdf 667 icdf = 0 668 669 # If there is a warning it MAY involve a lot of spaces; skip over them 670 if fline == '' or fline.isspace(): 671 fline = fidi.readline() 672 # Usually: "Warning: negligible standard deviation renders CDF results suspect." 673 if strncmpi(fline, 'Warn', 4): 674 fline = fidi.readline() 675 if fline == '' or fline.isspace(): 676 fline = fidi.readline() 677 678 while (fline != '' and not fline.isspace()) and strncmpi(fline, 'Cumulative Distribution Function', 32): 679 [ntokens, tokens] = fltokens(fline) 680 681 # find response function associated with cdf 682 # idresp is an index, so it can be 0, default to - 1 683 idresp = -1 684 for i in range(len(dresp)): 685 if strcmpi(tokens[5], dresp[i].descriptor): 686 idresp = i 687 break 688 689 if idresp < 0: 690 idresp = len(dresp) 691 dresp.append(struct()) 692 dresp[idresp].descriptor = tokens[5] 693 print(' ' + str(dresp[idresp].descriptor)) 694 695 # skip column headings of cdf 696 fline = fidi.readline() 697 fline = fidi.readline() 698 699 # read and add cdf table to response function 700 fline = fidi.readline() 701 while (fline != '' and not fline.isspace()) and not strncmpi(fline, 'MV Statistics for ', 18) and not strncmp(fline, ' - ', 1): 702 [ntokens, tokens] = fltokens(fline) 703 icdf = icdf + 1 704 dresp[idresp].cdf = np.zeros((icdf, 4)) 705 dresp[idresp].cdf[icdf - 1, 0] = tokens[0] 706 dresp[idresp].cdf[icdf - 1, 1] = tokens[1] 707 if (ntokens == 4): 708 dresp[idresp].cdf[icdf - 1, 2] = tokens[2] 709 dresp[idresp].cdf[icdf - 1, 3] = tokens[3] 710 else: 711 dresp[idresp].cdf[icdf - 1, 2] = np.nan 712 dresp[idresp].cdf[icdf - 1, 3] = np.nan 713 714 fline = fidi.readline() 715 716 # if cdf missing, skip to end of response function 717 if not icdf: 718 print(' Cumulative Distribution Function not available.') 719 dresp[ndresp].cdf = [] 720 while (fline != '' and not fline.isspace()) and not strncmpi(fline, 'MV Statistics for ', 18) and not strncmp(fline, ' - ', 1): 721 fline = fidi.readline() 722 723 print(' Number of Dakota response functions = ' + str(len(dresp)) + '.') 724 725 return dresp 726 # }}} 727 728 729 def best_read(fidi, dresp, fline): # {{{ 730 # function to find and read the best evaluation 731 732 if fline is None or fline == '' or fline.isspace(): 733 fline = findline(fidi, ' < < < < < Best ') 734 if fline is None: 735 return 736 737 if isempty(dresp): 738 dresp.append(struct()) 739 dresp[-1].best = struct() 740 741 print('Reading values for best function evaluation:') 742 743 while (fline != '' and not fline.isspace()) and strncmpi(fline, ' < < < < < Best ', 11): 744 [ntokens, tokens] = fltokens(fline) 745 746 # read and add best parameter(s) 747 748 if strncmpi(str(tokens[2]), 'parameter', 9): 749 print(' ' + fline) 750 751 fline = fidi.readline() 752 dresp.best.param = [] 753 dresp.best.descriptor = '' 754 755 while (fline != '' and not fline.isspace()) and not strncmpi(fline, ' < < < < < Best ', 11): 756 [ntokens, tokens] = fltokens(fline) 757 dresp.best.param.append([0]) 758 dresp.best.param[-1] = tokens[0] 759 dresp.best.descriptor = str(tokens[1]) 760 fline = fidi.readline() 761 762 # read and add best objective function(s) 763 elif strncmpi(str(tokens[2]), 'objective', 9) and strncmpi(str(tokens[3]), 'function', 8): 764 print(' ' + fline) 765 766 fline = fidi.readline() 767 dresp.best.of = [] 768 769 while (fline != '' and not fline.isspace()) and not strncmpi(fline, ' < < < < < Best ', 11): 770 [ntokens, tokens] = fltokens(fline) 771 dresp.best.of.append(0) 772 dresp.best.of[-1] = tokens[0] 773 fline = fidi.readline() 774 775 # read and add best residual norms 776 elif strncmpi(str(tokens[2]), 'residual', 8) and strncmpi(str(tokens[3]), 'norm', 4): 777 print(' ' + fline) 778 dresp.best.norm = tokens[5] 779 dresp.best.hnormsq = tokens[10] 780 781 fline = fidi.readline() 782 783 while (fline != '' and not fline.isspace()) and not strncmpi(fline, ' < < < < < Best ', 11): 784 fline = fidi.readline() 785 786 # read and add best residual term(s) 787 elif strncmpi(str(tokens[2]), 'residual', 8) and strncmpi(str(tokens[3]), 'term', 4): 788 print(' ' + fline) 789 790 fline = fidi.readline() 791 dresp.best.res = [] 792 793 while (fline != '' and not fline.isspace()) and not strncmpi(fline, '<<<<<Best ', 11): 794 [ntokens, tokens] = fltokens(fline) 795 dresp.best.res.append(0) 796 dresp.best.res[-1] = tokens[0] 797 fline = fidi.readline() 798 799 # read and add best constraint value(s) 800 elif strncmpi(str(tokens[2]), 'constraint', 10) and strncmpi(str(tokens[3]), 'value', 5): 801 print(' ' + fline) 802 803 fline = fidi.readline() 804 dresp.best.nc = [] 805 806 while (fline != '' and not fline.isspace()) and not strncmpi(fline, '<<<<<Best ', 11): 807 [ntokens, tokens] = fltokens(fline) 808 dresp.best.nc.append(0) 809 dresp.best.nc[-1] = tokens[0] 810 fline = fidi.readline() 811 812 # read and add best data captured 813 elif strncmpi(str(tokens[2]), 'data', 4) and strncmpi(str(tokens[3]), 'captured', 8): 814 print(' ' + fline) 815 dresp.best.eval = tokens[7] 816 817 fline = fidi.readline() 818 819 while (fline != '' and not fline.isspace()) and not strncmpi(fline, ' < < < < < Best ', 11): 820 fline = fidi.readline() 821 822 # read until next best or blank or end 823 else: 824 print(' ' + fline + ' (ignored)') 825 826 fline = fidi.readline() 827 828 while (fline != '' and not fline.isspace()) and not strncmpi(fline, ' < < < < < Best ', 11): 829 fline = fidi.readline() 830 831 return dresp 832 # }}} 833 834 835 def vum_read(fidi, dresp, fline): # {{{ 836 # function to find and read the volumetric uniformity measures 837 838 if fline is None or fline == '' or fline.isspace(): 839 fline = findline(fidi, 'The following lists volumetric uniformity measures') 840 if fline is None: 841 return 842 843 if isempty(dresp): 844 dresp.append(struct()) 845 dresp[-1].vum = [] 846 847 print('Reading measures for volumetric uniformity.') 848 fline = fidi.readline() 849 fline = fidi.readline() 850 851 while (fline != '' and not fline.isspace()): 852 [ntokens, tokens] = fltokens(fline) 853 check = tokens[0].lower() 854 if check == 'chi': 855 dresp.vum.chi = tokens[3] 856 elif check == 'd': 857 dresp.vum.d = tokens[3] 858 elif check == 'h': 859 dresp.vum.h = tokens[3] 860 elif check == 'tau': 861 dresp.vum.tau = tokens[3] 862 863 fline = fidi.readline() 864 865 return dresp 866 # }}} 867 868 869 def itcomp_read(fidi, fline): # {{{ 870 # function to find and read the iterator completion 871 872 if fline is None or fline == '' or fline.isspace(): 873 while True: 874 fline = findline(fidi, '<<<<< Iterator ') 875 if fline is None: 876 return 877 878 if (len(fline) > 26) and not (' completed.' in fline[15:]): 879 break 880 881 [ntokens, tokens] = fltokens(fline) 882 method = tokens[2] 883 print('Dakota iterator \'' + str(method) + '\' completed.') 884 885 return method 886 # }}} 887 888 889 def findline(fidi, string, goto_line=False): # {{{ 890 # function to find a file line starting with a specified string 891 # by default, return to previous position, before search 892 # if final argument is True, return such that fidi.readline() will read the line 893 # immediately after the searched line (or the first line if the search failed) 894 895 ipos = fidi.tell() 896 npos = 0 897 for fline in fidi: 898 npos += len(fline) 899 if (strncmpi(fline, string, len(string))): 900 if goto_line: 901 fidi.seek(npos, 0) 902 else: 903 fidi.seek(ipos, 0) 904 return fline 905 906 # issue warning and reset file position 907 print('Warning: findline:str_not_found: String ' + str(string) + ' not found in file.') 908 fidi.seek(ipos, 0) 909 return None 910 # }}} 911 912 913 def fltokens(fline): # {{{ 914 # function to parse a file line into tokens 915 if fline is None: 916 ntokens = -1 917 tokens = [] 918 return [None, None] 919 920 if fline == '' or fline.isspace(): 921 ntokens = 0 922 tokens = [] 923 return [None, None] 924 925 # split wherever ' ' (space) or ':' occur 926 strings = re.split(':| ', fline) 927 # remove blank strings 928 strings = [a for a in strings if (a != '' and not a.isspace())] 929 930 ntokens = 0 931 tokens = ['' for i in range(len(strings))] 932 933 # try to format substrings to float where possible and count tokens and ignore invalid values 934 for i in range(len(strings)): 935 if isempty(strings[i]): 936 continue 937 938 # if the string is a number, make it a float, otherwise leave it alone 939 try: 940 tokens[ntokens] = float(strings[i]) 941 except ValueError: 942 tokens[ntokens] = strings[i] 943 944 ntokens = ntokens + 1 945 946 return [ntokens, tokens] 947 # }}} -
issm/trunk-jpl/src/m/qmu/expandresponses.py
r23716 r24213 2 2 from helpers import * 3 3 4 def expandresponses(md,responses):5 #EXPANDRESPONSES - expand responses6 4 7 fnames=fieldnames(responses) 5 def expandresponses(md, responses): 6 #EXPANDRESPONSES - expand responses 8 7 9 # maintain order attributes were added 10 dresp = OrderedStruct() 11 12 for k in fnames: 13 v = eval('responses.{}'.format(k)) 14 exec('dresp.{} = type(v)()'.format(k)) 15 for j in range(len(v)): 16 #call setupdesign 17 exec('dresp.{}=QmuSetupResponses(md,dresp.{},v[j])'.format(k,k)) 8 fnames = fieldnames(responses) 18 9 19 return dresp 10 # maintain order attributes were added 11 dresp = OrderedStruct() 12 13 for k in fnames: 14 v = eval('responses.{}'.format(k)) 15 exec('dresp.{} = type(v)()'.format(k)) 16 for j in range(len(v)): 17 #call setupdesign 18 exec('dresp.{}=QmuSetupResponses(md, dresp.{}, v[j])'.format(k, k)) 19 20 return dresp -
issm/trunk-jpl/src/m/qmu/expandvariables.py
r23716 r24213 4 4 from qmu_classes import * 5 5 6 def expandvariables(md,variables):7 6 8 fnames=fieldnames(variables) 7 def expandvariables(md, variables): 9 8 10 # maintain order attributes were added 11 dvar = OrderedStruct() 9 fnames = fieldnames(variables) 12 10 13 for k in fnames: 14 v = eval('variables.{}'.format(k))11 # maintain order attributes were added 12 dvar = OrderedStruct() 15 13 16 # for linear constraints, just copy 17 if isinstance(v,linear_inequality_constraint) or isinstance(v,linear_equality_constraint): 18 exec('dvar.{} = v'.format(k)) 14 for k in fnames: 15 v = eval('variables.{}'.format(k)) 19 16 20 # for variables, call the setup function 21 else: 22 exec('dvar.{} = type(v)()'.format(k)) 23 for j in range(len(v)): 24 #call setupdesign 25 exec('dvar.{}=QmuSetupVariables(md,dvar.{},v[j])'.format(k,k)) 17 # for linear constraints, just copy 18 if isinstance(v, linear_inequality_constraint) or isinstance(v, linear_equality_constraint): 19 exec('dvar.{} = v'.format(k)) 26 20 27 28 return dvar 21 # for variables, call the setup function 22 else: 23 exec('dvar.{} = type(v)()'.format(k)) 24 for j in range(len(v)): 25 #call setupdesign 26 exec('dvar.{}=QmuSetupVariables(md, dvar.{}, v[j])'.format(k, k)) 27 return dvar -
issm/trunk-jpl/src/m/qmu/helpers.py
r23716 r24213 3 3 from copy import deepcopy 4 4 5 5 6 class struct(object): 6 '''An empty struct that can be assigned arbitrary attributes''' 7 pass 7 '''An empty struct that can be assigned arbitrary attributes''' 8 pass 9 8 10 9 11 class Lstruct(list): 10 11 An empty struct that can be assigned arbitrary attributes ;12 but can also be accesed as a list. Eg. x.y = 'hello', x[:] = ['w','o','r','l','d']12 ''' 13 An empty struct that can be assigned arbitrary attributes 14 but can also be accesed as a list. Eg. x.y = 'hello', x[:] = ['w', 'o', 'r', 'l', 'd'] 13 15 14 16 Note that 'x' returns the array and x.__dict__ will only return 15 16 17 List -based and struct-based behaviors work normally, however they are referenced18 19 20 corresponds only to the non-x-list attributes17 attributes other than the array 18 19 List - based and struct - based behaviors work normally, however they are referenced 20 as if the other does not exist; len(x) corresponds only to 21 the list component of x, len(x.a) corresponds to x.a, x.__dict__ 22 corresponds only to the non - x - list attributes 21 23 22 24 Example uses: 23 25 24 x = Lstruct(1, 2,3,4) -> [1,2,3,4]25 26 len(x) -> 427 28 len(x) -> 529 x[2] -> 330 x.a -> 'hello'31 print x -> [1,2,3,4,5]32 x.__dict__ -> {'a': 'hello'}33 x.b = [6,7,8,9]34 x.b[-1] -> 935 len(x.b) -> 436 37 Other valid constructors: 38 x = Lstruct(1,2,3,a='hello') -> x.a -> 'hello', x -> [1,2,3]39 x = Lstruct(1,2,3)(a='hello')40 x = Lstruct([1,2,3],x='hello')41 x = Lstruct((1,2,3),a='hello')42 43 Credit: https: //github.com/Vectorized/Python-Attribute-List26 x = Lstruct(1, 2, 3, 4) - > [1, 2, 3, 4] 27 x.a = 'hello' 28 len(x) - > 4 29 x.append(5) 30 len(x) - > 5 31 x[2] - > 3 32 x.a - > 'hello' 33 print x - > [1, 2, 3, 4, 5] 34 x.__dict__ - > {'a': 'hello'} 35 x.b = [6, 7, 8, 9] 36 x.b[-1] - > 9 37 len(x.b) - > 4 38 39 Other valid constructors: 40 x = Lstruct(1, 2, 3, a = 'hello') - > x.a - > 'hello', x - > [1, 2, 3] 41 x = Lstruct(1, 2, 3)(a = 'hello') 42 x = Lstruct([1, 2, 3], x = 'hello') 43 x = Lstruct((1, 2, 3), a = 'hello') 44 45 Credit: https: / / github.com / Vectorized / Python - Attribute-List 44 46 ''' 45 47 46 def __new__(self, *args, **kwargs): 47 return super(Lstruct, self).__new__(self, args, kwargs) 48 49 def __init__(self, *args, **kwargs): 50 if len(args) == 1 and hasattr(args[0], '__iter__'): 51 list.__init__(self, args[0]) 52 else: 53 list.__init__(self, args) 54 self.__dict__.update(kwargs) 55 56 def __call__(self, **kwargs): 57 self.__dict__.update(kwargs) 58 return self 48 def __new__(self, *args, **kwargs): 49 return super(Lstruct, self).__new__(self, args, kwargs) 50 51 def __init__(self, *args, **kwargs): 52 if len(args) == 1 and hasattr(args[0], '__iter__'): 53 list.__init__(self, args[0]) 54 else: 55 list.__init__(self, args) 56 self.__dict__.update(kwargs) 57 58 def __call__(self, **kwargs): 59 self.__dict__.update(kwargs) 60 return self 61 59 62 60 63 class OrderedStruct(object): 61 62 A form of dictionary -like structure that maintains the63 ordering in which its fields/attributes and their64 64 ''' 65 A form of dictionary - like structure that maintains the 66 ordering in which its fields / attributes and their 67 corresponding values were added. 65 68 66 69 OrderedDict is a similar device, however this class 67 can be used as an "ordered struct/class" giving68 69 also easier to work with fixed valued keys in-code.70 can be used as an "ordered struct / class" giving 71 it much more flexibility in practice. It is 72 also easier to work with fixed valued keys in - code. 70 73 71 74 Eg: 72 OrderedDict: 73 74 75 OrderedStruct: # nicer to look at, and works the same way76 x.y= 577 78 x['y'] = 5 # supports OrderedDict-style usage79 80 Supports: len(x), str(x), for -loop iteration.75 OrderedDict: # a bit clumsy to use and look at 76 x['y'] = 5 77 78 OrderedStruct: # nicer to look at, and works the same way 79 x.y = 5 80 OR 81 x['y'] = 5 # supports OrderedDict - style usage 82 83 Supports: len(x), str(x), for - loop iteration. 81 84 Has methods: x.keys(), x.values(), x.items(), x.iterkeys() 82 85 83 86 Usage: 84 85 86 87 88 x = OrderedStruct('y',5,'z',6)89 90 91 #in the same order as the inputs92 93 x.keys() -> ['y','z']94 x.values() -> [5,6]95 x.items() -> [('y',6),('z',6)]96 x.__dict__ -> [('y',6),('z',6)]97 vars(x) -> [('y',6),('z',6)]98 99 x.y -> 5100 x['y'] -> 5101 x.z -> 6102 x['z'] -> 6103 104 for i in x:# same as x.items()105 106 ->107 ('x',5)108 ('y',6)109 110 111 112 113 114 115 def __init__(self,*args):116 87 x = OrderedStruct() 88 x.y = 5 89 x.z = 6 90 OR 91 x = OrderedStruct('y', 5, 'z', 6) 92 93 # note below that the output fields as iterables are always 94 # in the same order as the inputs 95 96 x.keys() - > ['y', 'z'] 97 x.values() - > [5, 6] 98 x.items() - > [('y', 6), ('z', 6)] 99 x.__dict__ - > [('y', 6), ('z', 6)] 100 vars(x) - > [('y', 6), ('z', 6)] 101 102 x.y - > 5 103 x['y'] - > 5 104 x.z - > 6 105 x['z'] - > 6 106 107 for i in x: # same as x.items() 108 print i 109 - > 110 ('x', 5) 111 ('y', 6) 112 113 Note: to access internal fields use dir(x) 114 (input fields will be included, but 115 are not technically internals) 116 ''' 117 118 def __init__(self, *args): 119 '''Provided either nothing or a series of strings, construct a structure that will, 117 120 when accessed as a list, return its fields in the same order in which they were provided''' 118 121 119 # keys and values 120 self._k = [] 121 self._v = [] 122 123 if len(args) == 0: 124 return 125 126 if len(args) % 2 != 0: 127 raise RuntimeError('OrderedStruct input error: OrderedStruct(*args) call must have an even number of inputs, in key/value pairs') 128 129 for a,b in zip(args[0::2],args[1::2]): 130 exec(('self.%s = b')%(a)) 131 return 132 133 def __repr__(self): 134 s = 'OrderedStruct:\n\t' 135 for a,b in zip(self._k,self._v): 136 s += str(a) + ' : ' + str(b) + '\n\t' 137 return s 138 139 def __len__(self): 140 return len(self._k) 141 142 def __getattr__(self, attr): 143 # called when __getattribute__ fails 144 try: 145 # check if in keys, then access 146 _k = object.__getattribute__(self, '_k') 147 _v = object.__getattribute__(self, '_v') 148 pos = _k.index(attr) 149 return _v[pos] 150 except ValueError: 151 # not in keys, not a valid attribute, raise error 152 raise AttributeError('Attribute "'+str(attr)+'" does not exist.') 153 154 def __getattribute__(self, attr): 155 # re-route calls to vars(x) and x.__dict__ 156 if attr == '__dict__': 157 return OrderedDict(list(self.items())) 158 else: 159 return object.__getattribute__(self, attr) 160 161 def __getitem__(self, key): 162 return self._v[self._k.index(key)] 163 164 def __setattr__(self, name, value): 165 #super(OrderedStruct, self).__setattr__(name,value) 166 if name in ['_k','_v']: 167 object.__setattr__(self, name, value) 168 elif name not in self._k: 169 self._k.append(name) 170 self._v.append(value) 171 else: 172 self._v[self._k.index(name)] = value 173 174 def __delattr__(self, key): 175 if name not in self._k: 176 raise AttributeError('Attribute "'+str(attr)+'" does not exist or is an internal field and therefore cannot be deleted safely.') 177 self.pop(key) 178 179 def __iter__(self): 180 for a,b in zip(self._k,self._v): 181 yield(a,b) 182 183 def __copy__(self): 184 # shallow copy, hard copies of trivial attributes, 185 # references to structures like lists/OrderedDicts 186 # unless redefined as an entirely different structure 187 newInstance = type(self)() 188 for k,v in list(self.items()): 189 exec(('newInstance.%s = v')%(k)) 190 return newInstance 191 192 def __deepcopy__(self,memo=None): 193 # hard copy of all attributes 194 # same thing but call deepcopy recursively 195 # technically not how it should be done, 196 # (see https://docs.python.org/2/library/copy.html#copy.deepcopy ) 197 # but will generally work in this case 198 newInstance = type(self)() 199 for k,v in list(self.items()): 200 exec(('newInstance.%s = deepcopy(v)')%(k)) 201 return newInstance 202 203 def iterkeys(self): 204 for k in self._k: 205 yield k 206 207 def pop(self,key): 208 i = self._k.index(key) 209 k = self._k.pop(i) 210 v = self._v.pop(i) 211 #exec('del self.%s')%(key) 212 return (k,v) 213 214 def keys(self): 215 return self._k 216 def values(self): 217 return self._v 218 def items(self): 219 return list(zip(self._k,self._v)) 122 # keys and values 123 self._k = [] 124 self._v = [] 125 126 if len(args) == 0: 127 return 128 129 if len(args) % 2 != 0: 130 raise RuntimeError('OrderedStruct input error: OrderedStruct(*args) call must have an even number of inputs, in key / value pairs') 131 132 for a, b in zip(args[0::2], args[1::2]): 133 exec(('self.%s = b') % (a)) 134 return 135 136 def __repr__(self): 137 s = 'OrderedStruct:\n\t' 138 for a, b in zip(self._k, self._v): 139 s += str(a) + ' : ' + str(b) + '\n\t' 140 return s 141 142 def __len__(self): 143 return len(self._k) 144 145 def __getattr__(self, attr): 146 # called when __getattribute__ fails 147 try: 148 # check if in keys, then access 149 _k = object.__getattribute__(self, '_k') 150 _v = object.__getattribute__(self, '_v') 151 pos = _k.index(attr) 152 return _v[pos] 153 except ValueError: 154 # not in keys, not a valid attribute, raise error 155 raise AttributeError('Attribute "' + str(attr) + '" does not exist.') 156 157 def __getattribute__(self, attr): 158 # re-route calls to vars(x) and x.__dict__ 159 if attr == '__dict__': 160 return OrderedDict(list(self.items())) 161 else: 162 return object.__getattribute__(self, attr) 163 164 def __getitem__(self, key): 165 return self._v[self._k.index(key)] 166 167 def __setattr__(self, name, value): 168 #super(OrderedStruct, self).__setattr__(name, value) 169 if name in ['_k', '_v']: 170 object.__setattr__(self, name, value) 171 elif name not in self._k: 172 self._k.append(name) 173 self._v.append(value) 174 else: 175 self._v[self._k.index(name)] = value 176 177 def __delattr__(self, key): 178 if name not in self._k: 179 raise AttributeError('Attribute "' + str(attr) + '" does not exist or is an internal field and therefore cannot be deleted safely.') 180 self.pop(key) 181 182 def __iter__(self): 183 for a, b in zip(self._k, self._v): 184 yield(a, b) 185 186 def __copy__(self): 187 # shallow copy, hard copies of trivial attributes, 188 # references to structures like lists / OrderedDicts 189 # unless redefined as an entirely different structure 190 newInstance = type(self)() 191 for k, v in list(self.items()): 192 exec(('newInstance.%s = v') % (k)) 193 return newInstance 194 195 def __deepcopy__(self, memo=None): 196 # hard copy of all attributes 197 # same thing but call deepcopy recursively 198 # technically not how it should be done, 199 # (see https: / / docs.python.org / 2 / library / copy.html #copy.deepcopy ) 200 # but will generally work in this case 201 newInstance = type(self)() 202 for k, v in list(self.items()): 203 exec(('newInstance.%s = deepcopy(v)') % (k)) 204 return newInstance 205 206 def iterkeys(self): 207 for k in self._k: 208 yield k 209 210 def pop(self, key): 211 i = self._k.index(key) 212 k = self._k.pop(i) 213 v = self._v.pop(i) 214 #exec('del self.%s')%(key) 215 return (k, v) 216 217 def keys(self): 218 return self._k 219 220 def values(self): 221 return self._v 222 223 def items(self): 224 return list(zip(self._k, self._v)) 225 220 226 221 227 def isempty(x): 222 '''returns true if object is +\-infinity, NaN, None, '', has length 0, or is an 223 array/matrix composed only of such components (includes mixtures of "empty" types)''' 224 225 if type(x) in [list,np.ndarray,tuple]: 226 if np.size(x) == 0: 227 return True 228 229 # if anything in that array/matrix is not empty, the whole thing is not empty 230 try: 231 x = np.concatenate(x) 232 except (ValueError): 233 pass 234 for i in x: 235 if not isempty(i): 236 return False 237 # the array isn't empty but is full of "empty" type objects, so return True 238 return True 239 240 if x == None: 241 return True 242 if type(x) == str and x.lower() in ['','nan','none','inf','infinity','-inf','-infinity']: 243 return True 244 245 # type may not be understood by numpy, in which case it definitely is NOT NaN or infinity 246 try: 247 if np.isnan(x) or np.isinf(x): 248 return True 249 except (TypeError): 250 pass 251 252 # if all of that fails, then it is not empty 253 return False 254 255 def fieldnames(x,ignore_internals = True): 256 '''returns a list of fields of x 257 ignore_internals ignores all fieldnames starting with '_' and is True by default''' 258 result = list(vars(x).keys()) 259 260 if ignore_internals: 261 result = [i for i in result if i[0] != '_'] 262 263 return result 264 265 def isfield(x,y,ignore_internals=True): 266 '''is y is a field of x? 267 ignore_internals ignores all fieldnames starting with '_' and is True by default''' 268 return str(y) in fieldnames(x,ignore_internals) 228 ''' 229 returns true if object is + - infinity, NaN, None, '', has length 0, or is an 230 array / matrix composed only of such components (includes mixtures of "empty" types)''' 231 232 if type(x) in [list, np.ndarray, tuple]: 233 if np.size(x) == 0: 234 return True 235 236 # if anything in that array / matrix is not empty, the whole thing is not empty 237 try: 238 x = np.concatenate(x) 239 except (ValueError): 240 pass 241 for i in x: 242 if not isempty(i): 243 return False 244 # the array isn't empty but is full of "empty" type objects, so return True 245 return True 246 247 if x is None: 248 return True 249 if type(x) == str and x.lower() in ['', 'nan', 'none', 'inf', 'infinity', ' - inf', ' - infinity']: 250 return True 251 252 # type may not be understood by numpy, in which case it definitely is NOT NaN or infinity 253 try: 254 if np.isnan(x) or np.isinf(x): 255 return True 256 except (TypeError): 257 pass 258 259 # if all of that fails, then it is not empty 260 return False 261 262 263 def fieldnames(x, ignore_internals=True): 264 '''returns a list of fields of x 265 ignore_internals ignores all fieldnames starting with '_' and is True by default''' 266 result = list(vars(x).keys()) 267 268 if ignore_internals: 269 result = [i for i in result if i[0] != '_'] 270 271 return result 272 273 274 def isfield(x, y, ignore_internals=True): 275 '''is y is a field of x? 276 ignore_internals ignores all fieldnames starting with '_' and is True by default''' 277 return str(y) in fieldnames(x, ignore_internals) 278 269 279 270 280 def fileparts(x): 271 ''' 272 given: "path/path/.../file_name.ext" 273 returns: [path,file_name,ext] (list of strings)''' 274 try: 275 a = x[:x.rindex('/')] #path 276 b = x[x.rindex('/')+1:] #full filename 277 except ValueError: #no path provided 278 a = '' 279 b = x 280 try: 281 c,d = b.split('.') #file name, extension 282 except ValueError: #no extension provided 283 return [a,b,''] 284 return [a,c,'.'+d] 281 ''' 282 given: "path / path / ... / file_name.ext" 283 returns: [path, file_name, ext] (list of strings)''' 284 try: 285 a = x[:x.rindex('/')] #path 286 b = x[x.rindex('/') + 1:] #full filename 287 except ValueError: #no path provided 288 a = '' 289 b = x 290 try: 291 c, d = b.split('.') #file name, extension 292 except ValueError: #no extension provided 293 return [a, b, ''] 294 return [a, c, '.' + d] 295 285 296 286 297 def fullfile(*args): 287 288 289 290 fullfile(path, path, ... , file_name+ext)291 returns: "path/path/.../file_name.ext"292 293 with all arguments as strings with no "/"s294 295 296 as final arguments ('file.doc') or ('file'+'.doc') will work; 297 ('final','.doc'), and the like, will not (you'd get 'final/.doc')298 ''' 299 use: 300 301 fullfile(path, path, ... , file_name + ext) 302 returns: "path / path / ... / file_name.ext" 303 304 with all arguments as strings with no " / "s 305 306 regarding extensions and the '.': 307 as final arguments ('file.doc') or ('file' + '.doc') will work 308 ('final', '.doc'), and the like, will not (you'd get 'final/.doc') 298 309 ''' 299 result = str(args[0]) 300 for i in range(len(args[1:])): 301 # if last argument wasn't empty, add a '/' between it and the next argument 302 if len(args[i]) != 0: 303 result += '/'+str(args[i+1]) 304 else: 305 result += str(args[i+1]) 306 return result 307 308 def findline(fidi,s): 309 ''' 310 returns full first line containing s (as a string), or None 311 Note: will include any newlines or tabs that occur in that line, 312 use str(findline(f,s)).strip() to remove these, str() in case result is None''' 313 for line in fidi: 314 if s in line: 315 return line 316 return None 317 318 def empty_nd_list(shape,filler=0.,as_numpy_ndarray=False): 319 ''' 320 returns a python list of the size/shape given (shape must be int or tuple) 321 the list will be filled with the optional second argument 322 323 filler is 0.0 by default 324 325 as_numpy_ndarray will return the result as a numpy.ndarray and is False by default 326 327 Note: the filler must be either None/np.nan/float('NaN'), float/double, or int 328 other numpy and float values such as +/- np.inf will also work 310 result = str(args[0]) 311 for i in range(len(args[1:])): 312 # if last argument wasn't empty, add a '/' between it and the next argument 313 if len(args[i]) != 0: 314 result += '/' + str(args[i + 1]) 315 else: 316 result += str(args[i + 1]) 317 return result 318 319 320 def findline(fidi, s): 321 ''' 322 returns full first line containing s (as a string), or None 323 Note: will include any newlines or tabs that occur in that line, 324 use str(findline(f, s)).strip() to remove these, str() in case result is None''' 325 for line in fidi: 326 if s in line: 327 return line 328 return None 329 330 331 def empty_nd_list(shape, filler=0., as_numpy_ndarray=False): 332 ''' 333 returns a python list of the size / shape given (shape must be int or tuple) 334 the list will be filled with the optional second argument 335 336 filler is 0.0 by default 337 338 as_numpy_ndarray will return the result as a numpy.ndarray and is False by default 339 340 Note: the filler must be either None / np.nan / float('NaN'), float / double, or int 341 other numpy and float values such as + / - np.inf will also work 329 342 330 343 use: 331 empty_nd_list((5,5), 0.0)# returns a 5x5 matrix of 0.0's332 empty_nd_list(5, None)# returns a 5 long array of NaN344 empty_nd_list((5, 5), 0.0) # returns a 5x5 matrix of 0.0's 345 empty_nd_list(5, None) # returns a 5 long array of NaN 333 346 ''' 334 result = np.empty(shape) 335 result.fill(filler) 336 if not as_numpy_ndarray: 337 return result.tolist() 338 return result 339 347 result = np.empty(shape) 348 result.fill(filler) 349 if not as_numpy_ndarray: 350 return result.tolist() 351 return result -
issm/trunk-jpl/src/m/qmu/importancefactors.py
r24173 r24213 2 2 from MatlabFuncs import * 3 3 4 def importancefactors(md,variablename,responsename): 5 '''IMPORTANCEFACTORS - compute importance factors for a certain variable and response. 6 4 5 def importancefactors(md, variablename, responsename): 6 '''IMPORTANCEFACTORS - compute importance factors for a certain variable and response. 7 7 8 Usage: 8 factors=importancefactors(md,variablename,responsename)9 10 Example: factors=importancefactors(md,'drag','max_vel')9 factors = importancefactors(md, variablename, responsename) 10 11 Example: factors = importancefactors(md, 'drag', 'max_vel') 11 12 ''' 12 13 13 variablenamelength=len(variablename)14 variablenamelength = len(variablename) 14 15 15 16 responsefunctions=md.qmu.results.dresp_out17 found=-118 19 if strcmpi(responsefunctions[i].descriptor,responsename):20 found=i21 22 23 16 #go through all response functions and find the one corresponding to the correct responsename 17 responsefunctions = md.qmu.results.dresp_out 18 found = -1 19 for i in range(len(responsefunctions)): 20 if strcmpi(responsefunctions[i].descriptor, responsename): 21 found = i 22 break 23 if found < 0: 24 raise RuntimeError('importancefactors error message: could not find correct response function') 24 25 25 responsefunctions=responsefunctions[found]26 nfun=np.size(responsefunctions.var)26 responsefunctions = responsefunctions[found] 27 nfun = np.size(responsefunctions.var) 27 28 28 #Now recover response to the correct design variable 29 importancefactors=[] 30 count=0 31 for i in range(nfun): 32 desvar=responsefunctions.var[i] 33 if strncmpi(desvar,variablename,variablenamelength): 34 importancefactors.append(responsefunctions.impfac[i]) 35 count=count+1 36 37 if count==0: 38 raise RuntimeError('importancefactors error message: either response does not exist, or importancefactors are empty') 29 #Now recover response to the correct design variable 30 importancefactors = [] 31 count = 0 32 for i in range(nfun): 33 desvar = responsefunctions.var[i] 34 if strncmpi(desvar, variablename, variablenamelength): 35 importancefactors.append(responsefunctions.impfac[i]) 36 count = count + 1 39 37 40 importancefactors = np.array(importancefactors) 38 if count == 0: 39 raise RuntimeError('importancefactors error message: either response does not exist, or importancefactors are empty') 41 40 42 if count==1: #we have scalar 43 factors=importancefactors 44 return factors 45 elif count==np.max(md.qmu.epartition+1): 46 #distribute importance factor 47 factors=importancefactors[(md.qmu.epartition.conj().T).flatten().astype(int)] 48 #md.qmu.partition was created to index "c" style 49 else: 50 #distribute importance factor 51 factors=importancefactors[(md.qmu.vpartition.conj().T).flatten().astype(int)] 52 #md.qmu.partition was created to index "c" style 41 importancefactors = np.array(importancefactors) 53 42 54 #weight importancefactors by area 55 #if numel(factors)==md.mesh.numberofvertices, 56 # #get areas for each vertex. 57 # aire=GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y) 58 # num_elements_by_node=md.nodeconnectivity(:,) 59 # grid_aire=zeros(md.mesh.numberofvertices,1) 60 # for i=1:md.mesh.numberofvertices, 61 # for j=1:num_elements_by_node(i), 62 # grid_aire(i)=grid_aire(i)+aire(md.nodeconnectivity(i,j)) 63 # 64 # 65 # factors=factors./grid_aire 66 # 67 return factors 43 if count == 1: #we have scalar 44 factors = importancefactors 45 return factors 46 elif count == np.max(md.qmu.epartition + 1): 47 #distribute importance factor 48 factors = importancefactors[(md.qmu.epartition.conj().T).flatten().astype(int)] 49 #md.qmu.partition was created to index "c" style 50 else: 51 #distribute importance factor 52 factors = importancefactors[(md.qmu.vpartition.conj().T).flatten().astype(int)] 53 #md.qmu.partition was created to index "c" style 54 55 #weight importancefactors by area 56 #if numel(factors) == md.mesh.numberofvertices, 57 # #get areas for each vertex. 58 # aire = GetAreas(md.mesh.elements, md.mesh.x, md.mesh.y) 59 # num_elements_by_node = md.nodeconnectivity(:, ) 60 # grid_aire = zeros(md.mesh.numberofvertices, 1) 61 # for i = 1:md.mesh.numberofvertices, 62 # for j = 1:num_elements_by_node(i), 63 # grid_aire(i)=grid_aire(i) + aire(md.nodeconnectivity(i, j)) 64 # 65 # 66 # factors = factors. / grid_aire 67 # 68 return factors -
issm/trunk-jpl/src/m/qmu/lclist_write.py
r23716 r24213 8 8 from linear_inequality_constraint import * 9 9 10 def lclist_write(fidi,cstring,cstring2,dvar): 11 ''' 10 11 def lclist_write(fidi, cstring, cstring2, dvar): 12 ''' 12 13 function to write linear constraint list 13 14 ''' 14 if dvar ==None:15 15 if dvar is None: 16 return 16 17 17 18 # put linear constraints into lists for writing 18 19 19 nvar=020 pmatrix=[]21 plower =[]22 pupper =[]23 ptarget=[]24 pstype =[]25 pscale =[]20 nvar = 0 21 pmatrix = [] 22 plower = [] 23 pupper = [] 24 ptarget = [] 25 pstype = [] 26 pscale = [] 26 27 27 fnames=fieldnames(dvar)28 29 nvar=nvar+np.size(vars(dvar)[fnames[i]])30 pmatrix=[pmatrix,prop_matrix(vars(dvar)[fnames[i]])]31 plower =[plower ,prop_lower(vars(dvar)[fnames[i]])]32 pupper =[pupper ,prop_upper(vars(dvar)[fnames[i]])]33 ptarget=[ptarget,prop_target(vars(dvar)[fnames[i]])]34 pstype =[pstype ,prop_stype(vars(dvar)[fnames[i]])]35 pscale =[pscale ,prop_scale(vars(dvar)[fnames[i]])]28 fnames = fieldnames(dvar) 29 for i in range(np.size(fnames)): 30 nvar = nvar + np.size(vars(dvar)[fnames[i]]) 31 pmatrix = [pmatrix, prop_matrix(vars(dvar)[fnames[i]])] 32 plower = [plower, prop_lower(vars(dvar)[fnames[i]])] 33 pupper = [pupper, prop_upper(vars(dvar)[fnames[i]])] 34 ptarget = [ptarget, prop_target(vars(dvar)[fnames[i]])] 35 pstype = [pstype, prop_stype(vars(dvar)[fnames[i]])] 36 pscale = [pscale, prop_scale(vars(dvar)[fnames[i]])] 36 37 38 # write linear constraints 39 print(' Writing ' + str(nvar) + ' ' + cstring + ' linear constraints.') 37 40 38 # write linear constraints 41 if len(pmatrix) != 0: 42 fidi.write('\t ' + cstring2 + '_matrix =\n') 43 vector_write(fidi, '\t ', pmatrix, 6, 76) 39 44 40 print(' Writing '+str(nvar)+' '+cstring+' linear constraints.') 45 if len(plower) != 0: 46 fidi.write('\t ' + cstring2 + '_lower_bounds =\n') 47 vector_write(fidi, '\t ', plower, 6, 76) 41 48 42 if len(pmatrix) != 0:43 fidi.write('\t '+cstring2+'_matrix=\n')44 vector_write(fidi,'\t ',pmatrix,6,76)49 if len(pupper) != 0: 50 fidi.write('\t ' + cstring2 + '_upper_bounds =\n') 51 vector_write(fidi, '\t ', pupper, 6, 76) 45 52 46 if len(plower) != 0:47 fidi.write('\t '+cstring2+'_lower_bounds =\n')48 vector_write(fidi,'\t ',plower ,6,76)53 if len(ptarget) != 0: 54 fidi.write('\t ' + cstring2 + '_targets =\n') 55 vector_write(fidi, '\t ', ptarget, 6, 76) 49 56 50 if len(pupper) != 0:51 fidi.write('\t '+cstring2+'_upper_bounds =\n')52 vector_write(fidi,'\t ',pupper ,6,76)57 if len(pstype) != 0: 58 fidi.write('\t ' + cstring2 + '_scale_types =\n') 59 vector_write(fidi, '\t ', pstype, 6, 76) 53 60 54 if len(ptarget) != 0: 55 fidi.write('\t '+cstring2+'_targets =\n') 56 vector_write(fidi,'\t ',ptarget,6,76) 57 58 if len(pstype) != 0: 59 fidi.write('\t '+cstring2+'_scale_types =\n') 60 vector_write(fidi,'\t ',pstype ,6,76) 61 62 if len(pscale) != 0: 63 fidi.write('\t '+cstring2+'_scales =\n') 64 vector_write(fidi,'\t ',pscale ,6,76) 65 66 67 61 if len(pscale) != 0: 62 fidi.write('\t ' + cstring2 + '_scales =\n') 63 vector_write(fidi, '\t ', pscale, 6, 76) -
issm/trunk-jpl/src/m/qmu/param_write.py
r23716 r24213 2 2 from helpers import * 3 3 4 def param_write(fidi,sbeg,pname,smid,s,params): 5 ''' 4 5 def param_write(fidi, sbeg, pname, smid, s, params): 6 ''' 6 7 function to write a parameter 7 8 ''' 8 if not isfield(params,pname):9 10 9 if not isfield(params, pname): 10 print('WARNING: param_write:param_not_found: Parameter {} not found in structure.'.format(pname)) 11 return 11 12 12 13 params_pname = vars(params)[pname] 13 14 14 15 15 if type(params_pname) == bool and (not params_pname): 16 return 16 17 17 iftype(params_pname) == bool:18 fidi.write(sbeg+str(pname)+s)18 if type(params_pname) == bool: 19 fidi.write(sbeg + str(pname) + s) 19 20 20 21 fidi.write(sbeg+pname+smid+params_pname+s)21 elif type(params_pname) in [str]: 22 fidi.write(sbeg + pname + smid + params_pname + s) 22 23 23 24 fidi.write(sbeg+str(pname)+smid+str(params_pname)+s)24 elif type(params_pname) in [int, float]: 25 fidi.write(sbeg + str(pname) + smid + str(params_pname) + s) -
issm/trunk-jpl/src/m/qmu/postqmu.py
r23716 r24213 1 from os import system,getpid,stat1 from os import getpid, stat 2 2 from os.path import isfile 3 3 from subprocess import Popen 4 5 4 from dakota_out_parse import * 6 5 from helpers import * 7 6 8 def postqmu(md,qmufile,qmudir='qmu'+str(getpid())):9 '''10 Deal with dakota output results in files.11 7 12 INPUT function 13 md=postqmu(md,qmufile,qmudir) 8 def postqmu(md, qmufile, qmudir='qmu' + str(getpid())): 9 ''' 10 Deal with dakota output results in files. 14 11 15 By default: qmudir = 'qmu'+pid (eg. 'qmu2189') 16 ''' 12 INPUT function 13 md = postqmu(md, qmufile, qmudir) 17 14 18 # check to see if dakota returned errors in the err file 19 qmuerrfile=str(md.miscellaneous.name)+'.qmu.err'15 By default: qmudir = 'qmu' + pid (eg. 'qmu2189') 16 ''' 20 17 21 if isfile(qmuerrfile) and stat(qmuerrfile).st_size > 0: 22 with open(qmuerrfile,'r') as fide: 23 fline=fide.read() 24 print(fline) 18 # check to see if dakota returned errors in the err file 19 qmuerrfile = str(md.miscellaneous.name) + '.qmu.err' 25 20 26 raise RuntimeError('Dakota returned error in '+str(qmuerrfile)+' file. '+str(qmudir)+' directory retained.') 21 if isfile(qmuerrfile) and stat(qmuerrfile).st_size > 0: 22 with open(qmuerrfile, 'r') as fide: 23 fline = fide.read() 24 print(fline) 27 25 28 # parse inputs and results from dakota 29 qmuinfile=str(md.miscellaneous.name)+'.qmu.in' 30 qmuoutfile=str(md.miscellaneous.name)+'.qmu.out' 26 raise RuntimeError('Dakota returned error in ' + str(qmuerrfile) + ' file. ' + str(qmudir) + ' directory retained.') 31 27 32 # unused and unimplemented 33 #[method,dvar,dresp_in]=dakota_in_parse(qmuinfile) 34 #dakotaresults.method =method 35 #dakotaresults.dvar =dvar 36 #dakotaresults.dresp_in =dresp_in 28 # parse inputs and results from dakota 29 qmuinfile = str(md.miscellaneous.name) + '.qmu.in' 30 qmuoutfile = str(md.miscellaneous.name) + '.qmu.out' 37 31 38 [method,dresp_out,scm,pcm,srcm,prcm]=dakota_out_parse(qmuoutfile) 39 dakotaresults = struct() 40 dakotaresults.dresp_out=dresp_out 41 dakotaresults.scm =scm 42 dakotaresults.pcm =pcm 43 dakotaresults.srcm =srcm 44 dakotaresults.prcm =prcm 32 # unused and unimplemented 33 #[method, dvar, dresp_in] = dakota_in_parse(qmuinfile) 34 #dakotaresults.method =method 35 #dakotaresults.dvar =dvar 36 #dakotaresults.dresp_in =dresp_in 45 37 46 if isfile('dakota_tabular.dat'): 47 # only need a subset of the outputs; dakota_out_parse handles .dat seperately 48 [method,dresp_dat,_,_,_,_]=dakota_out_parse('dakota_tabular.dat') 49 dakotaresults.dresp_dat=dresp_dat 38 [method, dresp_out, scm, pcm, srcm, prcm] = dakota_out_parse(qmuoutfile) 39 dakotaresults = struct() 40 dakotaresults.dresp_out = dresp_out 41 dakotaresults.scm = scm 42 dakotaresults.pcm = pcm 43 dakotaresults.srcm = srcm 44 dakotaresults.prcm = prcm 50 45 51 # put dakotaresults in their right location. 52 md.results.dakota=dakotaresults 46 if isfile('dakota_tabular.dat'): 47 # only need a subset of the outputs; dakota_out_parse handles .dat seperately 48 [method, dresp_dat, _, _, _, _] = dakota_out_parse('dakota_tabular.dat') 49 dakotaresults.dresp_dat = dresp_dat 53 50 54 # move all the individual function evalutations into zip files 55 if not md.qmu.isdakota: 56 Popen('zip -mq params.in.zip params.in.[1-9]*',shell=True) 57 Popen('zip -mq results.out.zip results.out.[1-9]*',shell=True) 58 Popen('zip -mq matlab.out.zip matlab*.out.[1-9]*',shell=True) 51 # put dakotaresults in their right location. 52 md.results.dakota = dakotaresults 59 53 60 return md 54 # move all the individual function evalutations into zip files 55 if not md.qmu.isdakota: 56 Popen('zip - mq params.in.zip params.in.[1 - 9] * ', shell=True) 57 Popen('zip - mq results.out.zip results.out.[1 - 9] * ', shell=True) 58 Popen('zip - mq matlab.out.zip matlab * .out.[1 - 9] * ', shell=True) 59 60 return md -
issm/trunk-jpl/src/m/qmu/preqmu.py
r23716 r24213 7 7 from process_qmu_response_data import * 8 8 9 def preqmu(md,options): 10 '''QMU - apply Quantification of Margins and Uncertainties techniques 11 to a solution sequence (like stressbalance.py, progonstic.py, etc ...), 12 using the Dakota software from Sandia. 9 10 def preqmu(md, options): 11 '''QMU - apply Quantification of Margins and Uncertainties techniques 12 to a solution sequence (like stressbalance.py, progonstic.py, etc ...), 13 using the Dakota software from Sandia. 13 14 14 15 options come from the solve.py routine. They can include Dakota options: 15 16 16 17 17 qmudir: any directory where to run the qmu analysis 18 qmufile: input file for Dakota 18 19 19 20 21 22 23 20 (ivap, iresp, imethod, and iparams are currently unimplemented) 21 ivar: selection number for variables input (if several are specified in variables) 22 iresp: same thing for response functions 23 imethod: same thing for methods 24 iparams: same thing for params 24 25 25 26 overwrite: overwrite qmudir before analysis 26 27 ''' 27 28 28 29 qmudir = options.getfieldvalue('qmudir','qmu'+str(os.getpid()))30 # qmudir = ['qmu_' datestr(now,'yyyymmdd_HHMMSS')]31 qmufile = options.getfieldvalue('qmufile','qmu')32 33 overwrite = options.getfieldvalue('overwrite','n')34 ivar = options.getfieldvalue('ivar',0)35 iresp = options.getfieldvalue('iresp',0)36 imethod = options.getfieldvalue('imethod',0)37 iparams = options.getfieldvalue('iparams',0)29 print('preprocessing dakota inputs') 30 qmudir = options.getfieldvalue('qmudir', 'qmu' + str(os.getpid())) 31 # qmudir = ['qmu_' datestr(now, 'yyyymmdd_HHMMSS')] 32 qmufile = options.getfieldvalue('qmufile', 'qmu') 33 # qmufile cannot be changed unless ????script.sh is also changed 34 overwrite = options.getfieldvalue('overwrite', 'n') 35 options.addfielddefault('ivar', 0) 36 options.addfielddefault('iresp', 0) 37 options.addfielddefault('imethod', 0) 38 options.addfielddefault('iparams', 0) 38 39 39 # first create temporary directory in which we will work 40 if strncmpi(overwrite,'y',1): 41 os.system('rm -rf '+qmudir+'/*') 42 else: 43 # does the directory exist? if so, then error out 44 if os.path.isdir(qmudir): 45 raise RuntimeError('Existing '+str(options.qmudir)+' directory, cannot overwrite. Specify "overwrite","y" option in solve arguments.') 46 47 # os.makedirs() raises error when dir exists, matlab's mkdir() does not 48 if not os.path.isdir(qmudir): 49 os.makedirs(qmudir) 50 os.chdir(qmudir) 40 # first create temporary directory in which we will work 41 if strncmpi(overwrite, 'y', 1): 42 os.system('rm -rf ' + qmudir + '/* ') 43 else: 44 # does the directory exist? if so, then error out 45 if os.path.isdir(qmudir): 46 raise RuntimeError('Existing ' + str(options.qmudir) + ' directory, cannot overwrite. Specify "overwrite", "y" option in solve arguments.') 51 47 52 # when running in library mode, the in file needs to be called md.miscellaneous.name.qmu.in 53 qmufile=md.miscellaneous.name 48 # os.makedirs() raises error when dir exists, matlab's mkdir() does not 49 if not os.path.isdir(qmudir): 50 os.makedirs(qmudir) 51 os.chdir(qmudir) 54 52 55 # retrieve variables and resposnes for this particular analysis. 56 #print type(md.qmu.variables) 57 #print md.qmu.variables.__dict__ 58 #print ivar 59 variables=md.qmu.variables#[ivar] 60 responses=md.qmu.responses#[iresp] 53 # when running in library mode, the in file needs to be called md.miscellaneous.name.qmu.in 54 qmufile = md.miscellaneous.name 61 55 62 # expand variables and responses 63 #print variables.__dict__ 64 #print responses.__dict__ 65 variables=expandvariables(md,variables) 66 responses=expandresponses(md,responses) 56 # retrieve variables and resposnes for this particular analysis. 57 #print type(md.qmu.variables) 58 #print md.qmu.variables.__dict__ 59 #print ivar 60 variables = md.qmu.variables #[ivar] 61 responses = md.qmu.responses #[iresp] 67 62 68 # go through variables and responses, and check they don't have more than 69 # md.qmu.numberofpartitions values. Also determine numvariables and numresponses 70 #[[[ 71 numvariables=0 72 variable_fieldnames=fieldnames(variables) 73 for i in range(len(variable_fieldnames)): 74 field_name=variable_fieldnames[i] 75 fieldvariables=vars(variables)[field_name] 76 for j in range(np.size(fieldvariables)): 77 if strncmpi(fieldvariables[j].descriptor,'\'scaled_',8) and str2int(fieldvariables[j].descriptor,'last')>md.qmu.numberofpartitions: 78 raise RuntimeError('preqmu error message: one of the expanded variables has more values than the number of partitions (setup in md.qmu.numberofpartitions)') 63 # expand variables and responses 64 #print variables.__dict__ 65 #print responses.__dict__ 66 variables = expandvariables(md, variables) 67 responses = expandresponses(md, responses) 79 68 80 numvariables=numvariables+np.size(vars(variables)[field_name]) 69 # go through variables and responses, and check they don't have more than 70 # md.qmu.numberofpartitions values. Also determine numvariables and numresponses 71 #[[[ 72 numvariables = 0 73 variable_fieldnames = fieldnames(variables) 74 for i in range(len(variable_fieldnames)): 75 field_name = variable_fieldnames[i] 76 fieldvariables = vars(variables)[field_name] 77 for j in range(np.size(fieldvariables)): 78 if strncmpi(fieldvariables[j].descriptor, '\'scaled_', 8) and str2int(fieldvariables[j].descriptor, 'last') > md.qmu.numberofpartitions: 79 raise RuntimeError('preqmu error message: one of the expanded variables has more values than the number of partitions (setup in md.qmu.numberofpartitions)') 81 80 82 numresponses=0 83 response_fieldnames=fieldnames(responses) 84 for i in range(len(response_fieldnames)): 85 field_name=response_fieldnames[i] 86 fieldresponses=vars(responses)[field_name] 87 for j in range(np.size(fieldresponses)): 88 if strncmpi(fieldresponses[j].descriptor,'\'scaled_',8) and str2int(fieldresponses[j].descriptor,'last')>md.qmu.numberofpartitions: 89 raise RuntimeError('preqmu error message: one of the expanded responses has more values than the number of partitions (setup in md.qmu.numberofpartitions)') 81 numvariables = numvariables + np.size(vars(variables)[field_name]) 90 82 91 numresponses=numresponses+np.size(vars(responses)[field_name]) 83 numresponses = 0 84 response_fieldnames = fieldnames(responses) 85 for i in range(len(response_fieldnames)): 86 field_name = response_fieldnames[i] 87 fieldresponses = vars(responses)[field_name] 88 for j in range(np.size(fieldresponses)): 89 if strncmpi(fieldresponses[j].descriptor, '\'scaled_', 8) and str2int(fieldresponses[j].descriptor, 'last') > md.qmu.numberofpartitions: 90 raise RuntimeError('preqmu error message: one of the expanded responses has more values than the number of partitions (setup in md.qmu.numberofpartitions)') 92 91 93 #]]] 92 numresponses = numresponses + np.size(vars(responses)[field_name]) 94 93 95 # create in file for dakota 96 #dakota_in_data(md.qmu.method[imethod],variables,responses,md.qmu.params[iparams],qmufile) 97 dakota_in_data(md.qmu.method,variables,responses,md.qmu.params,qmufile) 94 #]]] 98 95 99 #====================================================================================# 100 #REMOVED FOR DEBUGGING ONLY: 101 #os.system('rm -rf '+str(md.miscellaneous.name)+'.py') 102 #====================================================================================# 96 # create in file for dakota 97 #dakota_in_data(md.qmu.method[imethod], variables, responses, md.qmu.params[iparams], qmufile) 98 dakota_in_data(md.qmu.method, variables, responses, md.qmu.params, qmufile) 103 99 104 # build a list of variables and responses descriptors. the list is not expanded. 105 #[[[ 106 variabledescriptors=[] 107 # variable_fieldnames=fieldnames(md.qmu.variables[ivar]) 108 variable_fieldnames=fieldnames(md.qmu.variables) 109 for i in range(len(variable_fieldnames)): 110 field_name=variable_fieldnames[i] 111 #fieldvariables=vars(md.qmu.variables[ivar])[field_name] 112 fieldvariables=vars(md.qmu.variables)[field_name] 113 if type(fieldvariables) in [list,np.ndarray]: 114 for j in range(np.size(fieldvariables)): 115 variabledescriptors.append(fieldvariables[j].descriptor) 116 else: 117 variabledescriptors.append(fieldvariables.descriptor) 100 #==================================================================================== # 101 #REMOVED FOR DEBUGGING ONLY: 102 #os.system('rm -rf ' + str(md.miscellaneous.name) + '.py') 103 #==================================================================================== # 118 104 105 # build a list of variables and responses descriptors. the list is not expanded. 106 #{{{ 107 variabledescriptors = [] 108 # variable_fieldnames = fieldnames(md.qmu.variables[ivar]) 109 variable_fieldnames = fieldnames(md.qmu.variables) 110 for i in range(len(variable_fieldnames)): 111 field_name = variable_fieldnames[i] 112 #fieldvariables = vars(md.qmu.variables[ivar])[field_name] 113 fieldvariables = vars(md.qmu.variables)[field_name] 114 if type(fieldvariables) in [list, np.ndarray]: 115 for j in range(np.size(fieldvariables)): 116 variabledescriptors.append(fieldvariables[j].descriptor) 117 else: 118 variabledescriptors.append(fieldvariables.descriptor) 119 119 120 responsedescriptors=[]121 # response_fieldnames=fieldnames(md.qmu.responses[iresp])122 response_fieldnames=fieldnames(md.qmu.responses)123 124 field_name=response_fieldnames[i]125 #fieldresponses=vars(md.qmu.responses[iresp])[field_name]126 fieldresponses=vars(md.qmu.responses)[field_name]127 128 129 120 responsedescriptors = [] 121 # response_fieldnames = fieldnames(md.qmu.responses[iresp]) 122 response_fieldnames = fieldnames(md.qmu.responses) 123 for i in range(len(response_fieldnames)): 124 field_name = response_fieldnames[i] 125 #fieldresponses = vars(md.qmu.responses[iresp])[field_name] 126 fieldresponses = vars(md.qmu.responses)[field_name] 127 for j in range(np.size(fieldresponses)): 128 responsedescriptors.append(fieldresponses[j].descriptor) 129 #}}} 130 130 131 #]]] 131 # register the fields that will be needed by the Qmu model. 132 md.qmu.numberofresponses = numresponses 133 md.qmu.variabledescriptors = variabledescriptors 134 md.qmu.responsedescriptors = responsedescriptors 132 135 133 # register the fields that will be needed by the Qmu model. 134 md.qmu.numberofresponses=numresponses 135 md.qmu.variabledescriptors=variabledescriptors 136 md.qmu.responsedescriptors=responsedescriptors 136 # now, we have to provide all the info necessary for the solutions to compute the 137 # responses. For ex, if mass_flux is a response, we need a profile of points. 138 # For a misfit, we need the observed velocity, etc ... 139 md = process_qmu_response_data(md) 137 140 138 # now, we have to provide all the info necessary for the solutions to compute the 139 # responses. For ex, if mass_flux is a response, we need a profile of points. 140 # For a misfit, we need the observed velocity, etc ... 141 md=process_qmu_response_data(md) 142 143 return md 141 return md -
issm/trunk-jpl/src/m/qmu/process_qmu_response_data.py
r23095 r24213 2 2 import numpy as np 3 3 from MeshProfileIntersection import * 4 5 4 from helpers import empty_nd_list 6 5 6 7 7 def process_qmu_response_data(md): 8 9 PROCESS_QMU_RESPONSE_DATA - process any data necessary for the solutions to process the data. 8 ''' 9 PROCESS_QMU_RESPONSE_DATA - process any data necessary for the solutions to process the data. 10 10 11 Usage: md=process_qmu_response_data(md)12 13 11 Usage: md = process_qmu_response_data(md) 12 13 See also PREQMU, PRESOLVE 14 14 ''' 15 15 16 17 process_mass_flux_profiles=018 num_mass_flux=016 # preliminary data 17 process_mass_flux_profiles = 0 18 num_mass_flux = 0 19 19 20 21 20 # loop through response descriptors, and act accordingly 21 for i in range(np.size(md.qmu.responsedescriptors)): 22 22 23 24 if strncmpi(md.qmu.responsedescriptors[i],'indexed_MassFlux',16):25 num_mass_flux+=126 process_mass_flux_profiles=123 # Do we have to process mass flux profiles? 24 if strncmpi(md.qmu.responsedescriptors[i], 'indexed_MassFlux', 16): 25 num_mass_flux += 1 26 process_mass_flux_profiles = 1 27 27 28 # deal with mass flux profiles 29 if process_mass_flux_profiles: 30 # we need a profile of points on which to compute the mass_flux, is it here? 31 if type(md.qmu.mass_flux_profiles) == float and np.isnan(md.qmu.mass_flux_profiles): 32 raise RuntimeError('process_qmu_response_data error message: could not find a mass_flux exp profile!') 33 34 if type(md.qmu.mass_flux_profiles) != list: 35 raise RuntimeError('process_qmu_response_data error message: qmu_mass_flux_profiles field should be a list of domain outline names') 36 37 if np.size(md.qmu.mass_flux_profiles) == 0: 38 raise RuntimeError('process_qmu_response_data error message: qmu_mass_flux_profiles cannot be empty!') 39 40 if num_mass_flux!=np.size(md.qmu.mass_flux_profiles): 41 raise RuntimeError('process_qmu_response_data error message: qmu_mass_flux_profiles should be of the same size as the number of MassFlux responses asked for in the Qmu analysis') 42 43 # ok, process the domains named in qmu_mass_flux_profiles, 44 # to build a list of segments (MatArray) 45 md.qmu.mass_flux_segments = empty_nd_list((num_mass_flux,1)) 28 # deal with mass flux profiles 29 if process_mass_flux_profiles: 30 # we need a profile of points on which to compute the mass_flux, is it here? 31 if type(md.qmu.mass_flux_profiles) == float and np.isnan(md.qmu.mass_flux_profiles): 32 raise RuntimeError('process_qmu_response_data error message: could not find a mass_flux exp profile!') 46 33 47 for i in range(num_mass_flux):48 md.qmu.mass_flux_segments[i]=np.array(MeshProfileIntersection(md.mesh.elements,md.mesh.x,md.mesh.y,md.qmu.mass_flux_profile_directory+'/'+md.qmu.mass_flux_profiles[i])[0])34 if type(md.qmu.mass_flux_profiles) != list: 35 raise RuntimeError('process_qmu_response_data error message: qmu_mass_flux_profiles field should be a list of domain outline names') 49 36 50 return md 37 if np.size(md.qmu.mass_flux_profiles) == 0: 38 raise RuntimeError('process_qmu_response_data error message: qmu_mass_flux_profiles cannot be empty!') 51 39 40 if num_mass_flux != np.size(md.qmu.mass_flux_profiles): 41 raise RuntimeError('process_qmu_response_data error message: qmu_mass_flux_profiles should be of the same size as the number of MassFlux responses asked for in the Qmu analysis') 42 43 # ok, process the domains named in qmu_mass_flux_profiles, 44 # to build a list of segments (MatArray) 45 md.qmu.mass_flux_segments = empty_nd_list((num_mass_flux, 1)) 46 47 for i in range(num_mass_flux): 48 md.qmu.mass_flux_segments[i] = np.array(MeshProfileIntersection(md.mesh.elements, md.mesh.x, md.mesh.y, md.qmu.mass_flux_profile_directory + '/' + md.qmu.mass_flux_profiles[i])[0]) 49 50 return md -
issm/trunk-jpl/src/m/qmu/rlev_write.py
r23735 r24213 4 4 from vector_write import * 5 5 from param_write import * 6 7 6 #import relevent qmu classes 8 7 from MatlabArray import * 9 8 10 def rlevi_write(fidi,ltype,levels): 11 ''' 9 10 def rlevi_write(fidi, ltype, levels): 11 ''' 12 12 function to each type of response level 13 13 ''' 14 14 15 fidi.write('\t num_'+str(ltype)+' =')16 15 fidi.write('\t num_' + str(ltype) + ' = ') 16 levels = np.array(levels) 17 17 18 if len(levels) > 0 and type(levels[0]) in [list,np.ndarray]:19 20 21 22 18 if len(levels) > 0 and type(levels[0]) in [list, np.ndarray]: 19 for i in range(len(levels)): 20 fidi.write(' ' + str(len(levels[i]))) 21 else: 22 fidi.write(' ' + str(len(levels))) 23 23 24 25 fidi.write('\t '+str(ltype)+' =\n')24 fidi.write('\n') 25 fidi.write('\t ' + str(ltype) + ' =\n') 26 26 27 28 if np.size(levels) > 0 and type(levels[0]) in [list,np.ndarray]:29 30 31 vector_write(fidi,'\t ',levels[i],8,76)32 33 vector_write(fidi,'\t ',levels,8,76)27 # check if we have a vector of vectors, or just 1 vector 28 if np.size(levels) > 0 and type(levels[0]) in [list, np.ndarray]: 29 for i in range(len(levels)): 30 if len(levels[i]) != 0: 31 vector_write(fidi, '\t ', levels[i], 8, 76) 32 else: 33 vector_write(fidi, '\t ', levels, 8, 76) 34 34 35 35 return 36 36 37 def rlev_write(fidi,dresp,cstring,params): 38 ''' 37 38 def rlev_write(fidi, dresp, cstring, params): 39 ''' 39 40 function to write response levels 40 41 ''' 41 42 from response_function import response_function 42 43 43 44 44 if len(dresp) == 0 or len(fieldnames(dresp[0])) == 0: 45 return 45 46 46 if type(dresp) in [list,np.ndarray]:47 48 49 50 51 52 53 54 55 56 57 47 if type(dresp) in [list, np.ndarray]: 48 if len(dresp) > 0 and type(dresp[0]) == struct: 49 func = eval(cstring) 50 else: 51 func = type(dresp[0]) 52 elif type(dresp) == struct: 53 # type is defined within struct's contents 54 func = None 55 dresp = [dresp] 56 else: 57 func = type(dresp) 58 dresp = [dresp] 58 59 59 60 # put responses into lists for writing 60 61 61 62 63 64 rell= []65 62 nresp = 0 63 respl = [] 64 probl = [] 65 rell = [] 66 grell = [] 66 67 67 68 69 fnames=fieldnames(dresp[0])70 71 72 if func ==None:73 68 # assume all fields in dvar[0:n] are consistent (ex. all are normal_uncertain) 69 # which will always be true since this is called per field 70 fnames = fieldnames(dresp[0]) 71 for j in range(len(dresp)): 72 for i in range(np.size(fnames)): 73 if func is None: 74 func = type(vars(dresp[j])[fnames[i]]) 74 75 75 nresp+=176 [respli,probli,relli,grelli]=func.prop_levels([vars(dresp[j])[fnames[i]]])77 78 79 80 76 nresp += 1 77 [respli, probli, relli, grelli] = func.prop_levels([vars(dresp[j])[fnames[i]]]) 78 respl.extend(respli) 79 probl.extend(probli) 80 rell.extend(relli) 81 grell.extend(grelli) 81 82 83 # write response levels 84 respl = allempty(respl) 85 probl = allempty(probl) 86 rell = allempty(rell) 87 grell = allempty(grell) 82 88 83 # write response levels 89 param_write(fidi, '\t ', 'distribution', ' ', '\n', params) 90 if len(respl) != 0: 91 rlevi_write(fidi, 'response_levels', respl) 92 param_write(fidi, '\t ', 'compute', ' ', '\n', params) 84 93 85 respl=allempty(respl) 86 probl=allempty(probl) 87 rell =allempty(rell) 88 grell=allempty(grell) 94 if len(probl) != 0: 95 rlevi_write(fidi, 'probability_levels', probl) 89 96 90 param_write(fidi,'\t ','distribution',' ','\n',params) 91 if len(respl) != 0: 92 rlevi_write(fidi,'response_levels',respl) 93 param_write(fidi,'\t ','compute',' ','\n',params) 97 if len(rell) != 0: 98 rlevi_write(fidi, 'reliability_levels', rell) 94 99 95 if len(probl) != 0:96 rlevi_write(fidi,'probability_levels',probl)100 if len(grell) != 0: 101 rlevi_write(fidi, 'gen_reliability_levels', grell) 97 102 98 if len(rell) != 0: 99 rlevi_write(fidi,'reliability_levels',rell) 100 101 if len(grell) != 0: 102 rlevi_write(fidi,'gen_reliability_levels',grell) 103 104 return 103 return -
issm/trunk-jpl/src/m/qmu/rlist_write.py
r23716 r24213 1 1 import numpy as np 2 3 2 #move this later 4 3 from helpers import * … … 7 6 from response_function import * 8 7 9 def rlist_write(fidi,cstring,cstring2,dresp,rdesc): 10 ''' 8 9 def rlist_write(fidi, cstring, cstring2, dresp, rdesc): 10 ''' 11 11 function to write response list 12 12 ''' 13 13 14 if dresp ==None:15 14 if dresp is None: 15 return 16 16 17 17 func = eval(cstring) 18 18 19 if type(dresp) not in [list,np.ndarray]:20 19 if type(dresp) not in [list, np.ndarray]: 20 dresp = [dresp] 21 21 22 23 22 # put responses into lists for writing 23 # (and accumulate descriptors into list for subsequent writing) 24 24 25 nresp=026 pstype =[]27 pscale =[]28 pweight=[]29 plower =[]30 pupper =[]31 ptarget=[]25 nresp = 0 26 pstype = [] 27 pscale = [] 28 pweight = [] 29 plower = [] 30 pupper = [] 31 ptarget = [] 32 32 33 34 35 fnames=fieldnames(dresp[0])36 37 38 nresp=nresp+np.size(vars(dresp[j])[fnames[i]])39 pstype.extend( func.prop_stype(vars(dresp[j])[fnames[i]]))40 pscale.extend( func.prop_scale(vars(dresp[j])[fnames[i]]))41 42 plower.extend( func.prop_lower(vars(dresp[j])[fnames[i]]))43 pupper.extend( func.prop_upper(vars(dresp[j])[fnames[i]]))44 45 rdesc.extend( func.prop_desc( vars(dresp[j])[fnames[i]],fnames[i]))33 # assume all fields in dvar[0:n] are consistent (ex. all are normal_uncertain) 34 # which will always be true since this is called per field 35 fnames = fieldnames(dresp[0]) 36 for j in range(len(dresp)): 37 for i in range(np.size(fnames)): 38 nresp = nresp + np.size(vars(dresp[j])[fnames[i]]) 39 pstype.extend(func.prop_stype(vars(dresp[j])[fnames[i]])) 40 pscale.extend(func.prop_scale(vars(dresp[j])[fnames[i]])) 41 pweight.extend(func.prop_weight(vars(dresp[j])[fnames[i]])) 42 plower.extend(func.prop_lower(vars(dresp[j])[fnames[i]])) 43 pupper.extend(func.prop_upper(vars(dresp[j])[fnames[i]])) 44 ptarget.extend(func.prop_target(vars(dresp[j])[fnames[i]])) 45 rdesc.extend(func.prop_desc(vars(dresp[j])[fnames[i]], fnames[i])) 46 46 47 # write responses 48 print(' Writing ' + str(nresp) + ' ' + cstring + ' responses.') 47 49 48 # write responses 50 if strcmp(cstring, 'calibration_terms') == 1: 51 fidi.write('\t' + cstring + ' = ' + str(nresp) + '\n') 49 52 50 print(' Writing '+str(nresp)+' '+cstring+' responses.') 53 else: 54 fidi.write('\tnum_' + cstring + 's = ' + str(nresp) + '\n') 51 55 52 if strcmp(cstring,'calibration_terms')==1: 53 fidi.write('\t'+cstring+' = '+str(nresp)+'\n') 54 55 else: 56 fidi.write('\tnum_'+cstring+'s = '+str(nresp)+'\n') 56 if not isempty(pstype): 57 fidi.write('\t ' + cstring2 + '_scale_types =\n') 58 vector_write(fidi, '\t ', pstype, 6, 76) 57 59 58 if not isempty(pstype):59 fidi.write('\t '+cstring2+'_scale_types =\n')60 vector_write(fidi,'\t ',pstype ,6,76)60 if not isempty(pscale): 61 fidi.write('\t ' + cstring2 + '_scales =\n') 62 vector_write(fidi, '\t ', pscale, 6, 76) 61 63 62 if not isempty(pscale): 63 fidi.write('\t '+cstring2+'_scales =\n') 64 vector_write(fidi,'\t ',pscale ,6,76) 64 if not isempty(pweight): 65 if cstring2 == 'objective_function': 66 fidi.write('\t multi_objective_weights =\n') 67 vector_write(fidi, '\t ', pweight, 6, 76) 68 elif cstring2 == 'least_squares_term': 69 fidi.write('\t least_squares_weights =\n') 70 vector_write(fidi, '\t ', pweight, 6, 76) 65 71 66 if not isempty(pweight): 67 if cstring2 == 'objective_function': 68 fidi.write('\t multi_objective_weights =\n') 69 vector_write(fidi,'\t ',pweight,6,76) 70 elif cstring2 == 'least_squares_term': 71 fidi.write('\t least_squares_weights =\n') 72 vector_write(fidi,'\t ',pweight,6,76) 72 if not isempty(plower): 73 fidi.write('\t ' + cstring2 + '_lower_bounds =\n') 74 vector_write(fidi, '\t ', plower, 6, 76) 73 75 74 if not isempty(plower):75 fidi.write('\t '+cstring2+'_lower_bounds =\n')76 vector_write(fidi,'\t ',plower ,6,76)76 if not isempty(pupper): 77 fidi.write('\t ' + cstring2 + '_upper_bounds =\n') 78 vector_write(fidi, '\t ', pupper, 6, 76) 77 79 78 if not isempty(pupper):79 fidi.write('\t '+cstring2+'_upper_bounds =\n')80 vector_write(fidi,'\t ',pupper ,6,76)80 if not isempty(ptarget): 81 fidi.write('\t ' + cstring2 + '_targets =\n') 82 vector_write(fidi, '\t ', ptarget, 6, 76) 81 83 82 if not isempty(ptarget): 83 fidi.write('\t '+cstring2+'_targets =\n') 84 vector_write(fidi,'\t ',ptarget,6,76) 84 # because qmu in files need '' for strings 85 for i in range(len(rdesc)): 86 if type(rdesc[i]) in [list, np.ndarray]: 87 for j in range(len(rdesc[i])): 88 rdesc[i][j] = "'" + rdesc[i][j] + "'" 89 else: 90 rdesc[i] = "'" + rdesc[i] + "'" 85 91 86 # because qmu in files need '' for strings 87 for i in range(len(rdesc)): 88 if type(rdesc[i]) in [list,np.ndarray]: 89 for j in range(len(rdesc[i])): 90 rdesc[i][j] = "'" + rdesc[i][j] + "'" 91 else: 92 rdesc[i] = "'" + rdesc[i] + "'" 93 94 return rdesc 92 return rdesc -
issm/trunk-jpl/src/m/qmu/setupdesign/QmuSetupResponses.py
r23095 r24213 2 2 from copy import deepcopy 3 3 4 def QmuSetupResponses(md,dresp,responses):5 4 6 #get descriptor 7 descriptor=responses.descriptor 5 def QmuSetupResponses(md, dresp, responses): 8 6 9 #decide whether this is a distributed response, which will drive whether we expand it into npart values, 10 #or if we just carry it forward as is. 7 #get descriptor 8 descriptor = responses.descriptor 11 9 12 #ok, key off according to type of descriptor: 13 if strncmp(descriptor,'scaled_',7): 14 #we have a scaled response, expand it over the partition. 15 #ok, dealing with semi-discrete distributed response. Distribute according to how many 16 #partitions we want 17 for j in range(md.qmu.numberofpartitions): 18 dresp.append(deepcopy(responses)) 19 dresp[-1].descriptor=str(responses.descriptor)+'_'+str(j+1) 20 else: 21 dresp.append(responses) 10 #decide whether this is a distributed response, which will drive whether we expand it into npart values, 11 #or if we just carry it forward as is. 22 12 23 return dresp 13 #ok, key off according to type of descriptor: 14 if strncmp(descriptor, 'scaled_', 7): 15 #we have a scaled response, expand it over the partition. 16 #ok, dealing with semi - discrete distributed response. Distribute according to how many 17 #partitions we want 18 for j in range(md.qmu.numberofpartitions): 19 dresp.append(deepcopy(responses)) 20 dresp[-1].descriptor = str(responses.descriptor) + '_' + str(j + 1) 21 else: 22 dresp.append(responses) 23 24 return dresp -
issm/trunk-jpl/src/m/qmu/setupdesign/QmuSetupVariables.py
r23095 r24213 1 1 from MatlabFuncs import * 2 from uniform_uncertain import *2 from uniform_uncertain import * 3 3 from normal_uncertain import * 4 4 from copy import deepcopy 5 5 6 def QmuSetupVariables(md,dvar,variables):7 6 8 #get descriptor 9 descriptor=variables.descriptor 7 def QmuSetupVariables(md, dvar, variables): 10 8 11 #decide whether this is a distributed variable, which will drive whether we expand it into npart values, 12 #or if we just carry it forward as is. 9 #get descriptor 10 descriptor = variables.descriptor 13 11 14 #ok, key off according to type of descriptor: 15 if strncmp(descriptor,'scaled_',7): 16 #we have a scaled variable, expand it over the partition. 12 #decide whether this is a distributed variable, which will drive whether we expand it into npart values, 13 #or if we just carry it forward as is. 17 14 18 if isinstance(variables,uniform_uncertain): 19 if ((type(variables.lower) in [list,np.ndarray] and len(variables.lower) > md.qmu.numberofpartitions) or (type(variables.upper) in [list,np.ndarray] and len(variables.upper) > md.qmu.numberofpartitions)): 20 raise RuntimeError('QmuSetupDesign error message: upper and lower should be either a scalar or a "npart" length vector') 21 22 elif isinstance(variables,normal_uncertain): 23 if type(variables.stddev) in [list,np.ndarray] and len(variables.stddev) > md.qmu.numberofpartitions: 24 raise RuntimeError('QmuSetupDesign error message: stddev should be either a scalar or a "npart" length vector') 15 #ok, key off according to type of descriptor: 16 if strncmp(descriptor, 'scaled_', 7): 17 #we have a scaled variable, expand it over the partition. 18 if isinstance(variables, uniform_uncertain): 19 if ((type(variables.lower) in [list, np.ndarray] and len(variables.lower) > md.qmu.numberofpartitions) or (type(variables.upper) in [list, np.ndarray] and len(variables.upper) > md.qmu.numberofpartitions)): 20 raise RuntimeError('QmuSetupDesign error message: upper and lower should be either a scalar or a "npart" length vector') 25 21 26 #ok, dealing with semi-discrete distributed variable. Distribute according to how many 27 #partitions we want 22 elif isinstance(variables, normal_uncertain): 23 if type(variables.stddev) in [list, np.ndarray] and len(variables.stddev) > md.qmu.numberofpartitions: 24 raise RuntimeError('QmuSetupDesign error message: stddev should be either a scalar or a "npart" length vector') 28 25 29 for j in range(md.qmu.numberofpartitions): 30 dvar.append(deepcopy(variables)) 31 # "'" is because qmu.in files need for strings to be in actual '' 32 # must also account for whether we are given 1 instance or an array of instances 26 #ok, dealing with semi - discrete distributed variable. Distribute according to how many 27 #partitions we want 28 for j in range(md.qmu.numberofpartitions): 29 dvar.append(deepcopy(variables)) 30 # "'" is because qmu.in files need for strings to be in actual '' 31 # must also account for whether we are given 1 instance or an array of instances 32 # handle descriptors for everything 33 if type(dvar[-1].descriptor) in [list, np.ndarray] and len(variables.descriptor) > 1 and len(variables.upper) != md.qmu.numberofpartitions: 34 if type(variables.descriptor) == np.ndarray: 35 dvar[-1].descriptor = np.append(dvar[-1].descriptor, "'" + str(variables.descriptor) + '_' + str(j + 1) + "'") 36 else: 37 dvar[-1].descriptor.append("'" + str(variables.descriptor) + '_' + str(j + 1) + "'") 38 else: 39 dvar[-1].descriptor = "'" + str(variables.descriptor) + '_' + str(j + 1) + "'" 33 40 34 # handle descriptors for everything 35 if type(dvar[-1].descriptor) in [list,np.ndarray] and len(variables.descriptor) > 1 and len(variables.upper) != md.qmu.numberofpartitions: 36 if type(variables.descriptor) == np.ndarray: 37 dvar[-1].descriptor = np.append(dvar[-1].descriptor,"'"+str(variables.descriptor)+'_'+str(j+1)+"'") 38 else: 39 dvar[-1].descriptor.append("'"+str(variables.descriptor)+'_'+str(j+1)+"'") 40 else: 41 dvar[-1].descriptor = "'"+str(variables.descriptor)+'_'+str(j+1)+"'" 41 # handle uniform_uncertain 42 if isinstance(variables, uniform_uncertain): 43 if type(variables.lower) in [list, np.ndarray] and len(variables.lower) > 1 and len(variables.upper) != md.qmu.numberofpartitions: 44 if type(variables.lower) == np.ndarray: 45 dvar[-1].lower = np.append(dvar[-1].lower, variables.lower[j]) 46 else: 47 dvar[-1].lower.append(variables.lower[j]) 48 else: 49 dvar[-1].lower = variables.lower 42 50 43 # handle uniform_uncertain 44 if isinstance(variables,uniform_uncertain): 45 if type(variables.lower) in [list,np.ndarray] and len(variables.lower) > 1 and len(variables.upper) != md.qmu.numberofpartitions: 46 if type(variables.lower) == np.ndarray: 47 dvar[-1].lower = np.append(dvar[-1].lower, variables.lower[j]) 48 else: 49 dvar[-1].lower.append(variables.lower[j]) 50 else: 51 dvar[-1].lower = variables.lower 51 if type(variables.upper) in [list, np.ndarray] and len(variables.upper) > 1 and len(variables.upper) != md.qmu.numberofpartitions: 52 if type(variables.upper) == np.ndarray: 53 dvar[-1].upper = np.append(dvar[-1].upper, variables.upper[j]) 54 else: 55 dvar[-1].upper.append(variables.upper[j]) 56 else: 57 dvar[-1].upper = variables.upper 52 58 53 if type(variables.upper) in [list,np.ndarray] and len(variables.upper) > 1 and len(variables.upper) != md.qmu.numberofpartitions: 54 if type(variables.upper) == np.ndarray: 55 dvar[-1].upper = np.append(dvar[-1].upper, variables.upper[j]) 56 else: 57 dvar[-1].upper.append(variables.upper[j]) 58 else: 59 dvar[-1].upper = variables.upper 59 # handle normal_uncertain 60 elif isinstance(variables, normal_uncertain): 61 if type(variables.stddev) in [list, np.ndarray] and len(variables.stddev) > 1 and len(variables.upper) != md.qmu.numberofpartitions: 62 if type(variables.stddev) == np.ndarray: 63 dvar[-1].stddev = np.append(dvar[-1].stddev, variables.stddev[j]) 64 else: 65 dvar[-1].stddev.append(variables.stddev[j]) 66 else: 67 dvar[-1].stddev = variables.stddev 60 68 61 # handle normal_uncertain 62 elif isinstance(variables,normal_uncertain): 63 if type(variables.stddev) in [list,np.ndarray] and len(variables.stddev) > 1 and len(variables.upper) != md.qmu.numberofpartitions: 64 if type(variables.stddev) == np.ndarray: 65 dvar[-1].stddev = np.append(dvar[-1].stddev, variables.stddev[j]) 66 else: 67 dvar[-1].stddev.append(variables.stddev[j]) 68 else: 69 dvar[-1].stddev = variables.stddev 69 # running with a single instance, and therefore length 1 arrays of qmu classes 70 else: 71 dvar.append(variables) 72 # text parsing in dakota requires literal "'identifier'" not just "identifier" 73 for v in dvar: 74 v.descriptor = "'" + str(v.descriptor) + "'" 70 75 71 # running with a single instance, and therefore length 1 arrays of qmu classes 72 else: 73 dvar.append(variables) 74 # text parsing in dakota requires literal "'identifier'" not just "identifier" 75 for v in dvar: 76 v.descriptor = "'"+str(v.descriptor)+"'" 77 78 return dvar 79 76 return dvar -
issm/trunk-jpl/src/m/qmu/vector_write.py
r23095 r24213 1 1 import numpy as np 2 2 3 def vector_write(fidi,sbeg,vec,nmax,cmax): 4 ''' 3 4 def vector_write(fidi, sbeg, vec, nmax, cmax): 5 ''' 5 6 function to write a vector on multiple lines 6 7 ''' 7 if nmax ==None:8 nmax=np.inf8 if nmax is None: 9 nmax = np.inf 9 10 10 if cmax ==None:11 cmax=np.inf11 if cmax is None: 12 cmax = np.inf 12 13 13 14 svec =[]15 nitem=nmax16 lsvec=cmax14 # set up first iteration 15 svec = [] 16 nitem = nmax 17 lsvec = cmax 17 18 18 # transpose vector from column-wise to row-wise19 vec=np.array(vec).conj().T19 # transpose vector from column - wise to row - wise 20 vec = np.array(vec).conj().T 20 21 21 22 for i in range(np.size(vec,0)):22 # assemble each line, flushing when necessary 23 for i in range(np.size(vec, 0)): 23 24 24 # [[1],[1],[1]...] should be [1,1,1,...]25 if type(vec[i]) in [list,np.ndarray] and len(vec[i]) == 1:26 27 28 25 # [[1], [1], [1]...] should be [1, 1, 1, ...] 26 if type(vec[i]) in [list, np.ndarray] and len(vec[i]) == 1: 27 sitem = str(vec[i][0]) 28 else: 29 sitem = str(vec[i]) 29 30 30 nitem=nitem+131 lsvec=lsvec+1+len(sitem)31 nitem = nitem + 1 32 lsvec = lsvec + 1 + len(sitem) 32 33 33 if (nitem <= nmax) and (lsvec <= cmax): 34 svec=str(svec)+' '+str(sitem) 35 else: 36 if len(svec) > 0: 37 fidi.write(str(svec)+'\n') 38 39 svec=str(sbeg)+str(sitem) 40 nitem=1 41 lsvec=len(svec) 42 43 # flush buffer at , if necessary 44 if len(svec) > 0: 45 fidi.write(str(svec)+'\n') 34 if (nitem <= nmax) and (lsvec <= cmax): 35 svec = str(svec) + ' ' + str(sitem) 36 else: 37 if len(svec) > 0: 38 fidi.write(str(svec) + '\n') 46 39 47 return 40 svec = str(sbeg) + str(sitem) 41 nitem = 1 42 lsvec = len(svec) 43 44 # flush buffer at , if necessary 45 if len(svec) > 0: 46 fidi.write(str(svec) + '\n') 47 48 return -
issm/trunk-jpl/src/m/qmu/vlist_write.py
r23716 r24213 2 2 #move this later 3 3 from helpers import * 4 5 4 from vector_write import * 6 7 5 from uniform_uncertain import * 8 6 from normal_uncertain import * 9 7 10 def check(a,l,p):11 '''in the event that a and b are equal, return a;12 in the event that a and b are not equal, return their concatenation13 8 14 This is used for when both the input dvar and the 'cstring' variables have non-1 length 15 ''' 9 def check(a, l, p): 10 '''in the event that a and b are equal, return a 11 in the event that a and b are not equal, return their concatenation 16 12 17 if np.size(a) == l: 18 if p == 0: 19 if type(a) in [list,np.ndarray]: 20 return a 21 else: 22 return [a] 23 else: 24 return [] 25 elif np.size(a) == 1: 26 if type(a) in [list,np.ndarray]: 27 return a 28 else: 29 return [a] 30 elif np.size(a) == 0: 31 return [] 32 else: 33 raise RuntimeError('ERROR vlist_write: input field had size '+str(np.size(a))+'; must have size of 0, 1, or match size of provided dvar ('+str(l)+').') 13 This is used for when both the input dvar and the 'cstring' variables have non - 1 length 14 ''' 34 15 35 return 16 if np.size(a) == l: 17 if p == 0: 18 if type(a) in [list, np.ndarray]: 19 return a 20 else: 21 return [a] 22 else: 23 return [] 24 elif np.size(a) == 1: 25 if type(a) in [list, np.ndarray]: 26 return a 27 else: 28 return [a] 29 elif np.size(a) == 0: 30 return [] 31 else: 32 raise RuntimeError('ERROR vlist_write: input field had size ' + str(np.size(a)) + '; must have size of 0, 1, or match size of provided dvar (' + str(l) + ').') 36 33 37 def vlist_write(fidi,cstring,cstring2,dvar): 38 ''' 39 function to write variable list 40 ''' 41 if dvar == None: 42 return 43 #from uniform_uncertain import * 44 func = eval(cstring) 34 return 45 35 46 # put variables into lists for writing47 36 48 if type(dvar) not in [list,np.ndarray]: 49 dvar = [dvar] 37 def vlist_write(fidi, cstring, cstring2, dvar): 38 ''' 39 function to write variable list 40 ''' 41 if dvar is None: 42 return 43 #from uniform_uncertain import * 44 func = eval(cstring) 50 45 51 # assume all fields in dvar[0:n] are consistent (ex. all are normal_uncertain) 52 # which will always be true since this vlist_write is called per field 53 fnames=fieldnames(dvar[0]) 46 # put variables into lists for writing 54 47 55 nvar=0 56 pinitpt=[[] for i in range(len(fnames))] 57 plower =[[] for i in range(len(fnames))] 58 pupper =[[] for i in range(len(fnames))] 59 pmean =[[] for i in range(len(fnames))] 60 pstddev=[[] for i in range(len(fnames))] 61 pinitst=[[] for i in range(len(fnames))] 62 pstype =[[] for i in range(len(fnames))] 63 pscale =[[] for i in range(len(fnames))] 64 pdesc =[[] for i in range(len(fnames))] 48 if type(dvar) not in [list, np.ndarray]: 49 dvar = [dvar] 65 50 66 for i in range(len(fnames)): 67 nvar += len(dvar) 68 for j in dvar: 69 j = vars(j)[fnames[i]] 70 pinitpt[i].extend(check(func.prop_initpt(j),len(dvar),len(pinitpt[i]))) 71 plower[i].extend(check(func.prop_lower(j),len(dvar),len(plower[i]))) 72 pupper[i].extend(check(func.prop_upper(j),len(dvar),len(pupper[i]))) 73 pmean[i].extend(check(func.prop_mean(j),len(dvar),len(pmean[i]))) 74 pstddev[i].extend(check(func.prop_stddev(j),len(dvar),len(pstddev[i]))) 75 pinitst[i].extend(check(func.prop_initst(j),len(dvar),len(pinitst[i]))) 76 pstype[i].extend(check(func.prop_stype(j),len(dvar),len(pstype[i]))) 77 pscale[i].extend(check(func.prop_scale(j),len(dvar),len(pscale[i]))) 78 pdesc[i].extend(check(func.prop_desc(j,fnames[i]),len(dvar),len(pdesc[i]))) 51 # assume all fields in dvar[0:n] are consistent (ex. all are normal_uncertain) 52 # which will always be true since this vlist_write is called per field 53 fnames = fieldnames(dvar[0]) 79 54 80 pinitpt=allempty(pinitpt) 81 plower =allempty(plower) 82 pupper =allempty(pupper) 83 pmean =allempty(pmean) 84 pstddev=allempty(pstddev) 85 pinitst=allempty(pinitst) 86 pstype =allempty(pstype) 87 pscale =allempty(pscale) 88 pdesc =allempty(pdesc) 55 nvar = 0 56 pinitpt = [[] for i in range(len(fnames))] 57 plower = [[] for i in range(len(fnames))] 58 pupper = [[] for i in range(len(fnames))] 59 pmean = [[] for i in range(len(fnames))] 60 pstddev = [[] for i in range(len(fnames))] 61 pinitst = [[] for i in range(len(fnames))] 62 pstype = [[] for i in range(len(fnames))] 63 pscale = [[] for i in range(len(fnames))] 64 pdesc = [[] for i in range(len(fnames))] 89 65 90 # write variables 91 print(' Writing '+str(nvar)+' '+cstring+' variables.') 66 for i in range(len(fnames)): 67 nvar += len(dvar) 68 for j in dvar: 69 j = vars(j)[fnames[i]] 70 pinitpt[i].extend(check(func.prop_initpt(j), len(dvar), len(pinitpt[i]))) 71 plower[i].extend(check(func.prop_lower(j), len(dvar), len(plower[i]))) 72 pupper[i].extend(check(func.prop_upper(j), len(dvar), len(pupper[i]))) 73 pmean[i].extend(check(func.prop_mean(j), len(dvar), len(pmean[i]))) 74 pstddev[i].extend(check(func.prop_stddev(j), len(dvar), len(pstddev[i]))) 75 pinitst[i].extend(check(func.prop_initst(j), len(dvar), len(pinitst[i]))) 76 pstype[i].extend(check(func.prop_stype(j), len(dvar), len(pstype[i]))) 77 pscale[i].extend(check(func.prop_scale(j), len(dvar), len(pscale[i]))) 78 pdesc[i].extend(check(func.prop_desc(j, fnames[i]), len(dvar), len(pdesc[i]))) 92 79 93 fidi.write('\t'+cstring+' = '+str(nvar)+'\n') 94 if not isempty(pinitpt): 95 fidi.write('\t '+cstring2+'_initial_point =\n') 96 vector_write(fidi,'\t ',pinitpt,6,76) 80 pinitpt = allempty(pinitpt) 81 plower = allempty(plower) 82 pupper = allempty(pupper) 83 pmean = allempty(pmean) 84 pstddev = allempty(pstddev) 85 pinitst = allempty(pinitst) 86 pstype = allempty(pstype) 87 pscale = allempty(pscale) 88 pdesc = allempty(pdesc) 97 89 98 if not isempty(plower): 99 fidi.write('\t '+cstring2+'_lower_bounds =\n') 100 vector_write(fidi,'\t ',plower ,6,76) 90 # write variables 91 print(' Writing ' + str(nvar) + ' ' + cstring + ' variables.') 101 92 102 if not isempty(pupper): 103 fidi.write('\t '+cstring2+'_upper_bounds =\n') 104 vector_write(fidi,'\t ',pupper ,6,76) 93 fidi.write('\t' + cstring + ' = ' + str(nvar) + '\n') 94 if not isempty(pinitpt): 95 fidi.write('\t ' + cstring2 + '_initial_point =\n') 96 vector_write(fidi, '\t ', pinitpt, 6, 76) 105 97 106 if not isempty(pmean):107 fidi.write('\t '+cstring2+'_means =\n')108 vector_write(fidi,'\t ',pmean ,6,76)98 if not isempty(plower): 99 fidi.write('\t ' + cstring2 + '_lower_bounds =\n') 100 vector_write(fidi, '\t ', plower, 6, 76) 109 101 110 if not isempty(pstddev):111 fidi.write('\t '+cstring2+'_std_deviations =\n')112 vector_write(fidi,'\t ',pstddev,6,76)102 if not isempty(pupper): 103 fidi.write('\t ' + cstring2 + '_upper_bounds =\n') 104 vector_write(fidi, '\t ', pupper, 6, 76) 113 105 114 if not isempty(pinitst):115 fidi.write('\t '+cstring2+'_initial_state=\n')116 vector_write(fidi,'\t ',pinitst,6,76)106 if not isempty(pmean): 107 fidi.write('\t ' + cstring2 + '_means =\n') 108 vector_write(fidi, '\t ', pmean, 6, 76) 117 109 118 if not isempty(pstype):119 fidi.write('\t '+cstring2+'_scale_types =\n')120 vector_write(fidi,'\t ',pstype ,6,76)110 if not isempty(pstddev): 111 fidi.write('\t ' + cstring2 + '_std_deviations =\n') 112 vector_write(fidi, '\t ', pstddev, 6, 76) 121 113 122 if not isempty(pscale):123 fidi.write('\t '+cstring2+'_scales=\n')124 vector_write(fidi,'\t ',pscale ,6,76)114 if not isempty(pinitst): 115 fidi.write('\t ' + cstring2 + '_initial_state =\n') 116 vector_write(fidi, '\t ', pinitst, 6, 76) 125 117 126 if not isempty(pdesc):127 fidi.write('\t '+cstring2+'_descriptors =\n')128 vector_write(fidi,'\t ',pdesc ,6,76)118 if not isempty(pstype): 119 fidi.write('\t ' + cstring2 + '_scale_types =\n') 120 vector_write(fidi, '\t ', pstype, 6, 76) 129 121 130 return 122 if not isempty(pscale): 123 fidi.write('\t ' + cstring2 + '_scales =\n') 124 vector_write(fidi, '\t ', pscale, 6, 76) 125 126 if not isempty(pdesc): 127 fidi.write('\t ' + cstring2 + '_descriptors =\n') 128 vector_write(fidi, '\t ', pdesc, 6, 76) 129 130 return -
issm/trunk-jpl/src/m/shp/shp2exp.py
r21659 r24213 3 3 from expwrite import expwrite 4 4 5 def shp2exp(shapefilename,*expfilename):6 '''7 Convert a shapefile to an .exp file. Optionally, expfilename can be8 specified to give a name for the .exp file to be created, otherwise the9 .exp file will have the same prefix as the .shp file.10 5 11 Usage: 12 shp2exp(shapefilename) 13 shp2exp(shapefilename,expfilename) 6 def shp2exp(shapefilename, * expfilename): 7 ''' 8 Convert a shapefile to an .exp file. Optionally, expfilename can be 9 specified to give a name for the .exp file to be created, otherwise the 10 .exp file will have the same prefix as the .shp file. 14 11 15 Examples: 16 shp2exp('Domain.shp') % creates Domain.exp 17 shp2exp('Domain.shp','DomainForISSM.exp') 18 ''' 19 20 if not os.path.exists(shapefilename): 21 raise IOError("shp2exp error message: file '%s' not found!" % parametername) 22 if not len(expfilename): 23 expfile=os.path.splitext(shapefilename)[0]+'.exp' 24 else: 25 expfile=expfilename[0] 12 Usage: 13 shp2exp(shapefilename) 14 shp2exp(shapefilename, expfilename) 26 15 27 shp=shapefile.Reader(shapefilename) 28 expdict=dict(density=1) 16 Examples: 17 shp2exp('Domain.shp') % creates Domain.exp 18 shp2exp('Domain.shp', 'DomainForISSM.exp') 19 ''' 29 20 30 x=[] 31 y=[] 32 for i in range(len(shp.shapes())): 33 geom=shp.shapes()[i].shapeType 34 if geom==5: # polygon 35 expdict['closed']=1 36 tmpx=[p[0] for p in shp.shapes()[i].points] 37 tmpy=[q[1] for q in shp.shapes()[i].points] 38 x.append(tmpx) 39 y.append(tmpy) 40 elif geom==3: # line 41 expdict['closed']=0 42 tmpx=[p[0] for p in shp.shapes()[i].points] 43 tmpy=[q[1] for q in shp.shapes()[i].points] 44 x.append(tmpx) 45 y.append(tmpy) 46 elif geom==1: # point 47 expdict['closed']=0 48 x.append(shp.shapes()[i].points[0][0]) 49 y.append(shp.shapes()[i].points[0][1]) 21 if not os.path.exists(shapefilename): 22 raise IOError("shp2exp error message: file '%s' not found!" % shapefilename) 23 if not len(expfilename): 24 expfile = os.path.splitext(shapefilename)[0] + '.exp' 25 else: 26 expfile = expfilename[0] 50 27 51 expdict['x']=x 52 expdict['y']=y 53 expwrite(expdict,expfile) 28 shp = shapefile.Reader(shapefilename) 29 expdict = dict(density=1) 30 31 x = [] 32 y = [] 33 for i in range(len(shp.shapes())): 34 geom = shp.shapes()[i].shapeType 35 if geom == 5: # polygon 36 expdict['closed'] = 1 37 tmpx = [p[0] for p in shp.shapes()[i].points] 38 tmpy = [q[1] for q in shp.shapes()[i].points] 39 x.append(tmpx) 40 y.append(tmpy) 41 elif geom == 3: # line 42 expdict['closed'] = 0 43 tmpx = [p[0] for p in shp.shapes()[i].points] 44 tmpy = [q[1] for q in shp.shapes()[i].points] 45 x.append(tmpx) 46 y.append(tmpy) 47 elif geom == 1: # point 48 expdict['closed'] = 0 49 x.append(shp.shapes()[i].points[0][0]) 50 y.append(shp.shapes()[i].points[0][1]) 51 52 expdict['x'] = x 53 expdict['y'] = y 54 expwrite(expdict, expfile) -
issm/trunk-jpl/src/m/solve/WriteData.py
r23772 r24213 31 31 32 32 datatype = options.getfieldvalue('format') 33 mattype = options.getfieldvalue('mattype', 0) 34 timeserieslength = options.getfieldvalue('timeserieslength', - 1)33 mattype = options.getfieldvalue('mattype', 0) #only required for matrices 34 timeserieslength = options.getfieldvalue('timeserieslength', - 1) 35 35 36 36 #Process sparse matrices 37 # if issparse(data),38 # data = full(data); 39 # end37 # if issparse(data), 38 # data = full(data) 39 # end 40 40 41 41 #Scale data if necesarry … … 44 44 scale = options.getfieldvalue('scale') 45 45 if np.size(data) > 1 and np.ndim(data) > 1 and np.size(data, 0) == timeserieslength: 46 data[0: -1, :] = scale * data[0:-1, :]46 data[0: - 1, :] = scale * data[0: - 1, :] 47 47 else: 48 48 data = scale * data … … 75 75 #first write length of record 76 76 fid.write(pack('q', 4 + 4)) #1 integer + code 77 78 77 #write data code: 79 78 fid.write(pack('i', FormatToCode(datatype))) 80 81 79 #now write integer 82 80 try: … … 90 88 fid.write(pack('q', 8 + 4)) #1 double + code 91 89 92 93 fid.write(pack('i', FormatToCode(datatype))) 94 95 90 #write data code: 91 fid.write(pack('i', FormatToCode(datatype))) 92 93 #now write double 96 94 try: 97 95 fid.write(pack('d', data)) 98 96 except error as Err: 99 97 raise ValueError('field {} cannot be marshaled, {}'.format(name, Err)) 100 98 # }}} 101 99 102 100 elif datatype == 'String': # {{{ 103 101 #first write length of record 104 102 fid.write(pack('q', len(data) + 4 + 4)) #string + string size + code 105 106 103 #write data code: 107 104 fid.write(pack('i', FormatToCode(datatype))) 108 109 105 #now write string 110 106 fid.write(pack('i', len(data))) … … 116 112 data = np.array([data]) 117 113 elif isinstance(data, (list, tuple)): 118 data = np.array(data).reshape(- 1,)114 data = np.array(data).reshape(- 1, ) 119 115 if np.ndim(data) == 1: 120 116 if np.size(data): 121 data = data.reshape(np.size(data), )117 data = data.reshape(np.size(data), ) 122 118 else: 123 119 data = data.reshape(0, 0) 124 120 125 121 #Get size 126 122 s = data.shape 127 123 #if matrix = NaN, then do not write anything 128 124 if np.ndim(data) == 2 and np.product(s) == 1 and np.all(np.isnan(data)): 129 125 s = (0, 0) 130 126 131 132 recordlength = 4 + 4 + 8 * np.product(s) + 4 + 4 127 #first write length of record 128 recordlength = 4 + 4 + 8 * np.product(s) + 4 + 4 #2 integers (32 bits) + the double matrix + code + matrix type 133 129 fid.write(pack('q', recordlength)) 134 130 135 131 #write data code and matrix type: 136 132 fid.write(pack('i', FormatToCode(datatype))) 137 133 fid.write(pack('i', mattype)) 138 134 139 135 #now write matrix 140 136 fid.write(pack('i', s[0])) 141 137 try: … … 145 141 for i in range(s[0]): 146 142 if np.ndim(data) == 1: 147 fid.write(pack('d', float(data[i]))) 143 fid.write(pack('d', float(data[i]))) #get to the "c" convention, hence the transpose 148 144 else: 149 145 for j in range(s[1]): 150 fid.write(pack('d', float(data[i][j]))) 146 fid.write(pack('d', float(data[i][j]))) #get to the "c" convention, hence the transpose 151 147 # }}} 152 148 … … 156 152 data = np.array([data]) 157 153 elif isinstance(data, (list, tuple)): 158 data = np.array(data).reshape(- 1,)154 data = np.array(data).reshape(- 1, ) 159 155 if np.ndim(data) == 1: 160 156 if np.size(data): 161 data = data.reshape(np.size(data), )157 data = data.reshape(np.size(data), ) 162 158 else: 163 159 data = data.reshape(0, 0) 164 160 165 161 #Get size 166 162 s = data.shape 167 163 #if matrix = NaN, then do not write anything 168 164 if np.ndim(data) == 1 and np.product(s) == 1 and np.all(np.isnan(data)): 169 165 s = (0, 0) 170 166 171 172 recordlength = 4 + 4 + 8 * np.product(s) + 4 + 4 167 #first write length of record 168 recordlength = 4 + 4 + 8 * np.product(s) + 4 + 4 #2 integers (32 bits) + the double matrix + code + matrix type 173 169 174 170 try: … … 177 173 raise ValueError('Field {} can not be marshaled, {}, with "number" the lenght of the record.'.format(name, Err)) 178 174 179 175 #write data code and matrix type: 180 176 fid.write(pack('i', FormatToCode(datatype))) 181 177 fid.write(pack('i', mattype)) 182 178 #now write matrix 183 179 fid.write(pack('i', s[0])) 184 180 try: … … 188 184 for i in range(s[0]): 189 185 if np.ndim(data) == 1: 190 fid.write(pack('d', float(data[i]))) 186 fid.write(pack('d', float(data[i]))) #get to the "c" convention, hence the transpose 191 187 else: 192 188 for j in range(s[1]): 193 fid.write(pack('d', float(data[i][j]))) 194 195 196 elif datatype == 'CompressedMat': 189 fid.write(pack('d', float(data[i][j]))) #get to the "c" convention, hence the transpose 190 # }}} 191 192 elif datatype == 'CompressedMat': # {{{ 197 193 if isinstance(data, (bool, int, float)): 198 194 data = np.array([data]) 199 195 elif isinstance(data, (list, tuple)): 200 data = np.array(data).reshape(- 1,)196 data = np.array(data).reshape(- 1, ) 201 197 if np.ndim(data) == 1: 202 198 if np.size(data): 203 data = data.reshape(np.size(data), )199 data = data.reshape(np.size(data), ) 204 200 else: 205 201 data = data.reshape(0, 0) 206 202 207 203 #Get size 208 204 s = data.shape 209 205 if np.ndim(data) == 1: … … 212 208 n2 = s[1] 213 209 214 210 #if matrix = NaN, then do not write anything 215 211 if np.ndim(data) == 1 and np.product(s) == 1 and np.all(np.isnan(data)): 216 212 s = (0, 0) 217 213 n2 = 0 218 214 219 215 #first write length of record 220 216 recordlength = 4 + 4 + 8 + 8 + 1 * (s[0] - 1) * n2 + 8 * n2 + 4 + 4 #2 integers (32 bits) + the matrix + code + matrix type 221 217 try: … … 224 220 raise ValueError('Field {} can not be marshaled, {}, with "number" the lenght of the record.'.format(name, Err)) 225 221 226 222 #write data code and matrix type: 227 223 fid.write(pack('i', FormatToCode(datatype))) 228 224 fid.write(pack('i', mattype)) 229 225 230 226 #Write offset and range 231 227 A = data[0:s[0] - 1] 232 228 offsetA = A.min() … … 238 234 A = (A - offsetA) / rangeA * 255. 239 235 240 236 #now write matrix 241 237 fid.write(pack('i', s[0])) 242 238 try: … … 249 245 for i in range(s[0] - 1): 250 246 fid.write(pack('B', int(A[i]))) 251 fid.write(pack('d', float(data[s[0] - 1]))) 247 fid.write(pack('d', float(data[s[0] - 1]))) #get to the "c" convention, hence the transpose 252 248 253 249 elif np.product(s) > 0: 254 250 for i in range(s[0] - 1): 255 251 for j in range(s[1]): 256 fid.write(pack('B', int(A[i][j]))) 252 fid.write(pack('B', int(A[i][j]))) #get to the "c" convention, hence the transpose 257 253 258 254 for j in range(s[1]): … … 261 257 # }}} 262 258 263 elif datatype == 'MatArray': # {{{ 264 259 elif datatype == 'MatArray': # {{{ 265 260 #first get length of record 266 recordlength = 4 + 4 261 recordlength = 4 + 4 #number of records + code 267 262 for matrix in data: 268 263 if isinstance(matrix, (bool, int, float)): 269 264 matrix = np.array([matrix]) 270 265 elif isinstance(matrix, (list, tuple)): 271 matrix = np.array(matrix).reshape(- 1,)266 matrix = np.array(matrix).reshape(- 1, ) 272 267 if np.ndim(matrix) == 1: 273 268 if np.size(matrix): 274 matrix = matrix.reshape(np.size(matrix), )269 matrix = matrix.reshape(np.size(matrix), ) 275 270 else: 276 271 matrix = matrix.reshape(0, 0) 277 272 278 273 s = matrix.shape 279 recordlength += 4 * 2 + np.product(s) * 8 280 281 274 recordlength += 4 * 2 + np.product(s) * 8 #row and col of matrix + matrix of doubles 275 276 #write length of record 282 277 fid.write(pack('q', recordlength)) 283 278 284 285 fid.write(pack('i', FormatToCode(datatype))) 286 287 279 #write data code: 280 fid.write(pack('i', FormatToCode(datatype))) 281 282 #write data, first number of records 288 283 fid.write(pack('i', len(data))) 289 284 … … 292 287 matrix = np.array([matrix]) 293 288 elif isinstance(matrix, (list, tuple)): 294 matrix = np.array(matrix).reshape(- 1,)289 matrix = np.array(matrix).reshape(- 1, ) 295 290 if np.ndim(matrix) == 1: 296 matrix = matrix.reshape(np.size(matrix), )291 matrix = matrix.reshape(np.size(matrix), ) 297 292 298 293 s = matrix.shape … … 305 300 for i in range(s[0]): 306 301 if np.ndim(matrix) == 1: 307 fid.write(pack('d', float(matrix[i]))) 302 fid.write(pack('d', float(matrix[i]))) #get to the "c" convention, hence the transpose 308 303 else: 309 304 for j in range(s[1]): … … 311 306 # }}} 312 307 313 elif datatype == 'StringArray': 308 elif datatype == 'StringArray': # {{{ 314 309 #first get length of record 315 recordlength = 4 + 4 310 recordlength = 4 + 4 #for length of array + code 316 311 for string in data: 317 recordlength += 4 + len(string) 312 recordlength += 4 + len(string) #for each string 318 313 319 314 #write length of record 320 315 fid.write(pack('q', recordlength)) 321 322 316 #write data code: 323 317 fid.write(pack('i', FormatToCode(datatype))) 324 325 318 #now write length of string array 326 319 fid.write(pack('i', len(data))) 327 328 320 #now write the strings 329 321 for string in data: … … 332 324 # }}} 333 325 334 else: 326 else: # {{{ 335 327 raise TypeError('WriteData error message: data type: {} not supported yet! ({})'.format(datatype, name)) 336 328 # }}} … … 366 358 raise IOError('FormatToCode error message: data type not supported yet!') 367 359 return code 368 # }}}360 # }}} -
issm/trunk-jpl/src/m/solve/loadresultsfromcluster.py
r24115 r24213 3 3 import platform 4 4 from loadresultsfromdisk import loadresultsfromdisk 5 6 5 from helpers import * 7 6 8 def loadresultsfromcluster(md,runtimename=False):9 """10 LOADRESULTSFROMCLUSTER - load results of solution sequence from cluster11 7 12 Usage:13 md=loadresultsfromcluster(md,runtimename);14 """8 def loadresultsfromcluster(md, runtimename=False): 9 """ 10 LOADRESULTSFROMCLUSTER - load results of solution sequence from cluster 15 11 16 #retrieve cluster, to be able to call its methods 17 cluster=md.cluster 12 Usage: 13 md = loadresultsfromcluster(md, runtimename) 14 """ 18 15 19 if runtimename:20 md.private.runtimename=runtimename16 #retrieve cluster, to be able to call its methods 17 cluster = md.cluster 21 18 22 #Download outputs from the cluster 23 filelist=[md.miscellaneous.name+'.outlog',md.miscellaneous.name+'.errlog'] 19 if runtimename: 20 md.private.runtimename = runtimename 21 22 #Download outputs from the cluster 23 filelist = [md.miscellaneous.name + '.outlog', md.miscellaneous.name + '.errlog'] 24 if md.qmu.isdakota: 25 filelist.append(md.miscellaneous.name + '.qmu.err') 26 filelist.append(md.miscellaneous.name + '.qmu.out') 27 if 'tabular_graphics_data' in fieldnames(md.qmu.params): 28 if md.qmu.params.tabular_graphics_data: 29 filelist.append('dakota_tabular.dat') 30 else: 31 filelist.append(md.miscellaneous.name + '.outbin') 32 cluster.Download(md.private.runtimename, filelist) 33 34 #If we are here, no errors in the solution sequence, call loadresultsfromdisk. 35 if os.path.exists(md.miscellaneous.name + '.outbin'): 36 if os.path.getsize(md.miscellaneous.name + '.outbin') > 0: 37 md = loadresultsfromdisk(md, md.miscellaneous.name + '.outbin') 38 else: 39 print(('WARNING, outbin file is empty for run ' + md.miscellaneous.name)) 40 elif not md.qmu.isdakota: 41 print(('WARNING, outbin file does not exist ' + md.miscellaneous.name)) 42 43 #erase the log and output files 44 if md.qmu.isdakota: 45 #filename = os.path.join('qmu' + str(os.getpid()), md.miscellaneous.name) 46 filename = md.miscellaneous.name 47 48 # this will not work like normal as dakota doesn't generate outbin files, 49 # instead calls postqmu to store results directly in the model 50 # at md.results.dakota via dakota_out_parse 51 md = loadresultsfromdisk(md, md.miscellaneous.name + '.outbin') 52 else: 53 filename = md.miscellaneous.name 54 TryRem('.outbin', filename) 55 if not platform.system() == 'Windows': 56 TryRem('.tar.gz', md.private.runtimename) 57 58 TryRem('.errlog', filename) 59 TryRem('.outlog', filename) 60 61 #erase input file if run was carried out on same platform. 62 hostname = socket.gethostname() 63 if hostname == cluster.name: 24 64 if md.qmu.isdakota: 25 filelist.append(md.miscellaneous.name+'.qmu.err') 26 filelist.append(md.miscellaneous.name+'.qmu.out') 27 if 'tabular_graphics_data' in fieldnames(md.qmu.params): 28 if md.qmu.params.tabular_graphics_data: 29 filelist.append('dakota_tabular.dat') 65 #filename = os.path.join('qmu' + str(os.getpid()), md.miscellaneous.name) 66 filename = md.miscellaneous.name 67 TryRem('.queue', filename) 30 68 else: 31 filelist.append(md.miscellaneous.name+'.outbin') 32 cluster.Download(md.private.runtimename,filelist) 69 filename = md.miscellaneous.name 70 TryRem('.toolkits', filename) 71 if not platform.system() == 'Windows': 72 TryRem('.queue', filename) 73 else: 74 TryRem('.bat', filename) 33 75 34 #If we are here, no errors in the solution sequence, call loadresultsfromdisk. 35 if os.path.exists(md.miscellaneous.name+'.outbin'): 36 if os.path.getsize(md.miscellaneous.name+'.outbin')>0: 37 md=loadresultsfromdisk(md,md.miscellaneous.name+'.outbin') 38 else: 39 print(('WARNING, outbin file is empty for run '+md.miscellaneous.name)) 40 elif not md.qmu.isdakota: 41 print(('WARNING, outbin file does not exist '+md.miscellaneous.name)) 76 # remove this for bin file debugging 77 TryRem('.bin', filename) 42 78 43 #erase the log and output files44 45 #filename=os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name)46 filename = md.miscellaneous.name79 #cwd = os.getcwd().split('/')[-1] 80 if md.qmu.isdakota: 81 os.chdir('..') 82 #TryRem('', cwd) 47 83 48 # this will not work like normal as dakota doesn't generate outbin files, 49 # instead calls postqmu to store results directly in the model 50 # at md.results.dakota via dakota_out_parse 51 md=loadresultsfromdisk(md,md.miscellaneous.name+'.outbin') 52 else: 53 filename=md.miscellaneous.name 54 TryRem('.outbin',filename) 55 if not platform.system()=='Windows': 56 TryRem('.tar.gz',md.private.runtimename) 84 return md 57 85 58 TryRem('.errlog',filename)59 TryRem('.outlog',filename)60 86 61 #erase input file if run was carried out on same platform. 62 hostname=socket.gethostname() 63 if hostname==cluster.name: 64 if md.qmu.isdakota: 65 #filename=os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name) 66 filename = md.miscellaneous.name 67 TryRem('.queue',filename) 68 else: 69 filename=md.miscellaneous.name 70 TryRem('.toolkits',filename) 71 if not platform.system()=='Windows': 72 TryRem('.queue',filename) 73 else: 74 TryRem('.bat',filename) 75 76 # remove this for bin file debugging 77 TryRem('.bin',filename) 78 79 #cwd = os.getcwd().split('/')[-1] 80 if md.qmu.isdakota: 81 os.chdir('..') 82 #TryRem('',cwd) 83 84 return md 85 86 def TryRem(extension,filename): 87 try: 88 os.remove(filename+extension) 89 except OSError: 90 print(('WARNING, no '+extension+' is present for run '+filename)) 87 def TryRem(extension, filename): 88 try: 89 os.remove(filename + extension) 90 except OSError: 91 print(('WARNING, no ' + extension + ' is present for run ' + filename)) -
issm/trunk-jpl/src/m/solve/loadresultsfromdisk.py
r24115 r24213 5 5 6 6 7 def loadresultsfromdisk(md, filename):7 def loadresultsfromdisk(md, filename): 8 8 """ 9 9 LOADRESULTSFROMDISK - load results of solution sequence from disk file "filename" 10 10 11 11 Usage: 12 md =loadresultsfromdisk(md=False,filename=False);12 md = loadresultsfromdisk(md = False, filename = False) 13 13 """ 14 14 15 #check number of inputs /outputs15 #check number of inputs / outputs 16 16 if not md or not filename: 17 17 raise ValueError("loadresultsfromdisk: error message.") … … 24 24 25 25 #initialize md.results if not a structure yet 26 if not isinstance(md.results, results):27 md.results =results()26 if not isinstance(md.results, results): 27 md.results = results() 28 28 29 #load results onto model30 structure =parseresultsfromdisk(md,filename,not md.settings.io_gather)29 #load results onto model 30 structure = parseresultsfromdisk(md, filename, not md.settings.io_gather) 31 31 if not len(structure): 32 32 raise RuntimeError("No result found in binary file '{}'. Check for solution crash.".format(filename)) 33 33 34 setattr(md.results, structure[0].SolutionType,structure)34 setattr(md.results, structure[0].SolutionType, structure) 35 35 36 36 #recover solution_type from results 37 md.private.solution =structure[0].SolutionType37 md.private.solution = structure[0].SolutionType 38 38 39 39 #read log files onto fields 40 if os.path.exists(md.miscellaneous.name +'.errlog'):41 with open(md.miscellaneous.name+'.errlog','r') as f:42 setattr(getattr(md.results,structure[0].SolutionType)[0],'errlog',[line[:-1] for line in f])40 if os.path.exists(md.miscellaneous.name + '.errlog'): 41 with open(md.miscellaneous.name + '.errlog', 'r') as f: 42 setattr(getattr(md.results, structure[0].SolutionType)[0], 'errlog', [line[: - 1] for line in f]) 43 43 else: 44 setattr(getattr(md.results,structure[0].SolutionType)[0],'errlog',[])44 setattr(getattr(md.results, structure[0].SolutionType)[0], 'errlog', []) 45 45 46 if os.path.exists(md.miscellaneous.name +'.outlog'):47 with open(md.miscellaneous.name+'.outlog','r') as f:48 setattr(getattr(md.results,structure[0].SolutionType)[0],'outlog',[line[:-1] for line in f])46 if os.path.exists(md.miscellaneous.name + '.outlog'): 47 with open(md.miscellaneous.name + '.outlog', 'r') as f: 48 setattr(getattr(md.results, structure[0].SolutionType)[0], 'outlog', [line[: - 1] for line in f]) 49 49 else: 50 setattr(getattr(md.results,structure[0].SolutionType)[0],'outlog',[])50 setattr(getattr(md.results, structure[0].SolutionType)[0], 'outlog', []) 51 51 52 if len(getattr(md.results, structure[0].SolutionType)[0].errlog):53 print("loadresultsfromcluster info message: error during solution. Check your errlog and outlog model fields.")52 if len(getattr(md.results, structure[0].SolutionType)[0].errlog): 53 print("loadresultsfromcluster info message: error during solution. Check your errlog and outlog model fields.") 54 54 55 55 #if only one solution, extract it from list for user friendliness 56 if len(structure) == 1 and not structure[0].SolutionType =='TransientSolution':57 setattr(md.results,structure[0].SolutionType,structure[0])56 if len(structure) == 1 and not structure[0].SolutionType == 'TransientSolution': 57 setattr(md.results, structure[0].SolutionType, structure[0]) 58 58 59 59 #post processes qmu results if necessary 60 60 else: 61 md =postqmu(md,filename)61 md = postqmu(md, filename) 62 62 63 63 return md -
issm/trunk-jpl/src/m/solve/marshall.py
r24115 r24213 7 7 8 8 The routine creates a compatible binary file from @model md 9 This binary file will be used for parallel runs in JPL -package9 This binary file will be used for parallel runs in JPL - package 10 10 11 11 Usage: … … 19 19 fid = open(md.miscellaneous.name + '.bin', 'wb') 20 20 except IOError as e: 21 raise IOError("marshall error message: could not open '%s.bin' file for binary writing. " % md.miscellaneous.name)21 raise IOError("marshall error message: could not open '%s.bin' file for binary writing. Due to: ".format(md.miscellaneous.name), e) 22 22 23 23 for field in md.properties(): 24 25 24 #Some properties do not need to be marshalled 26 25 if field in ['results', 'radaroverlay', 'toolkits', 'cluster', 'private']: 27 26 continue 28 27 29 28 #Check that current field is an object 30 29 if not hasattr(getattr(md, field), 'marshall'): 31 30 raise TypeError("field '{}' is not an object.".format(field)) 32 31 33 34 35 exec("md.{}.marshall('md.{}', md,fid)".format(field, field))32 #Marshall current object 33 #print "marshalling %s ..." % field 34 exec("md.{}.marshall('md.{}', md, fid)".format(field, field)) 36 35 37 36 #Last, write "md.EOF" to make sure that the binary file is not corrupt … … 42 41 fid.close() 43 42 except IOError as e: 44 raise IOError("marshall error message: could not close file '%s.bin'." % md.miscellaneous.name)43 print("marshall error message: could not close file '{}.bin' due to:".format(md.miscellaneous.name), e) -
issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py
r23921 r24213 13 13 14 14 15 def parseresultsfromdiskioserial(md, filename): 15 def parseresultsfromdiskioserial(md, filename): # {{{ 16 16 #Open file 17 17 try: … … 31 31 32 32 while loadres: 33 #check that the new result does not add a step, 33 #check that the new result does not add a step, which would be an error: 34 34 if check_nomoresteps: 35 35 if loadres['step'] >= 1: 36 raise TypeError("parsing results for a steady -state core,which incorporates transient results!")37 38 #Check step, 36 raise TypeError("parsing results for a steady - state core, which incorporates transient results!") 37 38 #Check step, increase counter if this is a new step 39 39 if(step != loadres['step'] and loadres['step'] > 1): 40 40 counter = counter + 1 … … 43 43 #Add result 44 44 if loadres['step'] == 0: 45 #if we have a step = 0, this is a steady state solution,don't expect more steps.45 #if we have a step = 0, this is a steady state solution, don't expect more steps. 46 46 index = 0 47 47 check_nomoresteps = 1 … … 58 58 saveres[index] = resultsclass.results() 59 59 60 61 if loadres['step'] != - 9999.:60 #Get time and step 61 if loadres['step'] != - 9999.: 62 62 saveres[index].__dict__['step'] = loadres['step'] 63 if loadres['time'] != - 9999.:63 if loadres['time'] != - 9999.: 64 64 saveres[index].__dict__['time'] = loadres['time'] 65 65 66 66 #Add result 67 67 saveres[index].__dict__[loadres['fieldname']] = loadres['field'] 68 68 69 69 #read next result 70 70 loadres = ReadData(fid, md) 71 71 … … 76 76 77 77 78 def parseresultsfromdiskiosplit(md, filename): 78 def parseresultsfromdiskiosplit(md, filename): # {{{ 79 79 #Open file 80 80 try: … … 85 85 saveres = [] 86 86 87 #if we have done split I /O, ie,we have results that are fragmented across patches,88 #do a first pass, 87 #if we have done split I / O, ie, we have results that are fragmented across patches, 88 #do a first pass, and figure out the structure of results 89 89 loadres = ReadDataDimensions(fid) 90 90 while loadres: … … 98 98 setattr(saveres[loadres['step'] - 1], 'time', loadres['time']) 99 99 100 100 #Add result 101 101 setattr(saveres[loadres['step'] - 1], loadres['fieldname'], float('NaN')) 102 103 #read next result 104 loadres = ReadDataDimensions(fid) 105 106 #do a second pass, and figure out the size of the patches 107 fid.seek(0) #rewind 108 loadres = ReadDataDimensions(fid) 109 while loadres: 102 110 103 111 #read next result 104 112 loadres = ReadDataDimensions(fid) 105 113 106 #do a second pass, and figure out the size of the patches 107 fid.seek(0) #rewind 108 loadres = ReadDataDimensions(fid) 109 while loadres: 110 111 #read next result 112 loadres = ReadDataDimensions(fid) 113 114 #third pass, this time to read the real information 115 fid.seek(0) #rewind 114 #third pass, this time to read the real information 115 fid.seek(0) #rewind 116 116 loadres = ReadData(fid, md) 117 117 while loadres: … … 125 125 setattr(saveres[loadres['step'] - 1], 'time', loadres['time']) 126 126 127 127 #Add result 128 128 setattr(saveres[loadres['step'] - 1], loadres['fieldname'], loadres['field']) 129 129 130 130 #read next result 131 131 loadres = ReadData(fid, md) 132 132 … … 138 138 139 139 140 def ReadData(fid, md): 140 def ReadData(fid, md): # {{{ 141 141 """ 142 142 READDATA - … … 149 149 try: 150 150 length = struct.unpack('i', fid.read(struct.calcsize('i')))[0] 151 fieldname = struct.unpack('{}s'.format(length), fid.read(length))[0][: -1]151 fieldname = struct.unpack('{}s'.format(length), fid.read(length))[0][: - 1] 152 152 fieldname = fieldname.decode() #strings are binaries when stored so need to be converted back 153 153 time = struct.unpack('d', fid.read(struct.calcsize('d')))[0] … … 159 159 160 160 elif datatype == 2: 161 field = struct.unpack('{}s'.format(M), fid.read(M))[0][: -1]161 field = struct.unpack('{}s'.format(M), fid.read(M))[0][: - 1] 162 162 field = field.decode() 163 163 164 164 elif datatype == 3: 165 165 N = struct.unpack('i', fid.read(struct.calcsize('i')))[0] 166 #field = transpose(fread(fid, [N M], 'double'));166 #field = transpose(fread(fid, [N M], 'double')) 167 167 field = np.zeros(shape=(M, N), dtype=float) 168 168 for i in range(M): … … 171 171 elif datatype == 4: 172 172 N = struct.unpack('i', fid.read(struct.calcsize('i')))[0] 173 # field = transpose(fread(fid, [N M], 'int'));173 # field = transpose(fread(fid, [N M], 'int')) 174 174 field = np.zeros(shape=(M, N), dtype=int) 175 175 for i in range(M): … … 179 179 raise TypeError("cannot read data of datatype {}".format(datatype)) 180 180 181 181 #Process units here FIXME: this should not be done here! 182 182 yts = md.constants.yts 183 183 if fieldname == 'BalancethicknessThickeningRate': … … 200 200 field = field * yts 201 201 elif fieldname == 'TotalFloatingBmb': 202 field = field / 10.**12 * yts #(GigaTon /year)202 field = field / 10.**12 * yts #(GigaTon / year) 203 203 elif fieldname == 'TotalFloatingBmbScaled': 204 field = field / 10.**12 * yts #(GigaTon /year)204 field = field / 10.**12 * yts #(GigaTon / year) 205 205 elif fieldname == 'TotalGroundedBmb': 206 field = field / 10.**12 * yts #(GigaTon /year)206 field = field / 10.**12 * yts #(GigaTon / year) 207 207 elif fieldname == 'TotalGroundedBmbScaled': 208 field = field / 10.**12 * yts #(GigaTon /year)208 field = field / 10.**12 * yts #(GigaTon / year) 209 209 elif fieldname == 'TotalSmb': 210 field = field / 10.**12 * yts #(GigaTon /year)210 field = field / 10.**12 * yts #(GigaTon / year) 211 211 elif fieldname == 'TotalSmbScaled': 212 field = field / 10.**12 * yts #(GigaTon /year)212 field = field / 10.**12 * yts #(GigaTon / year) 213 213 elif fieldname == 'GroundinglineMassFlux': 214 field = field / 10.**12 * yts #(GigaTon/year)214 field = field / 10.**12 * yts #(GigaTon / year) 215 215 elif fieldname == 'IcefrontMassFlux': 216 field = field / 10.**12 * yts #(GigaTon/year)216 field = field / 10.**12 * yts #(GigaTon / year) 217 217 elif fieldname == 'IcefrontMassFluxLevelset': 218 field = field / 10.**12 * yts #(GigaTon/year)218 field = field / 10.**12 * yts #(GigaTon / year) 219 219 elif fieldname == 'SmbMassBalance': 220 220 field = field * yts … … 241 241 degmax = md.love.sh_nmax 242 242 nfreq = md.love.nfreq 243 #for numpy 1.8+ only244 #temp_field = np.full((degmax+1, nfreq, nlayer+1, 6), 0.0)243 #for numpy 1.8 + only 244 #temp_field = np.full((degmax + 1, nfreq, nlayer + 1, 6), 0.0) 245 245 temp_field = np.empty((degmax + 1, nfreq, nlayer + 1, 6)) 246 246 temp_field.fill(0.0) … … 253 253 field = temp_field 254 254 255 if time != - 9999:255 if time != - 9999: 256 256 time = time / yts 257 257 … … 269 269 270 270 271 def ReadDataDimensions(fid): 271 def ReadDataDimensions(fid): # {{{ 272 272 """ 273 READDATADIMENSIONS - read data dimensions, step and time,but not the data itself.273 READDATADIMENSIONS - read data dimensions, step and time, but not the data itself. 274 274 275 275 Usage: … … 280 280 try: 281 281 length = struct.unpack('i', fid.read(struct.calcsize('i')))[0] 282 fieldname = struct.unpack('{}s'.format(length), fid.read(length))[0][: -1]282 fieldname = struct.unpack('{}s'.format(length), fid.read(length))[0][: - 1] 283 283 time = struct.unpack('d', fid.read(struct.calcsize('d')))[0] 284 284 step = struct.unpack('i', fid.read(struct.calcsize('i')))[0] 285 285 datatype = struct.unpack('i', fid.read(struct.calcsize('i')))[0] 286 286 M = struct.unpack('i', fid.read(struct.calcsize('i')))[0] 287 N = 1 287 N = 1 #default 288 288 if datatype == 1: 289 289 fid.seek(M * 8, 1) -
issm/trunk-jpl/src/m/solve/solve.py
r23716 r24213 10 10 #from MatlabFuncs import * 11 11 12 def solve(md,solutionstring,*args):13 """14 SOLVE - apply solution sequence for this model15 12 16 Usage:17 md=solve(md,solutionstring,varargin) 18 where varargin is a list of paired arguments of string OR enums 13 def solve(md, solutionstring, *args): 14 """ 15 SOLVE - apply solution sequence for this model 19 16 20 solution types available comprise: 21 - 'Stressbalance' or 'sb' 22 - 'Masstransport' or 'mt' 23 - 'Thermal' or 'th' 24 - 'Steadystate' or 'ss' 25 - 'Transient' or 'tr' 26 - 'Balancethickness' or 'mc' 27 - 'Balancevelocity' or 'bv' 28 - 'BedSlope' or 'bsl' 29 - 'SurfaceSlope' or 'ssl' 30 - 'Hydrology' or 'hy' 31 - 'DamageEvolution' or 'da' 32 - 'Gia' or 'gia' 33 - 'Esa' or 'esa' 34 - 'Sealevelrise' or 'slr' 35 - 'Love' or 'lv' 17 Usage: 18 md = solve(md, solutionstring, varargin) 19 where varargin is a list of paired arguments of string OR enums 36 20 37 extra options: 38 - loadonly : does not solve. only load results 39 - checkconsistency : 'yes' or 'no' (default is 'yes'), ensures checks on consistency of model 40 - restart: 'directory name (relative to the execution directory) where the restart file is located. 21 solution types available comprise: 22 - 'Stressbalance' or 'sb' 23 - 'Masstransport' or 'mt' 24 - 'Thermal' or 'th' 25 - 'Steadystate' or 'ss' 26 - 'Transient' or 'tr' 27 - 'Balancethickness' or 'mc' 28 - 'Balancevelocity' or 'bv' 29 - 'BedSlope' or 'bsl' 30 - 'SurfaceSlope' or 'ssl' 31 - 'Hydrology' or 'hy' 32 - 'DamageEvolution' or 'da' 33 - 'Gia' or 'gia' 34 - 'Esa' or 'esa' 35 - 'Sealevelrise' or 'slr' 36 - 'Love' or 'lv' 41 37 42 Examples:43 md=solve(md,'Stressbalance'); 44 md=solve(md,'sb');45 """ 38 extra options: 39 - loadonly : does not solve. only load results 40 - checkconsistency : 'yes' or 'no' (default is 'yes'), ensures checks on consistency of model 41 - restart: 'directory name (relative to the execution directory) where the restart file is located. 46 42 47 #recover and process solve options 48 if solutionstring.lower() == 'sb' or solutionstring.lower() == 'stressbalance': 49 solutionstring = 'StressbalanceSolution'; 50 elif solutionstring.lower() == 'mt' or solutionstring.lower() == 'masstransport': 51 solutionstring = 'MasstransportSolution'; 52 elif solutionstring.lower() == 'th' or solutionstring.lower() == 'thermal': 53 solutionstring = 'ThermalSolution'; 54 elif solutionstring.lower() == 'st' or solutionstring.lower() == 'steadystate': 55 solutionstring = 'SteadystateSolution'; 56 elif solutionstring.lower() == 'tr' or solutionstring.lower() == 'transient': 57 solutionstring = 'TransientSolution'; 58 elif solutionstring.lower() == 'mc' or solutionstring.lower() == 'balancethickness': 59 solutionstring = 'BalancethicknessSolution'; 60 elif solutionstring.lower() == 'bv' or solutionstring.lower() == 'balancevelocity': 61 solutionstring = 'BalancevelocitySolution'; 62 elif solutionstring.lower() == 'bsl' or solutionstring.lower() == 'bedslope': 63 solutionstring = 'BedSlopeSolution'; 64 elif solutionstring.lower() == 'ssl' or solutionstring.lower() == 'surfaceslope': 65 solutionstring = 'SurfaceSlopeSolution'; 66 elif solutionstring.lower() == 'hy' or solutionstring.lower() == 'hydrology': 67 solutionstring = 'HydrologySolution'; 68 elif solutionstring.lower() == 'da' or solutionstring.lower() == 'damageevolution': 69 solutionstring = 'DamageEvolutionSolution'; 70 elif solutionstring.lower() == 'gia' or solutionstring.lower() == 'gia': 71 solutionstring = 'GiaSolution'; 72 elif solutionstring.lower() == 'lv' or solutionstring.lower() == 'love': 73 solutionstring = 'LoveSolution'; 74 elif solutionstring.lower() == 'esa': 75 solutionstring = 'EsaSolution'; 76 elif solutionstring.lower() == 'slr' or solutionstring.lower() == 'sealevelrise': 77 solutionstring = 'SealevelriseSolution'; 78 else: 79 raise ValueError("solutionstring '%s' not supported!" % solutionstring) 80 options=pairoptions('solutionstring',solutionstring,*args) 43 Examples: 44 md = solve(md, 'Stressbalance') 45 md = solve(md, 'sb') 46 """ 81 47 82 #recover some fields 83 md.private.solution=solutionstring 84 cluster=md.cluster 85 if options.getfieldvalue('batch','no')=='yes': 86 batch=1 87 else: 88 batch=0; 48 #recover and process solve options 49 if solutionstring.lower() == 'sb' or solutionstring.lower() == 'stressbalance': 50 solutionstring = 'StressbalanceSolution' 51 elif solutionstring.lower() == 'mt' or solutionstring.lower() == 'masstransport': 52 solutionstring = 'MasstransportSolution' 53 elif solutionstring.lower() == 'th' or solutionstring.lower() == 'thermal': 54 solutionstring = 'ThermalSolution' 55 elif solutionstring.lower() == 'st' or solutionstring.lower() == 'steadystate': 56 solutionstring = 'SteadystateSolution' 57 elif solutionstring.lower() == 'tr' or solutionstring.lower() == 'transient': 58 solutionstring = 'TransientSolution' 59 elif solutionstring.lower() == 'mc' or solutionstring.lower() == 'balancethickness': 60 solutionstring = 'BalancethicknessSolution' 61 elif solutionstring.lower() == 'bv' or solutionstring.lower() == 'balancevelocity': 62 solutionstring = 'BalancevelocitySolution' 63 elif solutionstring.lower() == 'bsl' or solutionstring.lower() == 'bedslope': 64 solutionstring = 'BedSlopeSolution' 65 elif solutionstring.lower() == 'ssl' or solutionstring.lower() == 'surfaceslope': 66 solutionstring = 'SurfaceSlopeSolution' 67 elif solutionstring.lower() == 'hy' or solutionstring.lower() == 'hydrology': 68 solutionstring = 'HydrologySolution' 69 elif solutionstring.lower() == 'da' or solutionstring.lower() == 'damageevolution': 70 solutionstring = 'DamageEvolutionSolution' 71 elif solutionstring.lower() == 'gia' or solutionstring.lower() == 'gia': 72 solutionstring = 'GiaSolution' 73 elif solutionstring.lower() == 'lv' or solutionstring.lower() == 'love': 74 solutionstring = 'LoveSolution' 75 elif solutionstring.lower() == 'esa': 76 solutionstring = 'EsaSolution' 77 elif solutionstring.lower() == 'slr' or solutionstring.lower() == 'sealevelrise': 78 solutionstring = 'SealevelriseSolution' 79 else: 80 raise ValueError("solutionstring '%s' not supported!" % solutionstring) 81 options = pairoptions('solutionstring', solutionstring, *args) 89 82 90 #check model consistency 91 if options.getfieldvalue('checkconsistency','yes')=='yes': 92 if md.verbose.solution: 93 print("checking model consistency") 94 ismodelselfconsistent(md) 83 #recover some fields 84 md.private.solution = solutionstring 85 cluster = md.cluster 86 if options.getfieldvalue('batch', 'no') == 'yes': 87 batch = 1 88 else: 89 batch = 0 95 90 96 #First, build a runtime name that is unique 97 restart=options.getfieldvalue('restart','') 98 if restart == 1: 99 pass #do nothing 100 else: 101 if restart: 102 md.private.runtimename=restart 103 else: 104 if options.getfieldvalue('runtimename',True): 105 c=datetime.datetime.now() 106 md.private.runtimename="%s-%02i-%02i-%04i-%02i-%02i-%02i-%i" % (md.miscellaneous.name,c.month,c.day,c.year,c.hour,c.minute,c.second,os.getpid()) 107 else: 108 md.private.runtimename=md.miscellaneous.name 91 #check model consistency 92 if options.getfieldvalue('checkconsistency', 'yes') == 'yes': 93 if md.verbose.solution: 94 print("checking model consistency") 95 ismodelselfconsistent(md) 109 96 110 #if running qmu analysis, some preprocessing of dakota files using models 111 #fields needs to be carried out. 112 if md.qmu.isdakota: 113 md=preqmu(md,options) 97 #First, build a runtime name that is unique 98 restart = options.getfieldvalue('restart', '') 99 if restart == 1: 100 pass #do nothing 101 else: 102 if restart: 103 md.private.runtimename = restart 104 else: 105 if options.getfieldvalue('runtimename', True): 106 c = datetime.datetime.now() 107 md.private.runtimename = "%s-%02i-%02i-%04i-%02i-%02i-%02i-%i" % (md.miscellaneous.name, c.month, c.day, c.year, c.hour, c.minute, c.second, os.getpid()) 108 else: 109 md.private.runtimename = md.miscellaneous.name 114 110 115 #Do we load results only? 116 if options.getfieldvalue('loadonly',False): 117 md=loadresultsfromcluster(md) 118 return md 111 #if running qmu analysis, some preprocessing of dakota files using models 112 #fields needs to be carried out. 113 if md.qmu.isdakota: 114 md = preqmu(md, options) 119 115 116 #Do we load results only? 117 if options.getfieldvalue('loadonly', False): 118 md = loadresultsfromcluster(md) 119 return md 120 120 121 122 marshall(md)# bin file123 md.toolkits.ToolkitsFile(md.miscellaneous.name+'.toolkits')# toolkits file124 cluster.BuildQueueScript(md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota,md.transient.isoceancoupling)# queue file121 #Write all input files 122 marshall(md) # bin file 123 md.toolkits.ToolkitsFile(md.miscellaneous.name + '.toolkits') # toolkits file 124 cluster.BuildQueueScript(md.private.runtimename, md.miscellaneous.name, md.private.solution, md.settings.io_gather, md.debug.valgrind, md.debug.gprof, md.qmu.isdakota, md.transient.isoceancoupling) # queue file 125 125 126 127 if options.getfieldvalue('batch','no')=='yes':128 129 130 126 #Stop here if batch mode 127 if options.getfieldvalue('batch', 'no') == 'yes': 128 print('batch mode requested: not launching job interactively') 129 print('launch solution sequence on remote cluster by hand') 130 return md 131 131 132 133 134 filelist = [modelname+'.bin ',modelname+'.toolkits ',modelname+'.queue ']135 136 filelist.append(modelname+'.qmu.in')132 #Upload all required files: 133 modelname = md.miscellaneous.name 134 filelist = [modelname + '.bin ', modelname + '.toolkits ', modelname + '.queue '] 135 if md.qmu.isdakota: 136 filelist.append(modelname + '.qmu.in') 137 137 138 139 cluster.UploadQueueJob(md.miscellaneous.name,md.private.runtimename,filelist)138 if not restart: 139 cluster.UploadQueueJob(md.miscellaneous.name, md.private.runtimename, filelist) 140 140 141 142 cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist,restart,batch)141 #Launch job 142 cluster.LaunchQueueJob(md.miscellaneous.name, md.private.runtimename, filelist, restart, batch) 143 143 144 145 if md.settings.waitonlock>0:146 147 islock=waitonlock(md)148 if islock==0:#no results to be loaded149 print('The results must be loaded manually with md=loadresultsfromcluster(md).')150 else:#load results151 152 153 md=loadresultsfromcluster(md)144 #wait on lock 145 if md.settings.waitonlock > 0: 146 #we wait for the done file 147 islock = waitonlock(md) 148 if islock == 0: #no results to be loaded 149 print('The results must be loaded manually with md = loadresultsfromcluster(md).') 150 else: #load results 151 if md.verbose.solution: 152 print('loading results from cluster') 153 md = loadresultsfromcluster(md) 154 154 155 156 157 if not strncmpi(options.getfieldvalue('keep','y'),'y',1):158 shutil.rmtree('qmu'+str(os.getpid()))155 #post processes qmu results if necessary 156 if md.qmu.isdakota: 157 if not strncmpi(options.getfieldvalue('keep', 'y'), 'y', 1): 158 shutil.rmtree('qmu' + str(os.getpid())) 159 159 160 160 return md -
issm/trunk-jpl/src/m/solve/waitonlock.py
r23716 r24213 4 4 import MatlabFuncs as m 5 5 6 6 7 def waitonlock(md): 7 """ 8 WAITONLOCK - wait for a file 9 10 This routine will return when a file named 'filename' is written to disk. 11 If the time limit given in input is exceeded, return 0 12 13 Usage: 14 flag=waitonlock(md) 15 """ 8 """ 9 WAITONLOCK - wait for a file 16 10 17 #Get filename (lock file) and options 18 executionpath=md.cluster.executionpath 19 cluster=md.cluster.name 20 login=md.cluster.login 21 port=md.cluster.port 22 timelimit=md.settings.waitonlock 23 filename=os.path.join(executionpath,md.private.runtimename,md.miscellaneous.name+'.lock') 11 This routine will return when a file named 'filename' is written to disk. 12 If the time limit given in input is exceeded, return 0 24 13 25 #waitonlock will work if the lock is on the same machine only: 26 if not m.strcmpi(gethostname(),cluster): 14 Usage: 15 flag = waitonlock(md) 16 """ 27 17 28 print('solution launched on remote cluster. log in to detect job completion.') 29 choice=eval(input('Is the job successfully completed? (y/n) ')) 30 if not m.strcmp(choice,'y'): 31 print('Results not loaded... exiting') 32 flag=0 33 else: 34 flag=1 18 #Get filename (lock file) and options 19 executionpath = md.cluster.executionpath 20 cluster = md.cluster.name 21 timelimit = md.settings.waitonlock 22 filename = os.path.join(executionpath, md.private.runtimename, md.miscellaneous.name + '.lock') 35 23 36 #job is running on the same machine 37 else:24 #waitonlock will work if the lock is on the same machine only: 25 if not m.strcmpi(gethostname(), cluster): 38 26 39 if 'interactive' in vars(md.cluster) and md.cluster.interactive: 40 #We are in interactive mode, no need to check for job completion 41 flag=1 42 return flag 43 #initialize time and file presence test flag 44 etime=0 45 ispresent=0 46 print(("waiting for '%s' hold on... (Ctrl+C to exit)" % filename)) 27 print('solution launched on remote cluster. log in to detect job completion.') 28 choice = eval(input('Is the job successfully completed? (y / n) ')) 29 if not m.strcmp(choice, 'y'): 30 print('Results not loaded... exiting') 31 flag = 0 32 else: 33 flag = 1 47 34 48 #loop till file .lock exist or time is up 49 while ispresent==0 and etime<timelimit: 50 ispresent=os.path.exists(filename) 51 time.sleep(1) 52 etime+=1/60 35 #job is running on the same machine 36 else: 53 37 54 #build output 55 if etime>timelimit: 56 print('Time limit exceeded. Increase md.settings.waitonlock') 57 print('The results must be loaded manually with md=loadresultsfromcluster(md).') 58 raise RuntimeError('waitonlock error message: time limit exceeded.') 59 flag=060 else: 61 flag=1 38 if 'interactive' in vars(md.cluster) and md.cluster.interactive: 39 #We are in interactive mode, no need to check for job completion 40 flag = 1 41 return flag 42 #initialize time and file presence test flag 43 etime = 0 44 ispresent = 0 45 print(("waiting for '%s' hold on... (Ctrl + C to exit)" % filename)) 62 46 63 return flag 47 #loop till file .lock exist or time is up 48 while ispresent == 0 and etime < timelimit: 49 ispresent = os.path.exists(filename) 50 time.sleep(1) 51 etime += 1 / 60 64 52 53 #build output 54 if etime > timelimit: 55 print('Time limit exceeded. Increase md.settings.waitonlock') 56 print('The results must be loaded manually with md = loadresultsfromcluster(md).') 57 raise RuntimeError('waitonlock error message: time limit exceeded.') 58 flag = 0 59 else: 60 flag = 1 61 62 return flag -
issm/trunk-jpl/src/m/solvers/asmoptions.py
r21988 r24213 1 1 import pairoptions 2 2 3 3 4 def asmoptions(*args): 4 #ASMOPTIONS - return ASM petsc options 5 # 6 # Usage: 7 # options=asmoptions; 8 9 #retrieve options provided in varargin 10 arguments=pairoptions.pairoptions(*args) 11 12 options=[['toolkit','petsc'],['mat_type','mpiaij'],['ksp_type','gmres'],['pc_type','asm'],['sub_pc_type','lu'],['pc_asm_overlap',3],['ksp_max_it',100],['ksp_rtol',1e-30]]; 5 #ASMOPTIONS - return ASM petsc options 6 # 7 # Usage: 8 # options = asmoptions 13 9 14 #now, go through our arguments, and write over default options. 15 for i in range(len(arguments.list)): 16 arg1=arguments.list[i][0] 17 arg2=arguments.list[i][1] 18 found=0; 19 for j in range(len(options)): 20 joption=options[j][0] 21 if joption==arg1: 22 joption[1]=arg2; 23 options[j]=joption; 24 found=1; 25 break 26 if not found: 27 #this option did not exist, add it: 28 options.append([arg1,arg2]) 29 return options 10 #retrieve options provided in varargin 11 arguments = pairoptions.pairoptions(*args) 12 13 options = [['toolkit', 'petsc'], 14 ['mat_type', 'mpiaij'], 15 ['ksp_type', 'gmres'], 16 ['pc_type', 'asm'], 17 ['sub_pc_type', 'lu'], 18 ['pc_asm_overlap', 3], 19 ['ksp_max_it', 100], 20 ['ksp_rtol', 1e-30]] 21 22 #now, go through our arguments, and write over default options. 23 for i in range(len(arguments.list)): 24 arg1 = arguments.list[i][0] 25 arg2 = arguments.list[i][1] 26 found = 0 27 for j in range(len(options)): 28 joption = options[j][0] 29 if joption == arg1: 30 joption[1] = arg2 31 options[j] = joption 32 found = 1 33 break 34 if not found: 35 #this option did not exist, add it: 36 options.append([arg1, arg2]) 37 return options -
issm/trunk-jpl/src/m/solvers/iluasmoptions.py
r21990 r24213 2 2 import pairoptions 3 3 4 4 5 def iluasmoptions(*args): 5 6 ILUASMOPTIONS - 6 """ 7 ILUASMOPTIONS - 7 8 8 Usage: 9 options=iluasmoptions; 10 """ 11 12 #retrieve options provided in varargin 13 options=pairoptions.pairoptions(*args) 14 iluasm=OrderedDict() 9 Usage: 10 options = iluasmoptions 11 """ 15 12 16 #default iluasm options 17 iluasm['toolkit']='petsc' 18 iluasm['mat_type']=options.getfieldvalue('mat_type','aij') 19 iluasm['ksp_type']=options.getfieldvalue('ksp_type','gmres') 20 iluasm['pc_type']=options.getfieldvalue('pc_type','asm') 21 iluasm['sub_pc_type']=options.getfieldvalue('sub_pc_type','ilu') 22 iluasm['pc_asm_overlap']=options.getfieldvalue('pc_asm_overlap',5) 23 iluasm['ksp_max_it']=options.getfieldvalue('ksp_max_it',100) 24 iluasm['ksp_rtol']=options.getfieldvalue('ksp_rtol',1e-15) 13 #retrieve options provided in varargin 14 options = pairoptions.pairoptions(*args) 15 iluasm = OrderedDict() 25 16 26 return iluasm 17 #default iluasm options 18 iluasm['toolkit'] = 'petsc' 19 iluasm['mat_type'] = options.getfieldvalue('mat_type', 'aij') 20 iluasm['ksp_type'] = options.getfieldvalue('ksp_type', 'gmres') 21 iluasm['pc_type'] = options.getfieldvalue('pc_type', 'asm') 22 iluasm['sub_pc_type'] = options.getfieldvalue('sub_pc_type', 'ilu') 23 iluasm['pc_asm_overlap'] = options.getfieldvalue('pc_asm_overlap', 5) 24 iluasm['ksp_max_it'] = options.getfieldvalue('ksp_max_it', 100) 25 iluasm['ksp_rtol'] = options.getfieldvalue('ksp_rtol', 1e-15) 27 26 27 return iluasm -
issm/trunk-jpl/src/m/solvers/issmgslsolver.py
r19998 r24213 2 2 import pairoptions 3 3 4 4 5 def issmgslsolver(*args): 5 #ISSMSOLVE - return issm solver options 6 # 7 # Usage: 8 # options=issmsolver; 9 10 #retrieve options provided in varargin 11 arguments=pairoptions.pairoptions(*args) 12 13 options=OrderedDict() 14 options['toolkit'] = 'issm' 15 options['mat_type'] = 'dense' 16 options['vec_type'] = 'seq' 17 options['solver_type'] = 'gsl' 6 #ISSMSOLVE - return issm solver options 7 # 8 # Usage: 9 # options = issmsolver 18 10 19 #now, go through our arguments, and write over default options. 20 for i in range(len(arguments.list)): 21 arg1=arguments.list[i][0] 22 arg2=arguments.list[i][1] 23 found=0; 24 for j in range(len(options)): 25 joption=options[j][0] 26 if joption==arg1: 27 joption[1]=arg2; 28 options[j]=joption; 29 found=1; 30 break 31 if not found: 32 #this option did not exist, add it: 33 options.append([arg1,arg2]) 34 return options 11 #retrieve options provided in varargin 12 arguments = pairoptions.pairoptions(*args) 13 14 options = OrderedDict() 15 options['toolkit'] = 'issm' 16 options['mat_type'] = 'dense' 17 options['vec_type'] = 'seq' 18 options['solver_type'] = 'gsl' 19 20 #now, go through our arguments, and write over default options. 21 for i in range(len(arguments.list)): 22 arg1 = arguments.list[i][0] 23 arg2 = arguments.list[i][1] 24 found = 0 25 for j in range(len(options)): 26 joption = options[j][0] 27 if joption == arg1: 28 joption[1] = arg2 29 options[j] = joption 30 found = 1 31 break 32 if not found: 33 #this option did not exist, add it: 34 options.append([arg1, arg2]) 35 return options -
issm/trunk-jpl/src/m/solvers/issmmumpssolver.py
r23748 r24213 2 2 import pairoptions 3 3 4 4 5 def issmmumpssolver(*args): 5 6 7 8 # options=issmsolver; 6 #ISSMSOLVE - return issm solver options 7 # 8 # Usage: 9 # options = issmsolver 9 10 10 11 arguments=pairoptions.pairoptions(*args)11 #retrieve options provided in varargin 12 arguments = pairoptions.pairoptions(*args) 12 13 13 options=OrderedDict()14 15 16 17 14 options = OrderedDict() 15 options['toolkit'] = 'issm' 16 options['mat_type'] = 'mpisparse' 17 options['vec_type'] = 'mpi' 18 options['solver_type'] = 'mumps' 18 19 19 20 21 arg1=arguments.list[i][0]22 arg2=arguments.list[i][1]23 found=0; 24 25 joption=options[j][0]26 if joption==arg1:27 joption[1]=arg2; 28 options[j]=joption; 29 found=1; 30 31 32 33 options.append([arg1,arg2])34 20 #now, go through our arguments, and write over default options. 21 for i in range(len(arguments.list)): 22 arg1 = arguments.list[i][0] 23 arg2 = arguments.list[i][1] 24 found = 0 25 for j in range(len(options)): 26 joption = options[j][0] 27 if joption == arg1: 28 joption[1] = arg2 29 options[j] = joption 30 found = 1 31 break 32 if not found: 33 #this option did not exist, add it: 34 options.append([arg1, arg2]) 35 return options -
issm/trunk-jpl/src/m/solvers/jacobiasmoptions.py
r21988 r24213 1 1 import pairoptions 2 2 3 3 4 def jacobiasmoptions(*args): 4 #ASMOPTIONS - return Additive Shwartz Method with Jacobi preconditioner petsc options 5 # 6 # Usage: 7 # options=jacobiasmoptions; 8 9 #retrieve options provided in varargin 10 arguments=pairoptions.pairoptions(*args) 11 12 options=[['toolkit','petsc'],['mat_type','mpiaij'],['ksp_type','gmres'],['pc_type','asm'],['sub_pc_type','jacobi'],['pc_asm_overlap',3],['ksp_max_it',100],['ksp_rtol',1e-15]]; 5 #ASMOPTIONS - return Additive Shwartz Method with Jacobi preconditioner petsc options 6 # 7 # Usage: 8 # options = jacobiasmoptions 13 9 14 #now, go through our arguments, and write over default options. 15 for i in range(len(arguments.list)): 16 arg1=arguments.list[i][0] 17 arg2=arguments.list[i][1] 18 found=0; 19 for j in range(len(options)): 20 joption=options[j][0] 21 if joption==arg1: 22 joption[1]=arg2; 23 options[j]=joption; 24 found=1; 25 break 26 if not found: 27 #this option did not exist, add it: 28 options.append([arg1,arg2]) 29 return options 10 #retrieve options provided in varargin 11 arguments = pairoptions.pairoptions(*args) 12 13 options = [['toolkit', 'petsc'], 14 ['mat_type', 'mpiaij'], 15 ['ksp_type', 'gmres'], 16 ['pc_type', 'asm'], 17 ['sub_pc_type', 'jacobi'], 18 ['pc_asm_overlap', 3], 19 ['ksp_max_it', 100], 20 ['ksp_rtol', 1e-15]] 21 22 #now, go through our arguments, and write over default options. 23 for i in range(len(arguments.list)): 24 arg1 = arguments.list[i][0] 25 arg2 = arguments.list[i][1] 26 found = 0 27 for j in range(len(options)): 28 joption = options[j][0] 29 if joption == arg1: 30 joption[1] = arg2 31 options[j] = joption 32 found = 1 33 break 34 if not found: 35 #this option did not exist, add it: 36 options.append([arg1, arg2]) 37 return options -
issm/trunk-jpl/src/m/solvers/jacobicgoptions.py
r21988 r24213 1 import pairoptions 1 import pairoptions 2 2 3 3 4 def jacobicgoptions(*args): 4 #ASMOPTIONS - return Additive Shwartz Method with Jacobi preconditioner petsc options 5 # 6 # Usage: 7 # options=jacobicgoptions; 8 9 #retrieve options provided in varargin 10 arguments=pairoptions.pairoptions(*args) 11 12 options=[['toolkit','petsc'],['mat_type','mpiaij'],['ksp_type','cg'],['ksp_max_it',100],['ksp_rtol',1e-15]]; 5 #ASMOPTIONS - return Additive Shwartz Method with Jacobi preconditioner petsc options 6 # 7 # Usage: 8 # options = jacobicgoptions 13 9 14 #now, go through our arguments, and write over default options. 15 for i in range(len(arguments.list)): 16 arg1=arguments.list[i][0] 17 arg2=arguments.list[i][1] 18 found=0; 19 for j in range(len(options)): 20 joption=options[j][0] 21 if joption==arg1: 22 joption[1]=arg2; 23 options[j]=joption; 24 found=1; 25 break 26 if not found: 27 #this option did not exist, add it: 28 options.append([arg1,arg2]) 29 return options 10 #retrieve options provided in varargin 11 arguments = pairoptions.pairoptions(*args) 12 13 options = [['toolkit', 'petsc'], 14 ['mat_type', 'mpiaij'], 15 ['ksp_type', 'cg'], 16 ['ksp_max_it', 100], 17 ['ksp_rtol', 1e-15]] 18 19 #now, go through our arguments, and write over default options. 20 for i in range(len(arguments.list)): 21 arg1 = arguments.list[i][0] 22 arg2 = arguments.list[i][1] 23 found = 0 24 for j in range(len(options)): 25 joption = options[j][0] 26 if joption == arg1: 27 joption[1] = arg2 28 options[j] = joption 29 found = 1 30 break 31 if not found: 32 #this option did not exist, add it: 33 options.append([arg1, arg2]) 34 return options -
issm/trunk-jpl/src/m/solvers/matlaboptions.py
r17497 r24213 1 1 import pairoptions 2 2 3 3 4 def matlaboptions(*args): 4 #MATLABOPTIONS - return Matlab petsc options 5 # 6 # Usage: 7 # options=matlaboptions; 8 9 #retrieve options provided in varargin 10 arguments=pairoptions.pairoptions(*args) 11 12 options=[['toolkit','petsc'],['ksp_type','matlab']]; 5 #MATLABOPTIONS - return Matlab petsc options 6 # 7 # Usage: 8 # options = matlaboptions 13 9 14 #now, go through our arguments, and write over default options. 15 for i in range(len(arguments.list)): 16 arg1=arguments.list[i][0] 17 arg2=arguments.list[i][1] 18 found=0; 19 for j in range(len(options)): 20 joption=options[j][0] 21 if joption==arg1: 22 joption[1]=arg2; 23 options[j]=joption; 24 found=1; 25 break 26 if not found: 27 #this option did not exist, add it: 28 options.append([arg1,arg2]) 29 return options 10 #retrieve options provided in varargin 11 arguments = pairoptions.pairoptions(*args) 12 13 options = [['toolkit', 'petsc'], 14 ['ksp_type', 'matlab']] 15 16 #now, go through our arguments, and write over default options. 17 for i in range(len(arguments.list)): 18 arg1 = arguments.list[i][0] 19 arg2 = arguments.list[i][1] 20 found = 0 21 for j in range(len(options)): 22 joption = options[j][0] 23 if joption == arg1: 24 joption[1] = arg2 25 options[j] = joption 26 found = 1 27 break 28 if not found: 29 #this option did not exist, add it: 30 options.append([arg1, arg2]) 31 return options -
issm/trunk-jpl/src/m/solvers/mumpsoptions.py
r23716 r24213 3 3 from IssmConfig import IssmConfig 4 4 5 5 6 def mumpsoptions(*args): 6 7 7 """ 8 MUMPSOPTIONS - return MUMPS direct solver petsc options 8 9 9 10 options=mumpsoptions; 11 10 Usage: 11 options = mumpsoptions 12 """ 12 13 13 14 options=pairoptions.pairoptions(*args)15 mumps=OrderedDict()14 #retrieve options provided in varargin 15 options = pairoptions.pairoptions(*args) 16 mumps = OrderedDict() 16 17 17 18 PETSC_MAJOR=IssmConfig('_PETSC_MAJOR_')[0]19 PETSC_MINOR=IssmConfig('_PETSC_MINOR_')[0]20 if PETSC_MAJOR==2.:21 mumps['toolkit']='petsc'22 mumps['mat_type']=options.getfieldvalue('mat_type','aijmumps')23 mumps['ksp_type']=options.getfieldvalue('ksp_type','preonly')24 mumps['pc_type']=options.getfieldvalue('pc_type','lu')25 mumps['mat_mumps_icntl_14']=options.getfieldvalue('mat_mumps_icntl_14',120)26 if PETSC_MAJOR==3.:27 mumps['toolkit']='petsc'28 mumps['mat_type']=options.getfieldvalue('mat_type','mpiaij')29 mumps['ksp_type']=options.getfieldvalue('ksp_type','preonly')30 mumps['pc_type']=options.getfieldvalue('pc_type','lu')31 if PETSC_MINOR>8.:32 mumps['pc_factor_mat_solver_type']=options.getfieldvalue('pc_factor_mat_solver_type','mumps')33 34 mumps['pc_factor_mat_solver_package']=options.getfieldvalue('pc_factor_mat_solver_package','mumps')35 mumps['mat_mumps_icntl_14']=options.getfieldvalue('mat_mumps_icntl_14',120)18 #default mumps options 19 PETSC_MAJOR = IssmConfig('_PETSC_MAJOR_')[0] 20 PETSC_MINOR = IssmConfig('_PETSC_MINOR_')[0] 21 if PETSC_MAJOR == 2.: 22 mumps['toolkit'] = 'petsc' 23 mumps['mat_type'] = options.getfieldvalue('mat_type', 'aijmumps') 24 mumps['ksp_type'] = options.getfieldvalue('ksp_type', 'preonly') 25 mumps['pc_type'] = options.getfieldvalue('pc_type', 'lu') 26 mumps['mat_mumps_icntl_14'] = options.getfieldvalue('mat_mumps_icntl_14', 120) 27 if PETSC_MAJOR == 3.: 28 mumps['toolkit'] = 'petsc' 29 mumps['mat_type'] = options.getfieldvalue('mat_type', 'mpiaij') 30 mumps['ksp_type'] = options.getfieldvalue('ksp_type', 'preonly') 31 mumps['pc_type'] = options.getfieldvalue('pc_type', 'lu') 32 if PETSC_MINOR > 8.: 33 mumps['pc_factor_mat_solver_type'] = options.getfieldvalue('pc_factor_mat_solver_type', 'mumps') 34 else: 35 mumps['pc_factor_mat_solver_package'] = options.getfieldvalue('pc_factor_mat_solver_package', 'mumps') 36 mumps['mat_mumps_icntl_14'] = options.getfieldvalue('mat_mumps_icntl_14', 120) 36 37 37 38 return mumps -
issm/trunk-jpl/src/m/solvers/soroptions.py
r21988 r24213 1 1 import pairoptions 2 2 3 3 4 def soroptions(*args): 4 #SOROPTIONS - return Relaxation Solver petsc options 5 # 6 # Usage: 7 # options=soroptions; 8 9 #retrieve options provided in varargin 10 arguments=pairoptions.pairoptions(*args) 11 12 options=[['toolkit','petsc'],['mat_type','mpiaij'],['ksp_type','cg'],['pc_type','sor'],['pc_sor_omega',1.1],['pc_sor_its',2]]; 5 #SOROPTIONS - return Relaxation Solver petsc options 6 # 7 # Usage: 8 # options = soroptions 13 9 14 #now, go through our arguments, and write over default options. 15 for i in range(len(arguments.list)): 16 arg1=arguments.list[i][0] 17 arg2=arguments.list[i][1] 18 found=0; 19 for j in range(len(options)): 20 joption=options[j][0] 21 if joption==arg1: 22 joption[1]=arg2; 23 options[j]=joption; 24 found=1; 25 break 26 if not found: 27 #this option did not exist, add it: 28 options.append([arg1,arg2]) 29 return options 10 #retrieve options provided in varargin 11 arguments = pairoptions.pairoptions(*args) 12 13 options = [['toolkit', 'petsc'], 14 ['mat_type', 'mpiaij'], 15 ['ksp_type', 'cg'], 16 ['pc_type', 'sor'], 17 ['pc_sor_omega', 1.1], 18 ['pc_sor_its', 2]] 19 20 #now, go through our arguments, and write over default options. 21 for i in range(len(arguments.list)): 22 arg1 = arguments.list[i][0] 23 arg2 = arguments.list[i][1] 24 found = 0 25 for j in range(len(options)): 26 joption = options[j][0] 27 if joption == arg1: 28 joption[1] = arg2 29 options[j] = joption 30 found = 1 31 break 32 if not found: 33 #this option did not exist, add it: 34 options.append([arg1, arg2]) 35 return options -
issm/trunk-jpl/src/m/solvers/stokesoptions.py
r23910 r24213 2 2 from IssmConfig import IssmConfig 3 3 4 4 5 def stokesoptions(*args): 5 #STOKESOPTIONS - return STOKES multi-physics solver petsc options 6 # 7 # Usage: 8 # options=stokesoptions; 9 10 #retrieve options provided in varargin 11 arguments=pairoptions.pairoptions(*args) 6 #STOKESOPTIONS - return STOKES multi - physics solver petsc options 7 # 8 # Usage: 9 # options = stokesoptions 12 10 11 #retrieve options provided in varargin 12 arguments = pairoptions.pairoptions(*args) 13 13 14 15 PETSC_VERSION=IssmConfig('_PETSC_MAJOR_')[0]14 #default stokes options 15 PETSC_VERSION = IssmConfig('_PETSC_MAJOR_')[0] 16 16 17 if PETSC_VERSION==2.: 18 raise RuntimeError('stokesoptions error message: multi-physics options not supported in Petsc 2') 19 if PETSC_VERSION==3.: 20 options=[['toolkit','petsc'],['mat_type','mpiaij'],['ksp_type','cr'],['pc_type','bjacobi'],['tol',0.6],\ 21 ['elltol',5e-5],['schur_pc',1],\ 22 ['max_iter',10000],['issm_option_solver','stokes']] 17 if PETSC_VERSION == 2.: 18 raise RuntimeError('stokesoptions error message: multi-physics options not supported in Petsc 2') 19 if PETSC_VERSION == 3.: 20 options = [['toolkit', 'petsc'], 21 ['mat_type', 'mpiaij'], 22 ['ksp_type', 'cr'], 23 ['pc_type', 'bjacobi'], 24 ['tol', 0.6], 25 ['elltol', 5e-5], 26 ['schur_pc', 1], 27 ['max_iter', 10000], 28 ['issm_option_solver', 'stokes']] 23 29 24 25 26 arg1=arguments.list[i][0]27 arg2=arguments.list[i][1]28 found=0; 29 30 joption=options[j][0]31 if joption==arg1:32 joption[1]=arg2; 33 options[j]=joption; 34 found=1; 35 36 37 #this option did not exist, add it: 38 options.append([arg1,arg2])39 30 #now, go through our arguments, and write over default options. 31 for i in range(len(arguments.list)): 32 arg1 = arguments.list[i][0] 33 arg2 = arguments.list[i][1] 34 found = 0 35 for j in range(len(options)): 36 joption = options[j][0] 37 if joption == arg1: 38 joption[1] = arg2 39 options[j] = joption 40 found = 1 41 break 42 if not found: 43 #this option did not exist, add it: 44 options.append([arg1, arg2]) 45 return options
Note:
See TracChangeset
for help on using the changeset viewer.