From 0da6f9a7c6fe8ec0e6b63295e72bb50dff65347f Mon Sep 17 00:00:00 2001 From: Daniel Ingraham Date: Fri, 15 Mar 2024 20:30:10 -0400 Subject: [PATCH] Improve the AD tests --- src/CCBlade.jl | 4 ++-- test/runtests.jl | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/CCBlade.jl b/src/CCBlade.jl index 02f6fa6..56729f3 100644 --- a/src/CCBlade.jl +++ b/src/CCBlade.jl @@ -382,7 +382,7 @@ Solve the BEM equations for given rotor geometry and operating point. **Returns** - `outputs::Outputs`: BEM output data including loads, induction factors, etc. """ -function solve(rotor, section, op; npts=10, forcebackwardsearch=false, epsilon_everywhere=false, implicitad_option=true) +function solve(rotor, section, op; npts=10, forcebackwardsearch=false, epsilon_everywhere=false, implicitad_option=true, atol=2e-12, rtol=4*eps()) # error handling if typeof(section) <: AbstractVector @@ -505,7 +505,7 @@ function solve(rotor, section, op; npts=10, forcebackwardsearch=false, epsilon_e success, phiL, phiU = firstbracket(phi -> residual(phi, xv, pv), phimin, phimax, npts, backwardsearch) function solve(x, p) - phistar, _ = FLOWMath.brent(phi -> residual(phi, x, p), phiL, phiU) + phistar, _ = FLOWMath.brent(phi -> residual(phi, x, p), phiL, phiU; atol, rtol) return phistar end diff --git a/test/runtests.jl b/test/runtests.jl index 4c5f6b7..3778bb4 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -717,7 +717,7 @@ for implicitad_option in (false, true) sections = Section.(rp, chordp, thetap, airfoils) ops = simple_op.(Vinfp, Omegap, rp, rhop; pitch=pitchp) - outputs = solve.(Ref(rotor), sections, ops, implicitad_option=implicitad_option) + outputs = solve.(Ref(rotor), sections, ops; implicitad_option=implicitad_option, atol=1e-14) T, Q = thrusttorque(rotor, sections, outputs) @@ -730,8 +730,8 @@ for implicitad_option in (false, true) if !implicitad_option J_no_implicitad = J # else - # @show maximum(abs.(J .- J_no_implicitad)) - # maximum(abs.(J .- J_no_implicitad)) = 1.2650161806959659e-8 + # @show maximum(abs.(J .- J_no_implicitad)) + # maximum(abs.(J .- J_no_implicitad)) = 2.5494273359072395e-11 end # using BenchmarkTools @@ -745,9 +745,9 @@ for implicitad_option in (false, true) J3 = FiniteDiff.finite_difference_jacobian(ccbladewrapper, x, Val{:complex}) - @test maximum(abs.(J_no_implicitad - J3)) < 1e-12 + @test maximum(abs.(J - J3)) < 3e-11 - end +end end