|  | 
| 46 | 46 | 
 | 
| 47 | 47 | @testitem "Termination Conditions: Allocations" tags=[:cuda] begin | 
| 48 | 48 |     using CUDA, NonlinearSolveBase, Test, LinearAlgebra | 
| 49 |  | -    CUDA.allowscalar(false) | 
| 50 |  | -    du = cu(rand(4)) | 
| 51 |  | -    u = cu(rand(4)) | 
| 52 |  | -    uprev = cu(rand(4)) | 
| 53 |  | -    TERMINATION_CONDITIONS = [ | 
| 54 |  | -        RelTerminationMode, AbsTerminationMode | 
| 55 |  | -    ] | 
| 56 |  | -    NORM_TERMINATION_CONDITIONS = [ | 
| 57 |  | -        AbsNormTerminationMode, RelNormTerminationMode, RelNormSafeTerminationMode, | 
| 58 |  | -        AbsNormSafeTerminationMode, RelNormSafeBestTerminationMode, AbsNormSafeBestTerminationMode | 
| 59 |  | -    ] | 
| 60 | 49 | 
 | 
| 61 |  | -    @testset begin | 
| 62 |  | -        @testset "Mode: $(tcond)" for tcond in TERMINATION_CONDITIONS | 
| 63 |  | -            @test_nowarn NonlinearSolveBase.check_convergence( | 
| 64 |  | -                tcond(), du, u, uprev, 1e-3, 1e-3) | 
| 65 |  | -        end | 
|  | 50 | +    if CUDA.functional() | 
|  | 51 | +        CUDA.allowscalar(false) | 
|  | 52 | +        du = cu(rand(4)) | 
|  | 53 | +        u = cu(rand(4)) | 
|  | 54 | +        uprev = cu(rand(4)) | 
|  | 55 | +        TERMINATION_CONDITIONS = [ | 
|  | 56 | +            RelTerminationMode, AbsTerminationMode | 
|  | 57 | +        ] | 
|  | 58 | +        NORM_TERMINATION_CONDITIONS = [ | 
|  | 59 | +            AbsNormTerminationMode, RelNormTerminationMode, RelNormSafeTerminationMode, | 
|  | 60 | +            AbsNormSafeTerminationMode, RelNormSafeBestTerminationMode, AbsNormSafeBestTerminationMode | 
|  | 61 | +        ] | 
| 66 | 62 | 
 | 
| 67 |  | -        @testset "Mode: $(tcond)" for tcond in NORM_TERMINATION_CONDITIONS | 
| 68 |  | -            for nfn in (Base.Fix1(maximum, abs), Base.Fix2(norm, 2), Base.Fix2(norm, Inf)) | 
|  | 63 | +        @testset begin | 
|  | 64 | +            @testset "Mode: $(tcond)" for tcond in TERMINATION_CONDITIONS | 
| 69 | 65 |                 @test_nowarn NonlinearSolveBase.check_convergence( | 
| 70 |  | -                    tcond(nfn), du, u, uprev, 1e-3, 1e-3) | 
|  | 66 | +                    tcond(), du, u, uprev, 1e-3, 1e-3) | 
|  | 67 | +            end | 
|  | 68 | + | 
|  | 69 | +            @testset "Mode: $(tcond)" for tcond in NORM_TERMINATION_CONDITIONS | 
|  | 70 | +                for nfn in (Base.Fix1(maximum, abs), Base.Fix2(norm, 2), Base.Fix2(norm, Inf)) | 
|  | 71 | +                    @test_nowarn NonlinearSolveBase.check_convergence( | 
|  | 72 | +                        tcond(nfn), du, u, uprev, 1e-3, 1e-3) | 
|  | 73 | +                end | 
| 71 | 74 |             end | 
| 72 | 75 |         end | 
| 73 | 76 |     end | 
|  | 
0 commit comments