From fc4cf7cee7768f017f3833cff4368a56191c8ea6 Mon Sep 17 00:00:00 2001 From: dzalkind Date: Mon, 30 Dec 2024 12:58:16 -0700 Subject: [PATCH] Make control example case --- .../modeling_options.yaml | 3 +++ .../weis_driver_rosco_opt.py | 27 +++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/examples/02_run_openfast_cases/modeling_options.yaml b/examples/02_run_openfast_cases/modeling_options.yaml index 28d925def..bd9e42933 100644 --- a/examples/02_run_openfast_cases/modeling_options.yaml +++ b/examples/02_run_openfast_cases/modeling_options.yaml @@ -32,6 +32,9 @@ ROSCO: flag: True tuning_yaml: ../01_aeroelasticse/OpenFAST_models/IEA-15-240-RWT/IEA-15-240-RWT-UMaineSemi/IEA15MW-UMaineSemi.yaml Kp_float: -10 + U_pc: [12, 18, 24] + omega_pc: [.1, .1, .1] + zeta_pc: [1.,1.,1.] DLC_driver: diff --git a/examples/02_run_openfast_cases/weis_driver_rosco_opt.py b/examples/02_run_openfast_cases/weis_driver_rosco_opt.py index 80af35b38..8d501ee76 100644 --- a/examples/02_run_openfast_cases/weis_driver_rosco_opt.py +++ b/examples/02_run_openfast_cases/weis_driver_rosco_opt.py @@ -4,6 +4,11 @@ from weis.glue_code.runWEIS import run_weis from openmdao.utils.mpi import MPI +from weis.glue_code.weis_args import weis_args, get_max_procs, set_modopt_procs + +# Parse args +args = weis_args() + ## File management run_dir = os.path.dirname( os.path.realpath(__file__) ) @@ -13,12 +18,30 @@ tt = time.time() -wt_opt, modeling_options, opt_options = run_weis(fname_wt_input, fname_modeling_options, fname_analysis_options) +maxnP = get_max_procs(args) + +modeling_override = None +if MPI: + # Pre-compute number of cores needed in this run + _, modeling_options, _ = run_weis(fname_wt_input, + fname_modeling_options, + fname_analysis_options, + prepMPI=True, + maxnP = maxnP) + + modeling_override = set_modopt_procs(modeling_options) + +# Run WEIS for real now +wt_opt, modeling_options, opt_options = run_weis(fname_wt_input, + fname_modeling_options, + fname_analysis_options, + modeling_override=modeling_override, + prepMPI=args.preMPI) if MPI: rank = MPI.COMM_WORLD.Get_rank() else: rank = 0 -if rank == 0: +if rank == 0 and args.preMPI == False: print("Run time: %f"%(time.time()-tt)) sys.stdout.flush()