Skip to content

CACTUS crashes #19

Description

@wmpsmithii-cpu

Hello CACTUS community,

I'm running CACTUS (REL-0.1-336, dev branch, unmodified except MaxNLIters patched from 10 to 50) on a 5-blade straight-bladed H-Darrieus VAWT and hitting a consistent non-linear iteration convergence failure that terminates the run early. I'd appreciate any guidance on solver settings for high-solidity configurations.

Geometry:

  • R = 1.2 m (RefR = 1.2, coordinates normalized by R)
  • H = 4.8 m (RefAR = 4.0)
  • 5 blades, NACA 6712, diamond taper (chord 0.4m mid, 0.2m tip)
  • Pitch axis at 25% chord
  • RotN: 0 1 0 (Y-vertical)
  • Solidity σ = NB·c_mid/(2πR) ≈ 0.265

Case settings:

  • TSR (Ut) = 1.5, RPM = 107.4, rho = 1.225, vis = 1.789e-5 (SI)
  • nr = 20, nti = 36, nric = 9, convrg = 0.0001, DSFlag = 1
  • NACA 6712 polar: uniform 1° spacing, 7 Reynolds blocks (2.5e4 to 2.0e6)

Symptom:
The simulation completes 4 revolutions cleanly with Cp converging nicely (rev 1: −3.1, rev 2: −1.9, rev 3: −1.74, rev 4: −1.70), then terminates on revolution 5 with:

***** NON-LINEAR ITERATION LOOP DID NOT CONVERGE IN 10 ITERATIONS. PROGRAM TERMINATED. *****

Note: despite the message saying "10 iterations," MaxNLIters is confirmed set to 50 in source — the error message text appears to be a hardcoded string (CACTUS.f90:597).

Floating-point exceptions are also reported at exit: IEEE_INVALID_FLAG, IEEE_DIVIDE_BY_ZERO.

I've confirmed:

  • AOA values are physically sane (±10° range at TSR=1.5)
  • The same geometry runs cleanly with NACA 0015 polar (RegTest3 reproduces its reference CPave values exactly)
  • Changing convrg (0.0001 → 0.001), nric (9 → 2), or nr (20 → 60) does not change the termination point
  • The failure always occurs at the same timestep in revolution 5, suggesting a specific numerical singularity rather than a general convergence tightness issue

Questions:

  1. Are there recommended solver settings (nric, convrg, iut, ivtxcor, VCRFB/VCRFT/VCRFS) for high-solidity H-Darrieus configurations that are known to be more numerically stable?
  2. Is the IEEE_DIVIDE_BY_ZERO likely originating in the dynamic stall model (DSFlag=1, LB model) at high AOA excursions, and if so, is there a known workaround?
  3. Does the free-vortex-wake model have known stability issues at low TSR (1.5) with high-solidity rotors where deep stall occurs on part of the revolution?

Any guidance appreciated. Happy to share the full .in and .geom files if helpful.

Bill Smith
Smith's Enterprises LLC

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions