@@ -32,6 +32,14 @@ def handleRemoveReadonlyWin(func, path, exc_info):
32
32
raise
33
33
34
34
35
+ def forceCopyFile (sfile , dfile ):
36
+ # ---- Handling error due to wrong mod
37
+ if os .path .isfile (dfile ):
38
+ if not os .access (dfile , os .W_OK ):
39
+ os .chmod (dfile , stat .S_IWUSR )
40
+ #print(sfile, ' > ', dfile)
41
+ shutil .copy2 (sfile , dfile )
42
+
35
43
def copyTree (src , dst ):
36
44
"""
37
45
Copy a directory to another one, overwritting files if necessary.
@@ -45,14 +53,6 @@ def forceMergeFlatDir(srcDir, dstDir):
45
53
dstFile = os .path .join (dstDir , item )
46
54
forceCopyFile (srcFile , dstFile )
47
55
48
- def forceCopyFile (sfile , dfile ):
49
- # ---- Handling error due to wrong mod
50
- if os .path .isfile (dfile ):
51
- if not os .access (dfile , os .W_OK ):
52
- os .chmod (dfile , stat .S_IWUSR )
53
- #print(sfile, ' > ', dfile)
54
- shutil .copy2 (sfile , dfile )
55
-
56
56
def isAFlatDir (sDir ):
57
57
for item in os .listdir (sDir ):
58
58
sItem = os .path .join (sDir , item )
@@ -292,35 +292,41 @@ def removeFASTOuputs(workDir):
292
292
# --------------------------------------------------------------------------------}
293
293
# --- Tools for template replacement
294
294
# --------------------------------------------------------------------------------{
295
- def paramsSteadyAero (p = dict ()):
295
+ def paramsSteadyAero (p = None ):
296
+ p = dict () if p is None else p
296
297
p ['AeroFile|AFAeroMod' ]= 1 # remove dynamic effects dynamic
297
298
p ['AeroFile|WakeMod' ]= 1 # remove dynamic inflow dynamic
298
299
p ['AeroFile|TwrPotent' ]= 0 # remove tower shadow
299
300
return p
300
301
301
- def paramsNoGen (p = dict ()):
302
+ def paramsNoGen (p = None ):
303
+ p = dict () if p is None else p
302
304
p ['EDFile|GenDOF' ] = 'False'
303
305
return p
304
306
305
- def paramsGen (p = dict ()):
307
+ def paramsGen (p = None ):
308
+ p = dict () if p is None else p
306
309
p ['EDFile|GenDOF' ] = 'True'
307
310
return p
308
311
309
- def paramsNoController (p = dict ()):
312
+ def paramsNoController (p = None ):
313
+ p = dict () if p is None else p
310
314
p ['ServoFile|PCMode' ] = 0 ;
311
315
p ['ServoFile|VSContrl' ] = 0 ;
312
316
p ['ServoFile|YCMode' ] = 0 ;
313
317
return p
314
318
315
- def paramsControllerDLL (p = dict ()):
319
+ def paramsControllerDLL (p = None ):
320
+ p = dict () if p is None else p
316
321
p ['ServoFile|PCMode' ] = 5 ;
317
322
p ['ServoFile|VSContrl' ] = 5 ;
318
323
p ['ServoFile|YCMode' ] = 5 ;
319
324
p ['EDFile|GenDOF' ] = 'True' ;
320
325
return p
321
326
322
327
323
- def paramsStiff (p = dict ()):
328
+ def paramsStiff (p = None ):
329
+ p = dict () if p is None else p
324
330
p ['EDFile|FlapDOF1' ] = 'False'
325
331
p ['EDFile|FlapDOF2' ] = 'False'
326
332
p ['EDFile|EdgeDOF' ] = 'False'
@@ -352,7 +358,7 @@ def iterify(x):
352
358
RPM = iterify (RPM )
353
359
Pitch = iterify (Pitch )
354
360
# --- If inputs are not flat but different vectors to length through, we flatten them (TODO: meshgrid and ravel?)
355
- if not FlatInputs :
361
+ if not flatInputs :
356
362
WS_flat = []
357
363
Pitch_flat = []
358
364
RPM_flat = []
@@ -386,7 +392,8 @@ def iterify(x):
386
392
PARAMS .append (p )
387
393
return PARAMS
388
394
389
- def paramsLinearTrim (p = dict ()):
395
+ def paramsLinearTrim (p = None ):
396
+ p = dict () if p is None else p
390
397
391
398
# Set a few DOFs, move this to main file
392
399
p ['Linearize' ] = True
@@ -435,7 +442,8 @@ def paramsLinearTrim(p=dict()):
435
442
# ---
436
443
# --------------------------------------------------------------------------------{
437
444
def createStepWind (filename ,WSstep = 1 ,WSmin = 3 ,WSmax = 25 ,tstep = 100 ,dt = 0.5 ,tmin = 0 ,tmax = 999 ):
438
- f = weio .FASTWndFile ()
445
+ from pyFAST .input_output .fast_wind_file import FASTWndFile
446
+ f = FASTWndFile ()
439
447
Steps = np .arange (WSmin ,WSmax + WSstep ,WSstep )
440
448
print (Steps )
441
449
nCol = len (f .colNames )
0 commit comments