Getting started

Installation

git clone https://github.com/ksk5429/numerical_model.git
cd numerical_model
pip install -r requirements.txt

# Optional: install the OpenFAST v5 binary for end-to-end simulation
bash tools/openfast/install.sh

Bootstrapping the v5 r-test

The end-to-end OpenFAST runner needs the v5.0.0 r-test directory (provides the OC3 Tripod template + DISCON.dll). Clone it once:

mkdir -p tools/r-test_v5 && cd tools/r-test_v5
git clone --depth=1 --branch v5.0.0 https://github.com/OpenFAST/r-test.git

First run

from op3 import build_foundation, compose_tower_model

foundation = build_foundation(mode="fixed")
model = compose_tower_model(
    rotor="nrel_5mw_baseline",
    tower="nrel_5mw_oc3_tower",
    foundation=foundation,
)
freqs = model.eigen(n_modes=3)
print(f"f1 = {freqs[0]:.4f} Hz  (expect 0.275 Hz)")

End-to-end OpenFAST run

python scripts/run_openfast.py site_a
python scripts/run_dlc11_partial.py --tmax 5
python scripts/run_dlc61_parked.py --vmax 50

Verification

python tests/test_code_verification.py
python tests/test_pisa.py
python tests/test_uq.py
python tests/test_reproducibility.py
python scripts/calibration_regression.py
python scripts/dnv_st_0126_conformance.py --all

Each test prints a numbered status line for every falsification gate and exits 0 only if all gates pass.