Skip to content

Commit b2ec714

Browse files
Code updates
1 parent bfdd516 commit b2ec714

File tree

1 file changed

+21
-15
lines changed

1 file changed

+21
-15
lines changed

benchmarks/PINNErrorsVsTime/allen_cahn_et.jmd

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ using DelimitedFiles
2020
using QuasiMonteCarlo, Random
2121
import ModelingToolkit: Interval, infimum, supremum
2222

23-
function allen_cahn(strategy, minimizer, maxIters)
23+
function allen_cahn(strategy, minimizer, maxIters, time_limit=3600.0) # Added time_limit parameter (default 1 hour in seconds)
2424
## DECLARATIONS
2525
@parameters t x1 x2 x3 x4
2626
@variables u(..)
@@ -113,7 +113,7 @@ function allen_cahn(strategy, minimizer, maxIters)
113113
timeCounter = 0.0
114114
startTime = time_ns()
115115

116-
# Callback function
116+
# Callback function with time cap
117117
cb = function (p, l)
118118
try
119119
deltaT_s = time_ns()
@@ -124,6 +124,12 @@ function allen_cahn(strategy, minimizer, maxIters)
124124
push!(error, l)
125125

126126
timeCounter += time_ns() - deltaT_s
127+
128+
if (ctime / 1e9 > time_limit)
129+
println("Time limit of $time_limit seconds exceeded. Stopping training.")
130+
return true
131+
end
132+
127133
return false
128134
catch e
129135
@warn "Callback error: $e"
@@ -161,10 +167,10 @@ end
161167
maxIters = [(1,1,1,1,1,1,1000),(1,1,1,1,300,300,300)] #iters for ADAM/LBFGS
162168
# maxIters = [(1,1,1,1,1,1,10),(1,1,1,3,3,3,3)] #iters for ADAM/LBFGS
163169

164-
strategies = [NeuralPDE.QuadratureTraining(quadrature_alg = CubaCuhre(), reltol = 1e-4, abstol = 1e-4, maxiters = 1100),
165-
NeuralPDE.QuadratureTraining(quadrature_alg = HCubatureJL(), reltol = 1e-4, abstol = 1e-4, maxiters = 1100, batch = 0),
166-
NeuralPDE.QuadratureTraining(quadrature_alg = CubatureJLh(), reltol = 1e-4, abstol = 1e-4, maxiters = 1100),
167-
NeuralPDE.QuadratureTraining(quadrature_alg = CubatureJLp(), reltol = 1e-4, abstol = 1e-4, maxiters = 1100),
170+
strategies = [NeuralPDE.QuadratureTraining(quadrature_alg = CubaCuhre(), reltol = 1e-4, abstol = 1e-4, maxiters = 100),
171+
NeuralPDE.QuadratureTraining(quadrature_alg = HCubatureJL(), reltol = 1e-4, abstol = 1e-4, maxiters = 100, batch = 0),
172+
NeuralPDE.QuadratureTraining(quadrature_alg = CubatureJLh(), reltol = 1e-4, abstol = 1e-4, maxiters = 100),
173+
NeuralPDE.QuadratureTraining(quadrature_alg = CubatureJLp(), reltol = 1e-4, abstol = 1e-4, maxiters = 100),
168174
NeuralPDE.GridTraining(0.2),
169175
NeuralPDE.StochasticTraining(400 ; bcs_points= 50),
170176
NeuralPDE.QuasiRandomTraining(400 ; bcs_points= 50)]
@@ -194,15 +200,15 @@ losses_res = Dict()
194200
## Convergence
195201

196202
for min =1:length(minimizers) # minimizer
197-
for strat=1:length(strategies) # strategy
198-
# println(string(strategies_short_name[strat], " ", minimizers_short_name[min]))
199-
res = allen_cahn(strategies[strat], minimizers[min], maxIters[min][strat])
200-
push!(error_res, string(strat,min) => res[1])
201-
push!(params_res, string(strat,min) => res[2])
202-
push!(domains, string(strat,min) => res[3])
203-
push!(times, string(strat,min) => res[4])
204-
push!(losses_res, string(strat,min) => res[5])
205-
end
203+
for strat=1:length(strategies) # strategy
204+
# println(string(strategies_short_name[strat], " ", minimizers_short_name[min]))
205+
res = allen_cahn(strategies[strat], minimizers[min], maxIters[min][strat])
206+
push!(error_res, string(strat,min) => res[1])
207+
push!(params_res, string(strat,min) => res[2])
208+
push!(domains, string(strat,min) => res[3])
209+
push!(times, string(strat,min) => res[4])
210+
push!(losses_res, string(strat,min) => res[5])
211+
end
206212
end
207213
```
208214

0 commit comments

Comments
 (0)