diff --git a/wetb/hawc2/log_file.py b/wetb/hawc2/log_file.py new file mode 100644 index 0000000000000000000000000000000000000000..182fb063beb339a0ff3f55f26a1f923264b68847 --- /dev/null +++ b/wetb/hawc2/log_file.py @@ -0,0 +1,93 @@ +''' +Created on 18/11/2015 + +@author: MMPE +''' +import os +from wetb.hawc2.htc_file import HTCFile +from collections import OrderedDict +MISSING = "Log file cannot be found" +PENDING = "Simulation not started yet" +INITIALIZATION = 'Initializing simulation' +GENERATING_TURBULENCE = "Generating turbulence" +SIMULATING = "Simulating" +ABORTED = "" +DONE = "Simulation succeded" +INITIALIZATION_ERROR = "Initialization error" +SIMULATION_ERROR = "Simulation error" +ERROR = "Error" + +def is_file_open(filename): + try: + os.rename(filename, filename + "_") + os.rename(filename + "_", filename) + return False + except OSError as e: + if "The process cannot access the file because it is being used by another process" not in str(e): + raise + + if os.path.isfile(filename + "_"): + os.remove(filename + "_") + return True + +class LogFile(object): + _status = (0, MISSING) + def __init__(self, log_filename, time_stop): + self.filename = log_filename + self.time_stop = time_stop + self.position = 0 + + def clear(self): + os.makedirs(os.path.dirname(self.filename), exist_ok=True) + with open(self.filename, 'w'): + pass + self.position = 0 + + def status(self): + if not os.path.isfile(self.filename): + self._status = (0, MISSING, []) + else: + if self._status[1] == MISSING: + self._status = (0, PENDING, []) + with open(self.filename) as fid: + fid.seek(self.position) + txt = fid.read() + self.position += len(txt) + if self._status[1] == PENDING and self.position > 0: + self._status = (0, INITIALIZATION, []) + error_lst = self._status[2] + if len(txt) > 0: + if self._status[1] == INITIALIZATION or self._status[1] == GENERATING_TURBULENCE: + init_txt, *rest = txt.split("Starting simulation") + if "*** ERROR ***" in init_txt: + error_lst.extend([l for l in init_txt.strip().split("\n") if "ERROR" in l]) + if "Turbulence generation starts" in init_txt[init_txt.strip().rfind("\n"):]: + self._status = (0, GENERATING_TURBULENCE, error_lst) + if rest: + txt = rest[0] + self._status = (0, SIMULATING, error_lst) + if self._status[1] == SIMULATING: + + simulation_txt, *rest = txt.split('Elapsed time') + if "*** ERROR ***" in simulation_txt: + error_lst.extend([l for l in simulation_txt.strip().split("\n") if "ERROR" in l]) + i1 = simulation_txt.rfind("Global time") + i2 = simulation_txt[:i1].rfind('Global time') + time_line = simulation_txt[i1:] + try: + time = float(time_line[time_line.index('=') + 1:time_line.index('Iter')]) + self._status = (int(100 * time // self.time_stop), SIMULATING, error_lst) + except: + self._status = (self._status[0], SIMULATING, error_lst) + if rest: + self._status = (100, DONE, error_lst) + #return self._status + + error_lst = self._status[2] + error_dict = OrderedDict() + for error in error_lst: + error_dict[error] = error_dict.get(error, 0) + 1 + error_lst = [("%d x %s" % (v, k), k)[v == 1] for k, v in error_dict.items()] + + return (self._status[0], self._status[1], error_lst) + diff --git a/wetb/hawc2/tests/test_files/logfiles/finish.log b/wetb/hawc2/tests/test_files/logfiles/finish.log new file mode 100644 index 0000000000000000000000000000000000000000..aa61371d379524d91c8d38120ed2657dd02a88ac Binary files /dev/null and b/wetb/hawc2/tests/test_files/logfiles/finish.log differ diff --git a/wetb/hawc2/tests/test_files/logfiles/finish_turbulencegeneration.log b/wetb/hawc2/tests/test_files/logfiles/finish_turbulencegeneration.log new file mode 100644 index 0000000000000000000000000000000000000000..73c56317cfbfdb12337c966c1edfdb761a21254c --- /dev/null +++ b/wetb/hawc2/tests/test_files/logfiles/finish_turbulencegeneration.log @@ -0,0 +1,129 @@ +________________________________________________________________________________________________________________________ + Version ID : HAWC2MB 12.2 + Log file output + Time : 07:18:14 + Date : 20:11.2015 +________________________________________________________________________________________________________________________ + Simulation commands read with succes + Orientation input commands read with succes + constraint input commands read with succes + Topologi commands read with succes + Mann commands read with succes + Wind commands read with succes + DLL commands read with succes + output commands read with succes + Output commands read + Initialization of structure + Initialization of wind + Initialization of Mann turbulence + Opening turbulence file ./turb/envisionpp2b_20150517_2310_s1004u.bin + Turbulence file ./turb/envisionpp2b_20150517_2310_s1004u.bin does not exist + Turbulence generation starts ... + Turbulence generation finished, output starts ... + Mann turb. box shorter than required - turbulence is reused after every 600.14 seconds + In Mann module: + Scale factor u= 1.00000000000000 + Scale factor v= 1.00000000000000 + Scale factor w= 1.00000000000000 + Starting simulation + Global time = 2.000000000000000E-002 Iter = 0 + Global time = 4.000000000000000E-002 Iter = 0 + Global time = 6.000000000000000E-002 Iter = 0 + Global time = 8.000000000000000E-002 Iter = 0 + Global time = 0.100000000000000 Iter = 0 + Global time = 0.120000000000000 Iter = 0 + Global time = 0.140000000000000 Iter = 0 + Global time = 0.160000000000000 Iter = 0 + Global time = 0.180000000000000 Iter = 0 + Global time = 0.200000000000000 Iter = 0 + Global time = 0.220000000000000 Iter = 0 + Global time = 0.240000000000000 Iter = 0 + Global time = 0.260000000000000 Iter = 0 + Global time = 0.280000000000000 Iter = 0 + Global time = 0.300000000000000 Iter = 0 + Global time = 0.320000000000000 Iter = 0 + Global time = 0.340000000000000 Iter = 0 + Global time = 0.360000000000000 Iter = 0 + Global time = 0.380000000000000 Iter = 0 + Global time = 0.400000000000000 Iter = 0 + Global time = 0.420000000000000 Iter = 0 + Global time = 0.440000000000000 Iter = 0 + Global time = 0.460000000000000 Iter = 0 + Global time = 0.480000000000000 Iter = 0 + Global time = 0.500000000000000 Iter = 0 + Global time = 0.520000000000000 Iter = 0 + Global time = 0.540000000000000 Iter = 0 + Global time = 0.560000000000000 Iter = 0 + Global time = 0.580000000000000 Iter = 0 + Global time = 0.600000000000000 Iter = 0 + Global time = 0.620000000000000 Iter = 0 + Global time = 0.640000000000000 Iter = 0 + Global time = 0.660000000000000 Iter = 0 + Global time = 0.680000000000000 Iter = 0 + Global time = 0.700000000000000 Iter = 0 + Global time = 0.720000000000000 Iter = 0 + Global time = 0.740000000000000 Iter = 0 + Global time = 0.760000000000000 Iter = 0 + Global time = 0.780000000000000 Iter = 0 + Global time = 0.800000000000000 Iter = 0 + Global time = 0.820000000000000 Iter = 0 + Global time = 0.840000000000000 Iter = 0 + Global time = 0.860000000000000 Iter = 0 + Global time = 0.880000000000000 Iter = 0 + Global time = 0.900000000000000 Iter = 0 + Global time = 0.920000000000000 Iter = 0 + Global time = 0.940000000000000 Iter = 0 + Global time = 0.960000000000000 Iter = 0 + Global time = 0.980000000000000 Iter = 0 + Global time = 1.00000000000000 Iter = 0 + Global time = 1.02000000000000 Iter = 0 + Global time = 1.04000000000000 Iter = 0 + Global time = 1.06000000000000 Iter = 0 + Global time = 1.08000000000000 Iter = 0 + Global time = 1.10000000000000 Iter = 0 + Global time = 1.12000000000000 Iter = 0 + Global time = 1.14000000000000 Iter = 0 + Global time = 1.16000000000000 Iter = 0 + Global time = 1.18000000000000 Iter = 0 + Global time = 1.20000000000000 Iter = 0 + Global time = 1.22000000000000 Iter = 0 + Global time = 1.24000000000000 Iter = 0 + Global time = 1.26000000000000 Iter = 0 + Global time = 1.28000000000000 Iter = 0 + Global time = 1.30000000000000 Iter = 0 + Global time = 1.32000000000000 Iter = 0 + Global time = 1.34000000000000 Iter = 0 + Global time = 1.36000000000000 Iter = 0 + Global time = 1.38000000000000 Iter = 0 + Global time = 1.40000000000000 Iter = 0 + Global time = 1.42000000000000 Iter = 0 + Global time = 1.44000000000000 Iter = 0 + Global time = 1.46000000000000 Iter = 0 + Global time = 1.48000000000000 Iter = 0 + Global time = 1.50000000000000 Iter = 0 + Global time = 1.52000000000000 Iter = 0 + Global time = 1.54000000000000 Iter = 0 + Global time = 1.56000000000000 Iter = 0 + Global time = 1.58000000000000 Iter = 0 + Global time = 1.60000000000000 Iter = 0 + Global time = 1.62000000000000 Iter = 0 + Global time = 1.64000000000000 Iter = 0 + Global time = 1.66000000000000 Iter = 0 + Global time = 1.68000000000000 Iter = 0 + Global time = 1.70000000000000 Iter = 0 + Global time = 1.72000000000000 Iter = 0 + Global time = 1.74000000000000 Iter = 0 + Global time = 1.76000000000000 Iter = 0 + Global time = 1.78000000000000 Iter = 0 + Global time = 1.80000000000000 Iter = 0 + Global time = 1.82000000000000 Iter = 0 + Global time = 1.84000000000000 Iter = 0 + Global time = 1.86000000000000 Iter = 0 + Global time = 1.88000000000000 Iter = 0 + Global time = 1.90000000000000 Iter = 0 + Global time = 1.92000000000000 Iter = 0 + Global time = 1.94000000000000 Iter = 0 + Global time = 1.96000000000000 Iter = 0 + Global time = 1.98000000000000 Iter = 0 + Global time = 2.00000000000000 Iter = 0 + Elapsed time : 0.8062344 diff --git a/wetb/hawc2/tests/test_files/logfiles/init.log b/wetb/hawc2/tests/test_files/logfiles/init.log new file mode 100644 index 0000000000000000000000000000000000000000..3ee6dbdc722e6a4996a367814aa51ac66cfb55ed Binary files /dev/null and b/wetb/hawc2/tests/test_files/logfiles/init.log differ diff --git a/wetb/hawc2/tests/test_files/logfiles/init_error.log b/wetb/hawc2/tests/test_files/logfiles/init_error.log new file mode 100644 index 0000000000000000000000000000000000000000..24595ee3435b5b2b076f81c478e1394d36370f9c Binary files /dev/null and b/wetb/hawc2/tests/test_files/logfiles/init_error.log differ diff --git a/wetb/hawc2/tests/test_files/logfiles/model/htc/dlc14_iec61400-1ed3/dlc14_wsp10_wdir000_s0000.htc b/wetb/hawc2/tests/test_files/logfiles/model/htc/dlc14_iec61400-1ed3/dlc14_wsp10_wdir000_s0000.htc new file mode 100644 index 0000000000000000000000000000000000000000..d542030e75717ee00cee47f4c8bfd3474c675a18 --- /dev/null +++ b/wetb/hawc2/tests/test_files/logfiles/model/htc/dlc14_iec61400-1ed3/dlc14_wsp10_wdir000_s0000.htc @@ -0,0 +1,778 @@ +begin simulation; + time_stop 200.0; + solvertype 1 ; + on_no_convergence continue ; + convergence_limits 1E3 1.0 1E-7 ; + logfile ./logfiles/dlc14_iec61400-1ed3/dlc14_wsp10_wdir000_s0000.log ; +; + begin newmark; + deltat 0.02; + end newmark; +end simulation; +; +begin new_htc_structure; +;------------------------------------------------------------------------------------------------------------------------------- + begin main_body; tower 90m + name tower ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 3.62e-03 3.62e-03 3.30e-03 ; Mx My Mz Kx Ky Kz , M΄s raises overall level, K΄s raises high freguency level + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 8; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 -10.0 0.0 ; + sec 3 0.0 0.0 -20.0 0.0 ; + sec 4 0.0 0.0 -30.0 0.0 ; + sec 5 0.0 0.0 -45.0 0.0 ; + sec 6 0.0 0.0 -60.0 0.0 ; + sec 7 0.0 0.0 -70.0 0.0 ; + sec 8 0.0 0.0 -87.6 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name towertop ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 3.00E-05 3.00E-05 2.00E-04 ; + concentrated_mass 2 0.0 1.9 0.21256 2.4E5 1741490.0 1.7E5 1741490.0 ; Nacelle mass and inertia + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 2 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 -1.96256 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name shaft ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 4.65E-04 4.65E-04 7.0725E-03 ; "tuned by Anyd 23/5/13 to 31.45 log decr. damping for free free with stiff rotor and tower" + concentrated_mass 1 0.0 0.0 0.0 0.0 0.0 0.0 5025497.444 ;generator equivalent slow shaft + concentrated_mass 5 0.0 0.0 0.0 56780 0.0 0.0 115926 ; hub mass and inertia; + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 3 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 5; + sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist + sec 2 0.0 0.0 1.0 0.0 ; + sec 3 0.0 0.0 2.0 0.0 ; + sec 4 0.0 0.0 3.1071 0.0 ; Main bearing + sec 5 0.0 0.0 5.0191 0.0 ; Rotor centre + end c2_def ; + end main_body; +; + begin main_body; + name hub1 ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 3.00E-06 3.00E-06 2.00E-05; + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 4 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 1.5 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name hub2 ; + copy_main_body hub1; + end main_body; +; + begin main_body; + name hub3 ; + copy_main_body hub1 ; + end main_body; +; + begin main_body; + name blade1 ; + type timoschenko ; + nbodies 9 ; + node_distribution c2_def; + damping_posdef 0.0 0.0 0.0 1.41E-03 2.39E-03 4.5E-05 ; + begin timoschenko_input ; + filename ./data/NREL_5MW_st.txt ; + set 5 1 ; set subset + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 19 ; + sec 1 0.0000 0.0000 0.000 0.000 ; x.y.z. twist + sec 2 -0.0027 0.0006 1.367 -13.308 ; + sec 3 -0.1057 0.0250 4.100 -13.308 ; + sec 4 -0.2501 0.0592 6.833 -13.308 ; + sec 5 -0.4592 0.1086 10.250 -13.308 ; + sec 6 -0.5699 0.1157 14.350 -11.480 ; + sec 7 -0.5485 0.0983 18.450 -10.162 ; + sec 8 -0.5246 0.0832 22.550 -9.011 ; + sec 9 -0.4962 0.0679 26.650 -7.795 ; + sec 10 -0.4654 0.0534 30.750 -6.544 ; 50% blade radius + sec 11 -0.4358 0.0409 34.850 -5.361 ; + sec 12 -0.4059 0.0297 38.950 -4.188 ; + sec 13 -0.3757 0.0205 43.050 -3.125 ; + sec 14 -0.3452 0.0140 47.150 -2.319 ; + sec 15 -0.3146 0.0084 51.250 -1.526 ; + sec 16 -0.2891 0.0044 54.667 -0.863 ; + sec 17 -0.2607 0.0017 57.400 -0.370 ; + sec 18 -0.1774 0.0003 60.133 -0.106 ; + sec 19 -0.1201 0.0000 61.500 -0.000 ; + end c2_def ; + end main_body; +; + begin main_body; + name blade2 ; + copy_main_body blade1; + end main_body; +; + begin main_body; + name blade3 ; + copy_main_body blade1 ; + end main_body; +;------------------------------------------------------------------------------------------------------------------------------- +; + begin orientation; + begin base; + body tower; + inipos 0.0 0.0 0.0 ; initial position of node 1 + body_eulerang 0.0 0.0 0.0; + end base; +; + begin relative; + body1 tower last; + body2 towertop 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 towertop last; + body2 shaft 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle + body2_eulerang 0.0 0.0 0.0; + mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.2 ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.7; + end relative; +; + begin relative; + body1 shaft last; + body2 hub1 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 180.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub2 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub3 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 -60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 hub1 last; + body2 blade1 1; + body2_eulerang 0.0 0.0 0.0 ; + end relative; +; + begin relative; + body1 hub2 last; + body2 blade2 1; + body2_eulerang 0.0 0.0 0.5 ; + end relative; +; + begin relative; + body1 hub3 last; + body2 blade3 1; + body2_eulerang 0.0 0.0 -0.5 ; + end relative; +; + end orientation; +;------------------------------------------------------------------------------------------------------------------------------- +begin constraint; +; + begin fix0; fixed to ground in translation and rotation of node 1 + body tower; + end fix0; +; + begin fix1; + body1 tower last ; + body2 towertop 1; + end fix1; +; + begin bearing1; free bearing + name shaft_rot; + body1 towertop last; + body2 shaft 1; + bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present + end bearing1; +; +; begin bearing3; free bearing +; name shaft_rot; +; body1 towertop last; +; body2 shaft 1; +; bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present +; omegas 0.0 ; +; end bearing3; +; + begin fix1; + body1 shaft last ; + body2 hub1 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub2 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub3 1; + end fix1; +; + begin bearing2; + name pitch1; + body1 hub1 last; + body2 blade1 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch2; + body1 hub2 last; + body2 blade2 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch3; + body1 hub3 last; + body2 blade3 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +end constraint; +; +end new_htc_structure; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin wind ; + density 1.225 ; + wsp 10.0 ; + tint 0.338432 ; + horizontal_input 1 ; + windfield_rotations 0.0 0.0 0.0 ; yaw, tilt, rotation + center_pos0 0.0 0.0 -90 ; hub heigth + shear_format 3 0.2 ; + turb_format 0.0 ; 0=none, 1=mann,2=flex + tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet + scale_time_start 100.0 ; + wind_ramp_factor 0.0 100.0 0.8 1.0 ; + iec_gust ecd 15.0 72.0 100.0 10.0 ; +; + begin mann ; + create_turb_parameters 29.4 1.0 3.7 0.0 1.0 ; L, alfaeps, gamma, seed, highfrq compensation + filename_u ./turb/turb_wsp10_s0000u.bin ; + filename_v ./turb/turb_wsp10_s0000v.bin ; + filename_w ./turb/turb_wsp10_s0000w.bin ; + box_dim_u 8192 0.244140625 ; + box_dim_v 32 4.0 ; + box_dim_w 32 4.0 ; + std_scaling 1.0 0.7 0.5 ; + end mann ; +; + begin tower_shadow_potential_2; + tower_mbdy_link tower; + nsec 2; + radius 0.0 3.0 ; + radius 87.6 1.935 ; + end tower_shadow_potential_2; +end wind; +; +begin aero ; + nblades 3; + hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side) + link 1 mbdy_c2_def blade1; + link 2 mbdy_c2_def blade2; + link 3 mbdy_c2_def blade3; + ae_filename ./data/AeDist_Flap_01.dat ; Distribute points to preserve effective flap length, use same setup for baseline + pc_filename ./data/NREL_5MW_pc.txt; + induction_method 1.0 ; 0=none, 1=normal + aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic + aero_distribution ae_file 1 ; + ae_sets 1 1 1; + tiploss_method 1 ; 0=none, 1=prandtl + dynstall_method 3.0 ; 0=none, 1=stig øye method,2=mhh method + ; --- Flaps --- ; + begin dynstall_ateflap ; + Ais 0.165 0.335 0.0 ; + Bis 0.0455 0.30 0.30 ; + flap 43.05 60.885 ./data/FlapInp_NacaThk17.ds ; Flap Sec: 1 + end dynstall_ateflap; +end aero ; +; +begin aerodrag ; + begin aerodrag_element ; + mbdy_name tower; + aerodrag_sections uniform 10 ; + nsec 2 ; + sec 0.0 0.6 6.0 ; tower bottom + sec 87.6 0.6 3.87 ; tower top + end aerodrag_element; +; + begin aerodrag_element ; Nacelle drag side + mbdy_name shaft; + aerodrag_sections uniform 2 ; + nsec 2 ; + sec 0.0 0.8 10.0 ; + sec 5.02 0.8 10.0 ; + end aerodrag_element; +end aerodrag; +; +;------------------------------------------------------------------------------------------------- +begin dll; +; + begin type2_dll; + name risoe_controller ; + filename ./control/risoe_controller.dll ; + dll_subroutine_init init_regulation ; + dll_subroutine_update update_regulation ; + arraysizes_init 52 1 ; + arraysizes_update 12 100 ; + begin init ; + ; Overall parameters + constant 1 5000.0 ; Rated power [kW] + constant 2 0.72257 ; Minimum rotor speed [rad/s] - NREL report + constant 3 1.2671 ; Rated rotor speed [rad/s] - NREL report + constant 4 4.6e6 ; Maximum allowable generator torque [Nm] - NREL rep. + constant 5 0.0 ; Minimum pitch angle, theta_min [deg], - NREL rep. keeps to 0.0 + ; if |theta_min|>90, then a table of <wsp,theta_min> is read ; + ; from a file named 'wptable.n', where n=int(theta_min) + constant 6 84.0 ; Maximum pitch angle [deg] + constant 7 8.0 ; Maximum pitch velocity operation [deg/s] - NREL rep. + constant 8 0.4 ; Frequency of generator speed filter [Hz] - NREL rep. + constant 9 0.7 ; Damping ratio of speed filter [-] - NREL rep. + constant 10 0.0 ; Frequency of free-free DT torsion mode [Hz], 0.0 no notch filter used + ; Partial load control parameters + constant 11 0.216828E+07 ; Optimal Cp tracking K factor [kNm/(rad/s)^2], ; - HS2 tune, lambda opt. 7.55 + ; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3 + constant 12 0.193160E+08 ; Proportional gain of torque controller [Nm/(rad/s)] - HS2 tune + constant 13 0.433451E+07 ; Integral gain of torque controller [Nm/rad] - HS2 tune + constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)] +; Full load control parameters + constant 15 1 ; Generator control switch [1=constant power, 2=constant torque] + constant 16 0.81 ; Proportional gain of pitch controller [rad/(rad/s)] + constant 17 0.16 ; Integral gain of pitch controller [rad/rad] + constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)] + constant 19 0.4e-8 ; Proportional power error gain [rad/W] + constant 20 0.4e-8 ; Integral power error gain [rad/(Ws)] + constant 21 10.6 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg] - HS2 tune + constant 22 583.4 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] & + ; (if zero, KK1 = pitch angle at double gain) - HS2 tune + constant 23 1.3 ; Relative speed for double nonlinear gain [-] +; Cut-in simulation parameters + constant 24 -1.0 ; Cut-in time [s] + constant 25 1.0 ; Time delay for soft start of torque [1/1P] +; Cut-out simulation parameters + constant 26 -1.0 ; Cut-out time [s] + constant 27 5.0 ; Time constant for linear torque cut-out [s] + constant 28 1.0 ; Stop type [1=normal, 2=emergency] + constant 29 0.0 ; Time delay for pitch stop after shut-down commenced [s] + constant 30 4.0 ; Maximum pitch velocity during initial period of stop [deg/s] + constant 31 3.0 ; Time period of initial pitch stop phase [s] + constant 32 6.0 ; Maximum pitch velocity during final phase of stop [deg/s] +; Expert parameters (keep default values unless otherwise given) + constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg] + constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch + constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%] + constant 36 5.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P] + constant 37 5.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P] +; Drivetrain damper + constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10 +; Over speed + constant 39 25.0 ; Over speed percentage before initiating shut-down +; Additional non-linear pitch control term (not used when all zero) + constant 40 25.0 ; Err0 [rad/s] + constant 41 10.0 ; ErrDot0 [rad/s^2] + constant 42 0.15 ; PitNonLin1 [rad/s] +; Storm control command (from MHHA ctrl rev.) + constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s] + constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s] +; Safety system parameters + constant 45 30.0 ; Percent maximum overspeed of generator speed before emergency pitch stop [%] + constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] + constant 47 126.0 ; Nominal rotor diameter [m] +; Parameters for rotor inertia reduction in variable speed region + constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] +; Parameters for alternative partial load controller with PI regulated TSR tracking + constant 49 0.0 ; Optimal tip speed ratio [-] +; Parameters for adding aerodynamic drivetrain damping on gain scheduling + constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)] + constant 51 5.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg] + constant 52 5.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2] + end init ; +; + begin output ; + general time ; [s] + constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s] + constraint bearing2 pitch1 1 only 1; [rad] + constraint bearing2 pitch2 1 only 1; [rad] + constraint bearing2 pitch3 1 only 1; [rad] + wind free_wind 1 0.0 0.0 -90 ; global coords at hub height + dll inpvec 3 2 ; Elec. power + dll inpvec 3 8 ; Grid flag + mbdy state acc towertop 1 1.0 global only 1 ; + mbdy state acc towertop 1 1.0 global only 2 ; + end output; + end type2_dll; +; + begin type2_dll; + name cyclic_pitch_controller ; + filename ./control/cyclic_pitch_controller.dll ; + dll_subroutine_init init_cyclic_pitch_controller ; + dll_subroutine_update update_cyclic_pitch_controller ; + arraysizes_init 11 1 ; + arraysizes_update 11 10 ; + begin init ; + constant 1 47.2 ; Lead angle [deg] + constant 2 1.26 ; Proportional gain at zero pitch [deg/MNm] + constant 3 0.28 ; Integral gain at zero pitch [deg/(MNm*s)] + constant 4 0.0 ; Differential gain at zero pitch [deg*s/MNm] + constant 5 10.6 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg] + constant 6 583.4 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] + constant 7 0.2 ; Low-pass filter frequency [Hz] + constant 8 0.7 ; Low-pass filter damping ratio [-] + constant 9 10.0 ; Low-pass filter time constant for gain scheduling [s] + constant 10 4.0 ; Maximum amplitude on cyclic pitch [deg] + constant 11 0.99 ; Thresshold for full power switch [-] + end init ; + ; + begin output; + general time ; 1: general time [s] + constraint bearing1 shaft_rot 1 ; 2-3: Azimuth angle and speed of blade 1 (zero = blade up) [rad] + mbdy momentvec blade1 3 1 blade1 only 1 ; 4: Flap BRM of blade 1 (pos. bend. forward) [kNm] + mbdy momentvec blade2 3 1 blade2 only 1 ; 5: Flap BRM of blade 2 (pos. bend. forward) [kNm] + mbdy momentvec blade3 3 1 blade3 only 1 ; 6: Flap BRM of blade 3 (pos. bend. forward) [kNm] + dll inpvec 1 2 ; 7: Pitch angle reference of blade 1 from collective pitch controller [rad] + dll inpvec 1 3 ; 8: Pitch angle reference of blade 2 from collective pitch controller [rad] + dll inpvec 1 4 ; 9: Pitch angle reference of blade 3 from collective pitch controller [rad] + dll inpvec 1 22 ; 10: Status flag from collective pitch controller [0=normal operation] + dll inpvec 1 14 ; 11: Torque limit switch based on pitch [-] + end output; + end type2_dll; +; + begin type2_dll; + name generator_servo ; + filename ./control/generator_servo.dll ; + dll_subroutine_init init_generator_servo ; + dll_subroutine_update update_generator_servo ; + arraysizes_init 7 1 ; + arraysizes_update 4 8 ; + begin init ; + constant 1 20.0 ; Frequency of genertor 2nd order control model [Hz] + constant 2 0.9 ; Damping ratio of genertor 2nd order control model [-] + constant 3 4.6e6 ; Maximum allowable LSS torque (pull-out torque) [Nm] + constant 4 0.944 ; Generator efficiency [-] + constant 5 97.0 ; Gearratio [-] + constant 6 0.0 ; Time for half value in softstart of torque [s] + constant 7 1000.0 ; Time for grid loss + end init ; +; + begin output; + general time ; Time [s] + dll inpvec 1 1 ; Electrical torque reference [Nm] + constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s] + mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft) + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name mech_brake ; + filename ./control/mech_brake.dll ; + dll_subroutine_init init_mech_brake ; + dll_subroutine_update update_mech_brake ; + arraysizes_init 4 1 ; + arraysizes_update 3 6 ; + begin init ; + constant 1 2727252.0 ; Fully deployed maximum brake torque [Nm] + constant 2 100.0 ; alpha, used in Q = tanh(omega*alpha), typically 1e2/Omega_nom + constant 3 0.5 ; Delay time for before brake starts to deploy [s] + constant 4 0.6 ; Time for brake to become fully deployed [s] + end init ; +; + begin output; + general time ; Time [s] + constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s] + dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1] + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name servo_with_limits ; + filename ./control/servo_with_limits.dll ; + dll_subroutine_init init_servo_with_limits ; + dll_subroutine_update update_servo_with_limits ; + arraysizes_init 10 1 ; + arraysizes_update 5 9 ; + begin init ; + constant 1 3 ; Number of blades [-] + constant 2 1.0 ; Filter frequency [Hz] + constant 3 0.7 ; Filter damping ratio [-] + constant 4 8.0 ; Max. pitch speed [deg/s] + constant 5 8.0 ; Max. pitch acceleration [deg/s^2] + constant 6 0.0 ; Min. pitch angle [deg] + constant 7 84.0 ; Max. pitch angle [deg] + constant 8 1000.0 ; Time for pitch runaway [s] + constant 9 -1.0 ; Time for stuck blade 1 [s] + constant 10 0.0 ; Angle of stuck blade 1 [deg] + end init ; + begin output; + general time ; Time [s] + ; ; - For Cyclic Pitch: - ; + ; dll inpvec 2 1 ; Pitch1 demand angle [rad] + ; dll inpvec 2 2 ; Pitch2 demand angle [rad] + ; dll inpvec 2 3 ; Pitch3 demand angle [rad] + ; - For Collective Pitch Only: - ; + dll inpvec 1 2 ; Pitch1 demand angle [rad] + dll inpvec 1 3 ; Pitch2 demand angle [rad] + dll inpvec 1 4 ; Pitch3 demand angle [rad] + dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on] + end output; +; + begin actions; + constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad] + constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad] + constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad] + end actions; + end type2_dll; +; --- DLL for tower-blade tip distance -- ; + begin type2_dll; + name disttowtip ; + filename ./control/towclearsens.dll ; + dll_subroutine_init initialize ; + dll_subroutine_update update ; + arraysizes_init 1 1 ; + arraysizes_update 12 4 ; + begin init ; + constant 1 2.66 ; Tower radius close to downward blade tip [m] + end init ; + begin output; + mbdy state pos tower 3 0.75 global ; [1,2,3]. Tower position: 27.5 m + mbdy state pos blade1 18 1.0 global ; [4,5,6] + mbdy state pos blade2 18 1.0 global ; [7,8,9] + mbdy state pos blade3 18 1.0 global ; [10,11,12] + end output; + end type2_dll; +; +; ------------------------------------- Flap Control ------------------------------------------------------------------------------------------------------------ +; 1 individual flap per blade with PID on HPF Mx with rate and range limits +begin type2_dll; + name flap_ctrl ; + filename ./control/flap_dll_type2.dll ; + dll_subroutine_init initialize ; + dll_subroutine_update update ; + arraysizes_init 15 1 ; + arraysizes_update 15 15 ; + begin init ; + constant 1 1 ; Case 1: PID , Case 0: All shut to 0.0 + constant 2 1.9374E-3 ; [2] linear factor for P gain scheduling [-] + constant 3 0 ; [3] linear factor for I gain scheduling [-] + constant 4 1.1029E-4 ; [4] linear factor for D gain scheduling [-] + constant 5 6.6017E-2 ; [5] reference pitch angle for gain scheduling [rad] + constant 6 0.01745 ; [6] Min. pitch angle, below min gain is kept [rad] + constant 7 0.419 ; [7] Max. pitch angle, above max gain is kept [rad] + constant 8 0.1 ; [8] Threshold of "rated power indicator" above which flaps are fully on [-] + ; - Operating Times: + constant 9 90.0 ; [9] time for controller to be active [s] + constant 10 1000.0; [10] time for flap to run away: each flap follows given prescribed signals [s] + ; - Flap angle when overspeed is detected + constant 11 0.0 ; [11] Flap angle to take when over-speed is detected [deg] + ; - Flap servo Parameters: - ; + constant 12 10 ; [12] max flap angle [deg] + constant 13 -10 ; [13] min flap angle [deg] + constant 14 100 ; [14] max flap angle rate [deg/s] + constant 15 0.1 ; [15] flap actuator dynamics time constant [s] + end init ; + begin output; + ; - Time - ; + general time ; [1] current simulation time [s] + general deltat ; [2] time step [s] + ; - Blade root moments - ; + mbdy momentvec blade1 3 1 blade1 only 1 ; # blade 1 root ; [3] Blade 1 flapwise root moment [kNm] + mbdy momentvec blade2 3 1 blade2 only 1 ; # blade 2 root ; [4] Blade 2 flapwise root moment [kNm] + mbdy momentvec blade3 3 1 blade3 only 1 ; # blade 3 root ; [5] Blade 3 flapwise root moment [kNm] + ; - Input from main controller ; + dll inpvec 1 24 ; [6] filtered mean pitch angle [rad] + dll inpvec 1 22 ; [7] Main power control status: 0. normal operation [-] + dll inpvec 1 14 ; [8] Power rating status: 0. below rated power operation 1. above rated power operation[-] + ; - Filter setup and PID gains - ; + general constant 0.05 ; [9] corner frequency for blade flapwise moments high-pass filter [rad/s] + general constant 0.00375 ; [10] Proportional gain + general constant 0.0 ; [11] Integral gain + general constant 0.00027688 ; [12] Derivative gain + ; -Prescribed signals - ; + general constant 0.0 ; [13] Blade 1 prescribed fixed flap angle [deg] + general constant 0.0 ; [14] Blade 2 prescribed fixed flap angle [deg] + general constant 0.0 ; [15] Blade 3 prescribed fixed flap angle [deg] +end output; +begin actions; + aero beta 1 1 ; [1] + aero beta 2 1 ; [2] + aero beta 3 1 ; [3] +end actions ; +end type2_dll; +end dll; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +; +begin output ; + filename ./res/dlc14_iec61400-1ed3/dlc14_wsp10_wdir000_s0000 ; + time 100.0 200.0 ; + data_format hawc_binary; + buffer 1 ; + general time; +; + constraint bearing1 shaft_rot 2; angle and angle velocity + constraint bearing2 pitch1 5; angle and angle velocity + constraint bearing2 pitch2 5; angle and angle velocity + constraint bearing2 pitch3 5; angle and angle velocity + aero omega ; + aero torque; + aero power; + aero thrust; + wind free_wind 1 0.0 0.0 -90.0; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z +; + mbdy momentvec tower 1 1 tower # tower base ; + mbdy momentvec tower 7 2 tower # yaw bearing ; + mbdy momentvec shaft 4 1 shaft # main bearing ; + mbdy momentvec blade1 2 2 blade1 # blade 1 root ; + mbdy momentvec blade1 9 2 local # blade 1 50% local e coo ; + mbdy momentvec blade2 2 2 blade2 # blade 2 root ; + mbdy momentvec blade2 9 2 local # blade 2 50% local e coo ; + mbdy momentvec blade3 2 2 blade3 # blade 3 root ; + mbdy momentvec blade3 9 2 local # blade 3 50% local e coo ; + mbdy state pos tower 7 1.0 global # tower top flange position ; + mbdy state acc tower 7 1.0 global # tower top flange position ; + mbdy state pos tower 3 1.0 global # tower approx tip height ; + mbdy state pos blade1 18 1.0 blade1 # blade 1 tip pos ; + mbdy state pos blade2 18 1.0 blade2 # blade 2 tip pos ; + mbdy state pos blade3 18 1.0 blade3 # blade 3 tip pos ; + mbdy state pos blade1 18 1.0 global # blade 1 tip pos ; + mbdy state pos blade2 18 1.0 global # blade 2 tip pos ; + mbdy state pos blade3 18 1.0 global # blade 3 tip pos ; +; + aero windspeed 3 1 1 63.0; wind seen from the blade: coo(1=local ae,2=blade,3=global,4=rotor polar), blade number, component xyz, blade radius + aero windspeed 3 1 2 63.0; + aero windspeed 3 1 3 63.0; + aero alfa 1 45.0; + aero alfa 2 45.0; + aero alfa 3 45.0; + aero cl 1 45.0 ; + aero cl 2 45.0 ; + aero cl 3 45.0 ; +; +; Input to controller + ; dll outvec 1 1 # time; + ; dll outvec 1 2 # slow speed shaft rad/s; + ; dll outvec 1 3 # pitch angle 1; + ; dll outvec 1 4 # pitch angle 2; + ; dll outvec 1 5 # pitch angle 3; + ; dll outvec 1 6 # WSP_x_global; + ; dll outvec 1 7 # WSP_y_global; + ; dll outvec 1 8 # WSP_z_global; + ; dll outvec 1 9 # Elec. pwr ; + ; dll outvec 1 10 # Grid flag ; +; Output from controller + dll inpvec 1 1 # Generator torque reference [Nm] ; + dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ; + dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ; + dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ; + ; dll inpvec 1 5 # Power reference [W] ; + ; dll inpvec 1 6 # Filtered wind speed [m/s] ; + ; dll inpvec 1 7 # Filtered rotor speed [rad/s]; + ; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s]; + ; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s]; + ; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ; + ; dll inpvec 1 11 # Integral term of torque controller [Nm] ; + ; dll inpvec 1 12 # Minimum limit of torque [Nm] ; + ; dll inpvec 1 13 # Maximum limit of torque [Nm] ; + dll inpvec 1 14 # Torque limit switch based on pitch [-] ; + ; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s]; + ; dll inpvec 1 16 # Power error for pitch [W] ; + ; dll inpvec 1 17 # Proportional term of pitch controller [rad] ; + ; dll inpvec 1 18 # Integral term of pitch controller [rad] ; + ; dll inpvec 1 19 # Minimum limit of pitch [rad] ; + ; dll inpvec 1 20 # Maximum limit of pitch [rad] ; + dll inpvec 1 21 # Torque reference from DT dammper [Nm] ; + dll inpvec 1 22 # Status signal [-] ; + ; dll inpvec 1 23 # Total added pitch rate [rad/s] ; + dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ; + dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ; +; ; Output to generator model + ; dll outvec 2 1 # time ; + ; dll outvec 2 2 # Electrical torque reference [Nm] ; + ; dll outvec 2 3 # omega LSS ; +; Input from generator model + dll inpvec 3 1 # Mgen LSS [Nm]; + dll inpvec 3 2 # Pelec W ; + dll inpvec 3 3 # Mframe ; + dll inpvec 3 4 # Mgen HSS ; + dll inpvec 3 5 # Generator Pmech kW ; + dll inpvec 3 6 # Filtered Gen speed ; + dll inpvec 3 7 # Elec. pwr ; + dll inpvec 3 8 # Grid flag ; +; Output to mechanical brake + dll inpvec 4 1 # Brake torque [Nm] ; +; ; Input to mechanical brake + ; dll outvec 3 1 # Time [s] ; + ; dll outvec 3 2 # Generator LSS speed [rad/s] ; + ; dll outvec 3 3 # Deploy brake ; +; ; Output to pitch servo + ; dll outvec 4 1 # time; + ; dll outvec 4 2 # pitchref 1; + ; dll outvec 4 3 # pitchref 2; + ; dll outvec 4 4 # pitchref 3; + ; dll outvec 4 5 # Emerg. stop; +; Input from pitch servo + dll inpvec 5 1 # pitch 1; + dll inpvec 5 2 # pitch 2; + dll inpvec 5 3 # pitch 3; +; Check tower clearence + dll inpvec 6 1 # Bltip tow min d [m]; +; - Check on flap control: + aero beta 1 1 ; + aero beta 2 1 ; + aero beta 3 1 ; +end output; +; +exit; diff --git a/wetb/hawc2/tests/test_files/logfiles/model/htc/dlc14_iec61400-1ed3/dlc14_wsp12_wdir000_s0000.htc b/wetb/hawc2/tests/test_files/logfiles/model/htc/dlc14_iec61400-1ed3/dlc14_wsp12_wdir000_s0000.htc new file mode 100644 index 0000000000000000000000000000000000000000..09ac03e09337cc58408f0ec7f2195567db660493 --- /dev/null +++ b/wetb/hawc2/tests/test_files/logfiles/model/htc/dlc14_iec61400-1ed3/dlc14_wsp12_wdir000_s0000.htc @@ -0,0 +1,778 @@ +begin simulation; + time_stop 200.0; + solvertype 1 ; + on_no_convergence continue ; + convergence_limits 1E3 1.0 1E-7 ; + logfile ./logfiles/dlc14_iec61400-1ed3/dlc14_wsp12_wdir000_s0000.log ; +; + begin newmark; + deltat 0.02; + end newmark; +end simulation; +; +begin new_htc_structure; +;------------------------------------------------------------------------------------------------------------------------------- + begin main_body; tower 90m + name tower ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 3.62e-03 3.62e-03 3.30e-03 ; Mx My Mz Kx Ky Kz , M΄s raises overall level, K΄s raises high freguency level + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 8; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 -10.0 0.0 ; + sec 3 0.0 0.0 -20.0 0.0 ; + sec 4 0.0 0.0 -30.0 0.0 ; + sec 5 0.0 0.0 -45.0 0.0 ; + sec 6 0.0 0.0 -60.0 0.0 ; + sec 7 0.0 0.0 -70.0 0.0 ; + sec 8 0.0 0.0 -87.6 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name towertop ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 3.00E-05 3.00E-05 2.00E-04 ; + concentrated_mass 2 0.0 1.9 0.21256 2.4E5 1741490.0 1.7E5 1741490.0 ; Nacelle mass and inertia + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 2 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 -1.96256 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name shaft ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 4.65E-04 4.65E-04 7.0725E-03 ; "tuned by Anyd 23/5/13 to 31.45 log decr. damping for free free with stiff rotor and tower" + concentrated_mass 1 0.0 0.0 0.0 0.0 0.0 0.0 5025497.444 ;generator equivalent slow shaft + concentrated_mass 5 0.0 0.0 0.0 56780 0.0 0.0 115926 ; hub mass and inertia; + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 3 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 5; + sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist + sec 2 0.0 0.0 1.0 0.0 ; + sec 3 0.0 0.0 2.0 0.0 ; + sec 4 0.0 0.0 3.1071 0.0 ; Main bearing + sec 5 0.0 0.0 5.0191 0.0 ; Rotor centre + end c2_def ; + end main_body; +; + begin main_body; + name hub1 ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 3.00E-06 3.00E-06 2.00E-05; + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 4 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 1.5 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name hub2 ; + copy_main_body hub1; + end main_body; +; + begin main_body; + name hub3 ; + copy_main_body hub1 ; + end main_body; +; + begin main_body; + name blade1 ; + type timoschenko ; + nbodies 9 ; + node_distribution c2_def; + damping_posdef 0.0 0.0 0.0 1.41E-03 2.39E-03 4.5E-05 ; + begin timoschenko_input ; + filename ./data/NREL_5MW_st.txt ; + set 5 1 ; set subset + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 19 ; + sec 1 0.0000 0.0000 0.000 0.000 ; x.y.z. twist + sec 2 -0.0027 0.0006 1.367 -13.308 ; + sec 3 -0.1057 0.0250 4.100 -13.308 ; + sec 4 -0.2501 0.0592 6.833 -13.308 ; + sec 5 -0.4592 0.1086 10.250 -13.308 ; + sec 6 -0.5699 0.1157 14.350 -11.480 ; + sec 7 -0.5485 0.0983 18.450 -10.162 ; + sec 8 -0.5246 0.0832 22.550 -9.011 ; + sec 9 -0.4962 0.0679 26.650 -7.795 ; + sec 10 -0.4654 0.0534 30.750 -6.544 ; 50% blade radius + sec 11 -0.4358 0.0409 34.850 -5.361 ; + sec 12 -0.4059 0.0297 38.950 -4.188 ; + sec 13 -0.3757 0.0205 43.050 -3.125 ; + sec 14 -0.3452 0.0140 47.150 -2.319 ; + sec 15 -0.3146 0.0084 51.250 -1.526 ; + sec 16 -0.2891 0.0044 54.667 -0.863 ; + sec 17 -0.2607 0.0017 57.400 -0.370 ; + sec 18 -0.1774 0.0003 60.133 -0.106 ; + sec 19 -0.1201 0.0000 61.500 -0.000 ; + end c2_def ; + end main_body; +; + begin main_body; + name blade2 ; + copy_main_body blade1; + end main_body; +; + begin main_body; + name blade3 ; + copy_main_body blade1 ; + end main_body; +;------------------------------------------------------------------------------------------------------------------------------- +; + begin orientation; + begin base; + body tower; + inipos 0.0 0.0 0.0 ; initial position of node 1 + body_eulerang 0.0 0.0 0.0; + end base; +; + begin relative; + body1 tower last; + body2 towertop 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 towertop last; + body2 shaft 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle + body2_eulerang 0.0 0.0 0.0; + mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.2 ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.7; + end relative; +; + begin relative; + body1 shaft last; + body2 hub1 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 180.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub2 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub3 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 -60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 hub1 last; + body2 blade1 1; + body2_eulerang 0.0 0.0 0.0 ; + end relative; +; + begin relative; + body1 hub2 last; + body2 blade2 1; + body2_eulerang 0.0 0.0 0.5 ; + end relative; +; + begin relative; + body1 hub3 last; + body2 blade3 1; + body2_eulerang 0.0 0.0 -0.5 ; + end relative; +; + end orientation; +;------------------------------------------------------------------------------------------------------------------------------- +begin constraint; +; + begin fix0; fixed to ground in translation and rotation of node 1 + body tower; + end fix0; +; + begin fix1; + body1 tower last ; + body2 towertop 1; + end fix1; +; + begin bearing1; free bearing + name shaft_rot; + body1 towertop last; + body2 shaft 1; + bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present + end bearing1; +; +; begin bearing3; free bearing +; name shaft_rot; +; body1 towertop last; +; body2 shaft 1; +; bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present +; omegas 0.0 ; +; end bearing3; +; + begin fix1; + body1 shaft last ; + body2 hub1 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub2 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub3 1; + end fix1; +; + begin bearing2; + name pitch1; + body1 hub1 last; + body2 blade1 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch2; + body1 hub2 last; + body2 blade2 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch3; + body1 hub3 last; + body2 blade3 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +end constraint; +; +end new_htc_structure; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin wind ; + density 1.225 ; + wsp 12.0 ; + tint 0.297386666667 ; + horizontal_input 1 ; + windfield_rotations 0.0 0.0 0.0 ; yaw, tilt, rotation + center_pos0 0.0 0.0 -90 ; hub heigth + shear_format 3 0.2 ; + turb_format 0.0 ; 0=none, 1=mann,2=flex + tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet + scale_time_start 100.0 ; + wind_ramp_factor 0.0 100.0 0.666666666667 1.0 ; + iec_gust ecd 15.0 60.0 100.0 10.0 ; +; + begin mann ; + create_turb_parameters 29.4 1.0 3.7 0.0 1.0 ; L, alfaeps, gamma, seed, highfrq compensation + filename_u ./turb/turb_wsp12_s0000u.bin ; + filename_v ./turb/turb_wsp12_s0000v.bin ; + filename_w ./turb/turb_wsp12_s0000w.bin ; + box_dim_u 8192 0.29296875 ; + box_dim_v 32 4.0 ; + box_dim_w 32 4.0 ; + std_scaling 1.0 0.7 0.5 ; + end mann ; +; + begin tower_shadow_potential_2; + tower_mbdy_link tower; + nsec 2; + radius 0.0 3.0 ; + radius 87.6 1.935 ; + end tower_shadow_potential_2; +end wind; +; +begin aero ; + nblades 3; + hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side) + link 1 mbdy_c2_def blade1; + link 2 mbdy_c2_def blade2; + link 3 mbdy_c2_def blade3; + ae_filename ./data/AeDist_Flap_01.dat ; Distribute points to preserve effective flap length, use same setup for baseline + pc_filename ./data/NREL_5MW_pc.txt; + induction_method 1.0 ; 0=none, 1=normal + aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic + aero_distribution ae_file 1 ; + ae_sets 1 1 1; + tiploss_method 1 ; 0=none, 1=prandtl + dynstall_method 3.0 ; 0=none, 1=stig øye method,2=mhh method + ; --- Flaps --- ; + begin dynstall_ateflap ; + Ais 0.165 0.335 0.0 ; + Bis 0.0455 0.30 0.30 ; + flap 43.05 60.885 ./data/FlapInp_NacaThk17.ds ; Flap Sec: 1 + end dynstall_ateflap; +end aero ; +; +begin aerodrag ; + begin aerodrag_element ; + mbdy_name tower; + aerodrag_sections uniform 10 ; + nsec 2 ; + sec 0.0 0.6 6.0 ; tower bottom + sec 87.6 0.6 3.87 ; tower top + end aerodrag_element; +; + begin aerodrag_element ; Nacelle drag side + mbdy_name shaft; + aerodrag_sections uniform 2 ; + nsec 2 ; + sec 0.0 0.8 10.0 ; + sec 5.02 0.8 10.0 ; + end aerodrag_element; +end aerodrag; +; +;------------------------------------------------------------------------------------------------- +begin dll; +; + begin type2_dll; + name risoe_controller ; + filename ./control/risoe_controller.dll ; + dll_subroutine_init init_regulation ; + dll_subroutine_update update_regulation ; + arraysizes_init 52 1 ; + arraysizes_update 12 100 ; + begin init ; + ; Overall parameters + constant 1 5000.0 ; Rated power [kW] + constant 2 0.72257 ; Minimum rotor speed [rad/s] - NREL report + constant 3 1.2671 ; Rated rotor speed [rad/s] - NREL report + constant 4 4.6e6 ; Maximum allowable generator torque [Nm] - NREL rep. + constant 5 0.0 ; Minimum pitch angle, theta_min [deg], - NREL rep. keeps to 0.0 + ; if |theta_min|>90, then a table of <wsp,theta_min> is read ; + ; from a file named 'wptable.n', where n=int(theta_min) + constant 6 84.0 ; Maximum pitch angle [deg] + constant 7 8.0 ; Maximum pitch velocity operation [deg/s] - NREL rep. + constant 8 0.4 ; Frequency of generator speed filter [Hz] - NREL rep. + constant 9 0.7 ; Damping ratio of speed filter [-] - NREL rep. + constant 10 0.0 ; Frequency of free-free DT torsion mode [Hz], 0.0 no notch filter used + ; Partial load control parameters + constant 11 0.216828E+07 ; Optimal Cp tracking K factor [kNm/(rad/s)^2], ; - HS2 tune, lambda opt. 7.55 + ; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3 + constant 12 0.193160E+08 ; Proportional gain of torque controller [Nm/(rad/s)] - HS2 tune + constant 13 0.433451E+07 ; Integral gain of torque controller [Nm/rad] - HS2 tune + constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)] +; Full load control parameters + constant 15 1 ; Generator control switch [1=constant power, 2=constant torque] + constant 16 0.81 ; Proportional gain of pitch controller [rad/(rad/s)] + constant 17 0.16 ; Integral gain of pitch controller [rad/rad] + constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)] + constant 19 0.4e-8 ; Proportional power error gain [rad/W] + constant 20 0.4e-8 ; Integral power error gain [rad/(Ws)] + constant 21 10.6 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg] - HS2 tune + constant 22 583.4 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] & + ; (if zero, KK1 = pitch angle at double gain) - HS2 tune + constant 23 1.3 ; Relative speed for double nonlinear gain [-] +; Cut-in simulation parameters + constant 24 -1.0 ; Cut-in time [s] + constant 25 1.0 ; Time delay for soft start of torque [1/1P] +; Cut-out simulation parameters + constant 26 -1.0 ; Cut-out time [s] + constant 27 5.0 ; Time constant for linear torque cut-out [s] + constant 28 1.0 ; Stop type [1=normal, 2=emergency] + constant 29 0.0 ; Time delay for pitch stop after shut-down commenced [s] + constant 30 4.0 ; Maximum pitch velocity during initial period of stop [deg/s] + constant 31 3.0 ; Time period of initial pitch stop phase [s] + constant 32 6.0 ; Maximum pitch velocity during final phase of stop [deg/s] +; Expert parameters (keep default values unless otherwise given) + constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg] + constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch + constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%] + constant 36 5.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P] + constant 37 5.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P] +; Drivetrain damper + constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10 +; Over speed + constant 39 25.0 ; Over speed percentage before initiating shut-down +; Additional non-linear pitch control term (not used when all zero) + constant 40 25.0 ; Err0 [rad/s] + constant 41 10.0 ; ErrDot0 [rad/s^2] + constant 42 0.15 ; PitNonLin1 [rad/s] +; Storm control command (from MHHA ctrl rev.) + constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s] + constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s] +; Safety system parameters + constant 45 30.0 ; Percent maximum overspeed of generator speed before emergency pitch stop [%] + constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] + constant 47 126.0 ; Nominal rotor diameter [m] +; Parameters for rotor inertia reduction in variable speed region + constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] +; Parameters for alternative partial load controller with PI regulated TSR tracking + constant 49 0.0 ; Optimal tip speed ratio [-] +; Parameters for adding aerodynamic drivetrain damping on gain scheduling + constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)] + constant 51 5.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg] + constant 52 5.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2] + end init ; +; + begin output ; + general time ; [s] + constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s] + constraint bearing2 pitch1 1 only 1; [rad] + constraint bearing2 pitch2 1 only 1; [rad] + constraint bearing2 pitch3 1 only 1; [rad] + wind free_wind 1 0.0 0.0 -90 ; global coords at hub height + dll inpvec 3 2 ; Elec. power + dll inpvec 3 8 ; Grid flag + mbdy state acc towertop 1 1.0 global only 1 ; + mbdy state acc towertop 1 1.0 global only 2 ; + end output; + end type2_dll; +; + begin type2_dll; + name cyclic_pitch_controller ; + filename ./control/cyclic_pitch_controller.dll ; + dll_subroutine_init init_cyclic_pitch_controller ; + dll_subroutine_update update_cyclic_pitch_controller ; + arraysizes_init 11 1 ; + arraysizes_update 11 10 ; + begin init ; + constant 1 47.2 ; Lead angle [deg] + constant 2 1.26 ; Proportional gain at zero pitch [deg/MNm] + constant 3 0.28 ; Integral gain at zero pitch [deg/(MNm*s)] + constant 4 0.0 ; Differential gain at zero pitch [deg*s/MNm] + constant 5 10.6 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg] + constant 6 583.4 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] + constant 7 0.2 ; Low-pass filter frequency [Hz] + constant 8 0.7 ; Low-pass filter damping ratio [-] + constant 9 10.0 ; Low-pass filter time constant for gain scheduling [s] + constant 10 4.0 ; Maximum amplitude on cyclic pitch [deg] + constant 11 0.99 ; Thresshold for full power switch [-] + end init ; + ; + begin output; + general time ; 1: general time [s] + constraint bearing1 shaft_rot 1 ; 2-3: Azimuth angle and speed of blade 1 (zero = blade up) [rad] + mbdy momentvec blade1 3 1 blade1 only 1 ; 4: Flap BRM of blade 1 (pos. bend. forward) [kNm] + mbdy momentvec blade2 3 1 blade2 only 1 ; 5: Flap BRM of blade 2 (pos. bend. forward) [kNm] + mbdy momentvec blade3 3 1 blade3 only 1 ; 6: Flap BRM of blade 3 (pos. bend. forward) [kNm] + dll inpvec 1 2 ; 7: Pitch angle reference of blade 1 from collective pitch controller [rad] + dll inpvec 1 3 ; 8: Pitch angle reference of blade 2 from collective pitch controller [rad] + dll inpvec 1 4 ; 9: Pitch angle reference of blade 3 from collective pitch controller [rad] + dll inpvec 1 22 ; 10: Status flag from collective pitch controller [0=normal operation] + dll inpvec 1 14 ; 11: Torque limit switch based on pitch [-] + end output; + end type2_dll; +; + begin type2_dll; + name generator_servo ; + filename ./control/generator_servo.dll ; + dll_subroutine_init init_generator_servo ; + dll_subroutine_update update_generator_servo ; + arraysizes_init 7 1 ; + arraysizes_update 4 8 ; + begin init ; + constant 1 20.0 ; Frequency of genertor 2nd order control model [Hz] + constant 2 0.9 ; Damping ratio of genertor 2nd order control model [-] + constant 3 4.6e6 ; Maximum allowable LSS torque (pull-out torque) [Nm] + constant 4 0.944 ; Generator efficiency [-] + constant 5 97.0 ; Gearratio [-] + constant 6 0.0 ; Time for half value in softstart of torque [s] + constant 7 1000.0 ; Time for grid loss + end init ; +; + begin output; + general time ; Time [s] + dll inpvec 1 1 ; Electrical torque reference [Nm] + constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s] + mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft) + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name mech_brake ; + filename ./control/mech_brake.dll ; + dll_subroutine_init init_mech_brake ; + dll_subroutine_update update_mech_brake ; + arraysizes_init 4 1 ; + arraysizes_update 3 6 ; + begin init ; + constant 1 2727252.0 ; Fully deployed maximum brake torque [Nm] + constant 2 100.0 ; alpha, used in Q = tanh(omega*alpha), typically 1e2/Omega_nom + constant 3 0.5 ; Delay time for before brake starts to deploy [s] + constant 4 0.6 ; Time for brake to become fully deployed [s] + end init ; +; + begin output; + general time ; Time [s] + constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s] + dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1] + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name servo_with_limits ; + filename ./control/servo_with_limits.dll ; + dll_subroutine_init init_servo_with_limits ; + dll_subroutine_update update_servo_with_limits ; + arraysizes_init 10 1 ; + arraysizes_update 5 9 ; + begin init ; + constant 1 3 ; Number of blades [-] + constant 2 1.0 ; Filter frequency [Hz] + constant 3 0.7 ; Filter damping ratio [-] + constant 4 8.0 ; Max. pitch speed [deg/s] + constant 5 8.0 ; Max. pitch acceleration [deg/s^2] + constant 6 0.0 ; Min. pitch angle [deg] + constant 7 84.0 ; Max. pitch angle [deg] + constant 8 1000.0 ; Time for pitch runaway [s] + constant 9 -1.0 ; Time for stuck blade 1 [s] + constant 10 0.0 ; Angle of stuck blade 1 [deg] + end init ; + begin output; + general time ; Time [s] + ; ; - For Cyclic Pitch: - ; + ; dll inpvec 2 1 ; Pitch1 demand angle [rad] + ; dll inpvec 2 2 ; Pitch2 demand angle [rad] + ; dll inpvec 2 3 ; Pitch3 demand angle [rad] + ; - For Collective Pitch Only: - ; + dll inpvec 1 2 ; Pitch1 demand angle [rad] + dll inpvec 1 3 ; Pitch2 demand angle [rad] + dll inpvec 1 4 ; Pitch3 demand angle [rad] + dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on] + end output; +; + begin actions; + constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad] + constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad] + constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad] + end actions; + end type2_dll; +; --- DLL for tower-blade tip distance -- ; + begin type2_dll; + name disttowtip ; + filename ./control/towclearsens.dll ; + dll_subroutine_init initialize ; + dll_subroutine_update update ; + arraysizes_init 1 1 ; + arraysizes_update 12 4 ; + begin init ; + constant 1 2.66 ; Tower radius close to downward blade tip [m] + end init ; + begin output; + mbdy state pos tower 3 0.75 global ; [1,2,3]. Tower position: 27.5 m + mbdy state pos blade1 18 1.0 global ; [4,5,6] + mbdy state pos blade2 18 1.0 global ; [7,8,9] + mbdy state pos blade3 18 1.0 global ; [10,11,12] + end output; + end type2_dll; +; +; ------------------------------------- Flap Control ------------------------------------------------------------------------------------------------------------ +; 1 individual flap per blade with PID on HPF Mx with rate and range limits +begin type2_dll; + name flap_ctrl ; + filename ./control/flap_dll_type2.dll ; + dll_subroutine_init initialize ; + dll_subroutine_update update ; + arraysizes_init 15 1 ; + arraysizes_update 15 15 ; + begin init ; + constant 1 1 ; Case 1: PID , Case 0: All shut to 0.0 + constant 2 1.9374E-3 ; [2] linear factor for P gain scheduling [-] + constant 3 0 ; [3] linear factor for I gain scheduling [-] + constant 4 1.1029E-4 ; [4] linear factor for D gain scheduling [-] + constant 5 6.6017E-2 ; [5] reference pitch angle for gain scheduling [rad] + constant 6 0.01745 ; [6] Min. pitch angle, below min gain is kept [rad] + constant 7 0.419 ; [7] Max. pitch angle, above max gain is kept [rad] + constant 8 0.1 ; [8] Threshold of "rated power indicator" above which flaps are fully on [-] + ; - Operating Times: + constant 9 90.0 ; [9] time for controller to be active [s] + constant 10 1000.0; [10] time for flap to run away: each flap follows given prescribed signals [s] + ; - Flap angle when overspeed is detected + constant 11 0.0 ; [11] Flap angle to take when over-speed is detected [deg] + ; - Flap servo Parameters: - ; + constant 12 10 ; [12] max flap angle [deg] + constant 13 -10 ; [13] min flap angle [deg] + constant 14 100 ; [14] max flap angle rate [deg/s] + constant 15 0.1 ; [15] flap actuator dynamics time constant [s] + end init ; + begin output; + ; - Time - ; + general time ; [1] current simulation time [s] + general deltat ; [2] time step [s] + ; - Blade root moments - ; + mbdy momentvec blade1 3 1 blade1 only 1 ; # blade 1 root ; [3] Blade 1 flapwise root moment [kNm] + mbdy momentvec blade2 3 1 blade2 only 1 ; # blade 2 root ; [4] Blade 2 flapwise root moment [kNm] + mbdy momentvec blade3 3 1 blade3 only 1 ; # blade 3 root ; [5] Blade 3 flapwise root moment [kNm] + ; - Input from main controller ; + dll inpvec 1 24 ; [6] filtered mean pitch angle [rad] + dll inpvec 1 22 ; [7] Main power control status: 0. normal operation [-] + dll inpvec 1 14 ; [8] Power rating status: 0. below rated power operation 1. above rated power operation[-] + ; - Filter setup and PID gains - ; + general constant 0.05 ; [9] corner frequency for blade flapwise moments high-pass filter [rad/s] + general constant 0.00375 ; [10] Proportional gain + general constant 0.0 ; [11] Integral gain + general constant 0.00027688 ; [12] Derivative gain + ; -Prescribed signals - ; + general constant 0.0 ; [13] Blade 1 prescribed fixed flap angle [deg] + general constant 0.0 ; [14] Blade 2 prescribed fixed flap angle [deg] + general constant 0.0 ; [15] Blade 3 prescribed fixed flap angle [deg] +end output; +begin actions; + aero beta 1 1 ; [1] + aero beta 2 1 ; [2] + aero beta 3 1 ; [3] +end actions ; +end type2_dll; +end dll; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +; +begin output ; + filename ./res/dlc14_iec61400-1ed3/dlc14_wsp12_wdir000_s0000 ; + time 100.0 200.0 ; + data_format hawc_binary; + buffer 1 ; + general time; +; + constraint bearing1 shaft_rot 2; angle and angle velocity + constraint bearing2 pitch1 5; angle and angle velocity + constraint bearing2 pitch2 5; angle and angle velocity + constraint bearing2 pitch3 5; angle and angle velocity + aero omega ; + aero torque; + aero power; + aero thrust; + wind free_wind 1 0.0 0.0 -90.0; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z +; + mbdy momentvec tower 1 1 tower # tower base ; + mbdy momentvec tower 7 2 tower # yaw bearing ; + mbdy momentvec shaft 4 1 shaft # main bearing ; + mbdy momentvec blade1 2 2 blade1 # blade 1 root ; + mbdy momentvec blade1 9 2 local # blade 1 50% local e coo ; + mbdy momentvec blade2 2 2 blade2 # blade 2 root ; + mbdy momentvec blade2 9 2 local # blade 2 50% local e coo ; + mbdy momentvec blade3 2 2 blade3 # blade 3 root ; + mbdy momentvec blade3 9 2 local # blade 3 50% local e coo ; + mbdy state pos tower 7 1.0 global # tower top flange position ; + mbdy state acc tower 7 1.0 global # tower top flange position ; + mbdy state pos tower 3 1.0 global # tower approx tip height ; + mbdy state pos blade1 18 1.0 blade1 # blade 1 tip pos ; + mbdy state pos blade2 18 1.0 blade2 # blade 2 tip pos ; + mbdy state pos blade3 18 1.0 blade3 # blade 3 tip pos ; + mbdy state pos blade1 18 1.0 global # blade 1 tip pos ; + mbdy state pos blade2 18 1.0 global # blade 2 tip pos ; + mbdy state pos blade3 18 1.0 global # blade 3 tip pos ; +; + aero windspeed 3 1 1 63.0; wind seen from the blade: coo(1=local ae,2=blade,3=global,4=rotor polar), blade number, component xyz, blade radius + aero windspeed 3 1 2 63.0; + aero windspeed 3 1 3 63.0; + aero alfa 1 45.0; + aero alfa 2 45.0; + aero alfa 3 45.0; + aero cl 1 45.0 ; + aero cl 2 45.0 ; + aero cl 3 45.0 ; +; +; Input to controller + ; dll outvec 1 1 # time; + ; dll outvec 1 2 # slow speed shaft rad/s; + ; dll outvec 1 3 # pitch angle 1; + ; dll outvec 1 4 # pitch angle 2; + ; dll outvec 1 5 # pitch angle 3; + ; dll outvec 1 6 # WSP_x_global; + ; dll outvec 1 7 # WSP_y_global; + ; dll outvec 1 8 # WSP_z_global; + ; dll outvec 1 9 # Elec. pwr ; + ; dll outvec 1 10 # Grid flag ; +; Output from controller + dll inpvec 1 1 # Generator torque reference [Nm] ; + dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ; + dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ; + dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ; + ; dll inpvec 1 5 # Power reference [W] ; + ; dll inpvec 1 6 # Filtered wind speed [m/s] ; + ; dll inpvec 1 7 # Filtered rotor speed [rad/s]; + ; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s]; + ; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s]; + ; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ; + ; dll inpvec 1 11 # Integral term of torque controller [Nm] ; + ; dll inpvec 1 12 # Minimum limit of torque [Nm] ; + ; dll inpvec 1 13 # Maximum limit of torque [Nm] ; + dll inpvec 1 14 # Torque limit switch based on pitch [-] ; + ; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s]; + ; dll inpvec 1 16 # Power error for pitch [W] ; + ; dll inpvec 1 17 # Proportional term of pitch controller [rad] ; + ; dll inpvec 1 18 # Integral term of pitch controller [rad] ; + ; dll inpvec 1 19 # Minimum limit of pitch [rad] ; + ; dll inpvec 1 20 # Maximum limit of pitch [rad] ; + dll inpvec 1 21 # Torque reference from DT dammper [Nm] ; + dll inpvec 1 22 # Status signal [-] ; + ; dll inpvec 1 23 # Total added pitch rate [rad/s] ; + dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ; + dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ; +; ; Output to generator model + ; dll outvec 2 1 # time ; + ; dll outvec 2 2 # Electrical torque reference [Nm] ; + ; dll outvec 2 3 # omega LSS ; +; Input from generator model + dll inpvec 3 1 # Mgen LSS [Nm]; + dll inpvec 3 2 # Pelec W ; + dll inpvec 3 3 # Mframe ; + dll inpvec 3 4 # Mgen HSS ; + dll inpvec 3 5 # Generator Pmech kW ; + dll inpvec 3 6 # Filtered Gen speed ; + dll inpvec 3 7 # Elec. pwr ; + dll inpvec 3 8 # Grid flag ; +; Output to mechanical brake + dll inpvec 4 1 # Brake torque [Nm] ; +; ; Input to mechanical brake + ; dll outvec 3 1 # Time [s] ; + ; dll outvec 3 2 # Generator LSS speed [rad/s] ; + ; dll outvec 3 3 # Deploy brake ; +; ; Output to pitch servo + ; dll outvec 4 1 # time; + ; dll outvec 4 2 # pitchref 1; + ; dll outvec 4 3 # pitchref 2; + ; dll outvec 4 4 # pitchref 3; + ; dll outvec 4 5 # Emerg. stop; +; Input from pitch servo + dll inpvec 5 1 # pitch 1; + dll inpvec 5 2 # pitch 2; + dll inpvec 5 3 # pitch 3; +; Check tower clearence + dll inpvec 6 1 # Bltip tow min d [m]; +; - Check on flap control: + aero beta 1 1 ; + aero beta 2 1 ; + aero beta 3 1 ; +end output; +; +exit; diff --git a/wetb/hawc2/tests/test_files/logfiles/model/htc/dlc14_iec61400-1ed3/dlc14_wsp14_wdir000_s0000.htc b/wetb/hawc2/tests/test_files/logfiles/model/htc/dlc14_iec61400-1ed3/dlc14_wsp14_wdir000_s0000.htc new file mode 100644 index 0000000000000000000000000000000000000000..c483ba924b68aa8b659e15c40f04b73d0689eaec --- /dev/null +++ b/wetb/hawc2/tests/test_files/logfiles/model/htc/dlc14_iec61400-1ed3/dlc14_wsp14_wdir000_s0000.htc @@ -0,0 +1,778 @@ +begin simulation; + time_stop 200.0; + solvertype 1 ; + on_no_convergence continue ; + convergence_limits 1E3 1.0 1E-7 ; + logfile ./logfiles/dlc14_iec61400-1ed3/dlc14_wsp14_wdir000_s0000.log ; +; + begin newmark; + deltat 0.02; + end newmark; +end simulation; +; +begin new_htc_structure; +;------------------------------------------------------------------------------------------------------------------------------- + begin main_body; tower 90m + name tower ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 3.62e-03 3.62e-03 3.30e-03 ; Mx My Mz Kx Ky Kz , M΄s raises overall level, K΄s raises high freguency level + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 1 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 8; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 -10.0 0.0 ; + sec 3 0.0 0.0 -20.0 0.0 ; + sec 4 0.0 0.0 -30.0 0.0 ; + sec 5 0.0 0.0 -45.0 0.0 ; + sec 6 0.0 0.0 -60.0 0.0 ; + sec 7 0.0 0.0 -70.0 0.0 ; + sec 8 0.0 0.0 -87.6 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name towertop ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 3.00E-05 3.00E-05 2.00E-04 ; + concentrated_mass 2 0.0 1.9 0.21256 2.4E5 1741490.0 1.7E5 1741490.0 ; Nacelle mass and inertia + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 2 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 -1.96256 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name shaft ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 4.65E-04 4.65E-04 7.0725E-03 ; "tuned by Anyd 23/5/13 to 31.45 log decr. damping for free free with stiff rotor and tower" + concentrated_mass 1 0.0 0.0 0.0 0.0 0.0 0.0 5025497.444 ;generator equivalent slow shaft + concentrated_mass 5 0.0 0.0 0.0 56780 0.0 0.0 115926 ; hub mass and inertia; + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 3 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 5; + sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist + sec 2 0.0 0.0 1.0 0.0 ; + sec 3 0.0 0.0 2.0 0.0 ; + sec 4 0.0 0.0 3.1071 0.0 ; Main bearing + sec 5 0.0 0.0 5.0191 0.0 ; Rotor centre + end c2_def ; + end main_body; +; + begin main_body; + name hub1 ; + type timoschenko ; + nbodies 1 ; + node_distribution c2_def ; + damping_posdef 0.0 0.0 0.0 3.00E-06 3.00E-06 2.00E-05; + begin timoschenko_input; + filename ./data/NREL_5MW_st.txt ; + set 4 1 ; + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 2; + sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist + sec 2 0.0 0.0 1.5 0.0 ; + end c2_def ; + end main_body; +; + begin main_body; + name hub2 ; + copy_main_body hub1; + end main_body; +; + begin main_body; + name hub3 ; + copy_main_body hub1 ; + end main_body; +; + begin main_body; + name blade1 ; + type timoschenko ; + nbodies 9 ; + node_distribution c2_def; + damping_posdef 0.0 0.0 0.0 1.41E-03 2.39E-03 4.5E-05 ; + begin timoschenko_input ; + filename ./data/NREL_5MW_st.txt ; + set 5 1 ; set subset + end timoschenko_input; + begin c2_def; Definition of centerline (main_body coordinates) + nsec 19 ; + sec 1 0.0000 0.0000 0.000 0.000 ; x.y.z. twist + sec 2 -0.0027 0.0006 1.367 -13.308 ; + sec 3 -0.1057 0.0250 4.100 -13.308 ; + sec 4 -0.2501 0.0592 6.833 -13.308 ; + sec 5 -0.4592 0.1086 10.250 -13.308 ; + sec 6 -0.5699 0.1157 14.350 -11.480 ; + sec 7 -0.5485 0.0983 18.450 -10.162 ; + sec 8 -0.5246 0.0832 22.550 -9.011 ; + sec 9 -0.4962 0.0679 26.650 -7.795 ; + sec 10 -0.4654 0.0534 30.750 -6.544 ; 50% blade radius + sec 11 -0.4358 0.0409 34.850 -5.361 ; + sec 12 -0.4059 0.0297 38.950 -4.188 ; + sec 13 -0.3757 0.0205 43.050 -3.125 ; + sec 14 -0.3452 0.0140 47.150 -2.319 ; + sec 15 -0.3146 0.0084 51.250 -1.526 ; + sec 16 -0.2891 0.0044 54.667 -0.863 ; + sec 17 -0.2607 0.0017 57.400 -0.370 ; + sec 18 -0.1774 0.0003 60.133 -0.106 ; + sec 19 -0.1201 0.0000 61.500 -0.000 ; + end c2_def ; + end main_body; +; + begin main_body; + name blade2 ; + copy_main_body blade1; + end main_body; +; + begin main_body; + name blade3 ; + copy_main_body blade1 ; + end main_body; +;------------------------------------------------------------------------------------------------------------------------------- +; + begin orientation; + begin base; + body tower; + inipos 0.0 0.0 0.0 ; initial position of node 1 + body_eulerang 0.0 0.0 0.0; + end base; +; + begin relative; + body1 tower last; + body2 towertop 1; + body2_eulerang 0.0 0.0 0.0; + end relative; +; + begin relative; + body1 towertop last; + body2 shaft 1; + body2_eulerang 90.0 0.0 0.0; + body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle + body2_eulerang 0.0 0.0 0.0; + mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.2 ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.7; + end relative; +; + begin relative; + body1 shaft last; + body2 hub1 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 180.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub2 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 shaft last; + body2 hub3 1; + body2_eulerang -90.0 0.0 0.0; + body2_eulerang 0.0 -60.0 0.0; + body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle + end relative; +; + begin relative; + body1 hub1 last; + body2 blade1 1; + body2_eulerang 0.0 0.0 0.0 ; + end relative; +; + begin relative; + body1 hub2 last; + body2 blade2 1; + body2_eulerang 0.0 0.0 0.5 ; + end relative; +; + begin relative; + body1 hub3 last; + body2 blade3 1; + body2_eulerang 0.0 0.0 -0.5 ; + end relative; +; + end orientation; +;------------------------------------------------------------------------------------------------------------------------------- +begin constraint; +; + begin fix0; fixed to ground in translation and rotation of node 1 + body tower; + end fix0; +; + begin fix1; + body1 tower last ; + body2 towertop 1; + end fix1; +; + begin bearing1; free bearing + name shaft_rot; + body1 towertop last; + body2 shaft 1; + bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present + end bearing1; +; +; begin bearing3; free bearing +; name shaft_rot; +; body1 towertop last; +; body2 shaft 1; +; bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present +; omegas 0.0 ; +; end bearing3; +; + begin fix1; + body1 shaft last ; + body2 hub1 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub2 1; + end fix1; +; + begin fix1; + body1 shaft last ; + body2 hub3 1; + end fix1; +; + begin bearing2; + name pitch1; + body1 hub1 last; + body2 blade1 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch2; + body1 hub2 last; + body2 blade2 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +; + begin bearing2; + name pitch3; + body1 hub3 last; + body2 blade3 1; + bearing_vector 2 0.0 0.0 -1.0; + end bearing2; +end constraint; +; +end new_htc_structure; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin wind ; + density 1.225 ; + wsp 14.0 ; + tint 0.268068571429 ; + horizontal_input 1 ; + windfield_rotations 0.0 0.0 0.0 ; yaw, tilt, rotation + center_pos0 0.0 0.0 -90 ; hub heigth + shear_format 3 0.2 ; + turb_format 0.0 ; 0=none, 1=mann,2=flex + tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet + scale_time_start 100.0 ; + wind_ramp_factor 0.0 100.0 0.571428571429 1.0 ; + iec_gust ecd 15.0 51.4285714286 100.0 10.0 ; +; + begin mann ; + create_turb_parameters 29.4 1.0 3.7 0.0 1.0 ; L, alfaeps, gamma, seed, highfrq compensation + filename_u ./turb/turb_wsp14_s0000u.bin ; + filename_v ./turb/turb_wsp14_s0000v.bin ; + filename_w ./turb/turb_wsp14_s0000w.bin ; + box_dim_u 8192 0.341796875 ; + box_dim_v 32 4.0 ; + box_dim_w 32 4.0 ; + std_scaling 1.0 0.7 0.5 ; + end mann ; +; + begin tower_shadow_potential_2; + tower_mbdy_link tower; + nsec 2; + radius 0.0 3.0 ; + radius 87.6 1.935 ; + end tower_shadow_potential_2; +end wind; +; +begin aero ; + nblades 3; + hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side) + link 1 mbdy_c2_def blade1; + link 2 mbdy_c2_def blade2; + link 3 mbdy_c2_def blade3; + ae_filename ./data/AeDist_Flap_01.dat ; Distribute points to preserve effective flap length, use same setup for baseline + pc_filename ./data/NREL_5MW_pc.txt; + induction_method 1.0 ; 0=none, 1=normal + aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic + aero_distribution ae_file 1 ; + ae_sets 1 1 1; + tiploss_method 1 ; 0=none, 1=prandtl + dynstall_method 3.0 ; 0=none, 1=stig øye method,2=mhh method + ; --- Flaps --- ; + begin dynstall_ateflap ; + Ais 0.165 0.335 0.0 ; + Bis 0.0455 0.30 0.30 ; + flap 43.05 60.885 ./data/FlapInp_NacaThk17.ds ; Flap Sec: 1 + end dynstall_ateflap; +end aero ; +; +begin aerodrag ; + begin aerodrag_element ; + mbdy_name tower; + aerodrag_sections uniform 10 ; + nsec 2 ; + sec 0.0 0.6 6.0 ; tower bottom + sec 87.6 0.6 3.87 ; tower top + end aerodrag_element; +; + begin aerodrag_element ; Nacelle drag side + mbdy_name shaft; + aerodrag_sections uniform 2 ; + nsec 2 ; + sec 0.0 0.8 10.0 ; + sec 5.02 0.8 10.0 ; + end aerodrag_element; +end aerodrag; +; +;------------------------------------------------------------------------------------------------- +begin dll; +; + begin type2_dll; + name risoe_controller ; + filename ./control/risoe_controller.dll ; + dll_subroutine_init init_regulation ; + dll_subroutine_update update_regulation ; + arraysizes_init 52 1 ; + arraysizes_update 12 100 ; + begin init ; + ; Overall parameters + constant 1 5000.0 ; Rated power [kW] + constant 2 0.72257 ; Minimum rotor speed [rad/s] - NREL report + constant 3 1.2671 ; Rated rotor speed [rad/s] - NREL report + constant 4 4.6e6 ; Maximum allowable generator torque [Nm] - NREL rep. + constant 5 0.0 ; Minimum pitch angle, theta_min [deg], - NREL rep. keeps to 0.0 + ; if |theta_min|>90, then a table of <wsp,theta_min> is read ; + ; from a file named 'wptable.n', where n=int(theta_min) + constant 6 84.0 ; Maximum pitch angle [deg] + constant 7 8.0 ; Maximum pitch velocity operation [deg/s] - NREL rep. + constant 8 0.4 ; Frequency of generator speed filter [Hz] - NREL rep. + constant 9 0.7 ; Damping ratio of speed filter [-] - NREL rep. + constant 10 0.0 ; Frequency of free-free DT torsion mode [Hz], 0.0 no notch filter used + ; Partial load control parameters + constant 11 0.216828E+07 ; Optimal Cp tracking K factor [kNm/(rad/s)^2], ; - HS2 tune, lambda opt. 7.55 + ; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3 + constant 12 0.193160E+08 ; Proportional gain of torque controller [Nm/(rad/s)] - HS2 tune + constant 13 0.433451E+07 ; Integral gain of torque controller [Nm/rad] - HS2 tune + constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)] +; Full load control parameters + constant 15 1 ; Generator control switch [1=constant power, 2=constant torque] + constant 16 0.81 ; Proportional gain of pitch controller [rad/(rad/s)] + constant 17 0.16 ; Integral gain of pitch controller [rad/rad] + constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)] + constant 19 0.4e-8 ; Proportional power error gain [rad/W] + constant 20 0.4e-8 ; Integral power error gain [rad/(Ws)] + constant 21 10.6 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg] - HS2 tune + constant 22 583.4 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] & + ; (if zero, KK1 = pitch angle at double gain) - HS2 tune + constant 23 1.3 ; Relative speed for double nonlinear gain [-] +; Cut-in simulation parameters + constant 24 -1.0 ; Cut-in time [s] + constant 25 1.0 ; Time delay for soft start of torque [1/1P] +; Cut-out simulation parameters + constant 26 -1.0 ; Cut-out time [s] + constant 27 5.0 ; Time constant for linear torque cut-out [s] + constant 28 1.0 ; Stop type [1=normal, 2=emergency] + constant 29 0.0 ; Time delay for pitch stop after shut-down commenced [s] + constant 30 4.0 ; Maximum pitch velocity during initial period of stop [deg/s] + constant 31 3.0 ; Time period of initial pitch stop phase [s] + constant 32 6.0 ; Maximum pitch velocity during final phase of stop [deg/s] +; Expert parameters (keep default values unless otherwise given) + constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg] + constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch + constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%] + constant 36 5.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P] + constant 37 5.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P] +; Drivetrain damper + constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10 +; Over speed + constant 39 25.0 ; Over speed percentage before initiating shut-down +; Additional non-linear pitch control term (not used when all zero) + constant 40 25.0 ; Err0 [rad/s] + constant 41 10.0 ; ErrDot0 [rad/s^2] + constant 42 0.15 ; PitNonLin1 [rad/s] +; Storm control command (from MHHA ctrl rev.) + constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s] + constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s] +; Safety system parameters + constant 45 30.0 ; Percent maximum overspeed of generator speed before emergency pitch stop [%] + constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] + constant 47 126.0 ; Nominal rotor diameter [m] +; Parameters for rotor inertia reduction in variable speed region + constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] +; Parameters for alternative partial load controller with PI regulated TSR tracking + constant 49 0.0 ; Optimal tip speed ratio [-] +; Parameters for adding aerodynamic drivetrain damping on gain scheduling + constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)] + constant 51 5.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg] + constant 52 5.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2] + end init ; +; + begin output ; + general time ; [s] + constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s] + constraint bearing2 pitch1 1 only 1; [rad] + constraint bearing2 pitch2 1 only 1; [rad] + constraint bearing2 pitch3 1 only 1; [rad] + wind free_wind 1 0.0 0.0 -90 ; global coords at hub height + dll inpvec 3 2 ; Elec. power + dll inpvec 3 8 ; Grid flag + mbdy state acc towertop 1 1.0 global only 1 ; + mbdy state acc towertop 1 1.0 global only 2 ; + end output; + end type2_dll; +; + begin type2_dll; + name cyclic_pitch_controller ; + filename ./control/cyclic_pitch_controller.dll ; + dll_subroutine_init init_cyclic_pitch_controller ; + dll_subroutine_update update_cyclic_pitch_controller ; + arraysizes_init 11 1 ; + arraysizes_update 11 10 ; + begin init ; + constant 1 47.2 ; Lead angle [deg] + constant 2 1.26 ; Proportional gain at zero pitch [deg/MNm] + constant 3 0.28 ; Integral gain at zero pitch [deg/(MNm*s)] + constant 4 0.0 ; Differential gain at zero pitch [deg*s/MNm] + constant 5 10.6 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg] + constant 6 583.4 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] + constant 7 0.2 ; Low-pass filter frequency [Hz] + constant 8 0.7 ; Low-pass filter damping ratio [-] + constant 9 10.0 ; Low-pass filter time constant for gain scheduling [s] + constant 10 4.0 ; Maximum amplitude on cyclic pitch [deg] + constant 11 0.99 ; Thresshold for full power switch [-] + end init ; + ; + begin output; + general time ; 1: general time [s] + constraint bearing1 shaft_rot 1 ; 2-3: Azimuth angle and speed of blade 1 (zero = blade up) [rad] + mbdy momentvec blade1 3 1 blade1 only 1 ; 4: Flap BRM of blade 1 (pos. bend. forward) [kNm] + mbdy momentvec blade2 3 1 blade2 only 1 ; 5: Flap BRM of blade 2 (pos. bend. forward) [kNm] + mbdy momentvec blade3 3 1 blade3 only 1 ; 6: Flap BRM of blade 3 (pos. bend. forward) [kNm] + dll inpvec 1 2 ; 7: Pitch angle reference of blade 1 from collective pitch controller [rad] + dll inpvec 1 3 ; 8: Pitch angle reference of blade 2 from collective pitch controller [rad] + dll inpvec 1 4 ; 9: Pitch angle reference of blade 3 from collective pitch controller [rad] + dll inpvec 1 22 ; 10: Status flag from collective pitch controller [0=normal operation] + dll inpvec 1 14 ; 11: Torque limit switch based on pitch [-] + end output; + end type2_dll; +; + begin type2_dll; + name generator_servo ; + filename ./control/generator_servo.dll ; + dll_subroutine_init init_generator_servo ; + dll_subroutine_update update_generator_servo ; + arraysizes_init 7 1 ; + arraysizes_update 4 8 ; + begin init ; + constant 1 20.0 ; Frequency of genertor 2nd order control model [Hz] + constant 2 0.9 ; Damping ratio of genertor 2nd order control model [-] + constant 3 4.6e6 ; Maximum allowable LSS torque (pull-out torque) [Nm] + constant 4 0.944 ; Generator efficiency [-] + constant 5 97.0 ; Gearratio [-] + constant 6 0.0 ; Time for half value in softstart of torque [s] + constant 7 1000.0 ; Time for grid loss + end init ; +; + begin output; + general time ; Time [s] + dll inpvec 1 1 ; Electrical torque reference [Nm] + constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s] + mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft) + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name mech_brake ; + filename ./control/mech_brake.dll ; + dll_subroutine_init init_mech_brake ; + dll_subroutine_update update_mech_brake ; + arraysizes_init 4 1 ; + arraysizes_update 3 6 ; + begin init ; + constant 1 2727252.0 ; Fully deployed maximum brake torque [Nm] + constant 2 100.0 ; alpha, used in Q = tanh(omega*alpha), typically 1e2/Omega_nom + constant 3 0.5 ; Delay time for before brake starts to deploy [s] + constant 4 0.6 ; Time for brake to become fully deployed [s] + end init ; +; + begin output; + general time ; Time [s] + constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s] + dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1] + end output; +; + begin actions; + mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm] + end actions; + end type2_dll; +; + begin type2_dll; + name servo_with_limits ; + filename ./control/servo_with_limits.dll ; + dll_subroutine_init init_servo_with_limits ; + dll_subroutine_update update_servo_with_limits ; + arraysizes_init 10 1 ; + arraysizes_update 5 9 ; + begin init ; + constant 1 3 ; Number of blades [-] + constant 2 1.0 ; Filter frequency [Hz] + constant 3 0.7 ; Filter damping ratio [-] + constant 4 8.0 ; Max. pitch speed [deg/s] + constant 5 8.0 ; Max. pitch acceleration [deg/s^2] + constant 6 0.0 ; Min. pitch angle [deg] + constant 7 84.0 ; Max. pitch angle [deg] + constant 8 1000.0 ; Time for pitch runaway [s] + constant 9 -1.0 ; Time for stuck blade 1 [s] + constant 10 0.0 ; Angle of stuck blade 1 [deg] + end init ; + begin output; + general time ; Time [s] + ; ; - For Cyclic Pitch: - ; + ; dll inpvec 2 1 ; Pitch1 demand angle [rad] + ; dll inpvec 2 2 ; Pitch2 demand angle [rad] + ; dll inpvec 2 3 ; Pitch3 demand angle [rad] + ; - For Collective Pitch Only: - ; + dll inpvec 1 2 ; Pitch1 demand angle [rad] + dll inpvec 1 3 ; Pitch2 demand angle [rad] + dll inpvec 1 4 ; Pitch3 demand angle [rad] + dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on] + end output; +; + begin actions; + constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad] + constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad] + constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad] + end actions; + end type2_dll; +; --- DLL for tower-blade tip distance -- ; + begin type2_dll; + name disttowtip ; + filename ./control/towclearsens.dll ; + dll_subroutine_init initialize ; + dll_subroutine_update update ; + arraysizes_init 1 1 ; + arraysizes_update 12 4 ; + begin init ; + constant 1 2.66 ; Tower radius close to downward blade tip [m] + end init ; + begin output; + mbdy state pos tower 3 0.75 global ; [1,2,3]. Tower position: 27.5 m + mbdy state pos blade1 18 1.0 global ; [4,5,6] + mbdy state pos blade2 18 1.0 global ; [7,8,9] + mbdy state pos blade3 18 1.0 global ; [10,11,12] + end output; + end type2_dll; +; +; ------------------------------------- Flap Control ------------------------------------------------------------------------------------------------------------ +; 1 individual flap per blade with PID on HPF Mx with rate and range limits +begin type2_dll; + name flap_ctrl ; + filename ./control/flap_dll_type2.dll ; + dll_subroutine_init initialize ; + dll_subroutine_update update ; + arraysizes_init 15 1 ; + arraysizes_update 15 15 ; + begin init ; + constant 1 1 ; Case 1: PID , Case 0: All shut to 0.0 + constant 2 1.9374E-3 ; [2] linear factor for P gain scheduling [-] + constant 3 0 ; [3] linear factor for I gain scheduling [-] + constant 4 1.1029E-4 ; [4] linear factor for D gain scheduling [-] + constant 5 6.6017E-2 ; [5] reference pitch angle for gain scheduling [rad] + constant 6 0.01745 ; [6] Min. pitch angle, below min gain is kept [rad] + constant 7 0.419 ; [7] Max. pitch angle, above max gain is kept [rad] + constant 8 0.1 ; [8] Threshold of "rated power indicator" above which flaps are fully on [-] + ; - Operating Times: + constant 9 90.0 ; [9] time for controller to be active [s] + constant 10 1000.0; [10] time for flap to run away: each flap follows given prescribed signals [s] + ; - Flap angle when overspeed is detected + constant 11 0.0 ; [11] Flap angle to take when over-speed is detected [deg] + ; - Flap servo Parameters: - ; + constant 12 10 ; [12] max flap angle [deg] + constant 13 -10 ; [13] min flap angle [deg] + constant 14 100 ; [14] max flap angle rate [deg/s] + constant 15 0.1 ; [15] flap actuator dynamics time constant [s] + end init ; + begin output; + ; - Time - ; + general time ; [1] current simulation time [s] + general deltat ; [2] time step [s] + ; - Blade root moments - ; + mbdy momentvec blade1 3 1 blade1 only 1 ; # blade 1 root ; [3] Blade 1 flapwise root moment [kNm] + mbdy momentvec blade2 3 1 blade2 only 1 ; # blade 2 root ; [4] Blade 2 flapwise root moment [kNm] + mbdy momentvec blade3 3 1 blade3 only 1 ; # blade 3 root ; [5] Blade 3 flapwise root moment [kNm] + ; - Input from main controller ; + dll inpvec 1 24 ; [6] filtered mean pitch angle [rad] + dll inpvec 1 22 ; [7] Main power control status: 0. normal operation [-] + dll inpvec 1 14 ; [8] Power rating status: 0. below rated power operation 1. above rated power operation[-] + ; - Filter setup and PID gains - ; + general constant 0.05 ; [9] corner frequency for blade flapwise moments high-pass filter [rad/s] + general constant 0.00375 ; [10] Proportional gain + general constant 0.0 ; [11] Integral gain + general constant 0.00027688 ; [12] Derivative gain + ; -Prescribed signals - ; + general constant 0.0 ; [13] Blade 1 prescribed fixed flap angle [deg] + general constant 0.0 ; [14] Blade 2 prescribed fixed flap angle [deg] + general constant 0.0 ; [15] Blade 3 prescribed fixed flap angle [deg] +end output; +begin actions; + aero beta 1 1 ; [1] + aero beta 2 1 ; [2] + aero beta 3 1 ; [3] +end actions ; +end type2_dll; +end dll; +; +;---------------------------------------------------------------------------------------------------------------------------------------------------------------- +; +begin output ; + filename ./res/dlc14_iec61400-1ed3/dlc14_wsp14_wdir000_s0000 ; + time 100.0 200.0 ; + data_format hawc_binary; + buffer 1 ; + general time; +; + constraint bearing1 shaft_rot 2; angle and angle velocity + constraint bearing2 pitch1 5; angle and angle velocity + constraint bearing2 pitch2 5; angle and angle velocity + constraint bearing2 pitch3 5; angle and angle velocity + aero omega ; + aero torque; + aero power; + aero thrust; + wind free_wind 1 0.0 0.0 -90.0; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z +; + mbdy momentvec tower 1 1 tower # tower base ; + mbdy momentvec tower 7 2 tower # yaw bearing ; + mbdy momentvec shaft 4 1 shaft # main bearing ; + mbdy momentvec blade1 2 2 blade1 # blade 1 root ; + mbdy momentvec blade1 9 2 local # blade 1 50% local e coo ; + mbdy momentvec blade2 2 2 blade2 # blade 2 root ; + mbdy momentvec blade2 9 2 local # blade 2 50% local e coo ; + mbdy momentvec blade3 2 2 blade3 # blade 3 root ; + mbdy momentvec blade3 9 2 local # blade 3 50% local e coo ; + mbdy state pos tower 7 1.0 global # tower top flange position ; + mbdy state acc tower 7 1.0 global # tower top flange position ; + mbdy state pos tower 3 1.0 global # tower approx tip height ; + mbdy state pos blade1 18 1.0 blade1 # blade 1 tip pos ; + mbdy state pos blade2 18 1.0 blade2 # blade 2 tip pos ; + mbdy state pos blade3 18 1.0 blade3 # blade 3 tip pos ; + mbdy state pos blade1 18 1.0 global # blade 1 tip pos ; + mbdy state pos blade2 18 1.0 global # blade 2 tip pos ; + mbdy state pos blade3 18 1.0 global # blade 3 tip pos ; +; + aero windspeed 3 1 1 63.0; wind seen from the blade: coo(1=local ae,2=blade,3=global,4=rotor polar), blade number, component xyz, blade radius + aero windspeed 3 1 2 63.0; + aero windspeed 3 1 3 63.0; + aero alfa 1 45.0; + aero alfa 2 45.0; + aero alfa 3 45.0; + aero cl 1 45.0 ; + aero cl 2 45.0 ; + aero cl 3 45.0 ; +; +; Input to controller + ; dll outvec 1 1 # time; + ; dll outvec 1 2 # slow speed shaft rad/s; + ; dll outvec 1 3 # pitch angle 1; + ; dll outvec 1 4 # pitch angle 2; + ; dll outvec 1 5 # pitch angle 3; + ; dll outvec 1 6 # WSP_x_global; + ; dll outvec 1 7 # WSP_y_global; + ; dll outvec 1 8 # WSP_z_global; + ; dll outvec 1 9 # Elec. pwr ; + ; dll outvec 1 10 # Grid flag ; +; Output from controller + dll inpvec 1 1 # Generator torque reference [Nm] ; + dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ; + dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ; + dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ; + ; dll inpvec 1 5 # Power reference [W] ; + ; dll inpvec 1 6 # Filtered wind speed [m/s] ; + ; dll inpvec 1 7 # Filtered rotor speed [rad/s]; + ; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s]; + ; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s]; + ; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ; + ; dll inpvec 1 11 # Integral term of torque controller [Nm] ; + ; dll inpvec 1 12 # Minimum limit of torque [Nm] ; + ; dll inpvec 1 13 # Maximum limit of torque [Nm] ; + dll inpvec 1 14 # Torque limit switch based on pitch [-] ; + ; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s]; + ; dll inpvec 1 16 # Power error for pitch [W] ; + ; dll inpvec 1 17 # Proportional term of pitch controller [rad] ; + ; dll inpvec 1 18 # Integral term of pitch controller [rad] ; + ; dll inpvec 1 19 # Minimum limit of pitch [rad] ; + ; dll inpvec 1 20 # Maximum limit of pitch [rad] ; + dll inpvec 1 21 # Torque reference from DT dammper [Nm] ; + dll inpvec 1 22 # Status signal [-] ; + ; dll inpvec 1 23 # Total added pitch rate [rad/s] ; + dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ; + dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ; +; ; Output to generator model + ; dll outvec 2 1 # time ; + ; dll outvec 2 2 # Electrical torque reference [Nm] ; + ; dll outvec 2 3 # omega LSS ; +; Input from generator model + dll inpvec 3 1 # Mgen LSS [Nm]; + dll inpvec 3 2 # Pelec W ; + dll inpvec 3 3 # Mframe ; + dll inpvec 3 4 # Mgen HSS ; + dll inpvec 3 5 # Generator Pmech kW ; + dll inpvec 3 6 # Filtered Gen speed ; + dll inpvec 3 7 # Elec. pwr ; + dll inpvec 3 8 # Grid flag ; +; Output to mechanical brake + dll inpvec 4 1 # Brake torque [Nm] ; +; ; Input to mechanical brake + ; dll outvec 3 1 # Time [s] ; + ; dll outvec 3 2 # Generator LSS speed [rad/s] ; + ; dll outvec 3 3 # Deploy brake ; +; ; Output to pitch servo + ; dll outvec 4 1 # time; + ; dll outvec 4 2 # pitchref 1; + ; dll outvec 4 3 # pitchref 2; + ; dll outvec 4 4 # pitchref 3; + ; dll outvec 4 5 # Emerg. stop; +; Input from pitch servo + dll inpvec 5 1 # pitch 1; + dll inpvec 5 2 # pitch 2; + dll inpvec 5 3 # pitch 3; +; Check tower clearence + dll inpvec 6 1 # Bltip tow min d [m]; +; - Check on flap control: + aero beta 1 1 ; + aero beta 2 1 ; + aero beta 3 1 ; +end output; +; +exit; diff --git a/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp10_wdir000_s0000.log b/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp10_wdir000_s0000.log new file mode 100644 index 0000000000000000000000000000000000000000..f92c82b4eb680ca872dd7229fa84724e6ba9f851 Binary files /dev/null and b/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp10_wdir000_s0000.log differ diff --git a/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp10_wdir000_s0000.log_ b/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp10_wdir000_s0000.log_ new file mode 100644 index 0000000000000000000000000000000000000000..f92c82b4eb680ca872dd7229fa84724e6ba9f851 Binary files /dev/null and b/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp10_wdir000_s0000.log_ differ diff --git a/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp12_wdir000_s0000.log b/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp12_wdir000_s0000.log new file mode 100644 index 0000000000000000000000000000000000000000..105ce95c9d7c2066f1bd433483529686b45767aa Binary files /dev/null and b/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp12_wdir000_s0000.log differ diff --git a/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp14_wdir000_s0000.log b/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp14_wdir000_s0000.log new file mode 100644 index 0000000000000000000000000000000000000000..c5e6645fe7593fc306007da29364766327341f46 Binary files /dev/null and b/wetb/hawc2/tests/test_files/logfiles/model/logfiles/dlc14_iec61400-1ed3/dlc14_wsp14_wdir000_s0000.log differ diff --git a/wetb/hawc2/tests/test_files/logfiles/simulating.log b/wetb/hawc2/tests/test_files/logfiles/simulating.log new file mode 100644 index 0000000000000000000000000000000000000000..cda9b7505950e535b3bdd47828c8640cd401f5a2 Binary files /dev/null and b/wetb/hawc2/tests/test_files/logfiles/simulating.log differ diff --git a/wetb/hawc2/tests/test_files/logfiles/simulation_error.log b/wetb/hawc2/tests/test_files/logfiles/simulation_error.log new file mode 100644 index 0000000000000000000000000000000000000000..4902ba71a2216d09e24321400b60f14b90d757af Binary files /dev/null and b/wetb/hawc2/tests/test_files/logfiles/simulation_error.log differ diff --git a/wetb/hawc2/tests/test_files/logfiles/simulation_error2.log b/wetb/hawc2/tests/test_files/logfiles/simulation_error2.log new file mode 100644 index 0000000000000000000000000000000000000000..c377059b80353b83c1cd0a950e4514e2df3fdd3c --- /dev/null +++ b/wetb/hawc2/tests/test_files/logfiles/simulation_error2.log @@ -0,0 +1,1439 @@ +________________________________________________________________________________________________________________________ + Version ID : HAWC2MB 12.3 + Log file output + Time : 09:40:58 + Date : 20:11.2015 +________________________________________________________________________________________________________________________ + Simulation commands read with succes + Orientation input commands read with succes + constraint input commands read with succes + Topologi commands read with succes + Mann commands read with succes + Wind commands read with succes + DLL commands read with succes + output commands read with succes + Output commands read + Initialization of structure + Initialization of wind + Initialization of user defined shear + Succes opening ./shear/shear.dat + Starting simulation + Global time = 2.000000000000000E-002 Iter = 0 + Global time = 4.000000000000000E-002 Iter = 0 + Global time = 6.000000000000000E-002 Iter = 0 + Global time = 8.000000000000000E-002 Iter = 0 + Global time = 0.100000000000000 Iter = 0 + Global time = 0.120000000000000 Iter = 0 + Global time = 0.140000000000000 Iter = 0 + Global time = 0.160000000000000 Iter = 0 + Global time = 0.180000000000000 Iter = 0 + Global time = 0.200000000000000 Iter = 0 + Global time = 0.220000000000000 Iter = 0 + Global time = 0.240000000000000 Iter = 0 + Global time = 0.260000000000000 Iter = 0 + Global time = 0.280000000000000 Iter = 0 + Global time = 0.300000000000000 Iter = 0 + Global time = 0.320000000000000 Iter = 0 + Global time = 0.340000000000000 Iter = 0 + Global time = 0.360000000000000 Iter = 0 + Global time = 0.380000000000000 Iter = 0 + Global time = 0.400000000000000 Iter = 0 + Global time = 0.420000000000000 Iter = 0 + Global time = 0.440000000000000 Iter = 0 + Global time = 0.460000000000000 Iter = 0 + Global time = 0.480000000000000 Iter = 0 + Global time = 0.500000000000000 Iter = 0 + Global time = 0.520000000000000 Iter = 0 + Global time = 0.540000000000000 Iter = 0 + Global time = 0.560000000000000 Iter = 0 + Global time = 0.580000000000000 Iter = 0 + Global time = 0.600000000000000 Iter = 0 + Global time = 0.620000000000000 Iter = 0 + Global time = 0.640000000000000 Iter = 0 + Global time = 0.660000000000000 Iter = 0 + Global time = 0.680000000000000 Iter = 0 + Global time = 0.700000000000000 Iter = 0 + Global time = 0.720000000000000 Iter = 0 + Global time = 0.740000000000000 Iter = 0 + Global time = 0.760000000000000 Iter = 0 + Global time = 0.780000000000000 Iter = 0 + Global time = 0.800000000000000 Iter = 0 + Global time = 0.820000000000000 Iter = 0 + Global time = 0.840000000000000 Iter = 0 + Global time = 0.860000000000000 Iter = 0 + Global time = 0.880000000000000 Iter = 0 + Global time = 0.900000000000000 Iter = 0 + Global time = 0.920000000000000 Iter = 0 + Global time = 0.940000000000000 Iter = 0 + Global time = 0.960000000000000 Iter = 0 + Global time = 0.980000000000000 Iter = 0 + Global time = 1.00000000000000 Iter = 0 + Global time = 1.02000000000000 Iter = 0 + Global time = 1.04000000000000 Iter = 0 + Global time = 1.06000000000000 Iter = 0 + Global time = 1.08000000000000 Iter = 0 + Global time = 1.10000000000000 Iter = 0 + Global time = 1.12000000000000 Iter = 0 + Global time = 1.14000000000000 Iter = 0 + Global time = 1.16000000000000 Iter = 0 + Global time = 1.18000000000000 Iter = 0 + Global time = 1.20000000000000 Iter = 0 + Global time = 1.22000000000000 Iter = 0 + Global time = 1.24000000000000 Iter = 0 + Global time = 1.26000000000000 Iter = 0 + Global time = 1.28000000000000 Iter = 0 + Global time = 1.30000000000000 Iter = 0 + Global time = 1.32000000000000 Iter = 0 + Global time = 1.34000000000000 Iter = 0 + Global time = 1.36000000000000 Iter = 0 + Global time = 1.38000000000000 Iter = 0 + Global time = 1.40000000000000 Iter = 0 + Global time = 1.42000000000000 Iter = 0 + Global time = 1.44000000000000 Iter = 0 + Global time = 1.46000000000000 Iter = 0 + Global time = 1.48000000000000 Iter = 0 + Global time = 1.50000000000000 Iter = 0 + Global time = 1.52000000000000 Iter = 0 + Global time = 1.54000000000000 Iter = 0 + Global time = 1.56000000000000 Iter = 0 + Global time = 1.58000000000000 Iter = 0 + Global time = 1.60000000000000 Iter = 0 + Global time = 1.62000000000000 Iter = 0 + Global time = 1.64000000000000 Iter = 0 + Global time = 1.66000000000000 Iter = 0 + Global time = 1.68000000000000 Iter = 0 + Global time = 1.70000000000000 Iter = 0 + Global time = 1.72000000000000 Iter = 0 + Global time = 1.74000000000000 Iter = 0 + Global time = 1.76000000000000 Iter = 0 + Global time = 1.78000000000000 Iter = 0 + Global time = 1.80000000000000 Iter = 0 + Global time = 1.82000000000000 Iter = 0 + Global time = 1.84000000000000 Iter = 0 + Global time = 1.86000000000000 Iter = 0 + Global time = 1.88000000000000 Iter = 0 + Global time = 1.90000000000000 Iter = 0 + Global time = 1.92000000000000 Iter = 0 + Global time = 1.94000000000000 Iter = 0 + Global time = 1.96000000000000 Iter = 0 + Global time = 1.98000000000000 Iter = 0 + Global time = 2.00000000000000 Iter = 0 + Global time = 2.02000000000000 Iter = 0 + Global time = 2.04000000000000 Iter = 0 + Global time = 2.06000000000000 Iter = 0 + Global time = 2.08000000000000 Iter = 0 + Global time = 2.10000000000000 Iter = 0 + Global time = 2.12000000000000 Iter = 0 + Global time = 2.14000000000000 Iter = 0 + Global time = 2.16000000000000 Iter = 0 + Global time = 2.18000000000000 Iter = 0 + Global time = 2.20000000000000 Iter = 0 + Global time = 2.22000000000000 Iter = 0 + Global time = 2.24000000000000 Iter = 0 + Global time = 2.26000000000000 Iter = 0 + Global time = 2.28000000000000 Iter = 0 + Global time = 2.30000000000000 Iter = 0 + Global time = 2.32000000000000 Iter = 0 + Global time = 2.34000000000000 Iter = 0 + Global time = 2.36000000000000 Iter = 0 + Global time = 2.38000000000000 Iter = 0 + Global time = 2.40000000000000 Iter = 0 + Global time = 2.42000000000000 Iter = 0 + Global time = 2.44000000000000 Iter = 0 + Global time = 2.46000000000000 Iter = 0 + Global time = 2.48000000000000 Iter = 0 + Global time = 2.50000000000000 Iter = 0 + Global time = 2.52000000000000 Iter = 0 + Global time = 2.54000000000000 Iter = 0 + Global time = 2.56000000000000 Iter = 0 + Global time = 2.58000000000000 Iter = 0 + Global time = 2.60000000000000 Iter = 0 + Global time = 2.62000000000000 Iter = 0 + Global time = 2.64000000000000 Iter = 0 + Global time = 2.66000000000000 Iter = 0 + Global time = 2.68000000000000 Iter = 0 + Global time = 2.70000000000000 Iter = 0 + Global time = 2.72000000000000 Iter = 0 + Global time = 2.74000000000000 Iter = 0 + Global time = 2.76000000000000 Iter = 0 + Global time = 2.78000000000000 Iter = 0 + Global time = 2.80000000000000 Iter = 0 + Global time = 2.82000000000000 Iter = 0 + Global time = 2.84000000000000 Iter = 0 + Global time = 2.86000000000000 Iter = 0 + Global time = 2.88000000000000 Iter = 0 + Global time = 2.90000000000000 Iter = 0 + Global time = 2.92000000000000 Iter = 0 + Global time = 2.94000000000000 Iter = 0 + Global time = 2.96000000000000 Iter = 0 + Global time = 2.98000000000000 Iter = 0 + Global time = 3.00000000000000 Iter = 0 + Global time = 3.02000000000000 Iter = 0 + Global time = 3.04000000000000 Iter = 0 + Global time = 3.06000000000000 Iter = 0 + Global time = 3.08000000000000 Iter = 0 + Global time = 3.10000000000000 Iter = 0 + Global time = 3.12000000000000 Iter = 0 + Global time = 3.14000000000000 Iter = 0 + Global time = 3.16000000000000 Iter = 0 + Global time = 3.18000000000000 Iter = 0 + Global time = 3.20000000000000 Iter = 0 + Global time = 3.22000000000000 Iter = 0 + Global time = 3.24000000000000 Iter = 0 + Global time = 3.26000000000000 Iter = 0 + Global time = 3.28000000000000 Iter = 0 + Global time = 3.30000000000000 Iter = 0 + Global time = 3.32000000000000 Iter = 0 + Global time = 3.34000000000000 Iter = 0 + Global time = 3.36000000000000 Iter = 0 + Global time = 3.38000000000000 Iter = 0 + Global time = 3.40000000000000 Iter = 0 + Global time = 3.42000000000000 Iter = 0 + Global time = 3.44000000000000 Iter = 0 + Global time = 3.46000000000000 Iter = 0 + Global time = 3.48000000000000 Iter = 0 + Global time = 3.50000000000000 Iter = 0 + Global time = 3.52000000000000 Iter = 0 + Global time = 3.54000000000000 Iter = 0 + Global time = 3.56000000000000 Iter = 0 + Global time = 3.58000000000000 Iter = 0 + Global time = 3.60000000000000 Iter = 0 + Global time = 3.62000000000000 Iter = 0 + Global time = 3.64000000000000 Iter = 0 + Global time = 3.66000000000000 Iter = 0 + Global time = 3.68000000000000 Iter = 0 + Global time = 3.70000000000000 Iter = 0 + Global time = 3.72000000000000 Iter = 0 + Global time = 3.74000000000000 Iter = 0 + Global time = 3.76000000000000 Iter = 0 + Global time = 3.78000000000000 Iter = 0 + Global time = 3.80000000000000 Iter = 0 + Global time = 3.82000000000000 Iter = 0 + Global time = 3.84000000000000 Iter = 0 + Global time = 3.86000000000000 Iter = 0 + Global time = 3.88000000000000 Iter = 0 + Global time = 3.90000000000000 Iter = 0 + Global time = 3.92000000000000 Iter = 0 + Global time = 3.94000000000000 Iter = 0 + Global time = 3.96000000000000 Iter = 0 + Global time = 3.98000000000000 Iter = 0 + Global time = 4.00000000000000 Iter = 0 + Global time = 4.02000000000000 Iter = 0 + Global time = 4.04000000000000 Iter = 0 + Global time = 4.06000000000000 Iter = 0 + Global time = 4.08000000000000 Iter = 0 + Global time = 4.10000000000000 Iter = 0 + Global time = 4.12000000000000 Iter = 0 + Global time = 4.14000000000000 Iter = 0 + Global time = 4.16000000000000 Iter = 0 + Global time = 4.18000000000000 Iter = 0 + Global time = 4.20000000000000 Iter = 0 + Global time = 4.22000000000000 Iter = 0 + Global time = 4.24000000000000 Iter = 0 + Global time = 4.26000000000000 Iter = 0 + Global time = 4.28000000000000 Iter = 0 + Global time = 4.30000000000000 Iter = 0 + Global time = 4.32000000000000 Iter = 0 + Global time = 4.34000000000000 Iter = 0 + Global time = 4.36000000000000 Iter = 0 + Global time = 4.38000000000000 Iter = 0 + Global time = 4.40000000000000 Iter = 0 + Global time = 4.42000000000000 Iter = 0 + Global time = 4.44000000000000 Iter = 0 + Global time = 4.46000000000000 Iter = 0 + Global time = 4.48000000000000 Iter = 0 + Global time = 4.50000000000000 Iter = 0 + Global time = 4.52000000000000 Iter = 0 + Global time = 4.54000000000000 Iter = 0 + Global time = 4.56000000000000 Iter = 0 + Global time = 4.58000000000000 Iter = 0 + Global time = 4.60000000000000 Iter = 0 + Global time = 4.62000000000000 Iter = 0 + Global time = 4.64000000000000 Iter = 0 + Global time = 4.66000000000000 Iter = 0 + Global time = 4.68000000000000 Iter = 0 + Global time = 4.70000000000000 Iter = 0 + Global time = 4.72000000000000 Iter = 0 + Global time = 4.74000000000000 Iter = 0 + Global time = 4.76000000000000 Iter = 0 + Global time = 4.78000000000000 Iter = 0 + Global time = 4.80000000000000 Iter = 0 + Global time = 4.82000000000000 Iter = 0 + Global time = 4.84000000000000 Iter = 0 + Global time = 4.86000000000000 Iter = 0 + Global time = 4.88000000000000 Iter = 0 + Global time = 4.90000000000000 Iter = 0 + Global time = 4.92000000000000 Iter = 0 + Global time = 4.94000000000000 Iter = 0 + Global time = 4.96000000000000 Iter = 0 + Global time = 4.98000000000000 Iter = 0 + Global time = 5.00000000000000 Iter = 0 + Global time = 5.02000000000000 Iter = 0 + Global time = 5.04000000000000 Iter = 0 + Global time = 5.06000000000000 Iter = 0 + Global time = 5.08000000000000 Iter = 0 + Global time = 5.10000000000000 Iter = 0 + Global time = 5.12000000000000 Iter = 0 + Global time = 5.14000000000000 Iter = 0 + Global time = 5.16000000000000 Iter = 0 + Global time = 5.18000000000000 Iter = 0 + Global time = 5.20000000000000 Iter = 0 + Global time = 5.22000000000000 Iter = 0 + Global time = 5.24000000000000 Iter = 0 + Global time = 5.26000000000000 Iter = 0 + Global time = 5.28000000000000 Iter = 0 + Global time = 5.30000000000000 Iter = 0 + Global time = 5.32000000000000 Iter = 0 + Global time = 5.34000000000000 Iter = 0 + Global time = 5.36000000000000 Iter = 0 + Global time = 5.38000000000000 Iter = 0 + Global time = 5.40000000000000 Iter = 0 + Global time = 5.42000000000000 Iter = 0 + Global time = 5.44000000000000 Iter = 0 + Global time = 5.46000000000000 Iter = 0 + Global time = 5.48000000000000 Iter = 0 + Global time = 5.50000000000000 Iter = 0 + Global time = 5.52000000000000 Iter = 0 + Global time = 5.54000000000000 Iter = 0 + Global time = 5.56000000000000 Iter = 0 + Global time = 5.58000000000000 Iter = 0 + Global time = 5.60000000000000 Iter = 0 + Global time = 5.62000000000000 Iter = 0 + Global time = 5.64000000000000 Iter = 0 + Global time = 5.66000000000000 Iter = 0 + Global time = 5.68000000000000 Iter = 0 + Global time = 5.70000000000000 Iter = 0 + Global time = 5.72000000000000 Iter = 0 + Global time = 5.74000000000000 Iter = 0 + Global time = 5.76000000000000 Iter = 0 + Global time = 5.78000000000000 Iter = 0 + Global time = 5.80000000000000 Iter = 0 + Global time = 5.82000000000000 Iter = 0 + Global time = 5.84000000000000 Iter = 0 + Global time = 5.86000000000000 Iter = 0 + Global time = 5.88000000000000 Iter = 0 + Global time = 5.90000000000000 Iter = 0 + Global time = 5.92000000000000 Iter = 0 + Global time = 5.94000000000000 Iter = 0 + Global time = 5.96000000000000 Iter = 0 + Global time = 5.98000000000000 Iter = 0 + Global time = 6.00000000000000 Iter = 0 + Global time = 6.02000000000000 Iter = 0 + Global time = 6.04000000000000 Iter = 0 + Global time = 6.06000000000000 Iter = 0 + Global time = 6.08000000000000 Iter = 0 + Global time = 6.10000000000000 Iter = 0 + Global time = 6.12000000000000 Iter = 0 + Global time = 6.14000000000000 Iter = 0 + Global time = 6.16000000000000 Iter = 0 + Global time = 6.18000000000000 Iter = 0 + Global time = 6.20000000000000 Iter = 0 + Global time = 6.22000000000000 Iter = 0 + Global time = 6.24000000000000 Iter = 0 + Global time = 6.26000000000000 Iter = 0 + Global time = 6.28000000000000 Iter = 0 + Global time = 6.30000000000000 Iter = 0 + Global time = 6.32000000000000 Iter = 0 + Global time = 6.34000000000000 Iter = 0 + Global time = 6.36000000000000 Iter = 0 + Global time = 6.38000000000000 Iter = 0 + Global time = 6.40000000000000 Iter = 0 + Global time = 6.42000000000000 Iter = 0 + Global time = 6.44000000000000 Iter = 0 + Global time = 6.46000000000000 Iter = 0 + Global time = 6.48000000000000 Iter = 0 + Global time = 6.50000000000000 Iter = 0 + Global time = 6.52000000000000 Iter = 0 + Global time = 6.54000000000000 Iter = 0 + Global time = 6.56000000000000 Iter = 0 + Global time = 6.58000000000000 Iter = 0 + Global time = 6.60000000000000 Iter = 0 + Global time = 6.62000000000000 Iter = 0 + Global time = 6.64000000000000 Iter = 0 + Global time = 6.66000000000000 Iter = 0 + Global time = 6.68000000000000 Iter = 0 + Global time = 6.70000000000000 Iter = 0 + Global time = 6.72000000000000 Iter = 0 + Global time = 6.74000000000000 Iter = 0 + Global time = 6.76000000000000 Iter = 0 + Global time = 6.78000000000000 Iter = 0 + Global time = 6.80000000000000 Iter = 0 + Global time = 6.82000000000000 Iter = 0 + Global time = 6.84000000000000 Iter = 0 + Global time = 6.86000000000000 Iter = 0 + Global time = 6.88000000000000 Iter = 0 + Global time = 6.90000000000000 Iter = 0 + Global time = 6.92000000000000 Iter = 0 + Global time = 6.94000000000000 Iter = 0 + Global time = 6.96000000000000 Iter = 0 + Global time = 6.98000000000000 Iter = 0 + Global time = 7.00000000000000 Iter = 0 + Global time = 7.02000000000000 Iter = 0 + Global time = 7.04000000000000 Iter = 0 + Global time = 7.06000000000000 Iter = 0 + Global time = 7.08000000000000 Iter = 0 + Global time = 7.10000000000000 Iter = 0 + Global time = 7.12000000000000 Iter = 0 + Global time = 7.14000000000000 Iter = 0 + Global time = 7.16000000000000 Iter = 0 + Global time = 7.18000000000000 Iter = 0 + Global time = 7.20000000000000 Iter = 0 + Global time = 7.22000000000000 Iter = 0 + Global time = 7.24000000000000 Iter = 0 + Global time = 7.26000000000000 Iter = 0 + Global time = 7.28000000000000 Iter = 0 + Global time = 7.30000000000000 Iter = 0 + Global time = 7.32000000000000 Iter = 0 + Global time = 7.34000000000000 Iter = 0 + Global time = 7.36000000000000 Iter = 0 + Global time = 7.38000000000000 Iter = 0 + Global time = 7.40000000000000 Iter = 0 + Global time = 7.42000000000000 Iter = 0 + Global time = 7.44000000000000 Iter = 0 + Global time = 7.46000000000000 Iter = 0 + Global time = 7.48000000000000 Iter = 0 + Global time = 7.50000000000000 Iter = 0 + Global time = 7.52000000000000 Iter = 0 + Global time = 7.54000000000000 Iter = 0 + Global time = 7.56000000000000 Iter = 0 + Global time = 7.58000000000000 Iter = 0 + Global time = 7.60000000000000 Iter = 0 + Global time = 7.62000000000000 Iter = 0 + Global time = 7.64000000000000 Iter = 0 + Global time = 7.66000000000000 Iter = 0 + Global time = 7.68000000000000 Iter = 0 + Global time = 7.70000000000000 Iter = 0 + Global time = 7.72000000000000 Iter = 0 + Global time = 7.74000000000000 Iter = 0 + Global time = 7.76000000000000 Iter = 0 + Global time = 7.78000000000000 Iter = 0 + Global time = 7.80000000000000 Iter = 0 + Global time = 7.82000000000000 Iter = 0 + Global time = 7.84000000000000 Iter = 0 + Global time = 7.86000000000000 Iter = 0 + Global time = 7.88000000000000 Iter = 0 + Global time = 7.90000000000000 Iter = 0 + Global time = 7.92000000000000 Iter = 0 + Global time = 7.94000000000000 Iter = 0 + Global time = 7.96000000000000 Iter = 0 + Global time = 7.98000000000000 Iter = 0 + Global time = 8.00000000000000 Iter = 0 + Global time = 8.02000000000000 Iter = 0 + Global time = 8.04000000000000 Iter = 0 + Global time = 8.06000000000000 Iter = 0 + Global time = 8.08000000000000 Iter = 0 + Global time = 8.10000000000000 Iter = 0 + Global time = 8.12000000000000 Iter = 0 + Global time = 8.14000000000000 Iter = 0 + Global time = 8.16000000000000 Iter = 0 + Global time = 8.18000000000000 Iter = 0 + Global time = 8.20000000000000 Iter = 0 + Global time = 8.22000000000000 Iter = 0 + Global time = 8.24000000000000 Iter = 0 + Global time = 8.26000000000000 Iter = 0 + Global time = 8.28000000000000 Iter = 0 + Global time = 8.30000000000000 Iter = 0 + Global time = 8.32000000000000 Iter = 0 + Global time = 8.34000000000000 Iter = 0 + Global time = 8.36000000000000 Iter = 0 + Global time = 8.38000000000000 Iter = 0 + Global time = 8.40000000000000 Iter = 0 + Global time = 8.42000000000000 Iter = 0 + Global time = 8.44000000000000 Iter = 0 + Global time = 8.46000000000000 Iter = 0 + Global time = 8.48000000000000 Iter = 0 + Global time = 8.50000000000000 Iter = 0 + Global time = 8.52000000000000 Iter = 0 + Global time = 8.54000000000000 Iter = 0 + Global time = 8.56000000000000 Iter = 0 + Global time = 8.58000000000000 Iter = 0 + Global time = 8.60000000000000 Iter = 0 + Global time = 8.62000000000000 Iter = 0 + Global time = 8.64000000000000 Iter = 0 + Global time = 8.66000000000000 Iter = 0 + Global time = 8.68000000000000 Iter = 0 + Global time = 8.70000000000000 Iter = 0 + Global time = 8.72000000000000 Iter = 0 + Global time = 8.74000000000000 Iter = 0 + Global time = 8.76000000000000 Iter = 0 + Global time = 8.78000000000000 Iter = 0 + Global time = 8.80000000000000 Iter = 0 + Global time = 8.82000000000000 Iter = 0 + Global time = 8.84000000000000 Iter = 0 + Global time = 8.86000000000000 Iter = 0 + Global time = 8.88000000000000 Iter = 0 + Global time = 8.90000000000000 Iter = 0 + Global time = 8.92000000000000 Iter = 0 + Global time = 8.94000000000000 Iter = 0 + Global time = 8.96000000000000 Iter = 0 + Global time = 8.98000000000000 Iter = 0 + Global time = 9.00000000000000 Iter = 0 + Global time = 9.02000000000000 Iter = 0 + Global time = 9.04000000000000 Iter = 0 + Global time = 9.06000000000000 Iter = 0 + Global time = 9.08000000000000 Iter = 0 + Global time = 9.10000000000000 Iter = 0 + Global time = 9.12000000000000 Iter = 0 + Global time = 9.14000000000000 Iter = 0 + Global time = 9.16000000000000 Iter = 0 + Global time = 9.18000000000000 Iter = 0 + Global time = 9.20000000000000 Iter = 0 + Global time = 9.22000000000000 Iter = 0 + Global time = 9.24000000000000 Iter = 0 + Global time = 9.26000000000000 Iter = 0 + Global time = 9.28000000000000 Iter = 0 + Global time = 9.30000000000000 Iter = 0 + Global time = 9.32000000000000 Iter = 0 + Global time = 9.34000000000000 Iter = 0 + Global time = 9.36000000000000 Iter = 0 + Global time = 9.38000000000000 Iter = 0 + Global time = 9.40000000000000 Iter = 0 + Global time = 9.42000000000000 Iter = 0 + Global time = 9.44000000000000 Iter = 0 + Global time = 9.46000000000000 Iter = 0 + Global time = 9.48000000000000 Iter = 0 + Global time = 9.50000000000000 Iter = 0 + Global time = 9.52000000000000 Iter = 0 + Global time = 9.54000000000000 Iter = 0 + Global time = 9.56000000000000 Iter = 0 + Global time = 9.58000000000000 Iter = 0 + Global time = 9.60000000000000 Iter = 0 + Global time = 9.62000000000000 Iter = 0 + Global time = 9.64000000000000 Iter = 0 + Global time = 9.66000000000000 Iter = 0 + Global time = 9.68000000000000 Iter = 0 + Global time = 9.70000000000000 Iter = 0 + Global time = 9.72000000000000 Iter = 0 + Global time = 9.74000000000000 Iter = 0 + Global time = 9.76000000000000 Iter = 0 + Global time = 9.78000000000000 Iter = 0 + Global time = 9.80000000000000 Iter = 0 + Global time = 9.82000000000000 Iter = 0 + Global time = 9.84000000000000 Iter = 0 + Global time = 9.86000000000000 Iter = 0 + Global time = 9.88000000000000 Iter = 0 + Global time = 9.90000000000000 Iter = 0 + Global time = 9.92000000000000 Iter = 0 + Global time = 9.94000000000000 Iter = 0 + Global time = 9.96000000000000 Iter = 0 + Global time = 9.98000000000000 Iter = 0 + Global time = 10.0000000000000 Iter = 0 + Global time = 10.0200000000000 Iter = 0 + Global time = 10.0400000000000 Iter = 0 + Global time = 10.0600000000000 Iter = 0 + Global time = 10.0800000000000 Iter = 0 + Global time = 10.1000000000000 Iter = 0 + Global time = 10.1200000000000 Iter = 0 + Global time = 10.1400000000000 Iter = 0 + Global time = 10.1600000000000 Iter = 0 + Global time = 10.1800000000000 Iter = 0 + Global time = 10.2000000000000 Iter = 0 + Global time = 10.2200000000000 Iter = 0 + Global time = 10.2400000000000 Iter = 0 + Global time = 10.2600000000000 Iter = 0 + Global time = 10.2800000000000 Iter = 0 + Global time = 10.3000000000000 Iter = 0 + Global time = 10.3200000000000 Iter = 0 + Global time = 10.3400000000000 Iter = 0 + Global time = 10.3600000000000 Iter = 0 + Global time = 10.3800000000000 Iter = 0 + Global time = 10.4000000000000 Iter = 0 + Global time = 10.4200000000000 Iter = 0 + Global time = 10.4400000000000 Iter = 0 + Global time = 10.4600000000000 Iter = 0 + Global time = 10.4800000000000 Iter = 0 + Global time = 10.5000000000000 Iter = 0 + Global time = 10.5200000000000 Iter = 0 + Global time = 10.5400000000000 Iter = 0 + Global time = 10.5600000000000 Iter = 0 + Global time = 10.5800000000000 Iter = 0 + Global time = 10.6000000000000 Iter = 0 + Global time = 10.6200000000000 Iter = 0 + Global time = 10.6400000000000 Iter = 0 + Global time = 10.6600000000000 Iter = 0 + Global time = 10.6800000000000 Iter = 0 + Global time = 10.7000000000000 Iter = 0 + Global time = 10.7200000000000 Iter = 0 + Global time = 10.7400000000000 Iter = 0 + Global time = 10.7600000000000 Iter = 0 + Global time = 10.7800000000000 Iter = 0 + Global time = 10.8000000000000 Iter = 0 + Global time = 10.8200000000000 Iter = 0 + Global time = 10.8400000000000 Iter = 0 + Global time = 10.8600000000000 Iter = 0 + Global time = 10.8800000000000 Iter = 0 + Global time = 10.9000000000000 Iter = 0 + Global time = 10.9200000000000 Iter = 0 + Global time = 10.9400000000000 Iter = 0 + Global time = 10.9600000000000 Iter = 0 + Global time = 10.9800000000000 Iter = 0 + Global time = 11.0000000000000 Iter = 0 + Global time = 11.0200000000000 Iter = 0 + Global time = 11.0400000000000 Iter = 0 + Global time = 11.0600000000000 Iter = 0 + Global time = 11.0800000000000 Iter = 0 + Global time = 11.1000000000000 Iter = 0 + Global time = 11.1200000000000 Iter = 0 + Global time = 11.1400000000000 Iter = 0 + Global time = 11.1600000000000 Iter = 0 + Global time = 11.1800000000000 Iter = 0 + Global time = 11.2000000000000 Iter = 0 + Global time = 11.2200000000000 Iter = 0 + Global time = 11.2400000000000 Iter = 0 + Global time = 11.2600000000000 Iter = 0 + Global time = 11.2800000000000 Iter = 0 + Global time = 11.3000000000000 Iter = 0 + Global time = 11.3200000000000 Iter = 0 + Global time = 11.3400000000000 Iter = 0 + Global time = 11.3600000000000 Iter = 0 + Global time = 11.3800000000000 Iter = 0 + Global time = 11.4000000000000 Iter = 0 + Global time = 11.4200000000000 Iter = 0 + Global time = 11.4400000000000 Iter = 0 + Global time = 11.4600000000000 Iter = 0 + Global time = 11.4800000000000 Iter = 0 + Global time = 11.5000000000000 Iter = 0 + Global time = 11.5200000000000 Iter = 0 + Global time = 11.5400000000000 Iter = 0 + Global time = 11.5600000000000 Iter = 0 + Global time = 11.5800000000000 Iter = 0 + Global time = 11.6000000000000 Iter = 0 + Global time = 11.6200000000000 Iter = 0 + Global time = 11.6400000000000 Iter = 0 + Global time = 11.6600000000000 Iter = 0 + Global time = 11.6800000000000 Iter = 0 + Global time = 11.7000000000000 Iter = 0 + Global time = 11.7200000000000 Iter = 0 + Global time = 11.7400000000000 Iter = 0 + Global time = 11.7600000000000 Iter = 0 + Global time = 11.7800000000000 Iter = 0 + Global time = 11.8000000000000 Iter = 0 + Global time = 11.8200000000000 Iter = 0 + Global time = 11.8400000000000 Iter = 0 + Global time = 11.8600000000000 Iter = 0 + Global time = 11.8800000000000 Iter = 0 + Global time = 11.9000000000000 Iter = 0 + Global time = 11.9200000000000 Iter = 0 + Global time = 11.9400000000000 Iter = 0 + Global time = 11.9600000000000 Iter = 0 + Global time = 11.9800000000000 Iter = 0 + Global time = 12.0000000000000 Iter = 0 + Global time = 12.0200000000000 Iter = 0 + Global time = 12.0400000000000 Iter = 0 + Global time = 12.0600000000000 Iter = 0 + Global time = 12.0800000000000 Iter = 0 + Global time = 12.1000000000000 Iter = 0 + Global time = 12.1200000000000 Iter = 0 + Global time = 12.1400000000000 Iter = 0 + Global time = 12.1600000000000 Iter = 0 + Global time = 12.1800000000000 Iter = 0 + Global time = 12.2000000000000 Iter = 0 + Global time = 12.2200000000000 Iter = 0 + Global time = 12.2400000000000 Iter = 0 + Global time = 12.2600000000000 Iter = 0 + Global time = 12.2800000000000 Iter = 0 + Global time = 12.3000000000000 Iter = 0 + Global time = 12.3200000000000 Iter = 0 + Global time = 12.3400000000000 Iter = 0 + Global time = 12.3600000000000 Iter = 0 + Global time = 12.3800000000000 Iter = 0 + Global time = 12.4000000000000 Iter = 0 + Global time = 12.4200000000000 Iter = 0 + Global time = 12.4400000000000 Iter = 0 + Global time = 12.4600000000000 Iter = 0 + Global time = 12.4800000000000 Iter = 0 + Global time = 12.5000000000000 Iter = 0 + Global time = 12.5200000000000 Iter = 0 + Global time = 12.5400000000000 Iter = 0 + Global time = 12.5600000000000 Iter = 0 + Global time = 12.5800000000000 Iter = 0 + Global time = 12.6000000000000 Iter = 0 + Global time = 12.6200000000000 Iter = 0 + Global time = 12.6400000000000 Iter = 0 + Global time = 12.6600000000000 Iter = 0 + Global time = 12.6800000000000 Iter = 0 + Global time = 12.7000000000000 Iter = 0 + Global time = 12.7200000000000 Iter = 0 + Global time = 12.7400000000000 Iter = 0 + Global time = 12.7600000000000 Iter = 0 + Global time = 12.7800000000000 Iter = 0 + Global time = 12.8000000000000 Iter = 0 + Global time = 12.8200000000000 Iter = 0 + Global time = 12.8400000000000 Iter = 0 + Global time = 12.8600000000000 Iter = 0 + Global time = 12.8800000000000 Iter = 0 + Global time = 12.9000000000000 Iter = 0 + Global time = 12.9200000000000 Iter = 0 + Global time = 12.9400000000000 Iter = 0 + Global time = 12.9600000000000 Iter = 0 + Global time = 12.9800000000000 Iter = 0 + Global time = 13.0000000000000 Iter = 0 + Global time = 13.0200000000000 Iter = 0 + Global time = 13.0400000000000 Iter = 0 + Global time = 13.0600000000000 Iter = 0 + Global time = 13.0800000000000 Iter = 0 + Global time = 13.1000000000000 Iter = 0 + Global time = 13.1200000000000 Iter = 0 + Global time = 13.1400000000000 Iter = 0 + Global time = 13.1600000000000 Iter = 0 + Global time = 13.1800000000000 Iter = 0 + Global time = 13.2000000000000 Iter = 0 + Global time = 13.2200000000000 Iter = 0 + Global time = 13.2400000000000 Iter = 0 + Global time = 13.2600000000000 Iter = 0 + Global time = 13.2800000000000 Iter = 0 + Global time = 13.3000000000000 Iter = 0 + Global time = 13.3200000000000 Iter = 0 + Global time = 13.3400000000000 Iter = 0 + Global time = 13.3600000000000 Iter = 0 + Global time = 13.3800000000000 Iter = 0 + Global time = 13.4000000000000 Iter = 0 + Global time = 13.4200000000000 Iter = 0 + Global time = 13.4400000000000 Iter = 0 + Global time = 13.4600000000000 Iter = 0 + Global time = 13.4800000000000 Iter = 0 + Global time = 13.5000000000000 Iter = 0 + Global time = 13.5200000000000 Iter = 0 + Global time = 13.5400000000000 Iter = 0 + Global time = 13.5600000000000 Iter = 0 + Global time = 13.5800000000000 Iter = 0 + Global time = 13.6000000000000 Iter = 0 + Global time = 13.6200000000000 Iter = 0 + Global time = 13.6400000000000 Iter = 0 + Global time = 13.6600000000000 Iter = 0 + Global time = 13.6800000000000 Iter = 0 + Global time = 13.7000000000000 Iter = 0 + Global time = 13.7200000000000 Iter = 0 + Global time = 13.7400000000000 Iter = 0 + Global time = 13.7600000000000 Iter = 0 + Global time = 13.7800000000000 Iter = 0 + Global time = 13.8000000000000 Iter = 0 + Global time = 13.8200000000000 Iter = 0 + Global time = 13.8400000000000 Iter = 0 + Global time = 13.8600000000000 Iter = 0 + Global time = 13.8800000000000 Iter = 0 + Global time = 13.9000000000000 Iter = 0 + Global time = 13.9200000000000 Iter = 0 + Global time = 13.9400000000000 Iter = 0 + Global time = 13.9600000000000 Iter = 0 + Global time = 13.9800000000000 Iter = 0 + Global time = 14.0000000000000 Iter = 0 + Global time = 14.0200000000000 Iter = 0 + Global time = 14.0400000000000 Iter = 0 + Global time = 14.0600000000000 Iter = 0 + Global time = 14.0800000000000 Iter = 0 + Global time = 14.1000000000000 Iter = 0 + Global time = 14.1200000000000 Iter = 0 + Global time = 14.1400000000000 Iter = 0 + Global time = 14.1600000000000 Iter = 0 + Global time = 14.1800000000000 Iter = 0 + Global time = 14.2000000000000 Iter = 0 + Global time = 14.2200000000000 Iter = 0 + Global time = 14.2400000000000 Iter = 0 + Global time = 14.2600000000000 Iter = 0 + Global time = 14.2800000000000 Iter = 0 + Global time = 14.3000000000000 Iter = 0 + Global time = 14.3200000000000 Iter = 0 + Global time = 14.3400000000000 Iter = 0 + Global time = 14.3600000000000 Iter = 0 + Global time = 14.3800000000000 Iter = 0 + Global time = 14.4000000000000 Iter = 0 + Global time = 14.4200000000000 Iter = 0 + Global time = 14.4400000000000 Iter = 0 + Global time = 14.4600000000000 Iter = 0 + Global time = 14.4800000000000 Iter = 0 + Global time = 14.5000000000000 Iter = 0 + Global time = 14.5200000000000 Iter = 0 + Global time = 14.5400000000000 Iter = 0 + Global time = 14.5600000000000 Iter = 0 + Global time = 14.5800000000000 Iter = 0 + Global time = 14.6000000000000 Iter = 0 + Global time = 14.6200000000000 Iter = 0 + Global time = 14.6400000000000 Iter = 0 + Global time = 14.6600000000000 Iter = 0 + Global time = 14.6800000000000 Iter = 0 + Global time = 14.7000000000000 Iter = 0 + Global time = 14.7200000000000 Iter = 0 + Global time = 14.7400000000000 Iter = 0 + Global time = 14.7600000000000 Iter = 0 + Global time = 14.7800000000000 Iter = 0 + Global time = 14.8000000000000 Iter = 0 + Global time = 14.8200000000000 Iter = 0 + Global time = 14.8400000000000 Iter = 0 + Global time = 14.8600000000000 Iter = 0 + Global time = 14.8800000000000 Iter = 0 + Global time = 14.9000000000000 Iter = 0 + Global time = 14.9200000000000 Iter = 0 + Global time = 14.9400000000000 Iter = 0 + Global time = 14.9600000000000 Iter = 0 + Global time = 14.9800000000000 Iter = 0 + Global time = 15.0000000000000 Iter = 0 + Global time = 15.0200000000000 Iter = 0 + Global time = 15.0400000000000 Iter = 0 + Global time = 15.0600000000000 Iter = 0 + Global time = 15.0800000000000 Iter = 0 + Global time = 15.1000000000000 Iter = 0 + Global time = 15.1200000000000 Iter = 0 + Global time = 15.1400000000000 Iter = 0 + Global time = 15.1600000000000 Iter = 0 + Global time = 15.1800000000000 Iter = 0 + Global time = 15.2000000000000 Iter = 0 + Global time = 15.2200000000000 Iter = 0 + Global time = 15.2400000000000 Iter = 0 + Global time = 15.2600000000000 Iter = 0 + Global time = 15.2800000000000 Iter = 0 + Global time = 15.3000000000000 Iter = 0 + Global time = 15.3200000000000 Iter = 0 + Global time = 15.3400000000000 Iter = 0 + Global time = 15.3600000000000 Iter = 0 + Global time = 15.3800000000000 Iter = 0 + Global time = 15.4000000000000 Iter = 0 + Global time = 15.4200000000000 Iter = 0 + Global time = 15.4400000000000 Iter = 0 + Global time = 15.4600000000000 Iter = 0 + Global time = 15.4800000000000 Iter = 0 + Global time = 15.5000000000000 Iter = 0 + Global time = 15.5200000000000 Iter = 0 + Global time = 15.5400000000000 Iter = 0 + Global time = 15.5600000000000 Iter = 0 + Global time = 15.5800000000000 Iter = 0 + Global time = 15.6000000000000 Iter = 0 + Global time = 15.6200000000000 Iter = 0 + Global time = 15.6400000000000 Iter = 0 + Global time = 15.6600000000000 Iter = 0 + Global time = 15.6800000000000 Iter = 0 + Global time = 15.7000000000000 Iter = 0 + Global time = 15.7200000000000 Iter = 0 + Global time = 15.7400000000000 Iter = 0 + Global time = 15.7600000000000 Iter = 0 + Global time = 15.7800000000000 Iter = 0 + Global time = 15.8000000000000 Iter = 0 + Global time = 15.8200000000000 Iter = 0 + Global time = 15.8400000000000 Iter = 0 + Global time = 15.8600000000000 Iter = 0 + Global time = 15.8800000000000 Iter = 0 + Global time = 15.9000000000000 Iter = 0 + Global time = 15.9200000000000 Iter = 0 + Global time = 15.9400000000000 Iter = 0 + Global time = 15.9600000000000 Iter = 0 + Global time = 15.9800000000000 Iter = 0 + Global time = 16.0000000000000 Iter = 0 + Global time = 16.0200000000000 Iter = 0 + Global time = 16.0400000000000 Iter = 0 + Global time = 16.0600000000000 Iter = 0 + Global time = 16.0800000000000 Iter = 0 + Global time = 16.1000000000000 Iter = 0 + Global time = 16.1200000000000 Iter = 0 + Global time = 16.1400000000000 Iter = 0 + Global time = 16.1600000000000 Iter = 0 + Global time = 16.1800000000000 Iter = 0 + Global time = 16.2000000000000 Iter = 0 + Global time = 16.2200000000000 Iter = 0 + Global time = 16.2400000000000 Iter = 0 + Global time = 16.2600000000000 Iter = 0 + Global time = 16.2800000000000 Iter = 0 + Global time = 16.3000000000000 Iter = 0 + Global time = 16.3200000000000 Iter = 0 + Global time = 16.3400000000000 Iter = 0 + Global time = 16.3600000000000 Iter = 0 + Global time = 16.3800000000000 Iter = 0 + Global time = 16.4000000000000 Iter = 0 + Global time = 16.4200000000000 Iter = 0 + Global time = 16.4400000000000 Iter = 0 + Global time = 16.4600000000000 Iter = 0 + Global time = 16.4800000000000 Iter = 0 + Global time = 16.5000000000000 Iter = 0 + Global time = 16.5200000000000 Iter = 0 + Global time = 16.5400000000000 Iter = 0 + Global time = 16.5600000000000 Iter = 0 + Global time = 16.5800000000000 Iter = 0 + Global time = 16.6000000000000 Iter = 0 + Global time = 16.6200000000000 Iter = 0 + Global time = 16.6400000000000 Iter = 0 + Global time = 16.6600000000000 Iter = 0 + Global time = 16.6800000000000 Iter = 0 + Global time = 16.7000000000000 Iter = 0 + Global time = 16.7200000000000 Iter = 0 + Global time = 16.7400000000000 Iter = 0 + Global time = 16.7600000000000 Iter = 0 + Global time = 16.7800000000000 Iter = 0 + Global time = 16.8000000000000 Iter = 0 + Global time = 16.8200000000000 Iter = 0 + Global time = 16.8400000000000 Iter = 0 + Global time = 16.8600000000000 Iter = 0 + Global time = 16.8800000000000 Iter = 0 + Global time = 16.9000000000000 Iter = 0 + Global time = 16.9200000000000 Iter = 0 + Global time = 16.9400000000000 Iter = 0 + Global time = 16.9600000000000 Iter = 0 + Global time = 16.9800000000000 Iter = 0 + Global time = 17.0000000000000 Iter = 0 + Global time = 17.0200000000000 Iter = 0 + Global time = 17.0400000000000 Iter = 0 + Global time = 17.0600000000000 Iter = 0 + Global time = 17.0800000000000 Iter = 0 + Global time = 17.1000000000000 Iter = 0 + Global time = 17.1200000000000 Iter = 0 + Global time = 17.1400000000000 Iter = 0 + Global time = 17.1600000000000 Iter = 0 + Global time = 17.1800000000000 Iter = 0 + Global time = 17.2000000000000 Iter = 0 + Global time = 17.2200000000000 Iter = 0 + Global time = 17.2400000000000 Iter = 0 + Global time = 17.2600000000000 Iter = 0 + Global time = 17.2800000000000 Iter = 0 + Global time = 17.3000000000000 Iter = 0 + Global time = 17.3200000000000 Iter = 0 + Global time = 17.3400000000000 Iter = 0 + Global time = 17.3600000000000 Iter = 0 + Global time = 17.3800000000000 Iter = 0 + Global time = 17.4000000000000 Iter = 0 + Global time = 17.4200000000000 Iter = 0 + Global time = 17.4400000000000 Iter = 0 + Global time = 17.4600000000000 Iter = 0 + Global time = 17.4800000000000 Iter = 0 + Global time = 17.5000000000000 Iter = 0 + Global time = 17.5200000000000 Iter = 0 + Global time = 17.5400000000000 Iter = 0 + Global time = 17.5600000000000 Iter = 0 + Global time = 17.5800000000000 Iter = 0 + Global time = 17.6000000000000 Iter = 0 + Global time = 17.6200000000000 Iter = 0 + Global time = 17.6400000000000 Iter = 0 + Global time = 17.6600000000000 Iter = 0 + Global time = 17.6800000000000 Iter = 0 + Global time = 17.7000000000000 Iter = 0 + Global time = 17.7200000000000 Iter = 0 + Global time = 17.7400000000000 Iter = 0 + Global time = 17.7600000000000 Iter = 0 + Global time = 17.7800000000000 Iter = 0 + Global time = 17.8000000000000 Iter = 0 + Global time = 17.8200000000000 Iter = 0 + Global time = 17.8400000000000 Iter = 0 + Global time = 17.8600000000000 Iter = 0 + Global time = 17.8800000000000 Iter = 0 + Global time = 17.9000000000000 Iter = 0 + Global time = 17.9200000000000 Iter = 0 + Global time = 17.9400000000000 Iter = 0 + Global time = 17.9600000000000 Iter = 0 + Global time = 17.9800000000000 Iter = 0 + Global time = 18.0000000000000 Iter = 0 + Global time = 18.0200000000000 Iter = 0 + Global time = 18.0400000000000 Iter = 0 + Global time = 18.0600000000000 Iter = 0 + Global time = 18.0800000000000 Iter = 0 + Global time = 18.1000000000000 Iter = 0 + Global time = 18.1200000000000 Iter = 0 + Global time = 18.1400000000000 Iter = 0 + Global time = 18.1600000000000 Iter = 0 + Global time = 18.1800000000000 Iter = 0 + Global time = 18.2000000000000 Iter = 0 + Global time = 18.2200000000000 Iter = 0 + Global time = 18.2400000000000 Iter = 0 + Global time = 18.2600000000000 Iter = 0 + Global time = 18.2800000000000 Iter = 0 + Global time = 18.3000000000000 Iter = 0 + Global time = 18.3200000000000 Iter = 0 + Global time = 18.3400000000000 Iter = 0 + Global time = 18.3600000000000 Iter = 0 + Global time = 18.3800000000000 Iter = 0 + Global time = 18.4000000000000 Iter = 0 + Global time = 18.4200000000000 Iter = 0 + Global time = 18.4400000000000 Iter = 0 + Global time = 18.4600000000000 Iter = 0 + Global time = 18.4800000000000 Iter = 0 + Global time = 18.5000000000000 Iter = 0 + Global time = 18.5200000000000 Iter = 0 + Global time = 18.5400000000000 Iter = 0 + Global time = 18.5600000000000 Iter = 0 + Global time = 18.5800000000000 Iter = 0 + Global time = 18.6000000000000 Iter = 0 + Global time = 18.6200000000000 Iter = 0 + Global time = 18.6400000000000 Iter = 0 + Global time = 18.6600000000000 Iter = 0 + Global time = 18.6800000000000 Iter = 0 + Global time = 18.7000000000000 Iter = 0 + Global time = 18.7200000000000 Iter = 0 + Global time = 18.7400000000000 Iter = 0 + Global time = 18.7600000000000 Iter = 0 + Global time = 18.7800000000000 Iter = 0 + Global time = 18.8000000000000 Iter = 0 + Global time = 18.8200000000000 Iter = 0 + Global time = 18.8400000000000 Iter = 0 + Global time = 18.8600000000000 Iter = 0 + Global time = 18.8800000000000 Iter = 0 + Global time = 18.9000000000000 Iter = 0 + Global time = 18.9200000000000 Iter = 0 + Global time = 18.9400000000000 Iter = 0 + Global time = 18.9600000000000 Iter = 0 + Global time = 18.9800000000000 Iter = 0 + Global time = 19.0000000000000 Iter = 0 + Global time = 19.0200000000000 Iter = 0 + Global time = 19.0400000000000 Iter = 0 + Global time = 19.0600000000000 Iter = 0 + Global time = 19.0800000000000 Iter = 0 + Global time = 19.1000000000000 Iter = 0 + Global time = 19.1200000000000 Iter = 0 + Global time = 19.1400000000000 Iter = 0 + Global time = 19.1600000000000 Iter = 0 + Global time = 19.1800000000000 Iter = 0 + Global time = 19.2000000000000 Iter = 0 + Global time = 19.2200000000000 Iter = 0 + Global time = 19.2400000000000 Iter = 0 + Global time = 19.2600000000000 Iter = 0 + Global time = 19.2800000000000 Iter = 0 + Global time = 19.3000000000000 Iter = 0 + Global time = 19.3200000000000 Iter = 0 + Global time = 19.3400000000000 Iter = 0 + Global time = 19.3600000000000 Iter = 0 + Global time = 19.3800000000000 Iter = 0 + Global time = 19.4000000000000 Iter = 0 + Global time = 19.4200000000000 Iter = 0 + Global time = 19.4400000000000 Iter = 0 + Global time = 19.4600000000000 Iter = 0 + Global time = 19.4800000000000 Iter = 0 + Global time = 19.5000000000000 Iter = 0 + Global time = 19.5200000000000 Iter = 0 + Global time = 19.5400000000000 Iter = 0 + Global time = 19.5600000000000 Iter = 0 + Global time = 19.5800000000000 Iter = 0 + Global time = 19.6000000000000 Iter = 0 + Global time = 19.6200000000000 Iter = 0 + Global time = 19.6400000000000 Iter = 0 + Global time = 19.6600000000000 Iter = 0 + Global time = 19.6800000000000 Iter = 0 + Global time = 19.7000000000000 Iter = 0 + Global time = 19.7200000000000 Iter = 0 + Global time = 19.7400000000000 Iter = 0 + Global time = 19.7600000000000 Iter = 0 + Global time = 19.7800000000000 Iter = 0 + Global time = 19.8000000000000 Iter = 0 + Global time = 19.8200000000000 Iter = 0 + Global time = 19.8400000000000 Iter = 0 + Global time = 19.8600000000000 Iter = 0 + Global time = 19.8800000000000 Iter = 0 + Global time = 19.9000000000000 Iter = 0 + Global time = 19.9200000000000 Iter = 0 + Global time = 19.9400000000000 Iter = 0 + Global time = 19.9600000000000 Iter = 0 + Global time = 19.9800000000000 Iter = 0 + Global time = 20.0000000000000 Iter = 0 + Global time = 20.0200000000000 Iter = 0 + Global time = 20.0400000000000 Iter = 0 + Global time = 20.0600000000000 Iter = 0 + Global time = 20.0800000000000 Iter = 0 + Global time = 20.1000000000000 Iter = 0 + Global time = 20.1200000000000 Iter = 0 + Global time = 20.1400000000000 Iter = 0 + Global time = 20.1600000000000 Iter = 0 + Global time = 20.1800000000000 Iter = 0 + Global time = 20.2000000000000 Iter = 0 + Global time = 20.2200000000000 Iter = 0 + Global time = 20.2400000000000 Iter = 0 + Global time = 20.2600000000000 Iter = 0 + Global time = 20.2800000000000 Iter = 0 + Global time = 20.3000000000000 Iter = 0 + Global time = 20.3200000000000 Iter = 0 + Global time = 20.3400000000000 Iter = 0 + Global time = 20.3600000000000 Iter = 0 + Global time = 20.3800000000000 Iter = 0 + Global time = 20.4000000000000 Iter = 0 + Global time = 20.4200000000000 Iter = 0 + Global time = 20.4400000000000 Iter = 0 + Global time = 20.4600000000000 Iter = 0 + Global time = 20.4800000000000 Iter = 0 + Global time = 20.5000000000000 Iter = 0 + Global time = 20.5200000000000 Iter = 0 + Global time = 20.5400000000000 Iter = 0 + Global time = 20.5600000000000 Iter = 0 + Global time = 20.5800000000000 Iter = 0 + Global time = 20.6000000000000 Iter = 0 + Global time = 20.6200000000000 Iter = 0 + Global time = 20.6400000000000 Iter = 0 + Global time = 20.6600000000000 Iter = 0 + Global time = 20.6800000000000 Iter = 0 + Global time = 20.7000000000000 Iter = 0 + Global time = 20.7200000000000 Iter = 0 + Global time = 20.7400000000000 Iter = 0 + Global time = 20.7600000000000 Iter = 0 + Global time = 20.7800000000000 Iter = 0 + Global time = 20.8000000000000 Iter = 0 + Global time = 20.8200000000000 Iter = 0 + Global time = 20.8400000000000 Iter = 0 + Global time = 20.8600000000000 Iter = 0 + Global time = 20.8800000000000 Iter = 0 + Global time = 20.9000000000000 Iter = 0 + Global time = 20.9200000000000 Iter = 0 + Global time = 20.9400000000000 Iter = 0 + Global time = 20.9600000000000 Iter = 0 + Global time = 20.9800000000000 Iter = 0 + Global time = 21.0000000000000 Iter = 0 + Global time = 21.0200000000000 Iter = 0 + Global time = 21.0400000000000 Iter = 0 + Global time = 21.0600000000000 Iter = 0 + Global time = 21.0800000000000 Iter = 0 + Global time = 21.1000000000000 Iter = 0 + Global time = 21.1200000000000 Iter = 0 + Global time = 21.1400000000000 Iter = 0 + Global time = 21.1600000000000 Iter = 0 + Global time = 21.1800000000000 Iter = 0 + Global time = 21.2000000000000 Iter = 0 + Global time = 21.2200000000000 Iter = 0 + Global time = 21.2400000000000 Iter = 0 + Global time = 21.2600000000000 Iter = 0 + Global time = 21.2800000000000 Iter = 0 + Global time = 21.3000000000000 Iter = 0 + Global time = 21.3200000000000 Iter = 0 + Global time = 21.3400000000000 Iter = 0 + Global time = 21.3600000000000 Iter = 0 + Global time = 21.3800000000000 Iter = 0 + Global time = 21.4000000000000 Iter = 0 + Global time = 21.4200000000000 Iter = 0 + Global time = 21.4400000000000 Iter = 0 + Global time = 21.4600000000000 Iter = 0 + Global time = 21.4800000000000 Iter = 0 + Global time = 21.5000000000000 Iter = 0 + Global time = 21.5200000000000 Iter = 0 + Global time = 21.5400000000000 Iter = 0 + Global time = 21.5600000000000 Iter = 0 + Global time = 21.5800000000000 Iter = 0 + Global time = 21.6000000000000 Iter = 0 + Global time = 21.6200000000000 Iter = 0 + Global time = 21.6400000000000 Iter = 0 + Global time = 21.6600000000000 Iter = 0 + Global time = 21.6800000000000 Iter = 0 + Global time = 21.7000000000000 Iter = 0 + Global time = 21.7200000000000 Iter = 0 + Global time = 21.7400000000000 Iter = 0 + Global time = 21.7600000000000 Iter = 0 + Global time = 21.7800000000000 Iter = 0 + Global time = 21.8000000000000 Iter = 0 + Global time = 21.8200000000000 Iter = 0 + Global time = 21.8400000000000 Iter = 0 + Global time = 21.8600000000000 Iter = 0 + Global time = 21.8800000000000 Iter = 0 + Global time = 21.9000000000000 Iter = 0 + Global time = 21.9200000000000 Iter = 0 + Global time = 21.9400000000000 Iter = 0 + Global time = 21.9600000000000 Iter = 0 + Global time = 21.9800000000000 Iter = 0 + Global time = 22.0000000000000 Iter = 0 + Global time = 22.0200000000000 Iter = 0 + Global time = 22.0400000000000 Iter = 0 + Global time = 22.0600000000000 Iter = 0 + Global time = 22.0800000000000 Iter = 0 + Global time = 22.1000000000000 Iter = 0 + Global time = 22.1200000000000 Iter = 0 + Global time = 22.1400000000000 Iter = 0 + Global time = 22.1600000000000 Iter = 0 + Global time = 22.1800000000000 Iter = 0 + Global time = 22.2000000000000 Iter = 0 + Global time = 22.2200000000000 Iter = 0 + Global time = 22.2400000000000 Iter = 0 + Global time = 22.2600000000000 Iter = 0 + Global time = 22.2800000000000 Iter = 0 + Global time = 22.3000000000000 Iter = 0 + Global time = 22.3200000000000 Iter = 0 + Global time = 22.3400000000000 Iter = 0 + Global time = 22.3600000000000 Iter = 0 + Global time = 22.3800000000000 Iter = 0 + Global time = 22.4000000000000 Iter = 0 + Global time = 22.4200000000000 Iter = 0 + Global time = 22.4400000000000 Iter = 0 + Global time = 22.4600000000000 Iter = 0 + Global time = 22.4800000000000 Iter = 0 + Global time = 22.5000000000000 Iter = 0 + Global time = 22.5200000000000 Iter = 0 + Global time = 22.5400000000000 Iter = 0 + Global time = 22.5600000000000 Iter = 0 + Global time = 22.5800000000000 Iter = 0 + Global time = 22.6000000000000 Iter = 0 + Global time = 22.6200000000000 Iter = 0 + Global time = 22.6400000000000 Iter = 0 + Global time = 22.6600000000000 Iter = 0 + Global time = 22.6800000000000 Iter = 0 + Global time = 22.7000000000000 Iter = 0 + Global time = 22.7200000000000 Iter = 0 + Global time = 22.7400000000000 Iter = 0 + Global time = 22.7600000000000 Iter = 0 + Global time = 22.7800000000000 Iter = 0 + Global time = 22.8000000000000 Iter = 0 + Global time = 22.8200000000000 Iter = 0 + Global time = 22.8400000000000 Iter = 0 + Global time = 22.8600000000000 Iter = 0 + Global time = 22.8800000000000 Iter = 0 + Global time = 22.9000000000000 Iter = 0 + Global time = 22.9200000000000 Iter = 0 + Global time = 22.9400000000000 Iter = 0 + Global time = 22.9600000000000 Iter = 0 + Global time = 22.9800000000000 Iter = 0 + Global time = 23.0000000000000 Iter = 0 + Global time = 23.0200000000000 Iter = 0 + Global time = 23.0400000000000 Iter = 0 + Global time = 23.0600000000000 Iter = 0 + Global time = 23.0800000000000 Iter = 0 + Global time = 23.1000000000000 Iter = 0 + Global time = 23.1200000000000 Iter = 0 + Global time = 23.1400000000000 Iter = 0 + Global time = 23.1600000000000 Iter = 0 + Global time = 23.1800000000000 Iter = 0 + Global time = 23.2000000000000 Iter = 0 + Global time = 23.2200000000000 Iter = 0 + Global time = 23.2400000000000 Iter = 0 + Global time = 23.2600000000000 Iter = 0 + Global time = 23.2800000000000 Iter = 0 + Global time = 23.3000000000000 Iter = 0 + Global time = 23.3200000000000 Iter = 0 + Global time = 23.3400000000000 Iter = 0 + Global time = 23.3600000000000 Iter = 0 + Global time = 23.3800000000000 Iter = 0 + Global time = 23.4000000000000 Iter = 0 + Global time = 23.4200000000000 Iter = 0 + Global time = 23.4400000000000 Iter = 0 + Global time = 23.4600000000000 Iter = 0 + Global time = 23.4800000000000 Iter = 0 + Global time = 23.5000000000000 Iter = 0 + Global time = 23.5200000000000 Iter = 0 + Global time = 23.5400000000000 Iter = 0 + Global time = 23.5600000000000 Iter = 0 + Global time = 23.5800000000000 Iter = 0 + Global time = 23.6000000000000 Iter = 0 + Global time = 23.6200000000000 Iter = 0 + Global time = 23.6400000000000 Iter = 0 + Global time = 23.6600000000000 Iter = 0 + Global time = 23.6800000000000 Iter = 0 + Global time = 23.7000000000000 Iter = 0 + Global time = 23.7200000000000 Iter = 0 + Global time = 23.7400000000000 Iter = 0 + Global time = 23.7600000000000 Iter = 0 + Global time = 23.7800000000000 Iter = 0 + Global time = 23.8000000000000 Iter = 0 + Global time = 23.8200000000000 Iter = 0 + Global time = 23.8400000000000 Iter = 0 + Global time = 23.8600000000000 Iter = 0 + Global time = 23.8800000000000 Iter = 0 + Global time = 23.9000000000000 Iter = 0 + Global time = 23.9200000000000 Iter = 0 + Global time = 23.9400000000000 Iter = 0 + Global time = 23.9600000000000 Iter = 0 + Global time = 23.9800000000000 Iter = 0 + Global time = 24.0000000000000 Iter = 0 + Global time = 24.0200000000000 Iter = 0 + Global time = 24.0400000000000 Iter = 0 + Global time = 24.0600000000000 Iter = 0 + Global time = 24.0800000000000 Iter = 0 + Global time = 24.1000000000000 Iter = 0 + Global time = 24.1200000000000 Iter = 0 + Global time = 24.1400000000000 Iter = 0 + Global time = 24.1600000000000 Iter = 0 + Global time = 24.1800000000000 Iter = 0 + Global time = 24.2000000000000 Iter = 0 + Global time = 24.2200000000000 Iter = 0 + Global time = 24.2400000000000 Iter = 0 + Global time = 24.2600000000000 Iter = 0 + Global time = 24.2800000000000 Iter = 0 + Global time = 24.3000000000000 Iter = 0 + Global time = 24.3200000000000 Iter = 0 + Global time = 24.3400000000000 Iter = 0 + Global time = 24.3600000000000 Iter = 0 + Global time = 24.3800000000000 Iter = 0 + Global time = 24.4000000000000 Iter = 0 + Global time = 24.4200000000000 Iter = 0 + Global time = 24.4400000000000 Iter = 0 + Global time = 24.4600000000000 Iter = 0 + Global time = 24.4800000000000 Iter = 0 + Global time = 24.5000000000000 Iter = 0 + Global time = 24.5200000000000 Iter = 0 + Global time = 24.5400000000000 Iter = 0 + Global time = 24.5600000000000 Iter = 0 + Global time = 24.5800000000000 Iter = 0 + Global time = 24.6000000000000 Iter = 0 + Global time = 24.6200000000000 Iter = 0 + Global time = 24.6400000000000 Iter = 0 + Global time = 24.6600000000000 Iter = 0 + Global time = 24.6800000000000 Iter = 0 + Global time = 24.7000000000000 Iter = 0 + Global time = 24.7200000000000 Iter = 0 + Global time = 24.7400000000000 Iter = 0 + Global time = 24.7600000000000 Iter = 0 + Global time = 24.7800000000000 Iter = 0 + Global time = 24.8000000000000 Iter = 0 + Global time = 24.8200000000000 Iter = 0 + Global time = 24.8400000000000 Iter = 0 + Global time = 24.8600000000000 Iter = 0 + Global time = 24.8800000000000 Iter = 0 + Global time = 24.9000000000000 Iter = 0 + Global time = 24.9200000000000 Iter = 0 + Global time = 24.9400000000000 Iter = 0 + Global time = 24.9600000000000 Iter = 0 + Global time = 24.9800000000000 Iter = 0 + Global time = 25.0000000000000 Iter = 0 + Global time = 25.0200000000000 Iter = 0 + Global time = 25.0400000000000 Iter = 0 + Global time = 25.0600000000000 Iter = 0 + Global time = 25.0800000000000 Iter = 0 + Global time = 25.1000000000000 Iter = 0 + Global time = 25.1200000000000 Iter = 0 + Global time = 25.1400000000000 Iter = 0 + Global time = 25.1600000000000 Iter = 0 + Global time = 25.1800000000000 Iter = 0 + Global time = 25.2000000000000 Iter = 0 + Global time = 25.2200000000000 Iter = 0 + Global time = 25.2400000000000 Iter = 0 + Global time = 25.2600000000000 Iter = 0 + Global time = 25.2800000000000 Iter = 0 + Global time = 25.3000000000000 Iter = 0 + Global time = 25.3200000000000 Iter = 0 + Global time = 25.3400000000000 Iter = 0 + Global time = 25.3600000000000 Iter = 0 + Global time = 25.3800000000000 Iter = 0 + Global time = 25.4000000000000 Iter = 0 + Global time = 25.4200000000000 Iter = 0 + Global time = 25.4400000000000 Iter = 0 + Global time = 25.4600000000000 Iter = 0 + Global time = 25.4800000000000 Iter = 0 + Global time = 25.5000000000000 Iter = 0 + Global time = 25.5200000000000 Iter = 0 + Global time = 25.5400000000000 Iter = 0 + Global time = 25.5600000000000 Iter = 0 + Global time = 25.5800000000000 Iter = 0 + Global time = 25.6000000000000 Iter = 0 + Global time = 25.6200000000000 Iter = 0 + Global time = 25.6400000000000 Iter = 0 + Global time = 25.6600000000000 Iter = 0 + Global time = 25.6800000000000 Iter = 0 + Global time = 25.7000000000000 Iter = 0 + Global time = 25.7200000000000 Iter = 0 + Global time = 25.7400000000000 Iter = 0 + Global time = 25.7600000000000 Iter = 0 + Global time = 25.7800000000000 Iter = 0 + Global time = 25.8000000000000 Iter = 0 + Global time = 25.8200000000000 Iter = 0 + Global time = 25.8400000000000 Iter = 0 + Global time = 25.8600000000000 Iter = 0 + Global time = 25.8800000000000 Iter = 0 + Global time = 25.9000000000000 Iter = 0 + Global time = 25.9200000000000 Iter = 0 + Global time = 25.9400000000000 Iter = 0 + Global time = 25.9600000000000 Iter = 0 + Global time = 25.9800000000000 Iter = 0 + Global time = 26.0000000000000 Iter = 0 + Global time = 26.0200000000000 Iter = 0 + Global time = 26.0400000000000 Iter = 0 + Global time = 26.0600000000000 Iter = 0 + Global time = 26.0800000000000 Iter = 0 + Global time = 26.1000000000000 Iter = 0 + Global time = 26.1200000000000 Iter = 0 + Global time = 26.1400000000000 Iter = 0 + Global time = 26.1600000000000 Iter = 0 + Global time = 26.1800000000000 Iter = 0 + Global time = 26.2000000000000 Iter = 0 + Global time = 26.2200000000000 Iter = 0 + Global time = 26.2400000000000 Iter = 0 + Global time = 26.2600000000000 Iter = 0 + Global time = 26.2800000000000 Iter = 0 + Global time = 26.3000000000000 Iter = 0 + Global time = 26.3200000000000 Iter = 0 + Global time = 26.3400000000000 Iter = 0 + Global time = 26.3600000000000 Iter = 0 + Global time = 26.3800000000000 Iter = 0 + Global time = 26.4000000000000 Iter = 0 + Global time = 26.4200000000000 Iter = 0 + Global time = 26.4400000000000 Iter = 0 + Global time = 26.4600000000000 Iter = 0 + Global time = 26.4800000000000 Iter = 0 + Global time = 26.5000000000000 Iter = 0 + Global time = 26.5200000000000 Iter = 0 + Global time = 26.5400000000000 Iter = 0 + Global time = 26.5600000000000 Iter = 0 + Global time = 26.5800000000000 Iter = 0 + Global time = 26.6000000000000 Iter = 0 + Global time = 26.6200000000000 Iter = 0 + Global time = 26.6400000000000 Iter = 0 + Global time = 26.6600000000000 Iter = 0 + Global time = 26.6800000000000 Iter = 0 + Global time = 26.7000000000000 Iter = 0 + Global time = 26.7200000000000 Iter = 0 + Global time = 26.7400000000000 Iter = 0 + Global time = 26.7600000000000 Iter = 0 + Global time = 26.7800000000000 Iter = 0 + Global time = 26.8000000000000 Iter = 0 + Global time = 26.8200000000000 Iter = 0 + Global time = 26.8400000000000 Iter = 0 + Global time = 26.8600000000000 Iter = 0 + Global time = 26.8800000000000 Iter = 0 + Global time = 26.9000000000000 Iter = 0 + Global time = 26.9200000000000 Iter = 0 + Global time = 26.9400000000000 Iter = 0 + Global time = 26.9600000000000 Iter = 0 + Global time = 26.9800000000000 Iter = 0 + Global time = 27.0000000000000 Iter = 0 + Global time = 27.0200000000000 Iter = 0 + Global time = 27.0400000000000 Iter = 0 + Global time = 27.0600000000000 Iter = 0 + Global time = 27.0800000000000 Iter = 0 + Global time = 27.1000000000000 Iter = 0 + Global time = 27.1200000000000 Iter = 0 + Global time = 27.1400000000000 Iter = 0 + Global time = 27.1600000000000 Iter = 0 + Global time = 27.1800000000000 Iter = 0 + Global time = 27.2000000000000 Iter = 0 + Global time = 27.2200000000000 Iter = 0 + Global time = 27.2400000000000 Iter = 0 + Global time = 27.2600000000000 Iter = 0 + Global time = 27.2800000000000 Iter = 0 + Global time = 27.3000000000000 Iter = 0 + Global time = 27.3200000000000 Iter = 0 + Global time = 27.3400000000000 Iter = 0 + Global time = 27.3600000000000 Iter = 0 + Global time = 27.3800000000000 Iter = 0 + Global time = 27.4000000000000 Iter = 0 + Global time = 27.4200000000000 Iter = 0 + Global time = 27.4400000000000 Iter = 0 + Global time = 27.4600000000000 Iter = 0 + Global time = 27.4800000000000 Iter = 0 + Global time = 27.5000000000000 Iter = 0 + Global time = 27.5200000000000 Iter = 0 + Global time = 27.5400000000000 Iter = 0 + Global time = 27.5600000000000 Iter = 0 + Global time = 27.5800000000000 Iter = 0 + Global time = 27.6000000000000 Iter = 0 + Global time = 27.6200000000000 Iter = 0 + Global time = 27.6400000000000 Iter = 0 + Global time = 27.6600000000000 Iter = 0 + Global time = 27.6800000000000 Iter = 0 + Global time = 27.7000000000000 Iter = 0 + Global time = 27.7200000000000 Iter = 0 + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + Global time = 27.7400000000000 Iter = 0 + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + Global time = 27.7600000000000 Iter = 0 + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + *** ERROR *** Out of limits in user defined shear field - limit value used + Elapsed time : 0.3656563 diff --git a/wetb/hawc2/tests/test_files/logfiles/test.log b/wetb/hawc2/tests/test_files/logfiles/test.log new file mode 100644 index 0000000000000000000000000000000000000000..e700aa9ccd8fdfaf8827a7de68bd89b94d2f4e9b --- /dev/null +++ b/wetb/hawc2/tests/test_files/logfiles/test.log @@ -0,0 +1,15 @@ +hallo er en test +og en til +jaja +nejnej +jaja +hej +hallohallohallohej +hej +hej +hallohallohallohej +hej +hej +sdf +sdf +sdfsdf \ No newline at end of file diff --git a/wetb/hawc2/tests/test_files/logfiles/tmp.log b/wetb/hawc2/tests/test_files/logfiles/tmp.log new file mode 100644 index 0000000000000000000000000000000000000000..4902ba71a2216d09e24321400b60f14b90d757af Binary files /dev/null and b/wetb/hawc2/tests/test_files/logfiles/tmp.log differ diff --git a/wetb/hawc2/tests/test_files/logfiles/turbulence_generation.log b/wetb/hawc2/tests/test_files/logfiles/turbulence_generation.log new file mode 100644 index 0000000000000000000000000000000000000000..10543d294f3d496e9de86eba66e207616e592e47 --- /dev/null +++ b/wetb/hawc2/tests/test_files/logfiles/turbulence_generation.log @@ -0,0 +1,21 @@ +________________________________________________________________________________________________________________________ + Version ID : HAWC2MB 12.2 + Log file output + Time : 07:18:14 + Date : 20:11.2015 +________________________________________________________________________________________________________________________ + Simulation commands read with succes + Orientation input commands read with succes + constraint input commands read with succes + Topologi commands read with succes + Mann commands read with succes + Wind commands read with succes + DLL commands read with succes + output commands read with succes + Output commands read + Initialization of structure + Initialization of wind + Initialization of Mann turbulence + Opening turbulence file ./turb/envisionpp2b_20150517_2310_s1004u.bin + Turbulence file ./turb/envisionpp2b_20150517_2310_s1004u.bin does not exist + Turbulence generation starts ... diff --git a/wetb/hawc2/tests/test_logfile.py b/wetb/hawc2/tests/test_logfile.py new file mode 100644 index 0000000000000000000000000000000000000000..c9875ba9047ed47d555f6c3c99d95f1bcb329154 --- /dev/null +++ b/wetb/hawc2/tests/test_logfile.py @@ -0,0 +1,154 @@ +''' +Created on 18/11/2015 + +@author: MMPE +''' +import unittest +from wetb.hawc2.log_file import LogFile, is_file_open, INITIALIZATION_ERROR, \ + INITIALIZATION, SIMULATING, DONE, SIMULATION_ERROR, GENERATING_TURBULENCE, \ + PENDING +import time +from wetb.hawc2 import log_file +import threading +import os + +def simulate(file, wait): + with open(file, 'r') as fin: + lines = fin.readlines() + file = file + "_" + with open(file, 'w'): + pass + time.sleep(.1) + for l in lines: + with open(file, 'a+') as fout: + fout.write(l) + if "Turbulence generation starts" in l or "Log file output" in l: + time.sleep(0.2) + time.sleep(wait) + +class Test(unittest.TestCase): + + + def test_missing_logfile(self): + f = 'test_files/logfiles/missing.log' + logfile = LogFile(f, 200) + status = logfile.status() + self.assertEqual(status[0], 0) + self.assertEqual(status[1], log_file.MISSING) + + + def test_is_file_open(self): + f = 'test_files/logfiles/test.log' + with open(f, 'a+'): + self.assertTrue(is_file_open(f)) + with open(f, 'r'): + self.assertTrue(is_file_open(f)) + self.assertFalse(is_file_open(f)) + + def test_simulation_init_error(self): + f = 'test_files/logfiles/init_error.log' + logfile = LogFile(f, 2) + code, txt, err = logfile.status() + self.assertEqual(code, 100) + self.assertEqual(txt, DONE) + self.assertEqual(err, [' *** ERROR *** No line termination in command line 8']) + + def test_init(self): + f = 'test_files/logfiles/init.log' + logfile = LogFile(f, 200) + code, txt, err = logfile.status() + self.assertEqual(code, 0) + self.assertEqual(txt, INITIALIZATION) + self.assertEqual(err, []) + + def test_turbulence_generation(self): + f = 'test_files/logfiles/turbulence_generation.log' + logfile = LogFile(f, 200) + code, txt, err = logfile.status() + self.assertEqual(code, 0) + self.assertEqual(txt, GENERATING_TURBULENCE) + self.assertEqual(err, []) + + def test_simulation(self): + f = 'test_files/logfiles/simulating.log' + logfile = LogFile(f, 2) + code, txt, err = logfile.status() + self.assertEqual(code, 25) + self.assertEqual(txt, SIMULATING) + self.assertEqual(err, []) + + + def test_finish(self): + f = 'test_files/logfiles/finish.log' + logfile = LogFile(f, 200) + code, txt, err = logfile.status() + self.assertEqual(code, 100) + self.assertEqual(txt, DONE) + self.assertEqual(err, []) + + + def test_simulation_error(self): + f = 'test_files/logfiles/simulation_error.log' + logfile = LogFile(f, 2) + code, txt, err = logfile.status() + self.assertEqual(code, 100) + self.assertEqual(txt, DONE) + self.assertEqual(err, [' *** ERROR *** Error opening out .dat file']) + + def test_simulation_error2(self): + f = 'test_files/logfiles/simulation_error2.log' + logfile = LogFile(f, 2) + code, txt, err = logfile.status() + self.assertEqual(code, 100) + self.assertEqual(txt, DONE) + self.assertEqual(err, ['30 x *** ERROR *** Out of limits in user defined shear field - limit value used']) + + + def check(self, logfilename, phases, end_status): + logfile = LogFile(logfilename + "_", 2) + if os.path.isfile(logfile.filename): + os.remove(logfile.filename) + status = logfile.status() + t = threading.Thread(target=simulate, args=(logfilename, 0.0001)) + t.start() + while status[0] >= 0 and status[1] != DONE: + new_status = logfile.status() + if new_status[1] != status[1] or new_status[0] != status[0]: + status = new_status + #print(status) + if status[1] in phases: + phases.remove(status[1]) + time.sleep(0.01) + code, txt, err = logfile.status() + self.assertEqual(code, end_status[0]) + self.assertEqual(txt, end_status[1]) + self.assertEqual(err, end_status[2]) + self.assertFalse(phases) + t.join() + os.remove(logfile.filename) + + + def test_realtime_test(self): + self.check('test_files/logfiles/finish.log', + phases=[PENDING, INITIALIZATION, SIMULATING, DONE], + end_status=(100, DONE, [])) + + def test_realtime_test2(self): + self.check('test_files/logfiles/init_error.log', + phases=[PENDING, INITIALIZATION, SIMULATING, DONE], + end_status=(100, DONE, [' *** ERROR *** No line termination in command line 8'])) + + def test_realtime_test_simulation_error(self): + self.check('test_files/logfiles/simulation_error.log', + [PENDING, INITIALIZATION, SIMULATING, DONE], + (100, DONE, [' *** ERROR *** Error opening out .dat file'])) + + def test_realtime_test_turbulence(self): + self.check('test_files/logfiles/finish_turbulencegeneration.log', + phases=[PENDING, INITIALIZATION, GENERATING_TURBULENCE, SIMULATING, DONE], + end_status=(100, DONE, [])) + + +if __name__ == "__main__": + #import sys;sys.argv = ['', 'Test.test_logfile'] + unittest.main()